:root {

    --blue: #2563eb;
    --blue-dark: #1d4ed8;
    --blue-light: #eff6ff;

    --dark: #111827;
    --dark-2: #1f2937;

    --gray-900: #111827;
    --gray-700: #374151;
    --gray-600: #4b5563;
    --gray-500: #6b7280;
    --gray-400: #9ca3af;
    --gray-300: #d1d5db;
    --gray-200: #e5e7eb;
    --gray-100: #f3f4f6;
    --gray-50: #f9fafb;

    --white: #ffffff;

    --green: #25d366;

    --radius: 18px;
}


/* =========================================================
   RESET
========================================================= */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {

    margin: 0;

    font-family: "Inter", sans-serif;

    background: var(--white);

    color: var(--gray-900);

    overflow-x: hidden;
}

a {
    text-decoration: none;
}


/* =========================================================
   NAVBAR
========================================================= */

#navbar {

    padding: 20px 0;

    background: transparent;

    transition: all .35s ease;

    z-index: 999;
}

#navbar.scrolled {

    padding: 11px 0;

    background: rgba(255,255,255,.96);

    backdrop-filter: blur(15px);

    box-shadow: 0 5px 25px rgba(15,23,42,.07);

    border-bottom: 1px solid var(--gray-200);
}

.navbar-brand,
.footer-brand {

    display: flex;

    align-items: center;

    gap: 10px;

    color: var(--white);

    font-size: 17px;

    font-weight: 800;

    letter-spacing: 2px;
}

#navbar.scrolled .navbar-brand {
    color: var(--gray-900);
}

.diko-logo {

    width: 39px;
    height: 39px;

    display: flex;

    align-items: center;
    justify-content: center;

    background: var(--blue);

    color: white;

    border-radius: 10px;

    font-weight: 900;

    box-shadow: 0 8px 20px rgba(37,99,235,.20);
}

.nav-link {

    color: rgba(255,255,255,.78) !important;

    font-size: 13px;

    font-weight: 500;

    margin: 0 5px;

    transition: .25s;
}

.nav-link:hover {
    color: white !important;
}

#navbar.scrolled .nav-link {
    color: var(--gray-600) !important;
}

#navbar.scrolled .nav-link:hover {
    color: var(--blue) !important;
}

.navbar-toggler {

    border: 0;

    color: white;

    font-size: 25px;
}

#navbar.scrolled .navbar-toggler {
    color: var(--gray-900);
}


/* =========================================================
   BUTTON
========================================================= */

.btn-diko {

    background: var(--blue);

    color: white;

    border: 1px solid var(--blue);

    border-radius: 10px;

    padding: 12px 20px;

    font-weight: 600;

    transition: all .3s ease;

    box-shadow: 0 8px 20px rgba(37,99,235,.18);
}

.btn-diko:hover {

    background: var(--blue-dark);

    border-color: var(--blue-dark);

    color: white;

    transform: translateY(-2px);

    box-shadow: 0 12px 25px rgba(37,99,235,.25);
}


/* =========================================================
   HERO
========================================================= */

.hero {

    min-height: 100vh;

    position: relative;

    overflow: hidden;

    background:

        linear-gradient(
            110deg,
            #111827 0%,
            #172554 55%,
            #1e40af 100%
        );

    color: white;
}

.hero-bg-circle {

    position: absolute;

    border-radius: 50%;

    pointer-events: none;

    opacity: .18;

    filter: blur(1px);
}

.circle-one {

    width: 500px;
    height: 500px;

    right: -180px;
    top: -100px;

    background: #60a5fa;
}

.circle-two {

    width: 300px;
    height: 300px;

    left: -150px;
    bottom: -100px;

    background: #93c5fd;
}

.hero-content {
    padding-top: 70px;
}

.hero-badge {

    display: inline-flex;

    align-items: center;

    gap: 10px;

    padding: 8px 14px;

    border: 1px solid rgba(255,255,255,.18);

    background: rgba(255,255,255,.07);

    border-radius: 50px;

    color: #dbeafe;

    font-size: 11px;

    margin-bottom: 25px;
}

.hero-badge span {

    width: 7px;
    height: 7px;

    border-radius: 50%;

    background: #60a5fa;

    box-shadow: 0 0 0 5px rgba(96,165,250,.12);
}

