/* Cormorant Garamond */
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;src:url('../cormorant-garamond-v21-latin-300.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('../cormorant-garamond-v21-latin-regular.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('../cormorant-garamond-v21-latin-600.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:300;font-display:swap;src:url('../cormorant-garamond-v21-latin-300italic.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('../cormorant-garamond-v21-latin-italic.woff2') format('woff2');}

/* Montserrat */
@font-face{font-family:'Montserrat';font-style:normal;font-weight:300;font-display:swap;src:url('../montserrat-v31-latin-300.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:400;font-display:swap;src:url('../montserrat-v31-latin-regular.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../montserrat-v31-latin-500.woff2') format('woff2');}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../montserrat-v31-latin-600.woff2') format('woff2');}

/* ============================================
   DESIGN SYSTEM — LUXE NOIR / OR / GRIS
============================================ */
:root { --gold: #C9A84C; --gold-light: #E8D5A0; --gold-dark:  #9A7A2E; --black: #0A0A0A; --black-soft: #111111; --charcoal: #1C1C1C; --dark-gray:  #2A2A2A; --mid-gray: #6B6B6B; --light-gray: #E8E8E8; --off-white:  #F5F3EE; --white: #FFFFFF;
  --font-display:'Cormorant Garamond', Georgia, serif; --font-body: 'Montserrat', sans-serif;
  /* Échelle typographique (fluid) — tailles augmentées ~20% */
  --text-xs:  clamp(0.625rem, 1.8vw, 0.75rem); --text-sm:  clamp(0.75rem, 2.5vw, 0.875rem); --text-base:clamp(1rem, 3vw, 1.125rem); --text-md:  clamp(1.125rem, 3.5vw, 1.25rem); --text-lg:  clamp(1.25rem, 4vw, 1.5rem); --text-xl:  clamp(1.5rem, 5vw, 1.875rem); --text-2xl: clamp(1.875rem, 6vw, 2.25rem); --text-3xl: clamp(2.25rem, 7vw, 3rem); --text-4xl: clamp(3rem, 8vw, 3.75rem); --text-5xl: clamp(3.75rem, 10vw, 5rem);}
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0;}
html { scroll-behavior:smooth;}
body { background:var(--black); color:var(--off-white); font-family:var(--font-body); font-weight:300; font-size:var(--text-base); line-height:1.6; overflow-x:hidden; -webkit-font-smoothing:antialiased;}
body::before { content:''; position:fixed; inset:0; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E"); pointer-events:none; z-index:10; opacity:0.4;}
.gold-line { width:60px; height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent); margin:0 auto;}
.gold-line-left { width:60px; height:1px; background:linear-gradient(90deg, var(--gold), transparent);}

