/* =========================================
   OPERA PRESTIGE — CSS GLOBAL CONSOLIDÉ
   Fusionne : charte typo site + page yacht (.op-)
              + page villa (.vp-) + concierge (.cs-)
   Coller dans : Apparence → Personnaliser
                 → CSS additionnel
   Version : 4.0 — corrections page villa :
     - #vp-nav masqué au chargement + animation
     - section #vp-equipment ajoutée
     - .vp-figure__icon supprimé du HTML PHP
========================================= */


/* =========================================
   1. IMPORT FONTS
========================================= */



/* =========================================
   2. CSS VARIABLES GLOBALES
========================================= */

:root {

  --black:       #0A0A0A;

  --white:       #F5F3EE;

  --gold:        #C9A96E;

  --gold-lt:     #E8D8B4;

  --mid:         #1A1A1A;

  --muted:       #6B6B6B;

  --border:      #2C2C2C;



  --font-display: 'Cormorant Garamond', Georgia, serif;

  --font-serif:   'Playfair Display', Georgia, serif;

  --font-sans:    'Inter', Helvetica, Arial, sans-serif;

  --ease:         cubic-bezier(0.16, 1, 0.3, 1);

}

/* =========================================
   4. HERO TITLES
========================================= */

h1,
.hero-title,
.page-title,
.entry-title {
  font-family: 'Playfair Display', serif !important;
}


/* =========================================
   5. TITRES DE SECTIONS SITE GLOBAL
========================================= */

h1, h2, h3, h4, h5, h6 {

  font-family: 'Playfair Display', Georgia, serif !important;

}

body p,

body li,

body span {

  font-family: 'Inter', Helvetica, Arial, sans-serif !important;

}


/* =========================================
   6. PARAGRAPHES GLOBAUX
========================================= */

body p,
body li,
body span {
  font-family: 'Inter', sans-serif !important;
  font-weight: 300;
  line-height: 1.8em;
  letter-spacing: 0.3px;
}


/* =========================================
   7. BLOCS LUXURY CONTENT
========================================= */

.luxury-heading-block h1,
.luxury-heading-block h2,
.luxury-heading-block h3,
.luxury-heading-block h4,
.luxury-heading-block h5,
.luxury-heading-block h6 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 400;
  letter-spacing: 1px;
}

.luxury-heading-block .subheading,
.luxury-heading-block p {
  font-family: 'Inter', sans-serif !important;
  font-weight: 300;
  font-size: 18px;
  line-height: 1.8em;
  letter-spacing: 0.3px;
}


/* =========================================
   8. FOOTER
========================================= */

footer h1, footer h2, footer h3,
footer h4, footer h5, footer h6 {
  font-family: 'Cormorant Garamond', serif !important;
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 1.2em;
}

footer p, footer li, footer a, footer span {
  font-family: 'Inter', sans-serif !important;
  font-weight: 300;
  line-height: 1.8em;
  letter-spacing: 0.3px;
}


/* =========================================
   9. PAGE YACHT — CLASSES UTILITAIRES (.op-)
========================================= */

.t-display {
  font-family: var(--font-display) !important;
  font-weight: 300 !important;
  font-style: italic;
  line-height: 0.95;
  letter-spacing: -0.02em;
}

.t-label {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  line-height: 1.4 !important;
}

.t-body {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.85 !important;
  color: rgba(245, 243, 238, 0.65) !important;
  letter-spacing: 0.3px !important;
}

.t-serif-body {
  font-family: var(--font-display) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1.75 !important;
  color: rgba(245, 243, 238, 0.8) !important;
  letter-spacing: 0 !important;
}

.op-section {
  padding: 100px 80px;
  max-width: 1400px;
  margin: 0 auto;
}

.op-section--full {
  padding: 100px 80px;
  width: 100%;
}

.op-rule {
  width: 40px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 32px;
}

.op-divider {
  border: none;
  border-top: 1px solid var(--border);
  margin: 0;
}

#op-hero {
  position: relative;
  height: 100vh;
  min-height: 700px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.op-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  transform: scale(1.03);
  transition: transform 12s var(--ease);
}

#op-hero:hover .op-hero__bg { transform: scale(1); }

.op-hero__gallery-strip {
  position: absolute;
  top: 50%;
  right: 80px;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.op-hero__thumb {
  width: 72px;
  height: 52px;
  object-fit: cover;
  opacity: 0.5;
  cursor: pointer;
  border: 1px solid transparent;
  transition: opacity 0.3s, border-color 0.3s;
}

.op-hero__thumb:hover,
.op-hero__thumb.active {
  opacity: 1;
  border-color: var(--gold);
}

.op-hero__content {
  position: relative;
  z-index: 2;
  padding: 0 80px 60px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

.op-hero__name {
  font-family: var(--font-display) !important;
  font-size: clamp(72px, 10vw, 140px);
  font-weight: 300 !important;
  font-style: italic;
  line-height: 0.88;
  letter-spacing: -0.03em;
  color: var(--white);
}

.op-hero__sub {
  display: flex;
  gap: 32px;
  margin-top: 20px;
}

.op-hero__sub-item {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
  line-height: 1.4 !important;
}

.op-hero__sub-item span {
  display: block;
  font-size: 14px !important;
  letter-spacing: 0.1em !important;
  color: var(--white) !important;
  margin-top: 4px;
  font-family: var(--font-sans) !important;
}

.op-hero__cta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
}

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

.op-hero__rate-label {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
}

.op-hero__rate-price {
  font-family: var(--font-display) !important;
  font-size: 36px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
}

.op-btn {
  display: inline-block;
  padding: 14px 36px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--black) !important;
  background: var(--white);
  border: 1px solid var(--white);
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
}

.op-btn:hover {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: var(--black) !important;
}

.op-btn--ghost {
  background: transparent !important;
  color: var(--white) !important;
  border-color: rgba(245, 243, 238, 0.4) !important;
}

.op-btn--ghost:hover {
  background: transparent !important;
  color: var(--gold) !important;
  border-color: var(--gold) !important;
}

#op-nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(10, 10, 10, 0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border);
}

.op-nav__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 56px;
}

.op-nav__links {
  display: flex;
  gap: 32px;
  list-style: none;
  margin: 0 !important;
  padding: 0 !important;
}

.op-nav__links a {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
  text-decoration: none !important;
  transition: color 0.3s;
}

.op-nav__links a:hover,
.op-nav__links a.active {
  color: var(--gold) !important;
}

.op-nav__enquire {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 2px;
  transition: opacity 0.3s;
}

.op-nav__enquire:hover { opacity: 0.7; }

#op-overview { background: var(--black); }

.op-overview__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.op-overview__img-wrap {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}

.op-overview__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s var(--ease);
}

.op-overview__img-wrap:hover img { transform: scale(1.04); }

.op-overview__accent {
  position: absolute;
  bottom: -1px;
  left: -1px;
  width: 60px;
  height: 60px;
  border-left: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
}

.op-overview__text h2 {
  font-family: var(--font-display) !important;
  font-size: clamp(40px, 4vw, 64px) !important;
  font-weight: 300 !important;
  font-style: italic;
  line-height: 1.05;
  color: var(--white);
  margin-bottom: 32px;
}

#op-figures {
  background: var(--mid);
  border-bottom: 1px solid var(--border);
  padding: 60px 80px;
}

.op-figures__grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
}

.op-figure {
  padding: 32px 24px;
  border-right: 1px solid var(--border);
  text-align: center;
}

.op-figure:last-child { border-right: none; }

.op-figure__icon {
  font-size: 20px;
  color: var(--gold);
  margin-bottom: 12px;
  display: block;
}

.op-figure__value {
  font-family: var(--font-display) !important;
  font-size: 36px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  display: block;
  margin-bottom: 8px;
}

.op-figure__label {
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--muted) !important;
  line-height: 1.4 !important;
}

.op-hero__slider {
  position: absolute;
  inset: 0;
}

.op-hero__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1s ease;
}

.op-hero__slide.active { opacity: 1; }

.op-hero__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(10,10,10,0.4);
  border: 1px solid rgba(245,243,238,0.2);
  color: var(--white);
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s, border-color 0.3s;
}

.op-hero__arrow:hover {
  background: rgba(201,169,110,0.3);
  border-color: var(--gold);
}

.op-hero__arrow--prev { left: 32px; }
.op-hero__arrow--next { right: 32px; }

.op-hero__bullets {
  position: absolute;
  bottom: 160px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 10px;
  z-index: 10;
}

.op-hero__bullet {
  width: 28px;
  height: 2px;
  background: rgba(245,243,238,0.3);
  border: none;
  cursor: pointer;
  transition: background 0.3s, width 0.3s;
  padding: 0;
}

.op-hero__bullet.active {
  background: var(--gold);
  width: 48px;
}

.op-hero__counter {
  position: absolute;
  bottom: 32px;
  right: 80px;
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  color: rgba(245,243,238,0.5) !important;
  z-index: 10;
}

#op-nav,
#op-nav * {
  color: var(--white) !important;
  background: transparent;
  text-decoration: none !important;
}

#op-nav {
  background: rgba(10,10,10,0.96) !important;
  border-bottom: 1px solid var(--border) !important;
}

.op-nav__links {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.op-nav__links li {
  padding: 0 !important;
  margin: 0 !important;
  background: none !important;
}

.op-nav__links li::before,
.op-nav__links li::after {
  display: none !important;
}

.op-nav__btn {
  display: inline-block !important;
  padding: 5px 14px !important;
  border: 1px solid rgba(245,243,238,0.25) !important;
  background: transparent !important;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  color: rgba(245,243,238,0.75) !important;
  text-decoration: none !important;
  transition: border-color 0.3s, color 0.3s, background 0.3s !important;
  white-space: nowrap;
  line-height: 1.4 !important;
}

.op-nav__btn:hover,
.op-nav__btn.active {
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  background: rgba(201,169,110,0.08) !important;
}

.op-gallery-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
}

.op-gallery-grid__item {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
  cursor: pointer;
}

.op-gallery-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s var(--ease), opacity 0.3s;
  opacity: 0.7;
  display: block;
}

.op-gallery-grid__item:hover img {
  transform: scale(1.05);
  opacity: 1;
}

.op-gallery-grid__overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(10,10,10,0.3);
  color: var(--white);
  opacity: 0;
  transition: opacity 0.3s;
}

.op-gallery-grid__item:hover .op-gallery-grid__overlay { opacity: 1; }

.op-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(5,5,5,0.97);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.op-lightbox.open {
  opacity: 1;
  pointer-events: all;
}

.op-lightbox__track {
  width: 100%;
  height: 100%;
  position: relative;
}

.op-lightbox__slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.4s ease;
  padding: 60px 100px;
}

.op-lightbox__slide.active { opacity: 1; }

.op-lightbox__slide img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.op-lightbox__close {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 10;
  background: rgba(10,10,10,0.6);
  border: 1px solid rgba(245,243,238,0.2);
  color: var(--white);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color 0.3s;
}

.op-lightbox__close:hover { border-color: var(--gold); color: var(--gold); }

.op-lightbox__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(10,10,10,0.5);
  border: 1px solid rgba(245,243,238,0.15);
  color: var(--white);
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s, border-color 0.3s;
}

.op-lightbox__arrow:hover {
  background: rgba(201,169,110,0.25);
  border-color: var(--gold);
}

.op-lightbox__arrow--prev { left: 24px; }
.op-lightbox__arrow--next { right: 24px; }

.op-lightbox__counter {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.25em !important;
  color: rgba(245,243,238,0.5) !important;
}

.op-photo-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 260px 260px;
  gap: 2px;
  margin-top: 48px;
}

.op-photo-grid__item {
  overflow: hidden;
  cursor: pointer;
  position: relative;
}

.op-photo-grid__item:first-child { grid-row: span 2; }

.op-photo-grid__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 5s var(--ease), opacity 0.3s;
  opacity: 0.75;
}

.op-photo-grid__item:hover img {
  transform: scale(1.04);
  opacity: 1;
}

.op-photo-grid__more {
  position: absolute;
  inset: 0;
  background: rgba(10, 10, 10, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--white) !important;
}

#op-specs { background: var(--black); }

.op-specs__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}

.op-specs__col h3 {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 28px;
  font-weight: 400 !important;
}

.op-spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
}

.op-spec-row:first-of-type { border-top: 1px solid var(--border); }

.op-spec-key {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  color: var(--muted) !important;
  text-transform: uppercase;
}

.op-spec-val {
  font-family: var(--font-display) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  color: var(--white) !important;
}

#op-cabins { background: var(--mid); }

.op-cabins__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  margin-top: 48px;
}

.op-cabin-card {
  background: var(--black);
  padding: 40px 32px;
  position: relative;
  overflow: hidden;
  transition: background 0.4s;
}

.op-cabin-card:hover { background: #141414; }

.op-cabin-card__num {
  font-family: var(--font-display) !important;
  font-size: 80px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: rgba(201, 169, 110, 0.08) !important;
  position: absolute;
  top: -10px;
  right: 16px;
  line-height: 1;
  pointer-events: none;
}

.op-cabin-card__tag { margin-bottom: 20px; }

.op-cabin-card__name {
  font-family: var(--font-display) !important;
  font-size: 26px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  margin-bottom: 12px;
}

.op-cabin-card__detail {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  color: var(--muted) !important;
  margin-bottom: 6px;
}

.op-cabin-card__feature {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  color: rgba(245, 243, 238, 0.5) !important;
  line-height: 1.7 !important;
  margin-top: 12px;
}

.op-cabin-card__img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  margin-bottom: 24px;
  opacity: 0.7;
  transition: opacity 0.4s;
  display: block;
}

.op-cabin-card:hover .op-cabin-card__img { opacity: 1; }

#op-amenities { background: var(--black); }

.op-amenities__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 48px 32px;
  margin-top: 56px;
}

.op-amenity {
  border-top: 1px solid var(--border);
  padding-top: 20px;
}

.op-amenity__icon {
  font-size: 18px;
  color: var(--gold);
  margin-bottom: 12px;
  display: block;
}

.op-amenity__title {
  font-family: var(--font-display) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  margin-bottom: 8px;
}

.op-amenity__desc {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  color: var(--muted) !important;
  line-height: 1.7 !important;
}

.op-toys__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 40px;
}

.op-toy-tag {
  display: inline-block;
  padding: 8px 18px;
  border: 1px solid var(--border);
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
  transition: border-color 0.3s, color 0.3s;
  line-height: 1 !important;
}

.op-toy-tag:hover {
  border-color: var(--gold);
  color: var(--gold) !important;
}

#op-crew { background: var(--mid); }

.op-crew__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2px;
  margin-top: 48px;
}

.op-crew-card { background: var(--black); overflow: hidden; }

.op-crew-card__photo {
  width: 100%;
  aspect-ratio: 3/4;
  object-fit: cover;
  filter: grayscale(30%);
  transition: filter 0.4s;
  display: block;
}

.op-crew-card:hover .op-crew-card__photo { filter: grayscale(0%); }

.op-crew-card__info {
  padding: 20px 20px 24px;
  border-top: 1px solid var(--border);
}

.op-crew-card__name {
  font-family: var(--font-display) !important;
  font-size: 20px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  margin-bottom: 4px;
}

.op-crew-card__role {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 10px;
}

.op-crew-card__bio {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  color: var(--muted) !important;
  line-height: 1.65 !important;
}

#op-destinations { background: var(--black); }

.op-dest__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  margin-top: 48px;
}

.op-dest-card {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/4;
  cursor: pointer;
}

.op-dest-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 6s var(--ease);
  filter: grayscale(20%);
}

.op-dest-card:hover img {
  transform: scale(1.06);
  filter: grayscale(0%);
}

.op-dest-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 10, 10, 0.85) 0%, transparent 50%);
}

.op-dest-card__content {
  position: absolute;
  bottom: 28px;
  left: 28px;
  right: 28px;
}

.op-dest-card__region {
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 6px;
}

.op-dest-card__name {
  font-family: var(--font-display) !important;
  font-size: 28px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  line-height: 1.1;
}

.op-dest-card__period {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  color: rgba(245, 243, 238, 0.5) !important;
  margin-top: 8px;
}

#op-rates { background: var(--mid); }

.op-rates__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 2px;
  margin-top: 48px;
}

.op-rate-card {
  background: var(--black);
  padding: 40px 36px;
}

.op-rate-card__season {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 20px;
}

.op-rate-card__price {
  font-family: var(--font-display) !important;
  font-size: 44px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  line-height: 1;
  margin-bottom: 8px;
}

.op-rate-card__unit {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.15em !important;
  color: var(--muted) !important;
  text-transform: uppercase;
  margin-bottom: 24px;
}

.op-rate-card__note {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  color: var(--muted) !important;
  line-height: 1.7 !important;
}

.op-rate-card--featured {
  background: #111111;
  border: 1px solid var(--gold);
  position: relative;
  margin: -1px;
}

.op-rate-card__badge {
  position: absolute;
  top: 0;
  right: 0;
  background: var(--gold);
  color: var(--black);
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  padding: 6px 14px;
}

.op-rate-card__includes {
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  list-style: none !important;
  padding-left: 0 !important;
}

.op-rate-card__includes li {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  color: rgba(245, 243, 238, 0.45) !important;
  letter-spacing: 0.1em !important;
  padding: 5px 0;
  display: flex;
  align-items: center;
  gap: 8px;
  line-height: 1.4 !important;
}

.op-rate-card__includes li::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

#op-enquire {
  background: var(--black);
  padding: 120px 80px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.op-enquire__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0.07;
}

.op-enquire__content {
  position: relative;
  z-index: 2;
  max-width: 700px;
  margin: 0 auto;
}

.op-enquire__title {
  font-family: var(--font-display) !important;
  font-size: clamp(48px, 6vw, 88px) !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  line-height: 0.95;
  margin-bottom: 32px;
}

.op-enquire__sub {
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  letter-spacing: 0.1em !important;
  color: rgba(245, 243, 238, 0.4) !important;
  line-height: 1.8 !important;
  margin-bottom: 48px;
}

.op-enquire__btns {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

.op-enquire__line {
  width: 1px;
  height: 60px;
  background: var(--gold);
  margin: 48px auto 0;
  opacity: 0.5;
}

.op-hero__gallery-strip img {
  transition: opacity 0.3s, border-color 0.3s;
}


/* =========================================
   10. RESPONSIVE YACHT
========================================= */

@media (max-width: 1100px) {
  .op-section,
  .op-section--full        { padding: 64px 40px; }
  #op-figures              { padding: 48px 40px; }
  #op-enquire              { padding: 80px 40px; }
  .op-figures__grid        { grid-template-columns: repeat(3, 1fr); }
  .op-figure:nth-child(3)  { border-right: none; }
  .op-figure:nth-child(4)  { border-top: 1px solid var(--border); }
  .op-figure:nth-child(5)  { border-top: 1px solid var(--border); }
  .op-figure:nth-child(6)  { border-top: 1px solid var(--border); border-right: none; }
  .op-overview__grid       { grid-template-columns: 1fr; gap: 40px; }
  .op-specs__grid          { grid-template-columns: 1fr; gap: 40px; }
  .op-cabins__grid         { grid-template-columns: 1fr 1fr; }
  .op-crew__grid           { grid-template-columns: 1fr 1fr; }
  .op-amenities__grid      { grid-template-columns: repeat(2, 1fr); }
  .op-dest__grid           { grid-template-columns: 1fr 1fr; }
  .op-rates__grid          { grid-template-columns: 1fr; }
  .op-gallery-grid         { grid-template-columns: repeat(3, 1fr); }
  .op-nav__inner           { padding: 0 24px; gap: 12px; }
  .op-nav__links           { gap: 6px; flex-wrap: wrap; }
  .op-hero__content        { padding: 0 40px 40px; flex-direction: column; align-items: flex-start; gap: 24px; }
  .op-hero__cta            { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 12px; }
  .op-hero__gallery-strip  { display: none; }
  .op-hero__arrow--prev    { left: 16px; }
  .op-hero__arrow--next    { right: 16px; }
}

@media (max-width: 768px) {
  .op-section,
  .op-section--full        { padding: 48px 20px; }
  #op-figures              { padding: 0; }
  #op-enquire              { padding: 60px 20px; }
  #op-hero                 { min-height: 100svh; }
  .op-hero__content        { padding: 0 20px 32px; gap: 20px; }
  .op-hero__name           { font-size: clamp(44px, 12vw, 80px) !important; }
  .op-hero__sub            { gap: 16px; flex-wrap: wrap; }
  .op-hero__sub-item       { font-size: 10px !important; }
  .op-hero__sub-item span  { font-size: 13px !important; }
  .op-hero__rate-price     { font-size: 26px !important; }
  .op-hero__cta            { width: 100%; }
  .op-hero__arrow          { width: 36px; height: 36px; }
  .op-hero__arrow--prev    { left: 10px; }
  .op-hero__arrow--next    { right: 10px; }
  .op-hero__bullets        { bottom: 20px; left: 20px; transform: none; }
  .op-hero__counter        { right: 16px; bottom: 24px; }
  #op-nav                  { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #op-nav::-webkit-scrollbar { display: none; }
  .op-nav__inner           { padding: 0 16px; min-width: max-content; width: 100%; gap: 8px; }
  .op-nav__links           { gap: 4px; flex-wrap: nowrap; }
  .op-nav__btn             { padding: 4px 10px !important; font-size: 9px !important; white-space: nowrap; }
  .op-nav__enquire         { display: none; }
  .op-figures__grid        { grid-template-columns: repeat(2, 1fr); }
  .op-figure               { padding: 20px 12px; border-right: 1px solid var(--border); border-top: 1px solid var(--border); }
  .op-figure:nth-child(2n) { border-right: none; }
  .op-figure:nth-child(1),
  .op-figure:nth-child(2)  { border-top: none; }
  .op-figure:nth-child(3)  { border-right: 1px solid var(--border); border-top: 1px solid var(--border); }
  .op-figure__value        { font-size: 28px !important; }
  .op-overview__grid       { gap: 28px; }
  .op-overview__text h2    { font-size: 32px !important; }
  .op-specs__grid          { gap: 32px; }
  .op-spec-key             { font-size: 10px !important; }
  .op-spec-val             { font-size: 14px !important; }
  .op-cabins__grid         { grid-template-columns: 1fr; }
  .op-cabin-card           { padding: 24px 20px; }
  .op-cabin-card__num      { font-size: 56px !important; }
  .op-amenities__grid      { grid-template-columns: 1fr; gap: 28px 0; }
  .op-toys__list           { gap: 8px; }
  .op-toy-tag              { font-size: 9px !important; padding: 6px 12px; }
  .op-gallery-grid         { grid-template-columns: repeat(2, 1fr); gap: 3px; }
  .op-gallery-grid__item   { aspect-ratio: unset; position: relative; padding-bottom: 75%; height: 0; overflow: hidden; }
  .op-gallery-grid__item img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; opacity: 1; }
  .op-lightbox__slide      { padding: 56px 12px 48px; }
  .op-lightbox__arrow      { width: 40px; height: 40px; }
  .op-lightbox__arrow--prev{ left: 4px; }
  .op-lightbox__arrow--next{ right: 4px; }
  .op-crew__grid           { grid-template-columns: 1fr 1fr; gap: 2px; }
  .op-crew-card__photo     { aspect-ratio: 1/1; }
  .op-dest__grid           { grid-template-columns: 1fr; }
  .op-dest-card            { aspect-ratio: 16/9; }
  .op-rates__grid          { grid-template-columns: 1fr; }
  .op-rate-card            { padding: 28px 20px; }
  .op-rate-card__price     { font-size: 32px !important; }
  .op-rate-card--featured  { margin: 0; }
  .op-enquire__title       { font-size: clamp(36px, 10vw, 64px) !important; }
  .op-enquire__btns        { flex-direction: column; align-items: center; }
  .op-btn                  { text-align: center; width: 100%; max-width: 280px; }
}

