/* =====================================================
   Modern enhancement layer — keeps existing color scheme
   Colors: orange #fe8d00 | purple #5846f9 | green #7eb43e
   ===================================================== */

:root {
    --orange: #fe8d00;
    --orange-dark: #e07800;
    --orange-light: rgba(254, 141, 0, 0.12);
    --purple: #5846f9;
    --green: #7eb43e;
    --dark: #161616;
    --gray: #898989;
    --surface: #ffffff;
    --surface-alt: #f8f8fb;
    --radius-card: 1rem;
    --radius-sm: .5rem;
    --shadow-sm: 0 2px 8px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
    --shadow-md: 0 8px 30px rgba(0,0,0,.08), 0 2px 8px rgba(0,0,0,.04);
    --shadow-lg: 0 20px 60px rgba(0,0,0,.12), 0 8px 20px rgba(0,0,0,.06);
    --shadow-orange: 0 8px 30px rgba(254,141,0,.25);
    --transition: all .3s cubic-bezier(.4,0,.2,1);
}

/* ── Smooth scrolling ── */
html { scroll-behavior: smooth; }

/* ── Body ── */
body { -webkit-font-smoothing: antialiased; }

/* ========================================================
   HEADER — dark gradient at top (readable on any bg), orange on scroll
   ======================================================== */
#header:not(.blackHeader):not(.header-scrolled),
#header.blackHeader:not(.header-scrolled) {
    background-color: transparent !important;
    background-image: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-bottom: none !important;
    box-shadow: none !important;
    transition: background-color .4s ease, background-image .4s ease, box-shadow .4s ease;
}

#header.header-scrolled {
    background: #fe8d00 !important;
    background-image: none !important;
    box-shadow: 0 2px 16px rgba(254,141,0,.28) !important;
    backdrop-filter: none !important;
    border-bottom: none !important;
    transition: background .4s ease, box-shadow .4s ease;
}

/* ── Nav links — dark by default (light-page), white on dark-hero pages ── */
#header.light-page:not(.header-scrolled) .nav-menu a { color: #2c4964 !important; }
#header.light-page:not(.header-scrolled) .nav-menu a:hover,
#header.light-page:not(.header-scrolled) .nav-menu li:hover > a { color: var(--orange) !important; }
#header.light-page:not(.header-scrolled) .nav-menu > ul > li > a:before { background-color: var(--orange) !important; }

/* dark hero pages — white text + white mobile toggle */
#header.dark-hero-page:not(.header-scrolled) .nav-menu a { color: #fff !important; }
#header.dark-hero-page:not(.header-scrolled) .mobile-nav-toggle i { color: #fff !important; }
#header.dark-hero-page:not(.header-scrolled) .nav-menu a:hover,
#header.dark-hero-page:not(.header-scrolled) .nav-menu li:hover > a { color: rgba(255,255,255,.75) !important; }
#header.dark-hero-page:not(.header-scrolled) .nav-menu > ul > li > a:before { background-color: #fff !important; }

/* dropdown always dark regardless of page type */
#header:not(.header-scrolled) .nav-menu .drop-down ul a { color: #2c4964 !important; }
#header:not(.header-scrolled) .nav-menu .drop-down ul a:hover,
#header:not(.header-scrolled) .nav-menu .drop-down ul li:hover > a { color: #fe8d00 !important; }

