/* ============================================================
   FLEXBIZ SOLUTIONS — Professional Stylesheet
   Design: Clean, minimal, warm-professional palette
   ============================================================ */

/* ---------- Design tokens ---------- */
:root {
    --c-primary:    #1b4965;
    --c-primary-l:  #2b6d94;
    --c-primary-d:  #0f2d40;
    --c-accent:     #62b6cb;
    --c-accent-l:   #bee9e8;
    --c-warm:       #f4a261;
    --c-dark:       #1a1a2e;
    --c-body:       #475569;
    --c-muted:      #94a3b8;
    --c-border:     #e2e8f0;
    --c-bg:         #ffffff;
    --c-bg-alt:     #f8fafc;
    --c-bg-dark:    #0f172a;

    --ff-body:    'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
    --ff-heading: 'DM Serif Display', Georgia, serif;

    --shadow-sm:  0 1px 3px rgba(0,0,0,.06);
    --shadow:     0 4px 12px rgba(0,0,0,.08);
    --shadow-lg:  0 12px 36px rgba(0,0,0,.10);

    --radius:     10px;
    --radius-lg:  18px;
    --radius-xl:  28px;

    --ease:       cubic-bezier(.4,0,.2,1);
    --transition: .3s var(--ease);
}

/* ---------- Reset & Base ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px;-webkit-text-size-adjust:100%}
body{
    font-family:var(--ff-body);
    font-size:16px;
    line-height:1.7;
    color:var(--c-body);
    background:var(--c-bg);
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--ff-heading);color:var(--c-dark);line-height:1.2;font-weight:400}

/* ---------- Layout ---------- */
.wrap{
    max-width:1140px;
    margin:0 auto;
    padding:0 24px;
}

/* ---------- Section Label ---------- */
.section-label{
    margin-bottom:14px;
}
.section-label span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:2.5px;
    color:var(--c-primary);
    background:rgba(27,73,101,.07);
    padding:6px 16px;
    border-radius:100px;
}

/* ==========================================================
   HEADER / NAVBAR
   ========================================================== */
.header{
    position:fixed;top:0;left:0;right:0;
    z-index:1000;
    padding:18px 0;
    transition:background .35s var(--ease), box-shadow .35s var(--ease), padding .35s var(--ease);
}
.header.scrolled{
    background:rgba(255,255,255,.97);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    box-shadow:0 1px 8px rgba(0,0,0,.06);
    padding:12px 0;
}
.header .wrap{
    display:flex;
    align-items:center;
    justify-content:space-between;
}

/* Logo */
.logo{
    display:block;
    text-decoration:none;
    flex-shrink:0;
    line-height:0;
}
.logo__img{
    display:block;
    height:46px;
    width:auto;
    max-width:140px;
    object-fit:contain;
    filter:brightness(0) invert(1);
    transition:filter var(--transition);
}
.header.scrolled .logo__img{
    filter:none;
}

/* Footer logo — larger */
.footer .logo__img{
    height:80px;
    max-width:240px;
    filter:brightness(0) invert(1);
}

