
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Montserrat:wght@500;600;700;800&display=swap');

:root{
    --navy:#0B2E4F;
    --green:#57943A;
    --gray:#6B7280;
    --light:#F5F7FA;
    --white:#FFFFFF;

    --shadow-sm:0 2px 8px rgba(0,0,0,.08);
    --shadow-md:0 8px 20px rgba(0,0,0,.12);
    --shadow-lg:0 15px 35px rgba(0,0,0,.18);

    --radius:14px;

    --max-width:1200px;

    --transition:.3s ease;
}

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    font-family:'Inter',sans-serif;
    color:#243447;
    background:#fff;
    line-height:1.7;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:inherit;
}

.container{
    width:90%;
    max-width:var(--max-width);
    margin:auto;
}

h1,h2,h3,h4{
    font-family:'Montserrat',sans-serif;
    line-height:1.2;
}

section{
    padding:80px 0;
}

.section-header{
    text-align:center;
    margin-bottom:50px;
}

.section-header h2{
    font-size:2.4rem;
    color:var(--navy);
    margin-bottom:10px;
}

.section-header p{
    max-width:700px;
    margin:auto;
    color:var(--gray);
}

/* NAVIGATION */

header{
    position:sticky;
    top:0;
    z-index:1000;
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(10px);
    box-shadow:var(--shadow-sm);
}

.navbar{
    display:flex;
    justify-content:space-between;
    align-items:center;

    gap:30px;

    padding:18px 0;
}

.navbar > *{
    flex-shrink:1;
}

.logo{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;

    width:100%;
    max-width:650px;
    min-width:0;
}

.logo img{
    display:block;
    margin:0 auto;
    width:100%;
    max-width:650px;
    height:auto;
}

.logo-tagline{
    display:block;
    width:100%;
    text-align:center;

    font-size:1rem;
    font-weight:600;
    color:var(--gray);

    margin-top:8px;

    letter-spacing:.4px;
    line-height:1.2;
}

@media (max-width:900px){

    .logo{
        max-width:450px;
    }

    .logo-tagline{
        display:none;
    }

}

@media (max-width:640px){

    .logo{
        max-width:320px;
    }

}

@media (max-width:640px){

    .hero{
        padding:60px 0;
    }

    
	.hero p{
        font-size:1rem;
        line-height:1.6;
    }


    .hero p{
        font-size:1rem;
    }

    .tagline{
        font-size:0.95rem;
    }

}

@media (max-width:640px){

    .card,
    .industry-card,
    .service-card,
    .feature-box,
    .form-card{
        padding:20px;
    }

    section{
        padding:50px 0;
    }

}

.nav-links{
    display:flex;
    gap:30px;
}

.nav-links a{
    font-weight:600;
    color:var(--navy);
    transition:var(--transition);
}

.nav-links a:hover{
    color:var(--green);
}

.mobile-menu{
    display:none;
}

/* BUTTONS */

.btn{
    display:inline-block;
    padding:14px 26px;
    border-radius:999px;
    font-weight:600;
    transition:var(--transition);
}

.btn-primary{
    background:var(--green);
    color:white;
}

.btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-md);
}

.btn-outline{
    border:2px solid white;
    color:white;
}

.btn-outline:hover{
    background:white;
    color:var(--navy);
}

.hero{
    background:
    linear-gradient(
        135deg,
        rgba(11,46,79,.95),
        rgba(7,22,38,.95)
    );
    color:white;

    padding:120px 0;
}

.hero-content{
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.hero h1{
    font-size:4rem;
    margin-bottom:25px;
}

.hero p{
    font-size:1.2rem;
    margin-bottom:35px;
    opacity:.95;
}


.hero-buttons{
    display:flex;
    justify-content:center;

    flex-wrap:wrap;

    gap:20px;

    margin:45px 0;
}


.trust-badges{
    display:flex;
    flex-wrap:wrap;
    gap:15px;
}

.badge{
    background:rgba(255,255,255,.15);
    padding:10px 18px;
    border-radius:999px;
}

.grid{
    display:grid;
    gap:30px;
}

.grid-3{
    grid-template-columns:repeat(3,1fr);
}

.grid-4{
    grid-template-columns:repeat(4,1fr);
}

.card{
    background:white;
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
    padding:30px;
    transition:var(--transition);
}

.card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-lg);
}

.icon{
    font-size:2.5rem;
    margin-bottom:20px;
}

.card h3{
    color:var(--navy);
    margin-bottom:12px;
}