/* scrolled — top-level links white (orange bg) */
.header-scrolled .nav-menu > ul > li > a { color: #fff !important; }
.header-scrolled .nav-menu > ul > li > a:before { background-color: #fff !important; }

/* scrolled — dropdown links dark (white dropdown bg) */
.header-scrolled .nav-menu .drop-down ul a { color: #2c4964 !important; }
.header-scrolled .nav-menu .drop-down ul a:hover,
.header-scrolled .nav-menu .drop-down ul li:hover > a { color: #fe8d00 !important; }

/* nav line transition */
.nav-menu > ul > li > a:before { transition: width .3s ease, background-color .3s ease; }

/* ── CTA button — dark-hero pages: white glass; light pages: orange solid ── */
#header.dark-hero-page .get-started-btn,
.header-scrolled .get-started-btn {
    border-radius: 2rem !important;
    padding: 8px 26px 9px !important;
    background: rgba(255,255,255,.18) !important;
    color: #fff !important;
    box-shadow: none !important;
    border: 1px solid rgba(255,255,255,.45) !important;
    font-weight: 600;
    letter-spacing: .02em;
    transition: var(--transition) !important;
    backdrop-filter: blur(8px);
}
#header.light-page:not(.header-scrolled) .get-started-btn {
    border-radius: 2rem !important;
    padding: 8px 26px 9px !important;
    background: var(--orange) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: var(--shadow-orange) !important;
    font-weight: 600;
    letter-spacing: .02em;
    transition: var(--transition) !important;
}
#header.dark-hero-page .get-started-btn:hover {
    background: rgba(255,255,255,.30) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.7) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0,0,0,.15) !important;
}
#header.light-page:not(.header-scrolled) .get-started-btn:hover {
    background: var(--orange-dark) !important;
    transform: translateY(-1px);
}
.header-scrolled .get-started-btn {
    background: rgba(255,255,255,.15) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.5) !important;
    box-shadow: none !important;
    backdrop-filter: none;
}
.header-scrolled .get-started-btn:hover {
    background: rgba(255,255,255,.28) !important;
    color: #fff !important;
}

/* ========================================================
   HERO — dark overlay, high contrast
   ======================================================== */
.hero.home {
    background: url("../img/bgHome6.jpg") center center / cover no-repeat !important;
    position: relative;
    height: 100vh;
    min-height: 640px;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(10,10,15,.88) 0%,
        rgba(20,15,30,.82) 40%,
        rgba(30,20,10,.72) 75%,
        rgba(40,25,5,.60) 100%
    );
    z-index: 1;
}

.hero-overlay::after {
    content: '';
    position: absolute;
    bottom: 0; left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 50%;
    background: radial-gradient(ellipse at bottom,
        rgba(254,141,0,.18) 0%,
        transparent 70%);
}

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: rgba(255,255,255,.7);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    margin-bottom: 24px;
}

.hero-dot {
    display: inline-block;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: #fe8d00;
    box-shadow: 0 0 10px rgba(254,141,0,.8);
    animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes pulse-dot {
    0%, 100% { box-shadow: 0 0 6px rgba(254,141,0,.7); }
    50%       { box-shadow: 0 0 18px rgba(254,141,0,1); }
}

.hero-title {
    font-size: clamp(2.4rem, 5vw, 4rem) !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    letter-spacing: -.03em !important;
    color: #ffffff !important;
    margin: 0 0 4px !important;
}

.hero-typewriter {
    display: block;
    color: #fe8d00;
    min-height: 1.2em;
}

.hero-typewriter .Typewriter__wrapper { color: #fe8d00 !important; }
.Typewriter__cursor { color: #fe8d00 !important; }

.hero-sub {
    color: rgba(255,255,255,.68) !important;
    font-size: 1.05rem !important;
    line-height: 1.75 !important;
    margin: 22px auto 34px !important;
    max-width: 580px;
}

.hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 52px;
}

.btn-hero-primary {
    display: inline-flex;
    align-items: center;
    font-weight: 700;
    font-size: 15px;
    padding: 14px 32px;
    border-radius: 50px;
    background: #fe8d00;
    color: #fff !important;
    border: none;
    text-decoration: none;
    letter-spacing: .02em;
    box-shadow: 0 6px 24px rgba(254,141,0,.45);
    transition: var(--transition);
}

.btn-hero-primary:hover {
    background: #ff9a10;
    color: #fff !important;
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(254,141,0,.55);
}

.btn-hero-ghost {
    display: inline-flex;
    align-items: center;
    font-weight: 600;
    font-size: 15px;
    padding: 13px 28px;
    border-radius: 50px;
    background: rgba(255,255,255,.1);
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.3);
    text-decoration: none;
    letter-spacing: .02em;
    transition: var(--transition);
    backdrop-filter: blur(8px);
}

.btn-hero-ghost:hover {
    background: rgba(255,255,255,.2);
    border-color: rgba(255,255,255,.6);
    color: #fff !important;
    transform: translateY(-3px);
}

.hero-stats {
    display: inline-flex;
    align-items: center;
    gap: 28px;
    padding: 16px 32px;
    border-radius: 60px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.12);
    backdrop-filter: blur(12px);
}

