@charset "UTF-8";
@import url(main.css);
/************************************************ MODIFICATIONS GLOBALES ************************************************/
.spacer { display: none; }

main { overflow-y: visible !important; overflow-x: hidden; }

/*********************** BOUTONS ***********************/
button, input[type="button"], input[type="submit"], input[type="reset"], a[class*="btn"], a[class*="button"] { font-size: 12px; font-weight: 600 !important; text-transform: uppercase; letter-spacing: 0.07em; text-decoration: none; white-space: nowrap; padding: 8px 16px !important; border-radius: 999px; transition: all .3s ease; background: #788261; color: #FCFCFC !important; border: 1px solid #788261; }

button:hover, input[type="button"]:hover, input[type="submit"]:hover, input[type="reset"]:hover, a[class*="btn"]:hover, a[class*="button"]:hover { background: #33352B !important; color: #FCFCFC !important; border: 1px solid #33352B !important; }

a.bulle-link.d-flex.align-items-center.justify-content-center.rounded-circle.overflow-hidden.text-decoration-none { padding: 1.2rem; width: 80px; height: 80px; background: rgba(51, 53, 43, 0.5); backdrop-filter: blur(8px); }

/*********************** NAVBAR ***********************/
.navbar { position: fixed !important; top: .25rem; left: 0; right: 0; z-index: 1000; max-width: 1400px; margin: auto; padding: 1rem 2rem !important; height: auto; border-radius: 2rem; transition: all 0.8s ease; }

nav.navbar.scrolled { background: rgba(51, 53, 43, 0.5) !important; backdrop-filter: blur(8px); }

.nav-inner { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: center; height: 100%; width: 100%; }

.nav-left { display: flex; align-items: center; gap: 1.5rem; justify-content: flex-start; }

.nav-center { display: flex; align-items: center; justify-content: center; width: 12rem; justify-self: center; }

.nav-right { display: flex; align-items: center; gap: 8px; justify-content: flex-end; }

.nav-logo { position: absolute; top: 0; height: 6rem; display: flex; flex-direction: column; align-items: center; gap: .8rem; padding: 1rem; width: 12rem; transition: all .8s ease; }

.nav-logo img { transition: all .8s ease; }

.nav-logo img { height: 100%; object-fit: contain; }

.navbar.scrolled .nav-logo img:nth-child(1) { height: 0; opacity: 0; }

.navbar.scrolled .nav-logo { height: 100%; width: 14rem; gap: 0; }

.navbar.scrolled .nav-logo:hover { transform: scale(1.025); }

.navbar.scrolled .nav-logo img:nth-child(2) { filter: invert(0); }

.navbar:has(.burger.open) .nav-logo img:nth-child(1) { height: 0; opacity: 0; }

.navbar:has(.burger.open) .nav-logo { height: 100%; width: 14rem; gap: 0; }

.nav-link { font-size: 13px !important; font-weight: 400 !important; letter-spacing: 0.06em; color: #fcfcfc !important; text-decoration: none; padding: 6px 14px; position: relative; white-space: nowrap; transition: font-weight 0.3s ease !important; }

.nav-link:hover { font-weight: 600 !important; }

.btn-nav-outline { border: 1.5px solid #fcfcfc !important; color: #fcfcfc; background: transparent !important; }

.btn-nav-phone { display: inline-flex !important; align-items: center !important; gap: 0 !important; border: 1px solid #fcfcfc !important; color: #fcfcfc !important; background: transparent !important; text-decoration: none; white-space: nowrap !important; overflow: hidden !important; max-width: 48px !important; transition: max-width 0.8s ease-out, gap 0.6s ease-out, padding 0.8s ease-out !important; }

.btn-nav-phone .phone-number { max-width: 0; overflow: hidden; opacity: 0; transition: max-width 0.8s ease, opacity 0.3s ease !important; }

.btn-nav-phone:hover { max-width: 200px !important; gap: 8px !important; }

.btn-nav-phone:hover .phone-number { max-width: 160px !important; opacity: 1; }

/* Version mobile : numéro toujours visible */
.btn-nav-phone--mobile { max-width: 320px !important; gap: 8px !important; justify-content: center; }

.btn-nav-phone--mobile .phone-number { max-width: none; opacity: 1; }

.burger { display: none; background-color: transparent !important; border: 1.5px solid #fcfcfc; border-radius: 6px; width: 36px; height: 36px; cursor: pointer; flex-direction: column; align-items: center; justify-content: center; gap: 5px; padding: 0; }

.burger span { display: block; width: 18px; height: 1.5px; background: #fcfcfc; transition: transform 0.25s, opacity 0.2s; }

.burger.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }

.burger.open span:nth-child(2) { opacity: 0; }

.burger.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.mobile-menu { display: none; flex-direction: column; align-items: center; gap: 0; background: rgba(51, 53, 43, 0.5) !important; backdrop-filter: blur(8px); padding: 16px 0 20px; position: fixed; top: 64px; left: 0; right: 0; z-index: 25; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06); }

.mobile-menu.open { display: flex; }

.mobile-menu .nav-link { font-size: 14px; padding: 12px 24px; width: 100%; text-align: center; }

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

.mobile-divider { width: 48px; height: 0.5px; background: #e0ddd6; margin: 8px 0; }

.mobile-buttons { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 4px 24px 0; width: 100%; }

.mobile-buttons .btn-nav { width: 100%; max-width: 320px; text-align: center; display: block; }

@media (max-width: 992px) { .nav-left, .nav-right { display: none; } .nav-inner { grid-template-columns: 1fr 1fr; } .nav-center { justify-content: start; } .burger { display: flex; } .nav-right-mobile { display: flex; justify-content: flex-end; align-items: center; } }

a.nav-link.fs-6.dropdown-toggle.px-0.text-color-secondary.text-center { font-size: 13px !important; }

a.dropdown-item:hover { background-color: #36382d !important; }

::marker { font-size: 0; }

/*********************** FOOTER ***********************/
footer img.logo_nav { height: auto !important; width: 100% !important; }

.mx-4.mb-3.logo-footer.mx-auto { width: 100%; }

.py-4.bg-thirdColor { box-shadow: inset 0 1.5rem 2rem rgba(84, 54, 36, 0.2); }

footer .row.justify-content-center.justify-content-lg-around.text-center.text-lg-start { font-size: 14px; }

footer h5 { font-size: 24px; }

footer i.bi-instagram { transition: all .3s ease; }

footer i.bi-instagram:hover { color: #B98953; }

a#phone-analytics-tag-footer { transition: all .3s ease; }

a#phone-analytics-tag-footer:hover { color: #B98953; }

/************************************************ PAGE D'ACCUEIL ************************************************/
/*********************** HERO ***********************/
.hero { position: relative; width: 100%; height: 110vh; overflow: hidden; display: flex; align-items: center; justify-content: center; }

/* Sky / solid background behind everything */
.hero__sky { position: absolute; inset: 0; background: linear-gradient(180deg, #0d1117 0%, #1a2535 40%, #2e3d2f 75%, #1a1f10 100%); z-index: 0; }

/* Each layer shares the same sizing rules */
.layer { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; /* make layers tall enough to allow vertical shift without gaps */ height: 130%; object-fit: cover; object-position: bottom center; will-change: transform; pointer-events: none; }

.layer--back { z-index: 1; }

.layer--mid { z-index: 2; }

.layer--front { z-index: 3; }

/* ── HERO CONTENT ── */
.hero__content { position: relative; z-index: 10; text-align: center; transform: translateY(-8vh); max-width: 1200px; padding: 0 2rem; }

.hero__title { font-family: 'Cormorant', serif; font-weight: 300; font-size: clamp(3rem, 8vw, 7rem); line-height: 0.9; letter-spacing: -0.01em; color: rgba(252, 252, 252, 0.9); opacity: 0; animation: fadeUp 1.4s 0.6s forwards; }

.hero__title span { font-style: italic; color: rgba(245, 243, 210, 0.9); }

.hero__sub { margin-top: 1.8rem; font-size: clamp(0.9rem, 1.15vw, 1rem); font-weight: 300; letter-spacing: 0.12em; color: rgba(252, 252, 252, 0.8); opacity: 0; animation: fadeUp 1.4s 0.9s forwards; }

/* subtle vignette overlay */
.hero::after { content: ''; position: absolute; inset: 0; z-index: 9; background: radial-gradient(ellipse 80% 60% at 50% 60%, transparent 30%, rgba(0, 0, 0, 0.55) 100%); pointer-events: none; }

/* ── SCROLL CUE ── */
.scroll-cue { position: absolute; bottom: calc(2.5rem + 10vh); left: 50%; transform: translateX(-50%); z-index: 11; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; opacity: 0; animation: fadeUp 1.2s 1.6s forwards; cursor: default; }

.scroll-cue span { font-size: 0.65rem; letter-spacing: 0.3em; text-transform: uppercase; color: rgba(252, 252, 252, 0.8); }

.scroll-cue__line { width: 1px; height: 40px; background: rgba(252, 252, 252, 0.5); animation: lineGrow 2s 2s infinite ease-in-out; transform-origin: top; }

/* ── TRANSITION MONTAGNES ── */
/* ── TRANSITION MONTAGNES ── */
.hero__mountains { position: absolute; bottom: -1px; left: 0; width: 100%; height: 10vh; z-index: 10; pointer-events: none; }

.mountain { position: absolute; bottom: 0; left: 0; width: 100%; background: #fcfcfc; }

.mountain--back { opacity: 0.4; clip-path: url(#mountain-back); height: 100%; }

.mountain--mid { opacity: 0.65; clip-path: url(#mountain-mid); height: 80%; }

.mountain--front { opacity: 1; clip-path: url(#mountain-front); height: 60%; }

/* ── ANIMATIONS ── */
@keyframes fadeUp { from { opacity: 0;
    transform: translateY(22px); }
  to { opacity: 1;
    transform: translateY(0); } }

@keyframes lineGrow { 0% { transform: scaleY(0);
    opacity: 0; }
  30% { opacity: 1; }
  70% { transform: scaleY(1);
    opacity: 1; }
  100% { transform: scaleY(0);
    opacity: 0;
    transform-origin: bottom; } }

#partenaires .partenaires-carousel-wrapper.partenaires-slider.position-relative.z-1 { max-width: 1400px; margin: auto; padding: 1rem 0; border-radius: 100px; box-shadow: 0 0 2rem rgba(51, 53, 43, 0.1); }

#partenaires .partenaires-carousel-logo { filter: none !important; max-height: 80% !important; }

#partenaires .partenaires-carousel-logo:hover { transform: scale(1) !important; }

#partenaires.partenaires-section .titles p::after { content: ''; height: 1px; width: 25%; background: #B98953; margin-bottom: 1rem; opacity: .6; }

#partenaires.partenaires-section .titles p { font-family: 'Standard CT Stencil', sans-serif; text-transform: uppercase; font-size: 1.56rem; color: #B98953; opacity: 0.6; display: flex; flex-direction: column; align-items: center; gap: 1rem; }

#partenaires.partenaires-section h3 { font-size: clamp(3rem, 4rem, 6rem); line-height: .9; }

#partenaires .partenaires-carousel-item.partenaires-logo-container { max-width: 200px !important; width: 200px !important; height: 100px !important; }

#partenaires .partenaires-carousel-logo { object-fit: contain; border-radius: 0 !important; }

section.collection-section { padding: clamp(40px, 6vw, 80px) clamp(20px, 5vw, 64px); position: relative; }

.collection-header { display: flex; justify-content: space-between; align-items: end; width: 100%; margin-bottom: clamp(24px, 4vw, 48px); }

.collection-section h2 { font-size: clamp(3rem, 4rem, 6rem); font-weight: 500 !important; color: #33352B; width: fit-content; line-height: .9; }

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) { .collection-header { flex-direction: column; align-items: flex-start; } .collection-section h2 { font-size: clamp(1.8rem, 8vw, 3rem); width: 100%; } }

@media (max-width: 480px) { section.collection-section { padding: 40px 20px; } .collection-section h2 { font-size: 1.6rem; line-height: 1.1; } }

.collection-section h2 span { font-style: italic; color: #788261; }

/* ── pillar-cards wrapper ── */
.pillar-cards { display: flex; gap: 16px; height: clamp(320px, 50vw, 500px); }

.pillar-card { flex: 1; border-radius: 20px; overflow: hidden; position: relative; transition: flex 0.7s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.7s cubic-bezier(0.4, 0, 0.2, 1); }

.pillar-card-bg { position: absolute; inset: 0; background: #33352B no-repeat center center / cover; transition: transform 0.9s cubic-bezier(0.4, 0, 0.2, 1); }

/* Gradient overlay — s'assombrit légèrement sur les cartes inactives */
.pillar-card-overlay { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(51, 53, 43, 0.2) 20%, #33352b 100%); }

/* ── pillar-card body ── */
.pillar-card-body { position: absolute; bottom: 0; left: 0; right: 0; padding: 2rem; z-index: 1; }

/* Titre — toujours visible, positionné à 2rem du bas via padding-bottom sur .pillar-card-body */
.pillar-card-title { font-size: 1.5rem; font-family: 'Standard CT Stencil', sans-serif; line-height: 1.1; color: #fcfcfc; text-transform: uppercase; white-space: wrap; /* On pousse le contenu expandable vers le bas via margin */ margin-bottom: 12px; }

/* Contenu masqué — clip-path pour une transition très fluide sans saut */
.pillar-card-content { display: grid; grid-template-rows: 0fr; }

.pillar-card-content p { font-size: 1rem; font-weight: 300; line-height: 1.65; color: rgba(252, 252, 252, 0.8); padding-top: 2px; /* évite le clip du descender du h3 */ }

a.pillar-card-btn { font-size: 1rem; border-color: #788261 !important; color: #788261 !important; background: transparent !important; }

.hero__mountains.inverse { position: absolute; bottom: calc(-10vh + 1px); left: 0; width: 100%; height: 10vh; z-index: 10; pointer-events: none; transform: rotate(180deg); }

/* ── Responsive vertical sous 600px ── */
@media (max-width: 600px) { .pillar-cards { flex-direction: column; height: auto; gap: 12px; } .pillar-card { flex: none; height: 88px; border-radius: 14px; transition: height 0.7s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.7s cubic-bezier(0.4, 0, 0.2, 1); } .pillar-card.active { flex: none; height: 360px; } }

/*-------------------------------------------------POP UP PAGE ACCUEIL ----------------------------------------------*/
.pillar-card { cursor: pointer; }

.tarifs-popup { position: fixed; inset: 0; z-index: 9999; display: none; align-items: center; justify-content: center; padding: 2rem; background: rgba(0, 0, 0, 0.75); }

.tarifs-popup.active { display: flex; }

.tarifs-popup__box { position: relative; width: 100%; max-width: 1100px; max-height: 90vh; overflow-y: auto; background: transparent; animation: popupTarifIn 0.3s ease; }

.tarifs-popup__box--single { max-width: 560px; }

.tarifs-popup__close { position: sticky; top: 0; left: 100%; z-index: 5; display: flex; align-items: center; justify-content: center; width: 2.7rem; height: 2.7rem; margin-left: auto; margin-bottom: 1rem; border: none; background: #ffffff; color: #000000 !important; font-size: 2rem; line-height: 1; cursor: pointer; border-radius: 12px; }

.tarifs-popup__header { margin-bottom: 1.5rem; padding: 1.5rem; background: #ffffff; text-align: center; }

.tarifs-popup__header h3 { margin: 0 0 0.5rem 0; color: #000000; }

.tarifs-popup__header p { margin: 0; color: #000000; }

.offres-track--popup { display: grid; grid-template-columns: repeat(2, 1fr) !important; gap: 2rem; width: 100%; overflow: visible; }

.offres-track-1--popup { display: grid; grid-template-columns: repeat(1, 1fr) !important; gap: 2rem; width: 100%; overflow: visible; }

.offres-track--popup-single, .offres-track-1--popup { grid-template-columns: 1fr; }

.offres-track--popup .offre-card, .offres-track-1--popup .offre-card { width: auto; min-width: 0; }

body.popup-open { overflow: hidden; }

@keyframes popupTarifIn { from { opacity: 0;
    transform: translateY(2rem); }
  to { opacity: 1;
    transform: translateY(0); } }

@media screen and (max-width: 768px) { .offres-track--popup { grid-template-columns: 1fr !important; gap: 1rem; } .offres-track-1--popup { grid-template-columns: 1fr !important; gap: 1rem; } }

/*------------------------*/
.about-section { background: #33352B url(https://storage.googleapis.com/refpro-app-ca244.appspot.com/customers%2FCgs1dsIuDAb43PGcdck7QPtwWpE3%2Fimages%2FAdobeStock_299477599_1_tj9x.webp); position: relative; background-size: cover; background-blend-mode: overlay; position: relative; overflow: hidden; }

.about-section-container { max-width: 1400px; margin: 0 auto; padding: 0 2rem; display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: stretch; }

.about-section::before { content: ''; position: absolute; z-index: 2; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(#33352b, transparent, #33352b); }

.image-container { position: relative; align-self: stretch; max-height: 70vh; }

.main-image, .main-image2 { width: 101%; height: 101%; object-fit: cover; box-shadow: 0 0 1rem 0 rgba(51, 53, 43, 0.1); }

.main-image { border-radius: 0 0 1rem 1rem; }

.main-image2 { border-radius: 1rem 1rem 0 0; }

.about-content-container { padding: 6rem 1rem 1rem; align-self: end; z-index: 3; }

.main-title h2 { font-size: clamp(3rem, 4rem, 6rem); color: #fcfcfc; line-height: .9; margin-bottom: 25px; }

.description p { color: rgba(252, 252, 252, 0.8); font-size: 1rem; margin-bottom: 35px; line-height: 150%; }

@media (max-width: 768px) { .description { width: 80% !important; } .features { grid-template-columns: 1fr !important; } }

.features { display: grid; grid-template-columns: 1fr 1fr; align-self: start; justify-self: start; width: 100%; height: 100%; gap: 2rem; padding: 2rem 1rem calc(6rem + 10vh); z-index: 3; }

.feature { display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }

.feature-icon { width: 6rem; height: 6rem; flex-shrink: 0; object-fit: contain; }

.feature-content p { font-size: 1.2rem; color: #FCFCFC; text-transform: uppercase; letter-spacing: 0.3em; text-align: center; }

.about-section .hero__mountains { bottom: -1px; }

@media (max-width: 992px) { .about-section-container { grid-template-columns: 1fr; gap: 1.5rem; padding: 0 2rem; } .about-section-container .image-container:nth-of-type(1) { order: 1; } .about-content-container { order: 2; } .features { order: 3; } .about-section-container .image-container:nth-of-type(2) { order: 4; } .main-title { font-size: 32px; } }

.d-flex.align-items-center.justify-content-center.px-4.py-5.text-center.cta_banner.bg-sixthColor.position-relative { padding: calc(10vh + 4rem) 2rem !important; }

.cta_banner::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(rgba(51, 53, 43, 0.9), rgba(51, 53, 43, 0.6), rgba(51, 53, 43, 0.9)); }

.cta_banner .hero__mountains.inverse { bottom: auto; top: -1px; }

.cta_banner .content { max-width: 1200px; }

.cta_banner p { color: rgba(252, 252, 252, 0.8); font-size: 1rem; }

.cta_banner h2 { font-size: clamp(3rem, 4rem, 6rem); color: #fcfcfc; line-height: .9; }

.carte { padding: 6rem 2rem; display: flex; align-items: center; justify-content: center; position: relative; min-height: 40vh; }

.carte-content { max-width: 1000px; margin: 0 auto; text-align: center; position: relative; z-index: 2; height: 100%; min-height: 40vh; display: flex; align-items: center; }

.carte-content p { font-size: 1.5rem; font-family: 'Cormorant', serif; color: #788261; font-weight: 600; }

.carte-content::after { content: ''; position: absolute; z-index: 1; width: calc(100% - 4rem); height: 100%; top: 0; left: 2rem; background: url(https://storage.googleapis.com/refpro-app-ca244.appspot.com/customers%2FCgs1dsIuDAb43PGcdck7QPtwWpE3%2Fimages%2Fcarte_640s.webp) no-repeat; background-size: contain; background-position: center; opacity: .1; }

.seo-bloc { display: flex; align-items: start; gap: 2rem; padding: 2rem; max-width: 1400px; margin: auto; }

.seo-bloc .mx-auto.col-lg-11.px-4.py-4.mt-5.bg-primaryColor.text-color-primary.rounded-3.shadow-lg.position-relative { width: 30%; margin: 0 !important; box-shadow: none !important; }

.seo-bloc .row.flex-lg-row.align-items-center.g-5.py-2.px-4.mt-2.position-relative.z-1, .seo-bloc .row.flex-lg-row-reverse.align-items-center.g-5.py-2.px-4.mt-2.position-relative.z-1 { flex-direction: column-reverse !important; gap: 3rem; }

.seo-bloc .col-lg-7.my-0.order-1.order-lg-1.order-xl-1.order-xxl-1 { width: 100%; padding: 0; text-align: center; }

.seo-bloc .col-12.col-sm-8.col-lg-5.my-0.order-2.order-lg-2.order-xl-2.order-xxl-2 { width: 100%; padding: 0; }

.seo-bloc .display-6.titles.fw-bold.text-body-emphasis.lh-1.mb-5 { margin-bottom: 1rem !important; }

.seo-bloc h3 { text-transform: uppercase; font-family: 'Standard CT Stencil', sans-serif; color: #7F5236; font-size: 1.5rem; }

.seo-bloc .black-screen { background: linear-gradient(rgba(51, 53, 43, 0.3), #33352b) !important; opacity: .6; border-radius: 1rem; }

.seo-bloc .card.card-cover.h-100.overflow-hidden.rounded-4.shadow-lg { box-shadow: 0 0 2rem rgba(51, 53, 43, 0.2) !important; position: relative; overflow: visible !important; }

.seo-bloc .card.card-cover.h-100.overflow-hidden.rounded-4.shadow-lg::after { content: '\F269'; font-family: 'bootstrap-icons'; font-size: 6rem; color: #788261; position: absolute; z-index: 2; left: calc(50% - 3rem); bottom: -4.5rem; }

@media (max-width: 768px) { .seo-bloc { display: grid !important; grid-template-columns: 1fr; } .seo-bloc .mx-auto.col-lg-11.px-4.py-4.mt-5.bg-primaryColor.text-color-primary.rounded-3.shadow-lg.position-relative { width: 100% !important; } }

#hero-sec { padding: 30vh 2rem 10vh !important; }

.van-section { background: url(https://storage.googleapis.com/refpro-app-ca244.appspot.com/customers%2FCgs1dsIuDAb43PGcdck7QPtwWpE3%2Fimages%2FAdobeStock_1852869969_vvgf.webp), linear-gradient(#fcfcfc, rgba(252, 252, 252, 0.3), #fcfcfc); background-blend-mode: lighten; }

.van-sticky-wrapper { display: flex; align-items: flex-start; max-width: 1400px; margin: 0 auto; position: relative; }

.van-image-col { width: 50%; top: 0; height: 90vh; flex-shrink: 0; display: flex; align-items: center; justify-content: center; overflow: visible; z-index: 1; }

.van-img { display: block; transform: translateX(-30%) translateY(8%); will-change: transform; max-width: none !important; width: auto !important; height: 70% !important; }

.van-content-col { width: 100%; display: flex; flex-direction: column; align-items: end; }

.van-block { min-height: 90vh; display: flex; flex-direction: column; justify-content: start; padding: 15vh 5rem; opacity: 0; transform: translateY(40px); transition: opacity 0.7s ease, transform 0.7s ease; }

/* Le deuxième bloc déborde sur toute la largeur, aligné à gauche */
.van-block--left { width: 100vw; margin-left: -50vw; padding: 4rem 5rem; box-sizing: border-box; }

.van-block--right { width: 60%; }

.van-block.visible { opacity: 1; transform: translateY(0); }

.right-block { align-self: start; justify-content: end; }

.van-title h2 { font-size: clamp(3rem, 4rem, 6rem); color: #33352B; font-weight: 500 !important; margin-bottom: 1.5rem !important; line-height: 1.15; }

.van-title.quote p { font-family: 'Cormorant', serif; font-size: 1.8rem; color: #788261; }

.van-title.quote i.bi.bi-quote { font-size: 9rem; line-height: .9; color: #788261; }

.van-desc { font-size: 16px; color: rgba(51, 53, 43, 0.8); line-height: 1.9; }

.van-section, .van-sticky-wrapper, .van-section * { overflow: visible !important; }

@media (max-width: 768px) { .van-sticky-wrapper { flex-direction: column; } .van-image-col { width: 100%; height: 40vh; position: relative !important; transform: none !important; left: auto !important; top: auto !important; } .van-img { transform: none !important; width: 100% !important; height: 100% !important; object-fit: cover; } .van-content-col { width: 100%; flex-direction: column; } .van-block, .van-block--right, .van-block--left { width: 100% !important; margin-left: 0 !important; min-height: auto; padding: 3rem 1.5rem; opacity: 1 !important; transform: none !important; } }

section.team-members-section.position-relative.py-5.bg-primaryColor.text-color-primary { padding: 18vh 2rem 3rem !important; }

.team-members-section .row.justify-content-center.px-3 { max-width: 1000px; margin: auto; margin-bottom: 3rem; }

.team-members-section .row.justify-content-center.team-list { max-width: 1400px !important; justify-content: space-between !important; gap: 3rem; }

.team-members-section .col-12.col-sm-6.col-md-4.col-lg-3.text-center.mb-4.team-col { width: 30%; }

.team-members-section h2 { font-size: clamp(3rem, 4rem, 6rem); font-weight: 500 !important; }

.team-members-section h3 { font-family: 'Standard CT Stencil'; color: #788261; }

img.team-member-avatar.team-image.rounded-circle.img-fluid.mx-auto { border-radius: 0 !important; object-fit: contain; width: 120px !important; height: 120px !important; max-width: 120px !important; max-height: 120px !important; min-width: 120px !important; min-height: 120px !important; }

.team-members-section ul { margin-left: 0; padding-left: 0; margin-top: 1.5rem; }

.team-members-section li { display: flex; flex-direction: column; align-items: center; }

.team-members-section li::before { content: '\F272'; font-family: 'bootstrap-icons'; font-size: 1rem; color: #788261; }

.offres-section { padding: 8rem 0 6rem; overflow: hidden; }

.offres-container { max-width: 1400px; margin: 0 auto; padding: 0 2rem; }

.offres-title { font-size: clamp(2.2rem, 4vw, 3.8rem); font-weight: 700; color: #33352B; line-height: 1.1; letter-spacing: -0.01em; }

.offres-track { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; align-items: stretch; }

.offre-card { background: #fcfcfc; border: 1px solid rgba(51, 53, 43, 0.1); border-radius: 1rem; padding: 2.5rem 2rem; display: flex; flex-direction: column; gap: 1.5rem; position: relative; transition: box-shadow 0.3s ease, border-color 0.3s ease, opacity 0.6s 240ms, transform 0.6s 240ms !important; }

.offre-card:hover { transform: translateY(-6px); box-shadow: 0 20px 50px rgba(51, 53, 43, 0.12); }

.offre-card--featured { background: #33352B; border-color: #33352B; }

.offre-card--featured .offre-index { color: rgba(252, 252, 252, 0.7); }

.offre-card--featured .offre-name, .offre-card--featured .offre-desc, .offre-card--featured .offre-points li, .offre-card--featured .offre-from, .offre-card--featured .offre-amount { color: #fcfcfc; }

.offre-card--featured .offre-btn:hover { border-color: #FCFCFC !important; }

.offre-card--featured .offre-points li::before { background: #788261; }

.offre-card--atelier { background: #788261; border-color: #788261; grid-column: 2 / 4; }

.offre-card--atelier .offre-index { color: rgba(252, 252, 252, 0.7); }

.offre-card--atelier .offre-name, .offre-card--atelier .offre-desc, .offre-card--atelier .offre-points li, .offre-card--atelier .offre-from, .offre-card--atelier .offre-amount { color: #fcfcfc; }

.offre-card--atelier .offre-points li::before { background: #F5F3D2; }

.offre-badge { position: absolute; top: -1px; right: 1.5rem; background: #788261; color: #F5F3D2; font-size: 10px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; padding: 0.3rem 0.8rem; border-radius: 0 0 4px 4px; }

.offre-index { font-size: 1rem; font-weight: 600 !important; letter-spacing: 0.15em; color: rgba(51, 53, 43, 0.3); }

.offre-body { flex: 1; display: flex; flex-direction: column; gap: 1rem; }

.offre-name { font-family: 'Standard CT Stencil', sans-serif; font-size: 1.8rem; color: #33352B; text-transform: uppercase; letter-spacing: 0.03em; line-height: 1.2; }

.offre-desc { font-size: 1rem; color: #33352B; line-height: 1.8; }

.offre-points { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 0.5rem; }

.offre-points li { font-size: 1rem; color: rgba(51, 53, 43, 0.75); line-height: 1.5; font-weight: 300 !important; padding-left: 1rem; position: relative; }

.offre-points li::before { content: ''; position: absolute; left: 0; top: 0.55em; width: 5px; height: 5px; border-radius: 50%; background: #788261; flex-shrink: 0; }

.offre-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.5rem; border-top: 1px solid rgba(51, 53, 43, 0.1); margin-top: auto; }

.offre-card--featured .offre-footer, .offre-card--atelier .offre-footer { border-top-color: rgba(245, 243, 210, 0.2); }

.offre-price { display: flex; flex-direction: column; gap: 0.1rem; }

.offre-from { font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(51, 53, 43, 0.4); }

.offre-amount { font-size: 1.4rem; font-weight: 700; color: #33352B; line-height: 1; }

/* Responsive */
@media (max-width: 1200px) { .offres-track { grid-template-columns: repeat(2, 1fr); } .offre-card--atelier { background: #788261; border-color: #788261; grid-column: 1 / 3; } }

@media (max-width: 768px) { .offres-section { padding: 5rem 0 4rem; } .offres-track { grid-template-columns: 1fr; } .offre-card--atelier { grid-column: 1; } .offres-title { font-size: 2rem; } }

/************************************************ PAGE CONTACT ************************************************/
button.w-100.btn.btn-outline-dark { color: black !important; }

div#contact { min-height: 100vh; padding: 10vh 2rem calc(10vh + 4rem) !important; }

/* PADDING À METTRE UNIQUEMENT SI LES .SPACER SONT EN DISPLAY:NONE */
#contact .background-image-div-opacity::after { content: ''; width: 100%; height: 100%; background: linear-gradient(rgba(51, 53, 43, 0.95), rgba(51, 53, 43, 0.8), #33352b); position: absolute; top: 0; left: 0; }

/* POUR METTRE UN OVERLAY SUR L’IMAGE DE FOND */
#contact .col-lg-6.text-center.text-color-sixth { padding-left: 6rem; text-align: left !important; color: #fcfcfc !important; }

#contact h1 { font-size: clamp(3rem, 6vw, 7rem); }

#contact .titles p:first-of-type { margin-bottom: 3rem !important; }

#contact p a { font-size: 12px; font-weight: 600 !important; text-transform: uppercase; letter-spacing: 0.07em; text-decoration: none; white-space: nowrap; padding: 8px 16px !important; border-radius: 999px; transition: all .3s ease; border: 1.5px solid #fcfcfc !important; color: #fcfcfc; background: transparent !important; }

#contact p a:hover { background: #33352B !important; color: #FCFCFC !important; border: 1px solid #33352B !important; }

#contact p { line-height: 150% !important; font-size: 1rem; font-family: 'Montserrat', sans-serif; }

/* POUR MODIFIER LE PARAGRAPHE SOUS LE TITRE */
#contact .titles h2 { background: #788261; padding: 1.5rem 2rem 0.5rem; border-radius: 1rem 1rem 0 0; margin-bottom: 0; }

#contact h2 span { font-family: 'Standard CT Stencil', sans-serif; }

#contact .titles h2 ~ p { background: #788261; padding: 0.5rem 2rem; margin-bottom: 0; }

#contact .titles h2 ~ p:last-child { padding-bottom: 2rem; border-radius: 0 0 1rem 1rem; }

@media screen and (max-width: 992px) { #contact .col-lg-6.text-center.text-color-sixth { padding-left: 2rem; } }

@media (max-width: 480px) { #contact p a { font-size: 11px; padding: 8px 12px !important; } }

.carte .hero__mountains { bottom: auto; top: calc(-10vh + 1px); }

.projet-section { padding: 5rem 0 0; }

.projet-container { max-width: 1400px; margin: 0 auto; padding: 0 2rem; display: grid; grid-template-columns: 1fr 3fr; align-items: center; gap: 4rem; }

.projet-container.inverse { grid-template-columns: 3fr 1fr; }

/* Gauche */
.projet-left { display: flex; flex-direction: column; gap: 1rem; }

.projet-tag { display: inline-block; font-size: 10px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: #788261; background: rgba(120, 130, 97, 0.1); padding: 0.3rem 0.8rem; border-radius: 2rem; align-self: flex-start; }

.projet-title h2, #projet h2 { font-size: clamp(3rem, 4rem, 6rem); font-weight: 500 !important; color: #33352B; line-height: 1.1; margin: 0; }

/* Droite — stack de cartes */
.projet-right { display: flex; justify-content: center; align-items: center; }

.projet-stack { position: relative; width: 100%; height: 340px; }

.projet-card { position: absolute; border-radius: 1.2rem; overflow: hidden; box-shadow: 0 8px 32px rgba(51, 53, 43, 0.18); }

.projet-card img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Carte arrière gauche */
.projet-card--back2 { width: 35%; height: 75%; top: 0; left: 0; transform: rotate(-5deg) translate(-10px, 10px); z-index: 1; }

/* Carte arrière centre */
.projet-card--back1 { width: 35%; height: 78%; top: 10%; left: calc(50% - 18%); transform: rotate(-1deg) translateY(8px); z-index: 2; }

/* Carte avant droite */
.projet-card--front { width: 35%; height: 75%; top: 5%; right: 0; transform: rotate(4deg) translate(8px, -4px); z-index: 3; }

/* Responsive */
@media (max-width: 992px) { .projet-container { grid-template-columns: 1fr; gap: 3rem; } .projet-stack { height: 280px; } }

@media (max-width: 576px) { .projet-stack { height: 220px; } .projet-card--back2, .projet-card--back1, .projet-card--front { width: 55%; height: 80%; } }

.partenaires-section { padding-top: 0; }

.partenaires-carousel-item.partenaires-logo-container { max-width: 300px !important; width: 300px !important; height: 350px !important; }

.partenaires-carousel-logo { filter: none !important; object-fit: cover; border-radius: 1rem !important; }

.partenaires-carousel-logo:hover { transform: scale(1) !important; }

.partenaires-carousel-track { gap: 2rem !important; }

.mountains { position: relative; width: 100%; height: 10vh; background: #33352B; }

.mountains .hero__mountains.inverse { position: absolute; top: -1px; left: 0; width: 100%; height: 10vh; z-index: 10; pointer-events: none; }

.tally-form-block h3 { display: none; }

.van-realisations { max-width: 1400px; margin: auto; padding: 2rem; overflow-y: visible !important; }

/* ── Filter bar ───────────────────────────────────────────────────────── */
.van-filter-bar { padding: 0 64px 40px; display: flex; justify-content: center; gap: 4px; align-items: center; }

.van-filter-btn { background: none; border: 1px solid transparent !important; font-weight: 300; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: #33352B !important; padding: 7px 16px; cursor: pointer; transition: all 0.25s ease; border-radius: 2rem; }

.van-filter-btn:nth-child(1) { background: rgba(51, 53, 43, 0.1) !important; }

.van-filter-btn:hover { color: #33352B !important; border-color: #33352B !important; background: transparent !important; }

.van-filter-btn.van-active { color: #FCFCFC !important; background: #788261 !important; border-color: #788261 !important; }

.van-filter-sep { width: 1px; height: 14px; background: rgba(51, 53, 43, 0.5); margin: 0 8px; }

/* ── Grid ─────────────────────────────────────────────────────────────── */
.van-grid { padding: 0 64px 100px; display: grid; overflow-y: visible !important; grid-template-columns: repeat(3, 1fr); gap: 2px; }

@media (max-width: 900px) { .van-filter-bar { flex-direction: column; } .van-filter-bar, .van-grid { padding-left: 0; padding-right: 0; } .van-grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 560px) { .van-grid { grid-template-columns: 1fr !important; } .van-card.van-featured { grid-column: span 1 !important; aspect-ratio: 4/3 !important; } }

.van-load-more-wrap { display: none; justify-content: center; padding: 0 64px 60px; }

.van-load-more-wrap.van-visible { display: flex; }

.van-load-more-btn { background: none; border: 1px solid #33352B; color: #33352B !important; font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 11px 28px; border-radius: 999px; cursor: pointer; transition: all 0.25s ease; }

.van-load-more-btn:hover { background: #33352B !important; border-color: #33352B; color: #FCFCFC; }

/* ── Project card ─────────────────────────────────────────────────────── */
.van-card { position: relative; overflow: hidden; background: rgba(51, 53, 43, 0.05); cursor: pointer; aspect-ratio: 4/3; transition: opacity 0.4s ease; }

.van-card.van-hidden { display: none; }

.van-card-img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.7s ease; filter: saturate(0.88) brightness(0.97); }

.van-card-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; }

.van-placeholder-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 3px; width: 80%; height: 70%; }

.van-placeholder-block { background: rgba(51, 53, 43, 0.5); border-radius: 1px; transition: transform 0.7s ease; }

.van-card:hover .van-card-img { transform: scale(1.05); filter: saturate(1) brightness(1); }

.van-card:hover .van-placeholder-block { transform: scale(1.04); }

.van-card-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(51, 53, 43, 0.82) 0%, rgba(51, 53, 43, 0.18) 45%, transparent 70%); opacity: 0; transition: opacity 0.4s ease; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; }

.van-card:hover .van-card-overlay { opacity: 1; }

/* Overlay toujours visible sur écrans tactiles */
@media (hover: none) { .van-card-overlay { opacity: 1; } .van-card-name { transform: translateY(0); } .van-card-sub { transform: translateY(0); } .van-card-arrow { opacity: 1; transform: translateX(0); } }

.van-card-badge { position: absolute; top: 14px; right: 14px; display: flex; gap: 5px; }

.van-badge { font-size: 0.5rem; letter-spacing: 0.14em; text-transform: uppercase; padding: 4px 8px; border-radius: 1px; font-weight: 400; }

.van-badge-3d { background: #33352B; color: #FCFCFC; }

.van-badge-photo { background: rgba(252, 252, 252, 0.9); color: #33352B; }

.van-badge-both { background: #788261; color: #FCFCFC; }

.van-card-name { font-family: 'Cormorant', serif; font-weight: 300; font-size: 1.25rem; color: #FCFCFC; line-height: 1.2; margin-bottom: 4px; transform: translateY(8px); transition: transform 0.4s ease; }

.van-card:hover .van-card-name { transform: translateY(0); }

.van-card-sub { font-size: 0.6rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(252, 252, 252, 0.6); transform: translateY(8px); transition: transform 0.4s ease 0.04s; }

.van-card:hover .van-card-sub { transform: translateY(0); }

.van-card-arrow { position: absolute; bottom: 24px; right: 24px; width: 32px; height: 32px; border: 1px solid rgba(252, 252, 252, 0.4); border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 0; transform: translateX(-6px); transition: opacity 0.35s ease, transform 0.35s ease; }

.van-card:hover .van-card-arrow { opacity: 1; transform: translateX(0); }

.van-card-arrow svg { width: 13px; height: 13px; }

.van-card.van-featured { grid-column: span 2; aspect-ratio: 16/9; }

/* ── Modal ────────────────────────────────────────────────────────────── */
.van-modal-backdrop { position: fixed; inset: 0; background: rgba(51, 53, 43, 0); z-index: 1000; display: flex; align-items: center; justify-content: center; pointer-events: none; transition: background 0.45s ease; }

.van-modal-backdrop.van-open { background: rgba(51, 53, 43, 0.92); pointer-events: all; }

.van-modal { position: relative; min-width: 92vw; max-width: 1100px; background: #33352B; display: grid; grid-template-columns: 1fr; max-height: 90vh; overflow: hidden; transform: translateY(30px) scale(0.97); opacity: 0; transition: transform 0.45s ease-out, opacity 0.45s ease-out; box-shadow: 0 40px 120px rgba(51, 53, 43, 0.5); }

.van-modal-backdrop.van-open .van-modal { transform: translateY(0) scale(1); opacity: 1; }

.van-modal-viewer { position: relative; background: #33352B; overflow: hidden; min-height: 680px; max-height: 80vh; }

.van-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.6s ease; }

.van-slide.van-active { opacity: 1; }

.van-slide img { width: 100%; height: 100%; object-fit: contain; display: block; }

.van-nav-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; background: rgba(252, 252, 252, 0.12); border: none !important; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s; z-index: 10; border-radius: 50%; backdrop-filter: blur(4px); padding: 0 !important; }

.van-nav-btn:hover { background: rgba(252, 252, 252, 0.22) !important; border: none !important; }

.van-nav-btn.van-prev { left: 16px; }

.van-nav-btn.van-next { right: 16px; }

.van-nav-btn svg { width: 18px; height: 18px; color: #FCFCFC; }

.van-thumbs { position: absolute; bottom: 5rem; left: 0; right: 0; padding: 12px 28px; display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; }

.van-thumbs::-webkit-scrollbar { display: none; }

.van-thumb { width: 52px; height: 36px; flex-shrink: 0; cursor: pointer; border: 1px solid transparent; border-radius: 2rem; transition: border-color 0.2s, opacity 0.2s; opacity: 0.55; overflow: hidden; }

.van-thumb.van-active { border-color: rgba(252, 252, 252, 0.5); opacity: 1; }

.van-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.van-type-toggle { position: absolute; top: 14px; left: 14px; display: flex; gap: 2px; z-index: 10; }

.van-type-btn { font-size: 0.58rem; letter-spacing: 0.12em; text-transform: uppercase; padding: 5px 11px; border: 1px solid rgba(252, 252, 252, 0.25) !important; background: rgba(51, 53, 43, 0.4) !important; color: rgba(252, 252, 252, 0.55) !important; cursor: pointer; border-radius: 2rem; transition: all 0.22s; backdrop-filter: blur(4px); }

.van-type-btn.van-active { background: #FCFCFC !important; border-color: #FCFCFC !important; color: #33352B !important; }

.van-slide-counter { position: absolute; top: 4rem; right: 20px; font-size: 0.6rem; letter-spacing: 0.1em; color: rgba(252, 252, 252, 0.45); z-index: 10; }

.van-modal-caption { position: absolute; bottom: 0; left: 0; right: 0; padding: 48px 28px 20px; background: linear-gradient(to top, rgba(51, 53, 43, 0.9), transparent); pointer-events: none; z-index: 5; }

.van-modal-caption-name { font-family: 'Cormorant', serif; font-weight: 300; font-size: 1.75rem; color: #FCFCFC; letter-spacing: 0.04em; }

.van-modal-caption-sub { font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(252, 252, 252, 0.5); margin-top: 3px; }

.van-modal-close { position: absolute; top: 14px; right: 14px; width: 36px; height: 36px; background: rgba(252, 252, 252, 0.08); border: none !important; border-radius: 3rem; cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 200; transition: background 0.2s; backdrop-filter: blur(4px); padding: 0 !important; }

.van-modal-close:hover { background: rgba(252, 252, 252, 0.18) !important; border: none !important; }

.van-modal-close svg { width: 14px; height: 14px; color: #fcfcfc; }

.van-grid-footer { padding: 0 64px 32px; display: flex; align-items: center; gap: 16px; }

.van-count-line { flex: 1; height: 1px; background: rgba(51, 53, 43, 0.9); }

.van-count-text { font-size: 0.75rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(51, 53, 43, 0.9); }

/*# sourceMappingURL=custom.css.map */