/* =========================================
   KASTOR CUSTOM
   ========================================= */

:root{
    --kastor-blood: #4a0202;
    --kastor-blood-dark: #2a0000;
    --kastor-blood-deep: #1a0000;
    --kastor-blood-soft: #650404;
    --kastor-blood-border: rgba(255, 255, 255, 0.10);
    --kastor-blood-overlay: rgba(42, 0, 0, 0.78);

    --kastor-accent-red: #b31212;
    --kastor-accent-red-dark: #7a0000;
    --kastor-accent-red-deep: #4a0202;
    --kastor-accent-red-soft: #fbe8e8;

    --accent-color: var(--kastor-accent-red) !important;
    --primary-color: var(--kastor-accent-red) !important;
    --theme-color: var(--kastor-accent-red) !important;
}

/* =========================================
   HERO WITHOUT STATS
   ========================================= */

.hero-counter-box-no-stats{
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    min-height: 100%;
}

@media (max-width: 1199.98px){
    .hero-counter-box-no-stats{
        justify-content: flex-start;
        margin-top: 30px;
    }
}

/* =========================================
   COUNTRY SORT SECTION
   ========================================= */

.country-sort-section{
    padding-top: 16px;
    padding-bottom: 5px !important;
}

.country-sort-section .service-item-metal{
    text-align: center;
    padding-top: 0;
    padding-bottom: 0;
    min-height: auto;
}

.country-sort-section .service-item-header-metal{
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0;
}

.country-sort-section .service-item-body-metal{
    padding-top: 0;
    margin-top: -30px;
}

.country-sort-section .service-item-content-metal{
    padding-top: 0;
}

.country-sort-section .service-item-content-metal h2{
    margin-top: 0;
    margin-bottom: 2px;
}

.country-sort-section .country-counter-value{
    margin: 0 0 2px 0;
    color: var(--kastor-accent-red) !important;
    font-size: 30px;
    line-height: 30px;
    font-weight: 700;
}

.country-sort-section .country-counter-value .counter{
    color: inherit;
    font-size: inherit;
    line-height: inherit;
    font-weight: inherit;
}

.country-sort-section .service-item-btn-metal{
    margin-top: 0;
}

.country-flag-circle{
    width: 40px;
    height: 40px;
    background: transparent;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    overflow: visible;
    box-shadow: none;
    border-radius: 0;
}

.country-flag-img{
    width: 50px;
    height: 50px;
    object-fit: contain;
    display: block;
}

.country-sort-section .country-card-button{
    cursor: pointer;
}

.country-sort-section .country-card-button:focus{
    outline: 2px solid var(--kastor-accent-red) !important;
    outline-offset: 4px;
}

@media (max-width: 767.98px){
    .country-sort-section .service-item-body-metal{
        margin-top: -15px;
    }

    .country-sort-section .country-counter-value{
        font-size: 26px;
        line-height: 26px;
    }

    .country-flag-circle{
        width: 28px;
        height: 28px;
    }

    .country-flag-img{
        width: 28px;
        height: 28px;
    }
}

/* =========================================
   HEADER / MENU FIXE ET CENTRÉ
   ========================================= */

body{
    padding-top: 150px;
}

.main-header{
    width: 100%;
    z-index: 99999;
}

.main-header .header-sticky{
    position: fixed !important;
    top: 24px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: calc(100% - 220px) !important;
    max-width: 1380px !important;
    z-index: 99999 !important;
    background: #ffffff !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    border-radius: 34px;
    overflow: visible !important;
    isolation: isolate;
}

.main-header .navbar{
    min-height: 110px;
    padding-top: 0;
    padding-bottom: 0;
}

.main-header .navbar .container{
    position: relative;
    display: flex;
    align-items: center;
    min-height: 110px;
    max-width: 100%;
    padding-left: 34px;
    padding-right: 34px;
}

.main-header .navbar-brand{
    position: absolute;
    left: 34px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 100001;
    margin: 0;
}

.main-header .navbar-brand img{
    max-height: 72px;
    width: auto;
}

/* =========================================
   MENU DESKTOP ALIGNÉ À DROITE
   ========================================= */

@media (min-width: 992px){
    .main-header #menu,
    .main-header .navbar-nav{
        position: absolute;
        right: 34px;
        left: auto;
        top: 50%;
        transform: translateY(-50%);
        margin: 0 !important;
        display: flex !important;
        align-items: center;
        justify-content: flex-end !important;
        flex-wrap: nowrap;
        width: auto;
        float: none;
        text-align: right;
        gap: 14px;
    }

    .kastor-mobile-menu-toggle{
        display: none !important;
    }
}

/* =========================================
   MENU ITEMS
   ========================================= */

.navbar-nav .nav-link{
    position: relative;
    font-size: 18px;
    font-weight: 600;
    padding-left: 8px;
    padding-right: 8px;
    white-space: nowrap;
}

.navbar-nav .nav-link.active{
    color: var(--kastor-accent-red) !important;
    font-weight: 700;
}

.navbar-nav .nav-link.active::after{
    content: "";
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: -6px;
    height: 3px;
    background: var(--kastor-accent-red) !important;
    border-radius: 999px;
}

/* =========================================
   MENU MOBILE UNIQUE
   ========================================= */

.responsive-menu,
.navbar-toggle,
.slicknav_menu{
    display: none !important;
}

.kastor-mobile-menu-toggle{
    display: none;
    width: 46px;
    height: 46px;
    border: 0;
    border-radius: 10px;
    background: var(--kastor-accent-red) !important;
    padding: 10px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    z-index: 100001;
}

.kastor-mobile-menu-toggle span{
    display: block;
    width: 23px;
    height: 3px;
    background: #ffffff !important;
    border-radius: 999px;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.kastor-mobile-menu-toggle.is-active span:nth-child(1){
    transform: translateY(8px) rotate(45deg);
}

.kastor-mobile-menu-toggle.is-active span:nth-child(2){
    opacity: 0;
}

.kastor-mobile-menu-toggle.is-active span:nth-child(3){
    transform: translateY(-8px) rotate(-45deg);
}

/* =========================================
   RESPONSIVE HEADER
   ========================================= */

@media (max-width: 1199.98px){
    .main-header .header-sticky{
        width: calc(100% - 120px) !important;
    }
}

@media (max-width: 991.98px){
    body{
        padding-top: 110px;
    }

    .main-header .header-sticky{
        top: 12px !important;
        width: calc(100% - 24px) !important;
        border-radius: 22px;
        overflow: visible !important;
    }

    .main-header .navbar{
        min-height: 88px;
    }

    .main-header .navbar .container{
        position: relative;
        min-height: 88px;
        padding-left: 20px;
        padding-right: 20px;
    }

    .main-header .navbar-brand{
        left: 20px;
    }

    .main-header .navbar-brand img{
        max-height: 58px;
    }

    .kastor-mobile-menu-toggle{
        display: inline-flex !important;
        position: absolute;
        right: 20px;
        top: 50%;
        transform: translateY(-50%);
    }

    .main-header #menu{
        display: none !important;
        position: absolute !important;
        top: calc(100% + 18px) !important;
        left: 20px !important;
        right: 20px !important;
        width: auto !important;
        margin: 0 !important;
        padding: 18px 20px !important;
        background: #ffffff !important;
        border: 1px solid rgba(122, 0, 0, 0.14) !important;
        border-radius: 18px !important;
        box-shadow: 0 18px 45px rgba(0, 0, 0, 0.18) !important;
        z-index: 100000 !important;
        list-style: none !important;
        flex-direction: column !important;
        gap: 0 !important;
        transform: none !important;
    }

    .main-header #menu.kastor-mobile-menu-open{
        display: flex !important;
    }

    .main-header #menu .nav-item{
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .main-header #menu .nav-link{
        display: block !important;
        width: 100% !important;
        padding: 11px 0 !important;
        font-size: 17px !important;
        line-height: 1.35 !important;
        color: #4b4b4b !important;
        font-weight: 700 !important;
        text-align: left !important;
        white-space: normal !important;
        border-bottom: 1px solid #f1f1f1 !important;
    }

    .main-header #menu .nav-item:last-child .nav-link{
        border-bottom: 0 !important;
    }

    .main-header #menu .nav-link.active{
        color: var(--kastor-accent-red) !important;
    }

    .main-header #menu .nav-link.active::after{
        left: 0 !important;
        right: auto !important;
        bottom: 4px !important;
        width: 90px !important;
        height: 3px !important;
        background: var(--kastor-accent-red) !important;
    }
}

@media (max-width: 480px){
    .main-header #menu{
        left: 14px !important;
        right: 14px !important;
        padding: 16px 18px !important;
    }

    .kastor-mobile-menu-toggle{
        right: 16px;
        width: 42px;
        height: 42px;
    }

    .kastor-mobile-menu-toggle span{
        width: 21px;
    }
}

/* =========================================
   BANDE SOUS LE HEADER
   ========================================= */

.main-header .header-sticky::after{
    content: "";
    position: absolute;
    left: 34px;
    right: 34px;
    bottom: -18px;
    height: 34px;
    pointer-events: none;
    z-index: -1;
    border-radius: 0 0 34px 34px;
    background:
        linear-gradient(
            to right,
            rgba(122, 0, 0, 0) 0%,
            rgba(122, 0, 0, 0.18) 12%,
            rgba(122, 0, 0, 0.36) 24%,
            rgba(122, 0, 0, 0.52) 38%,
            rgba(122, 0, 0, 0.62) 50%,
            rgba(122, 0, 0, 0.52) 62%,
            rgba(122, 0, 0, 0.36) 76%,
            rgba(122, 0, 0, 0.18) 88%,
            rgba(122, 0, 0, 0) 100%
        ),
        linear-gradient(
            to bottom,
            rgba(122, 0, 0, 0.50) 0%,
            rgba(122, 0, 0, 0.24) 55%,
            rgba(122, 0, 0, 0) 100%
        );
}

@media (max-width: 1199.98px){
    .main-header .header-sticky::after{
        left: 26px;
        right: 26px;
        bottom: -16px;
        height: 30px;
    }
}

@media (max-width: 991.98px){
    .main-header .header-sticky::after{
        left: 16px;
        right: 16px;
        bottom: -12px;
        height: 22px;
        border-radius: 0 0 22px 22px;
        background:
            linear-gradient(
                to right,
                rgba(122, 0, 0, 0) 0%,
                rgba(122, 0, 0, 0.14) 14%,
                rgba(122, 0, 0, 0.26) 28%,
                rgba(122, 0, 0, 0.38) 40%,
                rgba(122, 0, 0, 0.46) 50%,
                rgba(122, 0, 0, 0.38) 60%,
                rgba(122, 0, 0, 0.26) 72%,
                rgba(122, 0, 0, 0.14) 86%,
                rgba(122, 0, 0, 0) 100%
            ),
            linear-gradient(
                to bottom,
                rgba(122, 0, 0, 0.36) 0%,
                rgba(122, 0, 0, 0.16) 55%,
                rgba(122, 0, 0, 0) 100%
            );
    }
}

/* =========================================
   SUPPRESSION DU PRELOADER
   ========================================= */

.preloader,
.loading-container,
#loading-icon{
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* =========================================
   SUPPRESSION DU CURSEUR PERSONNALISÉ
   ========================================= */

html,
body{
    cursor: auto !important;
}

a,
button,
[role="button"],
.country-sort-section .country-card-button,
.navbar-nav .nav-link{
    cursor: pointer !important;
}

