/* Integer Consulting - Professional Design */

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

:root {
    --primary-color: #1a1a1a;
    --secondary-color: #2d2d2d;
    --accent-color: #FF5722;
    --accent-dark: #E64A19;
    --accent-light: #FF7043;
    --accent-darker: #D84315;
    --light-bg: #f5f5f5;
    /* Match typography colors from https://integerconsulting.pt */
    --text-dark: #2c2c2c;
    --text-light: #6c757d;
    --white: #ffffff;
    --shadow: 0 2px 15px rgba(0, 0, 0, 0.1);

    /* Hero video tuning (adjust to taste) */
    --hero-video-opacity: 0.82;
    --hero-overlay-opacity: 0.28;

    /* Hero tone overlay (orange -> blue) */
    --hero-tone-left: 255 122 45;   /* orange */
    --hero-tone-right: 93 169 255;  /* blue */
    --hero-tone-opacity: 0.55;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 105%;
    line-height: 1.6;
    color: var(--text-dark);
    background-color: var(--white);
    overflow-x: hidden;
}

/* Typography */
h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    margin-bottom: 1rem;
    line-height: 1.2;
    letter-spacing: -1px;
}

h1 {
    font-size: 2.5rem;
}

h2 {
    font-size: 2rem;
}

h3 {
    font-size: 1.75rem;
}

p {
    color: inherit;
    margin-bottom: 1rem;
}

/* Reveal on scroll (modules appear bottom-up) */
.reveal-on-scroll {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    will-change: opacity, transform;
}

.reveal-on-scroll.is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .reveal-on-scroll {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* Navbar */
.navbar {
    background-color: var(--primary-color) !important;
    padding: 1rem 0;
    box-shadow: var(--shadow);
}

.navbar-brand {
    color: var(--white) !important;
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: 1px;
    transition: all 0.3s ease;
}

.navbar .navbar-brand img {
    height: 64px;
    max-height: 64px;
    width: auto;
    display: block;
}

@media (max-width: 575.98px) {
    .navbar .navbar-brand img {
        height: 56px;
        max-height: 56px;
    }
}

.navbar-brand:hover {
    color: var(--accent-color) !important;
}

.navbar-brand i {
    margin-right: 0.5rem;
}

.nav-link {
    color: var(--white) !important;
    margin-left: 1.5rem;
    transition: all 0.3s ease;
    font-weight: 500;
}

.nav-link:hover,
.nav-link.active {
    color: var(--accent-color) !important;
}

/* Navbar (site público) - transparente no topo, branco ao scroll */
.navbar.navbar-scroll-white {
    background-color: transparent !important;
    box-shadow: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1030;
}

/* When using the overlay navbar, offset page content on non-hero pages */
body.has-scroll-white-navbar:not(.has-top-hero) main {
    padding-top: var(--navbar-offset, 96px);
}

body.has-scroll-white-navbar.has-top-hero main {
    padding-top: 0;
}

/* Topo (sem scroll): letras e ícones a branco (override ao Bootstrap) */
.navbar.navbar-scroll-white:not(.is-scrolled) .nav-link {
    color: var(--white) !important;
}

.navbar.navbar-scroll-white:not(.is-scrolled) .nav-link svg,
.navbar.navbar-scroll-white:not(.is-scrolled) .nav-link i {
    color: var(--white) !important;
}

.navbar.navbar-scroll-white.is-scrolled {
    background-color: var(--white) !important;
    box-shadow: var(--shadow);
}

.navbar.navbar-scroll-white.is-scrolled .nav-link {
    color: var(--text-dark) !important;
}

/* Ao scroll: link ativo a laranja (como no site atual) */
.navbar.navbar-scroll-white.is-scrolled .nav-link.active,
.navbar.navbar-scroll-white.is-scrolled .nav-link[aria-current="page"] {
    color: var(--accent-color) !important;
}

/* Ao scroll: ícones a laranja (SVGs usam currentColor) */
.navbar.navbar-scroll-white.is-scrolled .nav-link svg,
.navbar.navbar-scroll-white.is-scrolled .nav-link i {
    color: var(--accent-color) !important;
}

/* Hamburger mobile: FA bars (não depende de SVG data-URI do Bootstrap) */
.navbar.navbar-scroll-white .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.55);
    color: var(--white);
    padding: 0.4rem 0.55rem;
}
.navbar.navbar-scroll-white .navbar-toggler:focus {
    box-shadow: none;
}
.navbar.navbar-scroll-white .navbar-toggler .fa-bars {
    font-size: 1.35rem;
    line-height: 1;
    color: inherit;
}
.navbar.navbar-scroll-white.is-scrolled .navbar-toggler {
    border-color: rgba(44, 44, 44, 0.25);
    color: var(--text-dark);
}
/* Páginas sem hero (fundo claro no topo): ícone escuro */
body.has-scroll-white-navbar:not(.has-top-hero) .navbar.navbar-scroll-white:not(.is-scrolled) .navbar-toggler {
    border-color: rgba(44, 44, 44, 0.25);
    color: var(--text-dark);
}

/* Hero Section */
.hero {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: var(--white);
    padding: 120px 0;
    text-align: center;
    min-height: 500px;
    display: flex;
    align-items: center;
}

/* Contactos - headings (match hero headline look) */
.contact-heading {
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}

.contact-kicker {
    font-size: 13px;
    font-weight: 300;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--accent-color, #ff5722);
}

.contact-title {
    font-size: clamp(34px, 4.9vw, 66px);
    margin: 0;
    font-weight: 800;
    letter-spacing: -0.8px;
    line-height: 1.02;
    color: #153a5b;
}

.contact-title.contact-title--md {
    font-size: clamp(28px, 3.9vw, 52px);
}

.contact-title b,
.contact-title strong {
    font-weight: 900;
}

.contact-lead {
    font-size: clamp(16px, 1.55vw, 20px);
    line-height: 1.6;
    color: rgba(28, 39, 51, 0.78);
    margin: 14px auto 0;
    max-width: 920px;
}

/* Contactos — intro escritórios: texto por baixo do título */
#our-offices .offices-intro,
.page-contactos .offices-intro {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 16px;
    width: 100%;
}

#our-offices .offices-intro-heading,
.page-contactos .offices-intro-heading {
    flex: 0 0 auto;
    width: 100%;
    text-align: left;
}

#our-offices .offices-intro-lead,
#our-offices .contact-lead,
.page-contactos .offices-intro-lead {
    flex: 0 0 auto;
    width: 100%;
    margin: 0 !important;
    max-width: 920px !important;
    text-align: left !important;
}

.page-contactos .cms-content section.bg-light-grey .col-lg-12 {
    display: block;
}

.page-contactos .cms-content section.bg-light-grey .col-lg-12 > p:not(.text-orange) {
    text-align: left !important;
    max-width: 920px;
}

.contact-hero-video {
    margin-top: 26px;
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
}

.contact-video-frame {
    border-radius: 18px;
    overflow: hidden;
    background: #000;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 24px 80px rgba(0,0,0,0.14);
}

.contact-video-frame.contact-video-frame--hero {
    border-color: rgba(255,255,255,0.16);
    box-shadow: 0 24px 80px rgba(0,0,0,0.22);
}

.contact-video-frame video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hero .hero-title {
    font-size: clamp(38px, 5.4vw, 72px);
    margin: 0 auto 1rem;
    font-weight: 700;
    letter-spacing: -0.8px;
    line-height: 1.06;
    max-width: 980px;
}

.hero .hero-title b,
.hero .hero-title strong {
    font-weight: 800;
}

.hero .hero-subtitle {
    font-size: clamp(16px, 1.55vw, 22px);
    margin: 0.25rem auto 0;
    opacity: 0.92;
    color: var(--white);
    max-width: 900px;
    line-height: 1.45;
}

.hero .hero-subtitle:last-child {
    margin-bottom: 0;
}

/* Readability when using a lighter hero overlay */
.hero .hero-title,
.hero .hero-subtitle {
    text-shadow: 0 12px 35px rgba(0,0,0,0.28);
}

/* Hero video background */
.hero-video-container video {
    opacity: var(--hero-video-opacity);
    filter: saturate(0.90) brightness(1.10) contrast(0.96);
}

/* Generic video hero used by the Vagas page */
.video-heading{ position: relative; overflow: hidden; }
.video-heading .heading-content{ position: relative; z-index: 2; }
.video-heading .hero-video-container{ z-index: 0; }
.video-heading::before{
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(
        112deg,
        rgb(var(--hero-tone-left) / var(--hero-tone-opacity)) 0%,
        rgb(var(--hero-tone-left) / calc(var(--hero-tone-opacity) - 0.12)) 44%,
        rgb(var(--hero-tone-right) / calc(var(--hero-tone-opacity) - 0.12)) 56%,
        rgb(var(--hero-tone-right) / var(--hero-tone-opacity)) 100%
    );
}
.video-heading::after{
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(255, 255, 255, var(--hero-overlay-opacity));
    pointer-events: none;
}

/* Responsive helpers used in the recreated WordPress-like sections */
.hide-tablet{ display: block; }
.show-tablet{ display: none; }
@media (max-width: 991.98px){
    .hide-tablet{ display: none !important; }
    .show-tablet{ display: block !important; }
}

.hero-video-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;

    /* Color tones (like integerconsulting.pt hero) */
    background: linear-gradient(
        112deg,
        rgb(var(--hero-tone-left) / var(--hero-tone-opacity)) 0%,
        rgb(var(--hero-tone-left) / calc(var(--hero-tone-opacity) - 0.12)) 44%,
        rgb(var(--hero-tone-right) / calc(var(--hero-tone-opacity) - 0.12)) 56%,
        rgb(var(--hero-tone-right) / var(--hero-tone-opacity)) 100%
    );
}

.hero-video-overlay::after {
    content: '';
    position: absolute;
    inset: 0;

    /* Extra light layer for a whitish tone */
    background: rgba(255, 255, 255, var(--hero-overlay-opacity));
}

/* Home hero social links (right side) */
.hero-social {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.hero-social a {
    width: 54px;
    height: 54px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255,255,255,0.9);
    color: rgba(255,255,255,0.95);
    background: rgba(255,255,255,0.06);
    backdrop-filter: blur(2px);
    text-decoration: none;
    transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.hero-social a i {
    font-size: 22px;
}

.hero-social a:hover {
    transform: translateY(-2px);
    background: rgba(255, 87, 34, 0.92);
    border-color: rgba(255, 87, 34, 0.92);
    color: #fff;
}

@media (max-width: 575.98px) {
    .hero-social {
        right: 10px;
        gap: 14px;
    }
    .hero-social a {
        width: 46px;
        height: 46px;
    }
    .hero-social a i {
        font-size: 20px;
    }
}

/* Inline videos (Sobre) - click to play */
.inline-video-card {
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    background: #000;
}

.inline-video-card video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background: #000;
}

.inline-video-placeholder {
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.12) 0%, rgba(255, 255, 255, 0) 45%),
        linear-gradient(135deg, rgba(255, 87, 34, 0.35) 0%, rgba(93, 169, 255, 0.18) 60%, rgba(0,0,0,0.65) 100%);
}

.inline-video-placeholder.has-cover {
    background: #000;
}

.inline-video-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.video-play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.15);
    border: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    transition: background 0.2s ease;
}

.video-play-overlay:hover {
    background: rgba(0, 0, 0, 0.25);
}

.video-play-button {
    width: 86px;
    height: 86px;
    border-radius: 50%;
    background: rgba(255, 87, 34, 0.92);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.25);
    transition: transform 0.15s ease, background 0.15s ease;
}

.video-play-overlay:hover .video-play-button {
    transform: scale(1.04);
    background: rgba(255, 87, 34, 0.98);
}

.video-play-button i {
    color: #fff;
    font-size: 30px;
    margin-left: 4px;
}

/* Testimonials */
.testimonial-card {
    width: min(860px, 92vw);
    background: #fff;
    border-radius: 18px;
    padding: 28px 26px;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0,0,0,0.06);
}

.testimonials-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.testimonial-quote i {
    color: rgba(255, 87, 34, 0.85);
    font-size: 28px;
    margin-bottom: 12px;
}

.testimonial-quote p {
    color: #333;
    font-size: 1.1rem;
    line-height: 1.7;
}

.testimonial-meta {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
}

.testimonial-avatar {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
    border: 2px solid rgba(255, 87, 34, 0.22);
    box-shadow: 0 10px 18px rgba(0,0,0,0.08);
}

.testimonial-person {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.testimonial-name {
    font-weight: 800;
    color: #111;
}

.testimonial-role {
    color: rgba(0,0,0,0.55);
    font-size: 0.95rem;
}

/* About testimonials carousel controls */
#aboutTestimonialsCarousel .carousel-indicators [data-bs-target],
#vagasTestimonialsCarousel .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background-color: rgba(255, 87, 34, 0.35);
}

#aboutTestimonialsCarousel .carousel-indicators .active,
#vagasTestimonialsCarousel .carousel-indicators .active {
    background-color: rgba(255, 87, 34, 0.95);
}

#aboutTestimonialsCarousel .carousel-control-prev,
#aboutTestimonialsCarousel .carousel-control-next,
#vagasTestimonialsCarousel .carousel-control-prev,
#vagasTestimonialsCarousel .carousel-control-next {
    width: 48px;
}

#aboutTestimonialsCarousel .carousel-control-prev-icon,
#aboutTestimonialsCarousel .carousel-control-next-icon,
#vagasTestimonialsCarousel .carousel-control-prev-icon,
#vagasTestimonialsCarousel .carousel-control-next-icon {
    background-color: rgba(255, 87, 34, 0.92);
    border-radius: 50%;
    background-size: 55% 55%;
}

/* About quote (work section) */
.about-quote {
    background: #fff;
    border-radius: 16px;
    padding: 18px 18px;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.06);
}

/* Work section heading (orange accents like Our Story) */
.work-title {
    font-size: clamp(32px, 4vw, 52px);
    font-weight: 800;
    letter-spacing: -0.6px;
    line-height: 1.08;
    color: #153a5b;
    margin: 0 0 24px;
}

.work-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.work-title--side {
    text-align: left;
}

#sobre .about-work-section .display-4 {
    font-size: clamp(30px, 4.2vw, 52px);
    line-height: 1.06;
    letter-spacing: -0.6px;
    font-weight: 800;
    color: #153a5b;
}

#sobre .about-work-section .font-weight-bolder {
    font-weight: 800;
}

#sobre .about-work-section .blockquote {
    border: 0;
    padding: 0;
    margin: 0;
}

#sobre .about-work-section .blockquote-avatar {
    width: 73px;
    height: 73px;
    object-fit: cover;
    flex: 0 0 auto;
}

#sobre .about-work-section .blockquote-footer {
    margin-top: 0.75rem;
    font-size: inherit;
    color: rgba(0, 0, 0, 0.72);
    background: transparent;
    padding: 0;
}

#sobre .about-work-section .blockquote-footer cite {
    color: #3aa0f9;
    font-style: normal;
    font-weight: 600;
}

#sobre .about-work-section .about-work-blockquote {
    gap: 0;
}

#sobre .about-work-section .about-work-avatar-wrap {
    margin-right: 1rem;
}

#sobre .about-work-section .about-work-quote-text {
    font-style: italic;
    color: rgba(0, 0, 0, 0.78);
    line-height: 1.65;
}

#sobre .icon-orange path,
#sobre .icon-orange g,
#sobre .icon-orange circle {
    fill: #FF5722;
    stroke: #FF5722;
}

#sobre .icon-orange .play-button-inside {
    fill: #fff;
    stroke: none;
}

#sobre .video-cover {
    min-height: 260px;
    object-fit: cover;
    border-radius: 12px;
    display: block;
}

#sobre .about-culture-eyebrow {
    letter-spacing: 0.12em;
    font-size: 13px;
    font-weight: 300;
    color: var(--accent-color, #ff5722);
}

#sobre .about-culture-title {
    font-size: clamp(44px, 5.2vw, 78px);
    font-weight: 300;
    line-height: 1.02;
    letter-spacing: -1px;
    color: #2a2a2a;
}

#sobre .about-culture-title-accent {
    color: #FF5722;
    font-weight: 600;
}

#sobre .about-culture-lead {
    color: rgba(0, 0, 0, 0.74);
    font-size: clamp(18px, 1.5vw, 22px);
    line-height: 1.85;
    font-weight: 400;
    max-width: 1100px;
}

@media (min-width: 992px) {
    #sobre .about-culture-video-col:first-child {
        padding-right: 1.5rem;
    }

    #sobre .about-culture-video-col:last-child {
        padding-left: 1.5rem;
    }

    #sobre .about-colleagues-title-col {
        padding-right: 2.5rem;
    }

    #sobre .about-colleagues-carousel-col {
        padding-left: 2.5rem;
    }
}

#sobre .card-testimonials {
    border: 0;
    border-radius: 12px;
}

#sobre .card-testimonials .card-header {
    background: #fff;
    border: 0;
}

#sobre .about-colleagues-avatar {
    width: 72px;
    height: 72px;
    object-fit: cover;
    flex: 0 0 72px;
}

#sobre .about-colleagues-avatar--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #FF5722;
    color: #fff;
    font-size: 1.5rem;
}

#sobre .testimonials-name {
    font-size: 18px;
    color: #1f1f1f;
}

#sobre .testimonials-role {
    font-size: 14px;
}

#sobre .about-colleagues-carousel {
    border-radius: 12px;
    overflow: hidden;
}

#sobre .about-colleagues-nav {
    width: 46px;
    height: 46px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: rgba(0, 0, 0, 0.15);
    color: rgba(0, 0, 0, 0.45);
}

#sobre .about-colleagues-nav:hover {
    color: #FF5722;
    border-color: #FF5722;
}

#sobre .about-colleagues-carousel .carousel-indicators [data-bs-target] {
    background-color: #FF5722;
}

@media (max-width: 991.98px) {
    #sobre .about-work-section .sm-on-top {
        margin-right: 0 !important;
        margin-bottom: 1rem;
    }

    #sobre .about-work-section .blockquote {
        flex-direction: column;
    }
}

@media (max-width: 768px) {
    .work-title {
        margin-bottom: 18px;
    }
}

.about-quote.about-quote--media {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.about-quote-photo {
    flex: 0 0 auto;
    width: 72px;
    height: 72px;
}

.about-quote-photo img,
.about-quote-photo-placeholder {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    object-fit: cover;
    border: 1px solid rgba(0,0,0,0.12);
    background: linear-gradient(135deg, rgba(255, 87, 34, 0.15) 0%, rgba(93, 169, 255, 0.12) 55%, rgba(0,0,0,0.03) 100%);
}

.about-quote-photo-placeholder i {
    color: rgba(0,0,0,0.45);
    font-size: 22px;
}

.about-quote-body {
    flex: 1 1 auto;
    min-width: 0;
}

.about-quote-text {
    color: #333;
    font-size: 1.05rem;
    line-height: 1.7;
}

/* About (Our Story) heading style to match integerconsulting.pt */
.about-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 300;
    color: var(--accent-color, #ff5722);
    margin: 0 0 10px;
    font-size: 13px;
}

.about-title {
    font-size: clamp(40px, 4.8vw, 56px);
    font-weight: 800;
    letter-spacing: -0.8px;
    line-height: 1.08;
    margin: 0 0 18px;
    color: #153a5b;
}

.about-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.about-copy {
    font-size: 18px;
    line-height: 1.8;
    color: rgba(0,0,0,0.80);
}

.about-copy p {
    margin: 0 0 28px;
}

@media (max-width: 768px) {
    .about-copy { font-size: 17px; }
}

/* Vagas - Why section spacing/typography aligned with production opportunity page */
#vagas .vagas-why-section{
    padding-bottom: 0 !important;
}
#vagas .vagas-why-section .vagas-why-title{
    color: #153a5b;
    font-weight: 800;
}
#vagas .vagas-why-section .vagas-why-title .about-title-accent,
#vagas .vagas-why-section .vagas-why-title .text-orange{
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}
#vagas .vagas-why-section .vagas-why-text{
    max-width: none;
    text-align: left;
    color: rgba(0, 0, 0, 0.80);
    line-height: 1.7;
    margin-bottom: 0;
}

