@media (max-width: 1100px) {

    .site-header,
    .site-header.scrolled {
        height: 76px;
    }

    .site-header {
        overflow: visible;
    }

    .header-container {
        align-items: center;
        justify-content: space-between;
        padding: 0 20px;
    }

    .logo {
        width: auto;
        padding: 0;
    }

    .logo img {
        width: 125px;
    }

    .menu-toggle {
        display: block;
        order: 3;
    }

    .contact-button {
        order: 2;
        min-width: auto;
        min-height: 46px;
        margin-left: auto;
        padding: 0 18px;
    }

    .main-nav {
        position: fixed;
        top: 76px;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 999;

        display: block;

        width: 100%;
        height: calc(100dvh - 76px);

        padding: 20px 20px 60px;

        overflow-y: auto;
        overflow-x: hidden;

        background: #ffffff;

        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateX(100%);

        transition:
            opacity 250ms ease,
            visibility 250ms ease,
            transform 250ms ease;
    }

    .main-nav.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateX(0);
    }

    .nav-list {
        display: block;
        height: auto;
    }

    .nav-item {
        display: block;
        border-bottom: 1px solid #e8e8e8;
    }

    .site-header:not(.scrolled) .nav-link,
    .site-header.scrolled .nav-link,
    .main-nav .nav-link {
        justify-content: space-between;

        width: 100%;
        min-height: 62px;
        padding: 0;

        color: #111;
    }

    .nav-link::after {
        display: none;
    }

    @media (max-width: 1100px) {
    .arrow {
        display: inline-flex;
        align-items: center;
        justify-content: center;

        min-width: 44px;
        min-height: 44px;

        transition: transform 250ms ease;
    }

    .has-mega-menu.is-open .arrow {
        transform: rotate(180deg);
    }
}

    .mega-menu {
        position: static;

        display: none;
        visibility: visible;

        padding: 15px 0 25px;
        border: 0;
        box-shadow: none;

        opacity: 1;
        transform: none;
    }

    .has-mega-menu.is-open .mega-menu {
        display: block;
    }

    .mega-menu-container {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    @media (max-width: 1100px) {

        .mega-menu-container,
        .modifications-menu .mega-menu-container {
            grid-template-columns: 1fr;
            gap: 25px;
        }

        .mega-column,
        .modifications-menu .mega-column {
            width: 100%;
        }
    }

    .modifications-menu .mega-menu-container {
        grid-template-columns: 1fr;
    }

    .mega-highlight {
        margin-top: 5px;
    }

    .menu-toggle.is-active span:nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }

    .menu-toggle.is-active span:nth-child(2) {
        opacity: 0;
    }

    .menu-toggle.is-active span:nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }

    .hero {
        padding-top: 140px;
    }
}


@media (max-width: 650px) {

    .header-container {
        padding: 0 14px;
    }

    .logo img {
        width: 108px;
    }

    .contact-button {
        min-height: 42px;
        padding: 0 13px;
        font-size: 11px;
    }

    .menu-toggle {
        width: 42px;
    }

    .hero {
        align-items: flex-end;

        min-height: 820px;
        padding: 130px 20px 115px;

        background-position: center;
    }

    .hero-overlay {
        background: rgba(0, 0, 0, 0.62);
    }

    .hero-kicker {
        font-size: 11px;
        letter-spacing: 0.12em;
    }

    .hero-kicker::before {
        width: 25px;
        margin-right: 8px;
    }

    .hero h1 {
        font-size: 42px;
    }

    .hero-description {
        font-size: 16px;
    }

    .hero-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .button {
        width: 100%;
    }

    .presentation {
        padding: 75px 20px;
    }

    .presentation p:not(.section-kicker) {
        font-size: 17px;
    }
}