.cursor,
.cursor-dot,
.cursor-dot-outline,
.mouse-cursor,
.mouse-cursor-dot,
.mouse-cursor-outline,
#cursor,
#cursor-dot,
#magic-cursor,
#ball,
.cb-cursor,
.elementor-cursor{
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* =========================================
   REMPLACER LE NOIR PAR ROUGE SANG SOMBRE
   ========================================= */

.dark-section:not(.hero-video):not(.video-section),
.bg-dark,
.main-footer,
.site-footer,
.footer,
.footer-main,
.footer-bottom,
.footer-area,
.copyright,
.copyright-text,
.page-header.bg-section,
.cta-box,
.cta-section{
    background: var(--kastor-blood) !important;
    background-color: var(--kastor-blood) !important;
}

.main-footer .footer-bottom,
.site-footer .footer-bottom,
.footer-bottom,
.copyright,
.copyright-area{
    background: var(--kastor-blood-dark) !important;
    background-color: var(--kastor-blood-dark) !important;
}

.dark-section:not(.hero-video):not(.video-section)::before,
.dark-section:not(.hero-video):not(.video-section)::after,
.bg-dark::before,
.bg-dark::after,
.page-header.bg-section::before,
.page-header.bg-section::after{
    background: var(--kastor-blood-overlay) !important;
}

.main-footer,
.site-footer,
.footer,
.footer a,
.footer p,
.footer li,
.footer span,
.footer-widget p,
.footer-widget li,
.footer-widget a,
.footer-contact-box a,
.footer-links a,
.copyright,
.copyright a{
    color: #ffffff !important;
}

.main-footer .footer-widget,
.site-footer .footer-widget,
.footer-widget,
.footer-contact-box,
.footer-links li,
.footer-bottom,
.copyright{
    border-color: var(--kastor-blood-border) !important;
}

.btn-default,
.btn-highlighted,
.readmore-btn,
.post-item-btn a,
.contact-now-circle a,
.contact-us-btn a,
.hero-btn .btn-default,
.hero-btn .btn-highlighted{
    background: var(--kastor-blood) !important;
    border-color: var(--kastor-blood) !important;
    color: #ffffff !important;
}

.btn-default:hover,
.btn-highlighted:hover,
.readmore-btn:hover,
.post-item-btn a:hover,
.contact-now-circle a:hover,
.contact-us-btn a:hover,
.hero-btn .btn-default:hover,
.hero-btn .btn-highlighted:hover{
    background: var(--kastor-blood-dark) !important;
    border-color: var(--kastor-blood-dark) !important;
    color: #ffffff !important;
}

.footer-social-links a{
    background: var(--kastor-blood-soft) !important;
    border-color: var(--kastor-blood-soft) !important;
    color: #ffffff !important;
}

.footer-social-links a:hover{
    background: var(--kastor-blood-dark) !important;
    border-color: var(--kastor-blood-dark) !important;
    color: #ffffff !important;
}

/* =========================================
   REMPLACEMENT DU JAUNE PAR ROUGE ACCENT
   ========================================= */

.slicknav_btn,
.slicknav_nav .slicknav_arrow,
.search-trigger,
.menu-toggle,
.video-play-button,
.play-button,
.play-btn,
.section-title h3::before,
.section-title h3::after,
.badge,
.tag,
.service-item-icon,
.project-item-icon,
.icon-box,
.counter-icon,
.about-list-item-icon,
.contact-item-icon,
.testimonial-rating,
.star-rating,
.swiper-pagination-bullet-active,
.owl-dot.active,
.slick-dots li.slick-active button,
.slick-dots li button:hover{
    background-color: var(--kastor-accent-red) !important;
    border-color: var(--kastor-accent-red) !important;
    color: #ffffff !important;
}

a:hover,
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link.active,
.footer a:hover,
.footer-links a:hover,
.post-meta a,
.post-category a,
.service-item-content h3 a:hover,
.project-content h3 a:hover,
.blog-item-content h3 a:hover,
.readmore-btn:hover,
.section-title h3,
.text-highlight,
.accent-color,
.theme-color,
.primary-color{
    color: var(--kastor-accent-red) !important;
}

.btn-yellow,
.btn-primary,
.btn-default::before,
.btn-highlighted::before,
.readmore-btn::before,
.post-item-btn a::before,
.contact-us-btn a::before,
.hero-btn .btn-default::before,
.hero-btn .btn-highlighted::before,
.country-sort-section .service-item-btn-metal a,
.service-item-btn-metal a,
.service-btn a,
.project-btn a{
    background: var(--kastor-accent-red) !important;
    border-color: var(--kastor-accent-red) !important;
    color: #ffffff !important;
}

.btn-yellow:hover,
.btn-primary:hover,
.country-sort-section .service-item-btn-metal a:hover,
.service-item-btn-metal a:hover,
.service-btn a:hover,
.project-btn a:hover{
    background: var(--kastor-accent-red-dark) !important;
    border-color: var(--kastor-accent-red-dark) !important;
    color: #ffffff !important;
}

.counter-number,
.counter-title,
.number-text,
.step-number,
.process-number,
.feature-number{
    color: var(--kastor-accent-red) !important;
}

.section-title h2::before,
.section-title h2::after,
.title-shape,
.heading-shape,
.decor-line,
.divider,
.separator,
.border-yellow,
.theme-border{
    background-color: var(--kastor-accent-red) !important;
    border-color: var(--kastor-accent-red) !important;
}

[style*="#dfff00"],
[style*="#DFFF00"],
[style*="#ddff00"],
[style*="#DDFF00"],
[style*="#ffff00"],
[style*="#FFFF00"],
[style*="#ffc107"],
[style*="#FFC107"],
[style*="yellow"]{
    background-color: var(--kastor-accent-red) !important;
    border-color: var(--kastor-accent-red) !important;
    color: #ffffff !important;
}

a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
.country-sort-section .country-card-button:focus{
    outline-color: var(--kastor-accent-red) !important;
    box-shadow: 0 0 0 3px rgba(179, 18, 18, 0.22) !important;
}

/* =========================================
   HERO VIDEO – BANDE ROUGE COLLÉE EN BAS
   ========================================= */

.hero.hero-video{
    position: relative;
    overflow: hidden;
    min-height: 700px;
}

.hero.hero-video::before{
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: auto !important;
    bottom: 0 !important;
    inset: auto 0 0 0 !important;
    height: 160px !important;
    background: linear-gradient(
        to top,
        rgba(130, 0, 0, 0.90) 0%,
        rgba(150, 0, 0, 0.68) 38%,
        rgba(170, 10, 10, 0.22) 72%,
        rgba(170, 10, 10, 0) 100%
    ) !important;
    z-index: 1 !important;
    pointer-events: none !important;
}

.hero.hero-video::after,
.hero.hero-video .hero-bg-video::before,
.hero.hero-video .hero-bg-video::after{
    content: none !important;
    background: transparent !important;
}

/* =========================================
   TITRE HERO
   ========================================= */

.hero-title-only-container{
    position: relative;
    z-index: 2;
    height: 100%;
}

.hero-title-only-container .row{
    position: relative;
    min-height: 700px;
}

.hero-title-only-box{
    position: absolute;
    left: 0;
    right: 0;
    bottom: -60px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    text-align: center;
}

.hero-title-only{
    margin: 0;
    color: #ffffff;
    font-size: 42px;
    line-height: 1.05;
    font-weight: 400;
    white-space: nowrap;
    text-align: center;
}

@media (max-width: 1199.98px){
    .hero-title-only{
        font-size: 58px;
    }
}

@media (max-width: 991.98px){
    .hero.hero-video{
        min-height: 560px;
    }

    .hero-title-only-container .row{
        min-height: 560px;
    }

    .hero-title-only-box{
        bottom: 8px;
    }

    .hero-title-only{
        font-size: 42px;
        white-space: normal;
        text-align: center;
    }
}

@media (max-width: 767.98px){
    .hero.hero-video{
        min-height: 460px;
    }

    .hero.hero-video::before{
        height: 120px !important;
    }

    .hero-title-only-container .row{
        min-height: 460px;
    }

    .hero-title-only-box{
        bottom: 10px;
    }

    .hero-title-only{
        font-size: 32px;
        line-height: 1.15;
        text-align: center;
    }
}

/* =========================================
   MAISONS : SUPPRIMER LES EFFETS AU SURVOL
   ========================================= */

.page-blog .post-item,
.page-blog .post-item *,
.page-blog .post-item *::before,
.page-blog .post-item *::after{
    animation: none !important;
    transition: none !important;
}

.page-blog .post-item:hover,
.page-blog .post-item:hover *{
    transform: none !important;
    box-shadow: none !important;
}

.page-blog .post-item:hover .image-anime img,
.page-blog .post-item:hover .post-featured-image img,
.page-blog .post-item:hover .post-item-content,
.page-blog .post-item:hover .post-item-btn,
.page-blog .post-item:hover .readmore-btn{
    transform: none !important;
    filter: none !important;
    opacity: 1 !important;
}

/* =========================================
   MAISONS : LISTE ET BOUTONS
   ========================================= */

.latest-home-offers{
    padding-top: 0 !important;
}

.page-blog .row > [class*="col-"],
.latest-home-offers .row > [class*="col-"]{
    display: flex !important;
}

.page-blog .post-item,
.latest-home-offers .post-item{
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
}

.page-blog .post-item-body,
.latest-home-offers .post-item-body{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
    height: 100% !important;
}

.page-blog .post-item-content,
.latest-home-offers .post-item-content{
    display: flex !important;
    flex-direction: column !important;
    flex: 1 1 auto !important;
}

.page-blog .post-item-btn,
.latest-home-offers .post-item-btn{
    margin-top: auto !important;
    padding-top: 8px !important;
    border-top: 1px solid #e5e7eb !important;
}

.page-blog .post-item-btn .readmore-btn,
.latest-home-offers .post-item-btn .readmore-btn{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
    min-height: 52px !important;
    padding-top: 12px;
    padding-bottom: 12px;
    white-space: nowrap !important;
    transform: translateY(-18px);
}

.page-blog .post-item-btn .readmore-btn .eye-icon-img,
.latest-home-offers .post-item-btn .readmore-btn .eye-icon-img{
    width: 32px;
    height: 32px;
    object-fit: contain;
    display: inline-block;
    vertical-align: middle;
    flex-shrink: 0;
}

.page-blog .post-item-btn .readmore-btn:hover,
.latest-home-offers .post-item-btn .readmore-btn:hover{
    background: #3b0000 !important;
    border-color: #3b0000 !important;
    color: #ffffff !important;
}

.page-blog .post-featured-image,
.latest-home-offers .post-featured-image,
.page-blog .image-anime,
.latest-home-offers .image-anime{
    width: 100% !important;
}

.page-blog .post-featured-image img,
.latest-home-offers .post-featured-image img,
.page-blog .image-anime img,
.latest-home-offers .image-anime img{
    width: 100% !important;
    height: 260px !important;
    object-fit: cover !important;
    display: block !important;
}

/* =========================================
   GALERIE MAISON
   ========================================= */

.kastor-gallery-card{
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    padding: 24px;
}

.kastor-gallery-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
}

.kastor-gallery-item{
    display: block;
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    background: transparent;
    position: relative;
}

.kastor-gallery-item::after{
    content: "Voir";
    position: absolute;
    right: 12px;
    bottom: 12px;
    background: rgba(74, 2, 2, 0.88);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    padding: 7px 12px;
    border-radius: 999px;
    opacity: 0;
    transform: translateY(8px);
    transition: all 0.25s ease;
}

.kastor-gallery-item img{
    width: 100%;
    height: 220px;
    object-fit: cover;
    border-radius: 12px;
    display: block;
    transition: transform 0.35s ease, filter 0.35s ease;
}

.kastor-gallery-item:hover img{
    transform: scale(1.04);
    filter: brightness(0.86);
}

.kastor-gallery-item:hover::after{
    opacity: 1;
    transform: translateY(0);
}

.kastor-lightbox{
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.88);
    padding: 24px;
}

.kastor-lightbox.is-open{
    display: flex;
}

.kastor-lightbox-content{
    margin: 0;
    width: min(1100px, 100%);
    text-align: center;
}

.kastor-lightbox-content img{
    max-width: 100%;
    max-height: 82vh;
    object-fit: contain;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
    background: #111;
}

#kastor-lightbox-counter{
    margin-top: 12px;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
}

.kastor-lightbox-close{
    position: absolute;
    top: 18px;
    right: 22px;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: var(--kastor-blood);
    font-size: 34px;
    line-height: 1;
    cursor: pointer;
    font-weight: 700;
}