/* Production keeps Why copy and Benefits image in one continuous block — avoid the large py-100 gap */
#vagas .vagas-benefits-section{
    padding-top: 2.5rem !important;
}

/* Vagas - Benefits section: disposição do texto à altura da imagem */
#vagas .vagas-benefits-row{
    margin-top: 0;
}

#vagas .vagas-benefits-header .text-orange{
    color: #f97b3a;
    font-size: 14px;
    font-weight: 300;
    letter-spacing: 0.1em;
}

#vagas .vagas-benefits-title{
    color: #1c2733;
    font-size: clamp(26px, 3.5vw, 38px) !important;
    line-height: 1.12;
    font-weight: 700;
    letter-spacing: -0.4px;
}

#vagas .vagas-benefits-title .text-orange{
    color: #f97b3a;
    font-weight: 800;
    font-size: inherit;
    line-height: inherit;
}

#vagas .vagas-benefits-title .text-orange.font-weight-bolder {
    font-size: 1em;
    font-weight: 800 !important;
}

#vagas .vagas-benefits-image-col,
#vagas .vagas-benefits-content-col,
#vagas .vagas-benefit-item {
    will-change: transform, opacity;
}

#vagas .icon-list .vagas-benefit-title{
    color: #153a5b !important;
    font-size: 18px !important;
    line-height: 1.35;
    font-weight: 700;
}

#vagas .icon-list .vagas-benefit-desc{
    color: rgba(0, 0, 0, 0.68) !important;
    font-size: 16px !important;
    line-height: 1.55;
}

#vagas .icon-list .icon-orange path:not(.play-button-inside),
#vagas .icon-list .icon-orange circle{
    fill: #f97b3a;
    stroke: #f97b3a;
}

#vagas .icon-list svg.icon{
    width: 40px;
    height: 40px;
}

#vagas .icon-list .icon.smaller{
    width: 36px;
    height: 36px;
}

#vagas .vagas-benefit-icon{
    flex: 0 0 auto;
    min-width: 52px;
}

#vagas .vagas-benefit-icon-img{
    width: 36px;
    height: 36px;
    object-fit: contain;
}

#vagas .vagas-filter-list .list-group-item{
    padding-top: 0.45rem;
    padding-bottom: 0.45rem;
    background: transparent;
}

#vagas .vagas-filter-check{
    position: relative;
    display: block;
    padding-right: 1.75rem;
    min-height: 2rem;
}

#vagas .vagas-filter-checkbox{
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1.1rem;
    height: 1.1rem;
    margin: 0;
    cursor: pointer;
    accent-color: var(--accent-color, #f97b3a);
}

#vagas .vagas-filter-label{
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
    cursor: pointer;
    color: #1c2733;
    line-height: 1.35;
}

#vagas .vagas-filter-text{
    flex: 1 1 auto;
    min-width: 0;
}

#vagas .vagas-filter-icon,
#vagas .vagas-filter-icon-img{
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    object-fit: contain;
}

#vagas .vagas-filter-icon{
    display: inline-block;
}

#vagas .vagas-filter-icon svg{
    width: 30px;
    height: 30px;
    display: block;
}

/* Filtros Carreiras: tom integer.pt (#f97b3a, fill only — sem stroke) */
#vagas #opportunities-search-form .icon-orange,
#vagas #opportunities-search-form .vagas-filter-icon.icon-orange {
    fill: #f97b3a;
}

#vagas #opportunities-search-form .icon-orange path:not(.play-button-inside),
#vagas #opportunities-search-form .icon-orange circle,
#vagas #opportunities-search-form .icon-orange g,
#vagas #opportunities-search-form .icon-orange rect {
    fill: #f97b3a;
    stroke: none;
}

@media (min-width: 992px){
    #vagas .vagas-filter-icon,
    #vagas .vagas-filter-icon-img,
    #vagas .vagas-filter-icon svg{
        width: 36px;
        height: 36px;
    }
}

@media (min-width: 992px){
    #vagas .vagas-benefits-image{
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    #vagas .vagas-benefits-content-col{
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        min-height: 100%;
    }

    #vagas .vagas-benefits-header{
        flex: 0 0 auto;
        margin-bottom: 0;
    }

    #vagas .vagas-benefits-items{
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        min-height: 0;
        padding-top: 1.75rem;
    }

    #vagas .vagas-benefit-item{
        margin-bottom: 0;
    }
}

@media (max-width: 991.98px){
    #vagas .vagas-benefits-image{
        max-height: 420px;
        object-fit: cover;
    }

    #vagas .vagas-benefit-item{
        margin-bottom: 1rem;
    }

    #vagas .vagas-benefit-item:last-child{
        margin-bottom: 0;
    }
}

#vagas .icon-orange path:not(.play-button-inside),
#vagas .icon-orange circle,
#vagas .icon-orange g {
    fill: var(--accent-color, #f97b3a);
    stroke: var(--accent-color, #f97b3a);
}

#vagas [data-animation]:not(.animate__animated) {
    opacity: 0;
}

#vagas .animate__animated {
    opacity: 1;
}

#vagas .font-weight-bold { font-weight: 700 !important; }
#vagas .font-weight-bolder { font-weight: 800 !important; }

.about-quote-mark {
    color: rgba(255, 87, 34, 0.85);
    font-size: 22px;
    margin-bottom: 6px;
}

.about-quote-author {
    color: rgba(0,0,0,0.6);
    font-weight: 700;
    font-size: 0.95rem;
}

.about-quote-author-name {
    font-weight: 800;
    color: rgba(0,0,0,0.78);
}

.about-quote-author-role {
    font-weight: 700;
    color: rgba(0,0,0,0.55);
}

/* Team (Meet our people) heading like screenshot */
.team-section .team-intro {
    max-width: 1050px;
    margin: 0 0 44px;
}

.team-section .team-title {
    margin-bottom: 18px;
}

.team-section .team-copy {
    max-width: 980px;
}

@media (max-width: 576px) {
    .about-quote.about-quote--media {
        flex-direction: column;
        align-items: center;
        text-align: left;
    }

    .about-quote-photo {
        width: 84px;
        height: 84px;
    }

    .about-quote-photo img,
    .about-quote-photo-placeholder {
        width: 84px;
        height: 84px;
    }
}

/* Trusted-by */
/* Infinite carousel (marquee style) */
.trusted-marquee {
    overflow: hidden;
    position: relative;
    width: 100%;
}

.trusted-track {
    display: flex;
    gap: 14px;
    width: max-content;
    will-change: transform;
}

.trusted-marquee.is-animated .trusted-track {
    animation: trustedScroll 35s linear infinite;
}

@keyframes trustedScroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.trusted-slide {
    width: 220px; /* ~5 items in a 1200px container */
    min-height: 88px;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.08);
    border-radius: 14px;
    padding: 16px 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.05);
}

.trusted-logo {
    width: 170px;
    height: 44px;
    max-width: 100%;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.85;
}

.trusted-text {
    font-weight: 800;
    color: rgba(0,0,0,0.75);
    text-align: center;
}

@media (max-width: 992px) {
    .trusted-slide { width: 190px; }
    .trusted-logo { width: 150px; }
}

@media (max-width: 520px) {
    .trusted-slide { width: 160px; }
    .trusted-logo { width: 130px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
    .trusted-marquee.is-animated .trusted-track { animation: none; }
}

/* Trusted-by (home) - production-style strip */
#trusted-by .trusted-slide {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
    min-height: 0;
    border-radius: 0;
}

#trusted-by .trusted-logo {
    filter: none;
    opacity: 1;
}

/* CTA video banner (Sobre, etc.) */
.cta-video {
    position: relative;
    overflow: hidden;
    min-height: 520px;
    display: flex;
    align-items: center;
    background: #1a1a1a;
}

.cta-video .hero-video-container video {
    opacity: 1;
}

.cta-video-orange-overlay,
.services-cta-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: rgba(249, 123, 58, 0.9);
}

.cta-video .cta-video-content {
    position: relative;
    z-index: 2;
    padding: 96px 0;
    text-align: center;
    color: #fff;
    width: 100%;
}

.cta-video .cta-video-title {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 3.125rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -1px;
    margin: 0;
}

.cta-video .cta-video-heading-sub {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 3.125rem;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -1px;
    margin: 0 0 1.5rem;
}

.cta-video-copy {
    max-width: 980px;
    margin: 0 auto 2rem;
    padding: 0;
    border: 0;
}

.cta-video-copy p {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    color: #fff;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: 0;
    margin: 0;
}

.cta-video-copy p + p {
    margin-top: 0;
}

.cta-video .cta-white-btn {
    min-width: 260px;
    padding: 16px 24px;
    border-radius: 10px;
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #f97b3a;
    background: rgba(255,255,255,0.96);
    border: 0;
}

.cta-video .cta-white-btn:hover {
    background: #fff;
    color: var(--accent-dark);
}

/* Contact banner */
.contact-banner {
    background: #1f3f57;
    color: #fff;
    padding: 70px 0;
}

.contact-banner-eyebrow {
    color: rgba(255,255,255,0.85);
    margin-bottom: 10px;
}

.contact-banner-title {
    font-size: clamp(34px, 4.6vw, 74px);
    font-weight: 900;
    line-height: 1.02;
    margin-bottom: 10px;
    color: #fff;
}

/* Footer CTA: match production sizing (2 lines on desktop) */
footer .contact-banner-title {
    font-size: clamp(30px, 3.9vw, 64px);
    font-weight: 800;
    line-height: 1.04;
    white-space: normal;
    overflow-wrap: break-word;
    text-wrap: balance;
}

/* Footer CTA: keep first line intact on desktop; avoid 4-line stacks */
@media (min-width: 992px) {
    footer .contact-banner-title {
        font-size: clamp(28px, 3.6vw, 60px);
    }
}

/* Footer: back-to-top arrow */
footer .footer-back-to-top {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.16);
    color: rgba(255, 255, 255, 0.28);
    background: #1f3f57;
    text-decoration: none;
    transition: all 0.3s ease;
}

footer .footer-back-to-top:hover {
    border-color: rgba(255, 255, 255, 0.26);
    color: rgba(255, 255, 255, 0.6);
    transform: translateY(-1px);
}

footer .footer-back-to-top i {
    font-size: 16px;
    line-height: 1;
}

footer .footer-divider-wrap {
    position: relative;
    margin: 28px 0 10px;
}

footer .footer-divider-wrap .footer-divider {
    margin: 0;
}

footer .footer-divider-wrap .footer-back-to-top {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.contact-banner-logos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: center;
}

.contact-logo {
    background: rgba(255,255,255,0.95);
    border-radius: 14px;
    padding: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 86px;
}

.contact-logo img {
    max-width: 100%;
    max-height: 56px;
    object-fit: contain;
}

.contact-logo-text {
    color: rgba(0,0,0,0.75);
    font-weight: 800;
    text-align: center;
}

/* Footer-specific overrides: no blue background and no white tiles behind logos */
footer .contact-banner {
    background: transparent;
    padding: 0 0 40px;
}

footer .contact-logo-text {
    color: rgba(255, 255, 255, 0.85);
}

/* Footer certification logos (match integer.pt layout) */
footer .footer-cert-logos {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    width: 100%;
    max-width: 500px;
    margin: 0 0 0 auto;
}

footer .footer-cert-logos__primary {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    margin-top: 2.5rem;
    margin-bottom: 0.75rem;
}

footer .footer-cert-logos__primary--text,
footer .footer-cert-logos__badge--text {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.9rem;
}

footer .footer-cert-logos__integer {
    display: block;
    width: auto;
    max-width: 230px;
    height: auto;
    object-fit: contain;
}

footer .footer-cert-logos__secondary {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 12px;
    width: 100%;
}

footer .footer-cert-logos__badge {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-end;
    justify-content: center;
}

footer .footer-cert-logos__badge-img {
    display: block;
    height: 80px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
}

@media (max-width: 991.98px) {
    footer .footer-cert-logos {
        align-items: center;
        margin: 1.25rem auto 0;
    }

    footer .footer-cert-logos__primary {
        justify-content: center;
        margin-top: 0;
    }

    footer .footer-cert-logos__secondary {
        justify-content: center;
        flex-wrap: wrap;
    }

    footer .footer-cert-logos__integer {
        max-width: 200px;
    }

    footer .footer-cert-logos__badge-img {
        height: 64px;
    }
}

@media (max-width: 992px) {
    .contact-banner-logos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}



/* Language modal */
.lang-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.65);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.lang-modal.is-open {
    display: flex;
}

.lang-modal-content {
    position: relative;
    width: min(920px, 92vw);
    padding: 28px 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 42px;
}

.lang-modal-close {
    position: absolute;
    right: 12px;
    top: 10px;
    background: transparent;
    border: 0;
    color: rgba(255, 255, 255, 0.9);
    font-size: 42px;
    line-height: 1;
    cursor: pointer;
}

.lang-option {
    font-size: clamp(42px, 7vw, 96px);
    font-weight: 700;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.95);
    transition: transform 0.2s ease, color 0.2s ease;
}

.lang-option[data-lang="pt"] {
    color: var(--accent-color);
}

.lang-option:hover {
    transform: translateY(-2px);
    color: var(--white);
}

@media (max-width: 520px) {
    .lang-modal-content {
        flex-direction: column;
        gap: 18px;
    }
}

.hero h1 {
    font-size: 3.5rem;
    margin-bottom: 1rem;
    font-weight: 800;
    letter-spacing: -1px;
}

.hero h2 {
    font-size: 2rem;
    font-weight: 400;
    margin-bottom: 2rem;
    opacity: 0.95;
}

.hero p {
    font-size: 1.3rem;
    margin-bottom: 2rem;
    opacity: 0.9;
    color: var(--white);
}

.hero .btn {
    padding: 12px 40px;
    font-size: 1.1rem;
    border-radius: 50px;
    font-weight: 600;
    transition: all 0.3s ease;
    margin: 0.5rem;
}

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

.btn-primary:hover {
    background-color: var(--accent-dark);
    border-color: var(--accent-dark);
    transform: translateY(-2px);
    box-shadow: 0 5px 20px rgba(255, 102, 0, 0.3);
}

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

/* Sections */
main {
    min-height: calc(100vh - 60px);
}

section {
    padding: 80px 0;
}

section.light-bg {
    background-color: var(--light-bg);
}

.section-title {
    text-align: center;
    margin-bottom: 3rem;
    color: var(--text-dark);
}

.section-title h2 {
    margin-bottom: 1rem;
}

.section-title p {
    font-size: 1.1rem;
    max-width: 600px;
    margin: 0 auto;
}

/* Services Section */
.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

/* Home - Services (screenshot style) */
.home-services {
    padding-top: 92px;
    padding-bottom: 92px;
    background: #fff;
}

.home-services-title {
    font-size: clamp(34px, 3.8vw, 56px);
    font-weight: 800;
    letter-spacing: -0.8px;
    line-height: 1.1;
    color: #153a5b;
    margin: 0 0 14px;
}

.home-services-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.home-services-lead {
    max-width: 980px;
    margin: 0 auto;
    color: rgba(0,0,0,0.62);
    font-size: clamp(16px, 1.25vw, 20px);
    line-height: 1.7;
}

.home-services-grid {
    margin-top: 52px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 26px;
}

.svc-card {
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 10px 22px rgba(0,0,0,0.06);
    padding: 22px 22px 18px;
    min-height: 460px;
    display: flex;
    flex-direction: column;
}

.svc-topline {
    width: 22px;
    height: 2px;
    border-radius: 99px;
    background: var(--accent-color);
    margin-bottom: 16px;
}

.svc-heading {
    margin-bottom: 14px;
}

.svc-title {
    font-weight: 900;
    letter-spacing: -0.3px;
    color: #153a5b;
    font-size: 22px;
    line-height: 1.1;
}

.svc-subtitle {
    font-weight: 700;
    color: #111;
    opacity: 0.95;
    font-size: 15px;
    line-height: 1.2;
}

.svc-copy {
    color: rgba(0,0,0,0.64);
    line-height: 1.75;
    font-size: 14px;
    margin: 0 0 10px;
}

.svc-link {
    color: #3b82f6;
    font-style: italic;
    text-decoration: none;
    margin-top: auto;
}

.svc-link:hover {
    text-decoration: underline;
}

.svc-icon {
    display: flex;
    justify-content: center;
    padding-top: 18px;
}

.svc-icon-img {
    width: 108px;
    height: 108px;
    max-width: 100%;
    object-fit: contain;
    display: block;
}

.svc-stroke {
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.svc-orange {
    stroke: var(--accent-color);
}

.svc-blue {
    stroke: #2f80ed;
}

.home-services-cta {
    border-color: var(--accent-color);
    color: var(--accent-color);
    padding: 14px 26px;
    border-radius: 8px;
}

.home-services-cta:hover {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: #fff;
}

@media (max-width: 1199.98px) {
    .home-services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .home-services {
        padding-top: 64px;
        padding-bottom: 64px;
    }
    .home-services-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .svc-card {
        min-height: 0;
    }
}

/* Home - Values (What we stand for) */
.home-values {
    background: #fff;
}

.home-values-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    gap: 72px;
    align-items: center;
}

.home-values-media img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 22px;
    box-shadow: 0 18px 40px rgba(0,0,0,0.10);
}

.home-values-content {
    text-align: left;
}

.home-values-eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 300;
    color: var(--accent-color, #ff5722);
    font-size: 13px;
    margin: 0 0 12px;
}

.home-values-title {
    font-size: clamp(34px, 4.2vw, 58px);
    font-weight: 800;
    letter-spacing: -0.7px;
    line-height: 1.12;
    color: #153a5b;
    margin: 0;
}

.home-values-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.home-values-list {
    margin-top: 34px;
    display: flex;
    flex-direction: column;
    gap: 28px;
}

.home-values-item {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 16px;
    align-items: start;
}

.home-values-icon {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.hv-stroke {
    stroke: var(--accent-color);
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.home-values-name {
    font-weight: 700;
    color: #153a5b;
    margin: 0 0 4px;
}

.home-values-desc {
    color: rgba(0,0,0,0.65);
    line-height: 1.65;
    font-size: 14px;
}

@media (max-width: 991.98px) {
    .home-values-grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }
}

/* Home/Blog - Blog cards (screenshot style) */
.home-blog {
    background: #fff;
    padding-top: 84px;
    padding-bottom: 84px;
}

.home-blog-title {
    font-size: clamp(34px, 4.2vw, 56px);
    font-weight: 800;
    letter-spacing: -0.7px;
    line-height: 1.1;
    color: #153a5b;
    margin: 0 0 10px;
}

.home-blog-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.home-blog-lead {
    margin: 0 auto;
    max-width: 760px;
    color: rgba(0,0,0,0.60);
    font-size: 16px;
    line-height: 1.7;
}

.home-blog-grid {
    margin-top: 46px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
}

.home-blog-card {
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 14px;
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 12px 26px rgba(0,0,0,0.06);
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.3s ease-in-out;
}

.home-blog-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px rgba(0,0,0,0.10);
}

