body {
    font-family: 'Manrope', sans-serif;
    background:
        radial-gradient(1100px 620px at 12% -10%, rgba(181, 138, 90, 0.16), transparent 60%),
        radial-gradient(900px 560px at 110% 10%, rgba(139, 164, 111, 0.14), transparent 55%),
        linear-gradient(180deg, #274c39 0%, #1c3a2b 55%, #16301f 100%);
    color: #f7f6f1;
    background-attachment: fixed;
    min-height: 100vh;
}

h1,
h2,
h3,
h4,
.hero-title,
.section-title {
    font-family: 'Prata', serif;
}

.nav-glass {
    background: rgba(24, 51, 38, 0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 10px 28px rgba(9, 20, 14, 0.32), inset 0 -1px 0 rgba(181, 138, 90, 0.12);
}

.nav-glass .nav-link {
    color: rgba(255, 255, 255, 0.78);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    position: relative;
    transition: color 0.25s ease;
}

.nav-glass .nav-link::after {
    background: #b58a5a;
    bottom: 0.25rem;
    content: '';
    height: 1px;
    left: 0.5rem;
    position: absolute;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
    width: calc(100% - 1rem);
}

.nav-glass .nav-link:hover {
    color: #f7f6f1;
}

.nav-glass .nav-link:hover::after,
.nav-glass .nav-link.active::after {
    transform: scaleX(1);
}

.nav-glass .nav-link.active {
    color: var(--primary);
    text-decoration: underline;
    text-decoration-color: var(--accent);
    text-decoration-thickness: 2px;
    text-underline-offset: 6px;
}

.brand-logo {
    height: 64px;
    width: auto;
    max-width: 240px;
    object-fit: cover;
    object-position: center;
    box-shadow: 0 12px 24px rgba(5, 14, 9, 0.28);
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.12));
}

.brand-mark {
    width: 78px;
    height: 78px;
    border-radius: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    background: #193326;
    font-weight: 800;
    font-size: 1.15rem;
    box-shadow: 0 12px 24px rgba(20, 35, 50, 0.14);
}

.brand-text {
    font-weight: 800;
    letter-spacing: 0.4px;
}

.navbar-brand {
    padding-top: 0.15rem;
    padding-bottom: 0.15rem;
}