.kastor-lightbox-nav{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: var(--kastor-blood);
    min-width: 54px;
    height: 54px;
    padding: 0 16px;
    cursor: pointer;
    font-size: 34px;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.25);
}

.kastor-lightbox-nav span{
    font-size: 14px;
    font-weight: 700;
}

.kastor-lightbox-prev{
    left: 24px;
}

.kastor-lightbox-next{
    right: 24px;
}

body.kastor-lightbox-open{
    overflow: hidden;
}

@media (max-width: 768px){
    .kastor-lightbox{
        padding: 16px;
    }

    .kastor-lightbox-content img{
        max-height: 72vh;
    }

    .kastor-lightbox-nav{
        top: auto;
        bottom: 24px;
        transform: none;
        height: 46px;
        min-width: 46px;
        font-size: 28px;
        padding: 0 12px;
    }

    .kastor-lightbox-prev{
        left: 16px;
    }

    .kastor-lightbox-next{
        right: 16px;
    }

    .kastor-lightbox-nav span{
        display: none;
    }

    .kastor-lightbox-close{
        top: 14px;
        right: 14px;
    }
}

.maison-plans{
    margin:40px 0;
}

.maison-plans h3{
    margin-bottom:20px;
}

.maison-plans-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:20px;
}

.maison-plan-item{
    border:1px solid #e5e7eb;
    background:#fff;
    border-radius:16px;
    padding:12px;
    cursor:pointer;
    text-align:left;
    box-shadow:0 10px 30px rgba(0,0,0,0.06);
}

.maison-plan-item img{
    width:100%;
    height:260px;
    object-fit:contain;
    background:#f9fafb;
    border-radius:12px;
    display:block;
}

.maison-plan-item span{
    display:block;
    margin-top:10px;
    font-weight:700;
    color:#4a0202;
}

.plan-lightbox{
    position:fixed;
    inset:0;
    z-index:9999;
    background:rgba(0,0,0,0.88);
    display:none;
    align-items:center;
    justify-content:center;
    padding:30px;
}

.plan-lightbox.is-active{
    display:flex;
}

.plan-lightbox-content{
    max-width:1100px;
    width:100%;
    text-align:center;
}

.plan-lightbox-content img{
    max-width:100%;
    max-height:82vh;
    object-fit:contain;
    background:#fff;
    border-radius:12px;
}

.plan-lightbox-title{
    margin-top:12px;
    color:#fff;
    font-weight:700;
    font-size:18px;
}

.plan-lightbox-close{
    position:absolute;
    top:20px;
    right:24px;
    width:44px;
    height:44px;
    border:none;
    border-radius:50%;
    background:#fff;
    color:#111;
    font-size:30px;
    line-height:1;
    cursor:pointer;
}

.plan-lightbox-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    border:none;
    border-radius:999px;
    padding:12px 18px;
    background:#4a0202;
    color:#fff;
    font-weight:700;
    cursor:pointer;
}

.plan-lightbox-prev{
    left:24px;
}

.plan-lightbox-next{
    right:24px;
}

@media (max-width:768px){
    .plan-lightbox{
        padding:18px;
    }

    .plan-lightbox-nav{
        top:auto;
        bottom:24px;
        transform:none;
        padding:10px 14px;
        font-size:14px;
    }

    .plan-lightbox-prev{
        left:18px;
    }

    .plan-lightbox-next{
        right:18px;
    }

    .plan-lightbox-content img{
        max-height:72vh;
    }
}
/* Réduction de l’espace entre le texte et le bouton des maisons */
.maison-card-content,
.property-content,
.house-card-content {
    margin-bottom: 15px;
    padding-bottom: 0;
}

/* Ligne séparatrice au-dessus du bouton */
.maison-card-footer,
.property-footer,
.house-card-footer {
    margin-top: 10px;
    padding-top: 12px;
    border-top: 1px solid #e5e5e5;
}

/* Bouton Voir La Maison */
.maison-card-footer .btn,
.property-footer .btn,
.house-card-footer .btn,
.readmore-btn {
    margin-top: 0;
}

/* =========================================
   KASTOR - Réduction espace cartes maisons accueil
   ========================================= */

.latest-home-offers .post-item-body {
    padding-top: 22px !important;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
}

.latest-home-offers .post-item-content {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
    min-height: 0 !important;
    height: auto !important;
}

.latest-home-offers .post-item-content h2 {
    margin-bottom: 12px !important;
}

.latest-home-offers .post-item-content p:last-child {
    margin-bottom: 0 !important;
}

.latest-home-offers .post-item-btn {
    margin-top: 18px !important;
    padding-top: 14px !important;
    padding-bottom: 0 !important;
    border-top: 1px solid #e5e5e5 !important;
    min-height: 0 !important;
    height: auto !important;
    position: relative !important;
    bottom: auto !important;
}

.latest-home-offers .post-item-btn .readmore-btn {
    margin-top: 0 !important;
}

/* =========================================
   KASTOR - Bouton standard Voir la maison
   ========================================= */

.latest-home-offers .maison-card-action {
    margin-top: 18px !important;
    padding-top: 14px !important;
    border-top: 1px solid #e5e5e5 !important;
    position: static !important;
    transform: none !important;
}

.latest-home-offers .kastor-maison-view-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;

    background: #4a0202 !important;
    color: #ffffff !important;

    padding: 12px 18px !important;
    border-radius: 0 !important;

    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-transform: none !important;

    position: static !important;
    overflow: visible !important;

    transform: none !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
}

.latest-home-offers .kastor-maison-view-btn:hover {
    background: #7a0505 !important;
    color: #ffffff !important;
    transform: none !important;
}

.latest-home-offers .kastor-maison-view-btn::before,
.latest-home-offers .kastor-maison-view-btn::after {
    display: none !important;
    content: none !important;
}

.latest-home-offers .kastor-maison-view-btn img.eye-icon-img {
    width: 22px !important;
    height: auto !important;
    display: block !important;
    transform: none !important;
}

/* =========================================
   KASTOR - Alignement boutons maisons accueil
   ========================================= */

.latest-home-offers .row > .col-xl-4,
.latest-home-offers .row > .col-md-6 {
    display: flex;
}

.latest-home-offers .post-item {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.latest-home-offers .post-item-body {
    flex: 1;
    display: flex !important;
    flex-direction: column !important;
    padding-top: 22px !important;
    padding-bottom: 0 !important;
}

.latest-home-offers .post-item-content {
    min-height: 80px !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.latest-home-offers .post-item-btn.maison-card-action {
    margin-top: 8px !important;
    padding-top: 12px !important;
    border-top: 1px solid #e5e5e5 !important;
    position: static !important;
    transform: none !important;
}

/* Bouton fixe, sans effet du thème */
.latest-home-offers .kastor-maison-view-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 9px !important;

    background: #4a0202 !important;
    color: #ffffff !important;

    padding: 12px 18px !important;
    border-radius: 0 !important;

    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;

    position: static !important;
    transform: none !important;
    transition: background-color 0.2s ease !important;
}

.latest-home-offers .kastor-maison-view-btn:hover {
    background: #7a0505 !important;
    color: #ffffff !important;
    transform: none !important;
}

.latest-home-offers .kastor-maison-view-btn::before,
.latest-home-offers .kastor-maison-view-btn::after {
    display: none !important;
    content: none !important;
}

.latest-home-offers .kastor-maison-view-btn img.eye-icon-img {
    width: 21px !important;
    height: auto !important;
    transform: none !important;
}

/* Sur tablette/mobile : pas de hauteur forcée */
@media (max-width: 991.98px) {
    .latest-home-offers .post-item-content {
        min-height: 0 !important;
    }

    .latest-home-offers .post-item-btn.maison-card-action {
        margin-top: 12px !important;
    }
}


/* =========================================
   KASTOR - Cartes maisons personnalisées accueil
   ========================================= */

.kastor-home-offers {
    padding-top: 40px;
    padding-bottom: 60px;
}

.kastor-home-maison-row {
    row-gap: 38px;
}

.kastor-home-maison-col {
    display: flex;
}

.kastor-home-maison-card {
    width: 100%;
    display: flex;
    flex-direction: column;
    background: transparent;
    border: none;
    box-shadow: none;
    overflow: hidden;
    transform: none !important;
    transition: none !important;
}

.kastor-home-maison-card:hover {
    transform: none !important;
}

.kastor-home-maison-image-link {
    display: block;
    width: 100%;
    height: 230px;
    overflow: hidden;
    border-radius: 14px;
    text-decoration: none;
    transform: none !important;
}

.kastor-home-maison-image {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    transform: none !important;
    transition: none !important;
}

.kastor-home-maison-image-link:hover .kastor-home-maison-image {
    transform: none !important;
}

.kastor-home-maison-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding-top: 24px;
}

.kastor-home-maison-title {
    min-height: 58px;
    margin: 0 0 12px 0;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.35;
}

.kastor-home-maison-title a {
    color: #b40000;
    text-decoration: none;
}

.kastor-home-maison-title a:hover {
    color: #7a0505;
}

.kastor-home-maison-location {
    min-height: 28px;
    margin: 0 0 6px 0;
    color: #6b7280;
    font-size: 16px;
    line-height: 1.6;
}

.kastor-home-maison-facts {
    min-height: 28px;
    margin: 0 0 6px 0;
    color: #1f2937;
    font-size: 16px;
    line-height: 1.6;
}

.kastor-home-maison-status {
    min-height: 28px;
    margin: 0 0 12px 0;
    color: #4a0202;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
}

.kastor-home-maison-description {
    height: 96px;
    margin: 0;
    color: #374151;
    font-size: 16px;
    line-height: 1.7;
    overflow: hidden;

    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
}

.kastor-home-maison-action {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #e5e5e5;
}

.kastor-home-maison-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;

    background: #4a0202;
    color: #ffffff;

    padding: 12px 18px;
    border: none;
    border-radius: 0;

    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;

    position: static;
    overflow: visible;
    transform: none !important;
    transition: background-color 0.2s ease !important;
}

.kastor-home-maison-btn:hover {
    background: #7a0505;
    color: #ffffff;
    transform: none !important;
}

.kastor-home-maison-btn::before,
.kastor-home-maison-btn::after {
    display: none !important;
    content: none !important;
}

.kastor-home-maison-btn img {
    width: 21px;
    height: auto;
    display: block;
    transform: none !important;
}

/* Tablette */
@media (max-width: 991.98px) {
    .kastor-home-maison-title {
        min-height: auto;
    }

    .kastor-home-maison-description {
        height: auto;
        max-height: none;
        -webkit-line-clamp: initial;
    }
}

/* Mobile */
@media (max-width: 575.98px) {
    .kastor-home-offers {
        padding-top: 30px;
        padding-bottom: 45px;
    }

    .kastor-home-maison-image-link {
        height: 210px;
    }

    .kastor-home-maison-body {
        padding-top: 20px;
    }

    .kastor-home-maison-title {
        font-size: 20px;
    }
}

/* =========================================
   KASTOR - Bouton Voir toutes les maisons
   ========================================= */

.kastor-home-all-maison-row {
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.kastor-home-all-maison-action {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    margin-top: 42px !important;
}

.kastor-home-all-maison-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 250px !important;
    max-width: max-content !important;

    margin-left: auto !important;
    margin-right: auto !important;

    padding: 16px 32px !important;

    background: #4a0202 !important;
    color: #ffffff !important;

    border: 2px solid #4a0202 !important;
    border-radius: 999px !important;

    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    text-align: center !important;

    float: none !important;
    position: static !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;

    box-shadow: 0 12px 28px rgba(74, 2, 2, 0.18) !important;
    transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease !important;
}

.kastor-home-all-maison-btn:hover {
    background: #ffffff !important;
    color: #4a0202 !important;
    border-color: #4a0202 !important;
    box-shadow: 0 14px 32px rgba(74, 2, 2, 0.24) !important;
    transform: none !important;
}

.kastor-home-all-maison-btn::before,
.kastor-home-all-maison-btn::after {
    display: none !important;
    content: none !important;
}