.home-blog-thumb {
    width: 100%;
    height: 210px;
    background: #f2f4f7;
}

.home-blog-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;

}

.svc-card:hover,
.svc-card:focus-within {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.10);
    border-color: rgba(255,87,34,0.18);
}

/* Card emphasis: hovered card stands out, siblings dim */
.cards-dim-group:hover .js-dim-card,
.home-services-grid:hover .svc-card,
.services-cards:hover .service-card {
    opacity: 0.22;
    filter: grayscale(1);
    transition: opacity 0.15s ease, filter 0.15s ease;
}

/* Robust trigger: dim when a card is hovered (doesn't rely on container :hover) */
.home-services-grid:has(.svc-card:hover) .svc-card,
.services-cards:has(.service-card:hover) .service-card {
    opacity: 0.22;
    filter: grayscale(1);
    transition: opacity 0.15s ease, filter 0.15s ease;
}

/* Ensure Services cards keep the same hover feel as Home cards (don't lose transform/shadow transitions) */
.services-cards:hover .service-card {
    transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease, opacity 0.15s ease, filter 0.15s ease;
}

.cards-dim-group:hover .js-dim-card:hover,
.cards-dim-group:hover .js-dim-card:focus-within,
.home-services-grid:hover .svc-card:hover,
.home-services-grid:hover .svc-card:focus-within,
.services-cards:hover .service-card:hover,
.services-cards:hover .service-card:focus-within {
    opacity: 1;
    filter: none;
}

.home-services-grid:has(.svc-card:hover) .svc-card:hover,
.home-services-grid:has(.svc-card:hover) .svc-card:focus-within,
.services-cards:has(.service-card:hover) .service-card:hover,
.services-cards:has(.service-card:hover) .service-card:focus-within {
    opacity: 1;
    filter: none;
}
.home-blog-thumb-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0,0,0,0.06) 0%, rgba(0,0,0,0.02) 60%, rgba(255,87,34,0.08) 100%);
}

.home-blog-body {
    padding: 18px 18px 12px;
    flex: 1 1 auto;
}

.home-blog-card-title {
    margin: 0 0 12px;
    color: #153a5b;
    font-weight: 900;
    letter-spacing: -0.2px;
    line-height: 1.25;
    font-size: 20px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

.home-blog-card-excerpt {
    margin: 0;
    color: rgba(0,0,0,0.62);
    line-height: 1.7;
    font-size: 13px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

/* Blog page (WordPress-like layout) */
.blog-page-intro{
    padding: 72px 0 18px;
}
.blog-intro-eyebrow{
    letter-spacing: .12em;
    text-transform: uppercase;
    font-weight: 300;
    font-size: 12px;
    color: var(--accent-color, #ff5722);
}
.blog-intro-title{
    margin-top: 10px;
    margin-bottom: 16px;
    font-weight: 900;
    color: #153a5b;
    font-size: clamp(34px, 3.6vw, 56px);
    line-height: 1.05;
    letter-spacing: -0.4px;
}
.blog-intro-accent{
    color: #ff5722;
}
.blog-intro-text{
    max-width: 980px;
    color: rgba(0,0,0,0.62);
    font-size: 16px;
    line-height: 1.75;
}

.blog-featured{
    padding: 22px 0 26px;
}
.blog-featured-card{
    border-radius: 18px;
    border: 1px solid rgba(0,0,0,0.08);
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    overflow: hidden;
    position: relative;
}
.blog-featured-card .carousel-inner {
    min-height: 360px;
}
.blog-featured-slide-row {
    min-height: 360px;
    height: 360px;
}
.blog-featured-media-col,
.blog-featured-content-col {
    display: flex;
    min-height: 360px;
    height: 100%;
}
.blog-featured-thumb,
.blog-featured-body{
    display: block;
    text-decoration: none;
    color: inherit;
}
.blog-featured-thumb{
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
    border-radius: 14px;
    overflow: hidden;
}
.blog-featured-thumb img{
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    display: block;
}
.blog-featured-thumb-placeholder{
    width: 100%;
    height: 100%;
    min-height: 100%;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(0,0,0,0.06) 0%, rgba(0,0,0,0.02) 60%, rgba(255,87,34,0.10) 100%);
}
.blog-featured-body{
    width: 100%;
    height: 100%;
    min-height: 360px;
    padding: 10px 4px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.blog-featured-copy {
    flex: 1 1 auto;
    min-height: 0;
}
.blog-featured-eyebrow{
    font-weight: 300;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--accent-color, #ff5722);
    margin-bottom: 10px;
}
.blog-featured-title{
    margin: 0 0 12px;
    font-weight: 900;
    color: #153a5b;
    font-size: clamp(22px, 2vw, 30px);
    line-height: 1.15;
    letter-spacing: -0.2px;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}
.blog-featured-excerpt{
    margin: 0;
    color: rgba(0,0,0,0.62);
    font-size: 14px;
    line-height: 1.75;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: calc(1.75em * 4);
}
.blog-featured-meta{
    margin-top: 18px;
    flex-shrink: 0;
}
.blog-featured-author{
    display: flex;
    align-items: center;
    gap: 10px;
}
.blog-featured-author img,
.blog-featured-avatar-placeholder{
    width: 42px;
    height: 42px;
    border-radius: 50%;
    object-fit: cover;
    display: inline-block;
    background: rgba(21,58,91,.12);
}
.blog-featured-author-name{
    display: block;
    font-weight: 900;
    color: #153a5b;
    line-height: 1.1;
}
.blog-featured-date{
    display: block;
    color: rgba(21,58,91,.65);
    font-size: 12px;
    margin-top: 2px;
}

.blog-featured-control{
    width: 52px;
}
.blog-featured-indicators{
    position: static;
    margin: 0;
    padding: 0 0 16px;
}
.blog-featured-indicators [data-bs-target]{
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background-color: rgba(21,58,91,.25);
}
.blog-featured-indicators .active{
    background-color: #ff5722;
}

.blog-sep{
    margin: 26px 0 0;
    border-top: 1px solid rgba(0,0,0,0.08);
    opacity: 1;
}

.blog-posts{
    padding: 26px 0 72px;
}
.blog-cards-grid{
    margin-top: 10px;
}

/* Blog — grelha/carrossel: 3 colunas fixas no desktop (zoom-safe); só 1 coluna em telemóvel */
.page-blog .home-blog-grid.blog-cards-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
}

.page-blog .blog-cards-grid > .home-blog-card {
    height: 100%;
}

.page-blog .blog-cards-carousel .blog-cards-slide-row {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
    align-items: stretch;
}

.page-blog .blog-cards-carousel .blog-cards-slide-col {
    display: flex;
    min-width: 0;
}

.page-blog .blog-cards-carousel .blog-cards-slide-col .home-blog-card {
    width: 100%;
}

/* Blog — carrossel de cards (>6 artigos) e hover fade (integer.pt) */
.page-blog .blog-cards-carousel {
    position: relative;
    padding-bottom: 8px;
}

.page-blog .blog-cards-carousel .home-blog-card,
.page-blog .blog-cards-grid .home-blog-card {
    min-height: 600px;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.page-blog .blog-cards-carousel .home-blog-body,
.page-blog .blog-cards-grid .home-blog-body {
    padding: 24px 24px 14px;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.page-blog .blog-cards-carousel .home-blog-card-title,
.page-blog .blog-cards-grid .home-blog-card-title {
    font-size: clamp(24px, 2.15vw, 30px);
    line-height: 1.35;
    letter-spacing: -0.35px;
    -webkit-line-clamp: 4;
    flex-shrink: 0;
}

.page-blog .blog-cards-carousel .home-blog-card-excerpt,
.page-blog .blog-cards-grid .home-blog-card-excerpt {
    font-size: 16px;
    line-height: 1.65;
    -webkit-line-clamp: 4;
    min-height: calc(1.65em * 4);
    flex: 1 1 auto;
}

.page-blog .blog-cards-carousel .home-blog-thumb,
.page-blog .blog-cards-grid .home-blog-thumb {
    flex-shrink: 0;
    height: 230px;
    min-height: 230px;
    max-height: 230px;
}

.page-blog .blog-cards-carousel .home-blog-footer,
.page-blog .blog-cards-grid .home-blog-footer {
    margin-top: auto;
    flex-shrink: 0;
}

.page-blog .blog-featured-card .carousel-inner {
    min-height: 360px;
}

.page-blog .blog-featured-slide-row {
    min-height: 360px;
    height: 360px;
}

.page-blog .blog-featured-media-col,
.page-blog .blog-featured-content-col {
    display: flex;
    min-height: 360px;
    height: 100%;
}

.page-blog .blog-featured-thumb {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 360px;
}

.page-blog .blog-featured-thumb img,
.page-blog .blog-featured-thumb-placeholder {
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
}

.page-blog .blog-featured-body {
    width: 100%;
    height: 100%;
    min-height: 360px;
}

.page-blog .blog-cards-carousel .carousel-control-prev,
.page-blog .blog-cards-carousel .carousel-control-next {
    width: 44px;
    opacity: 1;
}

.page-blog .blog-cards-carousel .carousel-control-prev {
    left: -8px;
}

.page-blog .blog-cards-carousel .carousel-control-next {
    right: -8px;
}

.page-blog .blog-cards-carousel .carousel-control-prev-icon,
.page-blog .blog-cards-carousel .carousel-control-next-icon {
    background-color: rgba(255, 87, 34, 0.92);
    border-radius: 50%;
    background-size: 55% 55%;
}

.page-blog .blog-cards-carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background-color: rgba(255, 87, 34, 0.35);
}

.page-blog .blog-cards-carousel-indicators .active {
    background-color: rgba(255, 87, 34, 0.95);
}

.page-blog .blog-cards-hover-group:hover .home-blog-card {
    opacity: 0.3;
}

.page-blog .blog-cards-hover-group .home-blog-card:hover,
.page-blog .blog-cards-hover-group .home-blog-card:focus-visible {
    opacity: 1;
}

.page-blog .home-blog-grid.cards-dim-group:hover .home-blog-card,
.page-blog .home-blog-grid.cards-dim-group:has(.home-blog-card:hover) .home-blog-card {
    filter: none;
    opacity: 0.3;
}

.page-blog .home-blog-grid.cards-dim-group:hover .home-blog-card:hover,
.page-blog .home-blog-grid.cards-dim-group:hover .home-blog-card:focus-within,
.page-blog .home-blog-grid.cards-dim-group:has(.home-blog-card:hover) .home-blog-card:hover,
.page-blog .home-blog-grid.cards-dim-group:has(.home-blog-card:hover) .home-blog-card:focus-within {
    filter: none;
    opacity: 1;
}

@media (max-width: 767.98px) {
    .page-blog .blog-cards-carousel .carousel-control-prev,
    .page-blog .blog-cards-carousel .carousel-control-next {
        display: none;
    }

    .page-blog .home-blog-grid.blog-cards-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .page-blog .blog-cards-carousel .blog-cards-slide-row {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .page-blog .blog-cards-carousel .home-blog-card,
    .page-blog .blog-cards-grid .home-blog-card {
        min-height: 0;
    }
}

/* Blog single post */
.blog-post-hero{
    position: relative;
    min-height: 52vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #153a5b;
    background-size: cover;
    background-position: center;
    padding: 90px 0 70px;
}
.blog-post-hero-overlay{
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 70%, rgba(0,0,0,0.72) 100%);
}
.blog-post-hero-inner{
    position: relative;
    z-index: 1;
}
.blog-post-hero-title{
    font-weight: 900;
    letter-spacing: -0.6px;
    line-height: 1.05;
    font-size: clamp(34px, 3.4vw, 60px);
    max-width: 980px;
    margin: 0 auto;
}

.blog-post-entry{
    padding: 56px 0 12px;
}
.blog-post-back{
    margin-bottom: 22px;
}
.blog-post-back-link{
    text-decoration: none;
    color: rgba(0,0,0,0.62);
    font-weight: 800;
}
.blog-post-back-link:hover{
    color: #153a5b;
}

.blog-post-content{
    font-size: 18px;
    line-height: 1.85;
    color: rgba(0,0,0,0.78);
}
.blog-post-content p{
    margin-bottom: 1.1rem;
}
.blog-post-content a{
    color: #153a5b;
    font-weight: 800;
}
.blog-post-content a:hover{
    color: #ff5722;
}
.blog-post-content ul,
.blog-post-content ol{
    padding-left: 1.2rem;
}

.blog-author-card{
    margin: 34px 0 0;
}
.blog-author-card-inner{
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 16px 36px rgba(0,0,0,0.08);
    border: 1px solid rgba(0,0,0,0.08);
    padding: 18px 18px;
    display: flex;
    gap: 12px;
    align-items: center;
}
.blog-author-avatar{
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(0,0,0,0.10);
    display: inline-block;
}
.blog-author-avatar-placeholder{
    background: rgba(21,58,91,.12);
}
.blog-author-name{
    font-weight: 900;
    color: #153a5b;
    font-size: 18px;
    line-height: 1.1;
}
.blog-author-subtitle{
    color: #ff5722;
    font-weight: 900;
    margin-top: 4px;
    font-size: 14px;
}

.blog-post-nav-wrap{
    margin-left: auto;
    margin-right: auto;
}
.blog-post-nav{
    padding: 10px 0 56px;
}
.post-navigation .nav-links a{
    text-decoration: none;
}
.post-navigation .nav-subtitle{
    color: #ff5722;
    font-weight: 700;
}
.post-navigation .nav-subtitle:hover{
    text-decoration: underline;
}
.screen-reader-text{
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.blog-post-nav-link{
    display: inline-block;
    text-decoration: none;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid rgba(0,0,0,0.08);
    background: #fff;
    box-shadow: 0 10px 22px rgba(0,0,0,0.05);
    max-width: 100%;
}
.blog-post-nav-link:hover{
    border-color: rgba(255,87,34,0.35);
    box-shadow: 0 14px 28px rgba(0,0,0,0.07);
}
.blog-post-nav-kicker{
    display: block;
    text-transform: uppercase;
    letter-spacing: .10em;
    font-weight: 300;
    font-size: 12px;
    color: var(--accent-color, #ff5722);
    margin-bottom: 6px;
}
.blog-post-nav-title{
    display: block;
    font-weight: 900;
    color: #153a5b;
    line-height: 1.2;
}

.blog-latest{
    padding: 70px 0 80px;
    background: #f6f7f9;
}
.blog-latest-title{
    font-weight: 900;
    color: #153a5b;
    letter-spacing: -0.4px;
    font-size: clamp(28px, 2.6vw, 44px);
    margin: 0;
}
.blog-latest-accent{
    color: #ff5722;
}

@media (max-width: 991px){
    .blog-post-hero{ min-height: 46vh; padding: 80px 0 60px; }
    .blog-post-entry{ padding: 42px 0 10px; }
    .blog-post-content{ font-size: 16px; }
    .blog-latest{ padding: 54px 0 64px; }
}

@media (max-width: 991px){
    .blog-page-intro{ padding: 54px 0 16px; }
    .blog-featured{ padding: 18px 0 22px; }
    .blog-featured-body{ padding: 6px 2px; }
    .blog-featured-card .carousel-inner,
    .blog-featured-slide-row,
    .blog-featured-media-col,
    .blog-featured-content-col,
    .blog-featured-thumb,
    .blog-featured-body {
        min-height: 0;
        height: auto;
    }
    .blog-featured-thumb {
        min-height: 220px;
        height: 220px;
    }
}

.home-blog-footer {
    padding: 12px 18px;
    border-top: 1px solid rgba(0,0,0,0.06);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.home-blog-author {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    color: rgba(0,0,0,0.75);
    font-size: 13px;
}

.home-blog-author img,
.home-blog-avatar-placeholder {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(0,0,0,0.12);
    display: inline-block;
    background: #e9ecef;
}

.home-blog-category {
    color: rgba(0,0,0,0.55);
    font-weight: 700;
    font-size: 13px;
}

.home-blog-cta {
    border-color: var(--accent-color);
    color: var(--accent-color);
    padding: 14px 26px;
    border-radius: 10px;
}

.home-blog-cta:hover {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: #fff;
}

@media (max-width: 1199.98px) {
    .home-blog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .home-blog {
        padding-top: 64px;
        padding-bottom: 64px;
    }
    .home-blog-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
    .home-blog-thumb {
        height: 190px;
    }
}

/* Home - Talents testimonials (carousel) */
.home-talent-testimonials{
    padding: 72px 0;
    background: #fff;
}

.home-talent-grid{
    display: grid;
    grid-template-columns: 1fr 1.25fr;
    gap: 36px;
    align-items: start;
}

.home-talent-title h2{
    font-weight: 800;
    letter-spacing: -0.4px;
    line-height: 1.08;
    margin: 0;
    color: #153a5b;
    font-size: clamp(34px, 4.2vw, 58px);
}

.home-talent-accent{
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.home-talent-cardwrap{
    position: relative;
}

.home-talent-card{
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 20px 55px rgba(0,0,0,.08);
    padding: 26px 28px 22px;
    min-height: 260px;
}

.home-talent-slide{
    display: none;
}

.home-talent-slide.is-active{
    display: block;
}

.home-talent-head{
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.home-talent-avatar{
    width: 54px;
    height: 54px;
    border-radius: 999px;
    overflow: hidden;
    flex: 0 0 54px;
    background: #f1f5f9;
    border: 2px solid rgba(255,140,0,.35);
}

.home-talent-avatar img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.home-talent-avatar-fallback{
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 30% 30%, rgba(255,140,0,.35), rgba(15,23,42,.10));
}

.home-talent-meta{
    line-height: 1.2;
}

.home-talent-name{
    font-weight: 900;
    color: #0f172a;
}

.home-talent-role{
    color: rgba(15,23,42,.70);
    font-size: .95rem;
    margin-top: 3px;
}

.home-talent-quote{
    font-size: 1.02rem;
    line-height: 1.65;
    color: #0f172a;
}

.home-talent-nav{
    position: absolute;
    right: 14px;
    top: 14px;
    display: flex;
    gap: 10px;
}

.home-talent-btn{
    width: 40px;
    height: 40px;
    border-radius: 999px;
    border: 1px solid rgba(0,0,0,.08);
    background: #fff;
    box-shadow: 0 10px 25px rgba(0,0,0,.10);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #0f172a;
    transition: transform .15s ease;
}

.home-talent-btn:hover{
    transform: translateY(-1px);
}

@media (max-width: 991.98px){
    .home-talent-grid{
        grid-template-columns: 1fr;
        gap: 22px;
    }
    .home-talent-nav{
        position: static;
        margin-top: 12px;
        justify-content: flex-end;
    }
}

.service-card {
    background: var(--white);
    padding: 2.5rem;
    border-radius: 8px;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
    border-top: 4px solid var(--accent-color);
    text-align: center;
}

.service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.service-card i {
    font-size: 3rem;
    color: var(--accent-color);
    margin-bottom: 1rem;
}

.service-card h3 {
    color: var(--text-dark);
    margin-bottom: 1rem;
    font-size: 1.5rem;
}

.service-card p {
    color: var(--text-light);
    line-height: 1.8;
}

/* About Section */
.about-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}

.about-text h2 {
    color: var(--text-dark);
    margin-bottom: 1.5rem;
}

.about-text p {
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}

.about-image {
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    border-radius: 8px;
    min-height: 400px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 3rem;
}

.about-image.has-photo {
    background: transparent;
    padding: 0;
    overflow: hidden;
}

.about-image.has-photo img {
    width: 100%;
    height: 100%;
    min-height: 400px;
    object-fit: cover;
    display: block;
    border-radius: 26px;
}

/* Home - Our Story (About Section) tweaks to match integerconsulting.pt */
#sobre .about-text {
    text-align: center;
}

@media (min-width: 992px) {
    #sobre .about-text {
        text-align: right;
    }
}

#sobre .about-eyebrow {
    margin-top: 4px;
    margin-bottom: 16px;
}

#sobre .about-title {
    margin-left: auto;
    margin-right: auto;
    max-width: 760px;
}

@media (min-width: 992px) {
    #sobre .about-title {
        margin-right: 0;
    }
}

#sobre .about-text p {
    max-width: 680px;
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 992px) {
    #sobre .about-text p {
        margin-right: 0;
    }
}