.hero h1 {

    font-size: clamp(52px, 6.5vw, 88px);

    font-weight: 900;

    line-height: .95;

    letter-spacing: -5px;

    max-width: 750px;

    margin: 0;
}

.hero h1 strong {

    display: block;

    color: #60a5fa;
}

.hero p {

    color: #cbd5e1;

    max-width: 570px;

    line-height: 1.8;

    font-size: 17px;

    margin: 30px 0;
}

.hero-buttons {

    display: flex;

    gap: 12px;

    flex-wrap: wrap;
}

.hero-info {

    display: flex;

    align-items: center;

    gap: 15px;

    margin-top: 40px;
}

.avatars {

    display: flex;
}

.avatars span {

    width: 35px;
    height: 35px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    border: 2px solid #111827;

    background: #374151;

    color: white;

    font-size: 9px;

    margin-left: -8px;
}

.avatars span:first-child {
    margin-left: 0;
}

.hero-info strong {

    display: block;

    font-size: 11px;
}

.hero-info small {

    color: #94a3b8;

    font-size: 10px;
}


/* =========================================================
   HERO VISUAL
========================================================= */

.hero-visual {

    height: 650px;

    position: relative;
}

.hero-image {

    width: 420px;
    height: 510px;

    position: absolute;

    right: 30px;
    top: 70px;

    overflow: hidden;

    border-radius: 28px;

    border: 5px solid rgba(255,255,255,.12);

    box-shadow: 0 40px 90px rgba(0,0,0,.28);
}

.hero-image img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    filter: brightness(.82);
}


/* =========================================================
   ROUTE
========================================================= */

.route-animation {

    width: 390px;
    height: 275px;

    position: absolute;

    left: -20px;
    bottom: 85px;

    background: rgba(17,24,39,.93);

    border: 1px solid rgba(255,255,255,.12);

    border-radius: 20px;

    overflow: hidden;

    box-shadow: 0 25px 60px rgba(0,0,0,.30);

    backdrop-filter: blur(15px);

    z-index: 4;
}

.route-header {

    height: 65px;

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding: 12px 18px;

    border-bottom: 1px solid rgba(255,255,255,.08);
}

.route-header small {

    display: block;

    color: #94a3b8;

    font-size: 8px;

    letter-spacing: 1px;
}

.route-header strong {

    display: block;

    color: white;

    font-size: 12px;

    margin-top: 3px;
}

.route-header > i {

    width: 35px;
    height: 35px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 9px;

    background: rgba(37,99,235,.15);

    color: #60a5fa;
}

.route-map {

    height: calc(100% - 65px);

    position: relative;

    background:

        linear-gradient(
            35deg,
            transparent 48%,
            rgba(255,255,255,.035) 49%,
            transparent 50%
        ),

        linear-gradient(
            120deg,
            transparent 48%,
            rgba(255,255,255,.035) 49%,
            transparent 50%
        );
}

.route-svg {

    position: absolute;

    width: 100%;
    height: 100%;

    inset: 0;
}

.route-svg path {

    fill: none;

    stroke: #3b82f6;

    stroke-width: 4;

    stroke-linecap: round;

    stroke-dasharray: .04 .02;

    animation: routeDraw 4s linear infinite;
}

.city {

    position: absolute;

    display: flex;

    align-items: center;

    gap: 8px;

    color: white;

    font-size: 10px;

    font-weight: 500;

    z-index: 3;
}

.city span {

    width: 10px;
    height: 10px;

    border-radius: 50%;

    background: #60a5fa;

    box-shadow: 0 0 0 5px rgba(96,165,250,.12);
}

.city-one {

    left: 42px;
    bottom: 35px;
}

.city-two {

    right: 35px;
    top: 35px;
}

.moving-package {

    position: absolute;

    width: 42px;
    height: 42px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background: var(--blue);

    color: white;

    box-shadow: 0 10px 25px rgba(37,99,235,.35);

    animation: packageMove 4s ease-in-out infinite;

    z-index: 5;
}


/* =========================================================
   FLOATING CARDS
========================================================= */

.delivery-card {

    position: absolute;

    right: -5px;

    bottom: 65px;

    display: flex;

    align-items: center;

    gap: 10px;

    padding: 13px;

    background: white;

    color: var(--gray-900);

    border-radius: 14px;

    box-shadow: 0 20px 45px rgba(0,0,0,.22);

    z-index: 7;
}