@media (max-width: 575.98px) {
    .kastor-home-all-maison-btn {
        width: 100% !important;
        max-width: 320px !important;
    }
}

/* Supprimer totalement l'effet hover du bouton Voir la maison */
.kastor-home-maison-btn,
.kastor-home-maison-btn:hover,
.kastor-home-maison-btn:focus,
.kastor-home-maison-btn:active {
    background: #4a0202 !important;
    color: #ffffff !important;
    transform: none !important;
    box-shadow: none !important;
    transition: none !important;
}

.kastor-home-maison-btn::before,
.kastor-home-maison-btn::after,
.kastor-home-maison-btn:hover::before,
.kastor-home-maison-btn:hover::after {
    display: none !important;
    content: none !important;
}

.kastor-home-maison-btn img,
.kastor-home-maison-btn:hover img {
    transform: none !important;
    transition: none !important;
}



:root{
    --kastor-red: #6b0f1a;
    --kastor-red-dark: #3f070d;
    --kastor-red-deep: #260408;
    --kastor-gold: #c8a15a;
    --kastor-ivory: #f7f3ed;
    --kastor-sand: #efe4d3;
    --kastor-light: #ffffff;
    --kastor-dark: #151515;
    --kastor-muted: #6f6f6f;
    --kastor-border: #e8ded3;
    --kastor-shadow: 0 18px 50px rgba(21, 21, 21, 0.10);
    --kastor-shadow-hover: 0 24px 70px rgba(63, 7, 13, 0.18);
}

/* ==============================
   BASE HOME KASTOR
   ============================== */

.hero,
.country-sort-section,
.kastor-home-offers,
.kastor-trust-section,
.kastor-featured-models,
.kastor-process-section,
.kastor-comfort-section,
.kastor-diaspora-section,
.kastor-testimonials-section,
.kastor-faq-section,
#kastor-contact{
    font-family: inherit;
}

.kastor-trust-section,
.kastor-process-section,
.kastor-faq-section{
    background: var(--kastor-light);
}

.kastor-featured-models,
.kastor-comfort-section,
.country-sort-section{
    background: var(--kastor-ivory);
}

.kastor-home-offers,
.kastor-trust-section,
.kastor-featured-models,
.kastor-process-section,
.kastor-comfort-section,
.kastor-testimonials-section,
.kastor-faq-section{
    padding-top: 95px;
    padding-bottom: 95px;
}

.section-title .section-sub-title,
.section-title-center .section-sub-title{
    color: var(--kastor-red);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
}

.section-title h2 span,
.text-anime-style-2 span{
    color: var(--kastor-red);
}

.section-title p,
.section-title-content p{
    color: var(--kastor-muted);
    line-height: 1.75;
}

.section-title-center p{
    max-width: 860px;
    margin: 18px auto 0;
}

/* ==============================
   HERO PREMIUM
   ============================== */

.hero-video{
    min-height: 760px;
    position: relative;
    display: flex;
    align-items: center;
    overflow: hidden;
}

.hero-video::before{
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(38, 4, 8, 0.88) 0%, rgba(63, 7, 13, 0.62) 42%, rgba(21, 21, 21, 0.22) 100%),
        linear-gradient(0deg, rgba(38, 4, 8, 0.92) 0%, rgba(38, 4, 8, 0.18) 42%, rgba(0, 0, 0, 0.20) 100%);
}

.hero-bg-video{
    position: absolute;
    inset: 0;
    z-index: 0;
}

.hero-bg-video video{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-title-only-container{
    position: relative;
    z-index: 2;
}

.hero-title-only-box{
    max-width: 860px;
    padding-top: 80px;
}

.hero-title-only{
    color: #ffffff;
    font-size: clamp(46px, 6vw, 86px);
    line-height: 0.98;
    letter-spacing: -0.04em;
    font-weight: 800;
    margin-bottom: 24px;
}

.kastor-hero-subtitle{
    max-width: 700px;
    color: rgba(255,255,255,0.88);
    font-size: 20px;
    line-height: 1.7;
    margin-bottom: 34px;
}

.kastor-hero-actions{
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    align-items: center;
}

.kastor-hero-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 15px 28px;
    border-radius: 999px;
    font-weight: 700;
    transition: all 0.25s ease;
}

.kastor-hero-btn-primary{
    color: #ffffff;
    background: linear-gradient(135deg, var(--kastor-red), var(--kastor-red-dark));
    box-shadow: 0 16px 38px rgba(107, 15, 26, 0.38);
}

.kastor-hero-btn-primary:hover{
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 22px 50px rgba(107, 15, 26, 0.48);
}

.kastor-hero-btn-secondary{
    color: #ffffff;
    border: 1px solid rgba(255,255,255,0.45);
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(8px);
}

.kastor-hero-btn-secondary:hover{
    color: var(--kastor-red-dark);
    background: #ffffff;
    border-color: #ffffff;
    transform: translateY(-3px);
}

/* ==============================
   SECTION PAYS
   ============================== */

.country-sort-section{
    padding-top: 70px;
    padding-bottom: 58px;
    border-bottom: 1px solid var(--kastor-border);
}

.country-sort-section .service-item-metal{
    position: relative;
    min-height: 260px;
    padding: 34px 24px 28px;
    border-radius: 28px;
    border: 1px solid var(--kastor-border);
    background:
        linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,255,255,0.88));
    box-shadow: 0 14px 38px rgba(21, 21, 21, 0.06);
    cursor: pointer;
    transition: all 0.28s ease;
    overflow: hidden;
}

.country-sort-section .service-item-metal::after{
    content: "";
    position: absolute;
    inset: auto -40px -65px auto;
    width: 150px;
    height: 150px;
    border-radius: 999px;
    background: rgba(107, 15, 26, 0.08);
    transition: all 0.28s ease;
}

.country-sort-section .service-item-metal:hover{
    transform: translateY(-8px);
    border-color: rgba(200, 161, 90, 0.65);
    box-shadow: var(--kastor-shadow-hover);
}

.country-sort-section .service-item-metal:hover::after{
    background: rgba(107, 15, 26, 0.14);
    transform: scale(1.18);
}

.country-flag-circle{
    width: 92px;
    height: 92px;
    border-radius: 999px;
    margin: 0 auto 18px;
    padding: 8px;
    background: #ffffff;
    border: 1px solid rgba(200, 161, 90, 0.45);
    box-shadow: 0 12px 28px rgba(21, 21, 21, 0.08);
    overflow: hidden;
}

.country-flag-img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 999px;
}

.country-sort-section .service-item-content-metal h2{
    color: var(--kastor-dark);
    font-size: 22px;
    font-weight: 800;
    margin-bottom: 8px;
}

.country-counter-value{
    color: var(--kastor-red);
    font-size: 34px;
    line-height: 1;
    font-weight: 800;
    margin-bottom: 18px;
}

.country-sort-section .readmore-btn{
    color: var(--kastor-red);
    font-weight: 700;
}

/* ==============================
   CARTES MAISONS
   ============================== */

.kastor-home-offers{
    background:
        radial-gradient(circle at top left, rgba(107, 15, 26, 0.05), transparent 32%),
        #ffffff;
}

.kastor-home-maison-row{
    row-gap: 34px;
}

.kastor-home-maison-card{
    height: 100%;
    display: flex;
    flex-direction: column;
    border-radius: 30px;
    background: #ffffff;
    border: 1px solid rgba(232, 222, 211, 0.95);
    overflow: hidden;
    box-shadow: var(--kastor-shadow);
    transition: all 0.28s ease;
}

.kastor-home-maison-card:hover{
    transform: translateY(-8px);
    box-shadow: var(--kastor-shadow-hover);
    border-color: rgba(200, 161, 90, 0.58);
}

.kastor-home-maison-image-link{
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: var(--kastor-sand);
}

.kastor-home-maison-image-link::after{
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, rgba(38,4,8,0.32), transparent 55%);
    opacity: 0.75;
    transition: opacity 0.28s ease;
}

.kastor-home-maison-card:hover .kastor-home-maison-image-link::after{
    opacity: 0.45;
}

.kastor-home-maison-image{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}

.kastor-home-maison-card:hover .kastor-home-maison-image{
    transform: scale(1.055);
}

.kastor-home-maison-body{
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 28px 28px 30px;
}

.kastor-home-maison-title{
    font-size: 24px;
    line-height: 1.22;
    font-weight: 800;
    margin-bottom: 8px;
}

.kastor-home-maison-title a{
    color: var(--kastor-dark);
}

.kastor-home-maison-title a:hover{
    color: var(--kastor-red);
}

.kastor-home-maison-location{
    color: var(--kastor-red);
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 10px;
}

.kastor-home-maison-facts{
    color: var(--kastor-dark);
    font-size: 14px;
    font-weight: 650;
    line-height: 1.55;
    margin-bottom: 12px;
}

.kastor-home-maison-status{
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(107, 15, 26, 0.08);
    color: var(--kastor-red);
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 14px;
}

.kastor-home-maison-description{
    color: var(--kastor-muted);
    line-height: 1.7;
    margin-bottom: 22px;
}

.kastor-home-maison-action{
    margin-top: auto;
}

.kastor-home-maison-btn,
.kastor-home-all-maison-btn{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 48px;
    padding: 13px 22px;
    border-radius: 999px;
    color: #ffffff;
    background: linear-gradient(135deg, var(--kastor-red), var(--kastor-red-dark));
    font-weight: 800;
    box-shadow: 0 14px 30px rgba(107, 15, 26, 0.26);
    transition: all 0.25s ease;
}

.kastor-home-maison-btn:hover,
.kastor-home-all-maison-btn:hover{
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 18px 42px rgba(107, 15, 26, 0.36);
}

.kastor-home-maison-btn img{
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.kastor-home-all-maison-row{
    margin-top: 42px;
}

.kastor-home-all-maison-action{
    text-align: center;
}

/* ==============================
   SECTIONS SERVICE / CONFIANCE
   ============================== */

.kastor-trust-section .service-item,
.kastor-process-section .service-item,
.kastor-comfort-section .service-item,
.kastor-faq-section .service-item{
    height: 100%;
    border-radius: 28px;
    border: 1px solid rgba(232, 222, 211, 0.95);
    background: #ffffff;
    overflow: hidden;
    box-shadow: 0 12px 34px rgba(21,21,21,0.06);
    transition: all 0.28s ease;
}

.kastor-trust-section .service-item:hover,
.kastor-process-section .service-item:hover,
.kastor-comfort-section .service-item:hover,
.kastor-faq-section .service-item:hover{
    transform: translateY(-7px);
    border-color: rgba(200, 161, 90, 0.62);
    box-shadow: var(--kastor-shadow-hover);
}

.kastor-trust-section .service-item-image figure,
.kastor-trust-section .service-item-image,
.kastor-trust-section .service-item-image img{
    height: 220px;
}

.kastor-trust-section .service-item-image img{
    width: 100%;
    object-fit: cover;
}

.kastor-trust-section .service-item-body,
.kastor-process-section .service-item-body,
.kastor-comfort-section .service-item-body,
.kastor-faq-section .service-item-body{
    padding: 28px;
}

.kastor-trust-section .icon-box,
.kastor-comfort-section .icon-box{
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: rgba(107,15,26,0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 18px;
}

.kastor-trust-section .icon-box img,
.kastor-comfort-section .icon-box img{
    max-width: 30px;
    max-height: 30px;
}

.kastor-trust-section .service-item-content h2,
.kastor-process-section .service-item-content h2,
.kastor-comfort-section .service-item-content h2,
.kastor-faq-section .service-item-content h2{
    color: var(--kastor-dark);
    font-size: 22px;
    line-height: 1.25;
    font-weight: 800;
    margin-bottom: 12px;
}

.kastor-trust-section .service-item-content p,
.kastor-process-section .service-item-content p,
.kastor-comfort-section .service-item-content p,
.kastor-faq-section .service-item-content p{
    color: var(--kastor-muted);
    line-height: 1.72;
}

.section-footer-text{
    margin-top: 40px;
    padding: 22px 28px;
    border-radius: 24px;
    background: rgba(107,15,26,0.055);
    border: 1px solid rgba(107,15,26,0.10);
}

.section-footer-text p{
    margin: 0;
    color: var(--kastor-dark);
    font-weight: 600;
}

.section-footer-text a{
    color: var(--kastor-red);
    font-weight: 800;
}

/* ==============================
   MODÈLES PHARES
   ============================== */

.kastor-featured-models{
    background:
        linear-gradient(180deg, var(--kastor-ivory), #ffffff);
}

.kastor-featured-models .kastor-home-maison-card{
    border-top: 4px solid var(--kastor-red);
}

.kastor-featured-models .kastor-home-maison-title{
    font-size: 26px;
}

/* ==============================
   PROCESS
   ============================== */

.kastor-process-section{
    background:
        radial-gradient(circle at top right, rgba(200,161,90,0.12), transparent 35%),
        #ffffff;
}

.kastor-process-section .icon-box{
    width: 68px;
    height: 68px;
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--kastor-red), var(--kastor-red-dark));
    color: #ffffff;
    margin-bottom: 20px;
    box-shadow: 0 16px 34px rgba(107,15,26,0.25);
}

.kastor-process-section .icon-box span{
    color: #ffffff;
    font-size: 22px;
    font-weight: 900;
}

/* ==============================
   CONFORT
   ============================== */

.kastor-comfort-section{
    background:
        linear-gradient(180deg, #ffffff 0%, var(--kastor-ivory) 100%);
}

.kastor-comfort-section .service-item{
    min-height: 260px;
}

/* ==============================
   DIASPORA / INVESTISSEURS
   ============================== */

.kastor-diaspora-section,
#kastor-contact{
    position: relative;
    background:
        radial-gradient(circle at top left, rgba(200,161,90,0.17), transparent 32%),
        linear-gradient(135deg, var(--kastor-red-deep), var(--kastor-red-dark) 48%, #111111);
    overflow: hidden;
}

.kastor-diaspora-section::before,
#kastor-contact::before{
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px),
        linear-gradient(0deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 48px 48px;
    opacity: 0.25;
    pointer-events: none;
}

.kastor-diaspora-section .container,
#kastor-contact .container{
    position: relative;
    z-index: 2;
}