/* Nav links */
.nav{display:flex;align-items:center;gap:8px}
.nav__link{
    font-size:14px;
    font-weight:500;
    color:rgba(255,255,255,.85);
    padding:8px 16px;
    border-radius:8px;
    transition:var(--transition);
}
.header.scrolled .nav__link{color:var(--c-body)}
.nav__link:hover{color:#fff;background:rgba(255,255,255,.1)}
.header.scrolled .nav__link:hover{color:var(--c-primary);background:rgba(27,73,101,.06)}
.nav__link--cta{
    background:rgba(255,255,255,.15);
    font-weight:600;
}
.nav__link--cta:hover{background:rgba(255,255,255,.25)}
.header.scrolled .nav__link--cta{
    background:var(--c-primary);
    color:#fff !important;
}
.header.scrolled .nav__link--cta:hover{background:var(--c-primary-l)}

/* Burger */
.burger{
    display:none;
    width:36px;height:36px;
    background:none;border:none;cursor:pointer;
    position:relative;
    z-index:1100;
}
.burger span,
.burger::before,
.burger::after{
    content:'';
    display:block;
    width:22px;height:2px;
    background:#fff;
    border-radius:2px;
    position:absolute;
    left:7px;
    transition:var(--transition);
}
.burger::before{top:10px}
.burger span{top:17px}
.burger::after{top:24px}
.header.scrolled .burger span,
.header.scrolled .burger::before,
.header.scrolled .burger::after{background:var(--c-dark)}
.burger.open::before{transform:rotate(45deg);top:17px}
.burger.open span{opacity:0}
.burger.open::after{transform:rotate(-45deg);top:17px}

/* ==========================================================
   BUTTONS
   ========================================================== */
.btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 30px;
    font-family:var(--ff-body);
    font-size:14px;
    font-weight:600;
    border-radius:100px;
    border:none;
    cursor:pointer;
    transition:var(--transition);
    text-decoration:none;
    line-height:1.4;
}
.btn--primary{
    background:var(--c-primary);
    color:#fff;
    box-shadow:0 4px 14px rgba(27,73,101,.3);
}
.btn--primary:hover{
    background:var(--c-primary-l);
    transform:translateY(-2px);
    box-shadow:0 8px 22px rgba(27,73,101,.35);
}
.btn--ghost{
    background:transparent;
    color:#fff;
    border:1.5px solid rgba(255,255,255,.35);
}
.btn--ghost:hover{
    border-color:#fff;
    background:rgba(255,255,255,.1);
    transform:translateY(-2px);
}
.btn--white{
    background:#fff;
    color:var(--c-primary);
    box-shadow:var(--shadow-lg);
}
.btn--white:hover{
    transform:translateY(-2px);
    box-shadow:0 16px 40px rgba(0,0,0,.15);
}
.btn--full{
    width:100%;
    justify-content:center;
}

/* ==========================================================
   HERO
   ========================================================== */
.hero{
    position:relative;
    min-height:100vh;
    display:flex;
    align-items:center;
    background:linear-gradient(160deg, #0f2d40 0%, #1b4965 40%, #2b6d94 100%);
    padding:120px 0 80px;
    overflow:hidden;
}
/* subtle texture */
.hero::before{
    content:'';
    position:absolute;inset:0;
    background:radial-gradient(circle at 75% 25%, rgba(98,182,203,.18) 0%, transparent 55%),
               radial-gradient(circle at 20% 80%, rgba(244,162,97,.1) 0%, transparent 45%);
    pointer-events:none;
}
.hero__inner{
    position:relative;z-index:2;
}
.hero__content{
    max-width:640px;
}
.hero__eyebrow{
    display:inline-flex;align-items:center;gap:8px;
    font-size:13px;font-weight:600;
    color:var(--c-accent-l);
    text-transform:uppercase;
    letter-spacing:1.5px;
    margin-bottom:20px;
    opacity:0;
    transform:translateY(20px);
    animation:fadeUp .8s var(--ease) .2s forwards;
}
.hero__eyebrow i{font-size:14px;color:var(--c-warm)}
.hero__title{
    font-size:clamp(38px,5.5vw,60px);
    color:#fff;
    margin-bottom:24px;
    opacity:0;
    transform:translateY(20px);
    animation:fadeUp .8s var(--ease) .35s forwards;
}
.hero__title em{
    font-style:italic;
    color:var(--c-accent-l);
}
.hero__text{
    font-size:17px;
    color:rgba(255,255,255,.7);
    max-width:540px;
    margin-bottom:36px;
    line-height:1.8;
    opacity:0;
    transform:translateY(20px);
    animation:fadeUp .8s var(--ease) .5s forwards;
}
.hero__actions{
    display:flex;gap:14px;flex-wrap:wrap;
    margin-bottom:60px;
    opacity:0;
    transform:translateY(20px);
    animation:fadeUp .8s var(--ease) .65s forwards;
}
.hero__metrics{
    display:flex;
    gap:40px;
    padding-top:40px;
    border-top:1px solid rgba(255,255,255,.12);
    opacity:0;
    transform:translateY(20px);
    animation:fadeUp .8s var(--ease) .8s forwards;
}
.metric{text-align:left}
.metric__num{
    font-family:var(--ff-heading);
    font-size:42px;
    color:#fff;
    line-height:1;
}
.metric__plus{
    font-family:var(--ff-heading);
    font-size:28px;
    color:var(--c-accent);
}
.metric__label{
    display:block;
    font-size:13px;
    color:rgba(255,255,255,.5);
    margin-top:4px;
    letter-spacing:.5px;
}

@keyframes fadeUp{
    to{opacity:1;transform:translateY(0)}
}

/* ==========================================================
   ABOUT
   ========================================================== */
.about{
    padding:100px 0;
    background:var(--c-bg);
}
.about__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:60px;
    align-items:start;
    margin-top:10px;
}
.about__text h2{
    font-size:clamp(28px,3.5vw,40px);
    margin-bottom:24px;
}
.about__text p{
    margin-bottom:18px;
    font-size:16px;
    line-height:1.8;
}
.about__values{
    display:flex;
    flex-direction:column;
    gap:20px;
}
.value-card{
    display:flex;
    gap:18px;
    padding:22px 24px;
    background:var(--c-bg-alt);
    border:1px solid var(--c-border);
    border-radius:var(--radius-lg);
    transition:var(--transition);
}
.value-card:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow);
    border-color:transparent;
}
.value-card__icon{
    flex-shrink:0;
    width:46px;height:46px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(27,73,101,.08);
    color:var(--c-primary);
    font-size:18px;
    border-radius:12px;
}
.value-card h3{
    font-family:var(--ff-body);
    font-size:15px;
    font-weight:700;
    color:var(--c-dark);
    margin-bottom:4px;
}
.value-card p{
    font-size:14px;
    color:var(--c-muted);
    line-height:1.6;
}