.hero-stat { text-align: center; }

.hero-stat-num {
    display: block;
    font-size: 1.4rem;
    font-weight: 800;
    color: #fe8d00;
    line-height: 1;
}

.hero-stat-label {
    display: block;
    font-size: .7rem;
    font-weight: 600;
    color: rgba(255,255,255,.5);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-top: 4px;
}

.hero-stat-divider {
    width: 1px;
    height: 32px;
    background: rgba(255,255,255,.15);
}

#scroll {
    border-color: rgba(255,255,255,.55) !important;
    z-index: 3;
}
#scroll::after {
    background-color: rgba(255,255,255,.75) !important;
}

/* ========================================================
   SECTION TITLES
   ======================================================== */
.section-title { padding-bottom: 20px; }

p.subtitle {
    font-size: .8rem !important;
    letter-spacing: .3em !important;
    text-transform: uppercase;
    color: #fe8d00 !important;
    font-weight: 700 !important;
}

h2.title {
    font-size: 2.4rem !important;
    font-weight: 700 !important;
    letter-spacing: -.03em !important;
    line-height: 1.2 !important;
    background: linear-gradient(135deg, #161616 0%, #444 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* ========================================================
   SERVICE BOXES — modern glass cards
   ======================================================== */
#services { padding: 80px 0 60px; }

.box {
    background: var(--surface) !important;
    border-radius: var(--radius-card) !important;
    border: 1px solid rgba(0,0,0,.06) !important;
    box-shadow: var(--shadow-sm) !important;
    transition: var(--transition) !important;
    position: relative;
    overflow: hidden;
}

.box::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    opacity: 0;
    transition: opacity .3s ease;
    border-radius: var(--radius-card) var(--radius-card) 0 0;
}

.box.dev::before  { background: linear-gradient(90deg, #fe8d00, #ff6b00); }
.box.out::before  { background: linear-gradient(90deg, #7eb43e, #5a8a28); }
.box.vot::before  { background: linear-gradient(90deg, #5846f9, #7b27d8); }

.box.dev:hover, .box.out:hover, .box.vot:hover {
    transform: translateY(-6px) !important;
    box-shadow: var(--shadow-lg) !important;
    border-color: transparent !important;
}

.box.dev:hover { border: 1px solid rgba(254,141,0,.15) !important; }
.box.out:hover { border: 1px solid rgba(126,180,62,.2) !important; }
.box.vot:hover { border: 1px solid rgba(88,70,249,.15) !important; }

.box.dev:hover::before, .box.out:hover::before, .box.vot:hover::before { opacity: 1; }

.box h6 { font-size: 1.3rem !important; letter-spacing: -.01em; }
.box p { font-size: .95rem !important; line-height: 1.7 !important; color: #555 !important; }

.box img { max-width: 56px; }

/* ========================================================
   EXPERIENCE / CASES — carousel cards
   ======================================================== */
.box-exp {
    border-radius: var(--radius-card) !important;
    border: 1px solid rgba(0,0,0,.07) !important;
    box-shadow: var(--shadow-sm) !important;
    transition: var(--transition) !important;
    overflow: hidden !important;
}

.box-exp:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg) !important;
    border: 1px solid rgba(254,141,0,.2) !important;
}

.box-exp img {
    width: 100%;
    height: 170px;
    object-fit: cover;
    border-radius: 0 !important;
    transition: transform .4s ease;
}

.box-exp:hover img { transform: scale(1.04); }

.box-exp div { padding: 1.2rem 1.5rem 1.5rem !important; }

.box-exp .exp-sub {
    color: #fe8d00 !important;
    font-size: .75rem !important;
    font-weight: 700 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase;
}

.box-exp .exp-title {
    font-size: 1.15rem !important;
    font-weight: 600 !important;
    color: #1a1a1a !important;
    margin-top: .3rem;
    line-height: 1.3;
}

/* ========================================================
   CAROUSEL CONTROLS
   ======================================================== */
.custom-carousel-control {
    width: 48px;
    height: 48px;
    background: rgba(255,255,255,.9) !important;
    border-radius: 50% !important;
    border: 1px solid rgba(0,0,0,.1) !important;
    box-shadow: var(--shadow-md) !important;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1 !important;
    transition: var(--transition);
}

.custom-carousel-control:hover {
    background: #fe8d00 !important;
    border-color: #fe8d00 !important;
    box-shadow: var(--shadow-orange) !important;
}

.carousel-control-prev.custom-carousel-control { left: -24px; }
.carousel-control-next.custom-carousel-control { right: -24px; }

/* ========================================================
   "VER TODOS" BUTTON
   ======================================================== */
.btn-primary {
    background: linear-gradient(135deg, #fe8d00 0%, #e07000 100%) !important;
    border-radius: 2rem !important;
    box-shadow: 0 4px 16px rgba(254,141,0,.35) !important;
    font-weight: 600 !important;
    letter-spacing: .03em;
    transition: var(--transition) !important;
    border: none !important;
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-orange) !important;
    background: linear-gradient(135deg, #ff9a10 0%, #fe8d00 100%) !important;
}

/* ========================================================
   SECTION BACKGROUNDS — subtle alternation
   ======================================================== */
.section-bg { background: var(--surface-alt) !important; }

#services {
    background: transparent;
}

/* Experience section subtle bg */
.espacopadrao.header-spc {
    background: linear-gradient(180deg, transparent 0%, rgba(254,141,0,.03) 50%, transparent 100%);
    border-radius: 2rem;
}

/* ========================================================
   FOOTER — refined dark
   ======================================================== */
#footer {
    background: linear-gradient(180deg, #242424 0%, #1a1a1a 100%) !important;
    position: relative;
}

#footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, #5846f9, #fe8d00, #7eb43e);
}

#footer .footer-top {
    padding: 70px 0 40px !important;
}

#footer .footer-top .footer-contact h3 {
    color: #fff;
    font-size: 1.5rem !important;
    letter-spacing: .05em;
}

#footer .footer-top h4 {
    color: #fe8d00 !important;
    font-size: .75rem !important;
    letter-spacing: .18em !important;
    text-transform: uppercase;
    font-weight: 700 !important;
}

#footer .footer-top .footer-links ul a:hover {
    color: #fe8d00 !important;
    text-decoration: none !important;
}

#footer .footer-top .footer-links ul i { color: #fe8d00 !important; }

#footer .copyright-wrap {
    border-top: 1px solid rgba(255,255,255,.08) !important;
}

