/* Isolated process component — avoids inherited generic block styles. */
.site-main .steps {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  margin-top: 42px;
  border-top: 1px solid #d9e7f3;
}
.site-main .step {
  display: grid !important;
  grid-template-columns: 70px minmax(0, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 25px 0 !important;
  border-bottom: 1px solid #d9e7f3 !important;
}
.site-main .step > b {
  display: grid !important;
  place-items: center;
  width: 44px !important;
  height: 44px !important;
  margin: 0 !important;
}
.site-main .step > div { min-width: 0; width: auto !important; }
.site-main .step h3 { margin: 0 !important; font-size: 20px !important; }
.site-main .step p { margin: 5px 0 0 !important; max-width: 680px; }

/* Give policy callouts breathing room beneath the comparison cards. */
.site-main .callout {
  margin-top: 30px;
  padding: 34px 36px;
  border-radius: 22px;
}

.brand-logo .custom-logo-link { display: block; line-height: 0; }
.brand-logo .custom-logo { display: block; width: 258px; height: auto; max-height: 68px; object-fit: contain; }
.site-header { background: linear-gradient(90deg, #6aa8c7 0%, #4b86aa 27%, #1c496b 54%, #071b33 80%) !important; }
.site-header .menu > li { position: relative; }
.site-header .menu > li.menu-item-has-children { padding-bottom: 12px; margin-bottom: -12px; }
.site-header .menu .sub-menu { position: absolute; z-index: 60; top: calc(100% - 12px); left: 0; display: none; width: 240px; margin: 0; padding: 8px; border: 1px solid rgba(120,190,235,.28); border-radius: 0 14px 14px 14px; background: #0a2744; box-shadow: 0 18px 38px rgba(0,0,0,.28); list-style: none; }
.site-header .menu > li:hover > .sub-menu, .site-header .menu > li:focus-within > .sub-menu { display: block; }
.site-header .menu .sub-menu a { padding: 9px 11px; color: #d8eafa; font-size: 13px; white-space: normal; }
.site-header .menu .menu-item-has-children > a:after { content: '⌄'; margin-left: 6px; color: #56ddff; font-size: 12px; }
.site-footer { padding: 68px 0 22px; }
.footer-grid { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); align-items: start; }
.footer-brand p { margin: 16px 0; }
.footer-call { display: inline-block; margin-top: 6px; color: #55d9ff !important; font-weight: 800; }
.footer-column { display: grid; gap: 9px; }
.footer-column h2 { margin: 0 0 7px; color: #fff; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; }
.footer-column a { color: #b6cee2; font-size: 14px; }
.footer-column a:hover { color: #55d9ff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; margin-top: 52px; padding-top: 20px; border-top: 1px solid rgba(182,206,226,.18); color: #91acc4; font-size: 13px; }
.footer-bottom p { margin: 0; }
.footer-research { margin-top: 20px !important; color: #91acc4; font-size: 12px; line-height: 1.55; }
.nav-actions { display: flex; align-items: center; gap: 8px; }
.nav-cta { display: inline-flex; flex: 0 0 auto; align-items: center; padding: 10px 14px; border-radius: 999px; background: #16c6f3; color: #06203a; text-decoration: none; font-size: 12px; font-weight: 850; white-space: nowrap; }
.nav-apply { background: #fff; color: #0a2744; }
@media (max-width: 540px) { .brand-logo .custom-logo { width: 205px; } }
@media (max-width: 900px) { .nav-cta { display: none; } }
@media (max-width: 900px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } .footer-brand { grid-column: 1 / -1; margin-bottom: 28px; } }
@media (max-width: 540px) { .footer-grid { grid-template-columns: 1fr; } .footer-brand { grid-column: auto; } .footer-bottom { display: block; margin-top: 34px; } .footer-bottom p + p { margin-top: 8px; } }

.application-form { margin-top: 36px; padding: 34px; border: 1px solid #d9e7f3; border-radius: 22px; background: #f8fcff; }
.application-form input:not([type="checkbox"]):not([type="radio"]), .application-form textarea, .application-form select { border: 0 !important; border-radius: 4px !important; padding: 14px 16px !important; background: #edf0f3 !important; }
.application-form .gfield_label { color: #071b33; font-weight: 750; }
.application-form input[type="submit"], .application-form .gform_button { border: 0; border-radius: 999px; padding: 14px 22px; background: #16c6f3; color: #06203a; font-weight: 800; }
.application-form .gf_left_half { float: left; clear: left; width: calc(50% - 16px); margin-right: 32px; }
.application-form .gf_right_half { float: right; clear: right; width: calc(50% - 16px); }
.application-form .gf_full { clear: both; width: 100%; }
.application-form .gform_footer { clear: both; text-align: right; }
.application-pricing { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin: 12px 0 28px; }
.application-pricing div { padding: 18px; border: 1px solid #cde5f6; border-radius: 14px; background: #fff; }
.application-pricing strong, .application-pricing span { display: block; }
.application-pricing strong { margin-bottom: 5px; color: #0b518a; }
.application-pricing span, .application-help { color: #526b83; font-size: 14px; line-height: 1.5; }
.application-section-heading { clear: both; margin: 34px 0 14px; color: #0b518a; font-size: 22px; }
@media (max-width: 700px) { .application-form { padding: 24px; } .application-form .gf_left_half, .application-form .gf_right_half { float: none; width: 100%; margin-right: 0; } .application-pricing { grid-template-columns: 1fr; } }
.application-after { margin-top: 58px; max-width: 780px; }
.application-after h2 { margin: 0 0 12px; font-size: 34px; letter-spacing: -.04em; }
.application-after li { margin-bottom: 9px; color: #415c76; }
.service-rate { display: flex; gap: 14px; align-items: baseline; margin: 34px 0 54px; padding: 20px 24px; border-radius: 16px; background: #0b518a; color: #fff; }
.service-rate strong { color: #56ddff; font-size: 19px; }
.service-menu { margin: 58px 0; }
.service-menu h2, .service-callout h2, .service-terms h2, .service-estimate h2 { margin: 0 0 20px; font-size: 32px; letter-spacing: -.04em; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.service-grid article { padding: 20px; border: 1px solid #d7e6f2; border-radius: 14px; background: #fff; }
.service-grid h3 { margin: 0 0 8px; font-size: 17px; line-height: 1.25; }
.service-grid p { margin: 0; color: #0879c8; font-weight: 800; }
.service-note { margin: 18px 0 0; color: #597087; font-size: 14px; }
.service-callout { margin: 60px 0; padding: 32px 34px; border-radius: 20px; background: #fff3ef; border: 1px solid #f5c0ae; }
.service-callout h2 { color: #8d300d; }
.service-callout p { margin: 8px 0; color: #6b493c; }
.service-terms { margin: 60px 0; padding: 34px; border-radius: 20px; background: #edf7ff; }
.service-terms li { margin: 0 0 12px; color: #405a73; }
.service-estimate { margin-top: 70px; padding-top: 62px; border-top: 1px solid #d7e6f2; }
.service-estimate .gform_wrapper { margin-top: 28px; padding: 30px; border: 1px solid #d7e6f2; border-radius: 20px; background: #f8fcff; }
@media (max-width: 850px) { .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) { .service-rate { display: block; } .service-rate span { display:block; margin-top:8px; } .service-grid { grid-template-columns: 1fr; } .service-estimate .gform_wrapper { padding: 22px; } }

/* Responsive navigation: desktop at wide sizes, a touch-friendly panel below 1200px. */
.mobile-nav { display: none; }
@media (max-width: 1200px) {
  .nav-wrap { min-height: 72px; }
  .desktop-nav, .desktop-actions { display: none; }
  .mobile-nav { display: block; margin-left: auto; position: relative; }
  .mobile-nav summary { display: flex; align-items: center; gap: 9px; padding: 10px 13px; border: 1px solid rgba(140,213,247,.38); border-radius: 999px; color: #fff; cursor: pointer; font-size: 14px; font-weight: 800; list-style: none; }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav summary span { color: #56ddff; font-size: 18px; line-height: 1; }
  .mobile-panel { position: absolute; top: calc(100% + 10px); right: 0; width: min(420px, 92vw); padding: 14px; border: 1px solid rgba(120,190,235,.34); border-radius: 18px; background: #092541; box-shadow: 0 22px 44px rgba(0,0,0,.32); }
  .mobile-menu { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
  .mobile-menu a { display: block; padding: 11px 12px; border-radius: 9px; color: #e5f2fb; text-decoration: none; font-weight: 700; }
  .mobile-menu .sub-menu { display: grid; gap: 1px; margin: 0 0 7px 12px; padding: 0; list-style: none; }
  .mobile-menu .sub-menu a { padding: 8px 10px; color: #b9d5e8; font-size: 13px; font-weight: 600; }
  .mobile-actions { display: flex; gap: 9px; margin-top: 13px; padding-top: 13px; border-top: 1px solid rgba(182,206,226,.18); }
  .mobile-actions .nav-cta { display: inline-flex; justify-content: center; flex: 1 1 0; }
}
@media (max-width: 540px) {
  .nav-wrap { width: 92%; }
  .brand-logo .custom-logo { width: 190px; }
  .mobile-panel { right: -4px; }
  .mobile-actions { flex-direction: column; }
}
.policy-page { max-width: 880px; }
.policy-page h1 { margin-bottom: 18px; }
.policy-page h2 { margin: 44px 0 13px; font-size: 25px; letter-spacing: -.025em; }
.policy-page li { margin-bottom: 10px; color: #38516b; }
.policy-meta { padding: 15px 18px; border-radius: 12px; background: #edf7ff; color: #38516b; font-size: 14px; }
.draft-note { margin: 0 0 26px; padding: 13px 16px; border: 1px solid #f1be5b; border-radius: 12px; background: #fff8e6; color: #6c4800; font-size: 13px; font-weight: 800; letter-spacing: .025em; }
.draft-note, .draft-note:empty { display: none; }
.policy-placeholder { margin-top: 42px; padding: 22px 25px; border-left: 4px solid #16c6f3; border-radius: 0 16px 16px 0; background: #edf7ff; }
.product-price-list { display: flex; align-items: center; justify-content: space-between; gap: 34px; margin: 58px 0 12px; padding: 34px; border: 1px solid #c6e7f7; border-radius: 22px; background: linear-gradient(125deg, #edfaff 0%, #f8fcff 54%, #e4f5ff 100%); }
.product-price-list .eyebrow { margin-bottom: 11px; }
.product-price-list h2 { margin: 0 0 12px; color: #071b33; font-size: clamp(27px, 3vw, 38px); letter-spacing: -.045em; }
.product-price-list p { max-width: 710px; margin: 0; color: #405d77; line-height: 1.65; }
.product-price-list .price-list-note { margin-top: 12px; color: #0d669c; font-size: 14px; font-weight: 700; }
.price-list-download { display: flex; flex: 0 0 280px; flex-direction: column; gap: 7px; padding: 19px 21px; border-radius: 15px; background: #0b518a; box-shadow: 0 13px 28px rgba(11,81,138,.2); color: #fff; font-weight: 850; line-height: 1.25; text-decoration: none; transition: transform .2s ease, background .2s ease; }
.price-list-download:hover { transform: translateY(-3px); background: #083e6c; color: #fff; }
.price-list-download span { color: #56ddff; font-size: 20px; }
.price-list-download small { color: #bfeaff; font-size: 11px; font-weight: 750; letter-spacing: .045em; text-transform: uppercase; }
@media (max-width: 700px) { .product-price-list { display: block; padding: 27px 24px; } .price-list-download { margin-top: 23px; } }
.label-options { margin: 80px 0 12px; padding-top: 68px; border-top: 1px solid #d7e6f2; }
.label-options-heading { max-width: 710px; }
.label-options h2 { margin: 0 0 13px; color: #071b33; font-size: clamp(29px, 3.4vw, 42px); letter-spacing: -.05em; }
.label-options-heading > p:last-child { color: #46617a; line-height: 1.65; }
.label-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 31px; }
.label-option { min-height: 298px; padding: 29px; border: 1px solid #d5e3ee; border-radius: 20px; background: #fff; }
.label-illustration { display: block; width: 148px; height: 173px; margin: -10px auto 10px; object-fit: contain; object-position: center bottom; }
.label-option .label-tier { margin: 0 0 16px; color: #0b77bb; font-size: 12px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.label-option h3 { margin: 0 0 11px; color: #071b33; font-size: 27px; letter-spacing: -.04em; }
.label-option > p:not(.label-tier) { margin: 0; color: #48627a; line-height: 1.58; }
.label-option ul { display: grid; gap: 8px; margin: 23px 0 0; padding: 0; list-style: none; }
.label-option li { position: relative; padding-left: 21px; color: #213e59; font-size: 14px; line-height: 1.42; }
.label-option li:before { position: absolute; left: 0; color: #14bde8; content: '✓'; font-weight: 900; }
.basic-label { background: linear-gradient(135deg, #f9fbfc 0%, #dee5e8 52%, #f8fbfc 100%); border-color: #c4d0d5; }
.basic-label .label-tier { color: #3d5968; }
.premium-label { border-color: #a6dff3; background: linear-gradient(135deg, #073e70 0%, #0c6da6 56%, #0f99c1 100%); box-shadow: 0 16px 35px rgba(3, 76, 127, .16); }
.premium-label .label-tier, .premium-label h3, .premium-label > p:not(.label-tier), .premium-label li { color: #fff; }
.premium-label .label-tier { color: #63e3ff; }
.premium-label li:before { color: #62e3ff; }
.label-options-footnote { margin: 21px 0 0; color: #587087; font-size: 14px; line-height: 1.6; }
.label-options-footnote a { color: #0879c8; font-weight: 800; }
@media (max-width: 700px) { .label-options { margin-top: 60px; padding-top: 52px; } .label-option-grid { grid-template-columns: 1fr; } .label-option { min-height: 0; padding: 25px; } }

/* Home hero: restrained moving aurora and grid for depth without distracting from the message. */
.home .hero { background-size: 130% 130%; animation: hero-aurora-drift 18s ease-in-out infinite alternate; }
.home .hero:after { animation: hero-grid-drift 24s linear infinite; }
@keyframes hero-aurora-drift { 0% { background-position: 0% 35%, 100% 72%, 0% 50%; } 100% { background-position: 20% 5%, 74% 92%, 100% 50%; } }
@keyframes hero-grid-drift { from { background-position: 0 0, 0 0; } to { background-position: 76px 76px, 76px 76px; } }
@media (prefers-reduced-motion: reduce) { .home .hero, .home .hero:after { animation: none; } }

/* Home orbit: the signal nodes travel around the ring while the center remains fixed. */
.home .hero-orbit { animation: hero-orbit-turn 16s linear infinite; }
.home .hero-orbit i { animation: hero-orbit-core 16s linear infinite; }
@keyframes hero-orbit-turn { to { transform: rotate(360deg); } }
@keyframes hero-orbit-core { from { transform: translate(-50%, -50%) rotate(0deg); } to { transform: translate(-50%, -50%) rotate(-360deg); } }
@media (prefers-reduced-motion: reduce) { .home .hero-orbit, .home .hero-orbit i { animation: none; } }

.hero-start-callout { position: absolute; top: 142px; right: max(6%, calc((100% - 1120px) / 2)); z-index: 2; display: grid; grid-template-columns: auto auto; align-items: center; column-gap: 13px; width: min(330px, 28vw); margin: 0; padding: 16px 19px 15px 21px; overflow: hidden; border: 1px solid rgba(143, 235, 255, .7); border-radius: 17px; background: linear-gradient(110deg, rgba(7, 94, 148, .9), rgba(20, 198, 243, .3)); box-shadow: 0 16px 35px rgba(0, 0, 0, .22), inset 0 1px 0 rgba(255,255,255,.2); color: #fff; text-decoration: none; }
.hero-start-callout:before { position: absolute; inset: -60% auto -60% -20%; width: 34%; background: linear-gradient(90deg, transparent, rgba(255,255,255,.32), transparent); content: ''; transform: rotate(18deg); animation: hero-callout-glint 5s ease-in-out infinite; }
.hero-start-callout span { color: #bfeeff; font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.hero-start-callout strong { color: #fff; font-size: 38px; letter-spacing: -.06em; line-height: .95; text-shadow: 0 0 24px rgba(126,235,255,.7); }
.hero-start-callout small { grid-column: 1 / -1; margin-top: 7px; color: #e0f7ff; font-size: 12px; font-weight: 650; line-height: 1.38; }
.hero-start-callout b { color: #5ee7ff; font-size: 17px; }
.hero-start-callout:hover { transform: translateY(-3px); border-color: #fff; color: #fff; }
@keyframes hero-callout-glint { 0%, 55% { left: -34%; opacity: 0; } 65% { opacity: 1; } 82%, 100% { left: 118%; opacity: 0; } }
@media (max-width: 900px) { .hero-start-callout { position: relative; top: auto; right: auto; width: min(100%, 430px); margin-top: 31px; } }
@media (max-width: 540px) { .hero-start-callout { margin-top: 26px; } .hero-start-callout strong { font-size: 34px; } }
@media (prefers-reduced-motion: reduce) { .hero-start-callout:before { animation: none; } }