.delivery-icon {

    width: 40px;
    height: 40px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 10px;

    background: var(--blue-light);

    color: var(--blue);
}

.delivery-card small {

    display: block;

    color: var(--gray-400);

    font-size: 8px;
}

.delivery-card strong {

    display: block;

    font-size: 11px;
}

.check {

    width: 25px;
    height: 25px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: #dcfce7;

    color: #16a34a;
}

.price-floating {

    position: absolute;

    left: 0;

    top: 125px;

    padding: 16px;

    background: white;

    color: var(--gray-900);

    border-radius: 14px;

    box-shadow: 0 20px 45px rgba(0,0,0,.18);

    z-index: 7;
}

.price-floating small {

    display: block;

    color: var(--gray-400);

    font-size: 8px;

    margin-bottom: 5px;
}

.price-floating strong {

    display: block;

    font-size: 12px;
}

.price-floating span {

    display: block;

    margin-top: 7px;

    color: var(--blue);

    font-size: 9px;
}


/* =========================================================
   SECTIONS
========================================================= */

.section {
    padding: 130px 0;
}

.dark-section {
    background: #111827;
    color: white;
}

.light-section {
    background: white;
    color: var(--gray-900);
}

.section-label {

    color: var(--blue);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 2px;
}

.section h2 {

    font-size: clamp(43px, 5vw, 70px);

    line-height: 1;

    letter-spacing: -4px;

    font-weight: 800;

    margin: 18px 0 28px;
}

.section p {

    color: var(--gray-500);

    line-height: 1.8;
}

.dark-section p,
.particular-section p {

    color: #9ca3af;
}


/* =========================================================
   IMAGE STACK
========================================================= */

.image-stack {

    height: 550px;

    position: relative;
}

.image-main {

    width: 75%;
    height: 480px;

    object-fit: cover;

    border-radius: 25px;
}

.image-small {

    position: absolute;

    right: 0;
    bottom: 0;

    width: 45%;
    height: 260px;

    padding: 9px;

    background: #111827;

    border-radius: 20px;
}

.image-small img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 14px;
}

.mini-stats {

    display: flex;

    gap: 45px;

    margin-top: 40px;
}

.mini-stats strong {

    display: block;

    color: #60a5fa;

    font-size: 30px;
}

.mini-stats span {

    color: #9ca3af;

    font-size: 11px;
}


/* =========================================================
   STEPS
========================================================= */

.section-header {

    max-width: 700px;

    margin: auto;
}

.section-header p {
    color: var(--gray-500);
}

.steps {

    display: flex;

    align-items: center;

    margin-top: 75px;
}

.step {

    flex: 1;

    text-align: center;
}

.step-number {

    color: var(--gray-300);

    font-size: 11px;

    font-weight: 700;
}

.step-icon {

    width: 70px;
    height: 70px;

    display: flex;

    align-items: center;
    justify-content: center;

    margin: 20px auto;

    border-radius: 18px;

    background: var(--blue-light);

    color: var(--blue);

    font-size: 26px;

    transition: .35s;
}

.step:hover .step-icon {

    background: var(--blue);

    color: white;

    transform: translateY(-8px);
}

.step h3 {

    font-size: 18px;

    font-weight: 700;
}

.step p {

    max-width: 210px;

    margin: auto;

    font-size: 13px;
}

.step-line {

    width: 55px;

    height: 1px;

    background: var(--gray-200);
}


/* =========================================================
   PARTICULARES
========================================================= */

.particular-section {

    background: #111827;

    color: white;
}

.feature {

    display: flex;

    align-items: center;

    gap: 12px;

    margin: 17px 0;

    color: #d1d5db;

    font-size: 13px;
}

.feature i {

    width: 25px;
    height: 25px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 50%;

    background: rgba(37,99,235,.15);

    color: #60a5fa;
}

.person-image {

    height: 540px;

    position: relative;
}

.person-image img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 25px;

    filter: brightness(.78);
}

.image-tag {

    position: absolute;

    left: 25px;
    bottom: 25px;

    display: flex;

    align-items: center;

    gap: 12px;

    padding: 14px;

    background: rgba(17,24,39,.92);

    backdrop-filter: blur(10px);

    border-radius: 13px;
}

.image-tag i {

    font-size: 23px;

    color: #60a5fa;
}

.image-tag strong {

    display: block;

    font-size: 11px;
}