#sobre .home-about-lead {
    margin-bottom: 1rem;
    color: #153a5b;
}

#sobre .home-about-body {
    margin-bottom: 1.25rem;
}

#sobre .home-about-body--last {
    margin-bottom: 2.5rem;
}

#sobre .home-quote-block {
    margin-top: 0;
    padding-top: 0;
}

#sobre .home-about-blockquote {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    gap: 0;
    margin: 0 auto;
    max-width: 100%;
    border: 0;
    padding: 0;
}

@media (min-width: 992px) {
    #sobre .home-about-blockquote {
        justify-content: flex-end;
        margin-left: auto;
        margin-right: 0;
    }
}

#sobre .home-about-blockquote-text {
    flex: 0 1 auto;
    min-width: 0;
    text-align: center;
}

@media (min-width: 992px) {
    #sobre .home-about-blockquote-text {
        text-align: right;
    }
}

#sobre .home-about-blockquote-avatar {
    flex: 0 0 auto;
    margin-left: 0.85rem;
}

#sobre .home-about-blockquote-avatar img {
    width: 88px;
    height: 88px;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

#sobre .quote-section blockquote {
    margin: 0;
}

#sobre .home-quote-text {
    font-style: italic;
    color: rgba(0, 0, 0, 0.72);
    font-size: clamp(16px, 1.5vw, 20px);
    line-height: 1.55;
}

#sobre .home-quote-footer {
    margin-top: 0.65rem;
    font-size: 0.95rem;
    color: rgba(0, 0, 0, 0.58);
    background: transparent;
    padding: 0;
}

#sobre .home-quote-author-name {
    font-weight: 800;
    color: rgba(0, 0, 0, 0.78);
}

#sobre .home-quote-role {
    font-style: normal;
    color: #2f80ed;
    font-weight: 700;
}

#sobre .home-about-cta {
    border-color: var(--accent-color);
    color: var(--accent-color);
    padding: 14px 30px;
    border-radius: 10px;
}

#sobre .home-about-cta:hover {
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: #fff;
}

/* Stats Section */
.stats-container {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
    text-align: center;
}

/* About stats section (Os nossos números) - screenshot style */
.stats-section {
    background: #3aa0ff;
    color: #fff;
    /* Make it feel like a full-width banner (screenshot) */
    padding: 78px 0;
}

.stats-title {
    color: #fff;
    font-weight: 900;
    letter-spacing: -0.4px;
}

.stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.stat-icon {
    width: 96px;
    height: 96px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.stat-icon i {
    color: rgba(255,255,255,0.95);
    font-size: 74px;
    line-height: 1;
}

.stat-item h3 {
    font-size: clamp(42px, 4.6vw, 78px);
    color: #fff;
    margin: 0 0 6px;
    font-weight: 900;
    letter-spacing: -0.6px;
}

.stat-item p {
    color: rgba(255,255,255,0.9);
    font-size: clamp(16px, 1.2vw, 22px);
    margin: 0;
}

/* Team Section */
.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

/* About - Values */
.values {
    padding-top: 92px;
    padding-bottom: 92px;
}

.values-eyebrow {
    color: var(--accent-color, #ff5722);
    font-weight: 300;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 13px;
    margin-bottom: 14px;
}

.values-title {
    font-size: clamp(44px, 5.2vw, 78px);
    font-weight: 800;
    letter-spacing: -1px;
    color: #153a5b;
    line-height: 1.02;
}

.values-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.values-lead {
    max-width: 1060px;
    color: rgba(0,0,0,0.68);
    font-size: clamp(18px, 1.5vw, 22px);
    line-height: 1.8;
}

.value-card {
    background: transparent;
    padding: 18px 10px;
    border-radius: 16px;
    height: 100%;
    transition: transform 0.18s ease;
    text-align: center;
}

.value-card:hover {
    transform: translateY(-2px);
}

.value-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 8px auto 18px;
}

.value-title {
    font-size: clamp(26px, 2.2vw, 40px);
    font-weight: 900;
    color: #153a5b;
    letter-spacing: -0.4px;
}

.values-stroke {
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.values-orange {
    stroke: var(--accent-color);
}

.values-blue {
    stroke: #2f80ed;
}

@media (max-width: 575.98px) {
    .values {
        padding-top: 64px;
        padding-bottom: 64px;
    }
    .value-icon svg {
        width: 82px;
        height: 82px;
    }
}

/* About - Culture */
.culture {
    padding-top: 92px;
    padding-bottom: 92px;
}

.culture-eyebrow {
    color: var(--accent-color, #ff5722);
    font-weight: 300;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 13px;
    margin-bottom: 14px;
}

.culture-title {
    font-size: clamp(44px, 5.2vw, 78px);
    font-weight: 800;
    letter-spacing: -1px;
    color: #153a5b;
    line-height: 1.02;
}

.culture-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.culture-lead {
    max-width: 1100px;
    color: rgba(0,0,0,0.74);
    font-size: clamp(18px, 1.5vw, 22px);
    line-height: 1.85;
}

.culture-videos {
    margin-top: 26px;
}

.culture-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background: var(--white);
    padding: 12px 14px;
    border-radius: 8px;
    box-shadow: var(--shadow);
}

@media (max-width: 575.98px) {
    .culture {
        padding-top: 64px;
        padding-bottom: 64px;
    }
}

.team-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 8px;
    box-shadow: var(--shadow);
    text-align: center;
    transition: all 0.3s ease;
}

/* About Us - Team cards: make photo full-bleed at top */
.team-section .team-card {
    overflow: hidden;
}

.team-section .team-card .team-image {
    margin: -2rem -2rem 1.25rem -2rem;
}

.team-section .team-card .team-photo,
.team-section .team-card .team-photo-placeholder {
    width: 100%;
    height: 200px;
    display: block;
}

.team-section .team-card .team-photo {
    object-fit: cover;
    /* Nudge focus upward to avoid cropping heads on portrait photos */
    object-position: center 25%;
}

.team-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
}

.team-avatar {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 3rem;
}

.team-card h3 {
    color: var(--text-dark);
    margin-bottom: 0.5rem;
}

.team-card .role {
    color: var(--accent-color);
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.team-card p {
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Jobs/Vagas Section */
.job-card {
    background: var(--white);
    padding: 2rem;
    border-radius: 8px;
    box-shadow: var(--shadow);
    border-left: 4px solid var(--accent-color);
    transition: all 0.3s ease;
    margin-bottom: 1.5rem;
}

.job-card:hover {
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.job-card h3 {
    color: var(--text-dark);
    margin-bottom: 0.5rem;
}

.job-meta {
    color: var(--accent-color);
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1rem;
}

.job-category {
    display: inline-block;
    background-color: var(--light-bg);
    color: var(--text-dark);
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
    margin-right: 0.5rem;
}

/* Home - Jobs recent list (screenshot style) */
#vagas .jobs-hero{ text-align:center; }
#vagas .jobs-hero-title{
    font-weight: 800;
    letter-spacing: -0.8px;
    line-height: 1.05;
    margin: 0;
    font-size: clamp(34px, 5.2vw, 64px);
    color: #153a5b;
}
#vagas .jobs-accent{ color: var(--accent-color); }
#vagas .jobs-subtitle h3{
    font-weight: 800;
    color: #153a5b;
    margin-bottom: 10px;
}
#vagas .jobs-subtitle p{
    color: rgba(0,0,0,.65);
    max-width: 780px;
    margin: 0 auto;
}

#vagas .jobs-list{ margin-top: 34px; }

.job-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap: 18px;
    background:#fff;
    border-radius: 14px;
    box-shadow: 0 10px 30px rgba(0,0,0,.08);
    padding: 18px 20px;
    margin-bottom: 18px;
    border: 1px solid rgba(0,0,0,.05);
}

.job-row-link{ text-decoration: none; color: inherit; }
.job-row-link:hover{ box-shadow: 0 14px 36px rgba(0,0,0,.12); transform: translateY(-1px); }

.job-row-icon{
    width: 72px;
    height: 72px;
    border-radius: 14px;
    background:#fff;
    border: 1px solid rgba(0,0,0,.06);
    display:flex;
    align-items:center;
    justify-content:center;
    flex: 0 0 72px;
    overflow:hidden;
}

.job-row-icon img{ width: 54px; height: 54px; object-fit: contain; display:block; }

.job-row-body{ flex: 1 1 auto; min-width: 0; }
.job-row-location{ color: #2563eb; font-size: .92rem; margin-bottom: 4px; }
.job-row-title{ font-weight: 900; color: #0f172a; font-size: 1.15rem; margin-bottom: 6px; }
.job-tag{
    display:inline-block;
    font-size: .72rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 6px;
    border: 1px solid rgba(0,0,0,.12);
    color: rgba(15,23,42,.85);
    background: rgba(0,0,0,.02);
}

.job-row-date{ flex: 0 0 auto; color: rgba(0,0,0,.65); font-size: .92rem; white-space: nowrap; }

#vagas .jobs-cta{ text-align:center; margin-top: 22px; }

/* Home - Jobs CTA button should use accent (orange), not bootstrap primary blue */
#vagas .jobs-cta .btn-outline-primary{
    border-color: var(--accent-color);
    color: var(--accent-color);
}
#vagas .jobs-cta .btn-outline-primary:hover,
#vagas .jobs-cta .btn-outline-primary:focus{
    background: var(--accent-color);
    border-color: var(--accent-color);
    color: var(--white);
}

@media (max-width: 767.98px){
    .job-row{ flex-direction: column; align-items: flex-start; }
    .job-row-date{ width: 100%; text-align: right; }
}

/* Vagas - Social banner */
#social-media:not(.vagas-social-banner){
    position: relative;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 18px 60px rgba(0,0,0,.10);
}

#vagas #social-media.vagas-social-banner,
.page-vagas #social-media.vagas-social-banner{
    position: relative;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    width: 100%;
    max-width: none;
    background: none !important;
    background-image: none !important;
    isolation: isolate;
}

#vagas #social-media.vagas-social-banner .vagas-social-bg,
.page-vagas #social-media.vagas-social-banner .vagas-social-bg{
    position: absolute;
    inset: 0;
    z-index: 0;
    background-color: #101010;
    background-image: var(--vagas-social-bg-image, none);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    pointer-events: none;
}

#vagas #social-media.vagas-social-banner::before,
.page-vagas #social-media.vagas-social-banner::before{
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, 0.45);
    pointer-events: none;
}

#vagas #social-media .vagas-social-row,
.page-vagas #social-media .vagas-social-row{
    position: relative;
    z-index: 2;
    min-height: 180px;
    padding-top: 100px;
    padding-bottom: 100px;
}

#vagas #social-media .hide-tablet{ display: none; }
#vagas #social-media .show-tablet{ display: block; }

@media (min-width: 992px){
    #vagas #social-media .hide-tablet{ display: block; }
    #vagas #social-media .show-tablet{ display: none; }
}

#vagas #social-media .letter-title{
    font-family: var(--font-sans, 'Open Sans', sans-serif);
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.25px;
    margin: 0;
    font-size: clamp(20px, 2.2vw, 34px);
    line-height: 1.25;
}

#vagas #social-media .vagas-social-text .letter-title + .letter-title,
#vagas #social-media .vagas-social-text .col-12 + .col-12{
    margin-top: 0.15rem;
}

#vagas #social-media .social-media-divider{
    display: none;
}

@media (min-width: 992px) {
    #vagas #social-media .social-media-divider{
        display: block;
        flex: 0 0 1px !important;
        width: 1px !important;
        min-width: 1px !important;
        max-width: 1px !important;
        min-height: 110px;
        align-self: center;
        background: rgba(255, 255, 255, 0.42) !important;
        margin: 0 28px !important;
        padding: 0 !important;
        border: 0 !important;
    }

    #vagas #social-media .vagas-social-row{
        flex-wrap: nowrap;
    }
}

#vagas #social-media .vagas-social-links{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin: 0;
}

#vagas #social-media .vagas-social-links a{
    width: 56px;
    height: 56px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255, 255, 255, 0.85);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    text-decoration: none;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
}

#vagas #social-media .vagas-social-links a:hover{
    transform: translateY(-2px);
    background: rgba(249, 123, 58, 0.92);
    border-color: rgba(249, 123, 58, 0.92);
    color: #fff;
}

#vagas #social-media .vagas-social-links a i{
    font-size: 22px;
    line-height: 1;
}

#vagas #social-media .padding-icon{
    padding: 15px;
}

@media (max-width: 991.98px){
    #vagas #social-media.vagas-social-banner::before{
        background: rgba(0, 0, 0, 0.55);
    }

    #vagas #social-media .vagas-social-row{
        padding-top: 56px;
        padding-bottom: 56px;
    }

    #vagas #social-media .vagas-social-links{
        margin-top: 1.25rem;
    }
}

#vagas #jump-in.vagas-jumpin-banner{
    position: relative;
    overflow: hidden;
    padding-top: 100px;
    padding-bottom: 100px;
    background-color: #f97b3a;
    margin-bottom: 0 !important;
    z-index: 1;
}

.page-vagas #social-media.vagas-social-banner{
    z-index: 2;
}

#vagas #jump-in.vagas-jumpin-banner .vagas-jumpin-video{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 0;
    object-fit: cover;
    pointer-events: none;
}

#vagas #jump-in.vagas-jumpin-banner::before{
    content: '';
    position: absolute;
    inset: 0;
    background-color: #f97b3a;
    opacity: 0.9;
    z-index: 1;
    pointer-events: none;
}

#vagas #jump-in.vagas-jumpin-banner.home-jumpin--has-bg::before{
    background-color: #f97b3a;
    opacity: 0.9;
}

#vagas #jump-in.vagas-jumpin-banner .container{
    position: relative;
    z-index: 2;
}

#vagas .vagas-social-top-spacer,
#vagas .vagas-footer-spacer {
    display: none;
}

#social-media:not(.vagas-social-banner)::before{
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.65) 0%, rgba(0,0,0,.35) 52%, rgba(0,0,0,.10) 100%);
    pointer-events: none;
}

#social-media > .container{ position: relative; z-index: 1; }

#social-media .letter-title{
    color: #fff;
    font-weight: 900;
    letter-spacing: -0.4px;
    margin: 0;
    font-size: clamp(20px, 2.2vw, 34px);
    line-height: 1.18;
}

#social-media .social-media-divider{ display:none; }

@media (min-width: 992px){
    #social-media .social-media-divider{
        display:block;
        width: 2px;
        height: 84px;
        background: rgba(255,255,255,0.42);
        margin: 0 22px;
    }
}

#social-media .social-media-icon,
#social-media .social-links{
    display:flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    align-items: center;
    margin: 0;
}

#social-media .social-media-icon a,
#social-media .social-links a{
    width: 56px;
    height: 56px;
    border-radius: 999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border: 2px solid rgba(255,255,255,.85);
    background: rgba(255,255,255,.08);
    text-decoration:none;
    transition: transform .15s ease, background .15s ease, border-color .15s ease;
    color: #fff;
}

#social-media .social-media-icon a:hover,
#social-media .social-links a:hover{
    transform: translateY(-2px);
    background: rgba(255,87,34,.92);
    border-color: rgba(255,87,34,.92);
    color: #fff;
}

#social-media .social-links a i{
    font-size: 22px;
    line-height: 1;
}

#social-media .social-media-icon svg{
    width: 22px;
    height: 22px;
    display:block;
}

@media (max-width: 991.98px){
    #social-media:not(.vagas-social-banner){ border-radius: 0; }
    #social-media:not(.vagas-social-banner)::before{ background: rgba(0,0,0,.55); }
    #social-media:not(.vagas-social-banner) .social-media-icon{ justify-content: center; }
}

/* Vagas - Utilities + Bootstrap v4 compatibility (site uses Bootstrap v5) */
.mw-10 { max-width: 1100px; margin-left: auto; margin-right: auto; }
.mw-12 { max-width: 1240px; margin-left: auto; margin-right: auto; }

.pt-100 { padding-top: 100px; }
.pt-40 { padding-top: 40px; }
.pb-4 { padding-bottom: 1.5rem; }
.py-100 { padding-top: 100px; padding-bottom: 100px; }
.pb-100 { padding-bottom: 100px; }

.bg-light-grey { background: #f5f7fa; }
.bg-dark-grey { background: #2d2d2d; }

.text-orange { color: #FF5722; }
.text-dark-blue { color: #153a5b; }

.borderless { border: 0 !important; }
.shadowless { box-shadow: none !important; }

/* Bootstrap v4 spacing helpers used in old markup */
.ml-auto { margin-left: auto !important; }
.mr-1 { margin-right: .25rem !important; }
.mr-2 { margin-right: .5rem !important; }
.mr-3 { margin-right: 1rem !important; }
.mr-4 { margin-right: 1.5rem !important; }
.pr-3 { padding-right: 1rem !important; }

@media (min-width: 992px){
    .pl-lg-4 { padding-left: 1.5rem !important; }
    .pl-lg-5 { padding-left: 3rem !important; }
    .pr-lg-4 { padding-right: 1.5rem !important; }
    .pr-lg-5 { padding-right: 3rem !important; }
    .mr-lg-3 { margin-right: 1rem !important; }
}

/* Bootstrap v4 removed in v5 */
.rounded-lg { border-radius: .75rem !important; }

/* Font helpers used in the recreated layout */
.display-sm-font-35 { font-size: clamp(28px, 4.2vw, 56px) !important; }
.display-sm-font-25 { font-size: clamp(22px, 3.1vw, 34px) !important; }
.display-sm-font-20 { font-size: clamp(18px, 2.0vw, 22px) !important; }
.display-sm-font-17 { font-size: 17px !important; }
.display-sm-font-15 { font-size: 15px !important; }
.display-sm-font-13 { font-size: 13px !important; }
.display-sm-font-10 { font-size: 10px !important; }

/* Vagas page spacing + typography normalization */
#vagas .display-4{ font-size: clamp(30px, 4.2vw, 52px); line-height: 1.06; letter-spacing: -0.6px; }
#vagas p{ color: rgba(0,0,0,.68); }
#vagas .section{ position: relative; }

/* Vagas: ensure content sections aren't covered by hero overlays */
#vagas .hero{ position: relative; z-index: 1; }
#vagas .hero + section{ position: relative; z-index: 2; }

/* Vagas: hide the legacy loader unless explicitly enabled (prevents the “circle in the middle”) */
#vagas #opportunities-loader-wrapper{ position: relative; }
#vagas .opportunities-loader{
    display: none !important;
    position: absolute;
    inset: 0;
    z-index: 5;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.75);
}
#vagas #opportunities-loader-wrapper.is-loading .opportunities-loader{ display:flex !important; }
#vagas .icon-loading.small{ width: 48px; height: 48px; }

/* Vagas list cards: ensure icon column isn't a huge empty square */
#vagas .card-opportunities .card-body > div:first-child{
    flex: 0 0 auto;
    background: #fff;
      width: 64px;
      min-width: 64px;
      max-width: 64px;
      height: 64px;
      display: flex;
      align-items: center;
      justify-content: center;
  }

  #vagas .card-opportunities-icon{ width: 40px; height: 40px; object-fit: contain; display:block; }
  
  #vagas .card-opportunities .card-body {
      display: flex;
      gap: 1rem;
      align-items: center;
  }
  
  #vagas .card-opportunities .text-left {
      flex: 1;
      min-width: 0;
  }
  
  @media (max-width: 767.98px) {
      #vagas .card-opportunities .card-body > div:first-child {
          width: 48px;
          min-width: 48px;
          max-width: 48px;
          height: 48px;
      }
      
      #vagas .card-opportunities-icon {
          width: 32px;
          height: 32px;
      }
  }