@media (max-width: 850px) {

    .section-heading {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .products-grid {
        grid-template-columns: 1fr;
    }

    .product-card {
        min-height: 420px;
    }
}


@media (max-width: 650px) {

    .products-section {
        padding: 75px 20px;
    }

    .product-card {
        min-height: 360px;
    }

    .product-card-content {
        padding: 25px;
    }
}

@media (max-width: 1000px) {

    .company-section {
        padding: 95px 30px;
    }

    .company-container {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .company-image-wrapper,
    .company-image {
        min-height: 520px;
    }
}


@media (max-width: 650px) {

    .company-section {
        padding: 75px 20px;
    }

    .company-container {
        gap: 40px;
    }

    .company-image-wrapper,
    .company-image {
        min-height: 390px;
    }

    .company-image-label {
        min-width: 145px;
        padding: 18px 20px;
    }

    .company-image-label strong {
        font-size: 25px;
    }

    .company-content h2 {
        font-size: 38px;
    }

    .company-introduction {
        font-size: 18px;
    }

    .company-values {
        grid-template-columns: 1fr;
    }

    .company-value {
        padding: 20px 0;
        border-right: 0;
        border-bottom: 1px solid #dddddd;
    }

    .company-value:last-child {
        border-bottom: 0;
    }

    .company-button {
        width: 100%;
    }
}

@media (max-width: 1100px) {

    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}


@media (max-width: 850px) {

    .services-heading {
        grid-template-columns: 1fr;
        gap: 25px;
    }
}


@media (max-width: 650px) {

    .services-section {
        padding: 80px 20px;
    }

    .services-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: 240px;
    }

    .services-action {
        justify-content: stretch;
    }

    .services-button {
        width: 100%;
    }
}

/* ==================================================
   RÉALISATIONS — RESPONSIVE
================================================== */

@media (max-width: 950px) {

    .projects-section {
        padding: 100px 30px;
    }

    .projects-heading {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .projects-introduction {
        max-width: 680px;
    }

    .project-card-large,
    .project-card-small {
        grid-column: span 6;
    }

    .project-card {
        min-height: 380px;
    }
}


@media (max-width: 650px) {

    .projects-section {
        padding: 80px 20px;
    }

    .projects-heading {
        margin-bottom: 40px;
    }

    .projects-heading h2 {
        font-size: 38px;
    }

    .projects-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .project-card-large,
    .project-card-small {
        grid-column: auto;
    }

    .project-card {
        min-height: 360px;
    }

    .project-content {
        right: 70px;
        bottom: 25px;
        left: 24px;
    }

    .project-content h3 {
        font-size: 27px;
    }

    .project-arrow {
        right: 22px;
        bottom: 22px;

        width: 40px;
        height: 40px;
    }

    .projects-action {
        justify-content: stretch;
        margin-top: 35px;
    }

    .projects-button {
        width: 100%;
    }
}

/* ==================================================
   APPEL AU CONTACT — RESPONSIVE
================================================== */

@media (max-width: 800px) {

    .contact-cta {
        min-height: 580px;
        padding: 95px 30px;
    }

    .contact-cta-overlay {
        background: rgba(10, 10, 10, 0.82);
    }

    .contact-cta-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 30px;
    }
}


@media (max-width: 650px) {

    .contact-cta {
        min-height: 550px;
        padding: 80px 20px;
    }

    .contact-cta h2 {
        font-size: 44px;
    }

    .contact-cta-text {
        font-size: 17px;
    }

    .contact-cta-button {
        width: 100%;
    }
}

/* ==================================================
   FOOTER — RESPONSIVE
================================================== */

@media (max-width: 1000px) {

    .footer-main {
        grid-template-columns: repeat(2, 1fr);
        gap: 55px;
    }

    .footer-company {
        grid-column: span 2;
    }
}


@media (max-width: 650px) {

    .site-footer {
        padding: 70px 20px 25px;
    }

    .footer-main {
        grid-template-columns: 1fr;
        gap: 45px;

        padding-bottom: 50px;
    }

    .footer-company {
        grid-column: auto;
    }

    .footer-bottom {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }

    .footer-legal {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }
}

@media (max-width:768px){

    .page-hero{

        min-height:50vh;

        padding:140px 20px 80px;
    }

}

/* ==================================================
   COMPANY INTRO — RESPONSIVE
================================================== */

@media (max-width: 1000px) {

    .company-intro {
        padding: 100px 30px;
    }

    .company-intro-container {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .company-intro-image,
    .company-intro-image img {
        min-height: 500px;
    }

    .company-intro-content {
        max-width: 760px;
    }
}

@media (max-width: 650px) {

    .company-intro {
        padding: 80px 20px;
    }

    .company-intro-container {
        gap: 45px;
    }

    .company-intro-image,
    .company-intro-image img {
        min-height: 380px;
    }

    .company-intro-highlights {
        grid-template-columns: 1fr;
        gap: 25px;
    }
}

/* ==================================================
   COMPANY HISTORY — RESPONSIVE
================================================== */

@media (max-width: 900px) {

    .company-history {
        padding: 100px 30px;
    }

    .company-history-heading {
        margin-bottom: 70px;
    }

    .history-timeline {
        grid-template-columns: 1fr;
        gap: 55px;

        padding-left: 42px;
    }

    .history-timeline-line {
        top: 0;
        bottom: 0;
        left: 10px;
        right: auto;

        width: 2px;
        height: auto;
    }

    .history-timeline-progress {
        width: 100%;
        height: 100%;

        transform: scaleY(0);
        transform-origin: top center;
    }

    .history-timeline.is-visible .history-timeline-progress {
        transform: scaleY(1);
    }

    .history-step {
        padding-top: 0;
    }

    .history-dot {
        top: 0;
        left: -42px;
    }
}

@media (max-width: 650px) {

    .company-history {
        padding: 80px 20px;
    }

    .company-history-heading {
        margin-bottom: 55px;
    }

    .history-timeline {
        gap: 45px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .history-timeline-progress,
    .history-step,
    .history-dot {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ==================================================
   COMPANY VALUES — RESPONSIVE
================================================== */

@media (max-width: 1300px) {

    .enterprise-values-container {
        grid-template-columns: 1fr;
        gap: 80px;
    }

    .enterprise-values-heading {
        position: static;
        max-width: 850px;
    }

    .enterprise-values-heading h2 {
        max-width: 760px;
    }
}

@media (max-width: 800px) {

    .enterprise-values {
        padding: 100px 25px;
    }

    .enterprise-value-item {
        grid-template-columns: minmax(0, 1fr) 160px;
        gap: 35px;

        min-height: 290px;
        padding: 50px 0 50px 55px;
    }

    .enterprise-value-number {
        top: 57px;
    }

    .enterprise-value-item:first-child .enterprise-value-number {
        top: 8px;
    }

    .enterprise-value-image {
        width: 160px;
    }
}

@media (max-width: 580px) {

    .enterprise-values {
        padding: 80px 20px;
    }

    .enterprise-values-container {
        gap: 55px;
    }

    .enterprise-value-item {
        grid-template-columns: 1fr;
        gap: 30px;

        padding: 45px 0 45px 42px;
    }

    .enterprise-value-number {
        top: 52px;
    }

    .enterprise-value-image {
        width: 100%;
        aspect-ratio: 16 / 9;
    }

    .enterprise-values-heading h2 {
        font-size: clamp(2.5rem, 12vw, 3.5rem);
    }
}

@media (prefers-reduced-motion: reduce) {

    .enterprise-value-item,
    .enterprise-value-line,
    .enterprise-value-image,
    .enterprise-value-image img,
    .enterprise-value-number,
    .enterprise-value-content h3 {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .enterprise-value-image {
        clip-path: none;
    }
}

@media (max-width: 1300px) {

    .enterprise-workshop-container {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr);
        gap: 70px;
    }

    .enterprise-workshop-image,
    .enterprise-workshop-image img {
        min-height: 620px;
    }
}

@media (max-width: 1050px) {

    .enterprise-workshop {
        padding: 120px 40px;
    }

    .enterprise-workshop-container {
        grid-template-columns: 1fr;
        gap: 70px;
    }

    .enterprise-workshop-image {
        min-height: 560px;
    }

    .enterprise-workshop-image img {
        min-height: 560px;
    }

    .enterprise-workshop-content {
        max-width: 850px;
    }

    .enterprise-workshop-content h2 {
        max-width: 760px;
    }
}

@media (max-width: 700px) {

    .enterprise-workshop {
        padding: 95px 24px;
    }

    .enterprise-workshop-container {
        gap: 55px;
    }

    .enterprise-workshop-image {
        min-height: 440px;
    }

    .enterprise-workshop-image img {
        min-height: 440px;
    }

    .enterprise-workshop-content h2 {
        font-size: clamp(2.6rem, 10vw, 3.8rem);
    }

    .enterprise-workshop-intro {
        margin-bottom: 42px;
    }

    .enterprise-workshop-feature {
        padding: 26px 0 28px 34px;
    }

    .enterprise-workshop-feature::before {
        top: 34px;
        width: 14px;
    }
}

@media (max-width: 480px) {

    .enterprise-workshop {
        padding: 80px 20px;
    }

    .enterprise-workshop-image {
        min-height: 340px;
    }

    .enterprise-workshop-image img {
        min-height: 340px;
    }

    .enterprise-workshop-feature {
        padding-left: 30px;
    }
}

/* ==================================================
   ACCESSIBILITÉ
================================================== */

@media (prefers-reduced-motion: reduce) {

    .enterprise-workshop-image,
    .enterprise-workshop-image img,
    .enterprise-workshop-content,
    .enterprise-workshop-feature,
    .enterprise-workshop-feature::before,
    .enterprise-workshop-feature h3 {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .enterprise-workshop-image {
        clip-path: none;
    }
}

@media (max-width: 1250px) {

    .enterprise-stats-heading {
        grid-template-columns: 1fr;
        row-gap: 35px;
    }

    .enterprise-stats-heading .section-line,
    .enterprise-stats-heading .section-label,
    .enterprise-stats-heading h2,
    .enterprise-stats-heading > p:last-child {
        grid-column: 1;
    }

    .enterprise-stats-heading > p:last-child {
        max-width: 760px;
        margin-bottom: 0;
    }

    .enterprise-stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .enterprise-stat-item:nth-child(2) {
        border-right: none;
    }

    .enterprise-stat-item:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    }
}

@media (max-width: 700px) {

    .enterprise-stats {
        padding: 100px 24px;
    }

    .enterprise-stats-heading {
        margin-bottom: 65px;
    }

    .enterprise-stats-heading h2 {
        font-size: clamp(2.7rem, 11vw, 4rem);
    }

    .enterprise-stats-grid {
        grid-template-columns: 1fr;
    }

    .enterprise-stat-item {
        min-height: auto;
        padding: 50px 0;

        border-right: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    }

    .enterprise-stat-item:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(255, 255, 255, 0.16);
    }

    .enterprise-stat-item:last-child {
        border-bottom: none;
    }

    .enterprise-stat-item p {
        max-width: 520px;
    }
}

/* ==================================================
   ACCESSIBILITÉ
================================================== */

@media (prefers-reduced-motion: reduce) {

    .enterprise-stats-heading,
    .enterprise-stat-item,
    .enterprise-stat-number,
    .enterprise-stat-line,
    .enterprise-stat-item h3 {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .enterprise-stat-line {
        transform: scaleX(1);
    }
}

@media (max-width: 1050px) {

    .enterprise-final-cta-container {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .enterprise-final-cta-content {
        max-width: 700px;
        padding-bottom: 0;
    }
}

@media (max-width: 700px) {

    .enterprise-final-cta {
        padding: 100px 24px;
    }

    .enterprise-final-cta h2 {
        font-size: clamp(2.8rem, 14vw, 4.6rem);
    }

    .enterprise-final-cta-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .enterprise-final-cta-button {
        width: 100%;
    }
}

/* ==================================================
   ACCESSIBILITÉ
================================================== */

@media (prefers-reduced-motion: reduce) {

    .enterprise-final-cta-heading,
    .enterprise-final-cta-content,
    .enterprise-final-cta-line,
    .enterprise-final-cta-button,
    .enterprise-final-cta-button svg,
    .enterprise-final-cta-link::after {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

@media (max-width: 900px) {

    .products-hero {
        min-height: 760px;
        padding-top: 170px;
        padding-bottom: 100px;
    }

    .products-hero-overlay {
        background:
            linear-gradient(
                90deg,
                rgba(7, 7, 7, 0.88) 0%,
                rgba(7, 7, 7, 0.63) 100%
            ),
            linear-gradient(
                0deg,
                rgba(7, 7, 7, 0.78) 0%,
                rgba(7, 7, 7, 0.1) 65%
            );
    }

    .products-hero-breadcrumb {
        bottom: calc(100% + 50px);
    }

    .products-hero-scroll {
        display: none;
    }
}

@media (max-width: 600px) {

    .products-hero {
        min-height: 700px;
        padding: 150px 24px 75px;
    }

    .products-hero-background img {
        object-position: 58% center;
    }

    .products-hero-breadcrumb {
        bottom: calc(100% + 40px);

        gap: 9px;

        font-size: 0.7rem;
    }

    .products-hero-line {
        width: 55px;
    }

    .products-hero h1 {
        font-size: clamp(3rem, 14vw, 4.8rem);
        line-height: 0.98;
    }

    .products-hero-description {
        margin-top: 28px;

        font-size: 0.98rem;
        line-height: 1.7;
    }
}

/* ==================================================
   ACCESSIBILITÉ
================================================== */

@media (prefers-reduced-motion: reduce) {

    .products-hero-breadcrumb,
    .products-hero-line,
    .products-hero-label,
    .products-hero h1,
    .products-hero-description,
    .products-hero-scroll,
    .products-hero-scroll svg {
        opacity: 1;
        transform: none;
        animation: none;
        transition: none;
    }
}

@media (max-width: 1050px) {

    .products-introduction-container {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .products-introduction-heading,
    .products-introduction-content {
        grid-column: 1;
    }

    .products-introduction-heading {
        grid-row: 1;
    }

    .products-introduction-content {
        grid-row: 2;
        padding-top: 0;
    }
}

@media (max-width: 1050px) {

    .products-introduction-container {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .products-introduction-content {
        max-width: 850px;
        padding-top: 0;
    }

    .products-introduction h2 {
        max-width: 850px;
    }
}

@media (max-width: 600px) {

    .products-introduction {
        padding:
            85px
            24px;
    }

    .products-introduction-container {
        gap: 45px;
    }

    .products-introduction-label {
        margin-bottom: 22px;
        padding-left: 43px;

        font-size: 0.72rem;
    }

    .products-introduction-label::before {
        width: 28px;
    }

    .products-introduction h2 {
        font-size: clamp(2.7rem, 13vw, 4.2rem);
    }

    .products-introduction-lead {
        font-size: 1.35rem;
    }

    .products-introduction-text {
        margin-top: 25px;

        font-size: 0.98rem;
        line-height: 1.7;
    }

    .products-introduction-details {
        margin-top: 48px;
    }

    .products-introduction-detail {
        grid-template-columns: 45px 1fr;
        gap: 15px;

        min-height: 82px;
    }
}

/* ==================================================
   ACCESSIBILITÉ
================================================== */

@media (prefers-reduced-motion: reduce) {

    .products-introduction-label,
    .products-introduction-label::before,
    .products-introduction h2,
    .products-introduction-lead,
    .products-introduction-text,
    .products-introduction-detail {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

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

@media (max-width: 1100px) {

    .products-family {
        overflow: hidden;
    }

    .products-family-container {
        grid-template-columns: 1fr;
        gap: 70px;
    }

    .products-family-content {
        max-width: 850px;
        padding-block: 0;
    }

    .products-family-media {
        position: relative;
        top: auto;

        width: 100%;
        height: clamp(520px, 72vw, 700px);
        min-height: 0;
        max-height: none;
    }
}

@media (max-width: 600px) {

    .products-family-container {
        gap: 50px;
    }

    .products-family-media {
        height: clamp(420px, 115vw, 560px);
    }
}
/* ==================================================
   ACCESSIBILITÉ
================================================== */

@media (prefers-reduced-motion: reduce) {

    .products-family-topline,
    .products-family-category::before,
    .products-family h2,
    .products-family-lead,
    .products-family-text,
    .products-family-feature,
    .products-family-link,
    .products-family-media,
    .products-family-image img {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

.products-family-reverse
.products-family-content,
.products-family-reverse
.products-family-media {
    grid-column: auto;
    grid-row: auto;
}

@media (max-width: 1100px) {
    .products-family-container {
        grid-template-columns: 1fr;
        gap: 60px;
    }

    .products-family-content,
    .products-family-media,
    .products-family.products-family-reverse
    .products-family-content,
    .products-family.products-family-reverse
    .products-family-media {
        grid-column: 1;
        grid-row: auto;
    }

    .products-family-media {
        position: relative;
        top: auto;

        width: 100%;
        height: clamp(480px, 70vw, 720px);
        min-height: 0;
        max-height: none;
    }
}

@media (max-width: 1000px) {
    .products-final-main {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .products-final-action {
        padding-top: 40px;
        padding-left: 0;

        border-top: 1px solid rgba(17, 17, 17, 0.18);
        border-left: 0;
    }

    .products-final-points {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .products-final-points {
        grid-template-columns: 1fr;
    }

    .products-final-point {
        min-height: 90px;
    }
}

@media (max-width: 1100px) {
    .manipro-hero {
        min-height: auto;
    }

    .manipro-hero-container {
        grid-template-columns: 1fr;
        gap: 40px;
    }

    .manipro-hero-content {
        max-width: 800px;
    }

    .manipro-hero-visual {
        min-height: clamp(430px, 70vw, 700px);
    }

    .manipro-hero-visual img {
        max-height: 650px;
    }

}

@media (max-width: 650px) {
    .manipro-hero {
        padding:
            120px 20px
            90px;
    }

    .manipro-hero h1 {
        font-size: clamp(4.2rem, 21vw, 7rem);
    }

    .manipro-hero-lead {
        font-size: 1.05rem;
    }

    .manipro-hero-actions {
        flex-direction: column;
    }

    .manipro-hero-button {
        width: 100%;
    }

    .manipro-hero-visual {
        min-height: 380px;
    }

    .manipro-hero-visual img {
        width: 115%;
        max-width: none;
    }

    .manipro-hero-scroll {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .manipro-hero-visual img {
        animation: none;
    }

    .manipro-hero-button,
    .manipro-hero-scroll {
        transition: none;
    }
}

/* =========================================
   MANIPRO — PRÉSENTATION RESPONSIVE
========================================= */

@media (max-width: 950px) {
    .manipro-intro-container {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .manipro-intro-content {
        max-width: 720px;
        padding-top: 0;
    }
}

@media (max-width: 620px) {
    .manipro-intro {
        padding: 5rem 0;
    }

    .manipro-intro-container {
        width: min(88%, 1500px);
    }

    .manipro-intro-heading h2 span {
        display: inline;
    }

    .manipro-intro-features {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .manipro-intro-feature {
        display: grid;
        grid-template-columns: 45px 1fr;
        align-items: start;
        gap: 1rem;
    }

    .manipro-intro-feature span {
        margin-bottom: 0;
    }
}

@media (max-width: 768px) {
  .manipro-viewer__card {
    border-radius: 20px;
  }

  .manipro-viewer__stage {
    min-height: 500px;
  }

  .manipro-viewer__model {
    height: 500px;
  }

  .manipro-viewer__fullscreen {
    top: 0.85rem;
    right: 0.85rem;
  }

  .manipro-viewer__loading-note {
    right: 0.85rem;
    bottom: 0.85rem;
    left: 0.85rem;
    border-radius: 12px;
    text-align: center;
  }

  .manipro-viewer__controls {
    flex-direction: column;
    align-items: stretch;
  }

  .manipro-viewer__control {
    justify-content: center;
  }

  .manipro-viewer__reset {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .manipro-viewer__stage {
    min-height: 420px;
  }

  .manipro-viewer__model {
    height: 420px;
  }

  .manipro-viewer__fullscreen {
    padding: 0.65rem 0.8rem;
    font-size: 0.8rem;
  }
}

@media (max-width: 768px) {
  .manipro-features__hint {
    bottom: -42px;
    width: 100%;
    justify-content: center;
    padding-inline: 1rem;
    text-align: center;
    white-space: normal;
  }
}

@media (max-width:768px){

.manipro-features__hint{
    display:none;
}

}

@media (max-width:991px){

.manipro-options__grid{

    grid-template-columns:1fr;

}

.manipro-option-card__image{

    height:220px;

}

}

@media (max-width:576px){

.manipro-option-card{

    padding:1.5rem;

}

.manipro-option-card__image{

    height:180px;

}

.manipro-option-card__title{

    font-size:1.45rem;

}

}

/* =========================================
   MANIPRO — PASTILLES INTERACTIVES
========================================= */

@media (max-width: 1100px) {
  .manipro-features__layout {
    grid-template-columns: 1fr;
  }

  .manipro-features__visual {
    position: relative;
    top: auto;
    min-height: auto;
    padding-bottom: 4rem;
  }

  .manipro-feature-card {
    width: min(760px, 100%);
    margin: 0 auto;
  }
}

@media (max-width: 768px) {
  .manipro-features__heading {
    margin-bottom: 2.5rem;
  }

  .manipro-features__visual {
    padding-bottom: 4.5rem;
  }

  .manipro-hotspot {
    width: 48px;
    height: 48px;
  }

  .manipro-hotspot::before,
  .manipro-hotspot::after {
    width: 48px;
    height: 48px;
  }

  .manipro-hotspot__dot {
    inset: 10px;
    font-size: 0.7rem;
  }

  .manipro-feature-card {
    border-radius: 22px;
  }

  .manipro-feature-card__image {
    min-height: 230px;
  }

  .manipro-feature-card__image img {
    height: 260px;
  }

  .manipro-features__hint {
    width: 100%;
    justify-content: center;
    text-align: center;
    white-space: normal;
  }
}

@media (max-width: 520px) {
  .manipro-features {
    padding-inline: 0;
  }

  .manipro-features__visual {
    margin-inline: -0.5rem;
  }

  .manipro-hotspot {
    width: 42px;
    height: 42px;
  }

  .manipro-hotspot::before,
  .manipro-hotspot::after {
    width: 42px;
    height: 42px;
  }

  .manipro-hotspot__dot {
    inset: 8px;
    font-size: 0.65rem;
  }

  .manipro-feature-card {
    padding: 1.2rem;
    border-radius: 18px;
  }

  .manipro-feature-card__top {
    margin-bottom: 1.5rem;
  }

  .manipro-feature-card__image {
    margin-top: 1.5rem;
    border-radius: 16px;
  }

  .manipro-feature-card__image img {
    height: 220px;
    padding: 0.6rem;
  }

  .manipro-feature-card__advantage {
    padding: 1rem;
  }
}

/* Accessibilité : désactive les animations si demandé */
@media (prefers-reduced-motion: reduce) {
  .manipro-hotspot::before,
  .manipro-hotspot::after {
    animation: none;
  }

  .manipro-hotspot,
  .manipro-hotspot__pulse,
  .manipro-hotspot__dot,
  .manipro-feature-card__content,
  .manipro-feature-card__image,
  .manipro-feature-card__advantage {
    transition: none;
  }
}

/* =========================================
   MANIPRO — APERÇU GALERIE RESPONSIVE
========================================= */

@media (max-width:768px){

    .manipro-gallery-preview__item,
    .manipro-gallery-preview__item--large,
    .manipro-gallery-preview__item--video{
        grid-column:span 1;
        height:300px;
    }
}

@media (max-width:520px){

    .manipro-gallery-preview__item,
    .manipro-gallery-preview__item--large,
    .manipro-gallery-preview__item--video{
        height:240px;
    }

    .manipro-lightbox{
        padding:1rem;
    }

    .manipro-lightbox__close{
        top:14px;
        right:14px;
        width:42px;
        height:42px;
    }
}

/* ========================================
   PAGE JUMELAGES
======================================== */

@media (max-width:1100px){

    .jumelage-detail__layout,
    .jumelage-detail--reverse .jumelage-detail__layout{
        grid-template-columns:1fr;
    }

    .jumelage-detail--reverse .jumelage-detail__content,
    .jumelage-detail--reverse .jumelage-gallery{
        grid-column:auto;
        grid-row:auto;
    }
    .jumelage-detail__content{
        max-width:800px;
        padding-left:0;
    }

    .jumelage-gallery{
        position:relative;
        top:auto;
        transform:none;
        }

    .jumelage-gallery__slide{
        height:clamp(460px, 70vw, 680px);
    }

        .jumelage-detail--reverse .jumelage-detail__content,
    .jumelage-detail--reverse .jumelage-gallery{
        grid-column:auto;
        grid-row:auto;
    }

    .jumelage-detail--reverse .jumelage-gallery{
        transform:none;
    }

}

@media (max-width:700px){

    .jumelage-detail{
        scroll-margin-top:80px;
        padding:4rem 0;
    }

    .jumelage-detail__title{
        font-size:clamp(2.15rem, 11vw, 3.25rem);
    }

    .jumelage-detail__highlights{
        grid-template-columns:1fr;
    }

    .jumelage-detail__highlight{
        min-height:auto;
    }

    .jumelage-detail__kit{
        padding:1.4rem;
    }

    .jumelage-detail__kit-list{
        grid-template-columns:1fr;
    }

    .jumelage-detail__actions{
        align-items:stretch;
        flex-direction:column;
    }

    .jumelage-detail__button,
    .jumelage-detail__gallery-link{
        width:100%;
    }

    .jumelage-gallery__viewport{
        border-radius:20px;
    }

    .jumelage-gallery__slide{
        height:440px;
    }

    .jumelage-gallery__button{
        width:44px;
        height:44px;
    }

    .jumelage-gallery__button--prev{
        left:.75rem;
    }

    .jumelage-gallery__button--next{
        right:.75rem;
    }

    .jumelage-gallery__badge{
        top:1rem;
        left:1rem;
        gap:.55rem;
        padding:.6rem .7rem;
    }

    .jumelage-gallery__badge span{
        font-size:.65rem;
    }

    .jumelage-gallery__badge strong{
        padding-left:.55rem;
        font-size:.72rem;
    }

}

@media (max-width:480px){

    .jumelage-gallery__slide{
        height:360px;
    }

    .jumelage-gallery__button{
        top:auto;
        bottom:1rem;
        transform:none;
    }

    .jumelage-gallery__button--prev:hover{
        transform:translateX(-3px);
    }

    .jumelage-gallery__button--next:hover{
        transform:translateX(3px);
    }

}

@media (max-width:1100px){

    .jumelage-gallery{
        position:relative;
        top:auto;
    }

}

@media (max-width:1100px){

    .jumelage-versions{
        grid-template-columns:1fr;
    }

}

@media (max-width:768px){

    .jumelage-detail--tgd{
        padding:4.5rem 0;
    }

    .jumelage-version{
        padding:1.35rem;
    }

    .jumelage-version__header{
        align-items:flex-start;
        flex-direction:column;
        gap:.65rem;
    }

    .jumelage-version__power{
        white-space:normal;
    }

    .jumelage-detail__plus-heading{
        align-items:flex-start;
        flex-direction:column;
    }

}

@media (max-width:520px){

    .jumelage-detail__title-accent{
        display:block;
        margin-top:.2rem;
    }

    .jumelage-version__badge{
        right:.75rem;
    }

}

@media (max-width:768px){

    .jumelage-cta{
        padding:5rem 0;
    }

    .jumelage-cta__actions{
        flex-direction:column;
    }

    .jumelage-cta__button{
        width:100%;
    }

}

/* ==========================================================================
   Galerie
   ========================================================================== */

@media (max-width: 1100px){

    .gallery-item{
        grid-column:span 6;
    }

    .gallery-item:nth-child(7n + 1),
    .gallery-item:nth-child(7n + 5){
        grid-column:span 6;
    }

    .gallery-item:nth-child(7n + 1) .gallery-item__media,
    .gallery-item:nth-child(7n + 5) .gallery-item__media{
        aspect-ratio:4 / 3;
    }

}

@media (max-width: 768px){

    .gallery-page{
        padding:5rem 0;
    }

    .gallery-page__header{
        margin-bottom:2.5rem;
    }

    .gallery-filters{
        justify-content:flex-start;
        margin-bottom:2rem;
        overflow-x:auto;
        flex-wrap:nowrap;
        scrollbar-width:none;
    }

    .gallery-filters::-webkit-scrollbar{
        display:none;
    }

    .gallery-filter{
        flex:0 0 auto;
    }

    .gallery-grid{
        gap:1rem;
    }

    .gallery-item,
    .gallery-item:nth-child(7n + 1),
    .gallery-item:nth-child(7n + 5){
        grid-column:1 / -1;
    }

    .gallery-item__media,
    .gallery-item:nth-child(7n + 1) .gallery-item__media,
    .gallery-item:nth-child(7n + 5) .gallery-item__media{
        aspect-ratio:4 / 3;
    }

}

@media (max-width: 480px){

    .gallery-page__title{
        font-size:2.3rem;
    }

    .gallery-page__intro{
        font-size:.98rem;
    }

    .gallery-item__overlay{
        padding:1.15rem;
    }

    .gallery-item__title{
        font-size:1rem;
    }

}

/* ==========================================================================
   Lightbox galerie
   ========================================================================== */

@media (max-width: 768px){

    .gallery-lightbox{
        padding:1rem;
    }

    .gallery-lightbox__dialog{
        width:100%;
        max-height:calc(100vh - 2rem);
    }

    .gallery-lightbox__figure{
        max-width:100%;
        max-height:calc(100vh - 2rem);
    }

    .gallery-lightbox__image{
        max-height:calc(100vh - 8rem);
        border-radius:.5rem;
    }

    .gallery-lightbox__caption{
        padding:0 3.5rem;
        font-size:.95rem;
    }

    .gallery-lightbox__close{
        top:.5rem;
        right:.5rem;
        width:44px;
        height:44px;
    }

    .gallery-lightbox__nav{
        top:auto;
        bottom:.25rem;
        width:46px;
        height:46px;
        transform:none;
    }

    .gallery-lightbox__nav:hover{
        transform:scale(1.06);
    }

    .gallery-lightbox__nav--prev{
        left:.5rem;
    }

    .gallery-lightbox__nav--next{
        right:.5rem;
    }

}

@media (max-width: 480px){

    .gallery-lightbox__caption{
        padding:0 3rem;
        font-size:.9rem;
    }

}

@media (max-width: 768px){

    .gallery-subfilters{
        justify-content:flex-start;
        margin:-.75rem 0 2rem;
        overflow-x:auto;
        flex-wrap:nowrap;
        scrollbar-width:none;
    }

    .gallery-subfilters::-webkit-scrollbar{
        display:none;
    }

    .gallery-subfilter{
        flex:0 0 auto;
    }

    .gallery-item__button:hover{
    transform:none;
    }

    .gallery-item__expand{
        top:.75rem;
        right:.75rem;
        width:40px;
        height:40px;
        opacity:1;
        transform:none;
    }

    .gallery-item__content{
        padding:1.1rem 1.15rem 1.25rem;
    }

    .gallery-item__label{
        font-size:.7rem;
    }

    .gallery-item__title{
        font-size:1.05rem;
    }

}

/* ==========================================================================
   Finitions galerie
   ========================================================================== */

@media (max-width: 900px){

    .gallery-cta__inner{
        padding:3rem 2rem;
        align-items:flex-start;
        flex-direction:column;
        gap:2rem;
    }

}

@media (max-width: 768px){

    .gallery-empty{
        margin-top:2.5rem;
        padding:2.5rem 1.25rem;
    }

    .gallery-cta{
        padding-bottom:5rem;
    }

    .gallery-cta__inner{
        padding:2.5rem 1.5rem;
    }

    .gallery-cta__actions{
        width:100%;
        flex-direction:column;
    }

    .gallery-cta__link{
        width:100%;
    }

    .gallery-load-more{
        margin-top:2.25rem;
    }

    .gallery-load-more__button{
        width:100%;
    }

}

@media (prefers-reduced-motion: reduce){

    .gallery-grid,
    .gallery-lightbox__image{
        transition:none;
    }

}

/* ==========================================================
   PAGE CONTACT
   ========================================================== */

@media (max-width: 1100px) {

    .contact-details__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .contact-card:last-child {
        grid-column: 1 / -1;
    }

    .contact-main__layout {
        grid-template-columns: minmax(0, 1fr) 360px;
        gap: 30px;
    }

    .contact-form-wrapper {
        padding: 44px;
    }

    .contact-visual__caption {
        padding: 30px;
    }

    .contact-cta__content {
        align-items: flex-start;
        flex-direction: column;
    }
}


@media (max-width: 900px) {

    .contact-hero {
        padding: 65px 0 60px;
    }

    .contact-details {
        padding-bottom: 80px;
    }

    .contact-main,
    .contact-location {
        padding: 85px 0;
    }

    .contact-main__layout {
        grid-template-columns: 1fr;
    }

    .contact-visual__figure {
        position: relative;
        top: auto;
        min-height: 520px;
    }

    .contact-location__heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .contact-location__map {
        height: 440px;
    }
}


@media (max-width: 700px) {

    .contact-details__grid {
        grid-template-columns: 1fr;
    }

    .contact-card:last-child {
        grid-column: auto;
    }

    .contact-card {
        min-height: 245px;
        padding: 30px;
    }

    .contact-form-wrapper {
        padding: 34px 26px;
    }

    .contact-form__grid {
        grid-template-columns: 1fr;
    }

    .contact-form__field--full {
        grid-column: auto;
    }

    .contact-location__address {
        align-items: flex-start;
        flex-direction: column;
    }

    .contact-cta {
        padding: 80px 0;
    }

    .contact-cta .container {
        padding-right: 20px;
        padding-left: 20px;
    }

    .contact-cta__actions {
        flex-direction: column;
    }

    .contact-cta__button {
        width: 100%;
        max-width: 360px;
    }
}


@media (max-width: 520px) {

    .contact-hero {
        padding: 50px 0 48px;
    }

    .contact-hero__title {
        font-size: 2.8rem;
    }

    .contact-details {
        padding-bottom: 65px;
    }

    .contact-card {
        display: block;
        min-height: auto;
        padding: 26px;
    }

    .contact-card__icon {
        margin: 0 0 23px;
    }

    .contact-card__link {
        margin-top: 28px;
        padding-top: 0;
    }

    .contact-main,
    .contact-location {
        padding: 65px 0;
    }

    .contact-form-wrapper {
        padding: 30px 20px;
    }

    .contact-form__submit {
        width: 100%;
    }

    .contact-visual__figure {
        min-height: 440px;
    }

    .contact-visual__caption {
        padding: 25px;
    }

    .contact-location__map {
        height: 370px;
    }

    .contact-location__button {
        width: 100%;
        justify-content: center;
    }

    .contact-location__address {
        padding: 25px;
    }
}

@media (max-width: 1100px) {

    .contact-hero__container {
        grid-template-columns: 1fr 0.8fr;
        gap: 50px;
    }

    .contact-info-grid {
        grid-template-columns: 1fr;
    }

    .contact-info-card {
        min-height: auto;
    }
}

@media (max-width: 800px) {

    .contact-hero__container {
        grid-template-columns: 1fr;
    }

    .contact-hero__visual {
        min-height: 360px;
    }

    .contact-hero__title {
        font-size: clamp(3.5rem, 16vw, 5.5rem);
    }
}

@media (max-width: 560px) {

    .contact-hero__actions {
        flex-direction: column;
    }

    .contact-hero__actions .btn {
        width: 100%;
    }

    .contact-hero__visual {
        min-height: 300px;
    }
}

@media (max-width: 900px) {

    .products-introduction-container {
        grid-template-columns: 1fr;
        gap: 55px;
    }

    .products-introduction-visual {
        max-width: none;
        height: clamp(280px, 58vw, 480px);
        margin-top: 40px;
    }
}