.kastor-diaspora-section{
    padding-top: 105px;
    padding-bottom: 105px;
}

.kastor-diaspora-section .section-title h2,
#kastor-contact .section-title h2,
.kastor-diaspora-section .section-title-content p,
#kastor-contact .section-title-content p{
    color: #ffffff;
}

.kastor-diaspora-section .section-title .section-sub-title,
#kastor-contact .section-title .section-sub-title{
    color: var(--kastor-gold);
}

.kastor-diaspora-section .section-title h2 span,
#kastor-contact .section-title h2 span{
    color: var(--kastor-gold);
}

.kastor-diaspora-section .cta-box-content,
#kastor-contact .cta-box-content{
    padding-right: 24px;
}

.kastor-diaspora-section .cta-form-box,
#kastor-contact .cta-form-box{
    border-radius: 34px;
    padding: 42px;
    background: rgba(255,255,255,0.96);
    box-shadow: 0 28px 80px rgba(0,0,0,0.25);
    border: 1px solid rgba(255,255,255,0.45);
}

.kastor-diaspora-section .cta-form-box .section-title h2,
#kastor-contact .cta-form-box .section-title h2{
    color: var(--kastor-dark);
}

.kastor-diaspora-section .cta-form-box .section-title h2 span,
#kastor-contact .cta-form-box .section-title h2 span{
    color: var(--kastor-red);
}

.kastor-diaspora-section .cta-form-box .section-title .section-sub-title,
#kastor-contact .cta-form-box .section-title .section-sub-title{
    color: var(--kastor-red);
}

.kastor-diaspora-section .cta-form-box .section-title-content p,
#kastor-contact .cta-form-box .section-title-content p{
    color: var(--kastor-muted);
}

.cta-box-item{
    border-radius: 22px;
    background: rgba(255,255,255,0.08);
    border: 1px solid rgba(255,255,255,0.13);
    padding: 20px;
    margin-bottom: 16px;
    backdrop-filter: blur(8px);
}

.cta-box-item-content p{
    color: rgba(255,255,255,0.72);
    font-weight: 700;
    margin-bottom: 4px;
}

.cta-box-item-content h3,
.cta-box-item-content h3 a{
    color: #ffffff;
    font-size: 17px;
    line-height: 1.45;
}

.cta-box-item .icon-box{
    background: rgba(200,161,90,0.16);
    border-radius: 16px;
}

/* ==============================
   FORMULAIRE CONTACT
   ============================== */

#kastor-contact{
    padding-top: 105px;
    padding-bottom: 105px;
}

.cta-contact-form .form-control{
    min-height: 58px;
    border-radius: 16px;
    border: 1px solid rgba(232,222,211,0.95);
    background: #ffffff;
    color: var(--kastor-dark);
    padding: 15px 18px;
    box-shadow: none;
    transition: all 0.22s ease;
}

.cta-contact-form textarea.form-control{
    min-height: 150px;
    resize: vertical;
}

.cta-contact-form .form-control:focus{
    border-color: rgba(107,15,26,0.55);
    box-shadow: 0 0 0 4px rgba(107,15,26,0.08);
}

.cta-contact-form .form-control::placeholder{
    color: #8d8d8d;
}

.cta-contact-form-btn .btn-default,
.btn-default{
    border-radius: 999px;
    background: linear-gradient(135deg, var(--kastor-red), var(--kastor-red-dark));
    color: #ffffff;
    border: none;
    font-weight: 800;
    box-shadow: 0 16px 38px rgba(107,15,26,0.28);
}

.cta-contact-form-btn .btn-default:hover,
.btn-default:hover{
    color: #ffffff;
    transform: translateY(-3px);
    box-shadow: 0 22px 50px rgba(107,15,26,0.38);
}

#kastor-contact .section-footer-text{
    background: rgba(107,15,26,0.07);
}

/* ==============================
   TÉMOIGNAGES
   ============================== */

.kastor-testimonials-section{
    background:
        radial-gradient(circle at top left, rgba(107,15,26,0.045), transparent 35%),
        #ffffff;
}

.testimonial-item{
    border-radius: 30px;
    border: 1px solid var(--kastor-border);
    background: #ffffff;
    box-shadow: var(--kastor-shadow);
}

.testimonial-item-rating i{
    color: var(--kastor-gold);
}

.testimonial-item-content p{
    color: var(--kastor-dark);
    line-height: 1.78;
}

.testimonial-author-content h3{
    color: var(--kastor-red);
    font-weight: 800;
}

.company-supports-content p{
    color: var(--kastor-muted);
    font-weight: 700;
}

/* ==============================
   FAQ
   ============================== */

.kastor-faq-section{
    background: var(--kastor-ivory);
}

.kastor-faq-section .service-item{
    min-height: 220px;
}

.kastor-faq-section .service-item-content h2{
    position: relative;
    padding-left: 22px;
}

.kastor-faq-section .service-item-content h2::before{
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    width: 7px;
    height: 24px;
    border-radius: 99px;
    background: var(--kastor-red);
}

/* ==============================
   RESPONSIVE
   ============================== */

@media (max-width: 1199.98px){
    .hero-video{
        min-height: 680px;
    }

    .kastor-home-offers,
    .kastor-trust-section,
    .kastor-featured-models,
    .kastor-process-section,
    .kastor-comfort-section,
    .kastor-testimonials-section,
    .kastor-faq-section,
    .kastor-diaspora-section,
    #kastor-contact{
        padding-top: 78px;
        padding-bottom: 78px;
    }

    .kastor-diaspora-section .cta-box-content,
    #kastor-contact .cta-box-content{
        padding-right: 0;
        margin-top: 34px;
    }
}

@media (max-width: 991.98px){
    .hero-video{
        min-height: 620px;
    }

    .hero-title-only-box{
        padding-top: 40px;
    }

    .kastor-hero-subtitle{
        font-size: 18px;
    }

    .country-sort-section .service-item-metal{
        margin-bottom: 24px;
    }

    .kastor-diaspora-section .cta-form-box,
    #kastor-contact .cta-form-box{
        padding: 34px;
    }
}

@media (max-width: 767.98px){
    .hero-video{
        min-height: 580px;
    }

    .hero-title-only{
        font-size: 44px;
    }

    .kastor-hero-actions{
        align-items: stretch;
    }

    .kastor-hero-btn{
        width: 100%;
    }

    .kastor-home-offers,
    .kastor-trust-section,
    .kastor-featured-models,
    .kastor-process-section,
    .kastor-comfort-section,
    .kastor-testimonials-section,
    .kastor-faq-section,
    .kastor-diaspora-section,
    #kastor-contact{
        padding-top: 62px;
        padding-bottom: 62px;
    }

    .kastor-home-maison-body,
    .kastor-trust-section .service-item-body,
    .kastor-process-section .service-item-body,
    .kastor-comfort-section .service-item-body,
    .kastor-faq-section .service-item-body{
        padding: 24px;
    }

    .kastor-diaspora-section .cta-form-box,
    #kastor-contact .cta-form-box{
        padding: 26px;
        border-radius: 26px;
    }
}

@media (max-width: 575.98px){
    .hero-title-only{
        font-size: 38px;
    }

    .kastor-hero-subtitle{
        font-size: 16px;
    }

    .country-sort-section .service-item-metal{
        min-height: 230px;
    }

    .kastor-home-maison-title{
        font-size: 22px;
    }
}

/* ==============================
   CORRECTION HERO KASTOR
   ============================== */

.hero-video{
    min-height: 720px;
    border-radius: 0 0 24px 24px;
}

.hero-video::before{
    background:
        linear-gradient(90deg, rgba(38, 4, 8, 0.82) 0%, rgba(63, 7, 13, 0.54) 42%, rgba(21, 21, 21, 0.22) 100%),
        linear-gradient(0deg, rgba(107, 15, 26, 0.92) 0%, rgba(107, 15, 26, 0.45) 22%, rgba(0, 0, 0, 0.12) 60%);
}

.hero-title-only-container{
    height: 100%;
    display: flex;
    align-items: flex-end;
    padding-bottom: 95px;
}

.hero-title-only-container .row,
.hero-title-only-container .col-lg-12{
    width: 100%;
}

.hero-title-only-box{
    display: block !important;
    max-width: 760px !important;
    width: 100%;
    padding-top: 0 !important;
    margin-left: 0;
    text-align: left;
}

.hero-title-only{
    max-width: 760px;
    color: #ffffff;
    font-size: clamp(42px, 5vw, 76px) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.045em;
    font-weight: 900;
    margin: 0 0 22px 0 !important;
    padding: 0 !important;
    text-align: left;
    white-space: normal !important;
    overflow: visible !important;
    text-shadow: 0 10px 35px rgba(0, 0, 0, 0.35);
}

.kastor-hero-subtitle{
    display: block !important;
    max-width: 640px !important;
    width: 100%;
    color: rgba(255, 255, 255, 0.92);
    font-size: 20px;
    line-height: 1.65;
    font-weight: 500;
    margin: 0 0 32px 0 !important;
    text-align: left;
    white-space: normal !important;
}

.kastor-hero-actions{
    display: flex !important;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 16px;
    width: 100%;
}

.kastor-hero-btn{
    width: auto !important;
    min-width: 190px;
    min-height: 54px;
    padding: 15px 28px;
    font-size: 15px;
    line-height: 1.2;
    white-space: nowrap;
}

@media (max-width: 991.98px){
    .hero-video{
        min-height: 640px;
    }

    .hero-title-only-container{
        padding-bottom: 70px;
    }

    .hero-title-only-box{
        max-width: 680px !important;
    }

    .hero-title-only{
        max-width: 680px;
        font-size: clamp(38px, 7vw, 62px) !important;
    }

    .kastor-hero-subtitle{
        max-width: 600px !important;
        font-size: 18px;
    }
}