@media (max-width: 480px) {
  .op-hero__content        { padding: 0 16px 28px; }
  .op-hero__name           { font-size: clamp(36px, 13vw, 60px) !important; }
  .op-hero__sub            { gap: 12px; }
  .op-hero__sub-item       { font-size: 9px !important; }
  .op-hero__sub-item span  { font-size: 12px !important; }
  .op-nav__inner           { height: 48px; }
  .op-nav__btn             { font-size: 8px !important; padding: 3px 8px !important; }
  .op-section,
  .op-section--full        { padding: 40px 16px; }
  .op-figure__value        { font-size: 24px !important; }
  .op-figure__label        { font-size: 8px !important; letter-spacing: 0.15em !important; }
  .op-crew__grid           { grid-template-columns: 1fr; }
  .op-gallery-grid         { grid-template-columns: repeat(2, 1fr); }
  .op-lightbox__slide      { padding: 48px 4px 40px; }
  .op-overview__text h2    { font-size: 28px !important; }
  .t-serif-body            { font-size: 16px !important; }
}


/* =========================================
   11. PAGE VILLA — CLASSES .vp-
========================================= */

#vp-page {
  background: var(--black);
  color: var(--white);
}

.vp-section {
  padding: 100px 80px;
  max-width: 1400px;
  margin: 0 auto;
}

.vp-rule {
  width: 40px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 20px;
}

.vp-rule--center {
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 32px;
}

.vp-section-label {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 16px;
  display: block;
}

.vp-section-title {
  font-family: var(--font-display) !important;
  font-size: clamp(36px, 4vw, 60px) !important;
  font-weight: 300 !important;
  font-style: italic;
  line-height: 1.05;
  color: var(--white) !important;
  margin-bottom: 40px;
  letter-spacing: -0.01em !important;
}

.vp-label {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  line-height: 1.4 !important;
}

.vp-btn {
  display: inline-block;
  padding: 14px 36px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--black) !important;
  background: var(--white);
  border: 1px solid var(--white);
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.3s, color 0.3s, border-color 0.3s;
  white-space: nowrap;
}

.vp-btn:hover {
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: var(--black) !important;
}

.vp-btn--ghost {
  background: transparent !important;
  color: var(--white) !important;
  border-color: rgba(245, 243, 238, 0.4) !important;
}

.vp-btn--ghost:hover {
  color: var(--gold) !important;
  border-color: var(--gold) !important;
  background: transparent !important;
}

.vp-btn--sm {
  padding: 10px 24px !important;
  font-size: 9px !important;
}

#vp-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 200;
  background: rgba(10, 10, 10, 0.96) !important;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--border) !important;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-100%);
  transition: opacity 0.4s var(--ease), transform 0.4s var(--ease);
}

#vp-nav.vp-nav--visible {
  opacity: 1;
  pointer-events: all;
  transform: translateY(0);
}

#vp-nav,
#vp-nav * {
  text-decoration: none !important;
}

.vp-nav__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 56px;
  gap: 24px;
}

.vp-nav__name {
  font-family: var(--font-display) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  white-space: nowrap;
  flex-shrink: 0;
}

.vp-nav__links {
  display: flex;
  gap: 4px;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  flex-wrap: nowrap;
}

.vp-nav__links li {
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
}

.vp-nav__links li::before,
.vp-nav__links li::after {
  display: none !important;
}

.vp-nav__links a {
  display: inline-block !important;
  padding: 5px 14px !important;
  border: 1px solid rgba(245, 243, 238, 0.2) !important;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.6) !important;
  text-decoration: none !important;
  transition: border-color 0.3s, color 0.3s, background 0.3s;
  white-space: nowrap;
  line-height: 1.4 !important;
}

.vp-nav__links a:hover,
.vp-nav__links a.active {
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  background: rgba(201, 169, 110, 0.08) !important;
}

.vp-nav__enquire {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  text-decoration: none !important;
  border-bottom: 1px solid var(--gold) !important;
  padding-bottom: 2px;
  transition: opacity 0.3s;
  white-space: nowrap;
  flex-shrink: 0;
}

.vp-nav__enquire:hover { opacity: 0.7; }

#vp-hero {
  position: relative;
  height: 100vh;
  min-height: 700px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.vp-hero__slider {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.vp-hero__slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.2s ease;
}

.vp-hero__slide.active { opacity: 1; }

.vp-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(10, 10, 10, 0.92) 0%,
    rgba(10, 10, 10, 0.4)  40%,
    rgba(10, 10, 10, 0.05) 100%
  );
  pointer-events: none;
}

.vp-hero__thumb-strip {
  position: absolute;
  top: 50%;
  right: 40px;
  transform: translateY(-50%);
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.vp-hero__thumb {
  width: 64px;
  height: 46px;
  object-fit: cover;
  opacity: 0.45;
  cursor: pointer;
  border: 1px solid transparent;
  transition: opacity 0.3s, border-color 0.3s;
}

.vp-hero__thumb:hover,
.vp-hero__thumb.active {
  opacity: 1;
  border-color: var(--gold);
}

.vp-hero__bullets {
  position: absolute;
  bottom: 140px;
  left: 80px;
  z-index: 10;
  display: flex;
  gap: 10px;
  align-items: center;
}

.vp-hero__bullet {
  width: 24px;
  height: 2px;
  background: rgba(245, 243, 238, 0.3);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background 0.3s, width 0.3s;
}

.vp-hero__bullet.active {
  background: var(--gold);
  width: 40px;
}

.vp-hero__counter {
  position: absolute;
  bottom: 32px;
  right: 40px;
  z-index: 10;
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.2em !important;
  color: rgba(245, 243, 238, 0.5) !important;
}

.vp-hero__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(10, 10, 10, 0.35);
  border: 1px solid rgba(245, 243, 238, 0.2);
  color: var(--white);
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.3s, border-color 0.3s;
  font-size: 18px;
}

.vp-hero__arrow:hover {
  background: rgba(201, 169, 110, 0.25);
  border-color: var(--gold);
  color: var(--gold);
}

.vp-hero__arrow--prev { left: 32px; }
.vp-hero__arrow--next { right: 130px; }

.vp-hero__content {
  position: relative;
  z-index: 5;
  padding: 0 80px 60px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

.vp-hero__left { flex: 1; }
.vp-hero__right {
  flex-shrink: 0;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 16px;
}

.vp-hero__location { margin-bottom: 12px; }

.vp-hero__name {
  font-family: var(--font-display) !important;
  font-size: clamp(64px, 9vw, 130px) !important;
  font-weight: 300 !important;
  font-style: italic;
  line-height: 0.88;
  letter-spacing: -0.03em;
  color: var(--white) !important;
  margin: 0 0 24px !important;
}

.vp-hero__metrics {
  display: flex;
  gap: 32px;
  flex-wrap: wrap;
}

.vp-hero__metric-val {
  display: block;
  font-family: var(--font-display) !important;
  font-size: 22px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  line-height: 1;
}

.vp-hero__metric-lbl {
  display: block;
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
  margin-top: 4px;
}

.vp-hero__rate { text-align: right; margin-bottom: 4px; }

.vp-hero__rate-price {
  font-family: var(--font-display) !important;
  font-size: 38px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  line-height: 1;
  display: block;
}

.vp-hero__rate-unit {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
  margin-top: 4px;
  display: block;
}

.vp-thumbs {
  background: var(--mid);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 16px 80px;
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

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

.vp-thumbs__track {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.vp-thumb {
  width: 100px;
  height: 68px;
  overflow: hidden;
  flex-shrink: 0;
  cursor: pointer;
  border: 1px solid transparent;
  transition: border-color 0.3s;
}

.vp-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.6;
  transition: opacity 0.3s;
  display: block;
}

.vp-thumb:hover img { opacity: 1; }
.vp-thumb:hover { border-color: var(--gold); }

.vp-thumbs__all {
  flex-shrink: 0;
  margin-left: auto;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  background: none;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  padding: 0 0 0 16px;
  transition: opacity 0.3s;
}

.vp-thumbs__all:hover { opacity: 0.7; }

#vp-figures {
  background: var(--mid);
  border-bottom: 1px solid var(--border);
}

.vp-figures__grid {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  padding: 0 80px;
}

.vp-figure {
  padding: 48px 24px;
  border-right: 1px solid var(--border);
  text-align: center;
}

.vp-figure:last-child { border-right: none; }

.vp-figure__icon { display: none !important; }

.vp-figure__value {
  font-family: var(--font-display) !important;
  font-size: 38px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  display: block;
  margin-bottom: 10px;
  line-height: 1;
}

.vp-figure__label {
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--muted) !important;
  line-height: 1.4 !important;
  display: block;
}

#vp-overview { background: var(--black); }

.vp-overview__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.vp-overview__img-wrap {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}

.vp-overview__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s var(--ease);
  display: block;
}

.vp-overview__img-wrap:hover img { transform: scale(1.04); }

.vp-overview__accent {
  position: absolute;
  bottom: -1px;
  left: -1px;
  width: 60px;
  height: 60px;
  border-left: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
  pointer-events: none;
}

.vp-overview__body {
  font-family: var(--font-display) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1.75 !important;
  color: rgba(245, 243, 238, 0.75) !important;
  margin-bottom: 32px;
  letter-spacing: 0 !important;
}

.vp-overview__body p {
  font-family: var(--font-display) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  line-height: 1.75 !important;
  color: rgba(245, 243, 238, 0.75) !important;
  letter-spacing: 0 !important;
}

.vp-overview__location {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
}

.vp-overview__location::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

.vp-overview__location-text {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--muted) !important;
}

#vp-specs { background: var(--mid); }

.vp-specs__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  margin-top: 48px;
}

.vp-specs__col h3 {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 24px;
  font-weight: 400 !important;
}

.vp-spec-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid var(--border);
  gap: 16px;
}

.vp-spec-row:first-of-type { border-top: 1px solid var(--border); }

.vp-spec-key {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  color: var(--muted) !important;
  text-transform: uppercase;
  flex-shrink: 0;
}

.vp-spec-val {
  font-family: var(--font-display) !important;
  font-size: 16px !important;
  font-weight: 300 !important;
  color: var(--white) !important;
  text-align: right;
}

#vp-amenities { background: var(--black); }

.vp-amenities__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin-top: 48px;
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border);
}

.vp-amenity {
  padding: 32px 28px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  transition: background 0.3s;
}

.vp-amenity:hover { background: rgba(201, 169, 110, 0.04); }

.vp-amenity__title {
  font-family: var(--font-display) !important;
  font-size: 20px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  margin-bottom: 10px;
  line-height: 1.2;
}

.vp-amenity__desc {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  color: var(--muted) !important;
  line-height: 1.7 !important;
}

#vp-equipment { background: var(--mid); }

.vp-equipment__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  margin-top: 48px;
}

.vp-equip-card {
  background: var(--black);
  padding: 40px 36px;
  position: relative;
  overflow: hidden;
  transition: background 0.4s;
}

.vp-equip-card:hover { background: #0f0f0f; }

.vp-equip-card__number {
  font-family: var(--font-display) !important;
  font-size: 72px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: rgba(201, 169, 110, 0.07) !important;
  position: absolute;
  top: -8px;
  right: 20px;
  line-height: 1;
  pointer-events: none;
  user-select: none;
}

.vp-equip-card__category {
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 20px;
  display: block;
}

.vp-equip-card__title {
  font-family: var(--font-display) !important;
  font-size: 26px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  margin-bottom: 20px;
  line-height: 1.1;
}

.vp-equip-card__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

.vp-equip-card__list li {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.08em !important;
  color: rgba(245, 243, 238, 0.45) !important;
  padding: 8px 0 !important;
  border-bottom: 1px solid var(--border);
  display: flex !important;
  align-items: center;
  gap: 10px;
  line-height: 1.4 !important;
}

.vp-equip-card__list li:first-child { border-top: 1px solid var(--border); }

.vp-equip-card__list li::before {
  content: '';
  display: inline-block;
  width: 16px;
  height: 1px;
  background: var(--gold);
  flex-shrink: 0;
}

#vp-concierge { background: var(--black); }

.vp-concierge__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.vp-concierge__intro {
  font-family: var(--font-display) !important;
  font-size: 17px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: rgba(245, 243, 238, 0.65) !important;
  margin-bottom: 32px;
  letter-spacing: 0 !important;
}

.vp-concierge__list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 36px !important;
}

.vp-concierge__list li {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  color: rgba(245, 243, 238, 0.7) !important;
  padding: 12px 0 12px 20px !important;
  border-bottom: 1px solid var(--border);
  position: relative;
  line-height: 1.4 !important;
}

.vp-concierge__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 10px;
  height: 1px;
  background: var(--gold);
}

.vp-concierge__img-wrap {
  position: relative;
  aspect-ratio: 3/4;
  overflow: hidden;
}

.vp-concierge__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 8s var(--ease);
  display: block;
}

.vp-concierge__img-wrap:hover img { transform: scale(1.04); }

.vp-concierge__accent {
  position: absolute;
  top: -1px;
  right: -1px;
  width: 60px;
  height: 60px;
  border-top: 1px solid var(--gold);
  border-right: 1px solid var(--gold);
  pointer-events: none;
}

#vp-enquire {
  background: var(--black);
  padding: 120px 80px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.vp-enquire__content {
  position: relative;
  z-index: 2;
  max-width: 700px;
  margin: 0 auto;
}

.vp-enquire__title {
  font-family: var(--font-display) !important;
  font-size: clamp(48px, 6vw, 90px) !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  line-height: 0.95;
  margin-bottom: 24px;
  letter-spacing: -0.02em !important;
}

.vp-enquire__title em { color: var(--gold-lt) !important; font-style: italic; }

.vp-enquire__sub {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  letter-spacing: 0.1em !important;
  color: rgba(245, 243, 238, 0.4) !important;
  line-height: 1.8 !important;
  margin-bottom: 48px;
}

.vp-enquire__btns {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

#vp-sticky {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 150;
  background: rgba(10, 10, 10, 0.97);
  border-top: 1px solid var(--border);
  transform: translateY(100%);
  transition: transform 0.4s var(--ease);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

#vp-sticky.visible { transform: translateY(0); }

.vp-sticky__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 14px 80px;
  display: flex;
  align-items: center;
  gap: 24px;
}

.vp-sticky__name {
  font-family: var(--font-display) !important;
  font-size: 18px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--white) !important;
  flex-shrink: 0;
}

.vp-sticky__avail {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
}

.vp-sticky__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #4CAF50;
  flex-shrink: 0;
  display: inline-block;
}

.vp-sticky__price {
  font-family: var(--font-display) !important;
  font-size: 22px !important;
  font-weight: 300 !important;
  font-style: italic;
  color: var(--gold) !important;
  margin-left: auto;
  flex-shrink: 0;
}

.vp-sticky__price em {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-style: normal !important;
  letter-spacing: 0.15em !important;
  color: var(--muted) !important;
  text-transform: uppercase;
  margin-left: 4px;
}

.vp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(5, 5, 5, 0.97);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
}

.vp-lightbox.open { opacity: 1; pointer-events: all; }

.vp-lightbox__track { width: 100%; height: 100%; position: relative; }

.vp-lightbox__slide {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.4s ease;
  padding: 60px 120px;
}

.vp-lightbox__slide.active { opacity: 1; }

.vp-lightbox__slide img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }

.vp-lightbox__close {
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 10;
  background: rgba(10, 10, 10, 0.6);
  border: 1px solid rgba(245, 243, 238, 0.2);
  color: var(--white);
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 16px;
  transition: border-color 0.3s, color 0.3s;
}

.vp-lightbox__close:hover { border-color: var(--gold); color: var(--gold); }

.vp-lightbox__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(10, 10, 10, 0.5);
  border: 1px solid rgba(245, 243, 238, 0.15);
  color: var(--white);
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 20px;
  transition: background 0.3s, border-color 0.3s, color 0.3s;
}

.vp-lightbox__arrow:hover { background: rgba(201, 169, 110, 0.2); border-color: var(--gold); color: var(--gold); }
.vp-lightbox__arrow--prev { left: 24px; }
.vp-lightbox__arrow--next { right: 24px; }

.vp-lightbox__counter {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  letter-spacing: 0.25em !important;
  color: rgba(245, 243, 238, 0.4) !important;
}


/* =========================================
   12. RESPONSIVE VILLA
========================================= */

@media (max-width: 1100px) {
  .vp-section               { padding: 64px 40px; }
  .vp-nav__inner            { padding: 0 24px; }
  .vp-nav__links            { gap: 4px; }
  .vp-hero__thumb-strip     { display: none; }
  .vp-hero__content         { padding: 0 40px 40px; flex-direction: column; align-items: flex-start; gap: 24px; }
  .vp-hero__right           { align-items: flex-start; flex-direction: row; flex-wrap: wrap; gap: 20px; }
  .vp-hero__arrow--next     { right: 32px; }
  .vp-hero__bullets         { left: 40px; }
  .vp-thumbs                { padding: 12px 40px; }
  .vp-figures__grid         { grid-template-columns: repeat(3, 1fr); padding: 0 40px; }
  .vp-figure:nth-child(3)   { border-right: none; }
  .vp-figure:nth-child(4)   { border-top: 1px solid var(--border); }
  .vp-figure:nth-child(5)   { border-top: 1px solid var(--border); border-right: none; }
  .vp-overview__grid        { grid-template-columns: 1fr; gap: 48px; }
  .vp-specs__grid           { grid-template-columns: 1fr; gap: 40px; }
  .vp-amenities__grid       { grid-template-columns: repeat(2, 1fr); }
  .vp-equipment__grid       { grid-template-columns: 1fr 1fr; }
  .vp-concierge__grid       { grid-template-columns: 1fr; gap: 48px; }
  .vp-concierge__img-wrap   { aspect-ratio: 16/9; }
  .vp-sticky__inner         { padding: 12px 40px; }
  #vp-enquire               { padding: 80px 40px; }
}

@media (max-width: 768px) {
  .vp-section               { padding: 48px 20px; }
  #vp-nav                   { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #vp-nav::-webkit-scrollbar { display: none; }
  .vp-nav__inner            { padding: 0 16px; min-width: max-content; gap: 8px; }
  .vp-nav__links            { flex-wrap: nowrap; }
  .vp-nav__links a          { font-size: 9px !important; padding: 4px 10px !important; }
  .vp-nav__enquire          { display: none; }
  .vp-nav__name             { font-size: 14px !important; }
  #vp-hero                  { min-height: 100svh; }
  .vp-hero__content         { padding: 0 20px 32px; flex-direction: column; gap: 20px; }
  .vp-hero__right           { align-items: flex-start; }
  .vp-hero__name            { font-size: clamp(44px, 13vw, 80px) !important; }
  .vp-hero__arrow           { width: 36px; height: 36px; font-size: 14px; }
  .vp-hero__arrow--prev     { left: 10px; }
  .vp-hero__arrow--next     { right: 10px; }
  .vp-hero__bullets         { left: 20px; bottom: 24px; }
  .vp-hero__counter         { right: 16px; bottom: 24px; }
  .vp-hero__rate-price      { font-size: 28px !important; }
  .vp-thumbs                { padding: 10px 16px; }
  .vp-thumb                 { width: 80px; height: 56px; }
  .vp-figures__grid         { grid-template-columns: repeat(2, 1fr); padding: 0; }
  .vp-figure                { padding: 28px 16px; border-top: 1px solid var(--border); }
  .vp-figure:nth-child(2n)  { border-right: none; }
  .vp-figure:nth-child(1),
  .vp-figure:nth-child(2)   { border-top: none; }
  .vp-figure:nth-child(3)   { border-right: 1px solid var(--border); }
  .vp-figure__value         { font-size: 28px !important; }
  .vp-overview__grid        { gap: 32px; }
  .vp-section-title         { font-size: clamp(28px, 8vw, 44px) !important; }
  .vp-spec-key              { font-size: 10px !important; }
  .vp-spec-val              { font-size: 14px !important; }
  .vp-amenities__grid       { grid-template-columns: 1fr; }
  .vp-equipment__grid       { grid-template-columns: 1fr; }
  .vp-equip-card            { padding: 28px 20px; }
  .vp-sticky__inner         { padding: 12px 20px; gap: 12px; }
  .vp-sticky__name          { font-size: 15px !important; }
  .vp-sticky__price         { font-size: 18px !important; }
  #vp-enquire               { padding: 64px 20px; }
  .vp-enquire__title        { font-size: clamp(36px, 10vw, 64px) !important; }
  .vp-enquire__btns         { flex-direction: column; align-items: center; }
  .vp-btn                   { text-align: center; width: 100%; max-width: 280px; }
  .vp-lightbox__slide       { padding: 56px 16px 48px; }
  .vp-lightbox__arrow       { width: 40px; height: 40px; font-size: 16px; }
  .vp-lightbox__arrow--prev { left: 4px; }
  .vp-lightbox__arrow--next { right: 4px; }
}