/* ============================================
   NAVIGATION
============================================ */
.linklogo {text-decoration:none}
nav { position:fixed; top:0; left:0; right:0; z-index:70; padding:0 48px; height:80px; display:flex; align-items:center; justify-content:space-between; background:linear-gradient(180deg, rgba(10,10,10,0.98) 0%, rgba(10,10,10,0.85) 100%); backdrop-filter:blur(12px); border-bottom:1px solid rgba(201,168,76,0.15); transition:box-shadow 0.4s ease;}
nav.scrolled { box-shadow:0 4px 32px rgba(0,0,0,0.6);}
.nav-logo{display:flex;flex-direction:column;gap:4px;transition:transform 0.3s ease;}
.nav-logo:hover{transform:scale(1.03);}
.nav-logo .brand{font-family:'Cormorant Garamond',Georgia,serif !important;font-size:42px !important;font-weight:300 !important;font-style:italic !important;color:#C9A84C !important;line-height:1;letter-spacing:0.08em;}
.nav-logo .brand .de{font-size:22px !important;color:rgba(201,168,76,0.65) !important;font-style:italic !important;vertical-align:middle;}
.nav-logo .brand-line{width:100%;height:1px;background:linear-gradient(90deg,#C9A84C,rgba(201,168,76,0.2),transparent);}
.nav-logo .tagline{display:flex;align-items:center;gap:6px;}
.nav-logo .tagline::before,.nav-logo .tagline::after{content:'';width:3px;height:3px;border-radius:50%;background:#9A7A2E;flex-shrink:0;}
.nav-logo .tagline span{font-size:8px;letter-spacing:0.45em;text-transform:uppercase;color:#999 !important;font-weight:300;}
.nav-links { display:flex; gap:36px; list-style:none;}
.nav-links a {  font-size:0.78rem; /* légèrement plus grand */
  letter-spacing:0.18em; 
  letter-spacing:0.2em; text-transform:uppercase; color:var(--light-gray); text-decoration:none; transition:color 0.3s; font-weight:400; position:relative;}
.nav-links a::after { content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px; background:var(--gold); transition:width 0.3s ease;}
.nav-links a:hover::after,
.nav-links a.active::after { width:100%;}
.nav-links a:hover,
.nav-links a.active { color:var(--gold);}
.nav-cta { display:flex; align-items:center; gap:8px; padding:10px 24px; border:1px solid var(--gold); color:var(--gold); font-size:var(--text-sm); letter-spacing:0.2em; text-transform:uppercase; text-decoration:none; transition:all 0.3s, transform 0.2s; font-family:var(--font-body);}
.nav-cta:hover { background:var(--gold); color:var(--black); transform:scale(1.04);}
.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; padding:4px;}
.hamburger span { display:block; width:24px; height:1px; background:var(--gold); transition:all 0.3s;}
.mobile-menu { display:none; position:fixed; inset:80px 0 0 0; background:rgba(10,10,10,0.98); backdrop-filter:blur(20px); z-index:60; padding:48px 32px; flex-direction:column; gap:32px; border-top:1px solid rgba(201,168,76,0.15);}
.mobile-menu.open { display:flex;}
.mobile-menu a { font-size:var(--text-sm); letter-spacing:0.2em; text-transform:uppercase; color:var(--light-gray); text-decoration:none; padding:4px 0; border-bottom:1px solid rgba(255,255,255,0.06);}
.mobile-menu a:hover { color:var(--gold);}

@media (max-width:768px){
  nav{padding:0 20px;}
  .nav-links,.nav-cta{display:none;}
  .hamburger{display:flex;}
}

/* ============================================
   SOUS-MENU — collé sous la nav, pleine largeur
============================================ */
.sousmenu { position:fixed; top:80px; left:0; right:0; transform:none; z-index:65;
  display:flex; align-items:center; justify-content:center; flex-wrap:nowrap; white-space:nowrap;
  height:46px; padding:0 32px; gap:0;
  width:100%; max-width:100%;
  background:rgba(34, 33, 33, 0.88); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-top:none; border-left:none; border-right:none; border-bottom:1px solid rgba(201, 168, 76, 0.18); border-radius:0;
  box-shadow:0 4px 20px rgba(0, 0, 0, 0.45);}

/* espace contenu — desktop uniquement */
body.has-sousmenu .hero { padding-top:126px;}

/* liens */
.sousmenu a { text-decoration:none; position:relative; margin:0 20px; flex-shrink:0;}
.sousmenu a::after { display:none;}

/* TEXTE */
.smenusdiv,
.smenusdivactif { font-size:0.70rem; letter-spacing:0.16em; font-weight:300; text-transform:uppercase; white-space:nowrap; padding:5px 8px; border-radius:4px; color:rgba(255, 255, 255, 0.50); transition:all 0.3s ease;}

/* séparateurs verticaux */
.sousmenu a:not(:last-child)::after { content:""; position:absolute; right:-20px; top:50%; transform:translateY(-50%); height:12px; width:1px; background:rgba(255, 255, 255, 0.12); display:block;}

/* hover */
.sousmenu a:hover .smenusdiv { color:#ffffff; background:rgba(255, 255, 255, 0.07);}

/* actif */
.smenusdivactif { color:rgba(255, 255, 255, 0.90);}
.smenusdivactif::after { content:""; position:absolute; left:0; bottom:-6px; width:100%; height:2px; background:var(--gold); border-radius:1px;}

/* ============================================
   SOUS-MENU — MOBILE :dans le flux
============================================ */
@media (max-width:768px) {

  /* Espace contenu nav + sousmenu */
  body.has-sousmenu .hero { padding-top:124px;}
  .sousmenu { position:fixed; top:80px; left:0; right:0; transform:none; width:100%; max-width:100%; border-radius:0; z-index:65;
    background:rgba(28,28,28,0.97); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); box-shadow:0 2px 12px rgba(0,0,0,0.5);
    border-top:none; border-left:none; border-right:none; border-bottom:1px solid rgba(201,168,76,0.15);
    height:44px; padding:0 16px; gap:0; justify-content:flex-start;
    overflow-x:auto; overflow-y:visible; -webkit-overflow-scrolling:touch; scrollbar-width:none;}
  .sousmenu::-webkit-scrollbar { display:none;}
  .smenusdiv, .smenusdivactif { white-space:nowrap; font-size:0.66rem; letter-spacing:0.13em; padding:4px 7px; flex-shrink:0;}
  .sousmenu a:not(:last-child)::after { right:-18px;}
  .sousmenu a { margin:0 18px; flex-shrink:0;}
  .sousmenu a:first-child { margin-left:4px;}
}

.section-dark { background:var(--black-soft); padding:80px 20px; display:flex; justify-content:center;}
#service .section-header { text-align:center; max-width:700px; margin:0 auto;}
#service .section-title { margin-bottom:16px;}
.section-header { text-align:center; margin-bottom:80px;}
.section-tag { font-size:var(--text-sm); letter-spacing:0.4em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:16px; display:block; transition:letter-spacing 0.6s ease, opacity 0.6s;}
.section-title { font-family:var(--font-display); font-size:var(--text-3xl); font-weight:300; line-height:1.1; margin-bottom:20px; transition:transform 0.7s cubic-bezier(0.16,1,0.3,1); color:#ffffff;}
.section-title em { font-style:italic; color:var(--gold);}

/* Surcharge pour sections à fond clair :titre visible en noir */
.section-white .section-title,
.section-light .section-title { color:var(--black);}
.section-white .section-tag { color:var(--gold-dark);}
.section-white .section-sub { color:rgba(10,10,10,0.6);}
.section-sub { font-size:var(--text-md); letter-spacing:0.06em; line-height:1.9; color:rgba(0, 0, 0, 0.55); max-width:500px; margin:0 auto;}

.services-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:2px; margin-top:64px;}
.service-card { position:relative; padding:48px 40px; background:var(--charcoal); overflow:hidden; transition:background 0.4s, transform 0.35s cubic-bezier(0.34,1.56,0.64,1); cursor:default;}
.service-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform 0.5s;}
.service-card:hover { background:#222; transform:translateY(-8px);}
.service-card:hover::before { transform:scaleX(1);}
.service-icon { width:48px; height:48px; margin-bottom:28px; transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);}
.service-card:hover .service-icon { transform:scale(1.18);}
.service-icon svg { width:100%; height:100%;}
.service-number { position:absolute; top:40px; right:40px; font-family:var(--font-display); font-size:64px; font-weight:300; color:rgba(201,168,76,0.06); line-height:1; transition:color 0.4s;}
.service-card:hover .service-number { color:rgba(201,168,76,0.1);}
.service-card h3 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:400; margin-bottom:16px; color:var(--off-white);}
.service-card p { font-size:var(--text-md); line-height:1.9; color:rgba(245,243,238,0.5);}

/* ============================================
   DESCRIPTION SECTION (light)
============================================ */
.section-light { background:var(--off-white); padding:120px 80px; position:relative; overflow:hidden;}
.section-light .section-title { color:var(--black);}
.section-light .section-sub { color:var(--mid-gray);}
.section-light .section-tag { color:var(--gold-dark);}
.content-split { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; margin-top:72px;}
.content-text p { font-size:var(--text-md); line-height:2; color:#444; margin-bottom:20px;}
.content-text p strong { color:var(--black); font-weight:500;}
.content-text p em { font-style:italic; color:var(--gold-dark);}
.content-visual { position:relative;}
.visual-frame { background:var(--black); aspect-ratio:4/3; position:relative; overflow:hidden; padding:16px;}
.visual-frame img { width:100%; height:100%; object-fit:cover; display:block;}
.visual-frame::before { content:''; position:absolute; inset:16px; border:1px solid rgba(201,168,76,0.4); z-index:20; pointer-events:none;}
.visual-placeholder { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, #1C1C1C, #111);}
.visual-placeholder svg { width:80px; height:80px; opacity:0.2;}
.visual-badge { position:absolute; bottom:-20px; left:-20px; width:120px; height:120px; background:var(--gold); display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:30; animation:badge-pulse 3.5s ease-in-out infinite;}
@keyframes badge-pulse { 0%, 100% { transform:scale(1);}
  50%       { transform:scale(1.04);}
}
.visual-badge .badge-num { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:300; color:var(--black); line-height:1;}
.visual-badge .badge-text { font-size:var(--text-xs); letter-spacing:0.15em; text-transform:uppercase; color:rgba(10,10,10,0.7); font-weight:500;}
.features-list { margin-top:40px; display:flex; flex-direction:column; gap:16px;}
.feature-item { display:flex; align-items:flex-start; gap:16px; transition:transform 0.25s ease;}
.feature-item:hover { transform:translateX(6px);}
.feature-dot { width:6px; height:6px; border:1px solid var(--gold-dark); border-radius:50%; margin-top:6px; flex-shrink:0; transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1), background 0.3s;}
.feature-item:hover .feature-dot { transform:scale(2); background:var(--gold-dark);}
.feature-item span { font-size:var(--text-md); line-height:1.9; color:#555;}
.feature-item strong { color:var(--black); font-weight:500;}

/* ============================================
   TARIFS
============================================ */
.section-mid { background:var(--dark-gray); padding:120px 80px;}
.tarifs-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:2px; margin-top:64px;}
.tarif-card { background:var(--charcoal); padding:56px 40px; position:relative; overflow:hidden; transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), box-shadow 0.4s;}
.tarif-card:hover { transform:translateY(-8px); box-shadow:0 24px 60px rgba(201,168,76,0.08);}
.tarif-card.featured { background:linear-gradient(160deg, #1C1A14 0%, #1A1810 100%); border:1px solid rgba(201,168,76,0.2);}
.tarif-card.featured::before { content:'POPULAIRE'; position:absolute; top:24px; right:-28px; background:var(--gold); color:var(--black); font-size:var(--text-xs); font-weight:700; letter-spacing:0.15em; padding:6px 36px; transform:rotate(45deg); transform-origin:center;}
.tarif-duration { font-size:var(--text-xs); letter-spacing:0.3em; text-transform:uppercase; color:var(--gold); margin-bottom:20px;}
.tarif-name { font-family:var(--font-display); font-size:var(--text-2xl); font-weight:300; color:var(--off-white); margin-bottom:8px;}
.tarif-desc { font-size:var(--text-xs); color:var(--mid-gray); line-height:1.7; margin-bottom:32px; padding-bottom:32px; border-bottom:1px solid rgba(255,255,255,0.06);}
.tarif-features { list-style:none; display:flex; flex-direction:column; gap:14px; margin-bottom:40px;}
.tarif-features li { display:flex; align-items:flex-start; gap:12px; font-size:var(--text-xs); color:rgba(245,243,238,0.65); transition:transform 0.25s ease, color 0.25s;}
.tarif-card:hover .tarif-features li { transform:translateX(4px);}
.tarif-features li::before { content:'—'; color:var(--gold); flex-shrink:0; font-weight:300; transition:color 0.3s;}
.tarif-card:hover .tarif-features li::before { color:var(--gold-light);}
.tarif-cta { display:block; text-align:center; padding:14px 32px; border:1px solid rgba(201,168,76,0.4); color:var(--gold-light); font-size:var(--text-xs); letter-spacing:0.25em; text-transform:uppercase; text-decoration:none; transition:all 0.3s; font-family:var(--font-body);}
.tarif-cta:hover,
.tarif-card.featured .tarif-cta { background:var(--gold); color:var(--black); border-color:var(--gold);}
.tarif-card.featured .tarif-cta:hover { background:var(--gold-light);}

/* ============================================
   DESTINATIONS
============================================ */
.destinations { background:var(--black); padding:80px;}
.destinations-grid { display:flex; flex-wrap:wrap; gap:12px; margin-top:48px; justify-content:center;}
.dest-pill { padding:10px 24px; border:1px solid rgba(201,168,76,0.2); font-size:var(--text-sm); letter-spacing:0.2em; text-transform:uppercase; color:rgba(245,243,238,0.6); text-decoration:none; transition:all 0.25s cubic-bezier(0.34,1.56,0.64,1);}
.dest-pill:hover { border-color:var(--gold); color:var(--gold); background:rgba(201,168,76,0.04); transform:scale(1.08);}

/* ============================================
   SECTION CONTACT
============================================ */
.contact-section { background:var(--black); padding:120px 80px;}
.contact-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:40px; max-width:1200px; margin:0 auto; align-items:stretch;}

/* Quand le formulaire est seul dans la grille */
.contact-grid:has(> :only-child) { grid-template-columns:minmax(300px, 480px); justify-content:center;}
.contact-card { background:linear-gradient(145deg, var(--charcoal), #151515); background-color:var(--light-gray); padding:28px 24px; display:flex; flex-direction:column; gap:14px; border:1px solid rgba(201,168,76,0.08); transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), border 0.4s, box-shadow 0.4s; height:100%; justify-content:space-between;}
.contact-card:hover { transform:translateY(-6px); border-color:rgba(201,168,76,0.25); box-shadow:0 20px 50px rgba(201,168,76,0.07);}
.contact-card h3 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:400; color:var(--off-white);}
.reviews { gap:28px;}
.review-summary { display:flex; align-items:center; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,0.08);}
.review-score { display:flex; flex-direction:column;}
.review-score strong { font-size:var(--text-2xl); font-family:var(--font-display); color:var(--gold); line-height:1;}
.stars { color:var(--gold); font-size:var(--text-sm); letter-spacing:2px; transition:letter-spacing 0.3s;}
.review-item:hover .review-stars { letter-spacing:3px;}
.review-count { font-size:var(--text-xs); color:rgba(255,255,255,0.4); letter-spacing:0.1em;}
.review-list { display:flex; flex-direction:column; gap:18px; max-height:280px; overflow-y:auto; padding-right:8px;}
.review-list::-webkit-scrollbar { width:2px;}
.review-list::-webkit-scrollbar-thumb { background:var(--gold);}
.review-item { background:rgba(255,255,255,0.03); padding:16px; border-left:2px solid rgba(201,168,76,0.4); transition:background 0.3s, border-left-color 0.3s, transform 0.3s ease;}
.review-item:hover { background:rgba(201,168,76,0.05); border-left-color:var(--gold); transform:translateX(5px);}
.review-top { display:flex; align-items:center; gap:10px; margin-bottom:8px;}
.avatar { width:42px; height:42px; border-radius:50%; background:var(--gold); display:flex; align-items:center; justify-content:center; font-size:var(--text-sm); color:var(--black); font-weight:600; flex-shrink:0; transition:transform 0.3s cubic-bezier(0.34,1.56,0.64,1), background 0.3s;}
.review-item:hover .avatar { transform:scale(1.2); background:var(--gold-dark);}
.review-name { font-size:var(--text-sm); color:var(--black-soft); font-weight:600;}
.review-text { font-size:var(--text-base); line-height:1.75; color:rgba(0, 0, 0, 0.72);}
.review-stars { font-size:var(--text-sm); color:var(--gold); margin-top:6px; transition:letter-spacing 0.3s;}

/* ============================================
   LIVRE D'OR — surcharges tailles de texte
============================================ */
#livre-or .contact-card { background:var(--white); border:1px solid var(--light-gray); border-left:3px solid var(--gold); padding:22px 24px;}
#livre-or .contact-card:hover { background:var(--off-white);}
/* En-tête de chaque avis :nom + date à gauche, étoiles à droite */
#livre-or .review-header { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;}
#livre-or .review-author { display:flex; align-items:center; gap:14px;}
/* Nom du rédacteur */
#livre-or .review-name { font-size:var(--text-xs); color:var(--black); font-weight:600; letter-spacing:0.03em;}
/* Date */
#livre-or .review-date { font-size:var(--text-xs); color:var(--mid-gray); letter-spacing:0.1em; margin-top:3px;}
/* Étoiles inline */
#livre-or .review-stars-inline { font-size:var(--text-sm); color:var(--gold); letter-spacing:4px;}
/* Titre de l'avis */
#livre-or .review-title { font-family:var(--font-display); font-size:var(--text-sm); font-weight:400; color:var(--black-soft); line-height:1.3;}
/* Corps du texte */
#livre-or .review-text { font-size:var(--text-xs); line-height:1.85; color:rgba(10,10,10,0.75);}
.form form { display:flex; flex-direction:column; gap:10px; flex:1;}
.form input, .form textarea { background:transparent; border:none; border-bottom:1px solid var(--gold); padding:5px 10px; color:var(--off-white); font-size:var(--text-sm); font-family:var(--font-body); transition:border-color 0.3s, box-shadow 0.3s; border-radius:0;}
.form input::placeholder,
.form textarea::placeholder { color:rgba(245,243,238,0.65); font-style:italic;}
.form input:focus, .form textarea:focus { outline:none; border-bottom-color:var(--gold-light); box-shadow:none;}
.form textarea { min-height:70px; resize:vertical; border:1px solid var(--gold); padding:8px 10px; border-radius:2px; background:rgba(201,168,76,0.04);}
.form textarea:focus { border-color:var(--gold-light); background:rgba(201,168,76,0.07);}
.form .checkbox-group { display:flex; align-items:center; gap:10px; font-size:var(--text-xs); color:rgba(245,243,238,0.6); margin-top:14px;}
.form .checkbox-group input { width:15px; height:15px; flex-shrink:0; margin:0; accent-color:var(--gold); cursor:pointer;}
.form .checkbox-group label { line-height:1.5; cursor:pointer;}
.form input[type="submit"] { background:var(--gold); color:var(--black); font-weight:600; letter-spacing:0.2em; font-size:var(--text-xs); cursor:pointer; transition:all 0.3s, transform 0.2s cubic-bezier(0.34,1.56,0.64,1); margin-top:auto; width:fit-content; padding:10px 24px; border:none;}
.form input[type="submit"]:hover { background:var(--gold-light); transform:scale(1.05);}
.quote p { font-size:var(--text-sm); color:rgba(245,243,238,0.6); line-height:1.8; margin-bottom:20px;}
.quote .btn-secondary { margin-top:auto; align-self:flex-start; background:none; border:1px solid var(--gold); padding:14px 28px; display:inline-block; text-align:center;}
.link-gold { font-size:var(--text-xs); letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); text-decoration:none;}

/* ============================================
   CTA SECTION
============================================ */
.cta-section { background:var(--charcoal); padding:120px 80px; text-align:center; position:relative; overflow:hidden;}
.cta-section::before { content:''; position:absolute; width:600px; height:600px; background:radial-gradient(circle, rgba(201,168,76,0.03) 0%, transparent 70%); top:50%; left:50%; transform:translate(-50%, -50%); border-radius:50%;}
.cta-title { font-family:var(--font-display); font-size:var(--text-4xl); font-weight:300; margin-bottom:20px; position:relative;}
.cta-title em { font-style:italic; color:var(--gold); display:inline-block; transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1), color 0.3s;}
.cta-title:hover em { transform:scale(1.05);}
.cta-sub { font-size:var(--text-sm); letter-spacing:0.08em; line-height:1.9; color:rgba(245,243,238,0.5); margin-bottom:56px; position:relative;}
.cta-phone { display:inline-flex; align-items:center; gap:16px; font-family:var(--font-display); font-size:var(--text-3xl); font-weight:300; color:var(--gold); text-decoration:none; letter-spacing:0.04em; margin-bottom:40px; transition:color 0.3s; position:relative;}
.cta-phone:hover { color:var(--gold-light);}
.cta-phone svg { transition:transform 0.4s cubic-bezier(0.34,1.56,0.64,1);}
.cta-phone:hover svg { transform:rotate(12deg) scale(1.2);}
.cta-availability { font-size:var(--text-sm); letter-spacing:0.2em; text-transform:uppercase; color:var(--mid-gray); position:relative;}
.cta-availability strong { color:var(--gold); font-weight:400;}
.cta-section .section-tag { display:block; margin-bottom:20px;}
.cta-phone-row { margin-bottom:16px; display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap;}
.cta-buttons { margin-top:48px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}
.socials-link { display:inline-flex; align-items:center; gap:8px; background:#25D366; color:white; padding:8px 18px; border-radius:40px; font-size:var(--text-sm); font-weight:500; letter-spacing:0.02em; text-decoration:none; transition:all 0.3s ease; border:1px solid rgba(255,255,255,0.2);}
.socials-link svg { width:20px; height:20px; fill:white;}
.socials-link span { font-family:var(--font-body); font-size:var(--text-sm); font-weight:500;}
.socials-link:hover { background:#128C7E; transform:scale(1.02); box-shadow:0 4px 12px rgba(37, 211, 102, 0.3);}

/* ============================================
   FOOTER
============================================ */
footer { background:var(--black); padding:64px 80px 32px; border-top:1px solid rgba(201,168,76,0.1);}
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:60px; margin-bottom:56px;}
.footer-brand .brand-name{font-family:'Cormorant Garamond',Georgia,serif !important;font-size:52px !important;font-weight:300 !important;font-style:italic !important;color:#C9A84C !important;line-height:1;letter-spacing:0.08em;}
.footer-brand .brand-name .de{font-size:26px !important;color:rgba(201,168,76,0.65) !important;font-style:italic !important;vertical-align:middle;}
.footer-brand .brand-line{width:100%;height:1px;background:linear-gradient(90deg,#C9A84C,rgba(201,168,76,0.2),transparent);margin:6px 0;}
.footer-brand .brand-sub{display:flex !important;align-items:center;gap:7px;font-size:8px !important;letter-spacing:0.5em !important;text-transform:uppercase;color:#999 !important;margin-bottom:20px;}
.footer-brand .brand-sub::before,.footer-brand .brand-sub::after{content:'';width:3px;height:3px;border-radius:50%;background:#9A7A2E;flex-shrink:0;}
.footer-col-title{font-size:var(--text-md);letter-spacing:0.3em;text-transform:uppercase;color:var(--gold);margin-bottom:24px;font-weight:500;}
.footer-col ul { list-style:none;}
.footer-col ul li { margin-bottom:12px;}
.footer-col ul li a { font-size:var(--text-sm); color:rgba(245,243,238,0.45); text-decoration:none; letter-spacing:0.05em; transition:color 0.3s, transform 0.25s; display:inline-block;}
.footer-col ul li a:hover { color:var(--gold); transform:translateX(4px);}
.footer-bottom { display:flex; justify-content:space-between; align-items:center; padding-top:32px; border-top:1px solid rgba(255,255,255,0.05);}
.footer-bottom p { font-size:var(--text-xs); color:rgba(245,243,238,0.2); letter-spacing:0.1em;}
.footer-bottom a { color:rgba(201,168,76,0.4); text-decoration:none; transition:color 0.3s;}
.footer-bottom a:hover { color:var(--gold);}

/* ============================================
   ANIMATIONS GLOBALES
============================================ */
@keyframes fadeUp { from { opacity:0; transform:translateY(30px);}
  to   { opacity:1; transform:translateY(0);}
}
@keyframes tag-in { from { opacity:0; letter-spacing:0.6em;}
  to   { opacity:1; letter-spacing:0.4em;}
}
.reveal-scroll { opacity:0; transform:translateY(28px); transition:opacity 0.75s cubic-bezier(0.16,1,0.3,1), transform 0.75s cubic-bezier(0.16,1,0.3,1);}
.reveal-scroll.visible { opacity:1; transform:translateY(0);}
.reveal-scroll-delay-1 { transition-delay:0.1s;}
.reveal-scroll-delay-2 { transition-delay:0.2s;}
.reveal-scroll-delay-3 { transition-delay:0.3s;}
.reveal-left { opacity:0; transform:translateX(-32px); transition:opacity 0.85s cubic-bezier(0.16,1,0.3,1), transform 0.85s cubic-bezier(0.16,1,0.3,1);}
.reveal-left.visible { opacity:1; transform:translateX(0);}
.reveal-right { opacity:0; transform:translateX(32px); transition:opacity 0.85s cubic-bezier(0.16,1,0.3,1), transform 0.85s cubic-bezier(0.16,1,0.3,1);}
.reveal-right.visible { opacity:1; transform:translateX(0);}
.gold-line-anim { display:block; width:0; height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent); margin:18px auto 0; transition:width 1.1s cubic-bezier(0.16,1,0.3,1) 0.3s;}
.reveal-scroll.visible .gold-line-anim,
.gold-line-anim.visible { width:60px;}
.reveal-scroll.visible .section-tag { animation:tag-in 0.8s ease both 0.1s;}

/* ============================================
   RESPONSIVE
============================================ */
@media (max-width:1100px) { nav { padding:0 32px;}
  .nav-links { display:none;}
  .nav-cta { display:none;}
  .hamburger { display:flex;}
  .hero-content { padding:0 40px;}
  .hero-ornament { display:none;}
  .section-dark,
  .section-light,
  .section-mid,
  .section-white,
  .destinations,
  .cta-section,
  footer,
  .contact-section { padding-left:40px;   padding-right:40px;}
  .stats-bar { padding:48px 40px;   grid-template-columns:repeat(2, 1fr);}
  .stat-item:nth-child(2) { border-right:none;}
  .stat-item:nth-child(3) { border-right:1px solid rgba(10,10,10,0.08);}
  .services-grid { grid-template-columns:1fr 1fr;}
  .content-split { grid-template-columns:1fr; gap:60px;}
  .tarifs-grid { grid-template-columns:1fr; max-width:480px; margin-left:auto; margin-right:auto;}
  .vehicule-cards { grid-template-columns:1fr;}
  .footer-grid { grid-template-columns:1fr 1fr; gap:40px;}
  .contact-grid { grid-template-columns:1fr;}
}

@media (max-width:640px) { body { font-size:var(--text-sm);}
  nav { padding:0 20px;}
  .hero-content { padding:0 20px;}
  .hero-actions { flex-direction:column;}
  .btn-primary, .btn-secondary { text-align:center; justify-content:center;}
  .section-dark,
  .section-light,
  .section-mid,
  .section-white,
  .destinations,
  .cta-section,
  footer,
  .contact-section { padding-left:20px;   padding-right:20px;   padding-top:80px;   padding-bottom:80px;}
  .stats-bar { padding:40px 20px; grid-template-columns:1fr 1fr;}
  .stat-item { padding:0 16px;}
  .services-grid { grid-template-columns:1fr;}
  .footer-grid { grid-template-columns:1fr;}
  .footer-bottom { flex-direction:column; gap:12px; text-align:center;}
  .contact-section { padding:60px 20px;}
  .contact-card { padding:32px 24px;}
  .review-list { max-height:240px;}
  .socials-link span { display:inline;}
  .socials-link { padding:6px 14px;}
  .hero h1 { font-size:clamp(2.5rem, 12vw, 3.5rem);}
  .section-title { font-size:clamp(1.8rem, 6vw, 2.5rem);}
  .cta-title { font-size:clamp(2rem, 8vw, 2.8rem);}
  .cta-phone { font-size:clamp(1.5rem, 5vw, 2rem);}
}

@media (max-width:480px) { .stats-bar { grid-template-columns:1fr; gap:32px;}
  .stat-item { border-right:none; padding:0;}
  .stat-item:nth-child(3) { border-right:none;}
  .service-card { padding:32px 24px;}
  .tarif-card { padding:40px 24px;}
  .vehicule-info { padding:24px;}
  .contact-card { padding:28px 20px;}
}

/* 1. Éléments décoratifs à grande taille */
.service-number { font-size:clamp(3rem, 10vw, 4rem) !important;}
.stat-number sup { font-size:clamp(1rem, 4vw, 1.875rem) !important;}
.visual-badge .badge-num { font-size:clamp(1.5rem, 5vw, 2.25rem) !important;}

/* 2. Ajustement des sous-titres sur mobile */
@media (max-width:640px) { .hero h1 { line-height:1.05 !important;}
  .section-sub { max-width:90% !important;   font-size:clamp(0.95rem, 3.2vw, 1.125rem) !important;}
  .review-text { line-height:1.7 !important;}
  .tarif-name { font-size:clamp(1.5rem, 7vw, 2rem) !important;}
  .service-card h3 { font-size:clamp(1.25rem, 5vw, 1.5rem) !important;}
  .service-card p { font-size:clamp(0.95rem, 3.2vw, 1.125rem) !important;}
  .feature-item span { font-size:clamp(0.95rem, 3.2vw, 1.125rem) !important;}
}

/* 3. Réduction des très grandes lettres sur écrans très étroits */
@media (max-width:480px) { .stat-number { font-size:clamp(2rem, 12vw, 3rem) !important;}
  .hero h1 { font-size:clamp(2.2rem, 10vw, 3rem) !important;}
  .section-title { font-size:clamp(1.8rem, 7vw, 2.5rem) !important;}
  .cta-title { font-size:clamp(1.8rem, 8vw, 2.5rem) !important;}
  .tarif-features li { font-size:clamp(0.7rem, 3vw, 0.8rem) !important;}
}

/* ============================================
   SIGNATURE
============================================ */
.signature { padding:80px 20px; background-color:var(--white); overflow:hidden;}
.signature .container { position:relative; max-width:800px; margin:0 auto; display:flex; align-items:center; gap:16px;}
.separator { flex:1; display:flex; align-items:center; text-align:center; color:#6b6b6b; font-family:serif; font-size:18px;}
.separator span { white-space:nowrap; padding:0 15px;}
.separator::before,
.separator::after { content:""; flex:1; height:1px; background:linear-gradient(to right, transparent, #d4af37, transparent);}
.signature-img { position:absolute; right:0; top:-10px; width:120px;}

/* ============================================
   PAGE HEADER — Titre pages intérieures
   (remplace le hero plein écran de l'index)
============================================ */
.page-header { background:linear-gradient(160deg, var(--black-soft) 0%, #0e0e0e 100%); padding:160px 40px 80px; text-align:center; position:relative; overflow:hidden; border-bottom:1px solid rgba(201,168,76,0.12);}
.page-header::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse 80% 60% at 50% 0%, rgba(201,168,76,0.06), transparent); pointer-events:none;}
.page-header-inner { position:relative; z-index:20; max-width:860px; margin:0 auto;}
.page-header h1 { font-family:var(--font-display); font-size:clamp(2.2rem, 6vw, 3.8rem); font-weight:300; color:var(--off-white); line-height:1.2; letter-spacing:-0.01em;}
.page-header h1 em { font-style:italic; color:var(--gold);}

@media (max-width:768px) { .page-header { padding:120px 20px 60px;}
}

/* ============================================
   SECTION PARTENAIRES cc
   (.centreBig > h1 + .centrer > liens + .VTC_st-tropez_transfertDiv)
============================================ */
.centreBig { background:var(--off-white); padding:80px 40px 100px; max-width:1400px; margin:0 auto;}
.centreBig h1 { font-family:var(--font-display); font-size:48px; font-weight:300; color:var(--black-soft); text-align:center; letter-spacing:-0.01em; margin-bottom:64px; line-height:1.2;}
.centreBig h1 em { font-style:italic; color:var(--gold);}
/* Séparateur doré sous le titre */
.centreBig h1::after { content:''; display:block; width:60px; height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent); margin:24px auto 0;}
/* Grille des cartes partenaires */
.centrer { display:grid; grid-template-columns:repeat(4, 1fr); gap:28px;}
/* Lien englobant chaque carte */
.centrer > a { display:block; text-decoration:none; color:inherit;}
/* Carte partenaire — fond transparent, le cadre est sur l'image */
.VTC_st-tropez_transfertDiv { position:relative; overflow:visible; background:transparent; border:none; box-shadow:none; transition:transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1); cursor:pointer;}
.centrer > a:hover .VTC_st-tropez_transfertDiv { transform:translateY(-4px);}
/* Barre or en haut de l'image au survol */
.VTC_st-tropez_transfert1::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--gold-dark); transform:scaleX(0); transform-origin:left; transition:transform 0.4s ease; z-index:40;}
.centrer > a:hover .VTC_st-tropez_transfert1::before { transform:scaleX(1);}
/* Zone image de fond — photo partenaire */
.VTC_st-tropez_transfert1 { position:relative; width:100%; aspect-ratio:1 / 1; background-color:var(--white); background-position:center center; background-repeat:no-repeat; background-size:cover; overflow:hidden; transition:transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); padding:16px; box-sizing:border-box;}
/* Zoom doux de la photo au survol */
.centrer > a:hover .VTC_st-tropez_transfert1 { transform:scale(1.03);}
/* Overlay — supprimé sur fond blanc */
.VTC_st-tropez_transfert1 .bleu { display:none;}
/* Titre hors du cadre — sous la carte */
.VTC_st-tropez_transfertDiv .txt { padding:12px 4px 0; background:transparent; font-family:var(--font-display); font-size:var(--text-md); font-weight:400; line-height:1.4; color:var(--black-soft); transition:color 0.3s ease; border-top:none; text-align:center; letter-spacing:0.02em;}
.centrer > a:hover .VTC_st-tropez_transfertDiv .txt { color:var(--gold-dark);}
/* Flèche au survol — supprimée */
.VTC_st-tropez_transfertDiv .txt::after { display:none;}
/* Le cadre blanc ne doit plus envelopper le texte visuellement */
.VTC_st-tropez_transfertDiv { background:transparent; border:none; box-shadow:none;}
/* Seul le bloc image garde le cadre */
.VTC_st-tropez_transfert1 { border:1px solid var(--light-gray); transition:transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),         box-shadow 0.4s ease,         border-color 0.3s ease;}
.centrer > a:hover .VTC_st-tropez_transfert1 { border-color:rgba(201, 168, 76, 0.4); box-shadow:0 12px 40px rgba(0, 0, 0, 0.1);}
/* Bandeau texte rotatif entre les sections */
.txtchauffeurVTC { background:var(--dark-gray); border-top:1px solid rgba(201, 168, 76, 0.12); border-bottom:1px solid rgba(201, 168, 76, 0.12); padding:32px 40px; text-align:center; font-family:var(--font-display); font-size:clamp(1rem, 2.5vw, 1.35rem); font-weight:300; font-style:italic; color:rgba(245, 243, 238, 0.65); letter-spacing:0.04em; line-height:1.8;}

/* ============================================
   PARTENAIRES — RESPONSIVE
============================================ */
@media (max-width:1100px) { .centrer { grid-template-columns:repeat(3, 1fr);}
  .centreBig { padding:60px 32px 80px;}
}

@media (max-width:700px) { .centrer { grid-template-columns:repeat(2, 1fr);   gap:16px;}
  .centreBig { padding:48px 20px 64px;}
  .VTC_st-tropez_transfertDiv .txt { padding:10px 12px 14px;}
  .txtchauffeurVTC { padding:24px 20px;   font-size:clamp(0.875rem, 4vw, 1rem);}
}

/* Eyebrow symétrique */
.page-header-inner .ph-eyebrow { display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:32px;}
.page-header-inner .ph-eyebrow-line { height:1px; width:48px; background:linear-gradient(90deg, transparent, var(--gold));}
.page-header-inner .ph-eyebrow-line.r { background:linear-gradient(90deg, var(--gold), transparent);}
.page-header-inner .ph-eyebrow span { font-size:var(--text-xs); font-weight:500; letter-spacing:0.32em; text-transform:uppercase; color:var(--gold); white-space:nowrap;}
/* Séparateur */
.ph-gold-sep { width:52px; height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent); margin:28px auto;}
/* Accroche */
.ph-accroche { font-size:var(--text-sm); font-weight:300; letter-spacing:0.1em; line-height:2; color:rgba(245,243,238,0.55); text-transform:uppercase; max-width:560px; margin:0 auto 20px;}
/* Description italique display */
.ph-desc { font-family:var(--font-display); font-size:clamp(1.05rem, 2.2vw, 1.22rem); font-weight:300; font-style:italic; line-height:1.85; color:rgba(245,243,238,0.62); max-width:640px; margin:0 auto;}
/* Barre de réassurance */
.ph-trust { display:flex; align-items:center; justify-content:center; gap:28px; margin-top:48px; padding-top:36px; border-top:1px solid rgba(255,255,255,0.05); flex-wrap:wrap;}
.ph-trust-item { display:flex; align-items:center; gap:8px;}
.ph-trust-dot { width:5px; height:5px; border-radius:50%; background:var(--gold); opacity:0.6; flex-shrink:0;}
.ph-trust-item span { font-size:var(--text-xs); letter-spacing:0.2em; text-transform:uppercase; color:rgba(245,243,238,0.35);}

@media (max-width:640px) { .ph-trust { gap:16px;}
  .ph-trust-item span { font-size:9px;}
}

/* ============================================
   SECTION DESCRIPTION SPLIT — Image flottante + slider
============================================ */
.desc-split{background:var(--off-white);padding:100px 40px;border-bottom:1px solid rgba(201,168,76,0.15);}
.desc-split__inner{max-width:1240px;margin:0 auto;}
.desc-split__inner::after{content:'';display:table;clear:both;}
.desc-eyebrow{display:flex;align-items:center;gap:14px;margin-bottom:28px;}
.desc-eyebrow-line{height:1px;width:36px;background:linear-gradient(90deg,var(--gold-dark),transparent);}
.desc-eyebrow span{font-size:var(--text-xs);font-weight:500;letter-spacing:0.32em;text-transform:uppercase;color:var(--gold-dark);}
.desc-split h2{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:300;color:var(--black);line-height:1.15;letter-spacing:-0.01em;margin-bottom:0;}
.desc-split h2 em{font-style:italic;color:var(--gold-dark);font-weight:400;}
.desc-gold-sep{width:48px;height:1px;background:linear-gradient(90deg,var(--gold-dark),transparent);margin:28px 0;}
.desc-split__media{float:right;width:38%;margin:0 0 24px 40px;}
.desc-split__media-inner{position:relative;border:6px solid var(--black);padding:8px;background:var(--black);outline:1px solid rgba(201,168,76,0.6);outline-offset:-14px;overflow:hidden;}
.desc-split__media-inner::before{content:'';position:absolute;inset:8px;border:1px solid rgba(201,168,76,0.55);pointer-events:none;z-index:20;}
.rslides-art{position:relative;list-style:none;padding:0;margin:0;}
.rslides-art li{position:absolute;top:0;left:0;width:100%;opacity:0;transition:opacity 0.8s ease-in-out;}
.rslides-art li.active{position:relative;opacity:1;}
.rslides-art li img{display:block;width:100%;height:auto;filter:grayscale(12%) contrast(1.04);transition:filter 0.5s ease;}
.rslides-art li img:hover{filter:grayscale(0%) contrast(1.06);}
.desc-badge{display:none;}
.desc-body{font-family:var(--font-body);font-size:var(--text-md);font-weight:300;line-height:1.9;color:#444;}
.desc-body p{margin-bottom:1em;color:#444;}
.desc-body strong{color:var(--black);font-weight:500;}
.desc-body em{color:var(--gold-dark);}
.desc-body a{color:var(--gold-dark);text-decoration:none;}
.desc-body a:hover{color:var(--black);text-decoration:underline;}
.desc-body ul{margin:1em 0 1em 1.2em;color:#444;}
.desc-body li{margin-bottom:0.4em;line-height:1.7;}
.desc-menus{margin-top:36px;padding-top:28px;border-top:1px solid rgba(0,0,0,0.08);display:flex;flex-direction:column;gap:12px;}
.desc-split .section-tag{color:var(--gold-dark);}

@media (max-width:1024px){.desc-split__media{width:42%;margin:0 0 20px 28px;}}
@media (max-width:768px){
  .desc-split{padding:60px 20px;}
  .desc-split__media{float:none;width:100%;margin:0 0 32px 0;}
  .desc-split__media-inner{border-width:4px;padding:6px;}
  .desc-split__media-inner::before{inset:6px;}
}
/* ============================================
   FORMULAIRE DE CONTACT — PAGE CONTACT
   Classes préfixées cf- (contact-form)
   pour éviter tout conflit avec le reste du site
============================================ */

/* Section wrapper — fond blanc */
.cf-section { background:var(--off-white); padding:100px 20px 120px;}

/* Le titre de section doit être sombre sur fond blanc */
.cf-section .section-title { color:var(--black);}
.cf-section .section-tag { color:var(--gold-dark);}

/* En-tête de section */
.cf-section-header { text-align:center; margin-bottom:48px;}
.cf-section-tag { display:block; font-size:var(--text-xs); letter-spacing:0.4em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:12px;}
.cf-section-title { font-family:var(--font-display); font-size:var(--text-3xl); font-weight:300; color:var(--black); letter-spacing:-0.01em; line-height:1.15; margin-bottom:18px;}
.cf-gold-line-anim { display:block; width:0; height:1px; background:linear-gradient(90deg, transparent, var(--gold), transparent); margin:18px auto 0; transition:width 1.1s cubic-bezier(0.16,1,0.3,1) 0.3s;}
.reveal-scroll.visible .cf-gold-line-anim { width:60px;}

/* ── Layout 2 colonnes :texte | formulaire ── */
.cf-layout { display:grid; grid-template-columns:1fr 1fr; gap:0; max-width:1200px; margin:0 auto; align-items:start;}

/* Colonne texte (gauche) */
.cf-text-col { padding:3rem 4rem 3rem 2rem; position:relative;}

/* Filet doré vertical entre les deux colonnes */
.cf-text-col::after { content:''; position:absolute; right:0; top:2rem; bottom:2rem; width:1px; background:linear-gradient(
    to bottom,
    transparent,
    rgba(201,168,76,0.4) 20%,
    rgba(201,168,76,0.4) 80%,
    transparent
  );}

/* Étiquette rubrique */
.cf-text-label { display:inline-block; font-size:var(--text-xs); letter-spacing:0.4em; text-transform:uppercase; color:var(--gold-dark); font-weight:500; margin-bottom:1.6rem; position:relative; padding-left:2rem;}
.cf-text-label::before { content:''; position:absolute; left:0; top:50%; transform:translateY(-50%); width:1.2rem; height:1px; background:var(--gold-dark);}
/* H1 dans la colonne texte */
.cf-text-col h1 { font-family:var(--font-display); font-size:clamp(1.6rem, 3.5vw, 2.5rem); font-weight:300; line-height:1.15; letter-spacing:-0.01em; color:var(--black); margin-bottom:1.8rem;}
.cf-text-col h1 em { font-style:italic; color:var(--gold-dark);}
/* Filet doré après H1 */
.cf-text-divider { width:40px; height:1px; background:linear-gradient(90deg, var(--gold-dark), transparent); margin-bottom:1.8rem;}
/* Corps du texte descriptif */
.cf-text-col .cf-desc { font-family:var(--font-body); font-size:0.92rem; font-weight:300; line-height:1.9; color:rgba(10,10,10,0.7); margin-bottom:2rem;}
.cf-text-col .cf-desc p { margin-bottom:1rem;}
.cf-text-col .cf-desc strong { color:var(--black); font-weight:500;}
.cf-text-col .cf-desc a { color:var(--gold-dark); text-decoration:none; border-bottom:1px solid rgba(154,122,46,0.3); transition:border-color .2s, color .2s;}
.cf-text-col .cf-desc a:hover { color:var(--black); border-color:var(--gold-dark);}
/* Encadré contact rapide */
.cf-contact-aside { margin-top:2.5rem; padding:1.6rem 1.8rem; border:1px solid rgba(154,122,46,0.25); background:rgba(154,122,46,0.05); position:relative;}
.cf-contact-aside::before { content:''; position:absolute; top:0; left:0; width:40px; height:2px; background:var(--gold-dark);}
.cf-contact-aside-label { font-size:var(--text-xs); letter-spacing:0.3em; text-transform:uppercase; color:var(--gold-dark); margin-bottom:0.8rem; display:block;}
.cf-contact-aside-tel { font-family:var(--font-display); font-size:1.6rem; font-weight:300; color:var(--black); letter-spacing:0.05em;}
.cf-contact-aside-note { font-size:0.75rem; color:var(--mid-gray); margin-top:0.4rem; letter-spacing:0.08em;}
/* Bouton PDF dans la colonne texte */
.cf-text-col .btnpdf { display:inline-flex; align-items:center; gap:0.6rem; margin-top:1.6rem; padding:0.75rem 1.6rem; border:1px solid rgba(154,122,46,0.5); color:var(--gold-dark); font-size:var(--text-xs); letter-spacing:0.2em; text-transform:uppercase; text-decoration:none; transition:background .3s, color .3s, border-color .3s;}
.cf-text-col .btnpdf:hover { background:rgba(154,122,46,0.08); border-color:var(--gold-dark); color:var(--black);}
/* Colonne formulaire (droite) */
.cf-form-col { padding:3rem 2rem 3rem 3rem;}
/* Boîte formulaire — fond blanc */
.cf-wrap { background:var(--white); border:1px solid rgba(201,168,76,0.25); padding:2.5rem 2rem; max-width:100%; margin:0; box-shadow:0 8px 48px rgba(0,0,0,0.08);}
/* ── Responsive :empilé sous 900px ── */
@media (max-width:900px) { .cf-layout { grid-template-columns:1fr;}
  .cf-text-col { padding:2rem 1.5rem 2.5rem;   border-right:none;}
  .cf-text-col::after { display:none;}
  .cf-form-col { padding:0 1.5rem 2.5rem;}
}
/* Sous-titre "Par email" */
.cf-subtitle { text-align:center; margin-bottom:1.5rem; font-family:var(--font-display); font-size:1.1rem; color:var(--mid-gray);}
.cf-subtitle strong { color:var(--black); font-weight:500;}

/* Rangée de deux champs */
.cf-row { display:flex; gap:1rem; margin-bottom:1rem;}

/* Champs texte, email, select — trait doré uniquement en bas */
.cf-wrap .cf-row input,
.cf-wrap input[type="text"],
.cf-wrap input[type="email"],
.cf-wrap select { width:100%; padding:0.6rem 0.2rem; border:none; border-bottom:1px solid rgba(201,168,76,0.5); background:transparent; font-family:var(--font-body); font-size:0.88rem; color:var(--black); outline:none; transition:border-color .2s; box-sizing:border-box; border-radius:0; -webkit-appearance:none; appearance:none;}
.cf-wrap .cf-row select { width:100%; flex:1;}
.cf-wrap .cf-row .cf-row { flex:1; margin-bottom:0; gap:0;}
.cf-field { flex:1; display:flex; flex-direction:column;}
.cf-wrap input[type="text"]:focus,
.cf-wrap input[type="email"]:focus,
.cf-wrap select:focus { border-bottom-color:var(--gold-dark);}
.cf-wrap input[type="text"]::placeholder,
.cf-wrap input[type="email"]::placeholder { color:var(--mid-gray); font-size:0.84rem;}
/* Select — flèche personnalisée */
.cf-wrap select { cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23C9A84C'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 0.4rem center; padding-right:1.6rem; color:var(--black);}
.cf-wrap select option { background:var(--white); color:var(--black);}
/* Textarea — encadré (exception au trait seul) */
.cf-wrap textarea { width:100%; padding:0.75rem 1rem; border:1px solid rgba(201,168,76,0.5); background:rgba(201,168,76,0.03); font-family:var(--font-body); font-size:0.88rem; color:var(--black); outline:none; resize:vertical; min-height:160px; margin-bottom:1rem; box-sizing:border-box; border-radius:0; transition:border-color .2s, background .2s;}
.cf-wrap textarea:focus { border-color:var(--gold-dark); background:rgba(201,168,76,0.06);}
.cf-wrap textarea::placeholder { color:var(--mid-gray); font-size:0.84rem;}
/* Case à cocher accord RGPD */
.cf-accord-row { display:flex; align-items:flex-start; gap:0.75rem; margin-bottom:1.2rem; font-size:0.78rem; color:var(--charcoal); line-height:1.5;}
.cf-accord-row input[type="checkbox"] { width:18px; height:18px; flex-shrink:0; margin-top:2px; accent-color:var(--gold-dark); cursor:pointer;}
.cf-accord-row label { cursor:pointer;}
.cf-accord-row a { color:var(--gold-dark); text-decoration:none;}
.cf-accord-row a:hover { text-decoration:underline;}
/* reCAPTCHA */
.cf-recaptcha-wrap { display:flex; justify-content:center; margin:1.2rem 0;}
/* Bouton envoi */
.cf-btn-submit { display:block; width:100%; padding:0.9rem; background:var(--gold-dark); color:var(--white); font-family:var(--font-body); font-size:0.9rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; border:none; cursor:pointer; transition:background .25s, color .25s, transform .2s;}
.cf-btn-submit:hover { background:var(--black); color:var(--white); transform:translateY(-1px);}
/* Mention RGPD bas de formulaire */
.cf-mention-rgpd { font-size:0.72rem; color:var(--mid-gray); text-align:center; margin-top:1.2rem; line-height:1.6;}
.cf-mention-rgpd a { color:var(--gold-dark); text-decoration:none;}
.cf-mention-rgpd a:hover { text-decoration:underline;}
/* Messages d'erreur */
.cf-error-top { font-size:1rem; color:#c0392b; font-weight:600; margin-bottom:1rem; text-align:center; font-family:var(--font-body);}
.cf-error { display:block; color:#c0392b; font-size:0.82rem; margin-bottom:0.5rem; font-family:var(--font-body);}
/* ── Responsive mobile ── */
@media (max-width:600px) { .cf-row { flex-direction:column; gap:0;}
  .cf-wrap { padding:1.75rem 1.25rem;}
}

/* ============================================
   HERO
============================================ */
.hero{position:relative;z-index:1;min-height:100vh;height:100vh;padding-top:80px;display:flex;align-items:center;overflow:hidden;}
@media (max-width:640px){.hero{height:100svh;min-height:100svh;}}

.hero-bg{position:absolute;top:0;left:0;right:0;bottom:0;z-index:30;overflow:hidden;background:var(--black);pointer-events:none;}
.hero-bg .slider1{position:absolute;top:0;left:0;width:100%;height:100%;}
.hero-bg .rslides-hero,.hero-bg .rslides{position:absolute;top:0;left:0;width:100%;height:100%;list-style:none;margin:0;padding:0;}
.hero-bg .rslides-hero li,.hero-bg .rslides li{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;transition:opacity 1.2s ease-in-out;}
.hero-bg .rslides-hero li.active,.hero-bg .rslides li.active,.hero-bg .rslides-hero li:only-child,.hero-bg .rslides li:only-child{opacity:1;}
.hero-bg .rslides-hero li img,.hero-bg .rslides li img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;}

.hero-bg-overlay{position:absolute;inset:0;z-index:40;background:linear-gradient(to right,rgba(0,0,0,0.82) 0%,rgba(0,0,0,0.62) 20%,rgba(0,0,0,0.36) 40%,rgba(0,0,0,0.12) 65%,rgba(0,0,0,0) 85%);pointer-events:none;}
.hero-pattern,.hero-ornament,.hero-content,.scroll-indicator{position:relative;z-index:50;}
.hero-bg,.hero-bg-overlay,.hero-pattern,.hero-ornament{pointer-events:none;}
.hero-pattern{position:absolute;inset:0;background-image:radial-gradient(circle at 25% 25%,rgba(201,168,76,0.04) 0%,transparent 50%),radial-gradient(circle at 75% 75%,rgba(201,168,76,0.03) 0%,transparent 50%);}
.hero-ornament{position:absolute;top:50%;right:8%;transform:translateY(-50%);width:420px;height:420px;border:1px solid rgba(201,168,76,0.08);border-radius:50%;animation:rotate 60s linear infinite;}
.hero-ornament::before{content:'';position:absolute;inset:20px;border:1px solid rgba(201,168,76,0.05);border-radius:50%;}
.hero-ornament::after{content:'';position:absolute;inset:40px;border:1px dashed rgba(201,168,76,0.06);border-radius:50%;}
@keyframes rotate{to{transform:translateY(-50%) rotate(360deg);}}
.hero-content{position:relative;z-index:50;padding:0 80px;max-width:900px;}
.hero-eyebrow{display:flex;align-items:center;gap:16px;margin-bottom:24px;animation:fadeUp 1s ease 0.2s both;}
.hero-eyebrow span{font-size:var(--text-xs);letter-spacing:0.35em;text-transform:uppercase;color:var(--gold);font-weight:500;}
.hero h1{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:300;line-height:0.95;letter-spacing:-0.01em;margin-bottom:32px;animation:fadeUp 1s ease 0.4s both;}
.hero h1 em{font-style:italic;color:var(--gold);}
.hero-subtitle{font-size:var(--text-sm);letter-spacing:0.08em;line-height:1.8;color:rgba(245,243,238,0.7);max-width:520px;margin-bottom:48px;animation:fadeUp 1s ease 0.6s both;}
.hero-actions{display:flex;gap:20px;flex-wrap:wrap;animation:fadeUp 1s ease 0.8s both;}

.btn-primary{display:inline-flex;align-items:center;gap:12px;padding:16px 40px;background:var(--gold);color:var(--black);font-family:var(--font-body);font-size:var(--text-xs);font-weight:600;letter-spacing:0.25em;text-transform:uppercase;text-decoration:none;transition:all 0.4s,transform 0.25s cubic-bezier(0.34,1.56,0.64,1);position:relative;overflow:hidden;}
.btn-primary::before{content:'';position:absolute;inset:0;background:var(--gold-light);transform:scaleX(0);transform-origin:left;transition:transform 0.4s;}
.btn-primary:hover::before{transform:scaleX(1);}
.btn-primary span{position:relative;}
.btn-primary:hover{transform:scale(1.04);}
.btn-secondary{display:inline-flex;align-items:center;gap:12px;padding:16px 40px;border:1px solid rgba(201,168,76,0.5);color:var(--gold-light);font-family:var(--font-body);font-size:var(--text-xs);font-weight:400;letter-spacing:0.25em;text-decoration:none;transition:all 0.4s,transform 0.25s cubic-bezier(0.34,1.56,0.64,1);}
.btn-secondary:hover{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,0.05);transform:scale(1.04);}

.scroll-indicator{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;animation:fadeUp 1s ease 1.2s both;}
.scroll-indicator span{font-size:var(--text-xs);letter-spacing:0.3em;text-transform:uppercase;color:var(--mid-gray);transition:letter-spacing 0.5s,opacity 0.5s;}
.scroll-indicator:hover span{letter-spacing:0.5em;}
.scroll-mouse{width:22px;height:36px;border:1px solid rgba(201,168,76,0.3);border-radius:11px;display:flex;justify-content:center;padding-top:7px;animation:scroll-pulse 2.5s ease infinite;}
.scroll-mouse::before{content:'';width:3px;height:6px;background:var(--gold);border-radius:2px;animation:scroll-anim 2s ease infinite;}
@keyframes scroll-anim{0%{opacity:1;transform:translateY(0);}100%{opacity:0;transform:translateY(10px);}}
@keyframes scroll-pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,168,76,0);}50%{box-shadow:0 0 0 6px rgba(201,168,76,0.12);}}
/* ============================================
   DESTINATIONS + CONTACT — Layout 60/40
============================================ */
.dest-contact-section { background:var(--black); padding:100px 80px;}
.dest-contact-grid { display:grid; grid-template-columns:60fr 1px 40fr; gap:0 60px; max-width:1300px; margin:0 auto; align-items:start;}
/* Filet doré vertical */
.dest-contact-divider { width:1px; align-self:stretch; background:linear-gradient(to bottom,transparent, rgba(201,168,76,0.35) 15%, rgba(201,168,76,0.35) 85%,transparent);}
/* Colonne gauche */
.dest-contact-left .section-header { text-align:left; margin-bottom:40px;}
.dest-contact-left .section-header .gold-line-anim { margin:16px 0 0;}
.dest-contact-left .destinations-grid { justify-content:flex-start; margin-top:0;}
/* Colonne droite — la contact-card prend toute la hauteur */
.dest-contact-right { position:sticky; top:100px;}
.dest-contact-right .contact-card { height:auto;}
/* ── Responsive ── */
@media (max-width:1024px) { .dest-contact-section { padding:80px 40px;}
  .dest-contact-grid { gap:0 40px;}
}

@media (max-width:768px) { .dest-contact-section { padding:60px 24px;}
  .dest-contact-grid { grid-template-columns:1fr;   gap:60px 0;}
  .dest-contact-divider { width:60px;   height:1px;   align-self:auto;   background:linear-gradient( to right, transparent, rgba(201,168,76,0.35), transparent ); margin:0 auto;}
  .dest-contact-left .section-header { text-align:center;}
  .dest-contact-left .section-header .gold-line-anim { margin:16px auto 0;}
  .dest-contact-left .destinations-grid { justify-content:center;}
  .dest-contact-right { position:static;}
}

/* Éléments décoratifs & contenu :au-dessus des overlays */
.hero-pattern,
.hero-ornament,
.hero-content,
.scroll-indicator { position:relative; z-index:50;}
.hero-bg,
.hero-bg-overlay,
.hero-pattern,
.hero-ornament { pointer-events:none;}
#divmenutel { display:none !important;}

/* Pattern subtil */
.hero-pattern { position:absolute; inset:0; background-image:
    radial-gradient(circle at 25% 25%, rgba(201,168,76,0.04) 0%, transparent 50%),
    radial-gradient(circle at 75% 75%, rgba(201,168,76,0.03) 0%, transparent 50%);}

/* Ornement circulaire animé */
.hero-ornament { position:absolute; top:50%; right:8%; transform:translateY(-50%); width:420px; height:420px; border:1px solid rgba(201,168,76,0.08); border-radius:50%; animation:rotate 60s linear infinite;}
.hero-ornament::before { content:''; position:absolute; inset:20px; border:1px solid rgba(201,168,76,0.05); border-radius:50%;}
.hero-ornament::after { content:''; position:absolute; inset:40px; border:1px dashed rgba(201,168,76,0.06); border-radius:50%;}
@keyframes rotate { to { transform:translateY(-50%) rotate(360deg);} }

/* Contenu textuel */
.hero-content { position:relative; z-index:50; padding:0 80px; max-width:900px;}
.hero-eyebrow { display:flex; align-items:center; gap:16px; margin-bottom:24px; animation:fadeUp 1s ease 0.2s both;}
.hero-eyebrow span { font-size:var(--text-xs); letter-spacing:0.35em; text-transform:uppercase; color:var(--gold); font-weight:500;}
.hero h1 { font-family:var(--font-display); font-size:var(--text-5xl); font-weight:300; line-height:0.95; letter-spacing:-0.01em; margin-bottom:32px; animation:fadeUp 1s ease 0.4s both;}
.hero h1 em { font-style:italic; color:var(--gold);}
.hero-subtitle { font-size:var(--text-sm); letter-spacing:0.08em; line-height:1.8; color:rgba(245,243,238,0.7); max-width:520px; margin-bottom:48px; animation:fadeUp 1s ease 0.6s both;}
.hero-actions { display:flex; gap:20px; flex-wrap:wrap; animation:fadeUp 1s ease 0.8s both;}

/* Boutons */
.btn-primary { display:inline-flex; align-items:center; gap:12px; padding:16px 40px; background:var(--gold); color:var(--black); font-family:var(--font-body); font-size:var(--text-xs); font-weight:600; letter-spacing:0.25em; text-transform:uppercase; text-decoration:none; transition:all 0.4s, transform 0.25s cubic-bezier(0.34,1.56,0.64,1); position:relative; overflow:hidden;}
.btn-primary::before { content:''; position:absolute; inset:0; background:var(--gold-light); transform:scaleX(0); transform-origin:left; transition:transform 0.4s;}
.btn-primary:hover::before { transform:scaleX(1);}
.btn-primary span { position:relative;}
.btn-primary:hover { transform:scale(1.04);}

.btn-secondary { display:inline-flex; align-items:center; gap:12px; padding:16px 40px; border:1px solid rgba(201,168,76,0.5); color:var(--gold-light); font-family:var(--font-body); font-size:var(--text-xs); font-weight:400; letter-spacing:0.25em; text-decoration:none; transition:all 0.4s, transform 0.25s cubic-bezier(0.34,1.56,0.64,1);}
.btn-secondary:hover { border-color:var(--gold); color:var(--gold); background:rgba(201,168,76,0.05); transform:scale(1.04);}

/* Indicateur de scroll */
.scroll-indicator { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; animation:fadeUp 1s ease 1.2s both;}
.scroll-indicator span { font-size:var(--text-xs); letter-spacing:0.3em; text-transform:uppercase; color:var(--mid-gray); transition:letter-spacing 0.5s, opacity 0.5s;}
.scroll-indicator:hover span { letter-spacing:0.5em;}
.scroll-mouse { width:22px; height:36px; border:1px solid rgba(201,168,76,0.3); border-radius:11px; display:flex; justify-content:center; padding-top:7px; animation:scroll-pulse 2.5s ease infinite;}
.scroll-mouse::before { content:''; width:3px; height:6px; background:var(--gold); border-radius:2px; animation:scroll-anim 2s ease infinite;}
@keyframes scroll-anim { 0%   { opacity:1; transform:translateY(0);}
  100% { opacity:0; transform:translateY(10px);}
}
@keyframes scroll-pulse { 0%, 100% { box-shadow:0 0 0 0 rgba(201,168,76,0);}
  50%       { box-shadow:0 0 0 6px rgba(201,168,76,0.12);}
}

.contact-card{display:block;}
.contact-card .section-tag{display:block;margin:0 0 14px 0;}
.contact-card h3{margin:0 0 14px 0;}
.contact-card .reviews-header,
.contact-card form,
.contact-card .reviews-slider,
.contact-card p{margin:0 0 14px 0;}
.contact-card .btn-secondary,
.contact-card input[type="submit"],
.contact-card .review-cta{margin:14px 0 0 0;}

  /* ============================================================
     CONTACT — DISPOSITION DEUX COLONNES
  ============================================================ */

  /* Section globale */
  .cf-section {
    background: var(--off-white);
    padding: 80px 40px 100px;
  }

  /* En-tête centré au-dessus des deux colonnes */
  .cf-section-header {
    text-align: center;
    margin-bottom: 64px;
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
  }
  .cf-section-tag {
    display: block;
    font-size: var(--text-xs);
    letter-spacing: 0.4em;
    text-transform: uppercase;
    color: var(--gold-dark);
    margin-bottom: 12px;
  }
  .cf-section-title {
    font-family: var(--font-display);
    font-size: var(--text-3xl);
    font-weight: 300;
    color: var(--black);
    letter-spacing: -0.01em;
    line-height: 1.15;
    margin-bottom: 18px;
  }
  .cf-gold-line-anim {
    display: block;
    width: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--gold), transparent);
    margin: 18px auto 0;
    transition: width 1.1s cubic-bezier(0.16,1,0.3,1) 0.3s;
  }
  .reveal-scroll.visible .cf-gold-line-anim { width: 60px; }

  /* ── Grille principale deux colonnes ── */
  .cf-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 72px;
    max-width: 1200px;
    margin: 0 auto;
    align-items: start;
  }

  /* ── Colonne texte (gauche) ── */
  .cf-content {
    position: relative;
  }

  /* Eyebrow doré */
  .cf-content-eyebrow {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 28px;
  }
  .cf-content-eyebrow-line {
    height: 1px;
    width: 36px;
    background: linear-gradient(90deg, var(--gold), transparent);
    flex-shrink: 0;
  }
  .cf-content-eyebrow span {
    font-size: var(--text-xs);
    font-weight: 500;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--gold-dark);
  }

  /* Titre colonne gauche */
  .cf-content h1 {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.4rem);
    font-weight: 300;
    color: var(--black);
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-bottom: 0;
  }

  /* Séparateur or */
  .cf-content-sep {
    width: 48px;
    height: 1px;
    background: linear-gradient(90deg, var(--gold), transparent);
    margin: 28px 0;
  }

  /* Corps du texte */
  .cf-content-body {
    font-family: var(--font-body);
    font-size: var(--text-md);
    font-weight: 300;
    line-height: 2;
    color: #444;
  }
  .cf-content-body p {
    margin-bottom: 1.2em;
  }
  .cf-content-body p:last-child {
    margin-bottom: 0;
  }
  .cf-content-body strong {
    color: var(--black);
    font-weight: 500;
  }
  .cf-content-body em {
    font-style: italic;
    color: var(--gold-dark);
  }
  .cf-content-body a {
    color: var(--gold-dark);
    text-decoration: none;
    border-bottom: 1px solid rgba(154,122,46,0.3);
    transition: border-color 0.2s, color 0.2s;
  }
  .cf-content-body a:hover {
    color: var(--black);
    border-color: var(--black);
  }

  /* Bloc infos pratiques */
  .cf-info-cards {
    margin-top: 48px;
    display: flex;
    flex-direction: column;
    gap: 20px;
  }
  .cf-info-card {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 20px 24px;
    background: var(--white);
    border-left: 2px solid rgba(201,168,76,0.35);
    transition: border-color 0.3s, box-shadow 0.3s;
  }
  .cf-info-card:hover {
    border-left-color: var(--gold);
    box-shadow: 0 6px 24px rgba(0,0,0,0.06);
  }
  .cf-info-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--gold-dark);
  }
  .cf-info-icon svg {
    width: 100%;
    height: 100%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.5;
  }
  .cf-info-card-text {
    display: flex;
    flex-direction: column;
    gap: 3px;
  }
  .cf-info-label {
    font-size: var(--text-xs);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--mid-gray);
    font-weight: 500;
  }
  .cf-info-value {
    font-size: var(--text-md);
    color: var(--black);
    font-weight: 300;
    line-height: 1.5;
  }
  .cf-info-value a {
    color: var(--black);
    text-decoration: none;
    transition: color 0.2s;
  }
  .cf-info-value a:hover {
    color: var(--gold-dark);
  }

  /* Bouton PDF éventuel */
  .cf-pdf-btn {
    display: inline-block;
    margin-top: 36px;
    padding: 10px 28px;
    border: 1px solid rgba(201,168,76,0.4);
    color: var(--gold-dark);
    font-size: var(--text-xs);
    letter-spacing: 0.2em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.3s, color 0.3s;
  }
  .cf-pdf-btn:hover {
    background: var(--gold-dark);
    color: var(--white);
  }

  /* ── Colonne formulaire (droite) ── */
  .cf-form-col {
    position: sticky;
    top: 100px; /* reste visible au scroll sur desktop */
  }

  /* Boîte formulaire */
  .cf-wrap {
    background: var(--white);
    border: 1px solid rgba(201,168,76,0.22);
    padding: 2.5rem 2rem;
    box-shadow: 0 12px 48px rgba(0,0,0,0.07);
    max-width: none;
    margin: 0;
  }

  /* ── RESPONSIVE ── */
  @media (max-width: 900px) {
    .cf-split {
      grid-template-columns: 1fr;
      gap: 56px;
    }
    .cf-form-col {
      position: static;
    }
    .cf-section {
      padding: 60px 24px 80px;
    }
  }

  @media (max-width: 600px) {
    .cf-section {
      padding: 48px 16px 64px;
    }
    .cf-row { flex-direction: column; gap: 0; }
    .cf-wrap { padding: 1.75rem 1.25rem; }
    .cf-info-cards { gap: 14px; }
  }