@media(max-width:900px){

    .hero h1{
        font-size:3rem;
    }

    .grid-3,
    .grid-4{
        grid-template-columns:1fr 1fr;
    }

    .nav-links{
        display:none;
    }

    .mobile-menu{
        display:block;
        font-size:2rem;
        color:var(--navy);
    }
}

@media(max-width:640px){

    .hero h1{
        font-size:2.2rem;
    }

    .hero-buttons{
        flex-direction:column;
    }

    .grid-3,
    .grid-4{
        grid-template-columns:1fr;
    }
}

/* ==========================================
   FEATURE SECTION
========================================== */

.features{
    background:var(--light);
}

.feature-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:30px;
}

.feature-box{
    background:white;
    padding:35px;
    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
    transition:var(--transition);
}

.feature-box:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-lg);
}

.feature-box h3{
    color:var(--navy);
    margin-bottom:15px;
}

.feature-box p{
    color:var(--gray);
}

/* ==========================================
   INDUSTRY CARDS
========================================== */

.industry-card{
    position:relative;
    overflow:hidden;

    background:white;

    border-radius:var(--radius);
    padding:35px;

    box-shadow:var(--shadow-sm);

    transition:var(--transition);
}

.industry-card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-lg);
}

.industry-card::before{
    content:"";

    position:absolute;
    top:0;
    left:0;

    width:100%;
    height:5px;

    background:var(--green);
}

.industry-card h3{
    color:var(--navy);
    margin-bottom:15px;
}

.industry-card p{
    color:var(--gray);
}

/* ==========================================
   SERVICE CARDS
========================================== */

.service-card{
    background:white;
    border-radius:var(--radius);

    padding:30px;

    box-shadow:var(--shadow-sm);

    transition:var(--transition);
}

.service-card:hover{
    transform:translateY(-6px);
    box-shadow:var(--shadow-lg);
}

.service-card ul{
    margin-top:15px;
    margin-left:20px;
}

.service-card li{
    margin-bottom:8px;
}

.service-card h3{
    color:var(--navy);
    margin-bottom:10px;
}

/* ==========================================
   TESTIMONIALS
========================================== */

.testimonials{
    background:var(--light);
}

.testimonial-card{
    text-align:center;
    padding:35px;

    background:white;

    border-radius:var(--radius);
    box-shadow:var(--shadow-sm);
}

.testimonial-card p{
    font-style:italic;
    margin-bottom:15px;
}

.testimonial-author{
    color:var(--green);
    font-weight:600;
}

/* ==========================================
   CTA BANNER
========================================== */

.cta-banner{
    background:
    linear-gradient(
        135deg,
        var(--green),
        #6ba745
    );

    color:white;

    text-align:center;

    border-radius:var(--radius);

    padding:70px 40px;
}

.cta-banner h2{
    margin-bottom:20px;
}

.cta-banner p{
    margin-bottom:30px;
    font-size:1.1rem;
}

.cta-banner .btn{
    background:white;
    color:var(--navy);
}

.cta-banner .btn:hover{
    background:#f2f2f2;
}

/* ==========================================
   FORMS
========================================== */

.form-wrapper{
    display:grid;
    grid-template-columns:2fr 1fr;
    gap:40px;
}

.form-card{
    background:white;
    border-radius:var(--radius);

    padding:40px;

    box-shadow:var(--shadow-md);
}

.form-card h2{
    color:var(--navy);
    margin-bottom:20px;
}

.form-group{
    margin-bottom:20px;
}

.form-group label{
    display:block;
    font-weight:600;
    margin-bottom:8px;
}
input:not([type="radio"]):not([type="checkbox"]),
textarea,
select
{
    width:100%;

    padding:14px;

    border:1px solid #d6d6d6;
    border-radius:10px;

    font-size:1rem;

    transition:var(--transition);
}


input:not([type="radio"]):focus,
textarea:focus,
select:focus{
    outline:none;
    border-color:var(--green);
    box-shadow:0 0 0 3px rgba(87,148,58,.15);
}


textarea{
    resize:vertical;
}

.contact-info{
    background:var(--navy);
    color:white;

    border-radius:var(--radius);

    padding:40px;
}

.contact-info h3{
    margin-bottom:20px;
}

.contact-info p{
    margin-bottom:15px;
}

/* ==========================================
   FOOTER
========================================== */

footer{
    background:var(--navy);
    color:white;

    margin-top:80px;
}

.footer-grid{
    display:grid;

    grid-template-columns:
    repeat(4,1fr);

    gap:40px;

    padding:70px 0;
}

.footer-column h4{
    margin-bottom:20px;
}

.footer-column a{
    display:block;

    margin-bottom:12px;

    opacity:.85;
}

.footer-column a:hover{
    opacity:1;
}