/* Related jobs on vaga detail (same card layout as listing) */
.vagas-related .card-opportunities .card-body > div:first-child{
    flex: 0 0 auto;
    background: #fff;
    width: 64px;
    min-width: 64px;
    max-width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.vagas-related .card-opportunities-icon{
    width: 40px;
    height: 40px;
    object-fit: contain;
    display: block;
}
.vagas-related .card-opportunities .card-body{
    display: flex;
    gap: 1rem;
    align-items: center;
}
.vagas-related .card-opportunities .text-left{
    flex: 1;
    min-width: 0;
}
@media (max-width: 767.98px) {
    .vagas-related .card-opportunities .card-body > div:first-child {
        width: 48px;
        min-width: 48px;
        max-width: 48px;
        height: 48px;
    }
    .vagas-related .card-opportunities-icon {
        width: 32px;
        height: 32px;
    }
}

#testimonials-carousel .carousel-control-prev,
#testimonials-carousel .carousel-control-next{
    width: 44px;
    height: 44px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#testimonials-carousel .carousel-control-prev svg,
#testimonials-carousel .carousel-control-next svg{
    width: 18px;
    height: 18px;
}

/* Testimonials indicators (Bootstrap 5 uses buttons) */
#testimonials-carousel .carousel-indicators button{
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background-color: rgba(0,0,0,.35);
    opacity: 1;
    margin: 0;
}

#testimonials-carousel .carousel-indicators button.active{
    background-color: #FF5722;
}

/* Videos */
.video-wrapper { position: relative; overflow: hidden; border-radius: 12px; }
.video-cover { min-height: 260px; width: 100%; object-fit: cover; border-radius: 12px; display:block; }
.open-video-btn { position: relative; }
.open-video-btn .icon-play-button { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2; width: 60px; height: 60px; }

.icon-orange path:not(.play-button-inside),
.icon-orange circle {
    fill: #FF5722;
    stroke: #FF5722;
}

.icon-orange .play-button-inside {
    fill: #fff !important;
    stroke: none !important;
}

@media (max-width: 768px) {
    .py-100 { padding-top: 56px; padding-bottom: 56px; }
    .pb-100 { padding-bottom: 56px; }
    .pt-100 { padding-top: 56px; }
    .video-cover { min-height: 200px; }
}