@media (max-width: 767.98px){
    .hero-video{
        min-height: 610px;
    }

    .hero-title-only-container{
        align-items: flex-end;
        padding-bottom: 52px;
    }

    .hero-title-only{
        font-size: 42px !important;
        line-height: 1.08 !important;
    }

    .kastor-hero-subtitle{
        font-size: 16px;
        line-height: 1.6;
        margin-bottom: 24px !important;
    }

    .kastor-hero-actions{
        flex-direction: column;
        align-items: stretch;
    }

    .kastor-hero-btn{
        width: 100% !important;
    }
}

@media (max-width: 575.98px){
    .hero-video{
        min-height: 560px;
    }

    .hero-title-only{
        font-size: 36px !important;
    }
}


/* =========================================
   KASTOR HERO - Positionnement forcé
   ========================================= */

.kastor-hero-main {
    position: relative !important;
    min-height: 760px !important;
    overflow: hidden !important;
}

.kastor-hero-main .hero-bg-video,
.kastor-hero-main .hero-bg-video video {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.kastor-hero-position {
    position: absolute !important;
    inset: 0 !important;
    z-index: 5 !important;
    height: auto !important;
    display: block !important;
    pointer-events: none;
}

.kastor-hero-position .row,
.kastor-hero-position .col-lg-12 {
    height: 100% !important;
}

.kastor-hero-box {
    position: absolute !important;
    left: 15px !important;
    bottom: 0px !important;
    width: 100% !important;
    max-width: 760px !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: auto;
}

.kastor-hero-box .hero-title-only {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.kastor-hero-subtitle {
    max-width: 720px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #ffffff !important;
    font-size: 27px !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    text-shadow: 0 3px 14px rgba(0, 0, 0, 0.45) !important;
}

.kastor-hero-actions {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    margin: 34px 0 0 0 !important;
    padding: 0 !important;
}

.kastor-hero-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 64px !important;
    padding: 0 42px !important;
    margin: 0 !important;
    border-radius: 50px !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;
    white-space: nowrap !important;
}

.kastor-hero-btn-primary {
    background: #8b000d !important;
    color: #ffffff !important;
    border: 1px solid #8b000d !important;
}

.kastor-hero-btn-secondary {
    background: rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255, 255, 255, 0.75) !important;
    backdrop-filter: blur(10px);
}

/* Mobile */
@media (max-width: 767px) {
    .kastor-hero-main {
        min-height: 680px !important;
    }

    .kastor-hero-box {
        left: 15px !important;
        right: 15px !important;
        bottom: 70px !important;
        max-width: calc(100% - 30px) !important;
    }

    .kastor-hero-subtitle {
        font-size: 22px !important;
        line-height: 1.45 !important;
    }

    .kastor-hero-actions {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 14px !important;
        margin-top: 26px !important;
    }

    .kastor-hero-btn {
        width: 100% !important;
        max-width: 340px !important;
        min-height: 58px !important;
        padding: 0 28px !important;
        font-size: 16px !important;
    }
}

.kastor-hero-btn:hover,
.kastor-hero-btn:focus,
.kastor-hero-btn:active {
    color: #ffffff !important;
}

.kastor-hero-btn-primary:hover,
.kastor-hero-btn-primary:focus,
.kastor-hero-btn-primary:active {
    color: #ffffff !important;
}

.kastor-hero-btn-secondary:hover,
.kastor-hero-btn-secondary:focus,
.kastor-hero-btn-secondary:active {
    color: #ffffff !important;
}


@media (max-width: 991.98px) {
    .kastor-maison-detail-layout {
        grid-template-columns: 1fr !important;
    }

    .kastor-maison-sections-sidebar {
        display: none !important;
    }
}


/* =========================================
   KASTOR TRUST SECTION - SUPPRESSION HOVER
   Section : Construire et investir en toute confiance
   ========================================= */

.kastor-trust-section .service-item,
.kastor-trust-section .service-item *,
.kastor-trust-section .service-item::before,
.kastor-trust-section .service-item::after{
    transition: none !important;
}

.kastor-trust-section .service-item:hover{
    transform: none !important;
    box-shadow: none !important;
}

.kastor-trust-section .service-item:hover .service-item-image img,
.kastor-trust-section .service-item:hover .service-item-image figure img{
    transform: none !important;
    filter: none !important;
}

.kastor-trust-section .service-item:hover .service-item-body,
.kastor-trust-section .service-item:hover .service-item-body-content,
.kastor-trust-section .service-item:hover .service-item-content,
.kastor-trust-section .service-item:hover .icon-box{
    transform: none !important;
}

.kastor-trust-section .service-item:hover .service-item-content h2,
.kastor-trust-section .service-item:hover .service-item-content p{
    color: inherit !important;
}

.kastor-trust-section .service-item:hover::before,
.kastor-trust-section .service-item:hover::after{
    transform: none !important;
}


/* =========================================================
   Styles centralisés depuis les pages publiques — étape 1
   ========================================================= */