@media (max-width: 480px) {
  .vp-section               { padding: 40px 16px; }
  .vp-hero__content         { padding: 0 16px 24px; }
  .vp-hero__name            { font-size: clamp(36px, 14vw, 60px) !important; }
  .vp-hero__metrics         { gap: 16px; }
  .vp-hero__metric-val      { font-size: 18px !important; }
  .vp-figure__value         { font-size: 24px !important; }
  .vp-figure__label         { font-size: 8px !important; letter-spacing: 0.15em !important; }
  .vp-thumb                 { width: 68px; height: 48px; }
  .vp-lightbox__slide       { padding: 48px 4px 40px; }
  .vp-sticky__avail         { display: none; }
  .vp-sticky__inner         { padding: 10px 16px; }
}

/* ===== FIX MOBILE — image Overview affichée en entier (villa + yacht) ===== */
@media (max-width: 768px) {
  .vp-overview__img-wrap,
  .op-overview__img-wrap {
    aspect-ratio: auto !important;   /* on libère le ratio 4/3 imposé */
    height: auto !important;
  }
  .vp-overview__img-wrap img,
  .op-overview__img-wrap img {
    height: auto !important;         /* l'image reprend ses proportions natives */
    object-fit: contain !important;  /* zéro recadrage, photo entière */
  }
}

/* =========================================
   13. PAGE CONCIERGE — CLASSES .cs-
========================================= */

.uncont:has(.cs-hero),
.uncont:has(.cs-strip),
.uncont:has(.cs-intro),
.uncont:has(.cs-services),
.uncont:has(.cs-how),
.uncont:has(.cs-contact),
.uncont:has(.cs-cta-phone) {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.uncell:has(.cs-hero),
.uncell:has(.cs-strip),
.uncell:has(.cs-intro),
.uncell:has(.cs-services),
.uncell:has(.cs-how),
.uncell:has(.cs-contact),
.uncell:has(.cs-cta-phone) {
  padding: 0 !important;
  margin: 0 !important;
}

.uncoltable:has(.cs-hero),
.uncoltable:has(.cs-strip),
.uncoltable:has(.cs-intro),
.uncoltable:has(.cs-services),
.uncoltable:has(.cs-how),
.uncoltable:has(.cs-contact),
.uncoltable:has(.cs-cta-phone) {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

.uncol:has(.cs-hero),
.uncol:has(.cs-strip),
.uncol:has(.cs-intro),
.uncol:has(.cs-services),
.uncol:has(.cs-how),
.uncol:has(.cs-contact),
.uncol:has(.cs-cta-phone) {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

.single-internal-gutter:has(.cs-hero),
.single-internal-gutter:has(.cs-strip),
.single-internal-gutter:has(.cs-intro),
.single-internal-gutter:has(.cs-services),
.single-internal-gutter:has(.cs-how),
.single-internal-gutter:has(.cs-contact),
.single-internal-gutter:has(.cs-cta-phone) {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.wpb_column:has(.cs-hero),
.wpb_column:has(.cs-strip),
.wpb_column:has(.cs-intro),
.wpb_column:has(.cs-services),
.wpb_column:has(.cs-how),
.wpb_column:has(.cs-contact),
.wpb_column:has(.cs-cta-phone),
.col-lg-12:has(.cs-hero),
.col-lg-12:has(.cs-strip),
.col-lg-12:has(.cs-intro),
.col-lg-12:has(.cs-services),
.col-lg-12:has(.cs-how),
.col-lg-12:has(.cs-contact),
.col-lg-12:has(.cs-cta-phone) {
  padding: 0 !important;
  margin: 0 !important;
}

.vc_column-inner:has(.cs-hero),
.vc_column-inner:has(.cs-strip),
.vc_column-inner:has(.cs-intro),
.vc_column-inner:has(.cs-services),
.vc_column-inner:has(.cs-how),
.vc_column-inner:has(.cs-contact),
.vc_column-inner:has(.cs-cta-phone) {
  padding: 0 !important;
  margin: 0 !important;
}

.wpb_wrapper:has(.cs-hero),
.wpb_wrapper:has(.cs-strip),
.wpb_wrapper:has(.cs-intro),
.wpb_wrapper:has(.cs-services),
.wpb_wrapper:has(.cs-how),
.wpb_wrapper:has(.cs-contact),
.wpb_wrapper:has(.cs-cta-phone),
.wpb_raw_html:has(.cs-hero),
.wpb_raw_html:has(.cs-strip),
.wpb_raw_html:has(.cs-intro),
.wpb_raw_html:has(.cs-services),
.wpb_raw_html:has(.cs-how),
.wpb_raw_html:has(.cs-contact),
.wpb_raw_html:has(.cs-cta-phone) {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.vc_row:has(.cs-hero),
.vc_row:has(.cs-strip),
.vc_row:has(.cs-intro),
.vc_row:has(.cs-services),
.vc_row:has(.cs-how),
.vc_row:has(.cs-contact),
.vc_row:has(.cs-cta-phone),
.row-container:has(.cs-hero),
.row-container:has(.cs-strip),
.row-container:has(.cs-intro),
.row-container:has(.cs-services),
.row-container:has(.cs-how),
.row-container:has(.cs-contact),
.row-container:has(.cs-cta-phone),
.wpb_row:has(.cs-hero),
.wpb_row:has(.cs-strip),
.wpb_row:has(.cs-intro),
.wpb_row:has(.cs-services),
.wpb_row:has(.cs-how),
.wpb_row:has(.cs-contact),
.wpb_row:has(.cs-cta-phone) {
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

.cs-hero,
.cs-strip,
.cs-intro,
.cs-services,
.cs-how,
.cs-contact,
.cs-cta-phone {
  box-sizing: border-box !important;
  font-family: var(--font-sans) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  position: relative !important;
  left: 0 !important;
}

.cs-hero *,
.cs-strip *,
.cs-intro *,
.cs-services *,
.cs-how *,
.cs-contact *,
.cs-cta-phone *,
.cs-sticky * {
  box-sizing: border-box;
}

.cs-strip p,
.cs-intro p,
.cs-services p,
.cs-how p,
.cs-contact p {
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
}

.cs-hero p:not(.cs-hero__subtitle):not(.cs-hero__tag):not(.cs-hero__phone) {
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
}

.cs-cta-phone p:not(.cs-cta-phone__sub):not(.cs-cta-phone__eyebrow) {
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
}

.cs-container {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
}

.cs-container--narrow { max-width: 860px; }

@media (max-width: 768px) {
  .cs-container { padding-left: 24px; padding-right: 24px; }
}

@media (max-width: 480px) {
  .cs-container { padding-left: 16px; padding-right: 16px; }
}

.cs-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.cs-section-eyebrow {
  font-family: var(--font-sans) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 16px !important;
}

.cs-section-eyebrow--light { color: var(--gold) !important; }

.cs-section-title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.4rem, 4vw, 3.6rem);
  font-weight: 400;
  line-height: 1.12;
  color: var(--black) !important;
  margin: 0 0 48px !important;
}

.cs-section-title em { font-style: italic; color: var(--gold) !important; }
.cs-section-title--light { color: var(--white) !important; }
.cs-section-title--light em { color: var(--gold) !important; }

.cs-section-header { text-align: center; margin-bottom: 16px; }
.cs-section-header--light .cs-section-eyebrow { color: var(--gold) !important; }
.cs-how .cs-section-header { margin-bottom: 80px; }

.cs-br-desktop { display: inline; }

@media (max-width: 768px) {
  .cs-br-desktop { display: none; }
}

.cs-btn {
  display: inline-block;
  font-family: var(--font-sans) !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.2s var(--ease);
  border: 1px solid transparent;
  padding: 16px 36px;
  line-height: 1;
}

.cs-btn--solid { background: var(--gold); color: var(--black) !important; border-color: var(--gold); }
.cs-btn--solid:hover { background: var(--gold-lt); border-color: var(--gold-lt); color: var(--black) !important; transform: translateY(-1px); text-decoration: none; }
.cs-btn--ghost { background: transparent; color: var(--white) !important; border-color: rgba(245, 243, 238, 0.5); }
.cs-btn--ghost:hover { border-color: var(--white); color: var(--white) !important; text-decoration: none; }
.cs-btn--outline-gold { background: transparent; color: var(--gold) !important; border-color: var(--gold); }
.cs-btn--outline-gold:hover { background: var(--gold); color: var(--black) !important; text-decoration: none; }
.cs-btn--form { background: var(--white); color: var(--black) !important; border-color: var(--white); padding: 18px 48px; }
.cs-btn--form:hover { background: var(--gold); border-color: var(--gold); color: var(--black) !important; text-decoration: none; transform: translateY(-1px); }
.cs-btn--sticky { background: var(--gold); color: var(--black) !important; border-color: var(--gold); padding: 12px 28px; font-size: 11px; }
.cs-btn--sticky:hover { background: var(--gold-lt); color: var(--black) !important; text-decoration: none; }

.cs-hero {
  position: relative;
  height: 100vh;
  min-height: 600px;
  max-height: 1000px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--black);
}

.cs-hero__bg { position: absolute; inset: 0; }

.cs-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  transform: scale(1.04);
  transition: transform 8s var(--ease);
}

.cs-hero:hover .cs-hero__img { transform: scale(1); }

.cs-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10, 10, 10, 0.92) 0%,
    rgba(10, 10, 10, 0.55) 40%,
    rgba(10, 10, 10, 0.15) 100%
  );
}

.cs-hero__content {
  position: relative;
  z-index: 2;
  padding: 0 40px 80px;
  max-width: 900px;
  width: 100%;
}

.cs-hero__tag {
  font-family: var(--font-sans) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 24px !important;
}

.cs-hero__title {
  font-family: var(--font-display) !important;
  font-size: clamp(3.2rem, 7vw, 7.2rem);
  font-weight: 300;
  line-height: 1.05;
  color: var(--white) !important;
  margin: 0 0 28px !important;
  letter-spacing: -0.01em;
}

.cs-hero__title em { font-style: italic; color: var(--gold) !important; }

.cs-hero__subtitle {
  font-family: var(--font-sans) !important;
  font-size: clamp(0.95rem, 1.5vw, 1.1rem);
  font-weight: 300;
  color: rgba(245, 243, 238, 0.75) !important;
  line-height: 1.7;
  margin-bottom: 80px !important;
  max-width: 560px;
}

.cs-hero .cs-hero__content .cs-hero__subtitle { margin-bottom: 80px !important; }

.cs-hero__cta-group { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }

.cs-hero__phone {
  font-family: var(--font-sans) !important;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: rgba(245, 243, 238, 0.5) !important;
}

@media (max-width: 768px) {
  .cs-hero__content { padding: 0 24px 60px; }
  .cs-hero__title { font-size: clamp(2.8rem, 9vw, 4.8rem); }
}

@media (max-width: 480px) {
  .cs-hero__content { padding: 0 16px 48px; }
  .cs-hero__cta-group { flex-direction: column; }
  .cs-hero__cta-group .cs-btn { text-align: center; }
}

.cs-strip {
  background: var(--black);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 40px 0;
}

.cs-strip__grid { display: flex; align-items: center; justify-content: center; gap: 0; }

.cs-strip__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 12px 24px;
}

.cs-strip__value {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-style: italic;
  font-weight: 400;
  color: var(--gold) !important;
  line-height: 1;
  display: block;
  margin-bottom: 8px;
}

.cs-strip__label {
  font-family: var(--font-sans) !important;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted) !important;
  display: block;
}

.cs-strip__sep { width: 1px; height: 48px; background: var(--border); flex-shrink: 0; }

@media (max-width: 768px) {
  .cs-strip__grid { flex-wrap: wrap; }
  .cs-strip__item { flex: 0 0 50%; padding: 20px 16px; }
  .cs-strip__sep { display: none; }
}

.cs-intro {
  background: var(--white);
  padding: 120px 0;
}

.cs-intro__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.cs-intro__title { margin-bottom: 32px !important; }
.cs-intro__title em { color: var(--gold) !important; }

.cs-intro__body {
  font-family: var(--font-sans) !important;
  font-size: 1rem;
  font-weight: 300;
  line-height: 1.85;
  color: var(--muted) !important;
  margin-bottom: 20px !important;
}

.cs-intro__body:last-child { margin-bottom: 0 !important; }

.cs-intro__img-wrap {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}

.cs-intro__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.8s var(--ease);
}

.cs-intro__img-wrap:hover .cs-intro__img { transform: scale(1.03); }

.cs-intro__img-accent {
  position: absolute;
  bottom: -12px;
  right: -12px;
  width: 80px;
  height: 80px;
  border-right: 2px solid var(--gold);
  border-bottom: 2px solid var(--gold);
  pointer-events: none;
}

@media (max-width: 1100px) { .cs-intro__grid { gap: 48px; } }

@media (max-width: 768px) {
  .cs-intro { padding: 80px 0; }
  .cs-intro__grid { grid-template-columns: 1fr; gap: 48px; }
  .cs-intro__visual { order: -1; }
}

@media (max-width: 480px) { .cs-intro { padding: 60px 0; } }

.cs-services {
  background: var(--black);
  padding: 120px 0;
}

.cs-services .cs-section-title { color: var(--white) !important; }

.cs-services__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--border);
  border: 1px solid var(--border);
}

.cs-card {
  background: var(--mid);
  display: flex;
  flex-direction: column;
  transition: background 0.3s var(--ease);
  overflow: hidden;
}

.cs-card:hover { background: #1e1e1e; }

.cs-card__img-wrap {
  aspect-ratio: 16/10;
  overflow: hidden;
  position: relative;
}

.cs-card__img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s var(--ease), filter 0.5s var(--ease);
  filter: brightness(0.85) saturate(0.9);
}

.cs-card:hover .cs-card__img-wrap img { transform: scale(1.06); filter: brightness(0.95) saturate(1); }

.cs-card__body {
  padding: 28px 28px 32px;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.cs-card__line {
  width: 32px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 18px;
  transition: width 0.4s var(--ease);
}

.cs-card:hover .cs-card__line { width: 56px; }

.cs-card__title {
  font-family: var(--font-display) !important;
  font-size: 1.25rem;
  font-weight: 400;
  line-height: 1.3;
  color: var(--white) !important;
  margin: 0 0 12px !important;
}

.cs-card__title em { font-style: italic; color: var(--gold) !important; }

.cs-card__desc {
  font-family: var(--font-sans) !important;
  font-size: 0.875rem;
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted) !important;
  flex: 1;
  margin-bottom: 20px !important;
}

.cs-card__link {
  font-family: var(--font-sans) !important;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold) !important;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
  transition: gap 0.3s var(--ease), color 0.3s var(--ease);
}

.cs-card__link:hover { color: var(--gold-lt) !important; gap: 10px; text-decoration: none; }

@media (max-width: 1100px) { .cs-services__grid { grid-template-columns: repeat(2, 1fr); } }

@media (max-width: 768px) {
  .cs-services { padding: 80px 0; }
  .cs-services__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  .cs-services__grid { grid-template-columns: 1fr; }
  .cs-card__body { padding: 20px 20px 24px; }
}

.cs-how {
  background: var(--mid);
  padding: 160px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.cs-how__grid { display: flex; align-items: flex-start; gap: 0; }

.cs-how__step {
  flex: 1;
  padding: 0 48px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.cs-how__step:first-child { padding-left: 0; }
.cs-how__step:last-child  { padding-right: 0; }

.cs-how__num {
  font-family: var(--font-display) !important;
  font-size: clamp(3.5rem, 6vw, 5.5rem);
  font-style: italic;
  font-weight: 400;
  color: var(--gold) !important;
  line-height: 1;
  display: block;
  margin-bottom: 24px;
  opacity: 0.9;
}

.cs-how__title {
  font-family: var(--font-display) !important;
  font-size: 1.5rem;
  font-weight: 400;
  font-style: italic;
  color: var(--white) !important;
  margin: 0 0 16px !important;
}

.cs-how__desc {
  font-family: var(--font-sans) !important;
  font-size: 0.9rem;
  font-weight: 300;
  line-height: 1.8;
  color: var(--muted) !important;
}

.cs-how__sep { width: 1px; height: 180px; background: var(--border); flex-shrink: 0; align-self: center; }

@media (max-width: 1100px) { .cs-how__step { padding: 0 32px; } }

@media (max-width: 768px) {
  .cs-how { padding: 80px 0; }
  .cs-how__grid { flex-direction: column; }
  .cs-how__step { padding: 40px 0; border-bottom: 1px solid var(--border); }
  .cs-how__step:last-child { border-bottom: none; padding-bottom: 0; }
  .cs-how__step:first-child { padding-top: 0; }
  .cs-how__sep { display: none; }
}

@media (max-width: 480px) { .cs-how { padding: 60px 0; } }

.cs-contact {
  background: #0f0f0f;
  padding: 120px 0;
}

.cs-contact__header { text-align: center; margin-bottom: 64px; }

.cs-contact__title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.2rem, 4vw, 3.2rem);
  font-weight: 400;
  line-height: 1.12;
  color: var(--white) !important;
  margin: 0 0 16px !important;
}

.cs-contact__title em { font-style: italic; color: var(--gold) !important; }

.cs-contact__sub {
  font-family: var(--font-sans) !important;
  font-size: 0.9rem;
  font-weight: 300;
  color: var(--muted) !important;
  line-height: 1.7;
}

.cs-form { width: 100%; }
.cs-form__row { display: flex; gap: 32px; margin-bottom: 40px; }
.cs-form__row--two { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.cs-form__row--submit { flex-direction: column; align-items: center; text-align: center; gap: 20px; margin-top: 8px; }
.cs-form__field { position: relative; flex: 1; }

.cs-form__input {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--border);
  color: var(--white) !important;
  font-family: var(--font-sans) !important;
  font-size: 1rem;
  font-weight: 300;
  padding: 20px 0 10px;
  outline: none;
  transition: border-color 0.3s var(--ease);
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  line-height: 1.4;
}

.cs-form__input::placeholder { color: transparent; }
.cs-form__input:focus { border-bottom-color: var(--gold); }

.cs-form__label {
  position: absolute;
  top: 20px;
  left: 0;
  font-family: var(--font-sans) !important;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--muted) !important;
  pointer-events: none;
  transition: top 0.25s var(--ease), font-size 0.25s var(--ease), color 0.25s var(--ease), letter-spacing 0.25s var(--ease);
  letter-spacing: 0;
}

.cs-form__input:focus ~ .cs-form__label,
.cs-form__input:not(:placeholder-shown) ~ .cs-form__label,
.cs-form__select:valid ~ .cs-form__label {
  top: 2px;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold) !important;
}

.cs-form__bar {
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width 0.4s var(--ease);
}

.cs-form__input:focus ~ .cs-form__bar { width: 100%; }

.cs-form__textarea { resize: vertical; min-height: 120px; padding-top: 22px; }
.cs-form__field--select { position: relative; }
.cs-form__select { cursor: pointer; }
.cs-form__select option { background: var(--mid); color: var(--white); }
.cs-form__label--select { pointer-events: none; }

.cs-form__select-arrow {
  position: absolute;
  right: 0;
  top: 22px;
  font-size: 12px;
  color: var(--muted);
  pointer-events: none;
  transition: color 0.3s var(--ease);
}

.cs-form__field--select:focus-within .cs-form__select-arrow { color: var(--gold); }

.cs-form__privacy {
  font-family: var(--font-sans) !important;
  font-size: 11px;
  font-weight: 400;
  color: var(--muted) !important;
  line-height: 1.7;
  max-width: 480px;
  text-align: center;
}

@media (max-width: 768px) {
  .cs-contact { padding: 80px 0; }
  .cs-form__row--two { grid-template-columns: 1fr; gap: 32px; }
}

@media (max-width: 480px) {
  .cs-contact { padding: 60px 0; }
  .cs-contact__header { margin-bottom: 48px; }
}

.cs-cta-phone {
  background: var(--mid);
  padding: 120px 0;
  text-align: center;
  border-top: 1px solid var(--border);
}

.cs-cta-phone__inner { display: flex; flex-direction: column; align-items: center; gap: 0; }

.cs-cta-phone__eyebrow {
  font-family: var(--font-display) !important;
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  font-style: italic;
  font-weight: 400;
  color: var(--white) !important;
  margin-bottom: 40px !important;
}

.cs-cta-phone__number {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 3.5vw, 3.2rem);
  font-style: italic;
  font-weight: 400;
  color: var(--gold) !important;
  text-decoration: none;
  line-height: 1;
  display: block;
  margin-bottom: 36px;
  letter-spacing: -0.01em;
  transition: color 0.3s var(--ease);
}

.cs-cta-phone__number:hover { color: var(--gold-lt) !important; text-decoration: none; }

.cs-cta-phone__sub {
  font-family: var(--font-sans) !important;
  font-size: 13px;
  font-weight: 400;
  letter-spacing: 0.1em;
  color: var(--muted) !important;
  margin-top: 0 !important;
  margin-bottom: 56px !important;
  padding-bottom: 0 !important;
}

.cs-cta-phone .cs-cta-phone__inner .cs-cta-phone__sub { margin-bottom: 56px !important; }

@media (max-width: 480px) { .cs-cta-phone { padding: 88px 0; } }

.cs-sticky {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  background: var(--black);
  border-top: 1px solid var(--border);
  padding: 14px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  transform: translateY(100%);
  transition: transform 0.5s var(--ease);
}

.cs-sticky.visible { transform: translateY(0); }

.cs-sticky__brand {
  font-family: var(--font-sans) !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--white) !important;
  white-space: nowrap;
}