/* ==========================================================
   SERVICES
   ========================================================== */
.services{
    padding:100px 0;
    background:var(--c-bg-alt);
}
.services__heading{
    font-size:clamp(28px,3.5vw,40px);
    text-align:center;
    margin-bottom:12px;
}
.services__sub{
    text-align:center;
    font-size:17px;
    color:var(--c-muted);
    max-width:560px;
    margin:0 auto 56px;
}
.services__grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(260px,1fr));
    gap:22px;
}
.svc{
    background:var(--c-bg);
    border:1px solid var(--c-border);
    border-radius:var(--radius-lg);
    padding:30px 26px;
    transition:var(--transition);
}
.svc:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-lg);
    border-color:transparent;
}
.svc__icon{
    width:50px;height:50px;
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg, var(--c-primary), var(--c-accent));
    color:#fff;
    font-size:20px;
    border-radius:14px;
    margin-bottom:18px;
    transition:var(--transition);
}
.svc:hover .svc__icon{
    transform:scale(1.08) rotate(-3deg);
}
.svc h3{
    font-family:var(--ff-body);
    font-size:16px;
    font-weight:700;
    color:var(--c-dark);
    margin-bottom:8px;
}
.svc p{
    font-size:14px;
    color:var(--c-muted);
    line-height:1.65;
}

/* ==========================================================
   TEAM
   ========================================================== */
.team{
    padding:100px 0;
    background:var(--c-bg);
}
.team__heading{
    font-size:clamp(28px,3.5vw,40px);
    text-align:center;
    margin-bottom:12px;
}
.team__sub{
    text-align:center;
    font-size:17px;
    color:var(--c-muted);
    max-width:600px;
    margin:0 auto 56px;
}
.team__grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:32px;
}
.member{
    display:flex;
    gap:28px;
    padding:36px;
    background:var(--c-bg-alt);
    border:1px solid var(--c-border);
    border-radius:var(--radius-xl);
    transition:var(--transition);
}
.member:hover{
    box-shadow:var(--shadow-lg);
    border-color:transparent;
    transform:translateY(-3px);
}
.member__avatar{
    flex-shrink:0;
    width:150px;height:150px;
    border-radius:50%;
    background:linear-gradient(135deg, var(--c-primary), var(--c-accent));
    padding:4px;
    box-shadow:0 8px 28px rgba(27,73,101,.2);
    transition:var(--transition);
}
.member:hover .member__avatar{
    transform:scale(1.04);
    box-shadow:0 12px 36px rgba(27,73,101,.28);
}
.member__photo{
    width:100%;height:100%;
    border-radius:50%;
    object-fit:cover;
    object-position:center 20%;
    display:block;
    background:#1a1a2e;
}
.member__body h3{
    font-size:22px;
    margin-bottom:2px;
}
.member__title{
    display:inline-block;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:1.5px;
    color:var(--c-primary);
    margin-bottom:14px;
}
.member__body p{
    font-size:14px;
    line-height:1.75;
    color:var(--c-body);
    margin-bottom:16px;
}
.member__tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}
.member__tags span{
    font-size:11px;
    font-weight:600;
    color:var(--c-primary);
    background:rgba(27,73,101,.07);
    padding:5px 12px;
    border-radius:100px;
}