.btn-accent {
    background: linear-gradient(135deg, #c39a6b, #a4763f);
    border: 1px solid #b58a5a;
    color: #fff;
    font-weight: 700;
    border-radius: 2px;
    font-size: 0.75rem;
    letter-spacing: 0.14em;
    padding: 0.85rem 1.35rem;
    text-transform: uppercase;
    box-shadow: 0 10px 24px rgba(157, 112, 69, 0.32);
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.btn-accent:hover {
    background: linear-gradient(135deg, #a4763f, #8a5f34);
    border-color: #9d7045;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(157, 112, 69, 0.4);
}

.hero {
    margin-top: 0;
}

.hero-carousel {
    background: #10281a;
    box-shadow: 0 24px 60px rgba(6, 16, 10, 0.45), inset 0 -1px 0 rgba(181, 138, 90, 0.28);
    overflow: hidden;
    position: relative;
}

.hero-carousel::after {
    background: linear-gradient(180deg, transparent 72%, rgba(10, 28, 18, 0.5));
    bottom: 0;
    content: '';
    height: 35%;
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    z-index: 1;
}

.hero-carousel-image {
    display: block;
    height: min(72vh, 760px);
    object-fit: cover;
    object-position: center;
    width: 100%;
}

.hero-carousel .carousel-control-prev,
.hero-carousel .carousel-control-next {
    opacity: 0;
    transition: opacity 0.25s ease, transform 0.25s ease;
    z-index: 2;
}

.hero-carousel:hover .carousel-control-prev,
.hero-carousel:hover .carousel-control-next,
.hero-carousel:focus-within .carousel-control-prev,
.hero-carousel:focus-within .carousel-control-next {
    opacity: 0.85;
}

.hero-carousel .carousel-control-prev:hover {
    transform: translateX(-0.25rem);
}

.hero-carousel .carousel-control-next:hover {
    transform: translateX(0.25rem);
}

.home-hero .carousel-item.active .hero-carousel-image {
    animation: home-hero-settle 7s ease-out both;
}

@keyframes home-hero-settle {
    from {
        opacity: 0.82;
        transform: scale(1.045);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.home-contact-cta {
    padding: 6rem 0;
}

.home-post-hero-action {
    padding-top: 2.5rem;
}

.home-contact-content {
    border-bottom: 1px solid rgba(247, 246, 241, 0.28);
    border-top: 1px solid rgba(247, 246, 241, 0.28);
    max-width: 58rem;
    padding: 3.75rem 2.5rem;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.01));
    border-radius: 8px;
    box-shadow: 0 20px 50px rgba(8, 18, 12, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.07);
    position: relative;
    transition: box-shadow 0.35s ease, transform 0.35s ease;
}

.home-contact-content:hover {
    box-shadow: 0 26px 58px rgba(8, 18, 12, 0.34);
    transform: translateY(-4px);
}

.home-contact-content::before {
    content: '';
    position: absolute;
    left: -1px;
    top: 2rem;
    bottom: 2rem;
    width: 3px;
    background: linear-gradient(180deg, #b58a5a, transparent);
}

.home-contact-content::after {
    background: rgba(181, 138, 90, 0.52);
    bottom: -1px;
    content: '';
    height: 1px;
    left: 2.5rem;
    position: absolute;
    width: 7rem;
}

.home-contact-content h2 {
    color: #f7f6f1;
    font-family: 'Prata', serif;
    font-size: clamp(2.15rem, 4vw, 4.1rem);
    line-height: 1.16;
    margin: 1rem 0 1.3rem;
}

.home-contact-content p:not(.section-eyebrow) {
    color: rgba(247, 246, 241, 0.8);
    font-size: 1.08rem;
    line-height: 1.7;
    margin-bottom: 2rem;
    max-width: 43rem;
}

.hero-slide {
    min-height: 82vh;
    border-radius: 0;
    overflow: hidden;
    position: relative;
    background-size: cover;
    background-position: center;
}

.hero-slide::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(20, 57, 40, 0.84), rgba(34, 67, 50, 0.56));
}

.hero-content {
    position: relative;
    z-index: 2;
    color: #fff;
    max-width: 960px;
    padding: 12rem 1rem 7rem;
}

.hero-title {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(2.5rem, 5.4vw, 5rem);
    font-weight: 400;
    line-height: 1.12;
}

.hero-content .pill,
.hero-content .lead {
    letter-spacing: 0.12em;
}

.hero-content .lead {
    font-size: 1.06rem;
}

.hero-actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
}

.hero-text-link {
    color: #fff;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-decoration-color: #b58a5a;
    text-underline-offset: 0.5rem;
    text-transform: uppercase;
}

.kpi-card,
.project-card,
.service-card,
.form-card {
    border: 1px solid rgba(34, 67, 50, 0.08);
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(15, 30, 22, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.78);
    background: linear-gradient(165deg, #fdfcfa, #f2efe6);
    color: #224332;
    transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.kpi-card:hover,
.project-card:hover,
.service-card:hover,
.form-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 22px 46px rgba(15, 30, 22, 0.22);
}

.kpi-card .text-muted,
.project-card .text-muted,
.service-card .text-muted,
.form-card .text-muted {
    color: #5c6d62 !important;
}

.kpi-number {
    font-size: 2.1rem;
    font-weight: 800;
    color: var(--primary);
}

.section-title {
    font-size: clamp(1.8rem, 3.4vw, 2.8rem);
}

.philosophy-card {
    border: 1px solid rgba(36, 67, 95, 0.14);
    border-radius: 24px;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.95), rgba(247, 249, 251, 0.95));
    color: #224332;
    box-shadow: 0 20px 46px rgba(15, 30, 22, 0.16);
}

.philosophy-hero-card {
    border: 1px solid rgba(36, 67, 95, 0.14);
    border-radius: 24px;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.95), rgba(247, 249, 251, 0.95));
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    color: #224332;
    box-shadow: 0 26px 60px rgba(10, 22, 16, 0.28);
}

.philosophy-hero-card.has-background::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, rgba(16, 27, 39, 0.7), rgba(16, 27, 39, 0.42));
}

.philosophy-hero-inner {
    position: relative;
    z-index: 1;
}