.cs-sticky__phone {
  font-family: var(--font-display) !important;
  font-size: 1.3rem;
  font-style: italic;
  color: var(--gold) !important;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.3s var(--ease);
}

.cs-sticky__phone:hover { color: var(--gold-lt) !important; text-decoration: none; }

@media (max-width: 768px) {
  .cs-sticky { padding: 12px 24px; gap: 12px; }
  .cs-sticky__brand { display: none; }
  .cs-sticky__phone { font-size: 1.1rem; }
}

@media (max-width: 480px) {
  .cs-sticky { padding: 10px 16px; }
  .cs-sticky__phone { font-size: 1rem; }
  .cs-btn--sticky { padding: 10px 18px; font-size: 10px; }
}

/* ── FAQ — Conciergerie ──────────────────────────────────── */
.cs-faq {
  background: #0f0f0f;
  padding: 100px 0 80px;
  border-top: 1px solid var(--border);
}
.cs-faq__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 60px 80px;
  align-items: start;
}
.cs-faq__rule {
  width: 32px;
  height: 1px;
  background: var(--gold);
  margin-bottom: 20px;
}
.cs-faq__label {
  display: block;
  font-family: var(--font-sans) !important;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 20px;
}
.cs-faq__title {
  font-family: var(--font-display) !important;
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  color: var(--white) !important;
  line-height: 1.2;
  margin: 0 !important;
}
.cs-faq__title em {
  font-style: italic;
  color: var(--gold) !important;
}
.cs-faq__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.cs-faq-item {
  border-bottom: 1px solid rgba(201,169,110,.15);
}
.cs-faq-item:first-child {
  border-top: 1px solid rgba(201,169,110,.15);
}
.cs-faq-item summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 22px 0;
  font-family: var(--font-sans) !important;
  font-size: 14px;
  font-weight: 400;
  color: var(--white) !important;
  cursor: pointer;
  list-style: none;
  transition: color .3s var(--ease);
}
.cs-faq-item summary::-webkit-details-marker { display: none; }
.cs-faq-item summary:hover { color: var(--gold); }
.cs-faq-item__icon {
  flex-shrink: 0;
  font-family: var(--font-sans) !important;
  font-size: 18px;
  font-weight: 300;
  color: var(--gold);
  line-height: 1;
  transition: transform .35s var(--ease);
  display: inline-block;
}
.cs-faq-item[open] summary { color: var(--gold); }
.cs-faq-item[open] .cs-faq-item__icon { transform: rotate(45deg); }
.cs-faq-item__body {
  font-family: var(--font-sans) !important;
  font-size: 13px;
  font-weight: 300;
  color: var(--muted) !important;
  line-height: 1.75;
  padding: 0 0 24px;
  max-width: 640px;
  margin: 0 !important;
}
@media (max-width: 768px) {
  .cs-faq__inner { grid-template-columns: 1fr; gap: 40px; padding: 0 24px; }
  .cs-faq { padding: 70px 0 60px; }
}

/* =========================================
   14. PAGE MAGAZINE — CLASSES .mg-
========================================= */

body:has(.mg-hero) {
  overflow-x: hidden !important;
}

.uncont:has(.mg-hero),
.uncont:has(.mg-featured),
.uncont:has(.mg-filters),
.uncont:has(.mg-grid-section),
.uncont:has(.mg-quote),
.uncont:has(.mg-guide),
.uncont:has(.mg-newsletter),
.uncont:has(.mg-villas) {
  max-width: 100% !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

.uncell:has(.mg-hero),
.uncell:has(.mg-featured),
.uncell:has(.mg-filters),
.uncell:has(.mg-grid-section),
.uncell:has(.mg-quote),
.uncell:has(.mg-guide),
.uncell:has(.mg-newsletter),
.uncell:has(.mg-villas),
.uncoltable:has(.mg-hero),
.uncoltable:has(.mg-featured),
.uncoltable:has(.mg-filters),
.uncoltable:has(.mg-grid-section),
.uncoltable:has(.mg-quote),
.uncoltable:has(.mg-guide),
.uncoltable:has(.mg-newsletter),
.uncoltable:has(.mg-villas),
.uncol:has(.mg-hero),
.uncol:has(.mg-featured),
.uncol:has(.mg-filters),
.uncol:has(.mg-grid-section),
.uncol:has(.mg-quote),
.uncol:has(.mg-guide),
.uncol:has(.mg-newsletter),
.uncol:has(.mg-villas) {
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

.single-internal-gutter:has(.mg-hero),
.single-internal-gutter:has(.mg-featured),
.single-internal-gutter:has(.mg-filters),
.single-internal-gutter:has(.mg-grid-section),
.single-internal-gutter:has(.mg-quote),
.single-internal-gutter:has(.mg-guide),
.single-internal-gutter:has(.mg-newsletter),
.single-internal-gutter:has(.mg-villas) {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.wpb_column:has(.mg-hero),
.wpb_column:has(.mg-featured),
.wpb_column:has(.mg-filters),
.wpb_column:has(.mg-grid-section),
.wpb_column:has(.mg-quote),
.wpb_column:has(.mg-guide),
.wpb_column:has(.mg-newsletter),
.wpb_column:has(.mg-villas),
.col-lg-12:has(.mg-hero),
.col-lg-12:has(.mg-featured),
.col-lg-12:has(.mg-filters),
.col-lg-12:has(.mg-grid-section),
.col-lg-12:has(.mg-quote),
.col-lg-12:has(.mg-guide),
.col-lg-12:has(.mg-newsletter),
.col-lg-12:has(.mg-villas),
.vc_column-inner:has(.mg-hero),
.vc_column-inner:has(.mg-featured),
.vc_column-inner:has(.mg-filters),
.vc_column-inner:has(.mg-grid-section),
.vc_column-inner:has(.mg-quote),
.vc_column-inner:has(.mg-guide),
.vc_column-inner:has(.mg-newsletter),
.vc_column-inner:has(.mg-villas),
.wpb_wrapper:has(.mg-hero),
.wpb_wrapper:has(.mg-featured),
.wpb_wrapper:has(.mg-filters),
.wpb_wrapper:has(.mg-grid-section),
.wpb_wrapper:has(.mg-quote),
.wpb_wrapper:has(.mg-guide),
.wpb_wrapper:has(.mg-newsletter),
.wpb_wrapper:has(.mg-villas),
.wpb_raw_html:has(.mg-hero),
.wpb_raw_html:has(.mg-featured),
.wpb_raw_html:has(.mg-filters),
.wpb_raw_html:has(.mg-grid-section),
.wpb_raw_html:has(.mg-quote),
.wpb_raw_html:has(.mg-guide),
.wpb_raw_html:has(.mg-newsletter),
.wpb_raw_html:has(.mg-villas),
.vc_row:has(.mg-hero),
.vc_row:has(.mg-featured),
.vc_row:has(.mg-filters),
.vc_row:has(.mg-grid-section),
.vc_row:has(.mg-quote),
.vc_row:has(.mg-guide),
.vc_row:has(.mg-newsletter),
.vc_row:has(.mg-villas),
.row-container:has(.mg-hero),
.row-container:has(.mg-featured),
.row-container:has(.mg-filters),
.row-container:has(.mg-grid-section),
.row-container:has(.mg-quote),
.row-container:has(.mg-guide),
.row-container:has(.mg-newsletter),
.row-container:has(.mg-villas),
.wpb_row:has(.mg-hero),
.wpb_row:has(.mg-featured),
.wpb_row:has(.mg-filters),
.wpb_row:has(.mg-grid-section),
.wpb_row:has(.mg-quote),
.wpb_row:has(.mg-guide),
.wpb_row:has(.mg-newsletter),
.wpb_row:has(.mg-villas) {
  padding: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
}

.mg-hero,
.mg-featured,
.mg-filters,
.mg-grid-section,
.mg-quote,
.mg-guide,
.mg-newsletter,
.mg-villas {
  box-sizing: border-box !important;
  position: relative !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.mg-hero *,
.mg-featured *,
.mg-filters *,
.mg-grid-section *,
.mg-quote *,
.mg-guide *,
.mg-newsletter *,
.mg-villas *,
.mg-sticky * {
  box-sizing: border-box;
}

.mg-hero p:not(.mg-hero__subtitle),
.mg-featured p:not(.mg-featured__excerpt),
.mg-grid-section p:not(.mg-card__excerpt),
.mg-quote p,
.mg-guide p:not(.mg-guide__sub),
.mg-newsletter p:not(.mg-newsletter__sub):not(.mg-newsletter__legal),
.mg-villas p:not(.mg-villas__sub):not(.mg-villa-card__location):not(.mg-villa-card__excerpt) {
  margin: 0 !important;
  padding: 0 !important;
  line-height: inherit !important;
}

.mg-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.mg-hero {
  height: 70vh;
  min-height: 540px;
  max-height: 820px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: var(--black);
}

.mg-hero__bg { position: absolute; inset: 0; z-index: 0; }

.mg-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  transform: scale(1.04);
  transition: transform 12s var(--ease);
}

.mg-hero:hover .mg-hero__img { transform: scale(1); }

.mg-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10, 10, 10, 0.95) 0%,
    rgba(10, 10, 10, 0.55) 40%,
    rgba(10, 10, 10, 0.05) 100%
  );
}

.mg-hero__content {
  position: relative;
  z-index: 2;
  padding: 0 80px 80px;
  width: 100%;
  max-width: 1100px;
}

.mg-hero__tag {
  display: block;
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 28px !important;
  line-height: 1.4 !important;
}

.mg-hero__title {
  font-family: var(--font-display) !important;
  font-size: clamp(3rem, 7vw, 7rem) !important;
  font-weight: 300 !important;
  line-height: 1.02 !important;
  color: var(--white) !important;
  letter-spacing: -0.02em !important;
  margin: 0 0 28px !important;
}

.mg-hero__title em { font-style: italic; color: var(--gold) !important; font-weight: 300; }

.mg-hero__subtitle {
  font-family: var(--font-sans) !important;
  font-size: clamp(0.95rem, 1.4vw, 1.1rem) !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: rgba(245, 243, 238, 0.7) !important;
  max-width: 560px;
  letter-spacing: 0.3px !important;
  margin: 0 !important;
}

.mg-featured {
  background: var(--black);
  padding: 120px 0;
}

.mg-featured__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
}

.mg-featured__link { display: block; text-decoration: none !important; color: inherit; }

.mg-featured__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 0;
  align-items: stretch;
  background: var(--mid);
  position: relative;
  overflow: hidden;
}

.mg-featured__grid::after {
  content: '';
  position: absolute;
  top: 60px;
  bottom: 60px;
  left: 60%;
  width: 1px;
  background: var(--gold);
  opacity: 0.35;
  pointer-events: none;
}

.mg-featured__visual {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/10;
}

.mg-featured__img {
  transition: transform 8s var(--ease);
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.mg-featured__link:hover .mg-featured__img { transform: scale(1.03); }

.mg-featured__accent {
  position: absolute;
  bottom: -1px;
  left: -1px;
  width: 60px;
  height: 60px;
  border-left: 1px solid var(--gold);
  border-bottom: 1px solid var(--gold);
  pointer-events: none;
  z-index: 2;
}

.mg-featured__body {
  padding: 64px 56px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.mg-featured__category {
  display: block;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 14px !important;
  line-height: 1.4 !important;
}

.mg-featured__date {
  display: block;
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 300 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase;
  color: var(--muted) !important;
  margin-bottom: 28px !important;
}

.mg-featured__title {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 3vw, 2.8rem) !important;
  font-weight: 300 !important;
  line-height: 1.12 !important;
  color: var(--white) !important;
  letter-spacing: -0.01em !important;
  margin: 0 0 24px !important;
}

.mg-featured__title em { font-style: italic; color: var(--gold-lt) !important; }

.mg-featured__excerpt {
  font-family: var(--font-sans) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  line-height: 1.75 !important;
  color: rgba(245, 243, 238, 0.65) !important;
  margin: 0 0 32px !important;
  letter-spacing: 0.2px !important;
}

.mg-featured__cta {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 4px;
  align-self: flex-start;
  display: inline-block;
  transition: color 0.3s var(--ease);
}

.mg-featured__link:hover .mg-featured__cta { color: var(--gold-lt) !important; }

.mg-filters {
  background: var(--black);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 28px 0;
}

.mg-filters__nav {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 36px;
  flex-wrap: wrap;
}

.mg-filters__item {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
  text-decoration: none !important;
  padding: 6px 0;
  border-bottom: 1px solid transparent;
  transition: color 0.3s var(--ease), border-color 0.3s var(--ease);
  white-space: nowrap;
}

.mg-filters__item:hover { color: var(--gold) !important; }
.mg-filters__item.active { color: var(--gold) !important; border-bottom-color: var(--gold); }

.mg-grid-section {
  background: var(--black);
  padding: 100px 0 120px;
}

.mg-grid {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 60px 48px;
}

.mg-card { display: block; }

.mg-card__link { display: block; text-decoration: none !important; color: inherit !important; }

.mg-card__img-wrap {
  position: relative;
  aspect-ratio: 4/5;
  overflow: hidden;
  margin-bottom: 24px;
  background: var(--mid);
}

.mg-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1.2s var(--ease), filter 0.5s var(--ease);
  filter: brightness(0.9) saturate(0.92);
}

.mg-card__link:hover .mg-card__img { transform: scale(1.03); filter: brightness(1) saturate(1); }

.mg-card__body { display: flex; flex-direction: column; }

.mg-card__meta { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }

.mg-card__category {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  line-height: 1.4 !important;
}

.mg-card__date {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 300 !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase;
  color: var(--muted) !important;
  position: relative;
  padding-left: 14px;
}

.mg-card__date::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 1px;
  background: var(--muted);
}

.mg-card__title {
  font-family: var(--font-display) !important;
  font-size: 1.35rem !important;
  font-weight: 300 !important;
  font-style: italic;
  line-height: 1.25 !important;
  color: var(--white) !important;
  margin: 0 0 12px !important;
  letter-spacing: 0 !important;
  transition: color 0.3s var(--ease);
}

.mg-card__link:hover .mg-card__title { color: var(--gold) !important; }

.mg-card__excerpt {
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: rgba(245, 243, 238, 0.55) !important;
  margin: 0 !important;
  letter-spacing: 0.2px !important;
}

.mg-loadmore {
  max-width: 1400px;
  margin: 80px auto 0;
  padding: 0 80px;
  text-align: center;
}

.mg-loadmore__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 40px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  text-decoration: none !important;
  background: transparent;
  border: 1px solid rgba(201, 169, 110, 0.4);
  cursor: pointer;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), color 0.3s var(--ease);
  line-height: 1 !important;
}

.mg-loadmore__btn:hover { background: rgba(201, 169, 110, 0.08); border-color: var(--gold); color: var(--gold-lt) !important; }

.mg-loadmore__chevron { font-size: 14px; line-height: 1; margin-top: -2px; transition: transform 0.3s var(--ease); }
.mg-loadmore__btn:hover .mg-loadmore__chevron { transform: translateY(3px); }

.mg-quote {
  background: var(--mid);
  padding: 140px 0;
  text-align: center;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.mg-quote__inner { max-width: 980px; margin: 0 auto; padding: 0 60px; }

.mg-quote__mark {
  display: block;
  font-family: var(--font-display) !important;
  font-size: 100px !important;
  font-style: italic;
  font-weight: 300 !important;
  color: var(--gold) !important;
  line-height: 0.4;
  margin-bottom: 32px;
  opacity: 0.55;
}

.mg-quote__text {
  font-family: var(--font-display) !important;
  font-size: clamp(1.8rem, 3.2vw, 2.8rem) !important;
  font-style: italic;
  font-weight: 300 !important;
  line-height: 1.3 !important;
  color: var(--white) !important;
  margin: 0 0 40px !important;
  padding: 0 !important;
  letter-spacing: -0.005em !important;
}

.mg-quote__cite {
  display: inline-block;
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  line-height: 1.4 !important;
}

.mg-guide { background: var(--black); padding: 120px 0; }

.mg-guide__header { max-width: 1400px; margin: 0 auto 72px; padding: 0 80px; text-align: center; }

.mg-guide__rule { display: block; width: 40px; height: 1px; background: var(--gold); margin: 0 auto 28px; }

.mg-guide__title {
  font-family: var(--font-display) !important;
  font-size: clamp(2.2rem, 4vw, 3.4rem) !important;
  font-weight: 300 !important;
  line-height: 1.1 !important;
  color: var(--white) !important;
  margin: 0 0 18px !important;
  letter-spacing: -0.01em !important;
}

.mg-guide__title em { font-style: italic; color: var(--gold) !important; }

.mg-guide__sub {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: var(--muted) !important;
  max-width: 540px;
  margin: 0 auto !important;
  letter-spacing: 0.3px !important;
}

.mg-guide__grid {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}

.mg-guide-card { display: block; text-decoration: none !important; color: inherit !important; }

.mg-guide-card__img-wrap {
  position: relative;
  aspect-ratio: 1/1;
  overflow: hidden;
  margin-bottom: 20px;
  background: var(--mid);
}

.mg-guide-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 1s var(--ease), filter 0.4s var(--ease);
  filter: brightness(0.88) saturate(0.9);
}

.mg-guide-card:hover .mg-guide-card__img { transform: scale(1.04); filter: brightness(1) saturate(1); }

.mg-guide-card__title {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-weight: 300 !important;
  font-style: italic;
  line-height: 1.3 !important;
  color: var(--white) !important;
  margin: 0 0 12px !important;
  transition: color 0.3s var(--ease);
}

.mg-guide-card:hover .mg-guide-card__title { color: var(--gold) !important; }

.mg-guide-card__link {
  display: inline-block;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  line-height: 1.4 !important;
}

.mg-newsletter {
  background: var(--black);
  padding: 120px 0;
  border-top: 1px solid var(--border);
  text-align: center;
}

.mg-newsletter__inner { max-width: 640px; margin: 0 auto; padding: 0 40px; }

.mg-newsletter__tag {
  display: block;
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 24px !important;
}

.mg-newsletter__title {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 300 !important;
  line-height: 1.1 !important;
  color: var(--white) !important;
  margin: 0 0 18px !important;
}

.mg-newsletter__title em { font-style: italic; color: var(--gold) !important; }

.mg-newsletter__sub {
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: var(--muted) !important;
  margin: 0 0 48px !important;
}

.mg-newsletter__form {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--border);
  transition: border-color 0.3s var(--ease);
}

.mg-newsletter__form:focus-within { border-bottom-color: var(--gold); }

.mg-newsletter__field { flex: 1; position: relative; text-align: left; }

.mg-newsletter__input {
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  font-family: var(--font-sans) !important;
  font-size: 15px !important;
  font-weight: 300 !important;
  color: var(--white) !important;
  padding: 22px 0 14px;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
}

.mg-newsletter__input::placeholder { color: transparent; }

.mg-newsletter__label {
  position: absolute;
  left: 0;
  top: 22px;
  font-family: var(--font-sans) !important;
  font-size: 14px !important;
  font-weight: 300 !important;
  color: var(--muted) !important;
  pointer-events: none;
  transition: top 0.3s, font-size 0.3s, letter-spacing 0.3s, color 0.3s;
}

.mg-newsletter__input:focus ~ .mg-newsletter__label,
.mg-newsletter__input:not(:placeholder-shown) ~ .mg-newsletter__label {
  top: 2px;
  font-size: 9px !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
}

.mg-newsletter__btn {
  flex-shrink: 0;
  padding: 14px 32px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--black) !important;
  background: var(--white);
  border: 1px solid var(--white);
  cursor: pointer;
  transition: background 0.3s, border-color 0.3s;
  align-self: center;
  margin-bottom: 6px;
  line-height: 1 !important;
}

.mg-newsletter__btn:hover { background: var(--gold); border-color: var(--gold); }

.mg-newsletter__legal {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 300 !important;
  line-height: 1.7 !important;
  color: rgba(107, 107, 107, 0.8) !important;
  margin: 0 !important;
}

.mg-villas {
  background: var(--mid);
  padding: 120px 0;
  border-top: 1px solid var(--border);
}

.mg-villas__header {
  max-width: 1400px;
  margin: 0 auto 64px;
  padding: 0 80px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

.mg-villas__rule { display: block; width: 40px; height: 1px; background: var(--gold); margin-bottom: 24px; }

.mg-villas__label {
  display: block;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 16px !important;
  line-height: 1.4 !important;
}

.mg-villas__title {
  font-family: var(--font-display) !important;
  font-size: clamp(2rem, 3.5vw, 3.2rem) !important;
  font-weight: 300 !important;
  line-height: 1.08 !important;
  color: var(--white) !important;
  margin: 0 !important;
  letter-spacing: -0.01em !important;
}

.mg-villas__title em { font-style: italic; color: var(--gold-lt) !important; }

.mg-villas__sub {
  font-family: var(--font-sans) !important;
  font-size: 13px !important;
  font-weight: 300 !important;
  line-height: 1.75 !important;
  color: rgba(245, 243, 238, 0.5) !important;
  max-width: 320px;
  margin: 0 !important;
  letter-spacing: 0.2px !important;
  text-align: right;
  align-self: flex-end;
  flex-shrink: 0;
}

.mg-villas__grid {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
}

.mg-villa-card {
  display: block;
  position: relative;
  overflow: hidden;
  text-decoration: none !important;
  color: inherit;
  aspect-ratio: 4/3;
  background: var(--black);
}

.mg-villa-card--featured { aspect-ratio: 3/2; }

.mg-villa-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 8s var(--ease), filter 0.6s var(--ease);
  filter: brightness(0.75) saturate(0.85);
}

.mg-villa-card:hover .mg-villa-card__img { transform: scale(1.06); filter: brightness(0.9) saturate(1); }

.mg-villa-card__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(10, 10, 10, 0.92) 0%, rgba(10, 10, 10, 0.3) 45%, rgba(10, 10, 10, 0.0) 100%);
  transition: background 0.5s var(--ease);
}

.mg-villa-card:hover .mg-villa-card__overlay {
  background: linear-gradient(to top, rgba(10, 10, 10, 0.98) 0%, rgba(10, 10, 10, 0.45) 55%, rgba(10, 10, 10, 0.05) 100%);
}