.footer-bottom{
    border-top:
    1px solid rgba(255,255,255,.15);

    text-align:center;

    padding:25px 0;
}

/* ==========================================
   MOBILE
========================================== */

@media(max-width:900px){

    .feature-grid{
        grid-template-columns:1fr;
    }

    .form-wrapper{
        grid-template-columns:1fr;
    }

    .footer-grid{
        grid-template-columns:1fr 1fr;
    }
}

@media(max-width:640px){

    .footer-grid{
        grid-template-columns:1fr;
    }
}

@media (max-width: 900px) {

    .navbar{
        position:relative;
    }

    .nav-links{
        display:none;
    }

    .nav-links.active{
        display:flex;
        flex-direction:column;

        position:absolute;

        top:100%;
        left:0;
        right:0;

        background:#ffffff;

        padding:20px;

        box-shadow:0 10px 25px rgba(0,0,0,.15);

        z-index:999;
    }

    .nav-links.active a{
        padding:12px 0;
        border-bottom:1px solid #ececec;
    }

    .mobile-menu{
        display:block;
        cursor:pointer;
        font-size:2rem;
    }

}

/* ==========================================
   ASSESSMENT PAGE
========================================== */

.assessment-section{
    margin-bottom:20px;
}

.assessment-header{
    background:var(--navy);
    color:white;
    padding:18px 25px;
    border-radius:14px;
    margin-bottom:15px;
}

.assessment-header h2{
    margin:0;
    color:white;
    font-size:1.4rem;
}

.assessment-question{
    background:white;
    border-radius:14px;
    padding:20px;
    box-shadow:var(--shadow-sm);
    margin-bottom:10px;
}

.assessment-question h4{
    margin-bottom:8px;
    color:var(--navy);
}

.assessment-question p{
    margin-bottom:10px;
    color:var(--gray);
    line-height:1.5;
}

.assessment-block{
    margin-top:25px;
}

.assessment-submit{
    margin-top:25px;
    text-align:center;
}

.assessment-submit .btn{
    min-width:240px;
}

.assessment-followup{
    margin-top:65px;

    max-width:650px;

    text-align:center;
    color:var(--gray);
    font-size:.95rem;
    line-height:1.5;

    margin-left:auto;
    margin-right:auto;
}

.radio-group{
    display:flex;
    gap:24px;
    flex-wrap:wrap;
    margin-top:6px;
}

.radio-option{
    display:flex;
    align-items:center;
    gap:8px;
    cursor:pointer;
    font-weight:600;
}

.radio-option input[type="radio"]{
    width:auto;
    margin:0;
    transform:scale(1.15);
    cursor:pointer;
}

.results-card{
    background:#eef7ea;
    border-left:6px solid var(--green);
    padding:25px;
    border-radius:14px;
    margin-top:25px;
}

.results-card h2{
    color:var(--navy);
    margin-bottom:12px;
}

/* Mobile Assessment Layout */

@media(max-width:768px){

    .assessment-section{
        margin-bottom:20px;
    }

    .assessment-question{
        padding:18px;
        margin-bottom:10px;
    }

    .radio-group{
        flex-direction:column;
        gap:10px;
    }

}

@media(max-width:640px){

    .assessment-submit .btn{
        width:100%;
    }

}

/* ==========================================
   TAGLINE
========================================== */

.tagline{
    color:#ffffff;
    font-size:1.5rem;
    font-weight:700;
    margin:15px 0 25px;
    letter-spacing:0.5px;
    opacity:.95;
}

@media(max-width:640px){
    .tagline{
        font-size:1.15rem;
    }
}

/* ==========================================
   TRUST STATS
========================================== */


.stats-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:25px;
    margin-top:50px;
    max-width:900px;
    margin-left:auto;
    margin-right:auto;
}

.stat-box{
    background:rgba(255,255,255,.18);
    border-radius:16px;
    padding:35px 25px;
    text-align:center;
    min-height:180px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}

.stat-box h3{
    font-size:3rem;
    color:white;
    margin-bottom:15px;
}

.stat-box p{
    margin:0;
}


/* ==========================================
   MOBILE
========================================== */

@media(max-width:768px){

    .stats-grid{
        grid-template-columns:1fr 1fr;
    }

    .owner-card{
        padding:30px;
    }

}

@media(max-width:640px){

    .stats-grid{
        grid-template-columns:1fr;
    }

}

/* ==========================================
   TRUST BANNER
========================================== */


.trust-banner{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;

    gap:20px;

    margin-top:40px;
    margin-bottom:50px;
}

.trust-item{
    background:rgba(255,255,255,.18);

    padding:16px 24px;

    border-radius:999px;

    font-size:1rem;
    font-weight:600;

    min-width:220px;
    text-align:center;
}