/* Source : contents/pages/nous.php */
.kastor-about-two-cards {
        margin-top: 10px !important;
        color: #1f1f1f;
        background: #f8f6f5;
    }

    .kastor-about-two-cards .page-header {
        margin-top: 0 !important;
        padding: 5px 0 5px !important;
        min-height: 0 !important;
        position: relative;
        z-index: 1;
    }

    .kastor-about-two-cards .page-header::before {
        opacity: 0.30 !important;
    }

    .kastor-about-two-cards .page-header-box h1 {
        font-size: 44px !important;
        line-height: 1.1 !important;
        margin-bottom: 6px !important;
    }

    .kastor-about-two-cards .about-minimal-section {
        padding: 86px 0 96px;
        position: relative;
        overflow: hidden;
        background:
            radial-gradient(circle at top right, rgba(118, 0, 13, 0.08), transparent 34%),
            linear-gradient(135deg, #ffffff 0%, #fbf8f7 48%, #f2eeee 100%);
    }

    .kastor-about-two-cards .about-minimal-intro {
        max-width: 920px;
        margin: 0 auto 48px;
        text-align: center;
    }

    .kastor-about-two-cards .about-eyebrow {
        display: inline-flex;
        align-items: center;
        padding: 8px 15px;
        border-radius: 999px;
        background: rgba(112, 0, 8, 0.08);
        color: #76000d;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: uppercase;
        margin-bottom: 18px;
    }

    .kastor-about-two-cards .about-minimal-intro h2 {
        font-size: 54px;
        line-height: 1.05;
        letter-spacing: -0.045em;
        margin-bottom: 18px;
    }

    .kastor-about-two-cards .about-minimal-intro h2 span,
    .kastor-about-two-cards .about-card h3 span {
        color: #87000d;
    }

    .kastor-about-two-cards .about-minimal-intro p {
        font-size: 18px;
        line-height: 1.8;
        color: #505050;
        margin: 0 auto;
        max-width: 780px;
    }

    .kastor-about-two-cards .about-card {
        height: 100%;
        padding: 42px;
        border-radius: 34px;
        background: #fff;
        border: 1px solid rgba(0, 0, 0, 0.06);
        box-shadow: 0 24px 70px rgba(0, 0, 0, 0.075);
        position: relative;
        overflow: hidden;
        transition: transform .25s ease, box-shadow .25s ease;
    }

    .kastor-about-two-cards .about-card:hover {
        transform: translateY(-4px);
        box-shadow: 0 30px 90px rgba(0, 0, 0, 0.10);
    }

    .kastor-about-two-cards .about-card::after {
        content: "";
        position: absolute;
        width: 260px;
        height: 260px;
        border-radius: 50%;
        right: -140px;
        top: -140px;
        background: rgba(118, 0, 13, 0.075);
    }

    .kastor-about-two-cards .about-card-kicker {
        display: inline-flex;
        position: relative;
        z-index: 1;
        padding: 7px 13px;
        border-radius: 999px;
        background: rgba(112, 0, 8, 0.08);
        color: #76000d;
        font-size: 13px;
        font-weight: 800;
        letter-spacing: .06em;
        text-transform: uppercase;
        margin-bottom: 20px;
    }

    .kastor-about-two-cards .about-card h3 {
        position: relative;
        z-index: 1;
        font-size: 34px;
        line-height: 1.12;
        letter-spacing: -0.03em;
        margin-bottom: 24px;
    }

    .kastor-about-two-cards .about-card p {
        position: relative;
        z-index: 1;
        font-size: 16px;
        line-height: 1.78;
        color: #4f4f4f;
        margin-bottom: 16px;
    }

    .kastor-about-two-cards .about-card-points {
        position: relative;
        z-index: 1;
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: 28px;
    }

    .kastor-about-two-cards .about-card-points span {
        display: inline-flex;
        align-items: center;
        padding: 9px 13px;
        border-radius: 999px;
        background: #f8f4f3;
        border: 1px solid rgba(118, 0, 13, 0.10);
        color: #76000d;
        font-size: 13px;
        font-weight: 700;
    }

    .kastor-about-two-cards .about-action-row {
        margin-top: 42px;
        text-align: center;
    }

    .kastor-about-two-cards .about-action-row .btn-default {
        margin: 6px;
    }

    .kastor-about-two-cards .btn-outline-about {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 54px;
        padding: 14px 26px;
        border-radius: 999px;
        border: 1px solid rgba(112, 0, 8, 0.28);
        color: #76000d;
        font-weight: 700;
        transition: all .25s ease;
        margin: 6px;
    }

    .kastor-about-two-cards .btn-outline-about:hover {
        background: #76000d;
        color: #fff;
    }

    @media (max-width: 991px) {
        .kastor-about-two-cards .about-minimal-intro h2 {
            font-size: 42px;
        }

        .kastor-about-two-cards .about-card {
            margin-bottom: 24px;
        }
    }

    @media (max-width: 767px) {
        .kastor-about-two-cards {
            margin-top: -22px !important;
        }

        .kastor-about-two-cards .page-header {
            padding: 56px 0 5px !important;
        }

        .kastor-about-two-cards .page-header-box h1 {
            font-size: 30px !important;
        }

        .kastor-about-two-cards .about-minimal-section {
            padding: 58px 0 68px;
        }

        .kastor-about-two-cards .about-minimal-intro {
            margin-bottom: 32px;
            text-align: left;
        }

        .kastor-about-two-cards .about-minimal-intro h2 {
            font-size: 34px;
        }

        .kastor-about-two-cards .about-minimal-intro p,
        .kastor-about-two-cards .about-card p {
            font-size: 15.5px;
        }

        .kastor-about-two-cards .about-card {
            padding: 28px;
            border-radius: 26px;
        }

        .kastor-about-two-cards .about-card h3 {
            font-size: 28px;
        }

        .kastor-about-two-cards .about-action-row {
            text-align: left;
        }
    }

/* Source : contents/pages/services.php */
/* Page collée au menu : suppression de l'espace blanc au-dessus du bandeau */
    .kastor-modern {
        margin-top: -90px !important;
    }

    /* En-tête de page compact : réduction maximale de la grande section rouge */
    .kastor-modern .page-header {
        margin-top: 0 !important;
        padding: 5px 0 5px !important;
        min-height: 0 !important;
        position: relative;
        z-index: 1;
    }

    .kastor-modern .page-header::before {
        opacity: 0.38 !important;
    }

    .kastor-modern .page-header-box h1 {
        font-size: 44px !important;
        line-height: 1.1 !important;
        margin-bottom: 8px !important;
    }

    .kastor-modern .page-header-box ol li.breadcrumb-item {
        font-size: 14px !important;
    }

    @media (max-width: 767px) {
        .kastor-modern {
            margin-top: -22px !important;
        }

        .kastor-modern .page-header {
            padding: 56px 0 5px !important;
        }

        .kastor-modern .page-header-box h1 {
            font-size: 30px !important;
        }
    }

    .kastor-modern .service-item-content p,
    .kastor-modern .section-title-content p,
    .kastor-modern .who-we-tab-header-content p,
    .kastor-modern .accordion-body p {
        line-height: 1.75;
    }

    .kastor-modern .service-item-content h2 {
        min-height: 5px;
    }

    .kastor-modern .service-item-content p {
        min-height: 40px;
    }

    .kastor-modern .expertise-intro {
        margin-bottom: 20px;
    }

    .kastor-modern .expertise-kicker {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 8px 14px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.08);
        margin-bottom: 18px;
        font-size: 14px;
        font-weight: 600;
        letter-spacing: 0.03em;
        text-transform: uppercase;
    }

    .kastor-modern .modern-metric-card {
        height: 100%;
        padding: 28px;
        border-radius: 22px;
        background: #fff;
        box-shadow: 0 16px 45px rgba(0, 0, 0, 0.06);
        border: 1px solid rgba(0, 0, 0, 0.06);
    }

    .kastor-modern .modern-metric-card strong {
        display: block;
        margin-bottom: 8px;
        font-size: 34px;
        line-height: 1;
    }

    .kastor-modern .modern-metric-card span {
        color: inherit;
        opacity: .78;
    }

    .kastor-modern .process-card {
        height: 100%;
        padding: 32px;
        border-radius: 24px;
        background: #fff;
        border: 1px solid rgba(0, 0, 0, 0.06);
        box-shadow: 0 18px 50px rgba(0, 0, 0, 0.06);
    }

    .kastor-modern .process-card .process-number {
        display: inline-flex;
        width: 48px;
        height: 48px;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        margin-bottom: 18px;
        font-weight: 700;
        background: var(--accent-color, #f5a623);
        color: #fff;
    }

    .kastor-modern .process-card h3,
    .kastor-modern .commitment-card h3 {
        margin-bottom: 12px;
    }

    .kastor-modern .process-card p,
    .kastor-modern .commitment-card p {
        margin-bottom: 0;
        line-height: 1.7;
    }

    .kastor-modern .commitment-card {
        height: 100%;
        padding: 30px;
        border-radius: 22px;
        background: rgba(255, 255, 255, 0.06);
        border: 1px solid rgba(255, 255, 255, 0.12);
    }

    .kastor-modern .cta-service-box {
        padding: 42px;
        border-radius: 28px;
        background: #fff;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08);
    }

    @media (max-width: 767px) {
        .kastor-modern .service-item-content h2,
        .kastor-modern .service-item-content p {
            min-height: auto;
        }

        .kastor-modern .cta-service-box {
            padding: 28px;
        }
    }

/* Source : contents/pages/investir.php */
.kastor-invest {
        margin-top: 10px !important;
        color: #1f1f1f;
    }

    .kastor-invest .page-header {
        margin-top: 0 !important;
        padding: 5px 0 5px !important;
        min-height: 0 !important;
        position: relative;
        z-index: 1;
    }

    .kastor-invest .page-header::before {
        opacity: 0.32 !important;
    }

    .kastor-invest .page-header-box h1 {
        font-size: 44px !important;
        line-height: 1.1 !important;
        margin-bottom: 6px !important;
    }

    .kastor-invest .page-header-box ol li.breadcrumb-item {
        font-size: 14px !important;
    }

    .kastor-invest .investment-hero {
        padding: 90px 0 70px;
        background: linear-gradient(135deg, #fff 0%, #faf7f7 48%, #f3eeee 100%);
        position: relative;
        overflow: hidden;
    }

    .kastor-invest .investment-hero::after {
        content: "";
        position: absolute;
        top: -180px;
        right: -140px;
        width: 430px;
        height: 430px;
        border-radius: 50%;
        background: rgba(112, 0, 8, 0.08);
    }

    .kastor-invest .investment-eyebrow {
        display: inline-flex;
        align-items: center;
        padding: 8px 15px;
        border-radius: 999px;
        background: rgba(112, 0, 8, 0.08);
        color: #76000d;
        font-size: 13px;
        font-weight: 700;
        letter-spacing: .06em;
        text-transform: uppercase;
        margin-bottom: 18px;
    }

    .kastor-invest .investment-hero h2 {
        font-size: 56px;
        line-height: 1.04;
        margin-bottom: 24px;
        letter-spacing: -0.04em;
    }

    .kastor-invest .investment-hero h2 span,
    .kastor-invest .section-title h2 span {
        color: #87000d;
    }

    .kastor-invest .investment-hero p {
        font-size: 18px;
        line-height: 1.8;
        max-width: 760px;
        margin-bottom: 30px;
    }

    .kastor-invest .hero-actions {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 15px;
    }

    .kastor-invest .btn-outline-invest {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 54px;
        padding: 14px 26px;
        border-radius: 999px;
        border: 1px solid rgba(112, 0, 8, 0.28);
        color: #76000d;
        font-weight: 700;
        transition: all .25s ease;
    }

    .kastor-invest .btn-outline-invest:hover {
        background: #76000d;
        color: #fff;
    }

    .kastor-invest .hero-panel {
        position: relative;
        z-index: 1;
        padding: 34px;
        border-radius: 30px;
        background: #fff;
        box-shadow: 0 24px 70px rgba(0, 0, 0, 0.09);
        border: 1px solid rgba(0, 0, 0, 0.06);
    }

    .kastor-invest .hero-panel h3 {
        margin-bottom: 18px;
        font-size: 24px;
    }

    .kastor-invest .market-list {
        padding: 0;
        margin: 0;
        list-style: none;
    }

    .kastor-invest .market-list li {
        display: flex;
        gap: 12px;
        padding: 14px 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.06);
        line-height: 1.55;
    }

    .kastor-invest .market-list li:last-child {
        border-bottom: none;
    }

    .kastor-invest .market-list li::before {
        content: "";
        width: 9px;
        height: 9px;
        min-width: 9px;
        margin-top: 8px;
        border-radius: 50%;
        background: #87000d;
    }

    .kastor-invest .investment-section {
        padding: 90px 0;
    }

    .kastor-invest .investment-section.bg-soft {
        background: #faf7f7;
    }

    .kastor-invest .section-title-content p,
    .kastor-invest .investment-card p,
    .kastor-invest .process-card p,
    .kastor-invest .profile-card p,
    .kastor-invest .accordion-body p,
    .kastor-invest .disclaimer-box p {
        line-height: 1.75;
    }

    .kastor-invest .investment-card,
    .kastor-invest .reason-card,
    .kastor-invest .process-card,
    .kastor-invest .profile-card {
        height: 100%;
        background: #fff;
        border-radius: 26px;
        border: 1px solid rgba(0, 0, 0, 0.06);
        box-shadow: 0 18px 50px rgba(0, 0, 0, 0.06);
        overflow: hidden;
    }

    .kastor-invest .investment-card-image figure,
    .kastor-invest .investment-card-image img {
        width: 100%;
        height: 210px;
        object-fit: cover;
        margin: 0;
    }

    .kastor-invest .investment-card-body {
        padding: 26px;
    }

    .kastor-invest .investment-card-body .icon-box {
        width: 54px;
        height: 54px;
        display: flex;
        align-items: center;
        justify-content: center;
        border-radius: 18px;
        background: rgba(112, 0, 8, 0.07);
        margin-bottom: 18px;
    }

    .kastor-invest .investment-card-body .icon-box img {
        width: 30px;
        height: 30px;
    }

    .kastor-invest .investment-card h3 {
        margin-bottom: 12px;
        font-size: 22px;
    }

    .kastor-invest .reason-card,
    .kastor-invest .profile-card {
        padding: 30px;
    }

    .kastor-invest .reason-card strong {
        display: inline-flex;
        width: 42px;
        height: 42px;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        background: #87000d;
        color: #fff;
        margin-bottom: 18px;
    }

    .kastor-invest .process-card {
        padding: 30px;
    }

    .kastor-invest .process-number {
        display: inline-flex;
        width: 50px;
        height: 50px;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        margin-bottom: 20px;
        background: #87000d;
        color: #fff;
        font-weight: 800;
    }

    .kastor-invest .document-box {
        padding: 38px;
        border-radius: 30px;
        background: #fff;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.07);
        border: 1px solid rgba(0, 0, 0, 0.06);
    }

    .kastor-invest .document-list {
        margin: 0;
        padding: 0;
        list-style: none;
        columns: 2;
        column-gap: 40px;
    }

    .kastor-invest .document-list li {
        break-inside: avoid;
        padding: 12px 0 12px 28px;
        position: relative;
        line-height: 1.55;
    }

    .kastor-invest .document-list li::before {
        content: "✓";
        position: absolute;
        left: 0;
        top: 12px;
        color: #87000d;
        font-weight: 800;
    }

    .kastor-invest .profile-card h3 {
        font-size: 22px;
        margin-bottom: 12px;
    }

    .kastor-invest .profile-card {
        border-left: 4px solid #87000d;
    }

    .kastor-invest .disclaimer-box {
        padding: 34px;
        border-radius: 26px;
        background: #2a0004;
        color: #fff;
    }

    .kastor-invest .disclaimer-box h3 {
        color: #fff;
        margin-bottom: 12px;
    }

    .kastor-invest .disclaimer-box p {
        margin-bottom: 0;
        opacity: .9;
    }

    .kastor-invest .cta-invest-box {
        padding: 46px;
        border-radius: 32px;
        background: linear-gradient(135deg, #3b0006 0%, #76000d 100%);
        color: #fff;
        box-shadow: 0 25px 70px rgba(75, 0, 8, 0.22);
    }

    .kastor-invest .cta-invest-box .section-title h2,
    .kastor-invest .cta-invest-box .section-title span,
    .kastor-invest .cta-invest-box p {
        color: #fff;
    }

    .kastor-invest .cta-invest-box p {
        opacity: .9;
        margin: 14px 0 0;
    }

    .kastor-invest .faq-accordion .accordion-body ul {
        margin-bottom: 0;
    }

    @media (max-width: 991px) {
        .kastor-invest .investment-hero h2 {
            font-size: 44px;
        }

        .kastor-invest .hero-panel {
            margin-top: 35px;
        }

        .kastor-invest .document-list {
            columns: 1;
        }
    }

    @media (max-width: 767px) {
        .kastor-invest {
            margin-top: -22px !important;
        }

        .kastor-invest .page-header {
            padding: 56px 0 5px !important;
        }

        .kastor-invest .page-header-box h1 {
            font-size: 30px !important;
        }

        .kastor-invest .investment-hero {
            padding: 64px 0 52px;
        }

        .kastor-invest .investment-hero h2 {
            font-size: 34px;
        }

        .kastor-invest .investment-section {
            padding: 64px 0;
        }

        .kastor-invest .hero-panel,
        .kastor-invest .document-box,
        .kastor-invest .cta-invest-box,
        .kastor-invest .disclaimer-box {
            padding: 26px;
        }
    }

/* Source : contents/pages/contact.php */
/* Header compact : réduction forte de la grande zone rouge */
.contact-page-header-compact {
        padding: 5px 0 5px !important;
        min-height: 0 !important;
        position: relative;
}

.contact-page-header-compact .page-header-box h1 {
    font-size: 44px !important;
    line-height: 1.1 !important;
    margin-bottom: 5px !important;
}

.contact-page-header-compact .breadcrumb {
    margin-bottom: 0 !important;
}

.contact-page-header-compact .breadcrumb-item,
.contact-page-header-compact .breadcrumb-item a {
    font-size: 15px !important;
}

@media (max-width: 991px) {
    .contact-page-header-compact {
        padding: 48px 0 36px !important;
    }

    .contact-page-header-compact .page-header-box h1 {
        font-size: 40px !important;
    }
}

@media (max-width: 767px) {
    .contact-page-header-compact {
        padding: 40px 0 32px !important;
    }

    .contact-page-header-compact .page-header-box h1 {
        font-size: 32px !important;
    }
}

/* Styles auparavant déclarés dans les attributs HTML */
.itelo-inline-001 { position: relative; display: inline-block; }
.itelo-inline-002 { position: relative; display: inline-block; translate: none; rotate: none; scale: none; opacity: 1; visibility: inherit; transform: translate(0px, 0px); }
.itelo-inline-003 { padding-top:30px; }
.itelo-inline-004 { background:#e8f5e9;border:1px solid #c8e6c9;padding:16px;border-radius:12px; }
.itelo-inline-005 { padding:40px 0; }
.itelo-inline-006 { display:grid; grid-template-columns:2fr 1fr; gap:28px; }
.itelo-inline-007 { margin-bottom:24px; }
.itelo-inline-008 { scroll-margin-top:20px; }
.itelo-inline-009 { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:24px; margin-bottom:24px; }
.itelo-inline-010 { margin-top:0; }
.itelo-inline-011 { margin:0 0 18px; line-height:1.8; color:#374151; }
.itelo-inline-012 { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.itelo-inline-013 { border:1px solid #f1f5f9; border-radius:12px; padding:18px; background:#f9fafb; }
.itelo-inline-014 { list-style:none; padding:0; margin:0; }
.itelo-inline-015 { padding:10px 0; border-bottom:1px solid #e5e7eb; }
.itelo-inline-016 { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:24px; margin-bottom:24px; scroll-margin-top:20px; }
.itelo-inline-017 { margin:0; line-height:1.8; color:#374151; }
.itelo-inline-018 { position:relative; width:100%; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:12px; background:#000; }
.itelo-inline-019 { width:100%; max-height:520px; border-radius:12px; display:block; background:#000; }
.itelo-inline-020 { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:18px; }
.itelo-inline-021 { display:block; margin-top:10px; color:#4a0202; font-weight:700; }
.itelo-inline-022 { background:#fff; border:1px solid #e5e7eb; border-radius:16px; padding:24px; height:100%; box-sizing:border-box; }
.itelo-inline-023 { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
.itelo-inline-024 { display:block; text-decoration:none; color:#4a0202; font-weight:600; font-size:16px; line-height:1.4; padding:10px 12px; border:1px solid #e5e7eb; border-radius:10px; background:#f9fafb; }
.itelo-inline-025 { display:block; margin-bottom:8px; font-weight:700; color:#111827; }
.itelo-inline-026 { width:100%; height:52px; padding:0 16px; border:1px solid #d1d5db; border-radius:8px; background:#fff; color:#111827; }
.itelo-inline-027 { display:flex; gap:12px; flex-wrap:wrap; margin-top:8px; }
.itelo-inline-028 { height:50px; padding:0 24px; border:none; border-radius:8px; background:#4a0202; color:#fff; font-weight:700; cursor:pointer; }
.itelo-inline-029 { padding:24px; border:1px solid #e5e7eb; border-radius:12px; background:#fff; color:#374151; }
.itelo-inline-030 { box-sizing:border-box;width:100%;max-width:100%;padding:70px 20px; }
.itelo-inline-031 { box-sizing:border-box;width:100%;max-width:1100px;margin:0 auto; }
.itelo-inline-032 { box-sizing:border-box;width:100%;max-width:100%;font-size:17px;line-height:1.8;overflow-wrap:anywhere;word-break:break-word; }
.itelo-inline-033 { margin:0; }
.itelo-inline-034 { padding:50px 20px;background:#f8fafc;border-radius:18px;margin:24px 0; }
.itelo-inline-035 { max-width:1100px;margin:0 auto; }
.itelo-inline-036 { box-sizing:border-box;width:100%;max-width:100%;overflow:hidden;padding:56px 20px;background:#f8fafc;border-radius:18px;margin:24px 0; }
.itelo-inline-037 { box-sizing:border-box;width:100%;max-width:1180px;margin:0 auto; }
.itelo-inline-038 { margin:0 0 12px;font-size:32px;line-height:1.2;color:#0f172a;overflow-wrap:anywhere;word-break:break-word; }
.itelo-inline-039 { margin:0 0 26px;color:#475569;line-height:1.75;overflow-wrap:anywhere;word-break:break-word; }
.itelo-inline-040 { box-sizing:border-box;width:100%;max-width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:20px;align-items:stretch; }
.itelo-inline-041 { box-sizing:border-box;width:100%;max-width:100%;background:#ffffff;border:1px solid #e2e8f0;border-radius:16px;padding:22px;min-width:0;overflow-wrap:anywhere;word-break:break-word;box-shadow:0 10px 24px rgba(15,23,42,0.06); }
.itelo-inline-042 { margin:0 0 10px;font-size:20px;line-height:1.3;color:#0f172a;overflow-wrap:anywhere;word-break:break-word; }
.itelo-inline-043 { margin:0;color:#475569;line-height:1.7;overflow-wrap:anywhere;word-break:break-word; }
.itelo-inline-044 { box-sizing:border-box;width:100%;max-width:860px;margin:0 auto; }
.itelo-inline-045 { box-sizing:border-box;width:100%;max-width:860px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:20px;align-items:stretch; }
.itelo-inline-046 { position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden; }
.itelo-inline-047 { font-family:system-ui;margin:4rem auto;max-width:720px }
.itelo-inline-048 { margin-bottom:40px; padding:24px; border:1px solid #e5e7eb; border-radius:12px; background:#fff; }
.itelo-inline-049 { display:inline-flex; align-items:center; justify-content:center; height:50px; padding:0 24px; border-radius:8px; background:#f3f4f6; color:#111827; font-weight:700; text-decoration:none; }
.itelo-inline-050 { width:100%; max-height:520px; object-fit:cover; border-radius:16px; display:block; }
.itelo-inline-051 { width:100%; max-height:420px; object-fit:cover; border-radius:12px; display:block; }
.itelo-inline-052 { position:absolute; top:0; left:0; width:100%; height:100%; border:0; }
.itelo-inline-053 { display:block; width:100%; border:1px solid #e5e7eb; border-radius:14px; background:#f9fafb; padding:12px; cursor:pointer; text-align:left; }
.itelo-inline-054 { width:100%; height:260px; object-fit:contain; background:#fff; border-radius:10px; display:block; }
.itelo-inline-055 { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:18px; }

/* =========================================================
   Système typographique Kastor — étape 2
   Hiérarchie inspirée des grands groupes immobiliers
   ========================================================= */
:root {
    --kastor-title-xl: clamp(1.125rem, 1.6vw, 1.375rem);
    --kastor-title-lg: clamp(0.9375rem, 1.35vw, 1.1875rem);
    --kastor-title-md: clamp(0.75rem, 1vw, 0.9375rem);
    --kastor-title-sm: clamp(0.5625rem, 0.7vw, 0.65625rem);
    --kastor-title-leading: 1.12;
    --kastor-title-tracking: -0.035em;
}

/* Titres principaux des pages intérieures */
.page-header-box h1,
.kastor-about-two-cards .page-header-box h1,
.kastor-modern .page-header-box h1,
.kastor-invest .page-header-box h1,
.contact-page-header-compact .page-header-box h1 {
    max-width: 980px;
    font-size: var(--kastor-title-xl) !important;
    line-height: 1.08 !important;
    font-weight: 600 !important;
    letter-spacing: -0.03em !important;
    text-wrap: balance;
}

/* Titres des grandes sections */
.section-title h1,
.section-title h2,
.section-title-center h2,
.kastor-about-two-cards .about-minimal-intro h2,
.kastor-invest .investment-hero h2 {
    font-size: var(--kastor-title-lg) !important;
    line-height: var(--kastor-title-leading) !important;
    font-weight: 600 !important;
    letter-spacing: var(--kastor-title-tracking) !important;
    text-wrap: balance;
}

/* L’accent reste chromatique, sans italique systématique */
.section-title h1 span,
.section-title h2 span,
.text-anime-style-2 span,
.kastor-about-two-cards .about-minimal-intro h2 span,
.kastor-invest .investment-hero h2 span {
    color: var(--kastor-red);
    font-style: normal !important;
}

/* Sur-titres éditoriaux */
.section-title .section-sub-title,
.section-title-center .section-sub-title,
.investment-eyebrow,
.about-eyebrow {
    font-size: 0.75rem !important;
    line-height: 1.35 !important;
    font-weight: 750 !important;
    letter-spacing: 0.13em !important;
    text-transform: uppercase;
}

/* Titres intermédiaires et titres des fiches immobilières */
.kastor-invest .section-title h2,
.kastor-modern .section-title h2,
.kastor-maison-detail-layout h2 {
    line-height: 1.18;
    letter-spacing: -0.025em;
}

.kastor-maison-detail-layout h2 {
    font-size: var(--kastor-title-md);
    font-weight: 600;
}

/* Titres des cartes et blocs fonctionnels */
.service-item-content h2,
.kastor-home-maison-title,
.process-card h3,
.commitment-card h3,
.investment-card h3,
.profile-card h3,
.about-card h3,
.hero-panel h3 {
    font-size: var(--kastor-title-sm) !important;
    line-height: 1.28 !important;
    font-weight: 600 !important;
    letter-spacing: -0.018em !important;
    text-wrap: balance;
}

/* FAQ : lisible sans concurrencer les titres de section */
.accordion-header,
.accordion-button,
.kastor-faq-section .service-item-content h2 {
    font-size: clamp(0.5rem, 0.625vw, 0.56rem) !important;
    line-height: 1.45 !important;
    font-weight: 600 !important;
    letter-spacing: -0.012em !important;
}

/* Rythme vertical uniforme */
.section-title h1,
.section-title h2,
.section-title-center h2 {
    margin-bottom: 0;
}

.section-title-content p,
.section-title p {
    font-size: clamp(1rem, 1.15vw, 1.1rem);
    line-height: 1.75;
}

@media (max-width: 991.98px) {
    :root {
        --kastor-title-xl: clamp(1.0625rem, 2.25vw, 1.1875rem);
        --kastor-title-lg: clamp(0.875rem, 2vw, 1.0625rem);
    }
}

@media (max-width: 767.98px) {
    :root {
        --kastor-title-xl: 0.9375rem;
        --kastor-title-lg: 0.8125rem;
        --kastor-title-md: 0.6875rem;
        --kastor-title-sm: 0.53125rem;
    }

    .page-header-box h1,
    .kastor-about-two-cards .page-header-box h1,
    .kastor-modern .page-header-box h1,
    .kastor-invest .page-header-box h1,
    .contact-page-header-compact .page-header-box h1 {
        letter-spacing: -0.025em !important;
    }
}

/* =========================================================
   En-têtes de pages — dégradé assorti à la bordure du menu
   ========================================================= */
.page-header.bg-section {
    background-color: transparent !important;
    background-image:
        linear-gradient(
            to right,
            rgba(122, 0, 0, 0) 0%,
            rgba(122, 0, 0, 0.18) 12%,
            rgba(122, 0, 0, 0.36) 24%,
            rgba(122, 0, 0, 0.52) 38%,
            rgba(122, 0, 0, 0.62) 50%,
            rgba(122, 0, 0, 0.52) 62%,
            rgba(122, 0, 0, 0.36) 76%,
            rgba(122, 0, 0, 0.18) 88%,
            rgba(122, 0, 0, 0) 100%
        ),
        linear-gradient(
            to right,
            transparent 34%,
            rgba(36, 0, 4, 0.68) 43%,
            #240004 50%,
            rgba(36, 0, 4, 0.68) 57%,
            transparent 66%
        ) !important;
    background-position: center !important;
    background-size: 100% 100% !important;
}

.page-header.bg-section::before {
    background: transparent !important;
    opacity: 0 !important;
}

.page-header.bg-section::after {
    background: transparent !important;
}

.page-header-box h1 {
    color: #ffffff !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.46);
}

.page-header-box h1 span,
.page-header-box h1.text-anime-style-1 span,
.page-header-box h1.text-anime-style-2 span,
.page-header-box h1.text-anime-style-3 span {
    color: #ffffff !important;
    font-style: normal !important;
}

/* =========================================================
   Contact et Maisons disponibles — alignement sous le menu
   Les pages possédant leur propre réglage conservent celui-ci.
   ========================================================= */
@media (min-width: 992px) {
    :where(.page-header.bg-section) {
        margin-top: -20px !important;
    }

    .contact-page-header-compact {
        margin-top: 10px !important;
    }
}