.philosophy-hero-card.has-background .pill {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.philosophy-hero-card.has-background .philosophy-quote {
    color: #fff;
    max-width: 850px;
}

.text-white-75 {
    color: rgba(255, 255, 255, 0.82);
}

.philosophy-quote {
    font-family: 'Manrope', sans-serif;
    color: #204034;
    font-size: clamp(1.8rem, 3.8vw, 3.35rem);
    line-height: 1.22;
}

.philosophy-panel {
    background: linear-gradient(155deg, #2a5240, #1b3626);
    color: #f3f4f6;
    border-radius: 22px;
    padding: 2rem;
    position: relative;
    overflow: hidden;
    box-shadow: 0 18px 40px rgba(8, 18, 12, 0.32);
    border: 1px solid rgba(255, 255, 255, 0.06);
    transition: transform 0.28s ease, box-shadow 0.28s ease;
}

.philosophy-panel:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 50px rgba(8, 18, 12, 0.4);
}

.philosophy-panel::before {
    content: '01';
    position: absolute;
    right: 1rem;
    top: -0.7rem;
    font-size: clamp(4rem, 7vw, 7rem);
    line-height: 1;
    color: rgba(173, 197, 130, 0.1);
    font-weight: 800;
}

.philosophy-opportunity::before {
    content: '02';
}

.philosophy-eyebrow {
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #b99266;
    font-size: 0.84rem;
}

.philosophy-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.philosophy-list li {
    padding: 0.95rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
    color: rgba(247, 248, 251, 0.88);
}

.philosophy-list li::before {
    content: '\2022';
    color: #8ba46f;
    margin-right: 0.7rem;
}

.project-media {
    height: 220px;
    width: 100%;
    object-fit: cover;
    border-radius: 16px 16px 0 0;
    transition: transform 0.4s ease;
}

.project-card {
    overflow: hidden;
}

.project-card:hover .project-media {
    transform: scale(1.05);
}

.project-card .card-body {
    padding: 1.25rem;
}

.services-portfolio {
    border: 1px solid rgba(36, 67, 95, 0.14);
    border-radius: 24px;
    background: linear-gradient(165deg, #fdfcfa, #f2efe6);
    color: #224332;
    box-shadow: 0 20px 48px rgba(15, 30, 22, 0.16);
}

.services-hero-card {
    position: relative;
    overflow: hidden;
    background-size: cover;
    background-position: center;
}

.services-hero-card.has-background::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(145deg, rgba(16, 27, 39, 0.75), rgba(16, 27, 39, 0.5));
}

.services-hero-inner {
    position: relative;
    z-index: 1;
}

.services-hero-card.has-background .pill {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.25);
    color: #fff;
}

.services-hero-card.has-background .section-title,
.services-hero-card.has-background .service-row h4,
.services-hero-card.has-background .service-row p {
    color: #fff;
}

.services-hero-card.has-background .service-row {
    border-bottom-color: rgba(255, 255, 255, 0.22);
}

.service-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem 2rem;
    padding: 1.25rem 1rem;
    border-bottom: 1px solid rgba(21, 32, 43, 0.12);
    border-radius: 10px;
    transition: background 0.25s ease, transform 0.25s ease;
}

.service-row:hover {
    background: rgba(181, 138, 90, 0.08);
    transform: translateX(4px);
}

.service-row h4 {
    margin: 0;
    font-family: 'Manrope', sans-serif;
    font-weight: 600;
    color: #224332;
}

.service-row p {
    margin: 0;
    color: #5c6d62;
}

.service-row-last {
    border-bottom: 0;
}