#footer .social-links a {
    background: rgba(255,255,255,.07) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    transition: var(--transition) !important;
}

#footer .social-links a:hover {
    background: #fe8d00 !important;
    border-color: #fe8d00 !important;
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(254,141,0,.4) !important;
}

/* ========================================================
   BACK TO TOP
   ======================================================== */
.back-to-top i {
    border-radius: 50% !important;
    background: linear-gradient(135deg, #fe8d00, #e07000) !important;
    box-shadow: 0 4px 14px rgba(254,141,0,.5) !important;
    transition: var(--transition) !important;
}
.back-to-top i:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-orange) !important;
}

/* ========================================================
   PRELOADER
   ======================================================== */
#preloader::before {
    border-color: transparent !important;
    border-top-color: #fe8d00 !important;
    border-right-color: rgba(254,141,0,.3) !important;
}

/* ========================================================
   ETAPA (process steps)
   ======================================================== */
.etapa {
    border-radius: var(--radius-card) !important;
    background: var(--surface) !important;
    box-shadow: var(--shadow-sm) !important;
    transition: var(--transition) !important;
}

.etapa:hover {
    box-shadow: var(--shadow-md) !important;
    transform: translateX(4px);
}

/* ========================================================
   CONTACT FORM
   ======================================================== */
#submitBtn {
    background: linear-gradient(135deg, #fe8d00 0%, #e07000 100%) !important;
    border-radius: 2rem !important;
    padding: 10px 32px !important;
    box-shadow: 0 4px 14px rgba(254,141,0,.4) !important;
    font-weight: 600;
    color: #fff !important;
    transition: var(--transition) !important;
}