/* ==========================================================
   CTA
   ========================================================== */
.cta{
    background:linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-d) 100%);
    padding:80px 0;
    text-align:center;
    position:relative;
    overflow:hidden;
}
.cta::before,
.cta::after{
    content:'';position:absolute;border-radius:50%;
    background:rgba(255,255,255,.04);pointer-events:none;
}
.cta::before{width:500px;height:500px;top:-200px;right:-150px}
.cta::after{width:350px;height:350px;bottom:-150px;left:-100px}
.cta__inner{position:relative;z-index:2}
.cta h2{
    font-size:clamp(26px,3.5vw,40px);
    color:#fff;
    margin-bottom:14px;
}
.cta p{
    font-size:17px;
    color:rgba(255,255,255,.75);
    max-width:520px;
    margin:0 auto 32px;
}

/* ==========================================================
   CONTACT
   ========================================================== */
.contact{
    padding:100px 0;
    background:var(--c-bg-alt);
}
.contact__grid{
    display:grid;
    grid-template-columns:1fr 1.3fr;
    gap:56px;
    align-items:start;
}
.contact__info h2{
    font-size:clamp(28px,3.5vw,38px);
    margin-bottom:16px;
}
.contact__info > p{
    font-size:16px;
    color:var(--c-muted);
    line-height:1.8;
    margin-bottom:36px;
}
.contact__channels{
    display:flex;
    flex-direction:column;
    gap:16px;
}
.channel{
    display:flex;
    align-items:center;
    gap:16px;
    padding:18px 22px;
    background:var(--c-bg);
    border:1px solid var(--c-border);
    border-radius:var(--radius);
    transition:var(--transition);
    text-decoration:none;
}
.channel:hover{
    border-color:var(--c-primary);
    box-shadow:var(--shadow-sm);
}
.channel__icon{
    width:46px;height:46px;
    display:flex;align-items:center;justify-content:center;
    background:rgba(27,73,101,.08);
    color:var(--c-primary);
    font-size:18px;
    border-radius:12px;
    flex-shrink:0;
}
.channel strong{
    display:block;
    font-size:13px;
    font-weight:700;
    color:var(--c-dark);
    margin-bottom:1px;
}
.channel span{
    font-size:14px;
    color:var(--c-body);
}

/* Form */
.form{
    background:var(--c-bg);
    border:1px solid var(--c-border);
    border-radius:var(--radius-xl);
    padding:36px;
    box-shadow:var(--shadow);
    position:relative;
}
.form__row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
}
.form__field{
    margin-bottom:20px;
}
.form__field label{
    display:block;
    font-size:13px;
    font-weight:600;
    color:var(--c-dark);
    margin-bottom:6px;
}
.form__field input,
.form__field textarea{
    width:100%;
    padding:12px 16px;
    font-family:var(--ff-body);
    font-size:14px;
    color:var(--c-dark);
    background:var(--c-bg-alt);
    border:1.5px solid var(--c-border);
    border-radius:var(--radius);
    transition:var(--transition);
    outline:none;
}
.form__field input:focus,
.form__field textarea:focus{
    border-color:var(--c-primary);
    background:#fff;
    box-shadow:0 0 0 3px rgba(27,73,101,.08);
}
.form__field input::placeholder,
.form__field textarea::placeholder{
    color:var(--c-muted);
}
.form__field textarea{
    resize:vertical;
    min-height:100px;
}

/* Checkboxes */
.form__checks{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin-top:8px;
}
.check{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    color:var(--c-body);
    padding:9px 14px;
    border:1px solid var(--c-border);
    border-radius:8px;
    cursor:pointer;
    user-select:none;
    transition:var(--transition);
}
.check:hover{
    border-color:var(--c-accent);
    background:rgba(98,182,203,.04);
}
.check input{
    width:15px;height:15px;
    accent-color:var(--c-primary);
    cursor:pointer;
    flex-shrink:0;
}
.check input:checked + span{
    color:var(--c-primary);
    font-weight:600;
}

/* Form Success */
.form__success{
    display:none;
    position:absolute;
    inset:0;
    background:#fff;
    border-radius:var(--radius-xl);
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:40px;
    z-index:5;
}
.form__success.show{
    display:flex;
}
.form__success i{
    font-size:54px;
    color:#10b981;
    margin-bottom:18px;
}
.form__success h3{
    font-size:24px;
    margin-bottom:8px;
}
.form__success p{
    color:var(--c-muted);
    font-size:15px;
}