/* ==========================================
   EMERGENCY SUPPORT
========================================== */

.emergency-banner{
    margin:25px 0;

    padding:18px 22px;

    background:#fff7e6;
    border-left:6px solid var(--green);
    border-radius:12px;

    color:var(--navy);

    font-size:1rem;
    font-weight:600;

    box-shadow:var(--shadow-sm);
}

.emergency-banner strong{
    color:var(--navy);
}

.emergency-banner a{
    color:var(--green);
    font-weight:700;
}

.emergency-banner a:hover{
    text-decoration:underline;
}

/* ==========================================
   SERVICE AREA
========================================== */

.location-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px;
}

.location-grid div{
    background:white;
    padding:20px;
    border-radius:14px;
    text-align:center;
    box-shadow:var(--shadow-sm);
    font-weight:600;
}

/* ==========================================
   MOBILE
========================================== */

@media(max-width:900px){

    .owner-profile{
        grid-template-columns:1fr;
    }

    .location-grid{
        grid-template-columns:1fr 1fr;
    }

}

@media(max-width:640px){

    .location-grid{
        grid-template-columns:1fr;
    }

}

/* ==========================================
   FOUNDER SECTION
========================================== */

.owner-section{
    background:#f8fafc;
}

.owner-profile{
    display:grid;
    grid-template-columns:320px 1fr;
    gap:60px;
    align-items:center;

    background:white;
    border-radius:20px;
    padding:50px;

    box-shadow:var(--shadow-md);
}

.owner-photo img{
    width:100%;
    border-radius:20px;
    box-shadow:var(--shadow-lg);
}

.owner-label{
    display:inline-block;

    color:var(--green);

    font-size:.9rem;
    font-weight:700;

    letter-spacing:1px;
    text-transform:uppercase;

    margin-bottom:15px;
}

.owner-content h2{
    color:var(--navy);
    margin-bottom:20px;
}

.owner-content p{
    margin-bottom:18px;
    line-height:1.8;
}

.owner-content .btn{
    margin-top:15px;
}

@media(max-width:900px){

    .owner-profile{
        grid-template-columns:1fr;
        text-align:center;
        padding:35px;
    }

    .owner-photo{
        max-width:280px;
        margin:auto;
    }

}


/* ==========================================
   PRICING PAGE
========================================== */

.pricing-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:35px;

    max-width:1200px;
    margin:60px auto 0;
}

.pricing-card{
    background:white;

    border-radius:20px;

    padding:40px 35px;

    box-shadow:var(--shadow-md);

    text-align:center;

    transition:var(--transition);

    display:flex;
    flex-direction:column;
}

.pricing-card:hover{
    transform:translateY(-8px);
    box-shadow:var(--shadow-lg);
}

.pricing-card h3{
    color:var(--navy);
    font-size:2rem;
    margin-bottom:18px;
}

.price{
    font-size:3.5rem;
    font-weight:800;

    color:var(--green);

    margin-bottom:10px;
}

.price span{
    display:block;
    font-size:1rem;
    font-weight:500;

    color:var(--gray);
}

.pricing-card ul{
    list-style:none;

    margin:30px 0;

    padding:0;
}

.pricing-card li{
    padding:12px 0;

    border-bottom:1px solid #e9ecef;
}

.pricing-card li:last-child{
    border-bottom:none;
}

.pricing-card .btn{
    margin-top:auto;
}

.pricing-card.featured{
    border:4px solid var(--green);
    transform:scale(1.05);
}

.pricing-card.featured::before{
    content:"MOST POPULAR";

    display:block;

    background:var(--green);

    color:white;

    font-size:.8rem;
    font-weight:700;

    letter-spacing:1px;

    padding:10px;

    border-radius:999px;

    margin-bottom:25px;
}

.pricing-hero{
    padding:110px 0;
}

.pricing-hero p{
    max-width:700px;
    margin:20px auto 0;
}

.pricing-header{
    margin-bottom:60px;
}

@media(max-width:900px){

    .pricing-grid{
        grid-template-columns:1fr;
        gap:25px;
    }

    .pricing-card.featured{
        transform:none;
    }

}

/* ==========================
   PRICING PAGE FIXES
   Added to correct pricing page spacing and layout
========================== */

.pricing-hero {
    padding: 90px 0;
}

.pricing-hero p {
    max-width: 700px;
    margin: 20px auto 0;
}

.pricing-features {
    background: #f5f7fa;
    padding: 60px 0;
}

.pricing-features .section-header {
    margin-bottom: 35px;
}