.consultoria-card {
    background: linear-gradient(165deg, #fdfcfa, #f2efe6);
    color: #224332;
    border-radius: 20px;
    box-shadow: 0 20px 46px rgba(15, 30, 22, 0.16);
}

.consultoria-card .section-title,
.consultoria-card .form-label,
.consultoria-card .text-muted {
    color: #224332 !important;
}

.consultoria-card .form-control,
.consultoria-card .form-select,
.consultoria-card textarea {
    background: #fff;
    border-color: rgba(34, 67, 50, 0.25);
    border-radius: 0;
    color: #224332;
    min-height: 3rem;
}

.consultoria-card .form-control::placeholder,
.consultoria-card textarea::placeholder {
    color: #566574;
}

.contact-section {
    padding: 5.5rem 0 5rem;
}

.contact-intro {
    padding-top: 1.4rem;
}

.contact-title {
    color: #f7f6f1;
    font-family: 'Prata', serif;
    font-size: clamp(2.2rem, 4vw, 4rem);
    line-height: 1.18;
    margin: 1.1rem 0 1.7rem;
}

.contact-rule {
    background: #b58a5a;
    height: 2px;
    margin-bottom: 1.7rem;
    width: 5rem;
}

.contact-lead {
    color: rgba(247, 246, 241, 0.82);
    font-size: 1.08rem;
    line-height: 1.75;
    max-width: 28rem;
}

.contact-form-card {
    border: 1px solid rgba(181, 138, 90, 0.65);
    border-radius: 20px;
    box-shadow: 0 24px 54px rgba(8, 18, 12, 0.3);
}

.contact-form-kicker {
    color: #b06f32;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    margin-bottom: 1.8rem;
    text-transform: uppercase;
}

.contact-form-card .form-label {
    font-size: 0.82rem;
    font-weight: 800;
    margin-bottom: 0.45rem;
}

.contact-form-card .form-control:focus,
.contact-form-card .form-select:focus,
.contact-form-card textarea:focus {
    border-color: #b58a5a;
    box-shadow: 0 0 0 0.2rem rgba(181, 138, 90, 0.2);
}

.about-shell {
    background: linear-gradient(155deg, #2a5240, #182f22);
    color: #f4efe7;
    border-radius: 28px;
    overflow: hidden;
    box-shadow: 0 28px 60px rgba(8, 18, 12, 0.32);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.about-copy {
    padding: 2.8rem;
}

.about-title {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(2.2rem, 4.8vw, 4rem);
    line-height: 1.08;
    margin: 0;
}

.about-role {
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #8f9970;
}

.about-divider {
    width: 62px;
    height: 1px;
    background: rgba(216, 166, 87, 0.9);
}

.about-text {
    color: rgba(244, 239, 231, 0.84);
    font-size: 1.08rem;
    line-height: 1.85;
    max-width: 40rem;
}

.about-portrait-frame {
    padding: 1rem;
    height: 100%;
}

.about-portrait-image {
    width: 100%;
    height: min(78vh, 760px);
    display: block;
    object-fit: cover;
    object-position: 76% 24%;
    border-radius: 12px;
    border: 1px solid rgba(181, 138, 90, 0.8);
    box-shadow: 0 20px 46px rgba(6, 16, 10, 0.4);
    background: #fff;
}

.pill {
    display: inline-flex;
    font-size: 0.78rem;
    background: rgba(34, 67, 50, 0.09);
    border: 1px solid rgba(34, 67, 50, 0.2);
    color: #224332;
    padding: 0.35rem 0.65rem;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(34, 67, 50, 0.08);
}

.site-footer {
    background: linear-gradient(180deg, #17301f, #0f2216);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06), 0 -18px 40px rgba(7, 19, 12, 0.12);
    position: relative;
}

.site-footer::before {
    background: linear-gradient(90deg, transparent, rgba(181, 138, 90, 0.7), transparent);
    content: '';
    height: 1px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.footer-logo {
    display: block;
    height: 72px;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
    width: auto;
}

.text-light-opacity {
    opacity: 0.82;
}

.social-link {
    color: rgba(255, 255, 255, 0.88);
    text-decoration: none;
    margin-left: 0.9rem;
}

.social-link:hover {
    color: var(--accent);
}

.whatsapp-float {
    align-items: center;
    background: #25d366;
    border: 2px solid #f7f6f1;
    border-radius: 50%;
    bottom: 1.5rem;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28);
    color: #fff;
    display: flex;
    font-size: 1.65rem;
    height: 3.5rem;
    justify-content: center;
    position: fixed;
    right: 1.5rem;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
    width: 3.5rem;
    z-index: 1030;
}

.whatsapp-float:hover {
    background: #1da851;
    color: #fff;
    transform: translateY(-3px);
}

.fade-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.65s ease var(--reveal-delay, 0ms), transform 0.65s ease var(--reveal-delay, 0ms);
}

.fade-up.in {
    opacity: 1;
    transform: translateY(0);
}

.section-eyebrow,
.solution-page .section-eyebrow {
    color: #b58a5a;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.22em;
    text-transform: uppercase;
}

.solution-page {
    padding-top: 98px;
    color: #f7f6f1;
}

.solution-intro {
    padding-bottom: 5rem;
    padding-top: 5rem;
}

.home-solution {
    padding-top: 2.5rem;
}

.solution-heading,
.solution-differentiation h2 {
    font-family: 'Manrope', sans-serif;
    font-size: clamp(2.35rem, 4.5vw, 4.4rem);
    font-weight: 400;
    line-height: 1.15;
}

.solution-capabilities {
    margin-top: 4rem;
}

.solution-capability {
    border-right: 1px solid rgba(247, 246, 241, 0.24);
    min-height: 20rem;
    padding: 3rem 2.3rem;
    position: relative;
    transition: background 0.28s ease, transform 0.28s ease;
}

.solution-capability::before {
    background: #b58a5a;
    content: '';
    height: 2px;
    left: 2.3rem;
    position: absolute;
    top: 1.8rem;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.28s ease;
    width: 3rem;
}

.solution-capability:hover {
    background: rgba(255, 255, 255, 0.045);
    transform: translateY(-6px);
}

.solution-capability:hover::before {
    transform: scaleX(1);
}

.solution-capability:last-child {
    border-right: 0;
}

.solution-number {
    color: rgba(247, 246, 241, 0.44);
    display: block;
    font-size: 4rem;
    font-weight: 400;
    margin-bottom: 2.4rem;
    transition: color 0.28s ease, transform 0.28s ease;
}

.solution-capability:hover .solution-number {
    color: rgba(247, 246, 241, 0.72);
    transform: translateX(0.4rem);
}

.solution-capability h2,
.solution-capability h3 {
    font-family: 'Manrope', sans-serif;
    font-size: 1.25rem;
    font-weight: 800;
    letter-spacing: 0;
}

:focus-visible {
    outline: 2px solid #b58a5a;
    outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
    .home-hero .carousel-item.active .hero-carousel-image {
        animation: none;
    }

    .fade-up,
    .home-contact-content,
    .solution-capability,
    .solution-number {
        transition: none;
    }
}

.solution-capability p,
.solution-lead {
    color: rgba(247, 246, 241, 0.78);
    line-height: 1.7;
}

.solution-differentiation {
    background: #224332;
    color: #fff;
    padding: 5rem 0 6rem;
}

.solution-differentiation .solution-lead {
    color: rgba(255, 255, 255, 0.72);
    max-width: 45rem;
}

.discipline-list {
    margin-top: 4rem;
}

.discipline-item {
    align-items: center;
    border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    display: flex;
    font-size: clamp(1.5rem, 2.5vw, 2.2rem);
    font-weight: 400;
    justify-content: space-between;
    padding: 1.35rem 1rem;
    border-radius: 8px;
    transition: background 0.25s ease, padding 0.25s ease;
}

.discipline-item:hover {
    background: rgba(181, 138, 90, 0.08);
    padding-left: 1.5rem;
}

.discipline-item span:last-child {
    color: #b58a5a;
}

@media (max-width: 991px) {
    .hero-slide {
        min-height: 60vh;
        border-radius: 0 0 20px 20px;
    }

    .hero-carousel-image {
        height: auto;
        width: 100%;
    }

    .hero-content {
        padding-top: 9rem;
    }

    .social-link {
        margin-left: 0;
        margin-right: 1rem;
    }

    .brand-logo,
    .brand-mark {
        height: 62px;
    }

    .brand-logo {
        width: auto;
        max-width: 190px;
    }

    .philosophy-panel {
        padding: 1.35rem;
    }

    .service-row {
        grid-template-columns: 1fr;
        gap: 0.6rem;
    }

    .about-copy {
        padding: 1.5rem;
    }

    .contact-section {
        padding: 3.25rem 0 3.5rem;
    }

    .contact-intro {
        padding-top: 0;
    }

    .about-portrait-image {
        height: 460px;
        object-position: 74% 18%;
    }

    .solution-intro {
        padding-top: 3.5rem;
    }

    .solution-capabilities {
        margin-top: 2rem;
    }

    .solution-capability {
        border-bottom: 1px solid rgba(247, 246, 241, 0.24);
        border-right: 0;
        min-height: 0;
        padding: 2rem 0;
    }
}