.image-tag small {

    display: block;

    color: #9ca3af;

    font-size: 9px;
}


/* =========================================================
   TRANSPORTE
========================================================= */

.transport-section {

    background: var(--blue);

    color: white;
}

.transport-section h2 span {

    display: block;

    color: #bfdbfe;
}

.transport-section p {

    color: #dbeafe;
}

.light-label {
    color: #dbeafe;
}

.transport-benefits {
    margin-top: 30px;
}

.transport-benefits div {

    display: flex;

    align-items: center;

    gap: 15px;

    margin: 17px 0;
}

.transport-benefits i {

    width: 40px;
    height: 40px;

    display: flex;

    align-items: center;
    justify-content: center;

    border-radius: 11px;

    background: rgba(255,255,255,.12);
}

.transport-image {

    height: 520px;

    position: relative;
}

.transport-image img {

    width: 100%;
    height: 100%;

    object-fit: cover;

    border-radius: 25px;

    box-shadow: 0 30px 70px rgba(0,0,0,.20);
}

.route-floating {

    position: absolute;

    left: 25px;
    bottom: 25px;

    padding: 18px;

    background: rgba(17,24,39,.92);

    border-radius: 13px;

    backdrop-filter: blur(10px);
}

.route-floating span {

    display: block;

    color: #9ca3af;

    font-size: 8px;
}

.route-floating strong {

    display: block;

    margin: 7px 0;

    font-size: 13px;
}

.route-floating small {

    color: #4ade80;

    font-size: 9px;
}


/* =========================================================
   PREÇOS
========================================================= */

.prices-section {

    background: var(--gray-50);

    color: var(--gray-900);
}

.price-calculator {

    max-width: 1000px;

    margin: 55px auto 0;

    padding: 35px;

    background: white;

    border: 1px solid var(--gray-200);

    border-radius: 22px;

    box-shadow: 0 25px 70px rgba(15,23,42,.07);
}

.calculator-header {

    display: flex;

    justify-content: space-between;

    align-items: center;

    padding-bottom: 22px;

    margin-bottom: 25px;

    border-bottom: 1px solid var(--gray-200);

    color: var(--gray-500);

    font-size: 10px;

    font-weight: 800;

    letter-spacing: 2px;
}

.calculator-header i {

    color: var(--blue);

    font-size: 22px;
}

.price-calculator label {

    display: block;

    color: var(--gray-700);

    font-size: 11px;

    font-weight: 700;

    margin-bottom: 8px;
}

.select-box {

    display: flex;

    align-items: center;

    gap: 10px;

    padding: 13px;

    border: 1px solid var(--gray-200);

    border-radius: 10px;

    transition: .25s;
}

.select-box:focus-within {

    border-color: var(--blue);

    box-shadow: 0 0 0 3px rgba(37,99,235,.08);
}

.select-box i {

    color: var(--blue);
}

.select-box select {

    width: 100%;

    border: 0;

    outline: 0;

    background: transparent;

    color: var(--gray-900);
}

.calculate-btn {

    margin-top: 30px;
}

.price-result {

    margin-top: 30px;

    padding: 28px;

    border-radius: 18px;

    background: var(--gray-50);

    text-align: center;
}

.price-result small {

    display: block;

    color: var(--gray-500);

    font-size: 9px;

    letter-spacing: 2px;
}

.price-result strong {

    display: block;

    color: var(--blue);

    font-size: 40px;

    margin: 5px 0;
}

.price-result span {

    color: var(--gray-500);

    font-size: 11px;
}


/* =========================================================
   CONTACTO
========================================================= */

.contact-section {

    padding: 100px 0;

    background: #111827;
}

.contact-box {

    padding: 55px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    border-radius: 25px;

    background: #1f2937;

    border: 1px solid rgba(255,255,255,.07);
}

.contact-box h2 {

    color: white;

    font-size: 45px;

    margin: 15px 0;
}

.contact-box p {
    color: #9ca3af;
}

.whatsapp-button {

    min-width: 290px;

    display: flex;

    align-items: center;

    gap: 14px;

    padding: 17px 20px;

    border-radius: 13px;

    background: var(--green);

    color: white;

    transition: .3s;
}

.whatsapp-button:hover {

    color: white;

    transform: translateY(-3px);

    box-shadow: 0 12px 30px rgba(37,211,102,.20);
}