.mg-villa-card__content { position: absolute; bottom: 0; left: 0; right: 0; padding: 32px 32px 36px; z-index: 2; }

.mg-villa-card__location {
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  font-weight: 500 !important;
  letter-spacing: 0.35em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  margin-bottom: 10px !important;
  display: block;
  line-height: 1.4 !important;
}

.mg-villa-card__name {
  font-family: var(--font-display) !important;
  font-size: clamp(1.6rem, 2.5vw, 2.2rem) !important;
  font-weight: 300 !important;
  font-style: italic;
  line-height: 1.05 !important;
  color: var(--white) !important;
  margin: 0 0 14px !important;
  letter-spacing: -0.01em !important;
}

.mg-villa-card__excerpt {
  font-family: var(--font-sans) !important;
  font-size: 12px !important;
  font-weight: 300 !important;
  line-height: 1.65 !important;
  color: rgba(245, 243, 238, 0.6) !important;
  margin: 0 0 20px !important;
  max-width: 380px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.4s var(--ease), transform 0.4s var(--ease);
}

.mg-villa-card:hover .mg-villa-card__excerpt { opacity: 1; transform: translateY(0); }

.mg-villa-card__stats { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }

.mg-villa-card__stat {
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.55) !important;
  line-height: 1.4 !important;
}

.mg-villa-card__stat strong { color: var(--white) !important; font-weight: 400; }
.mg-villa-card__stat::before { display: none; }
.mg-villa-card__stat + .mg-villa-card__stat { padding-left: 20px; border-left: 1px solid rgba(245, 243, 238, 0.2); }

.mg-villa-card__cta {
  position: absolute;
  top: 24px;
  right: 24px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: var(--gold) !important;
  border: 1px solid rgba(201, 169, 110, 0.4);
  padding: 8px 16px;
  background: rgba(10, 10, 10, 0.5);
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease), border-color 0.3s, background 0.3s;
  line-height: 1.4 !important;
}

.mg-villa-card:hover .mg-villa-card__cta { opacity: 1; transform: translateY(0); border-color: var(--gold); background: rgba(10, 10, 10, 0.75); }

.mg-villa-card__badge {
  position: absolute;
  top: 24px;
  left: 24px;
  font-family: var(--font-sans) !important;
  font-size: 9px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--black) !important;
  background: var(--gold);
  padding: 6px 14px;
  line-height: 1.4 !important;
  z-index: 3;
}

.mg-villas__footer {
  max-width: 1400px;
  margin: 56px auto 0;
  padding: 0 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.mg-villas__footer-text {
  font-family: var(--font-display) !important;
  font-size: 1.1rem !important;
  font-style: italic;
  font-weight: 300 !important;
  color: rgba(245, 243, 238, 0.45) !important;
}

.mg-villas__btn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 16px 40px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--black) !important;
  background: var(--white);
  border: 1px solid var(--white);
  text-decoration: none !important;
  cursor: pointer;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), color 0.3s var(--ease);
  flex-shrink: 0;
  line-height: 1 !important;
}

.mg-villas__btn:hover { background: var(--gold) !important; border-color: var(--gold) !important; color: var(--black) !important; }

.mg-villas__btn-arrow { font-size: 14px; transition: transform 0.3s var(--ease); }
.mg-villas__btn:hover .mg-villas__btn-arrow { transform: translateX(4px); }

.mg-sticky {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 150;
  background: rgba(10, 10, 10, 0.97);
  border-top: 1px solid var(--border);
  transform: translateY(100%);
  transition: transform 0.5s var(--ease);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.mg-sticky.visible { transform: translateY(0); }

.mg-sticky__inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 14px 80px;
  display: flex;
  align-items: center;
  gap: 32px;
}

.mg-sticky__brand {
  font-family: var(--font-display) !important;
  font-size: 17px !important;
  font-style: italic;
  font-weight: 300 !important;
  color: var(--white) !important;
  flex-shrink: 0;
}

.mg-sticky__center {
  font-family: var(--font-sans) !important;
  font-size: 11px !important;
  font-weight: 400 !important;
  letter-spacing: 0.25em !important;
  text-transform: uppercase;
  color: rgba(245, 243, 238, 0.5) !important;
  margin: 0 auto;
}

.mg-sticky__btn {
  flex-shrink: 0;
  display: inline-block;
  padding: 12px 28px;
  font-family: var(--font-sans) !important;
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3em !important;
  text-transform: uppercase;
  color: var(--black) !important;
  background: var(--gold);
  border: 1px solid var(--gold);
  text-decoration: none !important;
  transition: background 0.3s, border-color 0.3s;
  line-height: 1 !important;
}

.mg-sticky__btn:hover { background: var(--gold-lt); border-color: var(--gold-lt); }

/* RESPONSIVE MAGAZINE */

@media (max-width: 1100px) {
  .mg-hero__content                { padding: 0 40px 64px; }
  .mg-featured                     { padding: 80px 0; }
  .mg-featured__inner              { padding: 0 40px; }
  .mg-featured__grid               { grid-template-columns: 1fr; }
  .mg-featured__grid::after        { display: none; }
  .mg-featured__visual             { aspect-ratio: 16/8; }
  .mg-featured__body               { padding: 48px 40px; }
  .mg-filters__nav                 { padding: 0 40px; gap: 24px; }
  .mg-grid                         { grid-template-columns: repeat(2, 1fr); padding: 0 40px; gap: 48px 32px; }
  .mg-grid-section                 { padding: 80px 0 100px; }
  .mg-loadmore                     { padding: 0 40px; margin-top: 64px; }
  .mg-quote                        { padding: 100px 0; }
  .mg-quote__inner                 { padding: 0 40px; }
  .mg-guide__header                { padding: 0 40px; margin-bottom: 56px; }
  .mg-guide__grid                  { grid-template-columns: repeat(2, 1fr); padding: 0 40px; gap: 32px; }
  .mg-newsletter__inner            { padding: 0 40px; }
  .mg-villas                       { padding: 96px 0; }
  .mg-villas__header               { padding: 0 40px; }
  .mg-villas__grid                 { padding: 0 40px; gap: 2px; }
  .mg-villas__footer               { padding: 0 40px; }
  .mg-sticky__inner                { padding: 14px 40px; }
}

@media (max-width: 768px) {
  .mg-hero                         { height: 65vh; min-height: 480px; }
  .mg-hero__content                { padding: 0 24px 48px; }
  .mg-hero__title                  { font-size: clamp(2.4rem, 10vw, 4rem) !important; }
  .mg-hero__subtitle               { font-size: 14px !important; }
  .mg-featured                     { padding: 56px 0; }
  .mg-featured__inner              { padding: 0 20px; }
  .mg-featured__body               { padding: 32px 24px 40px; }
  .mg-featured__title              { font-size: 1.7rem !important; }
  .mg-featured__excerpt            { font-size: 14px !important; }
  .mg-filters                      { padding: 18px 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .mg-filters::-webkit-scrollbar   { display: none; }
  .mg-filters__nav                 { gap: 20px; padding: 0 20px; flex-wrap: nowrap; justify-content: flex-start; min-width: max-content; }
  .mg-grid                         { grid-template-columns: 1fr; padding: 0 20px; gap: 52px; }
  .mg-grid-section                 { padding: 64px 0 80px; }
  .mg-loadmore                     { margin-top: 48px; padding: 0 20px; }
  .mg-quote                        { padding: 80px 0; }
  .mg-quote__inner                 { padding: 0 24px; }
  .mg-quote__text                  { font-size: 1.5rem !important; }
  .mg-guide                        { padding: 72px 0; }
  .mg-guide__header                { padding: 0 24px; margin-bottom: 48px; }
  .mg-guide__grid                  { grid-template-columns: 1fr 1fr; padding: 0 20px; gap: 24px 16px; }
  .mg-newsletter                   { padding: 72px 0; }
  .mg-newsletter__inner            { padding: 0 24px; }
  .mg-newsletter__sub              { margin-bottom: 36px !important; }
  .mg-newsletter__form             { flex-direction: column; border-bottom: none; }
  .mg-newsletter__field            { border-bottom: 1px solid var(--border); }
  .mg-newsletter__field:focus-within { border-bottom-color: var(--gold); }
  .mg-newsletter__btn              { width: 100%; margin-bottom: 0; padding: 16px; }
  .mg-villas                       { padding: 72px 0; }
  .mg-villas__header               { flex-direction: column; align-items: flex-start; padding: 0 20px; gap: 16px; margin-bottom: 40px; }
  .mg-villas__sub                  { text-align: left; max-width: 100%; }
  .mg-villas__grid                 { grid-template-columns: 1fr; padding: 0 20px; gap: 3px; }
  .mg-villa-card                   { aspect-ratio: 16/9; }
  .mg-villa-card--featured         { aspect-ratio: 16/9; }
  .mg-villa-card__excerpt          { opacity: 1; transform: none; }
  .mg-villa-card__cta              { opacity: 1; transform: none; }
  .mg-villa-card__content          { padding: 20px 20px 24px; }
  .mg-villas__footer               { flex-direction: column; align-items: flex-start; padding: 0 20px; margin-top: 40px; gap: 20px; }
  .mg-villas__btn                  { width: 100%; justify-content: center; }
  .mg-sticky__inner                { padding: 12px 20px; gap: 16px; }
  .mg-sticky__center               { display: none; }
  .mg-sticky__btn                  { padding: 10px 20px; font-size: 9px !important; }
}

@media (max-width: 480px) {
  .mg-hero                         { height: 60vh; min-height: 420px; }
  .mg-hero__content                { padding: 0 16px 40px; }
  .mg-hero__title                  { font-size: clamp(2rem, 11vw, 3rem) !important; }
  .mg-featured                     { padding: 48px 0; }
  .mg-featured__inner              { padding: 0 16px; }
  .mg-featured__body               { padding: 24px 16px 32px; }
  .mg-grid                         { padding: 0 16px; }
  .mg-grid-section                 { padding: 48px 0 64px; }
  .mg-loadmore                     { padding: 0 16px; }
  .mg-quote                        { padding: 64px 0; }
  .mg-quote__inner                 { padding: 0 20px; }
  .mg-quote__text                  { font-size: 1.25rem !important; }
  .mg-guide__header                { padding: 0 20px; }
  .mg-guide__grid                  { grid-template-columns: 1fr; padding: 0 16px; gap: 32px; }
  .mg-newsletter__inner            { padding: 0 20px; }
  .mg-villas__header               { padding: 0 16px; }
  .mg-villas__grid                 { padding: 0 16px; }
  .mg-villa-card__name             { font-size: 1.4rem !important; }
  .mg-villas__footer               { padding: 0 16px; }
  .mg-sticky__inner                { padding: 10px 16px; }
  .mg-sticky__brand                { font-size: 13px !important; }
}

/* === VARIABLES === */
:root {
  --black: #0A0A0A; --white: #F5F3EE; --gold: #C9A96E; --gold-lt: #E8D8B4;
  --mid: #1A1A1A; --muted: #6B6B6B; --border: #2C2C2C;
  --font-display: 'Cormorant Garamond', serif;
  --font-serif: 'Playfair Display', serif;
  --font-sans: 'Inter', sans-serif;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* === VILLA SIGNAC — aspect-ratio === */
.mg-villas__grid .mg-villa-card--featured { aspect-ratio: 4/3; }

/* === VILLA SIGNAC — excerpt hors flux === */
.mg-villa-card__excerpt {
  max-height: 0 !important; overflow: hidden !important;
  opacity: 0 !important; margin: 0 !important; padding: 0 !important;
  transform: translateY(6px);
  transition: max-height .5s var(--ease), opacity .4s var(--ease),
              transform .4s var(--ease), margin .4s var(--ease) !important;
}
.mg-villa-card:hover .mg-villa-card__excerpt {
  max-height: 200px !important; opacity: 1 !important;
  transform: translateY(0) !important; margin: 0 0 20px !important;
}
@media (max-width: 768px) {
  .mg-villa-card__excerpt {
    max-height: none !important; opacity: 1 !important;
    transform: none !important; margin: 0 0 16px !important;
  }
}

/* === VILLAS — affichage mobile propre (image + texte empilés) === */
@media (max-width: 768px) {

  .mg-villas__grid { gap: 16px !important; }              /* respiration entre les cartes */

  /* On supprime le ratio fixe qui écrasait la carte */
  .mg-villa-card,
  .mg-villa-card--featured,
  .mg-villas__grid .mg-villa-card--featured {
    aspect-ratio: auto !important;
    display: block !important;
    background: var(--mid) !important;
    overflow: hidden !important;
  }

  /* L'image redevient un vrai bloc en haut de carte, bien visible */
  .mg-villa-card__img {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 4/3 !important;
    filter: brightness(0.96) saturate(1) !important;
  }

  /* Plus de dégradé sur toute la carte : le texte passe sur fond plein */
  .mg-villa-card__overlay { display: none !important; }

  /* Le contenu repasse dans le flux, SOUS l'image → plus de débordement */
  .mg-villa-card__content {
    position: static !important;
    padding: 26px 22px 30px !important;
  }

  /* La pastille « View villa » (affordance de survol desktop) est masquée :
     la carte entière est déjà cliquable */
  .mg-villa-card__cta { display: none !important; }

  /* Badge « Featured Villa » conservé, lisible sur l'image */
  .mg-villa-card__badge { top: 16px !important; left: 16px !important; }

  /* Excerpt toujours visible, dans le flux */
  .mg-villa-card__excerpt {
    max-height: none !important;
    opacity: 1 !important;
    transform: none !important;
    margin: 0 0 18px !important;
  }
}

/* === IMAGE FEATURED — fix définitif === */
.mg-featured__grid {
  display: grid !important;
  grid-template-columns: 1.5fr 1fr !important;
  overflow: hidden !important;
}
.mg-featured__visual {
  position: relative !important; min-width: 0 !important;
  max-width: 100% !important; overflow: hidden !important;
  aspect-ratio: unset !important;
}
.mg-featured__img {
  position: absolute !important; inset: 0 !important;
  width: 100% !important; height: 100% !important;
  max-width: none !important; object-fit: cover !important;
  object-position: center 35% !important;
}
.mg-featured__body {
  position: relative !important; z-index: 2 !important;
  min-width: 0 !important;
}

/* --- Empilement vertical : tablette + mobile --- */
@media (max-width: 1100px) {
  .mg-featured__grid   { grid-template-columns: 1fr !important; }
  .mg-featured__visual { aspect-ratio: 16/10 !important; }   /* image pleine largeur, cinématographique */
}
@media (max-width: 768px) {
  .mg-featured__visual { aspect-ratio: 4/3 !important; }     /* plus de présence sur téléphone */
}

/* =========================================
   15. PAGE PARTNERSHIPS — CLASSES .pt-
========================================= */

body:has(.pt-hero) {
  overflow-x: hidden !important;
}

.uncont:has(.pt-hero), .uncont:has(.pt-figures), .uncont:has(.pt-intro),
.uncont:has(.pt-categories), .uncont:has(.pt-partners), .uncont:has(.pt-quote),
.uncont:has(.pt-process), .uncont:has(.pt-join), .uncont:has(.pt-form-section),
.uncont:has(.pt-phone-cta) { max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }

.uncell:has(.pt-hero), .uncell:has(.pt-figures), .uncell:has(.pt-intro),
.uncell:has(.pt-categories), .uncell:has(.pt-partners), .uncell:has(.pt-quote),
.uncell:has(.pt-process), .uncell:has(.pt-join), .uncell:has(.pt-form-section),
.uncell:has(.pt-phone-cta),
.uncoltable:has(.pt-hero), .uncoltable:has(.pt-figures), .uncoltable:has(.pt-intro),
.uncoltable:has(.pt-categories), .uncoltable:has(.pt-partners), .uncoltable:has(.pt-quote),
.uncoltable:has(.pt-process), .uncoltable:has(.pt-join), .uncoltable:has(.pt-form-section),
.uncoltable:has(.pt-phone-cta),
.uncol:has(.pt-hero), .uncol:has(.pt-figures), .uncol:has(.pt-intro),
.uncol:has(.pt-categories), .uncol:has(.pt-partners), .uncol:has(.pt-quote),
.uncol:has(.pt-process), .uncol:has(.pt-join), .uncol:has(.pt-form-section),
.uncol:has(.pt-phone-cta) { padding: 0 !important; margin: 0 !important; width: 100% !important; }

.single-internal-gutter:has(.pt-hero), .single-internal-gutter:has(.pt-figures),
.single-internal-gutter:has(.pt-intro), .single-internal-gutter:has(.pt-categories),
.single-internal-gutter:has(.pt-partners), .single-internal-gutter:has(.pt-quote),
.single-internal-gutter:has(.pt-process), .single-internal-gutter:has(.pt-join),
.single-internal-gutter:has(.pt-form-section), .single-internal-gutter:has(.pt-phone-cta) {
  padding-left: 0 !important; padding-right: 0 !important;
  margin-left: 0 !important; margin-right: 0 !important;
}

.wpb_column:has(.pt-hero), .wpb_column:has(.pt-figures), .wpb_column:has(.pt-intro),
.wpb_column:has(.pt-categories), .wpb_column:has(.pt-partners), .wpb_column:has(.pt-quote),
.wpb_column:has(.pt-process), .wpb_column:has(.pt-join), .wpb_column:has(.pt-form-section),
.wpb_column:has(.pt-phone-cta),
.col-lg-12:has(.pt-hero), .col-lg-12:has(.pt-figures), .col-lg-12:has(.pt-intro),
.col-lg-12:has(.pt-categories), .col-lg-12:has(.pt-partners), .col-lg-12:has(.pt-quote),
.col-lg-12:has(.pt-process), .col-lg-12:has(.pt-join), .col-lg-12:has(.pt-form-section),
.col-lg-12:has(.pt-phone-cta),
.vc_column-inner:has(.pt-hero), .vc_column-inner:has(.pt-figures), .vc_column-inner:has(.pt-intro),
.vc_column-inner:has(.pt-categories), .vc_column-inner:has(.pt-partners), .vc_column-inner:has(.pt-quote),
.vc_column-inner:has(.pt-process), .vc_column-inner:has(.pt-join), .vc_column-inner:has(.pt-form-section),
.vc_column-inner:has(.pt-phone-cta),
.wpb_wrapper:has(.pt-hero), .wpb_wrapper:has(.pt-figures), .wpb_wrapper:has(.pt-intro),
.wpb_wrapper:has(.pt-categories), .wpb_wrapper:has(.pt-partners), .wpb_wrapper:has(.pt-quote),
.wpb_wrapper:has(.pt-process), .wpb_wrapper:has(.pt-join), .wpb_wrapper:has(.pt-form-section),
.wpb_wrapper:has(.pt-phone-cta),
.wpb_raw_html:has(.pt-hero), .wpb_raw_html:has(.pt-figures), .wpb_raw_html:has(.pt-intro),
.wpb_raw_html:has(.pt-categories), .wpb_raw_html:has(.pt-partners), .wpb_raw_html:has(.pt-quote),
.wpb_raw_html:has(.pt-process), .wpb_raw_html:has(.pt-join), .wpb_raw_html:has(.pt-form-section),
.wpb_raw_html:has(.pt-phone-cta),
.vc_row:has(.pt-hero), .vc_row:has(.pt-figures), .vc_row:has(.pt-intro),
.vc_row:has(.pt-categories), .vc_row:has(.pt-partners), .vc_row:has(.pt-quote),
.vc_row:has(.pt-process), .vc_row:has(.pt-join), .vc_row:has(.pt-form-section),
.vc_row:has(.pt-phone-cta),
.row-container:has(.pt-hero), .row-container:has(.pt-figures), .row-container:has(.pt-intro),
.row-container:has(.pt-categories), .row-container:has(.pt-partners), .row-container:has(.pt-quote),
.row-container:has(.pt-process), .row-container:has(.pt-join), .row-container:has(.pt-form-section),
.row-container:has(.pt-phone-cta),
.wpb_row:has(.pt-hero), .wpb_row:has(.pt-figures), .wpb_row:has(.pt-intro),
.wpb_row:has(.pt-categories), .wpb_row:has(.pt-partners), .wpb_row:has(.pt-quote),
.wpb_row:has(.pt-process), .wpb_row:has(.pt-join), .wpb_row:has(.pt-form-section),
.wpb_row:has(.pt-phone-cta) {
  padding: 0 !important; margin-left: 0 !important; margin-right: 0 !important;
  max-width: 100% !important; width: 100% !important;
}

.pt-hero, .pt-figures, .pt-intro, .pt-categories, .pt-partners, .pt-quote,
.pt-process, .pt-join, .pt-form-section, .pt-phone-cta {
  box-sizing: border-box !important;
  position: relative !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.pt-hero *, .pt-figures *, .pt-intro *, .pt-categories *, .pt-partners *,
.pt-quote *, .pt-process *, .pt-join *, .pt-form-section *, .pt-phone-cta *,
.pt-sticky * { box-sizing: border-box; margin: 0; padding: 0; }

.pt-figures p, .pt-intro p:not(.pt-intro__para), .pt-categories p:not(.pt-category-card__desc),
.pt-partners p:not(.pt-partner-card__name):not(.pt-partner-card__category):not(.pt-partner-card__location),
.pt-quote p, .pt-process p:not(.pt-process__step-desc), .pt-join p:not(.pt-join__subtitle),
.pt-form-section p:not(.pt-form-section__subtitle),
.pt-phone-cta p:not(.pt-phone-cta__question):not(.pt-phone-cta__note) {
  margin: 0 !important; padding: 0 !important; line-height: inherit !important;
}

.pt-btn {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 11px; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none;
  padding: 14px 32px; border: 1px solid var(--gold); cursor: pointer;
  transition: background 0.3s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.2s var(--ease);
  white-space: nowrap;
}
.pt-btn--solid { background: var(--gold); color: var(--black) !important; border-color: var(--gold); }
.pt-btn--solid:hover { background: var(--gold-lt); border-color: var(--gold-lt); }
.pt-btn--ghost { background: transparent; color: var(--white) !important; border-color: rgba(201, 169, 110, 0.5); }
.pt-btn--ghost:hover { border-color: var(--gold); color: var(--gold) !important; }
.pt-btn--phone { background: transparent; color: var(--white) !important; border-color: var(--gold); margin-top: 8px; }
.pt-btn--phone:hover { background: var(--gold); color: var(--black) !important; }
.pt-btn--form-submit { background: var(--white); color: var(--black) !important; border-color: var(--white); padding: 16px 48px; font-size: 12px; letter-spacing: 0.2em; }
.pt-btn--form-submit:hover { background: var(--gold); border-color: var(--gold); color: var(--black) !important; }
.pt-btn--sticky { background: var(--gold); color: var(--black) !important; border-color: var(--gold); padding: 10px 24px; font-size: 10px; }
.pt-btn--sticky:hover { background: var(--gold-lt); border-color: var(--gold-lt); }

.pt-hero {
  height: 70vh; min-height: 520px; overflow: hidden;
  background: var(--black); display: flex; align-items: flex-end;
}
.pt-hero__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pt-hero__img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: center 40%; display: block; }
.pt-hero__overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(10,10,10,0.88) 0%, rgba(10,10,10,0.45) 45%, rgba(10,10,10,0.1) 100%);
  z-index: 1;
}
.pt-hero__content { position: relative; z-index: 2; width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 80px 72px; }
.pt-hero__tag { font-family: var(--font-sans) !important; font-size: 10px !important; font-weight: 500 !important; letter-spacing: 0.28em !important; text-transform: uppercase; color: var(--gold) !important; margin-bottom: 20px !important; display: block; }
.pt-hero__title { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(52px, 7vw, 96px) !important; font-weight: 300 !important; line-height: 1.0 !important; color: var(--white) !important; margin-bottom: 24px !important; max-width: 700px; }
.pt-hero__subtitle { font-family: var(--font-sans) !important; font-size: 15px !important; font-weight: 300 !important; line-height: 1.7 !important; color: rgba(245, 243, 238, 0.75) !important; max-width: 520px; margin-bottom: 40px !important; }
.pt-hero__ctas { display: flex; gap: 16px; flex-wrap: wrap; }