#submitBtn:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-orange) !important;
}

#submitBtn:disabled {
    background: #cccccc !important;
    color: #fff !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* ========================================================
   MOBILE NAV — refined
   ======================================================== */
.mobile-nav {
    border-radius: 1.2rem !important;
    border: 1px solid rgba(0,0,0,.08) !important;
    box-shadow: var(--shadow-lg) !important;
}

.mobile-nav a:hover, .mobile-nav .active > a, .mobile-nav li:hover > a {
    color: #fe8d00 !important;
}

/* ========================================================
   CAROUSEL — box-exp global redesign
   ======================================================== */

/* card */
.box-exp {
    border-radius: 1rem !important;
    height: auto !important;
    min-height: unset !important;
    border: 1px solid rgba(0,0,0,.07) !important;
    overflow: hidden !important;
    background: #fff !important;
    box-shadow: 0 2px 14px rgba(0,0,0,.06) !important;
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease !important;
    cursor: pointer;
    display: flex !important;
    flex-direction: column !important;
}
.box-exp:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 18px 44px rgba(0,0,0,.12) !important;
    border-color: rgba(254,141,0,.35) !important;
}

/* image */
.box-exp > img,
.box-exp > img.img-fluid {
    width: 100% !important;
    height: 270px !important;
    object-fit: cover !important;
    border-radius: 0 !important;
    transition: transform .4s ease !important;
    display: block !important;
    flex-shrink: 0 !important;
}
.box-exp:hover > img,
.box-exp:hover > img.img-fluid {
    transform: scale(1.05) !important;
}

/* text area */
.box-exp > div {
    padding: 20px 22px 24px !important;
    text-align: left !important;
    flex: 1 !important;
}
.box-exp .exp-sub {
    font-size: .72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: #fe8d00 !important;
    margin-bottom: 6px !important;
    display: block !important;
}
.box-exp .exp-title {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #16192c !important;
    line-height: 1.3 !important;
    letter-spacing: normal !important;
    margin: 0 !important;
}

/* carousel wrapper breathing room */
#projectCarousel {
    padding: 8px 0 16px;
}
#projectCarousel .row {
    margin: 0 -10px;
}
#projectCarousel .row .col-md-4 {
    padding: 0 10px 20px;
}

/* controls — circular white buttons */
.custom-carousel-control {
    width: 46px !important;
    height: 46px !important;
    background: #fff !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.14) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    opacity: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: box-shadow .2s ease, transform .2s ease !important;
}
.custom-carousel-control:hover {
    box-shadow: 0 6px 22px rgba(254,141,0,.3) !important;
    transform: translateY(-52%) !important;
}
.carousel-control-prev.custom-carousel-control { left: -23px !important; }
.carousel-control-next.custom-carousel-control { right: -23px !important; }
.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 22px !important;
    height: 22px !important;
}

/* ========================================================
   SUBTLE DIVIDER BETWEEN MAJOR SECTIONS
   ======================================================== */
#services::after {
    content: '';
    display: block;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(254,141,0,.2), transparent);
    margin: 0 10%;
}

/* ========================================================
   LP HERO FORM WRAPPER — fundo branco para o CRM ser legível
   ======================================================== */
.lp-hero-form-wrap {
    background: #ffffff !important;
    backdrop-filter: none !important;
    border: none !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.3), 0 4px 20px rgba(0,0,0,.15) !important;
}
.lp-hero-form-wrap p.frm-title {
    color: #161616 !important;
}

/* ========================================================
   RESPONSIVE TWEAKS
   ======================================================== */
@media (max-width: 768px) {
    .hero h1 { font-size: 36px !important; }
    h2.title  { font-size: 1.8rem !important; }
    .box { margin-bottom: 1rem; }
    .carousel-control-prev.custom-carousel-control { left: -10px; }
    .carousel-control-next.custom-carousel-control { right: -10px; }
}