/* ==========================================================
   FOOTER
   ========================================================== */
.footer{
    background:var(--c-bg-dark);
    padding:64px 0 0;
}
.footer__top{
    display:grid;
    grid-template-columns:1.6fr 1fr 1fr 1.3fr;
    gap:36px;
    padding-bottom:48px;
    border-bottom:1px solid rgba(255,255,255,.08);
}
.footer__brand p{
    font-size:14px;
    color:rgba(255,255,255,.45);
    margin-top:16px;
    line-height:1.7;
    max-width:280px;
}
/* footer brand logo — see .footer .logo__img above */
.footer__col h4{
    font-family:var(--ff-body);
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:1.5px;
    color:#fff;
    margin-bottom:18px;
}
.footer__col a{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:14px;
    color:rgba(255,255,255,.45);
    margin-bottom:12px;
    transition:var(--transition);
}
.footer__col a:hover{color:var(--c-accent-l);transform:translateX(3px)}
.footer__col a i{
    font-size:13px;
    color:var(--c-accent);
    width:16px;
}
.footer__bottom{
    padding:24px 0;
    text-align:center;
}
.footer__bottom p{
    font-size:13px;
    color:rgba(255,255,255,.3);
}

/* ==========================================================
   BACK TO TOP
   ========================================================== */
.totop{
    position:fixed;
    bottom:28px;right:28px;
    width:46px;height:46px;
    display:flex;align-items:center;justify-content:center;
    background:var(--c-primary);
    color:#fff;
    border:none;
    border-radius:50%;
    cursor:pointer;
    font-size:16px;
    opacity:0;
    visibility:hidden;
    transform:translateY(16px);
    transition:var(--transition);
    box-shadow:var(--shadow-lg);
    z-index:100;
}
.totop.show{
    opacity:1;visibility:visible;transform:translateY(0);
}
.totop:hover{
    background:var(--c-primary-l);
    transform:translateY(-3px);
}

/* ==========================================================
   SCROLL ANIMATIONS
   ========================================================== */
.reveal{
    opacity:0;
    transform:translateY(32px);
    transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.reveal.visible{
    opacity:1;
    transform:translateY(0);
}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

/* ----- Tablet ----- */
@media(max-width:1024px){
    .about__grid{grid-template-columns:1fr;gap:40px}
    .team__grid{grid-template-columns:1fr}
    .member{flex-direction:column;align-items:center;text-align:center}
    .member__tags{justify-content:center}
    .contact__grid{grid-template-columns:1fr;gap:40px}
    .footer__top{grid-template-columns:1fr 1fr;gap:32px}
    .hero__metrics{gap:28px}
}

/* ----- Mobile Nav ----- */
@media(max-width:768px){
    .burger{display:block}
    .nav{
        position:fixed;
        top:0;right:-100%;
        width:280px;height:100vh;
        background:#fff;
        flex-direction:column;
        align-items:stretch;
        padding:90px 28px 40px;
        gap:0;
        box-shadow:var(--shadow-lg);
        transition:right .4s var(--ease);
        z-index:1050;
    }
    .nav.open{right:0}
    .nav__link{
        color:var(--c-dark);
        font-size:15px;
        padding:14px 0;
        border-bottom:1px solid var(--c-border);
        border-radius:0;
    }
    .nav__link:hover{
        background:none;
        color:var(--c-primary);
    }
    .nav__link--cta{
        background:var(--c-primary);
        color:#fff !important;
        text-align:center;
        border-radius:100px;
        margin-top:20px;
        border:none;
        padding:14px 24px;
    }
    .hero__metrics{flex-direction:column;gap:20px;border-top:none;padding-top:20px}
    .metric{text-align:center}
    .services__grid{grid-template-columns:1fr 1fr;gap:14px}
    .svc{padding:22px 18px}
    .form__checks{grid-template-columns:1fr 1fr}
    .form__row{grid-template-columns:1fr}
    .footer__top{grid-template-columns:1fr;gap:28px}
    .form{padding:28px 22px}
}

/* ----- Small Mobile ----- */
@media(max-width:480px){
    .hero{padding:100px 0 60px;min-height:auto}
    .hero__title{font-size:32px}
    .services__grid{grid-template-columns:1fr}
    .form__checks{grid-template-columns:1fr}
    .hero__actions{flex-direction:column}
    .hero__actions .btn{width:100%;justify-content:center}
}