@media (max-width: 1100px) { .pt-hero__content { padding: 0 40px 56px; } }
@media (max-width: 768px) { .pt-hero__content { padding: 0 24px 48px; } .pt-hero__ctas { flex-direction: column; align-items: flex-start; } }
@media (max-width: 480px) { .pt-hero { height: 80vh; min-height: 480px; } .pt-hero__content { padding: 0 20px 40px; } }

.pt-figures { background: var(--black); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.pt-figures__inner { max-width: 1200px; margin: 0 auto; padding: 0 80px; display: flex; align-items: center; justify-content: space-between; }
.pt-figures__item { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 48px 20px; text-align: center; }
.pt-figures__value { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(42px, 4.5vw, 64px) !important; font-weight: 300 !important; color: var(--gold) !important; line-height: 1 !important; display: block; margin-bottom: 10px !important; }
.pt-figures__label { font-family: var(--font-sans) !important; font-size: 10px !important; font-weight: 500 !important; letter-spacing: 0.2em !important; text-transform: uppercase; color: var(--muted) !important; display: block; }
.pt-figures__divider { width: 1px; height: 60px; background: var(--border); flex-shrink: 0; }

@media (max-width: 1100px) { .pt-figures__inner { padding: 0 40px; } }
@media (max-width: 768px) { .pt-figures__inner { padding: 0 24px; flex-wrap: wrap; } .pt-figures__item { flex: 1 1 45%; padding: 36px 12px; } .pt-figures__divider { display: none; } }
@media (max-width: 480px) { .pt-figures__item { flex: 1 1 100%; padding: 28px 16px; border-bottom: 1px solid var(--border); } .pt-figures__item:last-child { border-bottom: none; } }

.pt-intro { background: var(--black); padding: 120px 0; }
.pt-intro__inner { max-width: 1200px; margin: 0 auto; padding: 0 80px; display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.pt-intro__title { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(36px, 4vw, 56px) !important; font-weight: 300 !important; line-height: 1.1 !important; color: var(--white) !important; margin-bottom: 40px !important; }
.pt-intro__title em { font-style: italic; color: var(--gold); }
.pt-intro__para { font-family: var(--font-sans) !important; font-size: 15px !important; font-weight: 300 !important; line-height: 1.8 !important; color: rgba(245, 243, 238, 0.7) !important; margin-bottom: 20px !important; }
.pt-intro__para:last-child { margin-bottom: 0 !important; }
.pt-intro__img-wrap { position: relative; display: block; }
.pt-intro__img { width: 100% !important; height: auto !important; display: block; aspect-ratio: 4/3; object-fit: cover; }
.pt-intro__img-accent { position: absolute; bottom: -16px; right: -16px; width: 80px; height: 80px; border-right: 2px solid var(--gold); border-bottom: 2px solid var(--gold); pointer-events: none; }

@media (max-width: 1100px) { .pt-intro__inner { padding: 0 40px; gap: 48px; } }
@media (max-width: 768px) { .pt-intro { padding: 80px 0; } .pt-intro__inner { padding: 0 24px; grid-template-columns: 1fr; gap: 48px; } .pt-intro__visual { order: -1; } .pt-intro__img-accent { bottom: -10px; right: -10px; width: 50px; height: 50px; } }
@media (max-width: 480px) { .pt-intro { padding: 60px 0; } .pt-intro__inner { padding: 0 20px; } }

.pt-categories { background: var(--black); padding: 120px 0; border-top: 1px solid var(--border); }
.pt-categories__inner { max-width: 1200px; margin: 0 auto; padding: 0 80px; }
.pt-categories__header { text-align: center; margin-bottom: 72px; }
.pt-categories__title { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(36px, 4vw, 56px) !important; font-weight: 300 !important; line-height: 1.1 !important; color: var(--white) !important; margin-bottom: 16px !important; }
.pt-categories__subtitle { font-family: var(--font-sans) !important; font-size: 14px !important; font-weight: 300 !important; letter-spacing: 0.05em !important; color: var(--muted) !important; }
.pt-categories__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.pt-category-card { background: var(--black); padding: 48px 36px 40px; position: relative; transition: background 0.3s var(--ease); }
.pt-category-card:hover { background: #111; }
.pt-category-card__numeral { display: block; font-family: var(--font-display) !important; font-style: italic; font-size: 56px !important; font-weight: 300 !important; color: var(--gold) !important; line-height: 1 !important; margin-bottom: 24px !important; opacity: 0.6; }
.pt-category-card__title { font-family: var(--font-display) !important; font-style: italic; font-size: 24px !important; font-weight: 300 !important; color: var(--white) !important; margin-bottom: 16px !important; line-height: 1.2 !important; }
.pt-category-card__desc { font-family: var(--font-sans) !important; font-size: 13px !important; font-weight: 300 !important; line-height: 1.7 !important; color: var(--muted) !important; margin-bottom: 32px !important; }
.pt-category-card__bar { position: absolute; bottom: 0; left: 36px; width: 40px; height: 2px; background: var(--gold); transition: width 0.4s var(--ease); }
.pt-category-card:hover .pt-category-card__bar { width: 80px; }

@media (max-width: 1100px) { .pt-categories__inner { padding: 0 40px; } .pt-categories__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 768px) { .pt-categories { padding: 80px 0; } .pt-categories__inner { padding: 0 24px; } .pt-categories__header { margin-bottom: 48px; } }
@media (max-width: 480px) { .pt-categories { padding: 60px 0; } .pt-categories__inner { padding: 0 20px; } .pt-categories__grid { grid-template-columns: 1fr; } .pt-category-card { padding: 36px 24px 32px; } }

.pt-partners { background: var(--black); padding: 120px 0; border-top: 1px solid var(--border); }
.pt-partners__inner { max-width: 1200px; margin: 0 auto; padding: 0 80px; }
.pt-partners__header { text-align: center; margin-bottom: 56px; }
.pt-partners__title { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(36px, 4vw, 56px) !important; font-weight: 300 !important; color: var(--white) !important; margin-bottom: 12px !important; line-height: 1.1 !important; }
.pt-partners__subtitle { font-family: var(--font-sans) !important; font-size: 13px !important; font-weight: 300 !important; color: var(--muted) !important; letter-spacing: 0.03em !important; }
.pt-partners__filters { display: flex; justify-content: center; gap: 4px; margin-bottom: 56px; flex-wrap: wrap; }
.pt-filter { font-family: var(--font-sans); font-size: 10px; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); background: transparent; border: 1px solid transparent; padding: 8px 20px; cursor: pointer; transition: all 0.25s var(--ease); }
.pt-filter:hover { color: var(--white); border-color: var(--border); }
.pt-filter--active { color: var(--gold) !important; border-color: var(--gold) !important; }
.pt-partners__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); }
.pt-partner-card { background: var(--black); padding: 40px 28px 32px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; transition: background 0.3s var(--ease), transform 0.3s var(--ease); }
.pt-partner-card:hover { background: #0f0f0f; transform: translateY(-3px); position: relative; z-index: 1; }
.pt-partner-card__logo-wrap { height: 64px; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.pt-partner-card__logo-wrap:empty { height: 0; margin-bottom: 0; }
.pt-partner-logo { max-height: 64px; max-width: 160px; width: auto !important; height: auto !important; object-fit: contain; display: block; filter: grayscale(100%) brightness(0.6); opacity: 0.6; transition: filter 0.4s var(--ease), opacity 0.4s var(--ease); }
.pt-partner-card:hover .pt-partner-logo { filter: grayscale(0%) brightness(1); opacity: 1; }
.pt-partner-card__name { font-family: var(--font-display) !important; font-style: italic; font-size: 16px !important; font-weight: 300 !important; color: var(--white) !important; margin-bottom: 6px !important; line-height: 1.3 !important; }
.pt-partner-card__category { font-family: var(--font-sans) !important; font-size: 9px !important; font-weight: 500 !important; letter-spacing: 0.2em !important; text-transform: uppercase; color: var(--gold) !important; margin-bottom: 4px !important; }
.pt-partner-card__location { font-family: var(--font-sans) !important; font-size: 11px !important; font-weight: 300 !important; color: var(--muted) !important; letter-spacing: 0.05em !important; }

@media (max-width: 1100px) { .pt-partners__inner { padding: 0 40px; } .pt-partners__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px) { .pt-partners { padding: 80px 0; } .pt-partners__inner { padding: 0 24px; } .pt-partners__grid { grid-template-columns: repeat(2, 1fr); } .pt-partner-card { padding: 32px 20px 28px; } }
@media (max-width: 480px) { .pt-partners { padding: 60px 0; } .pt-partners__inner { padding: 0 20px; } .pt-partner-card { padding: 28px 16px 24px; } }

.pt-quote { background: var(--black); padding: 120px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.pt-quote__inner { max-width: 900px; margin: 0 auto; padding: 0 80px; text-align: center; }
.pt-quote__mark { font-family: var(--font-display) !important; font-size: 120px !important; line-height: 0.5 !important; color: var(--gold) !important; opacity: 0.2; display: block; margin-bottom: 24px !important; font-style: italic; }
.pt-quote__text { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(22px, 3vw, 36px) !important; font-weight: 300 !important; line-height: 1.5 !important; color: var(--white) !important; margin-bottom: 32px !important; border: none !important; padding: 0 !important; }
.pt-quote__author { font-family: var(--font-sans) !important; font-size: 11px !important; font-weight: 500 !important; letter-spacing: 0.2em !important; text-transform: uppercase; color: var(--gold) !important; }

@media (max-width: 1100px) { .pt-quote__inner { padding: 0 40px; } }
@media (max-width: 768px) { .pt-quote { padding: 80px 0; } .pt-quote__inner { padding: 0 24px; } }
@media (max-width: 480px) { .pt-quote { padding: 60px 0; } .pt-quote__inner { padding: 0 20px; } .pt-quote__mark { font-size: 80px !important; } }

.pt-process { background: var(--black); padding: 120px 0; }
.pt-process__inner { max-width: 1200px; margin: 0 auto; padding: 0 80px; }
.pt-process__header { margin-bottom: 80px; }
.pt-process__title { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(32px, 3.5vw, 48px) !important; font-weight: 300 !important; color: var(--white) !important; line-height: 1.1 !important; }
.pt-process__step { display: grid; grid-template-columns: 120px 1fr; gap: 48px; padding: 48px 0; border-bottom: 1px solid var(--border); align-items: start; }
.pt-process__step:first-child { border-top: 1px solid var(--border); }
.pt-process__num { font-family: var(--font-display) !important; font-style: italic; font-size: 56px !important; font-weight: 300 !important; color: var(--gold) !important; line-height: 1 !important; opacity: 0.5; display: block; }
.pt-process__step-title { font-family: var(--font-display) !important; font-style: italic; font-size: 26px !important; font-weight: 300 !important; color: var(--white) !important; margin-bottom: 12px !important; line-height: 1.2 !important; }
.pt-process__step-desc { font-family: var(--font-sans) !important; font-size: 14px !important; font-weight: 300 !important; line-height: 1.8 !important; color: var(--muted) !important; }

@media (max-width: 1100px) { .pt-process__inner { padding: 0 40px; } }
@media (max-width: 768px) { .pt-process { padding: 80px 0; } .pt-process__inner { padding: 0 24px; } .pt-process__step { grid-template-columns: 80px 1fr; gap: 24px; padding: 36px 0; } .pt-process__num { font-size: 42px !important; } }
@media (max-width: 480px) { .pt-process { padding: 60px 0; } .pt-process__inner { padding: 0 20px; } .pt-process__step { grid-template-columns: 1fr; gap: 8px; padding: 28px 0; } .pt-process__num { font-size: 36px !important; } }

.pt-join { background: var(--black); padding: 120px 0; border-top: 1px solid var(--border); }
.pt-join__inner { max-width: 720px; margin: 0 auto; padding: 0 40px; text-align: center; }
.pt-join__tag { font-family: var(--font-sans) !important; font-size: 10px !important; font-weight: 500 !important; letter-spacing: 0.28em !important; text-transform: uppercase; color: var(--gold) !important; display: block; margin-bottom: 24px !important; }
.pt-join__title { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(40px, 5vw, 64px) !important; font-weight: 300 !important; color: var(--white) !important; margin-bottom: 24px !important; line-height: 1.1 !important; }
.pt-join__subtitle { font-family: var(--font-sans) !important; font-size: 15px !important; font-weight: 300 !important; line-height: 1.7 !important; color: rgba(245, 243, 238, 0.65) !important; margin-bottom: 48px !important; }
.pt-join__criteria { list-style: none; text-align: left; display: inline-block; }
.pt-join__criteria li { font-family: var(--font-sans) !important; font-size: 14px !important; font-weight: 300 !important; line-height: 1.6 !important; color: rgba(245, 243, 238, 0.6) !important; padding: 8px 0 8px 20px; position: relative; }
.pt-join__criteria li::before { content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 6px; height: 1px; background: var(--gold); }

@media (max-width: 768px) { .pt-join { padding: 80px 0; } }
@media (max-width: 480px) { .pt-join { padding: 60px 0; } }

.pt-form-section {
  background: var(--black);
  padding: 100px 0 120px;
  border-top: 1px solid var(--border);
}
.pt-form-section__inner { max-width: 800px; margin: 0 auto; padding: 0 40px; }
.pt-form-section__title { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(32px, 3.5vw, 48px) !important; font-weight: 300 !important; color: var(--white) !important; text-align: center; margin-bottom: 12px !important; line-height: 1.1 !important; }
.pt-form-section__subtitle { font-family: var(--font-sans) !important; font-size: 13px !important; font-weight: 300 !important; color: var(--muted) !important; text-align: center; margin-bottom: 64px !important; line-height: 1.6 !important; }
.pt-form { display: flex; flex-direction: column; gap: 0; }
.pt-form__row { margin-bottom: 4px; }
.pt-form__row--2col { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.pt-form__row--submit { margin-top: 40px; display: flex; justify-content: center; }
.pt-form__field { position: relative; }
.pt-form__input { width: 100% !important; background: transparent !important; border: none !important; border-bottom: 1px solid var(--border) !important; border-radius: 0 !important; color: var(--white) !important; font-family: var(--font-sans) !important; font-size: 14px !important; font-weight: 300 !important; padding: 28px 0 10px !important; outline: none !important; box-shadow: none !important; transition: border-color 0.3s var(--ease) !important; -webkit-appearance: none !important; appearance: none !important; display: block !important; }
.pt-form__input::placeholder { color: transparent; }
.pt-form__input:focus { border-bottom-color: var(--gold) !important; }
.pt-form__label { position: absolute; top: 20px; left: 0; font-family: var(--font-sans) !important; font-size: 11px !important; font-weight: 400 !important; letter-spacing: 0.12em !important; text-transform: uppercase; color: var(--muted) !important; pointer-events: none; transition: top 0.25s var(--ease), font-size 0.25s var(--ease), color 0.25s var(--ease); }
.pt-form__input:focus + .pt-form__label,
.pt-form__input:not(:placeholder-shown) + .pt-form__label { top: 4px !important; font-size: 9px !important; color: var(--gold) !important; }
.pt-form__select { cursor: pointer; padding-right: 24px !important; }
.pt-form__select option { background: var(--mid); color: var(--white); }
.pt-form__select:valid:not([value=""]) + .pt-form__label--select,
.pt-form__select:focus + .pt-form__label--select { top: 4px !important; font-size: 9px !important; color: var(--gold) !important; }
.pt-form__textarea { resize: vertical; min-height: 120px; padding-top: 28px !important; }
.pt-form__textarea:focus + .pt-form__label--textarea,
.pt-form__textarea:not(:placeholder-shown) + .pt-form__label--textarea { top: 4px !important; font-size: 9px !important; color: var(--gold) !important; }

@media (max-width: 768px) { .pt-form-section { padding: 80px 0; } .pt-form__row--2col { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .pt-form-section__inner { padding: 0 20px; } }

.pt-phone-cta { background: var(--black); padding: 100px 0; border-top: 1px solid var(--border); text-align: center; }
.pt-phone-cta__inner { max-width: 600px; margin: 0 auto; padding: 0 40px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.pt-phone-cta__question { font-family: var(--font-display) !important; font-style: italic; font-size: clamp(28px, 3.5vw, 44px) !important; font-weight: 300 !important; color: var(--white) !important; line-height: 1.2 !important; }
.pt-phone-cta__number { font-family: var(--font-serif) !important; font-size: clamp(24px, 3vw, 36px) !important; font-weight: 400 !important; color: var(--gold) !important; letter-spacing: 0.08em !important; text-decoration: none !important; display: block; transition: color 0.2s; }
.pt-phone-cta__number:hover { color: var(--gold-lt) !important; }
.pt-phone-cta__note { font-family: var(--font-sans) !important; font-size: 11px !important; font-weight: 300 !important; letter-spacing: 0.12em !important; color: var(--white) !important; }

@media (max-width: 768px) { .pt-phone-cta { padding: 80px 0; } }
@media (max-width: 480px) { .pt-phone-cta { padding: 60px 0; } }

.pt-sticky {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
  background: var(--black); border-top: 1px solid var(--border); padding: 14px 80px;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  transform: translateY(100%); opacity: 0;
  transition: transform 0.4s var(--ease), opacity 0.4s var(--ease);
  pointer-events: none;
}
.pt-sticky.visible { transform: translateY(0); opacity: 1; pointer-events: auto; }
.pt-sticky__brand { font-family: var(--font-sans) !important; font-size: 10px !important; font-weight: 500 !important; letter-spacing: 0.2em !important; text-transform: uppercase; color: var(--white) !important; white-space: nowrap; }
.pt-sticky__phone { font-family: var(--font-serif) !important; font-size: 16px !important; font-weight: 400 !important; color: var(--gold) !important; text-decoration: none !important; letter-spacing: 0.06em !important; transition: color 0.2s; }
.pt-sticky__phone:hover { color: var(--gold-lt) !important; }

@media (max-width: 1100px) { .pt-sticky { padding: 12px 40px; } }
@media (max-width: 768px) { .pt-sticky__brand { display: none; } .pt-sticky { padding: 12px 24px; } }
@media (max-width: 480px) { .pt-sticky { padding: 10px 16px; } .pt-sticky__phone { font-size: 14px !important; } }


/* ============================================================
   16. HOMEPAGE — préfixe .hp-
       Version 4.0 — design complet 9 blocs
       Hero · Villas · Yachts · Press · Concierge
       Experiences · Journal · Destinations · Contact · Footer
   ============================================================ */

/* ── 16.0  OVERFLOW GUARD ──────────────────────────────────── */
body:has(.hp-hero) { overflow-x: hidden !important; }

/* ── 16.1  WP BAKERY RESET — tous les blocs hp- ───────────── */
.uncont:has(.hp-hero), .uncont:has(.hp-villas), .uncont:has(.hp-yachts),
.uncont:has(.hp-press), .uncont:has(.hp-concierge), .uncont:has(.hp-experiences),
.uncont:has(.hp-journal), .uncont:has(.hp-destinations), .uncont:has(.hp-contact) {
  max-width: 100% !important; width: 100% !important; padding: 0 !important; margin: 0 !important;
}
.uncell:has(.hp-hero), .uncell:has(.hp-villas), .uncell:has(.hp-yachts),
.uncell:has(.hp-press), .uncell:has(.hp-concierge), .uncell:has(.hp-experiences),
.uncell:has(.hp-journal), .uncell:has(.hp-destinations), .uncell:has(.hp-contact),
.uncoltable:has(.hp-hero), .uncoltable:has(.hp-villas), .uncoltable:has(.hp-yachts),
.uncoltable:has(.hp-press), .uncoltable:has(.hp-concierge), .uncoltable:has(.hp-experiences),
.uncoltable:has(.hp-journal), .uncoltable:has(.hp-destinations), .uncoltable:has(.hp-contact),
.uncol:has(.hp-hero), .uncol:has(.hp-villas), .uncol:has(.hp-yachts),
.uncol:has(.hp-press), .uncol:has(.hp-concierge), .uncol:has(.hp-experiences),
.uncol:has(.hp-journal), .uncol:has(.hp-destinations), .uncol:has(.hp-contact) {
  padding: 0 !important; margin: 0 !important; width: 100% !important;
}
.single-internal-gutter:has(.hp-hero), .single-internal-gutter:has(.hp-villas),
.single-internal-gutter:has(.hp-yachts), .single-internal-gutter:has(.hp-press),
.single-internal-gutter:has(.hp-concierge), .single-internal-gutter:has(.hp-experiences),
.single-internal-gutter:has(.hp-journal), .single-internal-gutter:has(.hp-destinations),
.single-internal-gutter:has(.hp-contact) {
  padding-left: 0 !important; padding-right: 0 !important;
  margin-left: 0 !important; margin-right: 0 !important;
}
.wpb_column:has(.hp-hero), .wpb_column:has(.hp-villas), .wpb_column:has(.hp-yachts),
.wpb_column:has(.hp-press), .wpb_column:has(.hp-concierge), .wpb_column:has(.hp-experiences),
.wpb_column:has(.hp-journal), .wpb_column:has(.hp-destinations), .wpb_column:has(.hp-contact),
.col-lg-12:has(.hp-hero), .col-lg-12:has(.hp-villas), .col-lg-12:has(.hp-yachts),
.col-lg-12:has(.hp-press), .col-lg-12:has(.hp-concierge), .col-lg-12:has(.hp-experiences),
.col-lg-12:has(.hp-journal), .col-lg-12:has(.hp-destinations), .col-lg-12:has(.hp-contact),
.vc_column-inner:has(.hp-hero), .vc_column-inner:has(.hp-villas), .vc_column-inner:has(.hp-yachts),
.vc_column-inner:has(.hp-press), .vc_column-inner:has(.hp-concierge), .vc_column-inner:has(.hp-experiences),
.vc_column-inner:has(.hp-journal), .vc_column-inner:has(.hp-destinations), .vc_column-inner:has(.hp-contact),
.wpb_wrapper:has(.hp-hero), .wpb_wrapper:has(.hp-villas), .wpb_wrapper:has(.hp-yachts),
.wpb_wrapper:has(.hp-press), .wpb_wrapper:has(.hp-concierge), .wpb_wrapper:has(.hp-experiences),
.wpb_wrapper:has(.hp-journal), .wpb_wrapper:has(.hp-destinations), .wpb_wrapper:has(.hp-contact),
.wpb_raw_html:has(.hp-hero), .wpb_raw_html:has(.hp-villas), .wpb_raw_html:has(.hp-yachts),
.wpb_raw_html:has(.hp-press), .wpb_raw_html:has(.hp-concierge), .wpb_raw_html:has(.hp-experiences),
.wpb_raw_html:has(.hp-journal), .wpb_raw_html:has(.hp-destinations), .wpb_raw_html:has(.hp-contact),
.vc_row:has(.hp-hero), .vc_row:has(.hp-villas), .vc_row:has(.hp-yachts),
.vc_row:has(.hp-press), .vc_row:has(.hp-concierge), .vc_row:has(.hp-experiences),
.vc_row:has(.hp-journal), .vc_row:has(.hp-destinations), .vc_row:has(.hp-contact),
.row-container:has(.hp-hero), .row-container:has(.hp-villas), .row-container:has(.hp-yachts),
.row-container:has(.hp-press), .row-container:has(.hp-concierge), .row-container:has(.hp-experiences),
.row-container:has(.hp-journal), .row-container:has(.hp-destinations), .row-container:has(.hp-contact),
.wpb_row:has(.hp-hero), .wpb_row:has(.hp-villas), .wpb_row:has(.hp-yachts),
.wpb_row:has(.hp-press), .wpb_row:has(.hp-concierge), .wpb_row:has(.hp-experiences),
.wpb_row:has(.hp-journal), .wpb_row:has(.hp-destinations), .wpb_row:has(.hp-contact) {
  padding: 0 !important; margin-left: 0 !important; margin-right: 0 !important;
  max-width: 100% !important; width: 100% !important;
  border: none !important; box-shadow: none !important; background: transparent !important;
}

/* ── 16.2  PLEINE LARGEUR ──────────────────────────────────── */
.hp-hero, .hp-villas, .hp-yachts, .hp-press, .hp-concierge,
.hp-experiences, .hp-journal, .hp-destinations, .hp-contact {
  box-sizing: border-box !important; position: relative !important;
  left: 50% !important; right: auto !important; transform: translateX(-50%) !important;
  width: 100vw !important; max-width: 100vw !important;
  margin-left: 0 !important; margin-right: 0 !important;
  padding-left: 0 !important; padding-right: 0 !important;
  border: none !important; box-shadow: none !important;
}

/* ── 16.3  TOKENS LOCAUX ───────────────────────────────────── */
/* Ajout de --anthracite et --or-border manquants au :root */

:root {
  --white: #F5F3EE;
  --black: #0A0A0A;
  --gold: #C9A96E;

  --anthracite: #1C1C1C;
  --or-border: rgba(201,169,110,0.15);
  --or-dim: rgba(201,169,110,0.20);
  --texte: rgba(245,243,238,0.60);
  --texte-dim: rgba(245,243,238,0.35);
  --ease-lux: cubic-bezier(0.25,0.46,0.45,0.94);
}


/* ── 16.4  UTILITAIRES ─────────────────────────────────────── */
.hp-eyebrow {
  display: inline-flex !important; align-items: center !important; gap: 10px !important;
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: 12px !important; letter-spacing: 0.40em !important; text-transform: uppercase !important;
  color: var(--gold) !important; line-height: 1 !important;
}
.hp-eyebrow::before { content: '✦' !important; font-style: normal !important; font-size: 9px !important; flex-shrink: 0 !important; }
.hp-sep { width: 44px !important; height: 1px !important; background: linear-gradient(90deg, var(--gold), transparent) !important; margin: 28px 0 !important; display: block !important; }
.hp-sep--center { width: 60px !important; height: 1px !important; background: linear-gradient(90deg, transparent, rgba(201,169,110,0.20), transparent) !important; margin: 0 auto !important; display: block !important; }
.hp-view-all {
  font-family: 'Inter', sans-serif !important; font-size: 10px !important; font-weight: 400 !important;
  letter-spacing: 0.26em !important; text-transform: uppercase !important; color: var(--gold) !important;
  border-bottom: 1px solid rgba(201,169,110,0.20) !important; padding-bottom: 2px !important;
  white-space: nowrap !important; transition: border-color 0.3s !important;
  text-decoration: none !important; margin-bottom: 4px !important;
}
.hp-view-all:hover { border-color: var(--gold) !important; }
.hp-section-title {
  font-family: 'Playfair Display', serif !important; font-size: clamp(30px,3.5vw,46px) !important;
  line-height: 1.07 !important; color: var(--white) !important; letter-spacing: -0.01em !important;
}
.hp-sh-row { display: flex !important; align-items: flex-end !important; justify-content: space-between !important; margin-bottom: 52px !important; }
.hp-sh-row .hp-eyebrow { margin-bottom: 14px !important; }

/* Buttons */
.hp-btn {
  display: inline-block !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 400 !important;
  font-size: 9.5px !important;
  letter-spacing: 0.30em !important;
  text-transform: uppercase !important;
  padding: 14px 36px !important;
  cursor: pointer !important;
  transition: all 0.38s ease !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

/* Bouton principal — Explore Villas */
.hp-btn--gold {
  background: #2A2A2A !important;
  color: var(--white) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.22) !important;
}

.hp-btn--gold:hover {
  background: #343434 !important;
  border-color: rgba(255,255,255,0.22) !important;
  box-shadow: 0 12px 34px rgba(0,0,0,0.28) !important;
  transform: translateY(-1px) !important;
}

/* Boutons secondaires — Charter a Yacht / Private Services */
.hp-btn--outline {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  color: rgba(245,243,238,0.84) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}

.hp-btn--outline:hover {
  background: rgba(255,255,255,0.08) !important;
  border-color: rgba(255,255,255,0.18) !important;
  color: var(--white) !important;
  transform: translateY(-1px) !important;
}

/* ── 16.4b  OVERRIDE COULEURS — spécificité html body > Uncode ── */

/* Blanc de base sur tous les textes génériques dans les blocs sombres */
html body .hp-hero p,      html body .hp-hero span,
html body .hp-villas p,    html body .hp-villas span,    html body .hp-villas li,
html body .hp-yachts p,    html body .hp-yachts span,
html body .hp-press p,     html body .hp-press span,
html body .hp-concierge p, html body .hp-concierge span, html body .hp-concierge li,
html body .hp-experiences p,
html body .hp-journal p,   html body .hp-journal span,
html body .hp-destinations p, html body .hp-destinations span,
html body .hp-contact p,   html body .hp-contact span,   html body .hp-contact li {
  color: var(--white) !important;
  font-family: 'Inter', sans-serif !important;
}


/* ── 16.5 HERO ────────────────────────────────────────────── */

.hp-hero {
    background-color: var(--black) !important;
    min-height: 100svh !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    overflow: hidden !important;
}

/* Image bg injectée par WP Bakery */
.hp-hero > img,
.hp-hero > figure,
.hp-hero > .wp-block-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none !important;
}

.hp-hero > img {
    object-fit: cover !important;
    object-position: center !important;
}

.hp-hero__bg {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
    background-image:
        linear-gradient(
            to bottom,
            rgba(10,10,10,0.08) 0%,
            rgba(10,10,10,0.44) 50%,
            rgba(10,10,10,0.88) 100%
        ),
        url('/wp-content/themes/uncode-child/images/hero.webp') !important;
    background-size: cover !important;
    background-position: center !important;
}

.hp-hero__content {
    position: relative !important;
    z-index: 1 !important;
    max-width: 860px !important;
    padding: 0 32px !important;
    margin: 0 auto !important;
}

.hp-hero__tagline {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;

    font-family: 'Cormorant Garamond', serif !important;
    font-style: italic !important;
    font-size: 12.5px !important;
    letter-spacing: 0.46em !important;
    text-transform: uppercase !important;

    color: var(--gold) !important;
    margin-bottom: 28px !important;
}

.hp-hero__tagline::before,
.hp-hero__tagline::after {
    content: '' !important;
    width: 34px !important;
    height: 1px !important;
    background: rgba(201,169,110,0.35) !important;
}

.hp-hero__title {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: clamp(52px, 7vw, 90px) !important;
    font-weight: normal !important;
    font-style: italic !important;
    line-height: 1.12 !important;
    letter-spacing: 0.01em !important;
    color: var(--white) !important;
    margin-bottom: 26px !important;

    text-rendering: geometricPrecision !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

.hp-hero__title em {
    font-style: italic !important;
}

.hp-hero__subtitle {
    font-family: 'Cormorant Garamond', serif !important;
    font-size: clamp(15px,1.8vw,20px) !important;
    font-weight: 300 !important;
    line-height: 1.55 !important;
    letter-spacing: 0.06em !important;
    color: rgba(245,243,238,0.50) !important;
    margin-bottom: 52px !important;
}

/* CTA */

.hp-hero__btns {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-wrap: wrap !important;
    gap: 28px !important;
}

.hp-hero__btns .hp-btn {
    margin: 0 !important;
}

/* Scroll */

.hp-hero__scroll {
    position: absolute !important;
    bottom: 34px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    z-index: 2 !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 8px !important;
}

.hp-hero__scroll span {
    font-family: 'Inter', sans-serif !important;
    font-size: 8px !important;
    letter-spacing: 0.32em !important;
    text-transform: uppercase !important;
    color: rgba(245,243,238,0.22) !important;
}

.hp-hero__scroll-line {
    width: 1px !important;
    height: 44px !important;
    background: linear-gradient(
        to bottom,
        rgba(201,169,110,0.50),
        transparent
    ) !important;

    animation: hp-scroll-pulse 2.4s ease-in-out infinite !important;
}

@keyframes hp-scroll-pulse {
    0%,100% { opacity: .20; }
    50% { opacity: .90; }
}

/* ── MOBILE OPTIMISATION ───────────────────────── */

@media (max-width: 768px) {

    .hp-hero__content {
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .hp-hero__title {
        font-size: clamp(44px, 12vw, 64px) !important;
        line-height: 1.08 !important;
        margin-bottom: 20px !important;
    }

    .hp-hero__subtitle {
        font-size: 18px !important;
        line-height: 1.45 !important;
        margin-bottom: 42px !important;
    }

    .hp-hero__btns {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 14px !important;
        width: 100% !important;
        max-width: 520px !important;
        margin: 0 auto !important;
    }

    .hp-hero__btns .hp-btn {
        width: 100% !important;
        text-align: center !important;
        padding: 18px 24px !important;
    }

    .hp-hero__scroll {
        bottom: 20px !important;
    }
}

/* Réappliquer les couleurs atténuées */

html body .hp-hero__subtitle { color: rgba(245,243,238,0.50) !important; }
html body .hp-concierge__intro { color: rgba(245,243,238,0.60) !important; }
html body .hp-service__desc { color: rgba(245,243,238,0.60) !important; }
html body .hp-art-excerpt { color: rgba(245,243,238,0.60) !important; }
html body .hp-testimonial__quote { color: rgba(245,243,238,0.78) !important; }
html body .hp-testimonial__from { color: rgba(245,243,238,0.35) !important; }
html body .hp-contact__desc { color: rgba(245,243,238,0.60) !important; }
html body .hp-contact__info { color: rgba(245,243,238,0.60) !important; }
html body .hp-contact__info a { color: rgba(245,243,238,0.60) !important; }
html body .hp-form__note { color: rgba(245,243,238,0.25) !important; }
html body .hp-destinations__sub { color: rgba(245,243,238,0.60) !important; }
html body .hp-press__label { color: rgba(245,243,238,0.35) !important; }
html body .hp-press__logo { color: rgba(245,243,238,0.20) !important; }
html body .hp-footer__nl-desc { color: rgba(245,243,238,0.26) !important; }
html body .hp-footer__legal span { color: rgba(245,243,238,0.18) !important; }
html body .hp-footer__legal a { color: rgba(245,243,238,0.22) !important; }
html body .hp-footer__contact-item a,
html body .hp-footer__contact-item span {
    color: rgba(245,243,238,0.40) !important;
}

/* ── 16.6  VILLAS ──────────────────────────────────────────── */
.hp-villas { background: var(--anthracite) !important; padding: 112px 0 !important; }
.hp-villas__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-villas__grid {
  display: grid !important; grid-template-columns: 1.12fr 1fr !important;
  grid-template-rows: 1fr 1fr !important; gap: 3px !important;
}
.hp-villa-card { position: relative !important; overflow: hidden !important; cursor: pointer !important; background: #0d0d0d !important; }
.hp-villa-card--large { grid-row: 1/3 !important; }
.hp-villa-card img {
  width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important;
  transition: transform 0.90s var(--ease-lux) !important;
}
.hp-villa-card--large img { min-height: 590px !important; }
.hp-villa-card--sm img   { min-height: 292px !important; }
.hp-villa-card:hover img { transform: scale(1.055) !important; }
.hp-villa-card__overlay {
  position: absolute !important; inset: 0 !important;
  background: linear-gradient(to top, rgba(10,10,10,0.84) 0%, rgba(10,10,10,0.14) 52%, transparent 100%) !important;
  display: flex !important; flex-direction: column !important; justify-content: flex-end !important;
  padding: 28px 26px !important; transition: background 0.5s !important;
}
.hp-villa-card:hover .hp-villa-card__overlay {
  background: linear-gradient(to top, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.22) 58%, transparent 100%) !important;
}
.hp-villa-card__loc {
  font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.28em !important; text-transform: uppercase !important;
  color: var(--gold) !important; margin-bottom: 7px !important;
}
.hp-villa-card__name {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(18px,2vw,25px) !important; color: var(--white) !important;
  line-height: 1.15 !important; margin-bottom: 12px !important;
}
.hp-villa-card--sm .hp-villa-card__name { font-size: clamp(16px,1.6vw,20px) !important; }
.hp-villa-card__specs {
  display: flex !important; gap: 18px !important; flex-wrap: wrap !important;
  font-family: 'Inter', sans-serif !important; font-size: 8.5px !important;
  letter-spacing: 0.17em !important; text-transform: uppercase !important;
  color: rgba(245,243,238,0.40) !important;
  opacity: 0 !important; transform: translateY(4px) !important;
  transition: opacity 0.40s, transform 0.40s !important;
}
.hp-villa-card:hover .hp-villa-card__specs { opacity: 1 !important; transform: translateY(0) !important; }
.hp-villas__cta { margin-top: 38px !important; text-align: center !important; padding-top: 28px !important; border-top: 1px solid rgba(201,169,110,0.09) !important; }

/* ── 16.7  YACHTS ──────────────────────────────────────────── */
.hp-yachts { background: var(--black) !important; padding: 112px 0 !important; border-top: 1px solid var(--or-border) !important; }
.hp-yachts__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-yachts__row { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 3px !important; }
.hp-yacht-card { position: relative !important; overflow: hidden !important; cursor: pointer !important; background: #0d0d0d !important; }
.hp-yacht-card img {
  width: 100% !important; aspect-ratio: 3/4 !important; object-fit: cover !important; display: block !important;
  transition: transform 0.90s var(--ease-lux) !important;
}
.hp-yacht-card:hover img { transform: scale(1.055) !important; }
.hp-yacht-card__overlay {
  position: absolute !important; inset: 0 !important;
  background: linear-gradient(to top, rgba(10,10,10,0.90) 0%, rgba(10,10,10,0.08) 52%, transparent 100%) !important;
  display: flex !important; flex-direction: column !important; justify-content: flex-end !important; padding: 24px 22px !important;
}
.hp-yacht-card__index {
  position: absolute !important; top: 18px !important; right: 18px !important;
  font-family: 'Cormorant Garamond', serif !important; font-size: 11px !important;
  letter-spacing: 0.10em !important; color: rgba(201,169,110,0.42) !important;
}
.hp-yacht-card__type {
  font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.26em !important; text-transform: uppercase !important;
  color: var(--gold) !important; margin-bottom: 7px !important;
}
.hp-yacht-card__name {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(18px,1.8vw,22px) !important; color: var(--white) !important;
  line-height: 1.15 !important; margin-bottom: 14px !important;
}
.hp-yacht-card__details { display: flex !important; }
.hp-yacht-card__detail {
  flex: 1 !important; padding: 9px 0 !important;
  border-top: 1px solid rgba(201,169,110,0.18) !important; text-align: center !important;
}
.hp-yacht-card__detail + .hp-yacht-card__detail { border-left: 1px solid rgba(201,169,110,0.10) !important; }
.hp-yacht-card__val {
  display: block !important; font-family: 'Cormorant Garamond', serif !important;
  font-size: 18px !important; color: var(--white) !important; line-height: 1 !important;
}
.hp-yacht-card__key {
  display: block !important; margin-top: 4px !important; font-family: 'Inter', sans-serif !important;
  font-size: 8px !important; letter-spacing: 0.17em !important; text-transform: uppercase !important;
  color: var(--texte-dim) !important;
}
.hp-yachts__cta { margin-top: 38px !important; text-align: center !important; padding-top: 28px !important; border-top: 1px solid rgba(201,169,110,0.09) !important; }

/* ── 16.8  PRESS & SOCIAL PROOF ────────────────────────────── */
.hp-press { background: var(--anthracite) !important; padding: 96px 0 !important; border-top: 1px solid var(--or-border) !important; }
.hp-press__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-press__label {
  font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.32em !important; text-transform: uppercase !important;
  color: var(--texte-dim) !important; text-align: center !important; margin-bottom: 36px !important; display: block !important;
}
.hp-press__logos {
  display: flex !important; align-items: center !important;
  justify-content: center !important; gap: 48px !important; flex-wrap: wrap !important;
}
.hp-press__logo {
  font-family: 'Cormorant Garamond', serif !important;
  font-size: clamp(13px,1.4vw,17px) !important; letter-spacing: 0.22em !important;
  text-transform: uppercase !important; color: rgba(245,243,238,0.20) !important;
  transition: color 0.4s !important; cursor: default !important; white-space: nowrap !important; user-select: none !important;
}
.hp-press__logo:hover { color: rgba(245,243,238,0.50) !important; }
.hp-press__logo--italic { font-style: italic !important; font-size: clamp(15px,1.7vw,20px) !important; letter-spacing: 0.06em !important; }
.hp-press__divider { display: block !important; margin: 56px auto !important; }
.hp-press__testimonials { display: grid !important; grid-template-columns: repeat(3,1fr) !important; gap: 2px !important; }
.hp-testimonial {
  padding: 44px 38px !important; border: 1px solid rgba(201,169,110,0.08) !important;
  transition: border-color 0.40s, background 0.40s !important;
}
.hp-testimonial:hover { border-color: rgba(201,169,110,0.22) !important; background: rgba(201,169,110,0.025) !important; }
.hp-testimonial__quote {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(16px,1.6vw,19px) !important; line-height: 1.60 !important;
  color: rgba(245,243,238,0.78) !important; margin-bottom: 28px !important;
  position: relative !important; padding-top: 28px !important;
}
.hp-testimonial__quote::before {
  content: '\201C' !important; position: absolute !important; top: -8px !important; left: -4px !important;
  font-size: 4em !important; line-height: 1 !important; color: var(--gold) !important; opacity: 0.38 !important;
  font-style: normal !important;
}
.hp-testimonial__attr { display: flex !important; align-items: center !important; gap: 14px !important; }
.hp-testimonial__line { width: 20px !important; height: 1px !important; background: var(--gold) !important; opacity: 0.45 !important; flex-shrink: 0 !important; }
.hp-testimonial__from {
  font-family: 'Inter', sans-serif !important; font-size: 9.5px !important;
  letter-spacing: 0.22em !important; text-transform: uppercase !important; color: var(--texte-dim) !important;
}

/* ── 16.9  CONCIERGE ───────────────────────────────────────── */
.hp-concierge { background: var(--black) !important; padding: 120px 0 !important; border-top: 1px solid var(--or-border) !important; }
.hp-concierge__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-concierge__inner { display: grid !important; grid-template-columns: 5fr 7fr !important; gap: 96px !important; align-items: start !important; }
.hp-concierge__left { position: sticky !important; top: 96px !important; }
.hp-concierge__title {
  font-family: 'Playfair Display', serif !important; font-size: clamp(30px,3.2vw,44px) !important;
  line-height: 1.08 !important; color: var(--white) !important;
}
.hp-concierge__intro {
  font-size: 14px !important; line-height: 1.85 !important; color: var(--texte) !important;
  max-width: 340px !important; margin-bottom: 40px !important;
}
.hp-service { display: grid !important; grid-template-columns: 46px 1fr !important; gap: 0 24px !important; align-items: start !important; padding: 34px 0 !important; border-bottom: 1px solid rgba(201,169,110,0.09) !important; }
.hp-service:first-child { border-top: 1px solid rgba(201,169,110,0.09) !important; }
.hp-service__num {
  font-family: 'Cormorant Garamond', serif !important; font-size: 12px !important;
  letter-spacing: 0.08em !important; color: var(--gold) !important; padding-top: 4px !important;
  opacity: 0.55 !important; transition: opacity 0.3s !important;
}
.hp-service:hover .hp-service__num { opacity: 1 !important; }
.hp-service__name {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(17px,1.7vw,21px) !important; color: var(--white) !important;
  margin-bottom: 9px !important; line-height: 1.2 !important;
}
.hp-service__desc { font-size: 12.5px !important; line-height: 1.78 !important; color: var(--texte) !important; }

/* ── 16.10  EXPERIENCES ────────────────────────────────────── */
.hp-experiences { background: var(--anthracite) !important; padding: 112px 0 !important; border-top: 1px solid var(--or-border) !important; }
.hp-experiences__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-experiences__header { display: flex !important; align-items: flex-end !important; justify-content: space-between !important; margin-bottom: 52px !important; }
.hp-experiences__header .hp-eyebrow { margin-bottom: 14px !important; }
.hp-exp-wrap { overflow: hidden !important; margin: 0 -60px !important; padding: 0 60px !important; }
.hp-exp-track {
  display: flex !important; gap: 14px !important;
  overflow-x: auto !important; scroll-snap-type: x mandatory !important;
  scrollbar-width: none !important; -ms-overflow-style: none !important; padding-bottom: 2px !important;
}
.hp-exp-track::-webkit-scrollbar { display: none !important; }
.hp-exp-card {
  flex: 0 0 clamp(250px,27vw,350px) !important; scroll-snap-align: start !important;
  position: relative !important; overflow: hidden !important;
  cursor: pointer !important; aspect-ratio: 3/4 !important; background: #0d0d0d !important;
}
.hp-exp-card img {
  width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important;
  transition: transform 0.90s var(--ease-lux) !important;
}
.hp-exp-card:hover img { transform: scale(1.06) !important; }
.hp-exp-card__overlay {
  position: absolute !important; inset: 0 !important;
  background: linear-gradient(to top, rgba(10,10,10,0.92) 0%, rgba(10,10,10,0.10) 55%, transparent 100%) !important;
  display: flex !important; flex-direction: column !important; justify-content: flex-end !important; padding: 26px 22px !important;
}
.hp-exp-card__tag {
  font-family: 'Inter', sans-serif !important; font-size: 8.5px !important;
  letter-spacing: 0.28em !important; text-transform: uppercase !important;
  color: var(--gold) !important; margin-bottom: 9px !important;
}
.hp-exp-card__title {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(16px,1.7vw,20px) !important; color: var(--white) !important; line-height: 1.28 !important;
}
.hp-exp-nav { display: flex !important; gap: 8px !important; justify-content: flex-end !important; margin-top: 28px !important; }
.hp-exp-btn {
  width: 38px !important; height: 38px !important; background: transparent !important;
  border: 1px solid var(--or-border) !important; color: rgba(245,243,238,0.45) !important;
  cursor: pointer !important; font-size: 15px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  transition: all 0.30s !important;
}
.hp-exp-btn:hover { border-color: var(--gold) !important; color: var(--gold) !important; }

/* ── 16.11  JOURNAL ────────────────────────────────────────── */
.hp-journal { background: var(--black) !important; padding: 112px 0 !important; border-top: 1px solid var(--or-border) !important; }
.hp-journal__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-journal__header { display: flex !important; align-items: flex-end !important; justify-content: space-between !important; margin-bottom: 52px !important; }
.hp-journal__header .hp-eyebrow { margin-bottom: 13px !important; }
.hp-journal__grid { display: grid !important; grid-template-columns: 55fr 45fr !important; gap: 32px !important; }
/* Article vedette */
.hp-article-lead { cursor: pointer !important; }
.hp-article-lead__img { overflow: hidden !important; aspect-ratio: 3/2 !important; }
.hp-article-lead__img img {
  width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important;
  transition: transform 0.70s ease !important;
}
.hp-article-lead:hover .hp-article-lead__img img { transform: scale(1.04) !important; }
.hp-article-lead__meta { margin-top: 22px !important; }
.hp-art-cat {
  font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.26em !important; text-transform: uppercase !important;
  color: var(--gold) !important; margin-bottom: 12px !important; display: block !important;
}
.hp-art-title {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(20px,2.2vw,26px) !important; color: var(--white) !important;
  line-height: 1.28 !important; margin-bottom: 13px !important; display: block !important;
}
.hp-art-excerpt {
  font-size: 12.5px !important; line-height: 1.74 !important; color: var(--texte) !important;
  display: -webkit-box !important; -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important; overflow: hidden !important;
}
/* Grille 2×2 */
.hp-journal__side { display: grid !important; grid-template-columns: 1fr 1fr !important; grid-template-rows: 1fr 1fr !important; gap: 18px !important; }
.hp-art-card { cursor: pointer !important; }
.hp-art-card__img { overflow: hidden !important; aspect-ratio: 4/3 !important; margin-bottom: 11px !important; }
.hp-art-card__img img {
  width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important;
  transition: transform 0.65s ease !important;
}
.hp-art-card:hover .hp-art-card__img img { transform: scale(1.07) !important; }
.hp-art-card .hp-art-cat { margin-bottom: 7px !important; }
.hp-art-card__title {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(13px,1.3vw,15px) !important; color: var(--white) !important; line-height: 1.32 !important;
}

/* ── 16.12  DESTINATIONS ───────────────────────────────────── */
.hp-destinations { background: var(--anthracite) !important; padding: 112px 0 !important; border-top: 1px solid var(--or-border) !important; }
.hp-destinations__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-destinations__header { text-align: center !important; margin-bottom: 56px !important; }
.hp-destinations__header .hp-eyebrow { justify-content: center !important; margin-bottom: 18px !important; }
.hp-destinations__sub { font-size: 14px !important; color: var(--texte) !important; letter-spacing: 0.04em !important; margin-top: 12px !important; }

.hp-dest-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  grid-template-rows: 420px 340px !important;
  gap: 3px !important;
  align-items: stretch !important;
}
.hp-dest-card {
  position: relative !important; overflow: hidden !important;
  cursor: pointer !important; background: #0d0d0d !important;
  aspect-ratio: unset !important;
}
.hp-dest-card--wide {
  grid-column: span 2 !important;
  aspect-ratio: unset !important;
}
.hp-dest-card img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; display: block !important;
  filter: brightness(0.86) !important;
  transition: transform 0.85s var(--ease-lux), filter 0.5s !important;
}
.hp-dest-card:hover img { transform: scale(1.05) !important; filter: brightness(1) !important; }

.hp-dest-card__overlay {
  position: absolute !important; inset: 0 !important;
  background: linear-gradient(to top, rgba(10,10,10,0.72) 0%, transparent 55%) !important;
  display: flex !important; flex-direction: column !important;
  justify-content: flex-end !important; padding: 22px !important;
  transition: background 0.40s !important;
}
.hp-dest-card:hover .hp-dest-card__overlay {
  background: linear-gradient(to top, rgba(10,10,10,0.82) 0%, transparent 62%) !important;
}
.hp-dest-card__name {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: clamp(18px, 1.9vw, 24px) !important; color: var(--white) !important;
  line-height: 1.1 !important; margin-bottom: 5px !important;
}
.hp-dest-card--wide .hp-dest-card__name { font-size: clamp(22px, 2.4vw, 30px) !important; }
.hp-dest-card__props {
  font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.22em !important; text-transform: uppercase !important;
  color: rgba(201,169,110,0.60) !important;
  opacity: 0 !important; transform: translateY(4px) !important;
  transition: opacity 0.40s, transform 0.40s !important;
}
.hp-dest-card:hover .hp-dest-card__props { opacity: 1 !important; transform: translateY(0) !important; }

@media (max-width: 860px) {
  .hp-dest-grid {
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: 280px 280px !important;
  }
  .hp-dest-card--wide { grid-column: span 2 !important; }
}
@media (max-width: 540px) {
  .hp-dest-grid {
    grid-template-columns: 1fr !important;
    grid-template-rows: repeat(5, 240px) !important;
  }
  .hp-dest-card--wide { grid-column: span 1 !important; }
}

/* ── 16.13  CONTACT ────────────────────────────────────────── */
.hp-contact { background: var(--black) !important; padding: 130px 0 !important; border-top: 1px solid var(--or-border) !important; }
.hp-contact__wrap { max-width: 1240px !important; margin: 0 auto !important; padding: 0 60px !important; }
.hp-contact__inner { display: grid !important; grid-template-columns: 5fr 7fr !important; gap: 96px !important; align-items: start !important; }
.hp-contact__title {
  font-family: 'Playfair Display', serif !important; font-size: clamp(30px,3.4vw,48px) !important;
  line-height: 1.06 !important; color: var(--white) !important;
}
.hp-contact__title em { font-style: italic !important; color: var(--gold) !important; }
.hp-contact__desc { font-size: 13.5px !important; line-height: 1.84 !important; color: var(--texte) !important; max-width: 340px !important; margin-bottom: 36px !important; }
.hp-contact__info { display: flex !important; align-items: flex-start !important; gap: 13px !important; font-size: 13px !important; color: var(--texte) !important; margin-bottom: 15px !important; }
.hp-contact__icon { color: var(--gold) !important; width: 14px !important; text-align: center !important; flex-shrink: 0 !important; margin-top: 1px !important; }
.hp-contact__info a { color: var(--texte) !important; transition: color 0.3s !important; }
.hp-contact__info a:hover { color: var(--gold) !important; }
/* Formulaire */
.hp-form__row { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 0 36px !important; }
.hp-field { padding-bottom: 30px !important; }
.hp-field label {
  display: block !important; font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.24em !important; text-transform: uppercase !important;
  color: var(--texte-dim) !important; margin-bottom: 10px !important; transition: color 0.3s !important;
}
.hp-field:focus-within label { color: var(--gold) !important; }
.hp-field input,
.hp-field select,
.hp-field textarea {
  width: 100% !important; background: transparent !important; border: none !important;
  border-bottom: 1px solid rgba(245,243,238,0.14) !important;
  color: var(--white) !important; font-family: 'Cormorant Garamond', serif !important;
  font-size: 17px !important; font-weight: 300 !important;
  padding: 6px 0 10px !important; outline: none !important;
  appearance: none !important; -webkit-appearance: none !important;
  transition: border-color 0.3s !important; resize: none !important;
  border-radius: 0 !important;
}
.hp-field input::placeholder,
.hp-field textarea::placeholder { color: rgba(245,243,238,0.18) !important; }
.hp-field input:focus,
.hp-field select:focus,
.hp-field textarea:focus { border-bottom-color: var(--gold) !important; }
.hp-field select { cursor: pointer !important; }
.hp-field select option { background: var(--black) !important; color: var(--white) !important; }
.hp-field textarea { min-height: 88px !important; line-height: 1.6 !important; }
.hp-field--full { grid-column: 1/-1 !important; }
.hp-form__note { font-size: 11px !important; line-height: 1.65 !important; color: rgba(245,243,238,0.25) !important; max-width: 400px !important; margin-top: 16px !important; }

/* ── 16.14  FOOTER ─────────────────────────────────────────── */
.hp-footer { background: var(--black) !important; border-top: 1px solid var(--or-border) !important; }
.hp-footer__top {
  padding: 72px 60px 60px !important;
  display: grid !important; grid-template-columns: 2.2fr 1fr 1fr 1fr 1.5fr !important; gap: 40px !important;
}
.hp-footer__logo {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: 18px !important; color: var(--white) !important; margin-bottom: 28px !important; display: block !important;
}
.hp-footer__nl-label {
  font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.24em !important; text-transform: uppercase !important;
  color: var(--texte-dim) !important; margin-bottom: 16px !important; display: block !important;
}
.hp-footer__nl-form { display: flex !important; gap: 0 !important; margin-bottom: 16px !important; }
.hp-footer__nl-input {
  flex: 1 !important; background: transparent !important;
  border: 1px solid rgba(245,243,238,0.10) !important; border-right: none !important;
  color: var(--white) !important; font-family: 'Inter', sans-serif !important; font-size: 11px !important;
  padding: 11px 14px !important; outline: none !important; transition: border-color 0.3s !important;
}
.hp-footer__nl-input::placeholder { color: rgba(245,243,238,0.22) !important; }
.hp-footer__nl-btn {
  background: var(--gold) !important; color: var(--black) !important; border: none !important;
  cursor: pointer !important; font-family: 'Inter', sans-serif !important; font-weight: 500 !important;
  font-size: 8.5px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important;
  padding: 11px 18px !important; transition: background 0.3s !important; white-space: nowrap !important;
}
.hp-footer__nl-btn:hover { background: #B8935A !important; }
.hp-footer__nl-desc { font-size: 11.5px !important; line-height: 1.74 !important; color: rgba(245,243,238,0.26) !important; max-width: 280px !important; }
.hp-footer__col-title {
  font-family: 'Inter', sans-serif !important; font-size: 9px !important;
  letter-spacing: 0.26em !important; text-transform: uppercase !important;
  color: rgba(245,243,238,0.30) !important; margin-bottom: 20px !important; display: block !important;
}
.hp-footer__col ul { list-style: none !important; display: flex !important; flex-direction: column !important; gap: 12px !important; padding: 0 !important; margin: 0 !important; }
.hp-footer__col ul a {
  font-family: 'Cormorant Garamond', serif !important; font-style: italic !important;
  font-size: 13px !important; color: rgba(245,243,238,0.42) !important; transition: color 0.3s !important;
  text-decoration: none !important;
}
.hp-footer__col ul a:hover { color: var(--gold) !important; }
.hp-footer__contact-item {
  display: flex !important; align-items: flex-start !important; gap: 11px !important; margin-bottom: 13px !important;
}
.hp-footer__contact-item svg { flex-shrink: 0 !important; margin-top: 2px !important; color: var(--gold) !important; }
.hp-footer__contact-item a,
.hp-footer__contact-item span { font-size: 12px !important; color: rgba(245,243,238,0.40) !important; line-height: 1.4 !important; transition: color 0.3s !important; }
.hp-footer__contact-item a:hover { color: var(--gold) !important; }
.hp-footer__bottom {
  border-top: 1px solid rgba(245,243,238,0.05) !important; padding: 20px 60px !important;
  display: flex !important; align-items: center !important; justify-content: space-between !important;
  gap: 20px !important; flex-wrap: wrap !important;
}
.hp-footer__legal { display: flex !important; flex-wrap: wrap !important; gap: 6px 22px !important; }
.hp-footer__legal span { font-family: 'Inter', sans-serif !important; font-size: 9.5px !important; color: rgba(245,243,238,0.18) !important; letter-spacing: 0.06em !important; }
.hp-footer__legal a { font-family: 'Inter', sans-serif !important; font-size: 9.5px !important; color: rgba(245,243,238,0.22) !important; letter-spacing: 0.08em !important; transition: color 0.3s !important; }
.hp-footer__legal a:hover { color: var(--gold) !important; }
.hp-footer__social { display: flex !important; gap: 12px !important; }
.hp-footer__social a {
  display: flex !important; align-items: center !important; justify-content: center !important;
  width: 33px !important; height: 33px !important;
  border: 1px solid rgba(245,243,238,0.09) !important;
  color: rgba(245,243,238,0.35) !important; transition: border-color 0.3s, color 0.3s !important;
}
.hp-footer__social a:hover { border-color: var(--gold) !important; color: var(--gold) !important; }

/* ── 16.15  RESPONSIVE ─────────────────────────────────────── */
@media (max-width: 1024px) {
  .hp-villas__wrap, .hp-yachts__wrap, .hp-press__wrap, .hp-concierge__wrap,
  .hp-experiences__wrap, .hp-journal__wrap, .hp-destinations__wrap, .hp-contact__wrap {
    padding: 0 40px !important;
  }
  .hp-concierge__inner { gap: 60px !important; }
  .hp-contact__inner { gap: 60px !important; }
  .hp-footer__top { grid-template-columns: 1fr 1fr !important; }
  .hp-footer__nl { grid-column: 1/-1 !important; }
}

@media (max-width: 860px) {
  .hp-villas__wrap, .hp-yachts__wrap, .hp-press__wrap, .hp-concierge__wrap,
  .hp-journal__wrap, .hp-destinations__wrap, .hp-contact__wrap { padding: 0 28px !important; }
  .hp-experiences__wrap { padding: 0 28px !important; }
  .hp-exp-wrap { margin: 0 -28px !important; padding: 0 28px !important; }

  .hp-hero__btns { flex-direction: column !important; align-items: stretch !important; max-width: 280px !important; margin: 0 auto !important; }
  .hp-hero__btns .hp-btn { margin-left: 0 !important; text-align: center !important; }

  .hp-villas { padding: 72px 0 !important; }
  .hp-villas__grid { grid-template-columns: 1fr !important; grid-template-rows: auto !important; }
  .hp-villa-card--large { grid-row: auto !important; }
  .hp-villa-card--large img { min-height: 380px !important; }
  .hp-villa-card--sm img { min-height: 240px !important; }

  .hp-yachts { padding: 72px 0 !important; }
  .hp-yachts__row { grid-template-columns: 1fr !important; }
  .hp-yacht-card img { aspect-ratio: 16/9 !important; }

  .hp-press__testimonials { grid-template-columns: 1fr !important; }
  .hp-press__logos { gap: 24px !important; }

  .hp-concierge { padding: 72px 0 !important; }
  .hp-concierge__inner { grid-template-columns: 1fr !important; gap: 48px !important; }
  .hp-concierge__left { position: static !important; }

  .hp-experiences { padding: 72px 0 !important; }
  .hp-experiences__header { flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; }

  .hp-journal { padding: 72px 0 !important; }
  .hp-journal__grid { grid-template-columns: 1fr !important; gap: 48px !important; }
  .hp-journal__side { grid-template-columns: 1fr 1fr !important; }

  .hp-destinations { padding: 72px 0 !important; }
  .hp-dest-grid { grid-template-columns: 1fr 1fr !important; }
  .hp-dest-card--wide { grid-column: span 2 !important; }

  .hp-contact { padding: 72px 0 !important; }
  .hp-contact__inner { grid-template-columns: 1fr !important; gap: 52px !important; }
  .hp-form__row { grid-template-columns: 1fr !important; }

  .hp-sh-row { flex-direction: column !important; align-items: flex-start !important; gap: 14px !important; }
  .hp-journal__header { flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; }

  .hp-footer__top { padding: 48px 28px 44px !important; }
  .hp-footer__bottom { padding: 18px 28px !important; }
}

@media (max-width: 540px) {
  .hp-villas__wrap, .hp-yachts__wrap, .hp-press__wrap, .hp-concierge__wrap,
  .hp-experiences__wrap, .hp-journal__wrap, .hp-destinations__wrap, .hp-contact__wrap {
    padding: 0 20px !important;
  }
  .hp-hero__title { font-size: 40px !important; }
  .hp-hero__subtitle { font-size: 14px !important; }
  .hp-journal__side { grid-template-columns: 1fr !important; }
  .hp-dest-grid { grid-template-columns: 1fr !important; }
  .hp-dest-card--wide { grid-column: span 1 !important; aspect-ratio: 4/3 !important; }
  .hp-press__logos { gap: 18px !important; }
  .hp-testimonial { padding: 32px 24px !important; }
  .hp-footer__top { grid-template-columns: 1fr !important; }
  .hp-footer__bottom { flex-direction: column !important; align-items: flex-start !important; gap: 16px !important; }
}

/* ── 16.16  FIX IMAGES MOBILE — v2 ─────────────────────────── */

/* ── 16.16  FIX IMAGES MOBILE (hero + journal) ──────────────── */

@media (max-width: 768px) {

 /* THE JOURNAL — photo entière, sans recadrage (= sans zoom) */
  body.home .hp-journal__grid {
    grid-template-columns: 1fr !important;
    gap: 28px !important;
  }
  body.home .hp-journal__side {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto !important;
    gap: 24px !important;
  }
  /* on supprime le ratio fixe : la vignette épouse la hauteur réelle de l'image */
  body.home .hp-article-lead__img,
  body.home .hp-art-card__img {
    aspect-ratio: auto !important;
  }
  body.home .hp-article-lead__img img,
  body.home .hp-art-card__img img {
    height: auto !important;          /* annule le height:100% → fin du recadrage */
    object-fit: contain !important;   /* filet de sécurité */
  }
  /* neutralise le zoom :hover resté collé après un tap tactile */
  body.home .hp-article-lead:hover .hp-article-lead__img img,
  body.home .hp-art-card:hover .hp-art-card__img img {
    transform: none !important;
  }

  /* HERO — plein écran + image portrait dédiée (dé-zoom réel) */
  body.home .hp-hero {
    min-height: 100vh  !important;   /* fallback anciens navigateurs */
    min-height: 100svh !important;
  }
  body.home .hp-hero__bg {
    background-image:
      linear-gradient(to bottom, rgba(10,10,10,.10) 0%, rgba(10,10,10,.45) 50%, rgba(10,10,10,.88) 100%),
      url('/wp-content/themes/uncode-child/images/hero-mobile.webp') !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
  }
}

/* ── FIN SECTION 16 — homepage v4.0 ── */