/* Vagas - Detail */
.vaga-detail-top-left{ display:flex; align-items:center; gap:16px; }
.vaga-detail-icon{ width:72px; height:72px; border-radius:14px; background:#fff; border:1px solid rgba(0,0,0,.06); display:flex; align-items:center; justify-content:center; overflow:hidden; flex:0 0 72px; }
.vaga-detail-icon img{ width:54px; height:54px; object-fit:contain; display:block; }
.vaga-detail-meta{ display:flex; gap:14px; color: rgba(0,0,0,.65); font-size:.95rem; margin-bottom:6px; }
.vaga-detail-location{ color:#2563eb; }
.vaga-detail-title{ font-weight:900; letter-spacing:-0.4px; margin:0; color:#0f172a; }
.vaga-detail-divider{ margin: 22px 0; }
.vaga-detail-h{ font-weight:800; color:#153a5b; margin-bottom:14px; }
.vaga-detail-desc{ color: rgba(0,0,0,.72); line-height:1.7; }
.vaga-apply-btn{ background:#FF5722; border-color:#FF5722; padding:.9rem 1.25rem; border-radius:10px; margin-top:18px; }
.vaga-apply-btn:hover{ background:#ff4a10; border-color:#ff4a10; }
.vaga-back-link{ color:#FF5722; text-decoration:none; }
.vaga-back-link:hover{ text-decoration: underline; }

.vaga-sidebar-card{ background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:14px; box-shadow: 0 10px 30px rgba(0,0,0,.08); padding:18px; }
.vaga-resp{ text-align:center; }
.vaga-resp-photo{ width:72px; height:72px; border-radius:999px; overflow:hidden; margin: 0 auto 10px; border:2px solid rgba(255,87,34,.35); background:#f1f5f9; }
.vaga-resp-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.vaga-resp-fallback{ width:100%; height:100%; background: radial-gradient(circle at 30% 30%, rgba(255,87,34,.35), rgba(15,23,42,.10)); }
.vaga-resp-name{ font-weight:900; color:#0f172a; margin-top:6px; }
.vaga-resp-role{ color: rgba(0,0,0,.6); font-size:.95rem; margin-top:2px; }
.vaga-resp-text{ color: rgba(0,0,0,.65); font-size:.92rem; line-height:1.55; margin-top:12px; }
.vaga-resp-actions{ display:flex; gap:10px; justify-content:center; margin-top:14px; }
.vaga-resp-icon{ width:38px; height:38px; border-radius:999px; border:1px solid rgba(0,0,0,.10); display:flex; align-items:center; justify-content:center; color:#FF5722; background:#fff; box-shadow: 0 10px 25px rgba(0,0,0,.08); text-decoration:none; }
.vaga-resp-icon:hover{ transform: translateY(-1px); }

/* Responsible card (align with production card-team) */
.vaga-detail .card.card-team.vaga-resp-card{
    border: none;
    border-radius: 1rem;
    overflow: hidden;
    min-height: 0;
}
.vaga-detail .card.card-team.vaga-resp-card .card-header{
    border: none;
    background: none;
}
.vaga-detail .card.card-team.vaga-resp-card .card-body{
    padding-top: 0.5rem;
}
.vaga-detail .card.card-team.vaga-resp-card .card-title{
    color: #234460 !important;
    font-weight: 700;
    font-size: 1.35rem;
    line-height: 1.35;
}
.vaga-detail .card.card-team.vaga-resp-card .card-text{
    color: rgba(0,0,0,.65);
    line-height: 1.55;
}
.vaga-detail .card.card-team.vaga-resp-card .card-footer{
    border: none;
    background: none;
}
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social{
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #FF5722 !important;
    border-radius: 50%;
    background: #fff;
    color: #FF5722;
    text-decoration: none;
    line-height: 0;
    transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social .icon-orange{
    width: 18px;
    height: 18px;
}
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social .icon-orange path,
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social .icon-orange rect,
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social .icon-orange circle,
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social .icon-orange g{
    fill: #FF5722;
}
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social:hover{
    background: #FF5722;
    border-color: #FF5722 !important;
    color: #fff;
}
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social:hover .icon-orange path,
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social:hover .icon-orange rect,
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social:hover .icon-orange circle,
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-social:hover .icon-orange g{
    fill: #fff;
}
.vaga-detail .card.card-team.vaga-resp-card .vaga-resp-fallback{
    background: radial-gradient(circle at 30% 30%, rgba(255,87,34,.35), rgba(15,23,42,.10));
}

/* Related jobs: readable grey badge + orange category in title */
.vagas-related .work-title .text-orange,
.vagas-related .work-title .work-title-accent{
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}
.vagas-related .card-opportunities .badge,
.vagas-related .card-opportunities .badge.bg-light-grey{
    background-color: #f4f6f8 !important;
    color: #234460 !important;
    font-weight: 600;
}

.vaga-benefits-title{ font-weight:900; color:#153a5b; margin:0 0 10px; }
.vaga-benefits{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.vaga-benefits li{ display:flex; align-items:center; gap:10px; color: rgba(0,0,0,.75); }
.vaga-benefits i{ color:#FF5722; width:18px; text-align:center; }

.vaga-modal-header{ display:flex; gap:14px; align-items:center; margin-bottom:16px; }
.vaga-modal-title{ font-weight:900; color:#0f172a; font-size:1.1rem; margin-bottom:4px; }

/* Blog Section */
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}

.blog-card {
    background: var(--white);
    border-radius: 8px;
    overflow: hidden;
    box-shadow: var(--shadow);
    transition: all 0.3s ease;
}

.blog-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

.blog-image {
    width: 100%;
    height: 250px;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    font-size: 3rem;
}

.blog-content {
    padding: 2rem;
}

.blog-date {
    color: var(--accent-color);
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.blog-card h3 {
    color: var(--text-dark);
    margin-bottom: 1rem;
    font-size: 1.3rem;
}

.blog-card p {
    color: var(--text-light);
    margin-bottom: 1rem;
}

.blog-link {
    color: var(--accent-color);
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.blog-link:hover {
    color: var(--primary-color);
    text-decoration: underline;
}

/* Contact Section */
.contact-form {
    max-width: 600px;
    margin: 0 auto;
    background: var(--white);
    padding: 2rem;
    border-radius: 8px;
    box-shadow: var(--shadow);
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-control {
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 0.75rem 1rem;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.form-control:focus {
    border-color: var(--accent-color);
    box-shadow: 0 0 0 0.2rem rgba(255, 102, 0, 0.25);
}

textarea.form-control {
    resize: vertical;
    min-height: 150px;
}

/* Footer */
footer {
    background-color: #1f3f57;
    color: var(--white);
    padding: 60px 0 20px;
    margin-top: 0;
}

footer h5 {
    color: var(--accent-color);
    margin-bottom: 1.5rem;
    font-size: 1.1rem;
}

footer p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.95rem;
    margin-bottom: 1rem;
}

footer ul {
    list-style: none;
    padding: 0;
}

footer a {
    color: rgba(255, 255, 255, 0.7);
    text-decoration: none;
    transition: all 0.3s ease;
}

footer a:hover {
    color: var(--accent-color);
}

.footer-section {
    margin-bottom: 2rem;
}

.footer-follow-title {
    color: var(--accent-color);
    font-weight: 700;
    margin: 0.25rem 0 0.75rem;
}

.footer-logo {
    display: inline-block;
}

.footer-logo img {
    filter: none;
}

.footer-divider {
    display: block;
    height: 1px;
    width: 100%;
    background: rgba(255, 255, 255, 0.16);
    margin: 28px 0 10px;
}

.social-links {
    display: flex;
    gap: 1rem;
    margin: 1rem 0;
}

.social-links a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-color: rgba(255, 102, 0, 0.2);
    color: var(--white);
    transition: all 0.3s ease;
}

footer .social-links {
    margin: 14px 0 18px;
}

footer .social-links a {
    background: transparent;
    border: 2px solid rgba(255,255,255,0.65);
    width: 44px;
    height: 44px;
}

footer .social-links a:hover {
    background: rgba(255,255,255,0.12);
    border-color: rgba(255,255,255,0.9);
    color: #fff;
    transform: translateY(-2px);
}

.home-values-icon-img {
    width: 44px;
    height: 44px;
    object-fit: contain;
    display: block;
}

/* Home - #JumpIN banner */
.home-jumpin {
    --jumpin-orange: #f97b3a;
    --jumpin-orange-hover: #ff8f56;
    padding: 90px 0;
    position: relative;
    background-color: var(--jumpin-orange);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
}

.home-jumpin::before{
    content: '';
    position: absolute;
    inset: 0;
    background: var(--jumpin-orange);
    opacity: 0.86;
    pointer-events: none;
}

.home-jumpin--has-bg::before {
    background: linear-gradient(135deg, rgba(249, 123, 58, 0.88), rgba(249, 123, 58, 0.62));
    opacity: 1;
}

.home-jumpin .container{
    position: relative;
    z-index: 1;
}

.home-jumpin-title {
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
    line-height: 1.12;
    margin: 0 0 1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.home-jumpin-strong,
.home-jumpin-in {
    font-weight: 800;
}

.home-jumpin-lead {
    color: var(--white);
    margin: 0;
    font-size: clamp(0.95rem, 1.1vw, 1.0625rem);
    line-height: 1.55;
}

@media (min-width: 992px) {
    .home-jumpin-lead {
        padding-left: 3rem;
        padding-right: 3rem;
        margin-left: 3rem;
    }
}

.home-jumpin-form {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

@media (min-width: 992px) {
    .home-jumpin-form {
        margin-left: 0.75rem;
        margin-right: 0;
    }
}

.home-jumpin-inline {
    position: relative;
    background-color: #fff;
    padding: 5px 15px;
    border-radius: 1rem;
    margin-bottom: 1rem;
    min-height: 58px;
}

.home-jumpin-inline .form-control {
    background: none;
    border: none;
    box-shadow: none;
    padding-right: 8.75rem;
    min-height: 48px;
    font-size: 1rem;
    color: #2c2c2c;
}

.home-jumpin-inline .form-control::placeholder {
    color: rgba(44, 44, 44, 0.55);
}

.home-jumpin-inline .form-control:focus {
    box-shadow: none;
}

.home-jumpin-submit-btn {
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    line-height: 1;
    padding: 12px 18px;
    border-radius: 10px;
    background: var(--jumpin-orange) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 700;
    font-size: 1rem;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
    white-space: nowrap;
}

.home-jumpin-submit-btn:hover,
.home-jumpin-submit-btn:focus {
    background: var(--jumpin-orange-hover) !important;
    border-color: var(--jumpin-orange-hover) !important;
    color: #fff !important;
}

.home-jumpin-consent {
    margin-bottom: 1rem;
    padding-left: 1.75rem;
}

.home-jumpin-consent .form-check-input {
    width: 20px;
    height: 20px;
    margin-top: 0.15rem;
    background-color: transparent;
    border: 2px solid rgba(255, 255, 255, 0.9);
}

.home-jumpin-consent .form-check-input:checked {
    background-color: #fff;
    border-color: #fff;
}

.home-jumpin-consent .form-check-label {
    color: #fff;
    line-height: 1.45;
}

.home-jumpin-privacy-link {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.45);
}

.home-jumpin-privacy-link:hover {
    color: #fff;
}

.home-jumpin-file {
    position: relative;
}

.home-jumpin-file-input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.home-jumpin-file-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    background: none;
    border: none;
    color: #fff;
    text-align: left;
    cursor: pointer;
    font-size: 0.95rem;
}

.home-jumpin-file-icon {
    font-size: 1rem;
    opacity: 0.95;
}

.home-jumpin .alert {
    margin-bottom: 1rem;
}

@media (max-width: 991px) {
    .home-jumpin{ padding: 70px 0; }

    .home-jumpin-lead {
        padding-left: 0;
        padding-right: 0;
        margin-left: 0;
    }

    .home-jumpin-inline {
        padding-bottom: 3.35rem;
    }

    .home-jumpin-inline .form-control {
        padding-right: 1rem;
        min-height: 44px;
    }

    .home-jumpin-submit-btn {
        right: 12px;
        bottom: 8px;
        top: auto;
        transform: none;
    }
}

.social-links a:hover {
    background-color: var(--accent-color);
    transform: translateY(-3px);
}

/* Team cards: make social icons bigger and full-width */
.team-card .social-links {
    width: 100%;
    gap: 16px;
    margin: 14px 0 0;
    justify-content: center;
}

.team-card .social-links a {
    flex: 0 0 auto;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: transparent;
    color: var(--accent-color);
    border: 2px solid var(--accent-color);
}

.team-card .social-links a i {
    font-size: 30px;
}

.team-card .social-links a:hover {
    background: var(--accent-color);
    color: #fff;
    border-color: var(--accent-color);
    transform: translateY(-2px);
}

.footer-bottom {
    text-align: left;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.85rem;
    padding-top: 0;
    border-top: 0;
}

footer .footer-bottom p {
    margin: 0;
}

@media (min-width: 992px) {
    footer .footer-bottom p {
        white-space: nowrap;
    }
}

/* Utilities */
.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

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

.text-right {
    text-align: right;
}

.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }
.mb-5 { margin-bottom: 3rem; }

.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }
.mt-5 { margin-top: 3rem; }

.padding-top { padding-top: 80px; }
.padding-bottom { padding-bottom: 80px; }

.text-accent { color: var(--accent-color); }

/* =========================
   Services (WordPress-like)
   ========================= */

.services-page .services-intro {
    padding: 90px 0 30px;
}

.services-page .services-kicker {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-weight: 300;
    font-size: 13px;
    color: var(--accent-color, #ff5722);
}

.services-page .services-h {
    margin-top: 10px;
    font-weight: 800;
    letter-spacing: -0.5px;
    color: #153a5b;
    font-size: clamp(30px, 3.2vw, 44px);
}

.services-page .services-h .text-accent {
    font-weight: 800;
    color: var(--accent-color, #ff5722);
}

.services-cards {
    padding: 40px 0 90px;
}

.service-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 16px;
    box-shadow: 0 10px 22px rgba(0,0,0,0.06);
    overflow: hidden;
    transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}

.service-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.10);
    border-color: rgba(255,87,34,0.18);
}

/* Same hover feel when hovering the clickable area */
.service-card-link:hover,
.service-card-link:focus-visible {
    text-decoration: none;
}

.service-card-link {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 12px;
    padding: 22px 20px;
    text-decoration: none;
    color: inherit;
}

.service-card-title {
    font-weight: 800;
    letter-spacing: -0.35px;
    margin: 0;
    color: #0f172a;
    font-size: 1.35rem;
}

.service-card-subtitle {
    margin-top: 6px;
    font-weight: 700;
    color: rgba(15,23,42,0.55);
}

.service-card-text {
    margin: 10px 0 0;
    color: rgba(15,23,42,0.72);
    line-height: 1.6;
    font-size: 0.98rem;
}

.service-card-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding-top: 10px;
}

.service-card-media {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
}

.service-card-img {
    width: 120px;
    height: auto;
    max-height: 92px;
    object-fit: contain;
}

.service-card-more {
    color: #3aa0f9;
    font-style: italic;
    font-weight: 700;
}

.service-card-icon {
    width: 54px;
    height: 54px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: radial-gradient(circle at 30% 30%, rgba(58,160,249,0.18), rgba(255,87,34,0.12));
    border: 1px solid rgba(0,0,0,0.06);
    color: #153a5b;
}

.service-card-icon i {
    font-size: 22px;
}

/* Home hero scroll indicator (mouse icon) */
.hero-scroll-indicator {
    position: absolute;
    left: 50%;
    bottom: 26px;
    transform: translateX(-50%);
    z-index: 3;
    width: 30px;
    height: 50px;
    border: 2px solid rgba(255,255,255,0.9);
    border-radius: 999px;
    background: rgba(255,255,255,0.04);
    pointer-events: none;
    animation: heroMouseFloat 1.8s ease-in-out infinite;
}

.hero-scroll-indicator::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 10px;
    width: 4px;
    height: 8px;
    border-radius: 99px;
    transform: translateX(-50%);
    background: rgba(255,255,255,0.9);
    animation: heroMouseWheel 1.6s ease-in-out infinite;
}

@keyframes heroMouseFloat {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(-6px); }
}

@keyframes heroMouseWheel {
    0% { transform: translateX(-50%) translateY(0); opacity: 0.95; }
    45% { transform: translateX(-50%) translateY(10px); opacity: 0.35; }
    60% { transform: translateX(-50%) translateY(10px); opacity: 0.0; }
    100% { transform: translateX(-50%) translateY(0); opacity: 0.95; }
}

.services-why {
    padding: 90px 0;
    background: #f3f4f6;
}

.services-why-image {
    max-width: 100%;
    height: auto;
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(0,0,0,0.18);
}

.services-why-list {
    margin-top: 26px;
    display: grid;
    gap: 18px;
}

.services-why-item {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 14px;
    align-items: start;
}

.services-why-icon {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-color);
    background: rgba(255,87,34,0.10);
    border: 1px solid rgba(255,87,34,0.20);
}

.services-why-icon i {
    font-size: 20px;
}

.services-why-title {
    font-weight: 900;
    color: #153a5b;
    margin: 0;
}

.services-why-text {
    color: rgba(0,0,0,0.68);
    line-height: 1.6;
    margin-top: 6px;
}

.services-tech {
    padding: 90px 0;
}

.services-tech-intro {
    margin: 18px 0 34px;
    color: rgba(15,23,42,0.72);
    max-width: 980px;
}

.services-tech-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.services-tech-item {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 14px;
    box-shadow: 0 14px 40px rgba(0,0,0,0.08);
    padding: 16px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: center;
    color: #0f172a;
    font-weight: 800;
}

.services-tech-item i {
    font-size: 24px;
    color: #153a5b;
}

.services-tech-logo {
    width: 44px;
    height: 44px;
    object-fit: contain;
    display: block;
}

.services-cta {
    position: relative;
    padding: 100px 0;
    overflow: hidden;
    background: #1a1a1a;
    min-height: 520px;
    display: flex;
    align-items: center;
}

.services-cta .hero-video-container video {
    opacity: 1;
}

.services-cta-inner {
    position: relative;
    z-index: 2;
    text-align: center;
    width: 100%;
}

.services-cta-title {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    color: #fff;
    font-weight: 700;
    letter-spacing: -1px;
    font-size: 3.125rem;
    line-height: 1.3;
    margin: 0 0 1.5rem;
}

.services-cta-copy {
    max-width: 980px;
    margin: 0 auto;
}

.services-cta-text {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    color: #fff;
    max-width: none;
    margin: 0;
    font-size: 17px;
    font-weight: 400;
    line-height: 1.65;
    letter-spacing: 0;
}

.services-cta-copy .services-cta-text + .services-cta-text {
    margin-top: 0;
}

.services-cta-text p {
    margin: 0 0 1rem;
    line-height: 1.65;
}

.services-cta-text p:last-child {
    margin-bottom: 0;
}

.services-cta-actions {
    margin-top: 2.25rem;
}

.services-cta .btn-light {
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    background: #fff;
    color: #f97b3a;
    font-weight: 700;
    font-size: 1rem;
    border: 0;
    padding: 14px 34px;
    border-radius: 10px;
}

.services-cta .btn-light:hover {
    background: #fff;
    color: #e86a28;
}

/* Service detail pages */
.service-detail .service-detail-breadcrumbs {
    font-size: 14px;
    letter-spacing: 0.2px;
    opacity: 0.92;
    margin-bottom: 18px;
}

.service-detail .service-detail-breadcrumbs a {
    color: rgba(255, 255, 255, 0.92);
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.28);
}

.service-detail .service-detail-breadcrumbs a:hover {
    border-bottom-color: rgba(255, 255, 255, 0.6);
}

.service-detail .service-detail-sep {
    margin: 0 8px;
    opacity: 0.75;
}

.service-detail .service-detail-content {
    padding: 64px 0;
}

.service-detail .service-detail-content h2 {
    font-size: clamp(22px, 2.2vw, 32px);
    margin-top: 28px;
}

.service-detail .service-detail-content p {
    font-size: 16px;
    line-height: 1.75;
}

.service-detail .service-detail-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.service-section {
    padding: 90px 0;
}

.service-intro .service-back {
    margin: 0 0 10px;
}

.service-back-link {
    color: var(--accent-color);
    text-decoration: none;
    font-weight: 700;
}

.service-back-link:hover {
    text-decoration: underline;
}

.service-h2 {
    font-size: clamp(26px, 3vw, 44px);
    font-weight: 800;
    letter-spacing: -0.6px;
    margin: 0 0 24px;
    color: #153a5b;
}

.service-h2 .text-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.service-intro-text p {
    font-size: 16px;
    line-height: 1.75;
    margin-bottom: 12px;
}

.service-values {
    padding: 64px 0;
}

.service-values-item {
    padding: 10px 8px;
}

.service-values-icon {
    width: 72px;
    height: 72px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15, 23, 42, 0.10);
    margin: 0 auto 12px;
}

.service-values-icon i {
    font-size: 28px;
    color: #153a5b;
}

.service-values-label {
    font-weight: 800;
    color: #0f172a;
}

.service-models {
    padding: 100px 0;
}

.service-model-card {
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
}

.service-model-icon {
    width: 54px;
    height: 54px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 87, 34, 0.10);
    color: var(--accent-color);
    margin-bottom: 14px;
}

.service-model-icon i {
    font-size: 22px;
}

.service-model-title {
    font-weight: 900;
    letter-spacing: -0.3px;
    margin: 0 0 10px;
}

.service-model-text {
    color: rgba(15, 23, 42, 0.82);
    line-height: 1.7;
}

.service-specializations {
    padding: 100px 0;
}

.service-specializations-intro p {
    margin-bottom: 10px;
    color: rgba(15, 23, 42, 0.82);
    line-height: 1.7;
}

.service-spec-item {
    background: #fff;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, 0.08);
    padding: 18px 14px;
    height: 100%;
    display: flex;
    gap: 12px;
    align-items: center;
}

.service-spec-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(21, 58, 91, 0.08);
    color: #153a5b;
    flex: 0 0 auto;
}

.service-spec-icon i {
    font-size: 18px;
}

.service-spec-label {
    font-weight: 800;
    color: #0f172a;
    font-size: 14px;
}

.service-nav {
    margin-top: 44px;
    display: flex;
    justify-content: space-between;
    gap: 14px;
}

/* Nearshore (WP-like) */
.bg-light-grey {
    background: #f4f6f8;
}

.service-kicker {
    font-weight: 300;
    letter-spacing: 0.12em;
    font-size: 13px;
}

.service-kicker.text-accent,
.service-kicker:not(.text-light-purple) {
    color: var(--accent-color, #ff5722);
}

.service-steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}

.service-steps-wrap {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: start;
}

.service-steps-indicator {
    display: none;
}

.service-step-card {
    background: #ffffff;
    border-radius: 14px;
    padding: 18px 18px;
    border: 1px solid rgba(0,0,0,0.06);
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

.service-step-card:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 87, 34, 0.25);
    border-color: rgba(255, 87, 34, 0.35);
}

.service-step-card:hover,
.service-step-card.is-active {
    transform: translateY(-2px);
    box-shadow: 0 18px 55px rgba(0,0,0,0.10);
    border-color: rgba(255, 87, 34, 0.25);
}

.service-step-bg {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 120px;
    font-weight: 900;
    letter-spacing: -0.04em;
    color: rgba(11, 27, 43, 0.06);
    opacity: 0;
    transition: opacity 0.2s ease;
    pointer-events: none;
    line-height: 1;
}

.service-step-card:hover .service-step-bg,
.service-step-card.is-active .service-step-bg {
    opacity: 1;
}

.service-step-meta {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 6px;
}

.service-step-title {
    font-size: 22px;
    margin: 0 0 6px 0;
    color: #0b1b2b;
}

.service-step-text {
    margin: 0;
    color: rgba(0,0,0,0.72);
}

.service-location-card {
    border-radius: 16px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid rgba(0,0,0,0.06);
}

/* Nearshore locations - sliding image cards */
.service-location-split {
    position: relative;
    min-height: 280px;
    overflow: hidden;
}

.service-location-media {
    position: absolute;
    inset: 0;
    background-image: var(--loc-image);
    background-size: cover;
    background-position: center;
    transform: translateX(0);
    transition: transform 0.45s cubic-bezier(.2,.8,.2,1);
}

.service-location-media-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,87,34,0.76), rgba(255,87,34,0.52));
}

.service-location-media-city {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 900;
    font-size: clamp(34px, 4vw, 52px);
    text-shadow: 0 12px 28px rgba(0,0,0,0.35);
    letter-spacing: -0.02em;
}

.service-location-info {
    position: absolute;
    top: 0;
    bottom: 0;
    width: min(56%, 520px);
    background: #ffffff;
    padding: 22px 22px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 6px;
    box-shadow: 0 18px 55px rgba(0,0,0,0.10);
    transition: transform 0.45s cubic-bezier(.2,.8,.2,1);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.service-location-info::-webkit-scrollbar {
    width: 8px;
}

.service-location-info::-webkit-scrollbar-thumb {
    background: rgba(15, 23, 42, 0.18);
    border-radius: 999px;
}

.service-location-info::-webkit-scrollbar-track {
    background: rgba(15, 23, 42, 0.06);
}

.service-location-card.is-lisboa .service-location-info {
    right: 0;
    transform: translateX(110%);
}

.service-location-card.is-porto .service-location-info {
    left: 0;
    transform: translateX(-110%);
}

.service-location-card.is-sao-paulo .service-location-info {
    left: 0;
    transform: translateX(-110%);
}

.service-location-card.is-luanda .service-location-info {
    left: 0;
    transform: translateX(-110%);
}

.service-location-card.is-lisboa:hover .service-location-media,
.service-location-card.is-lisboa:focus-within .service-location-media {
    transform: translateX(-44%);
}

.service-location-card.is-porto:hover .service-location-media,
.service-location-card.is-porto:focus-within .service-location-media {
    transform: translateX(44%);
}

.service-location-card.is-sao-paulo:hover .service-location-media,
.service-location-card.is-sao-paulo:focus-within .service-location-media {
    transform: translateX(44%);
}

.service-location-card.is-luanda:hover .service-location-media,
.service-location-card.is-luanda:focus-within .service-location-media {
    transform: translateX(44%);
}

.service-location-card:hover .service-location-info,
.service-location-card:focus-within .service-location-info {
    transform: translateX(0);
}

.service-location-card:hover,
.service-location-card:focus-within {
    box-shadow: 0 18px 55px rgba(0,0,0,0.10);
    border-color: rgba(255, 87, 34, 0.18);
}

.service-location-head {
    padding: 18px;
    background: linear-gradient(135deg, #0b1b2b 0%, #162c44 100%);
}

.service-location-city {
    color: #ffffff;
    font-weight: 800;
    font-size: 28px;
    text-align: center;
}

.service-location-body {
    padding: 16px 18px 18px 18px;
}

.service-location-tag {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    margin-bottom: 4px;
}

.service-location-name {
    font-size: 20px;
    font-weight: 800;
    color: #0b1b2b;
    margin-bottom: 10px;
}

.service-location-line {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 6px 0;
    color: rgba(0,0,0,0.72);
    flex-wrap: wrap;
}

.service-location-line i {
    margin-top: 3px;
    color: #f28c28;
}

.service-location-actions {
    margin-top: 12px;
}

@media (min-width: 992px) {
    .service-steps {
        grid-template-columns: 1fr;
    }

    .service-steps-wrap {
        grid-template-columns: 1fr 120px;
        gap: 28px;
    }

    .service-steps-indicator {
        display: block;
        position: sticky;
        top: 120px;
        align-self: start;
    }

    .service-steps-indicator-inner {
        display: flex;
        flex-direction: column;
        gap: 10px;
        align-items: flex-start;
        justify-content: center;
        padding-top: 8px;
    }

    .service-step-dot {
        appearance: none;
        border: 0;
        background: transparent;
        display: inline-flex;
        align-items: center;
        gap: 10px;
        cursor: pointer;
        padding: 6px 8px;
    }

    .service-step-dot::before {
        content: '';
        width: 10px;
        height: 10px;
        border-radius: 999px;
        border: 2px solid rgba(255, 87, 34, 0.55);
        display: inline-block;
        transition: background 0.15s ease, transform 0.15s ease;
    }

    .service-step-dot-num {
        font-weight: 900;
        color: rgba(11, 27, 43, 0.70);
        opacity: 0;
        transform: translateX(-4px);
        transition: opacity 0.15s ease, transform 0.15s ease;
    }

    .service-step-dot.is-active::before {
        background: rgba(255, 87, 34, 0.95);
        transform: scale(1.1);
    }

    .service-step-dot.is-active .service-step-dot-num {
        opacity: 1;
        transform: translateX(0);
    }
}

@media (max-width: 575.98px) {
    .service-location-split {
        min-height: 240px;
    }
    .service-location-info {
        width: 100%;
        max-width: none;
    }
    .service-location-card.is-lisboa:hover .service-location-media,
    .service-location-card.is-porto:hover .service-location-media,
    .service-location-card.is-sao-paulo:hover .service-location-media,
    .service-location-card.is-luanda:hover .service-location-media {
        transform: translateX(0);
    }
}

.service-nav-link {
    color: var(--accent-color);
    text-decoration: none;
    font-weight: 800;
}

.service-nav-link:hover {
    text-decoration: underline;
}

/* CyberSecurity (WP-like) */
.bg-dark-grey {
    background: #0b1b2b;
}

.text-light-purple {
    color: #c2a5ff;
}

.text-white-70 {
    color: rgba(255,255,255,0.72);
}

.service-cyber-areas .service-h2 {
    margin-bottom: 18px;
}

.service-cyber-areas-intro p {
    margin-bottom: 10px;
    line-height: 1.7;
}

.cyber-carousel {
    margin-top: 26px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: start;
    position: relative;
}

.cyber-carousel-cards {
    display: grid;
    gap: 14px;
}

.cyber-carousel-card {
    background: rgba(255,255,255,0.06);
    border: 1px solid rgba(255,255,255,0.14);
    border-radius: 16px;
    padding: 18px;
    backdrop-filter: blur(6px);
}

.cyber-carousel-card-inner {
    position: relative;
    z-index: 1;
}

.cyber-carousel-title {
    margin: 0 0 8px;
    color: #ffffff;
    font-weight: 900;
    letter-spacing: -0.02em;
    font-size: 22px;
}

.cyber-carousel-text {
    margin: 0;
    color: rgba(255,255,255,0.76);
    line-height: 1.7;
}

.cyber-carousel-aside {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 14px;
}

.cyber-carousel-counter {
    font-weight: 900;
    letter-spacing: -0.04em;
    font-size: clamp(54px, 8vw, 96px);
    line-height: 1;
    color: rgba(194, 165, 255, 0.92);
    text-shadow: 0 18px 55px rgba(0,0,0,0.35);
}

.cyber-carousel-controls {
    display: inline-flex;
    gap: 10px;
}

.cyber-carousel-btn {
    appearance: none;
    border: 1px solid rgba(255,255,255,0.22);
    background: rgba(255,255,255,0.06);
    color: #fff;
    border-radius: 999px;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.cyber-carousel-btn:hover {
    transform: translateY(-1px);
    background: rgba(255,255,255,0.10);
    border-color: rgba(255,255,255,0.32);
}

.cyber-carousel-btn:active {
    transform: translateY(0);
}

/* Enhanced mode: show one card at a time */
.cyber-carousel.is-enhanced .cyber-carousel-card {
    display: none;
}

.cyber-carousel.is-enhanced .cyber-carousel-card.is-active {
    display: block;
}

.services-cta.services-cta--cyber .services-cta-overlay {
    background: linear-gradient(135deg, rgba(11,27,43,0.88), rgba(162, 120, 255, 0.45));
}

.cyber-info-banner {
    position: relative;
    overflow: hidden;
    background: #7a60d4;
    padding: 110px 0;
}

.cyber-info-banner-pattern {
    position: absolute;
    inset: -80px;
    opacity: 0.55;
    pointer-events: none;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(255,255,255,0.12) 0px,
            rgba(255,255,255,0.12) 2px,
            transparent 2px,
            transparent 28px
        ),
        repeating-linear-gradient(
            90deg,
            rgba(255,255,255,0.06) 0px,
            rgba(255,255,255,0.06) 2px,
            transparent 2px,
            transparent 64px
        );
    transform: skewY(-4deg);
}

.cyber-info-banner-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 980px;
}

.cyber-info-banner-title {
    color: #ffffff;
    font-weight: 900;
    letter-spacing: -0.8px;
    font-size: clamp(34px, 4.2vw, 62px);
    margin: 0;
}

.cyber-info-banner-text {
    color: rgba(255,255,255,0.92);
    font-size: 20px;
    line-height: 1.7;
    margin: 18px auto 0;
    max-width: 980px;
}

.cyber-info-banner-actions {
    margin-top: 34px;
}

.cyber-info-banner .btn.btn-outline-light {
    border-width: 2px;
    padding: 14px 34px;
    border-radius: 10px;
}

@media (min-width: 992px) {
    .cyber-carousel {
        grid-template-columns: 1fr 220px;
        gap: 28px;
    }

    .cyber-carousel-aside {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        position: sticky;
        top: 120px;
        padding-top: 6px;
    }
}

@media (max-width: 575.98px) {
    .service-section {
        padding: 64px 0;
    }
    .service-nav {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 991.98px) {
    .services-tech-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .services-page .services-intro {
        padding-top: 60px;
    }
    .services-tech-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Responsive Design */
@media (max-width: 768px) {
    h1 {
        font-size: 2rem;
    }

    h2 {
        font-size: 1.8rem;
    }

    h3 {
        font-size: 1.3rem;
    }

    .hero {
        padding: 80px 0;
        min-height: auto;
    }

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

    .hero h2 {
        font-size: 1.5rem;
    }

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

    section {
        padding: 50px 0;
    }

    .about-content {
        grid-template-columns: 1fr;
    }

    .about-image {
        min-height: 300px;
    }

    .nav-link {
        margin-left: 0;
        padding: 0.5rem 0;
    }

    .services-grid,
    .team-grid,
    .blog-grid,
    .stats-container {
        grid-template-columns: 1fr;
    }

    footer {
        padding: 40px 0 20px;
    }
}

@media (max-width: 480px) {
    h1 {
        font-size: 1.75rem;
    }

    h2 {
        font-size: 1.4rem;
    }

    h3 {
        font-size: 1.1rem;
    }

    .hero {
        padding: 60px 0;
    }

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

    .hero h2 {
        font-size: 1.2rem;
    }

    section {
        padding: 40px 0;
    }

    .container {
        padding: 0 15px;
    }

    .social-links {
        justify-content: center;
    }
}

    /* Tailor Made - WordPress-like sections */
    .tm-difference .tm-image,
    .tm-expertise .tm-image {
        border-radius: 18px;
        border: 1px solid rgba(0,0,0,0.06);
        box-shadow: 0 18px 50px rgba(0,0,0,0.12);
        background: #fff;
    }

    .tm-advantages {
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

    .tm-adv-item {
        display: flex;
        gap: 14px;
        align-items: flex-start;
    }

    .tm-adv-icon {
        width: 56px;
        height: 56px;
        border-radius: 14px;
        background: rgba(255,87,34,0.10);
        display: flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
        color: var(--accent-color);
    }

    .tm-adv-icon i {
        font-size: 22px;
    }

    .tm-adv-title {
        font-weight: 900;
        color: #0f172a;
        font-size: 18px;
    }

    .tm-adv-text {
        color: rgba(15,23,42,0.72);
        margin-top: 4px;
        line-height: 1.6;
    }

    .tm-model {
        position: relative;
        overflow: visible;
    }

    .tm-model .tm-model-intro p {
        font-size: 16px;
        line-height: 1.75;
    }

    .tm-vertical-carousel {
        position: relative;
        margin-top: 28px;
        padding-right: 90px;
        overflow: visible;
    }

    .tm-vertical-cards {
        position: relative;
        z-index: 1;
        display: flex;
        flex-direction: column;
        gap: 18px;
    }

    .tm-vertical-card {
        background: #fff;
        border: 1px solid rgba(0,0,0,0.06);
        border-radius: 18px;
        padding: 26px 26px;
        box-shadow: 0 18px 50px rgba(0,0,0,0.10);
        transition: transform 200ms ease, box-shadow 200ms ease;
        outline: none;
    }

    .tm-vertical-card:focus,
    .tm-vertical-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 22px 60px rgba(0,0,0,0.14);
    }

    .tm-vertical-step {
        font-size: 12px;
        letter-spacing: 0.12em;
        font-weight: 800;
    }

    .tm-vertical-title {
        font-size: 26px;
        font-weight: 900;
        color: #153a5b;
        margin: 6px 0 10px;
    }

    .tm-vertical-text {
        font-size: 16px;
        line-height: 1.7;
        color: rgba(15,23,42,0.74);
        margin: 0;
    }

    .tm-carousel-counter {
        position: absolute;
        right: -10px;
        bottom: -26px;
        font-size: clamp(72px, 10vw, 140px);
        font-weight: 900;
        color: rgba(15,23,42,0.08);
        line-height: 1;
        z-index: 0;
        user-select: none;
        pointer-events: none;
    }

    .tm-carousel-dots {
        position: absolute;
        right: 24px;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        flex-direction: column;
        gap: 10px;
        z-index: 2;
    }

    .tm-dot {
        width: 14px;
        height: 14px;
        border-radius: 999px;
        border: 2px solid rgba(255,87,34,0.95);
        background: transparent;
        padding: 0;
        display: inline-block;
        cursor: pointer;
    }

    .tm-dot.is-active {
        background: rgba(255,87,34,0.95);
    }

    .tm-dot:focus-visible {
        outline: 3px solid rgba(255,87,34,0.25);
        outline-offset: 3px;
    }

    .tm-vertical-carousel.is-enhanced [data-tm-card] {
        opacity: 0.32;
        filter: grayscale(0.85);
    }

    .tm-vertical-carousel.is-enhanced [data-tm-card]:not(.is-active) {
        padding: 18px 26px;
    }

    .tm-vertical-carousel.is-enhanced [data-tm-card]:not(.is-active) .tm-vertical-text {
        display: none;
    }

    .tm-vertical-carousel.is-enhanced [data-tm-card]:not(.is-active) .tm-vertical-title {
        margin-bottom: 0;
    }

    .tm-vertical-carousel.is-enhanced [data-tm-card].is-active {
        opacity: 1;
        filter: none;
    }

    .tm-scrollable {
        max-height: 560px;
        overflow: auto;
        padding: 6px 12px 6px 0;
    }

    .tm-expertise-title {
        font-size: 22px;
        font-weight: 900;
        color: #153a5b;
        margin: 0 0 10px;
    }

    .tm-expertise-text {
        color: rgba(15,23,42,0.74);
        line-height: 1.75;
        margin: 0 0 18px;
    }

    .services-cta.tm-cta .services-cta-overlay {
        background: linear-gradient(135deg, rgba(255,87,34,0.92), rgba(255,87,34,0.72));
    }

    @media (max-width: 991px) {
        .tm-scrollable {
            max-height: none;
            overflow: visible;
            padding-right: 0;
        }
        .tm-carousel-counter {
            bottom: -10px;
        }
    	.tm-carousel-dots {
    		right: 10px;
    	}
        .tm-vertical-carousel {
            padding-right: 0;
        }
    }
/* Vagas - Better readability for category badges */
#vagas .card-opportunities .badge {
    background-color: #FF5722 !important;
    color: #ffffff !important;
    font-weight: 600;
    padding: 0.4em 0.8em;
    font-size: 0.85rem;
}

#vagas .card-opportunities .badge.bg-light-grey {
    background-color: #FF5722 !important;
    color: #ffffff !important;
}

/* Search Modal */
.search-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.search-modal.active {
    display: flex;
    opacity: 1;
}

.search-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(10px);
}

.search-modal-content {
    position: relative;
    width: 100%;
    max-width: 900px;
    margin: auto;
    padding: 20px;
    z-index: 10001;
    animation: searchModalSlideDown 0.3s ease;
}

@keyframes searchModalSlideDown {
    from {
        transform: translateY(-50px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.search-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 32px;
    cursor: pointer;
    padding: 10px;
    line-height: 1;
    transition: transform 0.2s ease, color 0.2s ease;
    z-index: 10002;
}

.search-modal-close svg {
    width: 32px;
    height: 32px;
    stroke: #ffffff;
}

.search-modal-close:hover {
    transform: scale(1.1);
    color: #FF5722;
}

.search-modal-close:hover svg {
    stroke: #FF5722;
}

.search-modal-body {
    background: transparent;
    padding: 80px 20px 20px;
}

.search-input-wrapper {
    position: relative;
    margin-bottom: 30px;
}

.search-input-icon {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    fill: #FF5722;
    pointer-events: none;
}

.search-input {
    width: 100%;
    padding: 24px 24px 24px 64px;
    font-size: 28px;
    font-weight: 300;
    color: #ffffff;
    background: rgba(255, 255, 255, 0.05);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    outline: none;
    transition: all 0.3s ease;
}

.search-input::placeholder {
    color: rgba(255, 255, 255, 0.4);
}

.search-input:focus {
    background: rgba(255, 255, 255, 0.08);
    border-color: #FF5722;
}

.search-results {
    max-height: 60vh;
    overflow-y: auto;
    padding: 10px;
}

.search-results::-webkit-scrollbar {
    width: 8px;
}

.search-results::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
}

.search-results::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
}

.search-results::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.3);
}