.pricing-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.pricing-feature-box {
    background: #ffffff;
    padding: 25px 20px;
    border-radius: 14px;
    text-align: center;
    font-weight: 600;
    color: var(--navy);
    box-shadow: var(--shadow-sm);
}

.pricing-plans-section {
    padding: 70px 0 80px;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 35px;
    max-width: 1200px;
    margin: 40px auto 0;
    align-items: stretch;
}

.pricing-card {
    min-height: 100%;
}

.pricing-custom-section {
    padding: 60px 0;
}

.pricing-custom-section .cta-banner {
    margin: 0;
}

@media (max-width: 900px) {
    .pricing-hero {
        padding: 70px 0;
    }

    .pricing-feature-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .pricing-grid {
        grid-template-columns: 1fr;
        gap: 25px;
        max-width: 560px;
    }

    .pricing-card.featured {
        transform: none;
    }
}

@media (max-width: 640px) {
    .pricing-hero {
        padding: 55px 0;
    }

    .pricing-feature-grid {
        grid-template-columns: 1fr;
    }

    .pricing-plans-section {
        padding: 50px 0 60px;
    }
}

/* ==========================================
   MOBILE HOVER BEHAVIOR FIX
   Purpose:
   - Non-link tiles never pop out.
   - Link tiles only pop out on devices that truly support hover, such as desktop/laptop.
   - Touch/mobile devices do not retain sticky hover transform states.
   Keep this block at the very end of styles.css.
========================================== */

/* Default: all informational card-style tiles stay still */
.card:hover,
.feature-box:hover,
.service-card:hover,
.industry-card:hover,
.pricing-card:hover,
.pricing-feature-box:hover,
.stat-box:hover,
.assessment-question:hover,
.results-card:hover,
.card:active,
.feature-box:active,
.service-card:active,
.industry-card:active,
.pricing-card:active,
.pricing-feature-box:active,
.stat-box:active,
.assessment-question:active,
.results-card:active{
    transform:none !important;
    box-shadow:var(--shadow-sm) !important;
    cursor:default !important;
    outline:none !important;
}

/* Featured pricing card remains visually featured on desktop, but does not behave like a link */
.pricing-card.featured:hover,
.pricing-card.featured:active{
    transform:scale(1.05) !important;
    box-shadow:var(--shadow-md) !important;
    cursor:default !important;
}

@media(max-width:900px){
    .pricing-card.featured:hover,
    .pricing-card.featured:active{
        transform:none !important;
    }
}

/* Desktop/laptop only: hyperlink tiles may pop out */
@media (hover:hover) and (pointer:fine){
    a.card,
    a.feature-box,
    a.service-card,
    a.industry-card,
    a.pricing-card,
    .clickable-card{
        cursor:pointer !important;
        transition:var(--transition);
    }

    a.card:hover,
    a.feature-box:hover,
    a.service-card:hover,
    a.industry-card:hover,
    a.pricing-card:hover,
    .clickable-card:hover{
        transform:translateY(-6px) !important;
        box-shadow:var(--shadow-lg) !important;
        cursor:pointer !important;
        outline:2px solid rgba(87,148,58,.25) !important;
        outline-offset:3px !important;
    }
}

/* Touch/mobile/tablet: prevent sticky hover pop-out even on hyperlink tiles */
@media (hover:none), (pointer:coarse){
    .card:hover,
    .feature-box:hover,
    .service-card:hover,
    .industry-card:hover,
    .pricing-card:hover,
    .pricing-feature-box:hover,
    .stat-box:hover,
    .assessment-question:hover,
    .results-card:hover,
    a.card:hover,
    a.feature-box:hover,
    a.service-card:hover,
    a.industry-card:hover,
    a.pricing-card:hover,
    .clickable-card:hover,
    .card:active,
    .feature-box:active,
    .service-card:active,
    .industry-card:active,
    .pricing-card:active,
    .pricing-feature-box:active,
    .stat-box:active,
    .assessment-question:active,
    .results-card:active,
    a.card:active,
    a.feature-box:active,
    a.service-card:active,
    a.industry-card:active,
    a.pricing-card:active,
    .clickable-card:active{
        transform:none !important;
        box-shadow:var(--shadow-sm) !important;
        outline:none !important;
    }

    a.card,
    a.feature-box,
    a.service-card,
    a.industry-card,
    a.pricing-card,
    .clickable-card{
        cursor:pointer !important;
    }
}

/* Buttons and text links remain visibly interactive */
.btn:hover,
.nav-links a:hover,
.footer-column a:hover{
    cursor:pointer !important;
}

/* END MOBILE HOVER BEHAVIOR FIX */

