﻿@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Geist:ital,wght@0,100..900;1,100..900&display=swap');







html, body { width:100%; height:100%;  }
body { padding: 0; margin: 0; 
          font-family: "Geist", sans-serif;
    font-size: 16px; font-weight: 400; line-height: 1.5; color: #2f2f2f; position: relative; text-rendering: optimizeLegibility !important; -webkit-font-smoothing: antialiased !important; -moz-osx-font-smoothing: grayscale; overflow: auto; }



body.pageload { overflow: auto; overflow-x: hidden; }

* { box-sizing:border-box; }
*:hover { -webkit-transition: all ease-out 0.3s; -moz-transition: all ease-out 0.3s; -o-transition: all ease-out 0.3s; transition: all ease-out 0.3s; }
*:focus, .btn-default-focus { box-shadow: none; outline:none !important; }

h1, h2, h3, h4, h5, h6 { font-weight: 600; }
h1, h2, h3, h4, h5, h6, p, ul { padding: 0; margin: 0; }

h2 { font-size:60px; color: #402e3a; }
h3 { font-size:30px; color: #333333; }
h4 { font-size:22px; color: #333333; }


img, svg { border: none; vertical-align: middle; max-width: 100%; }
ul li { list-style: none; }


a { cursor: pointer; color:#333333; font-weight: 400; outline: none !important; text-decoration: none; -webkit-transition: all .2s ease-in-out; -moz-transition: all .2s ease-in-out; -o-transition: all .2s ease-in-out; -ms-transition: all .2s ease-in-out; transition: all .2s ease-in-out; }
a:hover, a:focus { text-decoration: none; color:#333333; }
a, input, button, textarea, a:focus, select:focus { outline: none; }
a:hover, a:focus, select:focus, button:focus { outline: none; text-decoration: none; }


button, input, textarea { outline: none; -webkit-appearance: none; -moz-appearance: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; }




/*===== *************** =====*/


.bg-video { position: absolute; left: 0; right: 0; top:0; bottom: 0; overflow: hidden; }

.bg-video:after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: #04081f;
    opacity: 0.75;
}

.bg-video video, .bg-video .video { width: 100%; height: 600px; object-fit: cover; object-position: center bottom; }

@supports (-ms-ime-align:auto) {
    .bg-video video {
        min-height: 100%;
        min-width: 100%;

        position: fixed;
        
        width:auto;
        height:auto;
        
        left: 50%;
        top: 50%;

        transform: translate(-50%, -50%);
    }
}



.home-page { width:100%; overflow: auto; display: table; position: relative; z-index: 10; padding:40px 0 30px; text-align: center; }
.home-page .center-box { display: table-cell; vertical-align: middle; }


.logo, .logo a, .logo img { width:350px;  display: block; margin: auto; }


.intro-screen { color: #ffffff; }
.intro-screen h1 { font-size: 50px; font-weight: bold; color: #ffffff; margin-top:35px; }
.intro-screen p { font-size: 20px; margin:10px 0; }
.intro-screen .btn { padding:0; max-width:200px; margin:10px; }
.intro-screen .btn img { width:100%; }

.intro-screen .GSA,
.intro-screen .GSA img { width:60px; display: block; margin:5px 10px; }


.intro-screen .copyright { 
    position: absolute; left:0; right:0; bottom:0; padding:10px;
}
.intro-screen .copyright * {
    font-size:17px;
}
.intro-screen .copyright .d-flex {
    display: flex; align-items: center; justify-content: center; margin:10px 0;
}
.intro-screen .copyright a { color: #ff8f00; }

.copyright a { font-weight: bold; text-decoration: underline; margin:0 5px 0 0; }
.copyright a.Logo-Praxis { width:100px; display: block; margin:0 10px; }





h1 img.Logo { width:250px; }
.intro-screen .logo-mark img.Logo { width:auto; height:73px; }
.logo-mark { text-align:center; margin-bottom:10px; }
.logo-mark img.Logo { width:280px; height:auto; display:block; margin:0 auto; }



.privacy-policy { padding:20px 0; text-align: left; }
.privacy-policy h1 { margin: 25px 0 10px; }
.privacy-policy h2 { margin: 40px 0 10px; font-size: 22px; }
.privacy-policy p { margin-bottom:15px; }
.privacy-policy p a { color: #000; font-weight: 700; }
.privacy-policy p a:hover { color: #ff8f00; }

.privacy-policy ul li { margin:0 0 15px; padding-left:20px; position: relative; }
.privacy-policy ul li:before { content: ""; display: block; position: absolute; left:0; top:12px; width:5px; height:5px; background: #666666; border-radius: 50%; -webkit-border-radius: 50%; -moz-border-radius: 50%; }



.copyright { margin:50px 0 0; padding:20px 0 0; border-top:1px solid rgba(0,0,0,0.25); }

.copyright img.Logo-Praxis { width:100px; margin:5px; }




footer {
    background: #eef1f8;
}






.contactPage header {
    position: relative; padding:10px 0;
}
.contactPage header .logo-mark { margin: 0; }





.orangeBtn, .contactus-wrp .orangeBtn:hover {
    color: white;
    font-weight: 600;
    background: #ff8f00;
    background: #ff8f00;
    border: 2px solid #ff8f00;
    padding: 6px 30px !important;
    border-radius: 8px;
}
.orangeBtn:hover {
    color: #ff8f00;
    background: rgba(0,0,0,0.25);
    border: 2px solid #ff8f00;
}

.home-page .orangeBtn {
    position: absolute;
    right: 50px;
    top: 25px;
}




.contactus-wrp {
    padding:15px 0 40px;
}
.contactus-wrp .container {
    max-width:900px;
}
.contactus-wrp p { text-align: center; margin:15px -20px; line-height: 25px; }


.contactus-wrp form p { text-align: left; margin:0; }
form { margin:25px 0 0; padding:25px 30px 30px; background: #d8dfef; border-radius: 10px; }
form h5 { font-weight: bold; margin-bottom:15px;  }
form .btn { background: #ff8f00; padding-left:30px; padding-right:30px; }
form .contact-info { padding:10px 15px; background: rgba(255,255,255,0.4); border-radius: 5px; }
form .contact-info .title { display: flex; justify-content: space-between; align-items: center; }
form .contact-info .title label { margin-right:20px; }
form .contact-info p.note { font-size:15px; line-height: 20px; color: #7b7b7b; }
form .contact-info .form-group { margin:0; }


.form-group { margin-bottom:20px; position: relative; }
.form-group label, .form-group .usa-code { margin:0; position: absolute; left:0; top:0; z-index:1; font-size:18px; line-height: 50px; padding:0 15px; }
.form-group label sup, .form-group sup, .contact-info sup { color: #ff8f00; font-size:0.8em; }


.form-control, select.form-control { width:100%; height:48px; border:2px solid #c9d4ea; background: transparent !important; font-size:18px; padding:0 15px; position: relative; z-index: 2;  border-radius: 5px; }
select.form-control { padding:0 40px 0 15px; background:transparent url("../images/select-arrow.svg")no-repeat right 10px center / 17px !important; 
appearance:none;
}
textarea.form-control { padding:7px 15px; height:80px; resize: none; }

.form-control:focus { border:2px solid #101f6c; outline: none; box-shadow: none; }
.form-control:focus ~ label, .form-control.has-value ~ label { opacity: 0; }


.form-group.radio-listing { margin:15px 0; }
.form-group.radio-listing label { position: relative; padding:0 15px 0 0; line-height: 25px; white-space: nowrap; }

.radio-btn { margin:0px; }
.radio-btn input[type="radio"] { display:none; }
.radio-btn input[type="radio"] + label span { display:inline-block; width:25px; height:25px; margin:-5px 5px 0 0; vertical-align:middle; background:url("../images/radio-btn.svg")no-repeat left top / cover; }

.radio-btn input[type="radio"]:checked + label span { background:url("../images/radio-btn.svg")no-repeat left bottom / cover; }



.form-group.number .form-control, .form-group.number label { padding-left: 40px; }
.form-group.number .usa-code { padding:0 15px; }
/*===== *************** =====*/


/*===== 404 CSS =====*/
.error-page {
    width:100%; height:100vh; padding:50px 0; overflow: auto; display: table; text-align: center;
    background: url("../images/logo-pattern.svg")no-repeat center bottom / contain;
}
.error-page .center-box { 
    display: table-cell; vertical-align: middle; 
}
.error-page .container { 
    display: flex; flex-direction: column; align-items: center; 
}

.FourZeroFour { 
    display: flex; align-items: center;
}
.FourZeroFour * { margin:0 10px; display: block; }
.FourZeroFour span { font-size:180px; }
.FourZeroFour span img { min-width:155px; max-width:155px; }


.BackToHome { 
    color: #ffffff; font-size:18px; font-weight: bold; padding:8px 20px; margin:80px 0 70px; background: #ff8f00; border:3px solid #ff8f00;
}
.BackToHome:hover { 
    color: #ff8f00; background: #ffffff;
}


.error-page h4 { font-size: 30px; font-weight: 100; }


@media screen and (max-width: 767px) {
    
    .FourZeroFour span { font-size:125px; }
    .FourZeroFour span img { min-width:105px; max-width:105px; }

    .BackToHome { 
        font-size:16px;
    }
    
    .error-page h4 { font-size: 25px;  }
    
}

/*===== ----- =====*/






@media screen and (max-width: 1199px) {
    
    
    .logo, .logo a, .logo a img { width: 280px; }
    
    .intro-screen h1 { font-size: 42px; }
    .intro-screen p { font-size: 18px; }
    .intro-screen .btn { max-width: 180px; }
    
    
    .intro-screen .copyright * {
        font-size:15px;
    }
   
    
}



@media screen and (max-width: 991px) {
   
    
}


@media screen and (max-width: 767px) {
    body { font-size: 14px; line-height: 24px; }
    
    

    
    .home-page .orangeBtn {
    right: 20px;
    top: 20px;
}
    
    .orangeBtn, .contactus-wrp .orangeBtn:hover {
    padding: 4px 20px !important;
}
  
    .intro-screen .logo-mark img.Logo { width:auto; height:51px; }
    
    .intro-screen h1 { font-size: 28px; }
    .intro-screen h1 br { display: none; }
    .intro-screen p { font-size: 16px; }
    .intro-screen .btn { max-width: 150px; margin:0; }
    
    
    .intro-screen .copyright { padding:15px 5px; }
    .intro-screen .copyright * {
        font-size:13px;
    }
    
    .copyright a.Logo-Praxis { margin:5px; }
    
    
}






/*===== *************** =====*/



/*===== Homepage content sections — DARK THEME =====
   Dark navy base with brand accents: orange #FF8F00, light orange #FFA748, deep orange #C66802 */

/* Allow natural page scroll when content is present (video stays fixed behind hero) */
body.has-content, body.has-content html { height:auto; }
body.has-content { overflow-x:hidden; background:#04081f; }
body.has-content .home-page { position: relative; height:auto; display:flex; align-items:center; justify-content:center; overflow:visible; }
body.has-content .home-page .center-box { display:block; }
body.has-content .intro-screen .copyright { position:static; }

/* Scroll cue in hero */
.scroll-cue { 
    pointer-events: none;
    display: flex; align-items:center; justify-content: center; margin:25px 0 35px;
    color:#f2f5fa; font-size:15px; letter-spacing:0.5px; opacity:0.9; 
}
.scroll-cue:hover { color:#ffa748; opacity:1; }
.scroll-cue svg { animation:cueBounce 1.8s ease-in-out infinite; margin:0 10px; }
@keyframes cueBounce { 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(6px);} }

/* Dark content wrapper sits above the fixed video */
.content-wrap { position:relative; z-index:10; background:#04081f; }

.contentSec { padding:45px 0 30px; opacity:0; transform:translateY(30px); transition:opacity .7s ease, transform .7s ease; }
.contentSec.in-view { opacity:1; transform:translateY(0); }
/* Alternate section gets a deeper navy to separate from the base */
.contentSec.alt { background:#0a1029; }

.contentSec.in-view {
    padding:45px 0;
}

/* First (overview) section — reduced height */
#overview.contentSec { padding:48px 0 30px; }

/* Closing section — taller so the background image reads */
.closingSec.contentSec { padding:80px 0; }

.sec-head { margin-bottom:28px; text-align:center; }
.sec-head .eyebrow { display:inline-block; font-size:14px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:#ffa748; margin-bottom:14px; }
.contentSec h2 { font-size:40px; line-height:1.15; color:#f2f5fa; }
.contentSec h3 { font-size:30px; color:#f2f5fa; }
.contentSec .sec-head h2 { font-size:30px; }
#overview.contentSec h2 { font-size:34px; }

.lead-text { font-size:20px; line-height:1.6; color:#dfe4f0; margin-bottom:18px; }
.contentSec p { font-size:18px; line-height:1.7; color:#aeb6cc; margin-bottom:18px; }
.contentSec .container { max-width:1040px; }

/* Image-in-layout sections */
.media-row { margin-bottom:6px; }
.media-row-rev { flex-direction:row-reverse; }
.sec-head-left { text-align:left; margin-bottom:18px; }
.media-illus { padding:6px; }
.media-illus img { width:100%; height:auto; display:block; border-radius:28px; box-shadow:0 20px 50px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,143,0,0.10); }
@media screen and (max-width:991px) {
    .media-illus { max-width:420px; margin:26px auto 0; }
    .media-row-rev .media-illus { margin:0 auto 26px; }
    .sec-head-left { text-align:center; }
}

/* Verify grid (icon + text, horizontal layout like feature list) */
.verify-grid { margin-top:30px; }
.verify-card { height:100%; display:flex; align-items:center; gap:14px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,143,0,0.16); border-radius:12px; padding:18px 20px; box-shadow:0 8px 24px rgba(0,0,0,0.28); }
.verify-card .vc-top { display:flex; align-items:center; margin:0; flex:0 0 auto; }
.verify-card .vc-icon { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px; background:rgba(255,167,72,0.18); color:#ffa748; }
.verify-card .vc-icon svg { width:23px; height:23px; }
.verify-card p { font-size:17px; font-weight:500; color:#f2f5fa; line-height:1.45; margin:0; }
.verify-card:hover { transform:translateY(-4px); border-color:rgba(255,143,0,0.35); background:rgba(255,255,255,0.08); box-shadow:0 14px 30px rgba(0,0,0,0.42); }

/* Feature list with topic icons */
.feature-list { margin:15px 0; padding:0; }
.feature-list li { list-style:none; }
.feature-list li span { display:flex; align-items:center; gap:14px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,143,0,0.16); border-radius:12px; padding:18px 20px; font-size:17px; color:#f2f5fa; height:100%; }
.feature-list li span:hover { border-color:rgba(255,143,0,0.35); background:rgba(255,255,255,0.08); }
.feature-list .fl-icon { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px; background:rgba(255,167,72,0.18); color:#ffa748; }
.feature-list .fl-icon svg { width:23px; height:23px; }

/* Callout / departure authorization — indigo→blue gradient, mint sup */
.callout { margin-top:30px; background:linear-gradient( 135deg, rgba(198,104,2,0.25), rgba(255,143,0,0.45) ); color:#ffffff; border-radius:16px; padding:30px 34px; font-size:20px; line-height:1.6; font-weight:500;  border:1px solid rgba(255,143,0,0.75);
    box-shadow:0 10px 25px rgba(198,104,2,0.15);
}
.callout sup { color:#ffa748; }

/* Benefit grid — glass cards, mint check badge */
.benefit-card { height:100%; background:rgba(255,255,255,0.05); border:1px solid rgba(255,143,0,0.16); border-radius:12px; padding:20px 22px; font-size:17px; color:#eef1f8; display:flex; align-items:center; position:relative; padding-left:50px; }
.benefit-card:before { content:""; position:absolute; left:18px; top:50%; transform:translateY(-50%); width:22px; height:22px; background:#ffa748 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230A1442' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 6'/%3E%3C/svg%3E") no-repeat center / 13px; border-radius:50%; }
.benefit-card:hover { transform:translateY(-3px); border-color:rgba(255,143,0,0.35); background:rgba(255,255,255,0.08); }

/* Closing section — dark wash over dock image, light text */
.closingSec { 
    position:relative; background:#0a1029; overflow:hidden;
}
.closingSec:before {
    content:""; position:absolute; inset:0; z-index:0;
    background:
        linear-gradient(rgba(4,8,31,0.78), rgba(4,8,31,0.78)),
        url("../images/dock-bg.jpg") center / cover no-repeat;
    background-attachment: fixed;
}
.closingSec .container { position:relative; z-index:1; }
.closingSec .closing-line { color:#ffffff; font-size:36px; line-height:1.3; }
.closingSec .closing-line sup { color:#ffa748; }
.closingSec .btn { padding:0; max-width:200px; display:inline-block; }
.closingSec .btn img { width:100%; }

/* Footer — deepest navy */
.site-footer { background:#04081f; padding:25px 0; border-top:1px solid rgba(255,167,72,0.22); }
.site-footer .copyright { border-top:none; margin:0; padding:0 0 0; color:#aeb6cc; }
.site-footer .copyright * { font-size:16px; color:#aeb6cc; }
.site-footer .copyright a { color:#ff8f00; }
.site-footer .copyright a.Logo-Praxis { width:100px; }



.btnsGroup { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; margin:18px 0; }

.btnsGroup .btn,
.btnsGroup .btn img {
    width:100%; height:auto;
    padding:0; max-width:171px; margin:0;
}


@media screen and (max-width:991px) {
    .contentSec { padding:56px 0; }
    #overview.contentSec { padding:40px 0 48px; }
    .contentSec h2 { font-size:30px; }
    #overview.contentSec h2 { font-size:28px; }
    .closingSec .closing-line { font-size:28px; }
}

@media screen and (max-width:767px) {
    .contentSec { padding:42px 0; }
    #overview.contentSec { padding:32px 0 40px; }
    .contentSec h2 { font-size:25px; }
    #overview.contentSec h2 { font-size:24px; }
    .contentSec h3 { font-size:23px; }
    .lead-text { font-size:17px; }
    .contentSec p { font-size:16px; }
    .callout { font-size:17px; padding:24px; }
    .closingSec .closing-line { font-size:23px; }
    body.has-content .home-page { padding:60px 0 35px; }
    
    .btnsGroup .btn,
.btnsGroup .btn img {
    width:100%; height:auto;
    padding:0; max-width:120px; margin:0;
}
        .intro-screen .GSA, .intro-screen .GSA img {
        width: 45px;
        margin: 0;
    }
    
}

/*===== ----- =====*/


/*===== SafetyLane — content-driven animations =====*/

.mode-strip { margin-top:30px; }
.mode-card { position:relative; height:100%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:10px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,143,0,0.16); border-radius:14px; padding:22px 14px; box-shadow:0 8px 24px rgba(0,0,0,0.28); overflow:hidden; }
.mode-card .mc-icon { display:inline-flex; align-items:center; justify-content:center; width:52px; height:52px; border-radius:14px; background:rgba(255,167,72,0.18); color:#ffa748; }
.mode-card .mc-icon svg { width:28px; height:28px; }
.mode-card span { font-size:15px; font-weight:600; color:#f2f5fa; line-height:1.3; }
.mode-card:hover { transform:translateY(-4px); border-color:rgba(255,143,0,0.35); background:rgba(255,255,255,0.08); box-shadow:0 14px 30px rgba(0,0,0,0.42); }
.contentSec.in-view .mode-card .mc-icon { animation:modeBob 3.4s ease-in-out infinite; }
.contentSec.in-view .mode-card:nth-child(odd) .mc-icon { animation-delay:.5s; }
.contentSec.in-view .mode-card:nth-child(3n) .mc-icon { animation-delay:1s; }
@keyframes modeBob { 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-7px);} }

.live-line { height:3px; border-radius:3px; margin:6px auto 0; max-width:180px; background:linear-gradient(90deg,#FF8F00,#FFA748,#FF8F00); background-size:200% 100%; }
.contentSec.in-view .live-line { animation:liveSweep 2.6s linear infinite; }
@keyframes liveSweep { 0%{ background-position:0% 0;} 100%{ background-position:200% 0;} }

.intel-grid .verify-card { opacity:0; transform:translateY(18px); }
.contentSec.in-view .intel-grid .verify-card { animation:intelRise .55s ease forwards; }
.contentSec.in-view .intel-grid > div:nth-child(1) .verify-card { animation-delay:.05s; }
.contentSec.in-view .intel-grid > div:nth-child(2) .verify-card { animation-delay:.12s; }
.contentSec.in-view .intel-grid > div:nth-child(3) .verify-card { animation-delay:.19s; }
.contentSec.in-view .intel-grid > div:nth-child(4) .verify-card { animation-delay:.26s; }
.contentSec.in-view .intel-grid > div:nth-child(5) .verify-card { animation-delay:.33s; }
.contentSec.in-view .intel-grid > div:nth-child(6) .verify-card { animation-delay:.40s; }
.contentSec.in-view .intel-grid > div:nth-child(7) .verify-card { animation-delay:.47s; }
.contentSec.in-view .intel-grid > div:nth-child(8) .verify-card { animation-delay:.54s; }
.contentSec.in-view .intel-grid > div:nth-child(9) .verify-card { animation-delay:.61s; }
@keyframes intelRise { to{ opacity:1; transform:translateY(0);} }

.live-dot { display:inline-block; width:10px; height:10px; border-radius:50%; background:#ffa748; margin-right:9px; vertical-align:middle; box-shadow:0 0 0 0 rgba(255,167,72,0.6); }
.contentSec.in-view .live-dot { animation:livePulse 1.8s ease-out infinite; }
@keyframes livePulse { 0%{ box-shadow:0 0 0 0 rgba(255,167,72,0.55);} 70%{ box-shadow:0 0 0 12px rgba(255,167,72,0);} 100%{ box-shadow:0 0 0 0 rgba(255,167,72,0);} }

@media (prefers-reduced-motion: reduce) {
  .contentSec.in-view .mode-card .mc-icon,
  .contentSec.in-view .live-line,
  .contentSec.in-view .live-dot,
  .contentSec.in-view .intel-grid .verify-card { animation:none; }
  .intel-grid .verify-card { opacity:1; transform:none; }
}