.whatsapp-button > i:first-child {

    font-size: 28px;
}

.whatsapp-button small {

    display: block;

    font-size: 7px;
}

.whatsapp-button strong {

    display: block;

    font-size: 15px;
}


/* =========================================================
   FOOTER
========================================================= */

footer {

    padding: 75px 0 25px;

    background: #0b1120;

    color: white;
}

footer p {

    max-width: 350px;

    color: #6b7280;

    font-size: 13px;

    line-height: 1.8;

    margin-top: 20px;
}

footer h6 {

    font-size: 12px;

    margin-bottom: 20px;
}

footer a {

    display: block;

    color: #6b7280;

    font-size: 11px;

    margin-bottom: 13px;

    transition: .25s;
}

footer a:hover {
    color: white;
}

.footer-bottom {

    margin-top: 65px;

    padding-top: 22px;

    border-top: 1px solid rgba(255,255,255,.06);

    display: flex;

    justify-content: space-between;

    color: #4b5563;

    font-size: 9px;
}


/* =========================================================
   ANIMAÇÕES
========================================================= */

.reveal {

    opacity: 0;

    transform: translateY(35px);

    transition:
        opacity .8s ease,
        transform .8s ease;
}

.reveal.active {

    opacity: 1;

    transform: translateY(0);
}

.floating {

    animation: floating 4s ease-in-out infinite;
}

.floating-delay {

    animation: floating 5s ease-in-out infinite;

    animation-delay: -2s;
}

@keyframes floating {

    0%, 100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

@keyframes packageMove {

    0% {
        left: 40px;
        top: 150px;
    }

    50% {
        left: 175px;
        top: 80px;
    }

    100% {
        left: 310px;
        top: 25px;
    }
}

@keyframes routeDraw {

    0% {
        stroke-dashoffset: 1;
    }

    100% {
        stroke-dashoffset: 0;
    }
}


/* =========================================================
   SCROLL
========================================================= */

.scroll-down {

    position: absolute;

    bottom: 25px;

    left: 50%;

    transform: translateX(-50%);

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 6px;

    color: #94a3b8;

    font-size: 8px;

    letter-spacing: 2px;

    animation: scrollPulse 2s infinite;
}

.scroll-down i {
    font-size: 15px;
}

@keyframes scrollPulse {

    0%, 100% {
        opacity: .4;
        transform: translate(-50%, 0);
    }

    50% {
        opacity: 1;
        transform: translate(-50%, 6px);
    }
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width: 991px) {

    #navbar {

        background: rgba(17,24,39,.96);
    }

    #navbar.scrolled {

        background: rgba(255,255,255,.96);
    }

    .navbar-collapse {

        margin-top: 15px;

        padding: 15px;

        border-radius: 15px;

        background: #111827;
    }

    #navbar.scrolled .navbar-collapse {
        background: white;
    }

    .hero {

        padding-top: 80px;
    }

    .hero-content {

        text-align: center;
    }

    .hero p {

        margin-left: auto;
        margin-right: auto;
    }

    .hero-buttons {

        justify-content: center;
    }

    .hero-info {

        justify-content: center;
    }

    .hero-visual {

        margin-top: 40px;
    }

    .steps {

        flex-direction: column;

        gap: 25px;
    }

    .step-line {

        width: 1px;

        height: 35px;
    }

    .contact-box {

        flex-direction: column;

        align-items: flex-start;
    }
}


@media(max-width: 576px) {

    .section {
        padding: 85px 0;
    }

    .hero h1 {

        font-size: 50px;

        letter-spacing: -4px;
    }

    .hero-visual {

        height: 500px;
    }

    .hero-image {

        width: 300px;
        height: 390px;

        right: 0;
    }

    .route-animation {

        width: 330px;

        left: 0;

        bottom: 30px;
    }

    .delivery-card {

        right: 0;

        bottom: 0;
    }

    .price-floating {

        left: 0;

        top: 90px;
    }

    .image-stack {

        height: 400px;
    }

    .image-main {

        height: 350px;
    }

    .person-image,
    .transport-image {

        height: 400px;
    }

    .contact-box {

        padding: 35px 25px;
    }

    .contact-box h2 {

        font-size: 38px;
    }

    .whatsapp-button {

        min-width: 100%;
    }

    .footer-bottom {

        flex-direction: column;

        gap: 10px;
    }
}