.search-results-empty {
    text-align: center;
    padding: 60px 20px;
    color: rgba(255, 255, 255, 0.4);
    font-size: 18px;
}

.search-results-loading {
    text-align: center;
    padding: 40px 20px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 16px;
}

.search-result-item {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 16px;
    transition: all 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    display: block;
    color: #ffffff;
}

.search-result-item:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: #FF5722;
    transform: translateX(8px);
    text-decoration: none;
    color: #ffffff;
}

.search-result-type {
    display: inline-block;
    padding: 4px 12px;
    background: #FF5722;
    color: #ffffff;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 6px;
    margin-bottom: 10px;
}

.search-result-title {
    font-size: 20px;
    font-weight: 600;
    color: #ffffff;
    margin-bottom: 8px;
}

.search-result-excerpt {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.7);
    line-height: 1.6;
}

.search-result-excerpt mark {
    background: #FF5722;
    color: #ffffff;
    padding: 2px 4px;
    border-radius: 3px;
}

@media (max-width: 768px) {
    .search-modal-content {
        padding: 10px;
    }
    
    .search-modal-body {
        padding: 60px 10px 10px;
    }
    
    .search-input {
        font-size: 20px;
        padding: 18px 18px 18px 56px;
    }
    
    .search-input-icon {
        width: 22px;
        height: 22px;
        left: 16px;
    }
    
    .search-result-title {
        font-size: 18px;
    }
    
    .search-results {
        max-height: 50vh;
    }
}

/* Cookie consent modal (integer.pt style) */
#cookieBanner.modal {
    z-index: 2000;
}

#cookieBanner.modal.show {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

#cookieBanner .modal-dialog {
    max-width: 700px;
    margin: 1.75rem auto;
}

#cookieBanner .modal-content.cookie-consent-modal {
    border: none;
    border-radius: 1rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

#cookieBanner .cookie-consent-title {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #234460;
    font-weight: 700;
    margin-bottom: 1rem;
}

#cookieBanner .cookie-consent-icon {
    flex-shrink: 0;
}

#cookieBanner .cookie-consent-text {
    color: rgba(0, 0, 0, 0.72);
    line-height: 1.6;
    margin-bottom: 1.5rem;
}

#cookieBanner .cookie-consent-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: flex-end;
}

#cookieBanner .cookie-consent-actions .btn {
    min-width: 160px;
}

#cookieBanner .btn-outline-primary {
    border-color: var(--accent-color, #f58220);
    color: var(--accent-color, #f58220);
}

#cookieBanner .btn-outline-primary:hover,
#cookieBanner .btn-outline-primary:focus {
    background: var(--accent-color, #f58220);
    border-color: var(--accent-color, #f58220);
    color: #fff;
}

#cookieBanner .text-orange {
    color: var(--accent-color, #f58220);
}

#cookieBanner .form-check-label small {
    color: rgba(0, 0, 0, 0.6);
}

@media (max-width: 576px) {
    #cookieBanner .cookie-consent-actions {
        flex-direction: column;
    }

    #cookieBanner .cookie-consent-actions .btn {
        width: 100%;
    }
}

/* Homepage #JumpIN hashtag */
.jobs-hashtag {
    display: inline-block;
    margin-top: 0.35em;
    color: var(--accent-color, #f58220);
    font-weight: 800;
    font-size: clamp(28px, 3vw, 42px);
}

/* Carreiras - secção INtegers (testemunhos) */
#vagas .vagas-integers-section {
    background: #f5f7fa;
}

@media (min-width: 992px) {
    #vagas .vagas-integers-title-col {
        padding-left: 3rem;
    }

    #vagas .vagas-integers-carousel-col {
        padding-right: 3rem;
    }

    #vagas .vagas-integers-carousel {
        max-width: 540px;
    }
}

#vagas .vagas-integers-title {
    color: #153a5b;
    font-weight: 800;
    font-size: clamp(28px, 3.5vw, 42px) !important;
    line-height: 1.15;
    letter-spacing: -0.3px;
}

#vagas .vagas-integers-carousel {
    border-radius: 1rem;
    overflow: hidden;
}

#vagas .vagas-integers-carousel .card-testimonials {
    border: 0;
    border-radius: 1rem;
}

#vagas .vagas-integers-carousel .card-header {
    background: none;
    border: 0;
}

#vagas .vagas-integers-carousel .testimonials-name {
    font-size: 1.3rem;
    color: #1f1f1f;
}

#vagas .vagas-integers-carousel .testimonials-role {
    color: #f97b3a !important;
}

#vagas .vagas-integers-avatar {
    width: 100px;
    height: 100px;
    object-fit: cover;
    flex: 0 0 100px;
}

#vagas .vagas-integers-avatar--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f97b3a;
    color: #fff;
    font-size: 2rem;
}

#vagas .vagas-integers-carousel .carousel-footer {
    position: relative;
    text-align: right;
    padding: 20px;
}

#vagas .vagas-integers-nav {
    width: 40px;
    height: 40px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-color: #2c2c2c;
    color: #2c2c2c;
    position: static;
    opacity: 1;
}

#vagas .vagas-integers-nav:hover {
    color: #f97b3a;
    border-color: #f97b3a;
    background-color: #fff;
}

@media (max-width: 991.98px) {
    #vagas .vagas-integers-carousel {
        max-width: none;
    }

    #vagas .vagas-integers-avatar {
        max-width: 75px;
        width: 75px;
        height: auto;
        flex: 0 0 75px;
    }
}

#vagas .vagas-integers-carousel .carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background-color: rgba(249, 123, 58, 0.35);
    opacity: 1;
    margin: 0 4px;
}

#vagas .vagas-integers-carousel .carousel-indicators .active {
    background-color: #f97b3a;
}

#vagas .vagas-jobs-section {
    background: #fff;
}

#vagas .vagas-jobs-section--spaced {
    padding-top: 140px !important;
}

@media (min-width: 992px) {
    #vagas .vagas-jobs-section--spaced {
        padding-top: 170px !important;
    }
}

#vagas .vagas-jobs-title {
    color: #153a5b;
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.4px;
    margin-top: 0;
    padding-top: 0;
}

#vagas .vagas-jobs-title .text-orange {
    color: #f97b3a;
    font-weight: 800;
}

#vagas #opportunities-pagination.pagination-wrapper .pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

#vagas #opportunities-pagination .page-item {
    list-style: none;
}

#vagas #opportunities-pagination .page-numbers {
    color: #153a5b;
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

#vagas #opportunities-pagination .page-numbers.text-orange {
    color: #f97b3a;
}

#vagas #opportunities-pagination .page-numbers:hover,
#vagas #opportunities-pagination .page-numbers:focus {
    color: #f97b3a;
    text-decoration: none;
}

#vagas #opportunities-pagination .page-numbers.invisible {
    visibility: hidden;
    pointer-events: none;
}

/* Blog - tipografia alinhada com integer.pt */
.blog-intro-eyebrow {
    color: var(--accent-color, #ff5722);
    font-weight: 300;
}

.blog-intro-title {
    color: #153a5b;
    font-weight: 900;
}

.blog-intro-text--merged {
    max-width: 980px;
    line-height: 1.8;
}

.blog-featured-kicker,
.blog-featured-title {
    color: #153a5b;
}

.blog-featured-kicker {
    color: var(--accent-color, #ff5722);
    font-weight: 300;
}

.home-blog-thumb {
    height: 230px;
    min-height: 230px;
    max-height: 230px;
}

.home-blog-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.blog-pagination-nav .page-link {
    color: #153a5b;
    border-color: rgba(21, 58, 91, 0.15);
}

.blog-pagination-nav .page-item.active .page-link {
    background: var(--accent-color, #ff6600);
    border-color: var(--accent-color, #ff6600);
}

.blog-more-articles {
    min-width: 200px;
    font-weight: 700;
}

.blog-pagination-footer {
    border-top: 1px solid rgba(21, 58, 91, 0.1);
}

.blog-pagination-label {
    color: #153a5b;
    font-weight: 600;
}

.blog-pagination-link {
    color: #153a5b;
    font-weight: 700;
    text-decoration: none;
}

.blog-pagination-link:hover {
    color: var(--accent-color, #ff6600);
    text-decoration: underline;
}

/* Contactos - labels e alinhamento */
.page-contactos #contact-form {
    text-align: left;
}

.page-contactos #contact-form .col-lg-12 > div {
    text-align: left;
}

.page-contactos #contact-form .display-sm-font-15,
.page-contactos #contact-form .display-sm-font-15 p {
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.6;
    color: var(--text-dark, #2c2c2c);
}

.page-contactos #contact-form .display-sm-font-15 p {
    margin-bottom: 1rem;
}

.page-contactos #contact-form .display-sm-font-15 p:last-child {
    margin-bottom: 0;
}

.page-contactos #contact-form .display-sm-font-15 a {
    color: inherit;
    text-decoration: none;
}

.page-contactos #contact-form .display-sm-font-15 a:hover {
    text-decoration: underline;
}

.page-contactos #contact-form h2.display-4 {
    color: #153a5b;
    font-weight: 700;
}

.page-contactos #contact-form h2.display-4 .text-orange.font-weight-bolder {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.page-contactos #contact-form .contact-lead {
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.6;
    color: var(--text-dark, #2c2c2c);
    margin-left: 0;
    margin-right: 0;
    max-width: none;
    text-align: left !important;
}

#contact-form label.text-dark-blue {
    font-size: 18px;
    font-weight: 700;
}

.page-contactos #contact-form .collapse-select-wrapper {
    background: #fff;
}

.page-contactos #contact-form .collapse-select-wrapper .btn-input {
    padding: 0.75rem 2.5rem 0.75rem 1rem;
    line-height: 1.5;
    height: auto;
    min-height: calc(1.5em + 0.75rem + 2px);
    background: #fff;
    border: 0;
    color: #2c2c2c;
}

.page-contactos #contact-form .collapse-select-wrapper .btn-input:hover,
.page-contactos #contact-form .collapse-select-wrapper .btn-input:focus,
.page-contactos #contact-form .collapse-select-wrapper .btn-input:active {
    background: #f5f5f5 !important;
    outline: none;
    box-shadow: none;
}

.page-contactos #contact-form .collapse-select-wrapper .btn-input-icon-right {
    position: relative;
}

.page-contactos #contact-form .collapse-select-wrapper .btn-input-icon-right .btn-icon {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    pointer-events: none;
}

.page-contactos #contact-form .collapse-select-wrapper .btn-input-icon-right .btn-icon svg {
    width: 14px;
    height: 14px;
    fill: #6c757d;
}

.page-contactos #contact-form .collapse-select-wrapper .list-group {
    border: 0;
    margin: 0;
}

.page-contactos #contact-form .collapse-select-wrapper .list-group-item {
    border: 0;
    color: #2c2c2c;
}

.page-contactos #contact-form .collapse-select-wrapper .list-group-item.active,
.page-contactos #contact-form .collapse-select-wrapper .list-group-item:hover {
    color: #2c2c2c;
    background: #f5f5f5 !important;
}

.page-contactos #contact-form .services-fieldset .invalid-feedback {
    display: none;
}

/* Marketing batch 2 — Sobre, Contactos escritórios, Serviços, Home valores */
.home-values-desc {
    display: none;
}

.home-values-item {
    align-items: center;
}

.about-work-section .about-work-split {
    align-items: center;
}

.value-icon-img {
    width: 72px;
    height: 72px;
    object-fit: contain;
    display: block;
}

.team-section .row > [class*="col-"] {
    display: flex;
}

.team-section .team-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
}

.team-section .team-card .team-card-role {
    color: #FF5722;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.35;
    margin: 0 0 0.75rem;
    min-height: 2.7em;
    display: flex;
    align-items: center;
    justify-content: center;
}

.team-section .team-card .social-links {
    margin-top: auto;
}

.team-section .team-card p.small {
    display: none;
}

.services-page .services-kicker {
    font-weight: 300;
    font-size: 13px;
}

@media (min-width: 992px) {
    .services-tech-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (min-width: 1200px) {
    .services-tech-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.services-tech-item {
    font-weight: 700;
    font-size: 13px;
    padding: 14px 12px;
}

.services-cta-text--merged {
    line-height: 1.65;
    margin-bottom: 0;
}

@media (max-width: 991.98px) {
    .services-cta .services-cta-title,
    .cta-video .cta-video-title,
    .cta-video .cta-video-heading-sub {
        font-size: 25px;
        line-height: 1.3;
        letter-spacing: -0.5px;
    }
}

@media (max-width: 767.98px) {
    .cta-video-copy {
        padding: 0;
    }
}

.home-jumpin-hashtag {
    font-size: clamp(20px, 2.4vw, 28px);
    font-weight: 800;
    letter-spacing: -0.02em;
    opacity: 0.95;
}

/* Escritórios — alternância e painel visível em mobile */
.service-location-card.is-alt.is-porto .service-location-info,
.service-location-card.is-alt.is-sao-paulo .service-location-info,
.service-location-card.is-alt.is-luanda .service-location-info {
    right: 0;
    left: auto;
    transform: translateX(110%);
}

.service-location-card.is-alt.is-porto:hover .service-location-media,
.service-location-card.is-alt.is-porto:focus-within .service-location-media,
.service-location-card.is-alt.is-sao-paulo:hover .service-location-media,
.service-location-card.is-alt.is-sao-paulo:focus-within .service-location-media,
.service-location-card.is-alt.is-luanda:hover .service-location-media,
.service-location-card.is-alt.is-luanda:focus-within .service-location-media {
    transform: translateX(-44%);
}

.service-location-card.is-alt.is-lisboa .service-location-info {
    left: 0;
    right: auto;
    transform: translateX(-110%);
}

.service-location-card.is-alt.is-lisboa:hover .service-location-media,
.service-location-card.is-alt.is-lisboa:focus-within .service-location-media {
    transform: translateX(44%);
}

@media (max-width: 991.98px) {
    #our-offices .service-location-split {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    #our-offices .service-location-media {
        position: relative;
        height: 220px;
        flex-shrink: 0;
        transform: none !important;
    }

    #our-offices .service-location-media-overlay,
    #our-offices .service-location-media-city {
        position: absolute;
    }

    #our-offices .service-location-media-city {
        font-size: clamp(22px, 5.5vw, 38px);
        padding: 0 16px;
        text-align: center;
        word-break: break-word;
        hyphens: auto;
    }

    #our-offices .service-location-info {
        position: relative;
        width: 100%;
        max-width: none;
        transform: none !important;
        box-shadow: none;
        top: auto;
        bottom: auto;
        left: auto !important;
        right: auto !important;
    }
}

/* Contactos — escritórios (layout integer.pt) */
.btn-outline-orange {
    color: #f97b3a !important;
    border-color: #f97b3a;
}

.btn-outline-orange:hover,
.btn-outline-orange:focus,
.btn-outline-orange:active {
    color: #fff !important;
    background-color: #f97b3a !important;
    border-color: #f97b3a;
}

#our-offices .integer-location {
    background-color: #2c2c2c;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    position: relative;
    overflow: hidden;
    max-height: 350px;
}

@media (min-width: 992px) {
    #our-offices .integer-location {
        max-height: none;
        min-height: 420px;
        height: 420px;
    }
}

#our-offices .integer-location.lisbon {
    background-image: url(../images/theme/contacts_1-min.jpg);
}

#our-offices .integer-location.porto,
#our-offices .integer-location.luanda,
#our-offices .integer-location.office-other {
    background-image: url(../images/theme/contacts_2-min.jpg);
}

#our-offices .integer-location.sao-paulo {
    background-image: url(../images/theme/contacts_3-min.jpg);
}

#our-offices .integer-location::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background-color: #727272;
    width: 100%;
    height: 100%;
    opacity: 0.5;
    pointer-events: none;
}

#our-offices .integer-location .cover {
    min-height: 350px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
    position: relative;
    z-index: 1;
}

@media (min-width: 992px) {
    #our-offices .integer-location .cover {
        position: absolute;
        inset: 0;
        min-height: 0;
        height: 100%;
    }
}

#our-offices .integer-location .cover h2 {
    transition: all 0.5s ease-in-out;
    font-weight: 800 !important;
    font-size: clamp(36px, 5.2vw, 58px) !important;
    line-height: 1.12;
    margin: 0 !important;
    width: 100%;
    text-align: center;
}

#our-offices .integer-location .desc {
    position: absolute;
    width: 100%;
    left: 0;
    top: 0;
    margin: 0;
    height: 100%;
    z-index: 2;
    overflow-y: auto;
    will-change: transform;
    backface-visibility: hidden;
    transform: translateX(-105%);
    transition: all 0.5s ease-in-out;
    transition-delay: 0.15s !important;
}

#our-offices .integer-location .desc > div {
    min-width: 50% !important;
}

#our-offices .integer-location .desc.desc-at-right {
    transform: translateX(105%);
}

#our-offices .integer-location .desc .location-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

#our-offices .integer-location .desc .location-icon .office-location-title,
#our-offices .integer-location .desc .location-icon .office-location-title a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
    text-align: center;
}

#our-offices .integer-location .desc .location-icon .office-location-title a span {
    display: block;
    color: #fff !important;
    font-weight: 800 !important;
    font-size: clamp(28px, 4.2vw, 42px) !important;
    line-height: 1.12;
    padding: 0 16px;
}

#our-offices .integer-location .location-address .text-lg-left {
    text-align: left !important;
}

#our-offices .integer-location .location-address .text-lg-right {
    text-align: right !important;
}

@media (min-width: 992px) {
    #our-offices .integer-location .location-address > div {
        width: 100%;
    }
}

#our-offices .integer-location .desc .location-icon::before {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background-color: #f97b3a;
    width: 100%;
    height: 100%;
    opacity: 0.75;
}

#our-offices .integer-location .desc .location-icon > * {
    position: relative;
    z-index: 1;
}

#our-offices .integer-location .desc .location-icon a {
    display: block;
    color: #fff;
    text-align: center;
    text-decoration: none;
}

#our-offices .integer-location .desc .location-icon a:hover,
#our-offices .integer-location .desc .location-icon a:focus {
    color: #fff;
}

#our-offices .integer-location .desc .location-icon a svg,
#our-offices .integer-location .desc .location-icon a .office-location-icon,
#our-offices .integer-location .desc .location-icon a img.office-location-icon {
    width: 100px;
    height: 100px;
    display: block;
    margin: 0 auto 12px;
    object-fit: contain;
}

#our-offices .integer-location .desc .location-icon a span {
    display: block;
    font-size: clamp(22px, 3.1vw, 34px);
    line-height: 1.15;
    word-break: normal;
    overflow-wrap: anywhere;
    padding: 0 16px;
}

#our-offices .integer-location .desc .location-icon .icon-white path,
#our-offices .integer-location .desc .location-icon .icon-white circle,
#our-offices .integer-location .desc .location-icon .icon-white g,
#our-offices .integer-location .desc .location-icon .icon-white rect {
    fill: #fff;
    stroke: #fff;
}

#our-offices .integer-location .desc .location-address {
    background-color: #fff;
}

#our-offices .integer-location:hover .desc,
#our-offices .integer-location:focus-within .desc {
    transform: translateX(0%);
    transition: all 0.75s ease-in-out;
}

#our-offices .integer-location:hover .cover h2,
#our-offices .integer-location:focus-within .cover h2 {
    opacity: 0;
}

#our-offices .integer-location .desc .btn-sm-icon {
    border: 2px solid #f97b3a;
    min-height: 44px;
    border-radius: 4px;
}

#our-offices .integer-location .desc .btn-sm-icon .icon-orange {
    color: #f97b3a;
}

@media (max-width: 991.98px) {
    #our-offices .integer-location {
        max-height: 350px !important;
    }

    #our-offices .integer-location .desc {
        transform: translateX(0%) !important;
    }

    #our-offices .integer-location .desc .btn-sm-icon {
        width: 50px;
        height: 50px;
        line-height: 50px;
        padding: 0 !important;
        border-radius: 50% !important;
        margin-top: -5px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    #our-offices .integer-location .desc .btn-sm-icon i {
        margin-top: -2px;
    }
}

/* Contactos — banner social (integer.pt) */
#socials-section.contactos-social-cta {
    position: relative;
    overflow: hidden;
    background-color: #f97b3a;
}

#socials-section .contactos-social-video {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: 0;
    object-fit: cover;
    pointer-events: none;
}

#socials-section.contactos-social-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: #f97b3a;
    opacity: 0.9;
    z-index: 1;
    pointer-events: none;
}

#socials-section.contactos-social-cta .container {
    position: relative;
    z-index: 2;
}

@media (min-width: 992px) {
    #socials-section .text-lg-right {
        text-align: right !important;
    }
}

#socials-section .social-icons a {
    width: clamp(56px, 10vw, 80px);
    height: clamp(56px, 10vw, 80px);
    padding: clamp(14px, 2.4vw, 20px);
    line-height: 0;
    flex: 0 0 auto;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

#socials-section .social-icons a:hover,
#socials-section .social-icons a:focus {
    transform: translateY(-3px);
}

#socials-section .social-icons .icon.smaller {
    width: 100%;
    height: 100%;
    display: block;
}

#socials-section .social-icons .icon-orange path,
#socials-section .social-icons .icon-orange circle,
#socials-section .social-icons .icon-orange rect {
    fill: #f97b3a;
}

@media (max-width: 991.98px) {
    #socials-section .social-icons {
        gap: 12px;
        flex-wrap: wrap;
        justify-content: center !important;
    }
}

/* Sobre — carrossel da equipa */
.team-carousel {
    position: relative;
    padding-bottom: 8px;
}

.team-carousel .carousel-control-prev,
.team-carousel .carousel-control-next {
    width: 44px;
    opacity: 1;
}

.team-carousel .carousel-control-prev {
    left: -8px;
}

.team-carousel .carousel-control-next {
    right: -8px;
}

.team-carousel .carousel-control-prev-icon,
.team-carousel .carousel-control-next-icon {
    background-color: rgba(255, 87, 34, 0.92);
    border-radius: 50%;
    background-size: 55% 55%;
}

.team-carousel-indicators [data-bs-target] {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background-color: rgba(255, 87, 34, 0.35);
}

.team-carousel-indicators .active {
    background-color: rgba(255, 87, 34, 0.95);
}

@media (max-width: 767.98px) {
    .team-carousel .carousel-control-prev,
    .team-carousel .carousel-control-next {
        display: none;
    }
}

/* Blog — tipografia Figtree (integer.pt) */
.page-blog .blog-intro-eyebrow,
.page-blog .blog-featured-kicker,
.page-blog .home-blog-kicker {
    font-family: 'Figtree', 'Open Sans', sans-serif;
    font-weight: 300;
    letter-spacing: 0.04em;
}

.page-blog .blog-intro-title,
.page-blog .blog-featured-title,
.page-blog .home-blog-card-title,
.page-blog .blog-post-hero-title,
.page-blog .blog-latest-title {
    font-family: 'Figtree', 'Open Sans', sans-serif;
    font-weight: 800;
    letter-spacing: -0.02em;
}

.page-blog .blog-intro-text,
.page-blog .blog-intro-text--merged,
.page-blog .home-blog-card-excerpt,
.page-blog .blog-post-content {
    font-family: 'Figtree', 'Open Sans', sans-serif;
    font-weight: 400;
}

/* Sobre Nós — alinhamento com integerconsulting.pt */
#sobre .font-weight-bold { font-weight: 700 !important; }
#sobre .font-weight-bolder { font-weight: 800 !important; }

#sobre .display-3 {
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: -0.02em;
}

#sobre .display-4 {
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    line-height: 1.06;
    letter-spacing: -0.02em;
    color: #153a5b;
    font-weight: 800;
}

#sobre .display-4 .text-orange,
#sobre .display-4 .font-weight-bolder {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

#sobre p.text-orange.text-uppercase {
    font-weight: 300;
    letter-spacing: 0.12em;
    font-size: 13px;
    color: var(--accent-color, #ff5722);
}

#sobre .text-lg-right { text-align: right !important; }

#sobre .bg-blue,
#sobre #company-summary-in-numbers.stats-section {
    background: #3aa0ff;
}

#sobre #company-summary-in-numbers {
    box-shadow: inset 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 78px 0;
}

#sobre #company-summary-in-numbers .summary-item h3,
#sobre #company-summary-in-numbers .stat-item h3 {
    font-size: clamp(42px, 4.6vw, 78px);
    font-weight: 900;
    letter-spacing: -0.6px;
    color: #fff;
    margin: 0 0 6px;
}

#sobre #company-summary-in-numbers .summary-item p,
#sobre #company-summary-in-numbers .stat-item p {
    color: rgba(255, 255, 255, 0.9);
    font-size: clamp(16px, 1.2vw, 22px);
}

#sobre #company-summary-in-numbers .icon-white {
    color: #fff;
    fill: #fff;
}

#sobre #company-summary-in-numbers .summary-icon-img,
#sobre #company-summary-in-numbers .summary-item > svg.icon-white {
    width: 96px;
    height: 96px;
    max-width: 96px;
    object-fit: contain;
    display: inline-block;
    margin-bottom: 18px;
}

#sobre .open-video-btn {
    position: relative;
    text-decoration: none;
    overflow: hidden;
    border-radius: 12px;
}

#sobre .open-video-btn .icon-play-button {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
}

#sobre .about-values-carousel {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 2rem;
}

#sobre .about-values-carousel .about-value-slide {
    min-width: 0;
}

#sobre .about-values-carousel .value-icon-img {
    width: 110px;
    height: 110px;
    max-width: 110px;
    object-fit: contain;
    display: inline-block;
}

#sobre .about-values-carousel .value-title {
    font-weight: 700;
    color: #1c2733;
    font-size: clamp(22px, 3.1vw, 34px);
    letter-spacing: -0.3px;
}

#sobre #team-section.team-section .team-card .team-image {
    margin: -2rem -2rem 1.25rem -2rem;
    overflow: hidden;
}

#sobre #team-section.team-section .team-card .team-photo,
#sobre #team-section.team-section .team-card .team-photo-placeholder {
    width: 100%;
    height: 220px;
    max-height: 220px;
    display: block;
    object-fit: cover;
    object-position: center 25%;
}

#sobre #team-section .team-carousel .row > [class*="col-"] {
    display: flex;
}

#sobre #team-section .team-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

#sobre #team-section .team-card .team-card-role {
    color: #FF5722;
    font-weight: 600;
    font-size: 0.9rem;
    line-height: 1.35;
    margin: 0 0 0.75rem;
    min-height: 2.7em;
    display: flex;
    align-items: center;
    justify-content: center;
}

#sobre #team-section .team-card h4 {
    font-size: 1.05rem;
    font-weight: 800;
    margin-bottom: 0.35rem;
    color: #1f1f1f;
}

#sobre #team-section .team-featured-grid > [class*="col-"] {
    display: flex;
}

#sobre #team-section .team-featured-block {
    margin-bottom: 2.5rem;
}

#sobre #team-section .team-members-block {
    padding-top: 0.5rem;
    border-top: 1px solid rgba(0, 0, 0, 0.08);
}

#sobre #team-section .team-members-block:only-child {
    border-top: 0;
    padding-top: 0;
}

#sobre #team-section .team-carousel {
    margin-bottom: 2.5rem;
}

#sobre #team-section .team-members-block .team-carousel {
    margin-bottom: 0;
}

#sobre #team-section .team-carousel:last-child {
    margin-bottom: 0;
}

#sobre #team-section .team-carousel .carousel-inner {
    overflow: hidden;
}

#sobre #team-section .team-card .social-links {
    margin-top: auto;
    padding-top: 8px;
    gap: 10px;
    justify-content: center;
}

#sobre #team-section .team-card .social-links a {
    width: 38px;
    height: 38px;
    border: 2px solid #FF5722;
    background: #fff;
    color: #FF5722;
}

#sobre #team-section .team-card .social-links a i {
    font-size: 16px;
    color: #FF5722;
}

#sobre #team-section .team-card .social-links a:hover {
    background: #FF5722;
    color: #fff;
}

#sobre #team-section .team-card .social-links a:hover i {
    color: #fff;
}

@media (max-width: 991.98px) {
    #sobre #team-section.team-section .team-card .team-photo,
    #sobre #team-section.team-section .team-card .team-photo-placeholder {
        height: 200px;
        max-height: 200px;
    }
}

@media (max-width: 575.98px) {
    #sobre #team-section.team-section .team-card .team-photo,
    #sobre #team-section.team-section .team-card .team-photo-placeholder {
        height: 180px;
        max-height: 180px;
    }
}

#sobre .about-carousel-wrap .about-carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, 0.1);
    background: #fff;
    color: #FF5722;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

#sobre .about-carousel-wrap .about-carousel-nav--prev { left: -12px; }
#sobre .about-carousel-wrap .about-carousel-nav--next { right: -12px; }

@media (max-width: 991.98px) {
    #sobre .about-values-carousel {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 1.5rem;
        padding-bottom: 0.5rem;
    }

    #sobre .about-values-carousel .about-value-slide {
        flex: 0 0 min(220px, 70vw);
        scroll-snap-align: start;
    }

    #sobre .about-carousel-wrap .about-carousel-nav--prev { left: 4px; }
    #sobre .about-carousel-wrap .about-carousel-nav--next { right: 4px; }
}

#sobre #testimonials-carousel .carousel-footer .icon-previous,
#sobre #testimonials-carousel .carousel-footer .icon-next {
    width: 38px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#sobre [data-animation]:not(.animate__animated):not(.video-wrapper) {
    opacity: 0;
}

#sobre .animate__animated {
    opacity: 1;
}

/* Uniformização da Tipografia — Portal (integerconsulting.pt) */
#vagas .about-eyebrow,
.page-contactos .contact-kicker,
.page-servicos .service-kicker.text-accent,
.page-servicos .service-kicker:not(.text-light-purple) {
    color: var(--accent-color, #ff5722);
    font-weight: 300;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 13px;
}

#vagas h2.display-4,
#vagas .vagas-integers-title,
#vagas .vagas-jobs-title,
#vagas .work-title {
    color: #153a5b;
    font-weight: 800;
}

#vagas h2.display-4 .about-title-accent,
#vagas h2.display-4 .testimonials-title-accent,
#vagas h2.display-4 .text-orange,
#vagas .work-title .work-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.page-contactos .contact-title {
    color: #153a5b;
    font-weight: 800;
}

.page-contactos .contact-title .text-orange {
    color: var(--accent-color, #ff5722) !important;
    font-weight: 800;
}

.page-home .about-eyebrow,
.page-home .home-values-eyebrow {
    font-weight: 300;
    letter-spacing: 0.12em;
    font-size: 13px;
}

.page-home #sobre .about-title,
.page-vagas .about-title {
    color: #153a5b;
    font-weight: 800;
}

.page-home #sobre .about-title .about-title-accent,
.page-vagas .about-title .about-title-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.page-home #vagas .jobs-hero-title {
    color: #153a5b;
    font-weight: 800;
}

.page-home #vagas .jobs-hero-title .jobs-accent {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

#sobre .about-work-section .display-4 .text-orange,
#sobre .about-work-section .display-4 .font-weight-bolder {
    color: var(--accent-color, #ff5722);
    font-weight: 800;
}

.page-servicos .service-h2 {
    color: #153a5b;
    font-weight: 800;
}

.page-servicos .service-h2 .text-accent {
    color: var(--accent-color, #ff5722) !important;
    font-weight: 800;
}

.page-blog .blog-cta-banner .cta-video-title {
    margin-bottom: 1.5rem;
}

.page-blog .blog-cta-banner .cta-white-btn {
    color: var(--accent-color, #ff5722);
    margin-top: 0.5rem;
}

.page-blog .blog-cta-banner .cta-white-btn:hover {
    color: var(--accent-dark, #E64A19);
}