
/* ------------------------------------------------------------------
   MADEGEECO — couche de fidelite
   Generee depuis assets/css/styles.css de la maquette. Ne pas editer a
   la main : relancer build-css.js.
   ------------------------------------------------------------------ */

/* Pont vers les couleurs globales du kit : la palette reste pilotable
   depuis Elementor, la maquette continue de lire ses propres variables.
   Les globales vivent sur .elementor-kit-N, classe posee sur <body>. */
body {
  --white: var(--e-global-color-mgcwhite, #fbfbf8);
  --paper: var(--e-global-color-mgcpaper, #f6f4ef);
  --ink: var(--e-global-color-primary, #171a18);
  --muted: var(--e-global-color-text, #696e69);
  --line: var(--e-global-color-mgcline, #d9d7d0);
  --stone: var(--e-global-color-mgcstone, #e8e5de);
  --turquoise: var(--e-global-color-secondary, #58b8b2);
  --turquoise-deep: var(--e-global-color-mgcturqd, #2f8f8a);
  --turquoise-soft: var(--e-global-color-mgcturqs, #dff1ef);
  --coral: var(--e-global-color-accent, #c85e45);
}

/* Elementor ne style pas ses conteneurs par des proprietes mais par des
   variables : tant qu'elles ne sont pas remises a zero, se battre sur
   display ou padding depuis une classe de la maquette est perdu d'avance.
   Quatre points d'accroche : Elementor ecrit ses conteneurs en trois classes. */
body .elementor .e-con.cdp-c,
body .elementor .e-con.cdp-c > .e-con-inner {
  --display: block;
  --flex-direction: row;
  --flex-wrap: nowrap;
  --justify-content: normal;
  --align-items: normal;
  --align-content: normal;
  --gap: 0px;
  --row-gap: 0px;
  --column-gap: 0px;
  --width: auto;
  --min-height: 0px;
  --padding-top: 0px;
  --padding-right: 0px;
  --padding-bottom: 0px;
  --padding-left: 0px;
  --margin-top: 0px;
  --margin-right: 0px;
  --margin-bottom: 0px;
  --margin-left: 0px;
  --container-widget-width: auto;
  --content-width: none;
}

/* L'enveloppe de widget prend la place de la feuille d'origine. En la
   sortant du flux, l'element reel redevient l'enfant direct du conteneur :
   les grilles, les items flex et les selecteurs de la maquette retrouvent
   exactement l'arbre pour lequel ils ont ete ecrits.
   "display: contents" ne coupe pas l'heritage : sans le rappel ci-dessous,
   le "text-align: center" qu'Elementor pose sur ses widgets image descend
   dans l'image et dans les boutons — les fleches des liens se recentraient
   au milieu de leur pastille. */
body .elementor .elementor-widget.cdp-w {
  display: contents;
  text-align: inherit;
  font: inherit;
  color: inherit;
}

/* Elementor rend chacun de ses conteneurs "position: relative". La maquette
   les laisse dans le flux : ces contextes d'empilement en trop deplacent les
   calques absolus.
   La classe de marquage passe par :where() pour que la regle pese exactement
   autant que celle d'Elementor (.e-con) et pas davantage : ecrite en clair,
   elle passait devant les "position: relative" de la maquette elle-meme, et
   l'image de fond de la journee en catamaran, ne trouvant plus d'ancetre
   positionne, retombait dans le flux et allongeait la section de 294 px. */
.e-con:where(.cdp-c) {
  position: static;
}

/* --------------------------------------------------------------
   Neutralisation du theme.
   Blocksy habille les elements de contenu pour ses propres gabarits :
   ces regles n'ont jamais ete prevues par la maquette et se voient.
   Elles sont posees AVANT les regles de la maquette : partout ou celle-ci
   declare la propriete, c'est elle qui gagne.
   -------------------------------------------------------------- */

/* Les titres reprenaient la couleur de titre du theme (#192A3D) au lieu
   d'heriter de leur section — blancs sur les hero, encre ailleurs. */
body .elementor.elementor h1,
body .elementor.elementor h2,
body .elementor.elementor h3,
body .elementor.elementor h4,
body .elementor.elementor h5,
body .elementor.elementor h6 {
  color: inherit;
}

/* Rythme vertical : Blocksy remet a zero les marges du navigateur
   ("body, p, h1..h6, em, ol, ul, li, tr, th { margin:0; padding:0 }") puis
   repose les siennes. La maquette, elle, a ete dessinee sur les valeurs par
   defaut du navigateur : partout ou elle ne declare pas de marge, la page
   se retrouvait plus courte — jusqu'a 52 px par fiche de villa, sans
   qu'aucune regle n'ait l'air fausse. On restitue donc ces valeurs ; les
   regles de la maquette, plus bas, reprennent la main la ou elle decide. */
body .elementor.elementor p,
body .elementor.elementor dl {
  margin-block: 1em;
}
body .elementor.elementor ul,
body .elementor.elementor ol {
  margin-block: 1em;
  padding-inline-start: 40px;
}
body .elementor.elementor h1 { margin-block: 0.67em; }
body .elementor.elementor h2 { margin-block: 0.83em; }
body .elementor.elementor h3 { margin-block: 1em; }
body .elementor.elementor h4 { margin-block: 1.33em; }
body .elementor.elementor h5 { margin-block: 1.67em; }
body .elementor.elementor h6 { margin-block: 2.33em; }
body .elementor.elementor figure {
  margin-block: 1em;
  margin-inline: 40px;
}

/* figcaption et label recevaient la police et le corps du theme
   (-apple-system, 14 px) au lieu d'heriter de leur bloc. */
body .elementor.elementor figcaption,
body .elementor.elementor label {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  line-height: inherit;
}

/* Le filet vertical bleu des citations vient d'ici : Blocksy pose
   "border-left: 4px solid #2872FA" et un retrait de 108 px sur blockquote. */
body .elementor.elementor blockquote {
  border: 0;
  padding: 0;
  margin: 0;
  font-size: inherit;
  color: inherit;
  background: none;
}

/* Boutons et champs : le theme impose sa pile de polices systeme, la
   maquette veut sa sans-serif. */
body .elementor.elementor .button,
body .elementor.elementor button,
body .elementor.elementor input,
body .elementor.elementor select,
body .elementor.elementor textarea {
  font-family: inherit;
}

/* --------------------------------------------------------------
   Collisions de noms de classe.
   Trois classes de la maquette portent le meme nom qu'un composant du
   theme ou d'un addon. Relevees en comparant, page par page, les
   selecteurs de toutes les feuilles tierces aux classes reellement
   posees sur les pages. On remet a plat ce que le composant tiers
   ajoute ; ce que la maquette redeclare repasse devant, plus bas.
   -------------------------------------------------------------- */

/* .button — Blocksy, 11 regles partagees avec .ct-button et
   [type=submit], jusqu'a une pseudo-couche ::before qui posait un fond,
   un filtre et une transformation par-dessus le bouton de la maquette. */
body .elementor.elementor .button {
  min-height: 0;
  appearance: none;
  text-align: inherit;
  position: static;
  z-index: auto;
  opacity: 1;
  filter: none;
  transform: none;
  --theme-button-shadow: none;
  --theme-button-transform: none;
  --has-link-decoration: none;
}
/* La maquette n'utilise aucune pseudo-couche sur .button : celles du
   theme peuvent partir sans risque. */
body .elementor.elementor .button::before,
body .elementor.elementor .button::after {
  content: none;
}

/* .stat — Xpro pose un fond, un rayon, un remplissage et un centrage sur
   sa propre statistique ; la maquette y met un filet et du texte a gauche. */
body .elementor.elementor .stat {
  text-align: inherit;
  padding: 0;
  background: none;
  border-radius: 0;
}

/* .price — typographie du theme sur le prix des offres catamaran. */
body .elementor.elementor .price {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-decoration: none;
}

/* Pas de neutralisation du widget titre.
   L'enveloppe etant hors du flux, le h1 rendu par Elementor est bien
   l'element que visent les regles « h1 » de la maquette. Une remise a
   "font: inherit" sur .elementor-heading-title pese (0,3,1) et passait
   devant "h1" eleve (0,2,2) : tous les titres retombaient a 16 px, sans
   erreur, avec des sections juste un peu trop courtes.
   La classe d'origine (text-balance) reste sur l'enveloppe : text-wrap
   s'herite, elle atteint le titre. */

/* Le widget icone ajoute deux enveloppes autour du SVG. */
body .elementor .elementor-widget-icon .elementor-icon-wrapper,
body .elementor .elementor-widget-icon .elementor-icon {
  display: contents;
}
body .elementor .cdp-svg svg {
  display: block;
  width: 100%;
  height: 100%;
}

/* Le style par defaut du navigateur pour [hidden] ne vaut qu'une
   declaration sans classe : la moindre regle display: grid le neutralise. */
body .elementor.elementor.elementor [hidden] {
  display: none !important;
}

/* Elementor plafonne l'image a la largeur de son conteneur ; la maquette
   dimensionne les siennes par ses propres regles. */
body .elementor .cdp-img > img {
  max-width: none;
}
img.catamaran-journey-image,
body .elementor .cdp-img.catamaran-journey-image > img {
  border-radius: 22px;
}


/* ============ regles de la maquette, elevees ============ */

@font-face{
  font-family: "Cormorant Garamond";
  src: url("../../madegeeco/fonts/cormorant-regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Cormorant Garamond";
  src: url("../../madegeeco/fonts/cormorant-medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Cormorant Garamond";
  src: url("../../madegeeco/fonts/cormorant-italic.ttf") format("truetype");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}
@font-face{
  font-family: "Manrope";
  src: url("../../madegeeco/fonts/manrope-regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Manrope";
  src: url("../../madegeeco/fonts/manrope-medium.ttf") format("truetype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face{
  font-family: "Manrope";
  src: url("../../madegeeco/fonts/manrope-semibold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
:root{--white: #fbfbf8;--paper: #f6f4ef;--ink: #171a18;--muted: #696e69;--line: #d9d7d0;--stone: #e8e5de;--turquoise: #58b8b2;--turquoise-deep: #2f8f8a;--turquoise-soft: #dff1ef;--coral: #c85e45;--serif: "Cormorant Garamond", Georgia, serif;--sans: "Manrope", Arial, sans-serif;--container: min(92vw, 1480px);--reading: 760px;--radius: 28px;--ease-out: cubic-bezier(0.22, 1, 0.36, 1);--ease-ui: cubic-bezier(0.32, 0.72, 0, 1);--shadow-soft: 0 18px 55px rgba(33, 46, 41, 0.08), 0 2px 8px rgba(33, 46, 41, 0.05)}
*, *::before, *::after{box-sizing: border-box}
html{scroll-behavior: smooth}
body{margin: 0;background: var(--white);color: var(--ink);font-family: var(--sans);font-size: 16px;line-height: 1.6;text-rendering: optimizeLegibility;-webkit-font-smoothing: antialiased}
body.menu-open, body.modal-open{overflow: hidden}
body .elementor.elementor img{display: block}
body .elementor.elementor.elementor img{max-width: 100%}
body .elementor.elementor a{color: inherit;text-decoration: none}
body .elementor.elementor button, body .elementor.elementor input, body .elementor.elementor select, body .elementor.elementor textarea{font: inherit}
body .elementor.elementor button, body .elementor.elementor .button{-webkit-tap-highlight-color: transparent}
body .elementor.elementor button:focus-visible, body .elementor.elementor a:focus-visible, body .elementor.elementor input:focus-visible, body .elementor.elementor select:focus-visible, body .elementor.elementor textarea:focus-visible, body .elementor.elementor summary:focus-visible{outline: 2px solid var(--turquoise-deep);outline-offset: 4px}
::selection{background: var(--turquoise-soft);color: var(--ink)}
body .elementor.elementor .skip-link{position: fixed;left: 18px;top: 18px;z-index: 1000;padding: 12px 18px;background: var(--ink);color: #fff;transform: translateY(-150%);transition: transform 180ms var(--ease-ui)}
body .elementor.elementor .skip-link:focus{transform: translateY(0)}
body .elementor.elementor .container{margin-inline: auto}
body .elementor.elementor.elementor .container{width: var(--container)}
body .elementor.elementor .sr-only{position: absolute;height: 1px;padding: 0;margin: -1px;overflow: hidden;clip: rect(0, 0, 0, 0);white-space: nowrap;border: 0}
body .elementor.elementor.elementor .sr-only{width: 1px}
body .elementor.elementor .section{padding: clamp(84px, 10vw, 160px) 0}
body .elementor.elementor .section-tight{padding: clamp(56px, 7vw, 100px) 0}
body .elementor.elementor .section-rule{border-top: 1px solid var(--line)}
body .elementor.elementor .eyebrow{display: inline-flex;align-items: center;gap: 12px;margin: 0 0 24px;color: var(--muted);font-size: 11px;font-weight: 600;letter-spacing: 0.16em;line-height: 1.2;text-transform: uppercase}
body .elementor.elementor .eyebrow::after{content: "";height: 1px;background: var(--turquoise)}
body .elementor.elementor.elementor .eyebrow::after{width: 54px}
body .elementor.elementor .display, body .elementor.elementor h1, body .elementor.elementor h2, body .elementor.elementor h3{margin: 0;font-family: var(--serif);font-weight: 400;letter-spacing: -0.035em;line-height: 0.94}
body .elementor.elementor h1, body .elementor.elementor .display-xl{font-size: clamp(68px, 9.2vw, 154px)}
body .elementor.elementor h2, body .elementor.elementor .display-lg{font-size: clamp(52px, 6vw, 100px)}
body .elementor.elementor h3, body .elementor.elementor .display-md{font-size: clamp(34px, 3.4vw, 58px);line-height: 1}
body .elementor.elementor .body-xl{font-size: clamp(19px, 1.7vw, 27px);line-height: 1.5}
body .elementor.elementor .lead{color: var(--muted);font-size: clamp(17px, 1.35vw, 21px);line-height: 1.7}
body .elementor.elementor .muted{color: var(--muted)}
body .elementor.elementor .turquoise{color: var(--turquoise-deep)}
body .elementor.elementor .text-coral{color: var(--coral)}
body .elementor.elementor .text-balance{text-wrap: balance}
body .elementor.elementor .button{display: inline-flex;min-height: 54px;align-items: center;justify-content: center;gap: 18px;padding: 13px 18px 13px 24px;border: 0;border-radius: 8px;background: var(--turquoise-deep);color: #fff;cursor: pointer;font-size: 14px;font-weight: 500;transition: transform 180ms var(--ease-ui), background-color 180ms var(--ease-ui), box-shadow 180ms var(--ease-ui)}
body .elementor.elementor .button:hover{background: #267b77;box-shadow: 0 12px 28px rgba(47, 143, 138, 0.18);transform: translateY(-2px)}
body .elementor.elementor .button:active{transform: scale(0.97)}
body .elementor.elementor .button-light{background: #fff;color: var(--ink);box-shadow: 0 0 0 1px rgba(23, 26, 24, 0.09), 0 8px 28px rgba(23, 26, 24, 0.07)}
body .elementor.elementor .button-light:hover{background: var(--paper)}
body .elementor.elementor .button-outline{background: transparent;color: var(--ink);box-shadow: inset 0 0 0 1px var(--line)}
body .elementor.elementor .button-outline:hover{background: #fff;box-shadow: inset 0 0 0 1px var(--turquoise), 0 12px 28px rgba(23, 26, 24, 0.06)}
body .elementor.elementor .button .arrow, body .elementor.elementor .link-arrow .arrow{display: inline-grid;height: 34px;flex: 0 0 34px;place-items: center;border-radius: 50%;background: rgba(255, 255, 255, 0.92);color: var(--turquoise-deep);font-size: 18px;line-height: 1;transition: transform 220ms var(--ease-ui)}
body .elementor.elementor.elementor .button .arrow, body .elementor.elementor.elementor .link-arrow .arrow{width: 34px}
body .elementor.elementor .button:hover .arrow, body .elementor.elementor .link-arrow:hover .arrow{transform: translateX(3px)}
body .elementor.elementor .link-arrow{display: inline-flex;align-items: center;gap: 16px;color: var(--turquoise-deep);font-weight: 500}
body .elementor.elementor .link-arrow .arrow{border: 1px solid var(--turquoise);background: transparent}
body .elementor.elementor .frame{position: relative;display: block;padding: 9px;border: 1px solid var(--line);background: var(--white);box-shadow: 0 14px 44px rgba(23, 26, 24, 0.06)}
body .elementor.elementor .frame::after{content: "";position: absolute;inset: 4px;z-index: 2;border: 1px solid rgba(207, 203, 195, 0.68);pointer-events: none}
body .elementor.elementor .frame img{height: 100%;object-fit: cover}
body .elementor.elementor.elementor .frame img{width: 100%}
body .elementor.elementor .site-header{position: absolute;inset: 0 0 auto;z-index: 100;padding: 24px 0}
body .elementor.elementor .site-header.is-sticky{position: fixed;padding: 10px 0;animation: header-enter 320ms var(--ease-out) both}
@keyframes header-enter{
  from { opacity: 0; transform: translateY(-12px); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
body .elementor.elementor .nav-wrap{margin-inline: auto}
body .elementor.elementor.elementor .nav-wrap{width: min(96vw, 1550px)}
body .elementor.elementor .nav-shell{position: relative;display: grid;grid-template-columns: auto minmax(0, 1fr) auto;min-height: 76px;align-items: center;gap: 20px;padding: 10px 11px 10px 28px;border: 1px solid rgba(181, 179, 172, 0.7);border-radius: 18px;background: rgba(251, 251, 248, 0.91);box-shadow: 0 12px 40px rgba(28, 37, 33, 0.08);backdrop-filter: blur(18px)}
body .elementor.elementor .nav-shell::after{content: "";position: absolute;inset: 4px;border: 1px solid rgba(207, 203, 195, 0.72);border-radius: 13px;pointer-events: none}
body .elementor.elementor .brand{position: relative;z-index: 2;display: inline-flex;align-items: center;padding-right: 25px;border-right: 1px solid var(--line)}
body .elementor.elementor .brand img{height: auto}
body .elementor.elementor.elementor .brand img{width: 86px}
body .elementor.elementor .main-nav{position: relative;z-index: 3;display: flex;justify-content: center;gap: clamp(12px, 1.25vw, 24px)}
body .elementor.elementor .main-nav a{position: relative;padding: 11px 0;font-size: 12px;font-weight: 500;white-space: nowrap}
body .elementor.elementor .main-nav a::after{content: "";position: absolute;right: 0;bottom: 4px;left: 0;height: 1px;background: var(--turquoise-deep);transform: scaleX(0);transform-origin: right;transition: transform 220ms var(--ease-ui)}
body .elementor.elementor .main-nav a:hover::after, body .elementor.elementor .main-nav a[aria-current="page"]::after{transform: scaleX(1);transform-origin: left}
body .elementor.elementor .main-nav a[aria-current="page"]{color: var(--turquoise-deep)}
body .elementor.elementor .nav-actions{position: relative;z-index: 3;display: flex;align-items: center;gap: 6px}
body .elementor.elementor .icon-button, body .elementor.elementor .language-button, body .elementor.elementor .menu-button{display: inline-grid;height: 42px;place-items: center;border: 0;border-radius: 50%;background: transparent;color: var(--ink);cursor: pointer;transition: background-color 180ms var(--ease-ui), transform 180ms var(--ease-ui)}
body .elementor.elementor.elementor .icon-button, body .elementor.elementor.elementor .language-button, body .elementor.elementor.elementor .menu-button{width: 42px}
body .elementor.elementor .language-button{padding: 0 10px;border-radius: 20px;font-size: 12px;font-weight: 600}
body .elementor.elementor.elementor .language-button{width: auto}
body .elementor.elementor .icon-button:hover, body .elementor.elementor .language-button:hover, body .elementor.elementor .menu-button:hover{background: var(--paper)}
body .elementor.elementor .icon-button:active, body .elementor.elementor .language-button:active, body .elementor.elementor .menu-button:active{transform: scale(0.95)}
body .elementor.elementor .owner-link{padding: 10px 8px;color: var(--muted);font-size: 11px;font-weight: 600;letter-spacing: 0.03em;white-space: nowrap}
body .elementor.elementor .nav-cta{min-height: 50px;padding-left: 18px;white-space: nowrap}
body .elementor.elementor .menu-button{display: none}
body .elementor.elementor .search-overlay{position: fixed;inset: 0;z-index: 300;display: grid;place-items: start center;padding-top: 14vh;background: rgba(23, 26, 24, 0.36);opacity: 0;pointer-events: none;transition: opacity 220ms var(--ease-ui);backdrop-filter: blur(8px)}
body .elementor.elementor .search-overlay.is-open{opacity: 1;pointer-events: auto}
body .elementor.elementor .search-panel{padding: 28px;border-radius: 18px;background: var(--white);box-shadow: var(--shadow-soft);transform: translateY(-12px);filter: blur(4px);transition: transform 300ms var(--ease-out), filter 300ms var(--ease-out)}
body .elementor.elementor.elementor .search-panel{width: min(92vw, 780px)}
body .elementor.elementor .search-overlay.is-open .search-panel{transform: translateY(0);filter: blur(0)}
body .elementor.elementor .search-top{display: flex;align-items: center;gap: 18px}
body .elementor.elementor .search-field{border: 0;border-bottom: 1px solid var(--line);background: transparent;color: var(--ink);font-family: var(--serif);font-size: clamp(32px, 5vw, 58px)}
body .elementor.elementor.elementor .search-field{width: 100%}
body .elementor.elementor .search-field::placeholder{color: #b8b6af}
body .elementor.elementor .search-field:focus{border-color: var(--turquoise);outline: 0}
body .elementor.elementor .search-suggestions{display: flex;flex-wrap: wrap;gap: 8px;margin-top: 24px}
body .elementor.elementor .search-suggestions a{padding: 8px 12px;border-radius: 18px;background: var(--paper);color: var(--muted);font-size: 12px}
body .elementor.elementor .mobile-panel{position: fixed;inset: 0;z-index: 250;display: grid;grid-template-rows: auto 1fr auto;padding: 22px;background: var(--white);opacity: 0;pointer-events: none;transform: translateY(-12px);transition: opacity 220ms var(--ease-ui), transform 300ms var(--ease-out)}
body .elementor.elementor .mobile-panel.is-open{opacity: 1;pointer-events: auto;transform: translateY(0)}
body .elementor.elementor .mobile-panel-top{display: flex;align-items: center;justify-content: space-between}
body .elementor.elementor .mobile-links{display: flex;flex-direction: column;justify-content: center;gap: 7px}
body .elementor.elementor .mobile-links a{display: flex;align-items: center;justify-content: space-between;border-bottom: 1px solid var(--line);font-family: var(--serif);font-size: clamp(36px, 10vw, 58px);line-height: 1.2}
body .elementor.elementor .mobile-links a::after{content: "↗";color: var(--turquoise-deep);font-family: var(--sans);font-size: 20px}
body .elementor.elementor .mobile-panel-bottom{display: flex;align-items: center;justify-content: space-between;color: var(--muted);font-size: 12px}
body .elementor.elementor .page-main{overflow: clip}
body .elementor.elementor .cinematic-hero{position: relative;isolation: isolate;display: grid;min-height: min(100svh, 980px);align-items: end;overflow: hidden;padding: clamp(185px, 17vw, 240px) 0 clamp(64px, 7vw, 104px);background: #17312f;color: #fff}
body .elementor.elementor .cinematic-hero::before, body .elementor.elementor .cinematic-hero::after{content: "";position: absolute;inset: 0;pointer-events: none}
body .elementor.elementor .cinematic-hero::before{z-index: -2;background-position: center;background-size: cover;transform: scale(1.01);animation: hero-breathe 16s var(--ease-out) both}
body .elementor.elementor .cinematic-hero::after{z-index: -1;background:
    linear-gradient(90deg, rgba(8, 26, 25, 0.82) 0%, rgba(8, 26, 25, 0.5) 43%, rgba(8, 26, 25, 0.08) 76%),
    linear-gradient(0deg, rgba(5, 19, 18, 0.46) 0%, transparent 55%)}
@keyframes hero-breathe{
  from { transform: scale(1.055); }
  to { transform: scale(1.01); }
}
body.mgc-page-accueil .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/hero-villa.jpg");background-position: center 58%}
body.mgc-page-a-propos .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/hero-aerial.jpg");background-position: center 48%}
body.mgc-page-services .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/services-hero-premium.webp");background-position: center 48%}
body.mgc-page-villas .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/villa-la-vie-est-belle.jpg");background-position: center 55%}
body.mgc-page-catamaran .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/sea-catamaran-sweetest-v2.webp");background-position: center 52%}
body.mgc-page-proprietaire .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/about-nosybe.jpg");background-position: center 52%}
body.mgc-page-contact .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/nosy-be.jpg");background-position: center 50%}
body.mgc-page-reservation .elementor.elementor .cinematic-hero::before{background-image: url("../../2026/09/villa-garana.jpg");background-position: center 56%}
body .elementor.elementor .cinematic-hero-content{position: relative;z-index: 2}
body .elementor.elementor.elementor .cinematic-hero-content{width: var(--container)}
body .elementor.elementor .cinematic-hero-content .eyebrow{display: flex;align-items: center;gap: 16px;margin-bottom: clamp(24px, 3vw, 42px);color: rgba(255, 255, 255, 0.76)}
body .elementor.elementor .cinematic-hero-content .eyebrow::after{content: "";height: 1px;background: var(--turquoise)}
body .elementor.elementor.elementor .cinematic-hero-content .eyebrow::after{width: 54px}
body .elementor.elementor .cinematic-hero-content h1{font-size: clamp(72px, 8.7vw, 142px);line-height: 0.84;letter-spacing: -0.052em;text-wrap: balance}
body .elementor.elementor.elementor .cinematic-hero-content h1{max-width: 1120px}
body .elementor.elementor .cinematic-hero-content h1 em{color: #fff;font-weight: 400}
body .elementor.elementor .cinematic-hero-content > p.body-xl, body .elementor.elementor .cinematic-hero-content > :where(.elementor-widget.cdp-w) > p.body-xl{margin: clamp(26px, 3vw, 42px) 0 34px;color: rgba(255, 255, 255, 0.88);font-size: clamp(18px, 1.45vw, 24px);line-height: 1.55;text-wrap: pretty}
body .elementor.elementor.elementor .cinematic-hero-content > p.body-xl, body .elementor.elementor.elementor .cinematic-hero-content > :where(.elementor-widget.cdp-w) > p.body-xl{max-width: 720px}
body .elementor.elementor .cinematic-hero-content .hero-actions{align-items: center}
body .elementor.elementor .cinematic-link{display: inline-flex;align-items: center;gap: 10px;padding: 14px 6px;border-bottom: 1px solid rgba(255, 255, 255, 0.5);color: #fff;font-size: 14px;transition: border-color 200ms var(--ease-ui), transform 200ms var(--ease-ui)}
body .elementor.elementor .cinematic-link:hover{border-color: var(--turquoise);transform: translateX(3px)}
body .elementor.elementor .cinematic-coordinates{position: absolute;right: 3.5vw;bottom: 38px;z-index: 2;color: rgba(255, 255, 255, 0.62);font-size: 10px;font-weight: 600;letter-spacing: 0.16em}
body .elementor.elementor .cinematic-hero-compact{min-height: min(82svh, 820px)}
body .elementor.elementor .services-timeline{margin-bottom: clamp(54px, 7vw, 96px)}
body .elementor.elementor .villa-collection-section{padding-top: clamp(52px, 6vw, 88px)}
body .elementor.elementor .villa-collection-section .filter-bar{margin-bottom: clamp(52px, 7vw, 92px)}
body .elementor.elementor .hero{position: relative;min-height: 100svh;padding: clamp(165px, 15vw, 220px) 0 68px}
body .elementor.elementor .hero-grid{display: grid;grid-template-columns: minmax(0, 0.88fr) minmax(420px, 1.12fr);align-items: end;gap: clamp(30px, 4vw, 70px);min-height: calc(100svh - 260px)}
body .elementor.elementor .hero-copy{position: relative;z-index: 4;padding-bottom: 4vw}
body .elementor.elementor .hero-title{margin-bottom: 30px}
body .elementor.elementor.elementor .hero-title{max-width: 820px}
body .elementor.elementor .hero-title em{color: var(--turquoise-deep);font-weight: 400}
body .elementor.elementor .hero-intro{margin: 0 0 32px}
body .elementor.elementor.elementor .hero-intro{max-width: 530px}
body .elementor.elementor .hero-actions{display: flex;flex-wrap: wrap;gap: 12px}
body .elementor.elementor .hero-image-wrap{position: relative;height: clamp(460px, 65vh, 760px)}
body .elementor.elementor .hero-image{height: 100%}
body .elementor.elementor .hero-image img{object-position: 56% center}
body .elementor.elementor .hero-image-note{position: absolute;right: -8px;bottom: -24px;z-index: 5;display: flex;align-items: center;justify-content: space-between;gap: 18px;padding: 18px 18px 18px 28px;border: 1px solid var(--line);border-radius: 18px;background: rgba(251, 251, 248, 0.96);box-shadow: var(--shadow-soft);color: var(--turquoise-deep)}
body .elementor.elementor.elementor .hero-image-note{width: min(88%, 480px)}
body .elementor.elementor .hero-image-note .round-arrow{display: grid;height: 52px;flex: 0 0 52px;place-items: center;border-radius: 50%;background: var(--coral);color: #fff;font-size: 25px}
body .elementor.elementor.elementor .hero-image-note .round-arrow{width: 52px}
body .elementor.elementor .hero-index{position: absolute;top: 54%;left: 2vw;z-index: 2;color: var(--turquoise-soft);font-family: var(--serif);font-size: clamp(140px, 18vw, 300px);line-height: 0.5;pointer-events: none}
body .elementor.elementor .hero-coordinates{position: absolute;top: 44px;right: 3.2vw;color: var(--muted);font-size: 10px;font-weight: 600;letter-spacing: 0.13em;line-height: 2;text-transform: uppercase}
body .elementor.elementor .hero-coordinates::after{content: "✦";margin-left: 14px;color: var(--coral)}
body .elementor.elementor .inner-hero{position: relative;padding: clamp(180px, 19vw, 260px) 0 clamp(70px, 9vw, 130px)}
body .elementor.elementor .inner-hero-grid{display: grid;grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.9fr);align-items: end;gap: 8vw}
body .elementor.elementor .inner-hero-copy p{margin: 34px 0 0}
body .elementor.elementor.elementor .inner-hero-copy p{max-width: 640px}
body .elementor.elementor .inner-hero-image{height: clamp(340px, 44vw, 610px)}
body .elementor.elementor .inner-hero-image.arch{overflow: hidden;border-radius: 45% 45% 6px 6px / 28% 28% 6px 6px}
body .elementor.elementor .inner-hero-image img{height: 100%;object-fit: cover}
body .elementor.elementor.elementor .inner-hero-image img{width: 100%}
body .elementor.elementor .intro-split{display: grid;grid-template-columns: minmax(0, 1fr) minmax(320px, 0.65fr);gap: clamp(48px, 9vw, 140px);align-items: start}
body .elementor.elementor .intro-split .lead{margin: 14px 0 0}
body .elementor.elementor .stats-grid{display: grid;grid-template-columns: repeat(3, 1fr);margin-top: clamp(60px, 8vw, 120px);border-top: 1px solid var(--line);border-bottom: 1px solid var(--line)}
body .elementor.elementor .stat{padding: clamp(30px, 4vw, 60px);text-align: center}
body .elementor.elementor .stat + .stat{border-left: 1px solid var(--line)}
body .elementor.elementor .stat strong{display: block;color: var(--turquoise-deep);font-family: var(--serif);font-size: clamp(60px, 7vw, 110px);font-weight: 400;letter-spacing: -0.04em;line-height: 0.85}
body .elementor.elementor .stat span{display: block;margin-top: 17px;color: var(--muted);font-size: 12px;letter-spacing: 0.08em;text-transform: uppercase}
body .elementor.elementor .feature-grid{display: grid;grid-template-columns: repeat(12, 1fr);gap: 20px;align-items: end}
body .elementor.elementor .feature-copy{grid-column: 1 / span 5;padding-bottom: 20px}
body .elementor.elementor .feature-copy p{margin: 28px 0 34px}
body .elementor.elementor.elementor .feature-copy p{max-width: 520px}
body .elementor.elementor .feature-image-large{grid-column: 6 / -1;grid-row: 1;height: clamp(480px, 55vw, 760px)}
body .elementor.elementor .feature-image-small{grid-column: 6 / span 3;grid-row: 1;align-self: end;z-index: 4;height: clamp(240px, 27vw, 390px);margin: 0 0 -54px 22px;transform: none}
body .elementor.elementor .service-list{margin-top: 60px;border-top: 1px solid var(--line)}
body .elementor.elementor .service-row{display: grid;grid-template-columns: 74px minmax(240px, 0.8fr) minmax(280px, 1.2fr) 44px;align-items: center;gap: 26px;padding: 27px 0;border-bottom: 1px solid var(--line);transition: color 180ms var(--ease-ui), transform 180ms var(--ease-ui)}
body .elementor.elementor .service-row:hover{color: var(--turquoise-deep);transform: translateX(8px)}
body .elementor.elementor .service-row .number{color: var(--turquoise-deep);font-size: 12px}
body .elementor.elementor .service-row h3{font-size: clamp(30px, 3vw, 48px)}
body .elementor.elementor .service-row p{margin: 0;color: var(--muted)}
body .elementor.elementor .service-row .plus{font-size: 24px;text-align: right}
body .elementor.elementor .villa-grid{display: grid;grid-template-columns: repeat(12, 1fr);gap: clamp(22px, 3vw, 42px);margin-top: clamp(50px, 7vw, 95px)}
body .elementor.elementor .villa-card{grid-column: span 6;margin: 0}
body .elementor.elementor .villa-card:nth-child(3n + 1){grid-column: span 7}
body .elementor.elementor .villa-card:nth-child(3n + 2){grid-column: span 5;margin-top: 10vw}
body .elementor.elementor .villa-card:nth-child(3n){grid-column: 3 / span 8}
body .elementor.elementor .villa-card.is-hidden{display: none}
body .elementor.elementor .villa-card-image{height: clamp(340px, 42vw, 620px);overflow: hidden}
body .elementor.elementor .villa-card:nth-child(3n + 2) .villa-card-image{height: clamp(300px, 34vw, 510px)}
body .elementor.elementor .villa-card-image img{transition: transform 700ms var(--ease-out), filter 450ms var(--ease-out)}
body .elementor.elementor .villa-card:hover .villa-card-image img{transform: scale(1.025);filter: saturate(1.05)}
body .elementor.elementor .villa-card-meta{display: grid;grid-template-columns: auto 1fr auto;align-items: end;gap: 20px;padding-top: 18px}
body .elementor.elementor .villa-card-meta .index{align-self: start;color: var(--turquoise-deep);font-size: 11px}
body .elementor.elementor .villa-card-meta h3{font-size: clamp(32px, 3.2vw, 54px)}
body .elementor.elementor .villa-card-meta p{margin: 8px 0 0;color: var(--muted);font-size: 13px}
body .elementor.elementor .filter-bar{position: relative;display: flex;flex-wrap: wrap;align-items: center;gap: 8px;margin-top: 50px;padding: 9px;border: 1px solid var(--line);border-radius: 17px;background: #fff;box-shadow: 0 10px 32px rgba(23, 26, 24, 0.05)}
body .elementor.elementor .filter-button{padding: 11px 16px;border: 0;border-radius: 9px;background: transparent;color: var(--muted);cursor: pointer;font-size: 12px;font-weight: 500;transition: background-color 180ms var(--ease-ui), color 180ms var(--ease-ui)}
body .elementor.elementor .filter-button:hover, body .elementor.elementor .filter-button.is-active{background: var(--turquoise-soft);color: var(--turquoise-deep)}
body .elementor.elementor .experience-mosaic{display: grid;grid-template-columns: 0.72fr 1fr 1.35fr 0.8fr;gap: 8px;margin-top: 50px}
body .elementor.elementor .experience-tile{position: relative;height: 520px;overflow: hidden}
body .elementor.elementor .experience-tile:nth-child(2){transform: translateY(40px)}
body .elementor.elementor .experience-tile:nth-child(4){transform: translateY(68px)}
body .elementor.elementor .experience-tile img{height: 100%;object-fit: cover;transition: transform 700ms var(--ease-out)}
body .elementor.elementor.elementor .experience-tile img{width: 100%}
body .elementor.elementor .experience-tile:hover img{transform: scale(1.035)}
body .elementor.elementor .experience-tile::after{content: "";position: absolute;inset: 0;background: linear-gradient(to top, rgba(10, 16, 14, 0.62), transparent 60%)}
body .elementor.elementor .experience-tile span{position: absolute;right: 22px;bottom: 24px;left: 22px;z-index: 2;color: #fff;font-family: var(--serif);font-size: clamp(28px, 2.8vw, 46px);line-height: 1}
body .elementor.elementor .experience-link-grid{display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));margin-top: 50px;border-top: 1px solid var(--line);border-left: 1px solid var(--line)}
body .elementor.elementor .experience-link-card{position: relative;display: grid;min-height: 250px;grid-template-columns: auto 1fr auto;align-items: start;gap: 24px;padding: 34px;border-right: 1px solid var(--line);border-bottom: 1px solid var(--line);background: var(--white);transition: background-color 220ms var(--ease-ui), color 220ms var(--ease-ui)}
body .elementor.elementor .experience-link-card:hover{background: var(--turquoise-deep);color: #fff}
body .elementor.elementor .experience-link-card .index{color: var(--turquoise-deep);font-size: 11px;font-weight: 600}
body .elementor.elementor .experience-link-card:hover .index, body .elementor.elementor .experience-link-card:hover p{color: rgba(255, 255, 255, 0.72)}
body .elementor.elementor .experience-link-card h3{font-size: clamp(34px, 3vw, 52px)}
body .elementor.elementor.elementor .experience-link-card h3{max-width: 360px}
body .elementor.elementor .experience-link-card p{margin: 20px 0 0;color: var(--muted);font-size: 14px;line-height: 1.65}
body .elementor.elementor.elementor .experience-link-card p{max-width: 430px}
body .elementor.elementor .experience-link-card .card-arrow{font-size: 24px;transition: transform 220ms var(--ease-ui)}
body .elementor.elementor .experience-link-card:hover .card-arrow{transform: translate(3px, -3px)}
body .elementor.elementor .quote-block{position: relative;margin-inline: auto;text-align: center}
body .elementor.elementor.elementor .quote-block{max-width: 1050px}
body .elementor.elementor .quote-block blockquote{margin: 0;font-family: var(--serif);font-size: clamp(40px, 5vw, 78px);letter-spacing: -0.03em;line-height: 1.08}
body .elementor.elementor .quote-block cite{display: block;margin-top: 30px;color: var(--muted);font-size: 11px;font-style: normal;letter-spacing: 0.13em;text-transform: uppercase}
body .elementor.elementor .destination-panel{display: grid;grid-template-columns: minmax(0, 0.85fr) minmax(440px, 1.15fr);min-height: 700px;align-items: stretch}
body .elementor.elementor .destination-copy{display: flex;flex-direction: column;justify-content: center;padding: clamp(50px, 7vw, 110px);background: var(--paper)}
body .elementor.elementor .destination-copy p{margin: 28px 0 36px}
body .elementor.elementor.elementor .destination-copy p{max-width: 520px}
body .elementor.elementor .destination-image{min-height: 560px}
body .elementor.elementor .destination-image img{height: 100%;object-fit: cover}
body .elementor.elementor.elementor .destination-image img{width: 100%}
body .elementor.elementor .atlas-grid{display: grid;grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);grid-template-rows: repeat(2, minmax(330px, 1fr));gap: 14px;min-height: 760px;margin-top: clamp(46px, 7vw, 92px)}
body .elementor.elementor .atlas-item{position: relative;isolation: isolate;overflow: hidden;min-height: 330px;margin: 0;color: #fff}
body .elementor.elementor .atlas-item:first-child{grid-row: 1 / span 2}
body .elementor.elementor .atlas-item::after{content: "";position: absolute;inset: 0;z-index: -1;background: linear-gradient(0deg, rgba(6, 26, 24, .86) 0%, rgba(6, 26, 24, .14) 62%, rgba(6, 26, 24, .04))}
body .elementor.elementor .atlas-item img{position: absolute;inset: 0;z-index: -2;height: 100%;object-fit: cover;transition: transform 900ms var(--ease-out), filter 600ms var(--ease-out)}
body .elementor.elementor.elementor .atlas-item img{width: 100%}
body .elementor.elementor .atlas-item:hover img{transform: scale(1.035);filter: saturate(1.06)}
body .elementor.elementor .atlas-item .number{position: absolute;top: clamp(22px, 3vw, 38px);left: clamp(24px, 3vw, 42px);padding: 8px 11px;border: 1px solid rgba(255, 255, 255, .36);background: rgba(8, 35, 32, .24);backdrop-filter: blur(12px);color: #a8e1dd;font-size: 10px;letter-spacing: .12em}
body .elementor.elementor .atlas-item-copy{position: absolute;inset: auto 0 0;padding: clamp(30px, 4vw, 58px)}
body .elementor.elementor .atlas-item h3{font-size: clamp(46px, 5vw, 78px);line-height: .94}
body .elementor.elementor .atlas-item:not(:first-child) h3{font-size: clamp(38px, 3.6vw, 58px)}
body .elementor.elementor .atlas-item p{margin: 16px 0 0;color: rgba(255, 255, 255, .72);font-size: 13px;line-height: 1.6}
body .elementor.elementor.elementor .atlas-item p{max-width: 520px}
body .elementor.elementor .catamaran-offers-section{padding-bottom: clamp(100px, 12vw, 180px)}
body .elementor.elementor .catamaran-offers-intro{display: grid;grid-template-columns: minmax(0, 1.15fr) minmax(340px, 0.55fr);align-items: end;gap: clamp(54px, 9vw, 150px);margin-bottom: clamp(58px, 8vw, 110px)}
body .elementor.elementor.elementor .catamaran-offers-intro h2{max-width: 940px}
body .elementor.elementor .catamaran-offers-intro .lead{margin: 0 0 28px}
body .elementor.elementor .catamaran-offer-grid{display: grid;grid-template-columns: repeat(12, minmax(0, 1fr));grid-template-rows: repeat(2, minmax(390px, 1fr));gap: 18px}
body .elementor.elementor .catamaran-offer-card{position: relative;isolation: isolate;min-height: 390px;overflow: hidden;background: #15322f;color: #fff}
body .elementor.elementor .catamaran-offer-card::after{content: "";position: absolute;inset: 0;z-index: -1;background: linear-gradient(0deg, rgba(5, 23, 22, 0.9) 0%, rgba(5, 23, 22, 0.24) 58%, rgba(5, 23, 22, 0.08) 100%);pointer-events: none}
body .elementor.elementor .catamaran-offer-card img{position: absolute;inset: 0;z-index: -2;height: 100%;object-fit: cover;transition: transform 900ms var(--ease-out), filter 600ms var(--ease-out)}
body .elementor.elementor.elementor .catamaran-offer-card img{width: 100%}
body .elementor.elementor .catamaran-offer-card:hover img{transform: scale(1.035);filter: saturate(1.04)}
body .elementor.elementor .catamaran-offer-card--day{grid-column: 1 / span 7;grid-row: 1 / span 2}
body .elementor.elementor .catamaran-offer-card--cabins, body .elementor.elementor .catamaran-offer-card--bespoke{grid-column: 8 / -1}
body .elementor.elementor .catamaran-offer-card--cabins{grid-row: 1}
body .elementor.elementor .catamaran-offer-card--bespoke{grid-row: 2}
body .elementor.elementor .catamaran-offer-number{position: absolute;top: 26px;left: 28px;padding: 9px 12px;border: 1px solid rgba(255, 255, 255, 0.34);background: rgba(8, 31, 29, 0.3);backdrop-filter: blur(12px);color: rgba(255, 255, 255, 0.86);font-size: 10px;font-weight: 600;letter-spacing: 0.11em;text-transform: uppercase}
body .elementor.elementor .catamaran-offer-copy{position: absolute;inset: auto 0 0;padding: clamp(28px, 4vw, 58px)}
body .elementor.elementor .catamaran-offer-copy .eyebrow{margin-bottom: 13px;color: rgba(255, 255, 255, 0.65)}
body .elementor.elementor .catamaran-offer-copy h3{font-size: clamp(48px, 5.3vw, 88px)}
body .elementor.elementor.elementor .catamaran-offer-copy h3{max-width: 720px}
body .elementor.elementor .catamaran-offer-card:not(.catamaran-offer-card--day) .catamaran-offer-copy h3{font-size: clamp(40px, 3.5vw, 58px)}
body .elementor.elementor .catamaran-offer-copy > p:not(.eyebrow), body .elementor.elementor .catamaran-offer-copy > :where(.elementor-widget.cdp-w) > p:not(.eyebrow){margin: 17px 0 0;color: rgba(255, 255, 255, 0.76);font-size: 14px;line-height: 1.65}
body .elementor.elementor.elementor .catamaran-offer-copy > p:not(.eyebrow), body .elementor.elementor.elementor .catamaran-offer-copy > :where(.elementor-widget.cdp-w) > p:not(.eyebrow){max-width: 620px}
body .elementor.elementor .catamaran-offer-price{display: flex;align-items: end;justify-content: space-between;gap: 24px;margin-top: 28px;padding-top: 20px;border-top: 1px solid rgba(255, 255, 255, 0.27)}
body .elementor.elementor .catamaran-offer-price small{color: rgba(255, 255, 255, 0.56);font-size: 10px;letter-spacing: 0.12em;text-transform: uppercase}
body .elementor.elementor .catamaran-offer-price strong{font-family: var(--serif);font-size: clamp(28px, 2.8vw, 46px);font-weight: 400;line-height: 1}
body .elementor.elementor .catamaran-journey-section{padding-top: 0;background: var(--paper)}
body .elementor.elementor .catamaran-journey{position: relative;isolation: isolate;min-height: min(78vw, 900px);overflow: hidden;background: #102522;color: #fff}
body .elementor.elementor .catamaran-journey::after{content: "";position: absolute;inset: 0;z-index: -1;background: linear-gradient(180deg, rgba(5, 23, 22, 0.55), transparent 48%, rgba(5, 23, 22, 0.42))}
body .elementor.elementor .catamaran-journey-image{position: absolute;inset: 0;z-index: -2;height: 100%;object-fit: cover}
body .elementor.elementor.elementor .catamaran-journey-image{width: 100%}
body .elementor.elementor .catamaran-journey-heading{padding: clamp(48px, 7vw, 96px)}
body .elementor.elementor .catamaran-journey-heading .eyebrow{color: rgba(255, 255, 255, 0.7)}
body .elementor.elementor .catamaran-journey-heading h2{margin-top: 22px;font-size: clamp(62px, 7vw, 110px)}
body .elementor.elementor.elementor .catamaran-journey-heading h2{max-width: 900px}
body .elementor.elementor .catamaran-journey-route{position: absolute;inset: auto 0 0;display: grid;grid-template-columns: repeat(4, 1fr);border-top: 1px solid rgba(255, 255, 255, 0.24);background: rgba(7, 28, 26, 0.76);backdrop-filter: blur(18px)}
body .elementor.elementor .catamaran-journey-stop{position: relative;min-height: 225px;padding: 32px clamp(22px, 2.5vw, 42px)}
body .elementor.elementor .catamaran-journey-stop + .catamaran-journey-stop{border-left: 1px solid rgba(255, 255, 255, 0.18)}
body .elementor.elementor .catamaran-journey-stop time{color: #8ed8d3;font-size: 12px;letter-spacing: 0.08em}
body .elementor.elementor .catamaran-journey-stop > span, body .elementor.elementor .catamaran-journey-stop > :where(.elementor-widget.cdp-w) > span{position: absolute;top: 28px;right: 28px;color: rgba(255, 255, 255, 0.28);font-family: var(--serif);font-size: 38px}
body .elementor.elementor .catamaran-journey-stop h3{margin-top: 26px;font-size: clamp(28px, 2.5vw, 42px)}
body .elementor.elementor .catamaran-journey-stop p{margin: 15px 0 0;color: rgba(255, 255, 255, 0.64);font-size: 13px;line-height: 1.6}
body .elementor.elementor .cta-band{position: relative;overflow: hidden;padding: clamp(80px, 10vw, 150px) 0;background: var(--turquoise-deep);color: #fff}
body .elementor.elementor .cta-band::before{content: "";position: absolute;right: -15vw;bottom: -35vw;aspect-ratio: 1;border: 1px solid rgba(255, 255, 255, 0.2);border-radius: 50%;box-shadow: inset 0 0 0 30px rgba(255, 255, 255, 0.025), inset 0 0 0 60px rgba(255, 255, 255, 0.025)}
body .elementor.elementor.elementor .cta-band::before{width: 62vw}
body .elementor.elementor .cta-band-grid{position: relative;z-index: 2;display: grid;grid-template-columns: 1fr auto;align-items: end;gap: 40px}
body .elementor.elementor.elementor .cta-band h2{max-width: 1000px}
body .elementor.elementor .detail-hero{padding: clamp(180px, 18vw, 245px) 0 60px}
body .elementor.elementor .detail-title-row{display: flex;align-items: end;justify-content: space-between;gap: 40px;margin-bottom: 42px}
body .elementor.elementor .detail-title-row .location{margin: 22px 0 0;color: var(--muted);font-size: 18px}
body .elementor.elementor .detail-gallery{display: grid;grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);gap: 16px}
body .elementor.elementor .detail-gallery.is-single{grid-template-columns: 1fr}
body .elementor.elementor .detail-gallery.is-single .detail-gallery-main{height: clamp(520px, 60vw, 820px)}
body .elementor.elementor .detail-gallery-main, body .elementor.elementor .detail-gallery-side{height: clamp(480px, 58vw, 760px)}
body .elementor.elementor .detail-gallery-side{display: grid;grid-template-rows: 1fr 0.65fr;gap: 16px}
body .elementor.elementor .detail-gallery-main img, body .elementor.elementor .detail-gallery-side img{height: 100%;object-fit: cover}
body .elementor.elementor.elementor .detail-gallery-main img, body .elementor.elementor.elementor .detail-gallery-side img{width: 100%}
body .elementor.elementor .detail-gallery-more{display: grid;grid-template-columns: 1.35fr .65fr;gap: 16px;margin-top: 16px}
body .elementor.elementor .detail-gallery-more figure{position: relative;height: clamp(300px, 34vw, 510px);margin: 0}
body .elementor.elementor .detail-gallery-more img{height: 100%;object-fit: cover}
body .elementor.elementor.elementor .detail-gallery-more img{width: 100%}
body .elementor.elementor .detail-gallery-more figcaption{position: absolute;right: 18px;bottom: 18px;padding: 10px 14px;border: 1px solid rgba(255, 255, 255, .42);border-radius: 999px;background: rgba(11, 37, 35, .38);color: #fff;backdrop-filter: blur(12px);font-size: 10px;letter-spacing: .1em;text-transform: uppercase}
body .elementor.elementor .facts-grid{display: grid;grid-template-columns: repeat(4, 1fr);border-bottom: 1px solid var(--line)}
body .elementor.elementor .fact{display: flex;align-items: center;gap: 16px;padding: 30px 24px}
body .elementor.elementor .fact + .fact{border-left: 1px solid var(--line)}
body .elementor.elementor .fact svg{color: var(--turquoise-deep)}
body .elementor.elementor .detail-content{display: grid;grid-template-columns: minmax(0, 1fr) minmax(330px, 0.48fr);gap: clamp(50px, 8vw, 130px)}
body .elementor.elementor.elementor .detail-copy{max-width: 820px}
body .elementor.elementor .detail-copy p{color: var(--muted);font-size: 18px;line-height: 1.8}
body .elementor.elementor .amenity-list{display: grid;grid-template-columns: repeat(2, 1fr);gap: 0 30px;margin-top: 45px;padding: 0;list-style: none}
body .elementor.elementor .amenity-list li{padding: 15px 0;border-bottom: 1px solid var(--line)}
body .elementor.elementor .booking-card{position: sticky;top: 120px;align-self: start;padding: 36px;border: 1px solid var(--line);background: #fff;box-shadow: var(--shadow-soft)}
body .elementor.elementor .booking-card .price{margin: 24px 0;font-family: var(--serif);font-size: 58px;line-height: 1}
body .elementor.elementor .booking-card .price small{font-family: var(--sans);font-size: 12px}
body .elementor.elementor.elementor .booking-card .button{width: 100%}
body .elementor.elementor .field-grid{display: grid;grid-template-columns: repeat(2, 1fr);gap: 20px}
body .elementor.elementor .field{display: flex;flex-direction: column;gap: 9px}
body .elementor.elementor .field.full{grid-column: 1 / -1}
body .elementor.elementor .field label{color: var(--muted);font-size: 12px;font-weight: 600}
body .elementor.elementor .field input, body .elementor.elementor .field select, body .elementor.elementor .field textarea{min-height: 54px;padding: 14px 16px;border: 1px solid var(--line);border-radius: 5px;background: var(--white);color: var(--ink);transition: border-color 180ms var(--ease-ui), box-shadow 180ms var(--ease-ui)}
body .elementor.elementor.elementor .field input, body .elementor.elementor.elementor .field select, body .elementor.elementor.elementor .field textarea{width: 100%}
body .elementor.elementor .field textarea{min-height: 150px;resize: vertical}
body .elementor.elementor .field input:focus, body .elementor.elementor .field select:focus, body .elementor.elementor .field textarea:focus{border-color: var(--turquoise);box-shadow: 0 0 0 3px rgba(88, 184, 178, 0.12);outline: 0}
body .elementor.elementor .form-note{display: none;margin-top: 18px;padding: 14px 16px;border-radius: 6px;background: var(--turquoise-soft);color: #216c68;font-size: 13px}
body .elementor.elementor .form-note.is-visible{display: block}
body .elementor.elementor .accordion{margin-top: 54px;border-top: 1px solid var(--line)}
body .elementor.elementor .accordion details{border-bottom: 1px solid var(--line);scroll-margin-top: 130px}
body .elementor.elementor .accordion summary{display: grid;grid-template-columns: 60px 1fr auto;align-items: center;gap: 20px;padding: 28px 0;cursor: pointer;list-style: none}
body .elementor.elementor .accordion summary::-webkit-details-marker{display: none}
body .elementor.elementor .accordion summary .index{color: var(--turquoise-deep);font-size: 11px}
body .elementor.elementor .accordion summary strong{font-family: var(--serif);font-size: clamp(28px, 3vw, 46px);font-weight: 400;line-height: 1}
body .elementor.elementor .accordion summary::after{content: "+";font-size: 25px;transition: transform 220ms var(--ease-ui)}
body .elementor.elementor .accordion details[open] summary::after{transform: rotate(45deg)}
body .elementor.elementor .accordion-content{display: grid;grid-template-columns: minmax(0, 1fr) minmax(280px, 0.75fr);gap: 50px;padding: 4px 0 42px 80px}
body .elementor.elementor .accordion-content p{margin: 0;color: var(--muted);font-size: 17px;line-height: 1.8}
body .elementor.elementor .accordion-content img{height: 260px;object-fit: cover}
body .elementor.elementor.elementor .accordion-content img{width: 100%}
body .elementor.elementor .timeline{display: grid;grid-template-columns: repeat(4, 1fr);margin-top: 52px;border-top: 1px solid var(--line)}
body .elementor.elementor .timeline-item{position: relative;padding: 28px 22px 0 0}
body .elementor.elementor .timeline-item::before{content: "";position: absolute;top: -5px;left: 0;height: 9px;border-radius: 50%;background: var(--stone)}
body .elementor.elementor.elementor .timeline-item::before{width: 9px}
body .elementor.elementor .timeline-item.is-active::before{background: var(--turquoise);box-shadow: 0 0 0 6px var(--turquoise-soft)}
body .elementor.elementor .timeline-item time{color: var(--turquoise-deep);font-size: 12px}
body .elementor.elementor .timeline-item h3{margin-top: 14px;font-size: 32px}
body .elementor.elementor .booking-layout{display: grid;grid-template-columns: minmax(0, 1fr) minmax(330px, 0.38fr);gap: 28px;align-items: start}
body .elementor.elementor .booking-form-shell, body .elementor.elementor .booking-summary{padding: clamp(26px, 4vw, 58px);border: 1px solid var(--line);background: #fff;box-shadow: 0 12px 42px rgba(23, 26, 24, 0.05)}
body .elementor.elementor.elementor .booking-form-shell, body .elementor.elementor.elementor .booking-summary{min-width: 0}
body .elementor.elementor .steps{display: grid;grid-template-columns: repeat(4, 1fr);margin-bottom: 48px;border-bottom: 1px solid var(--line)}
body .elementor.elementor.elementor .steps{width: 100%}
body .elementor.elementor .step{position: relative;padding: 0 0 18px;border: 0;background: transparent;color: var(--muted);text-align: left;cursor: pointer;font-size: 12px}
body .elementor.elementor .step::after{content: "";position: absolute;right: 0;bottom: -1px;left: 0;height: 2px;background: var(--turquoise);transform: scaleX(0);transform-origin: left;transition: transform 220ms var(--ease-ui)}
body .elementor.elementor .step.is-active, body .elementor.elementor .step.is-complete{color: var(--turquoise-deep)}
body .elementor.elementor .step.is-active::after, body .elementor.elementor .step.is-complete::after{transform: scaleX(1)}
body .elementor.elementor .form-step{display: none}
body .elementor.elementor .form-step.is-active{display: block;animation: step-enter 360ms var(--ease-out) both}
@keyframes step-enter{
  from { opacity: 0; transform: translateY(8px); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
body .elementor.elementor .choice-grid{display: grid;grid-template-columns: repeat(2, 1fr);gap: 12px;margin: 26px 0}
body .elementor.elementor .choice{position: relative;display: flex;min-height: 96px;align-items: center;gap: 14px;padding: 18px;border: 1px solid var(--line);cursor: pointer;transition: border-color 180ms var(--ease-ui), background-color 180ms var(--ease-ui), transform 180ms var(--ease-ui)}
body .elementor.elementor .choice:hover{border-color: var(--turquoise);transform: translateY(-2px)}
body .elementor.elementor .choice:has(input:checked){border-color: var(--turquoise-deep);background: var(--turquoise-soft)}
body .elementor.elementor .choice input{accent-color: var(--turquoise-deep)}
body .elementor.elementor .step-actions{display: flex;justify-content: space-between;gap: 12px;margin-top: 36px}
body .elementor.elementor .booking-summary img{height: 240px;object-fit: cover}
body .elementor.elementor.elementor .booking-summary img{width: 100%}
body .elementor.elementor .booking-summary h3{margin: 28px 0 16px;font-size: 42px}
body .elementor.elementor .summary-line{display: flex;justify-content: space-between;gap: 18px;padding: 13px 0;border-bottom: 1px solid var(--line);color: var(--muted);font-size: 13px}
body .elementor.elementor .summary-line strong{color: var(--ink);font-weight: 500;text-align: right}
body .elementor.elementor .contact-grid{display: grid;grid-template-columns: minmax(0, 0.8fr) minmax(420px, 1.2fr);gap: clamp(50px, 8vw, 130px);align-items: start}
body .elementor.elementor .contact-details{margin-top: 48px;padding: 0;list-style: none}
body .elementor.elementor .contact-details li{padding: 16px 0;border-bottom: 1px solid var(--line)}
body .elementor.elementor .contact-details small{display: block;margin-bottom: 5px;color: var(--muted);font-size: 10px;letter-spacing: 0.12em;text-transform: uppercase}
body .elementor.elementor .contact-details a{font-family: var(--serif);font-size: 30px}
body .elementor.elementor .owner-management-section{padding-bottom: clamp(110px, 13vw, 190px)}
body .elementor.elementor .owner-management-intro{display: grid;grid-template-columns: minmax(0, 1.1fr) minmax(360px, 0.52fr);align-items: end;gap: clamp(60px, 10vw, 160px);margin-bottom: clamp(64px, 9vw, 120px)}
body .elementor.elementor.elementor .owner-management-intro h2{max-width: 900px}
body .elementor.elementor .owner-management-intro .lead{margin: 0 0 28px}
body .elementor.elementor .owner-management-grid{display: grid;grid-template-columns: minmax(0, 1.16fr) minmax(420px, 0.84fr);gap: 18px;align-items: stretch}
body .elementor.elementor .owner-management-main, body .elementor.elementor .owner-management-secondary{position: relative;isolation: isolate;overflow: hidden;margin: 0;background: #17312f;color: #fff}
body .elementor.elementor .owner-management-main{min-height: 920px}
body .elementor.elementor .owner-management-main::after, body .elementor.elementor .owner-management-secondary::after{content: "";position: absolute;inset: 0;z-index: -1;background: linear-gradient(0deg, rgba(6, 24, 22, 0.82), transparent 56%);pointer-events: none}
body .elementor.elementor .owner-management-main > img, body .elementor.elementor .owner-management-main > :where(.elementor-widget.cdp-w) > img, body .elementor.elementor .owner-management-secondary > img, body .elementor.elementor .owner-management-secondary > :where(.elementor-widget.cdp-w) > img{position: absolute;inset: 0;z-index: -2;height: 100%;object-fit: cover;transition: transform 900ms var(--ease-out), filter 600ms var(--ease-out)}
body .elementor.elementor.elementor .owner-management-main > img, body .elementor.elementor.elementor .owner-management-main > :where(.elementor-widget.cdp-w) > img, body .elementor.elementor.elementor .owner-management-secondary > img, body .elementor.elementor.elementor .owner-management-secondary > :where(.elementor-widget.cdp-w) > img{width: 100%}
body .elementor.elementor .owner-management-main:hover > img, body .elementor.elementor .owner-management-main:hover > :where(.elementor-widget.cdp-w) > img, body .elementor.elementor .owner-management-secondary:hover > img, body .elementor.elementor .owner-management-secondary:hover > :where(.elementor-widget.cdp-w) > img{transform: scale(1.025);filter: saturate(1.04)}
body .elementor.elementor .owner-management-main figcaption, body .elementor.elementor .owner-management-secondary figcaption{position: absolute;inset: auto 0 0;padding: clamp(30px, 4vw, 58px)}
body .elementor.elementor .owner-management-main figcaption span, body .elementor.elementor .owner-management-secondary figcaption span{display: block;margin-bottom: 14px;color: rgba(255, 255, 255, 0.64);font-size: 10px;font-weight: 600;letter-spacing: 0.13em;text-transform: uppercase}
body .elementor.elementor .owner-management-main figcaption strong{display: block;font-family: var(--serif);font-size: clamp(46px, 5vw, 78px);font-weight: 400;letter-spacing: -0.04em;line-height: 0.94}
body .elementor.elementor.elementor .owner-management-main figcaption strong{max-width: 650px}
body .elementor.elementor .owner-management-seal{position: absolute;top: 30px;right: 30px;display: grid;aspect-ratio: 1;place-content: center;border: 1px solid rgba(255, 255, 255, 0.4);border-radius: 50%;background: rgba(12, 44, 41, 0.3);backdrop-filter: blur(14px);text-align: center}
body .elementor.elementor.elementor .owner-management-seal{width: 116px}
body .elementor.elementor .owner-management-seal strong{font-family: var(--serif);font-size: 36px;font-weight: 400;line-height: 1}
body .elementor.elementor .owner-management-seal span{margin-top: 4px;color: rgba(255, 255, 255, 0.7);font-size: 9px;letter-spacing: 0.08em;text-transform: uppercase}
body .elementor.elementor .owner-management-panel{display: grid;grid-template-rows: 1fr 320px;gap: 18px}
body .elementor.elementor .owner-management-services{display: grid;grid-template-rows: repeat(4, 1fr);background: #102522;color: #fff}
body .elementor.elementor .owner-management-services article{display: grid;grid-template-columns: 36px minmax(0, 1fr);align-items: center;gap: 18px;padding: 26px clamp(24px, 3vw, 40px);transition: background-color 220ms var(--ease-ui), transform 220ms var(--ease-ui)}
body .elementor.elementor .owner-management-services article + article{border-top: 1px solid rgba(255, 255, 255, 0.14)}
body .elementor.elementor .owner-management-services article:hover{background: rgba(88, 184, 178, 0.12)}
body .elementor.elementor .owner-management-services article > span:first-child, body .elementor.elementor .owner-management-services article > :where(.elementor-widget.cdp-w) > span:first-child{align-self: start;padding-top: 8px;color: #8ed8d3;font-size: 10px;letter-spacing: 0.1em}
body .elementor.elementor .owner-management-services h3{font-size: clamp(32px, 3vw, 46px)}
body .elementor.elementor .owner-management-services p{margin: 10px 0 0;color: rgba(255, 255, 255, 0.57);font-size: 12px;line-height: 1.6}
body .elementor.elementor.elementor .owner-management-services p{max-width: 520px}
body .elementor.elementor .owner-management-secondary{min-height: 320px}
body .elementor.elementor .owner-management-secondary figcaption{padding: 28px 30px}
body .elementor.elementor .owner-management-secondary figcaption strong{display: block;font-family: var(--serif);font-size: clamp(30px, 3vw, 46px);font-weight: 400;letter-spacing: -0.03em;line-height: 0.96}
body .elementor.elementor.elementor .owner-management-secondary figcaption strong{max-width: 470px}
body .elementor.elementor .owner-hero{position: relative;min-height: 100svh;display: grid;align-items: end;padding: 180px 0 70px;color: #fff}
body .elementor.elementor .owner-hero::before{content: "";position: absolute;inset: 0;background: linear-gradient(90deg, rgba(12, 18, 16, 0.8), rgba(12, 18, 16, 0.18)), url("../../2026/09/about-nosybe.jpg") center / cover}
body .elementor.elementor .owner-hero-content{position: relative;z-index: 2}
body .elementor.elementor.elementor .owner-hero-content{max-width: 950px}
body .elementor.elementor .owner-hero-content p{margin: 30px 0 36px;color: rgba(255, 255, 255, 0.82)}
body .elementor.elementor.elementor .owner-hero-content p{max-width: 650px}
body .elementor.elementor .login-card{margin-inline: auto;padding: clamp(30px, 5vw, 58px);border: 1px solid var(--line);background: #fff;box-shadow: var(--shadow-soft)}
body .elementor.elementor.elementor .login-card{width: min(92vw, 520px)}
body .elementor.elementor .login-card h1{margin-bottom: 16px;font-size: clamp(54px, 8vw, 80px)}
body .elementor.elementor .login-card .field-grid{grid-template-columns: 1fr;margin-top: 30px}
body .elementor.elementor .site-footer{padding: 70px 0 28px;background: #17201d;color: rgba(255, 255, 255, 0.72)}
body .elementor.elementor .footer-grid{display: grid;grid-template-columns: 1.35fr 0.65fr 0.65fr 0.9fr;gap: clamp(30px, 5vw, 80px)}
body .elementor.elementor .footer-brand{display: inline-block;color: #fff}
body .elementor.elementor .footer-brand img{height: auto;filter: brightness(0) invert(1)}
body .elementor.elementor.elementor .footer-brand img{width: 190px}
body .elementor.elementor .footer-intro{font-size: 14px}
body .elementor.elementor.elementor .footer-intro{max-width: 410px}
body .elementor.elementor .footer-title{margin: 10px 0 20px;color: #fff;font-size: 11px;font-weight: 600;letter-spacing: 0.13em;text-transform: uppercase}
body .elementor.elementor .footer-links{display: flex;flex-direction: column;gap: 9px;font-size: 13px}
body .elementor.elementor .footer-links a{transition: color 180ms var(--ease-ui)}
body .elementor.elementor .footer-links a:hover{color: var(--turquoise)}
body .elementor.elementor .footer-bottom{display: flex;align-items: center;justify-content: space-between;gap: 20px;margin-top: 60px;padding-top: 24px;border-top: 1px solid rgba(255, 255, 255, 0.13);font-size: 11px}
body .elementor.elementor .whatsapp-float{position: fixed;right: 22px;bottom: 22px;z-index: 90;display: grid;height: 56px;place-items: center;border-radius: 50%;background: var(--turquoise-deep);color: #fff;box-shadow: 0 12px 28px rgba(47, 143, 138, 0.25);transition: transform 180ms var(--ease-ui), background-color 180ms var(--ease-ui)}
body .elementor.elementor.elementor .whatsapp-float{width: 56px}
body .elementor.elementor .whatsapp-float:hover{background: #267b77;transform: translateY(-3px)}
body.mgc-page-accueil .elementor.elementor .whatsapp-float{bottom: 94px}
body .elementor.elementor .reveal{opacity: 0;transform: translateY(16px);filter: blur(5px);transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out), filter 700ms var(--ease-out)}
body .elementor.elementor .reveal.is-visible{opacity: 1;transform: translateY(0);filter: blur(0)}
body .elementor.elementor .reveal[data-delay="1"]{transition-delay: 90ms}
body .elementor.elementor .reveal[data-delay="2"]{transition-delay: 180ms}
body .elementor.elementor .reveal[data-delay="3"]{transition-delay: 270ms}
body .elementor.elementor .page-enter{animation: page-enter 620ms var(--ease-out) both}
@keyframes page-enter{
  from { opacity: 0; transform: translateY(8px); filter: blur(5px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}
body .elementor.elementor .toast{position: fixed;right: 24px;bottom: 92px;z-index: 350;padding: 14px 18px;border-radius: 8px;background: var(--ink);color: #fff;box-shadow: var(--shadow-soft);opacity: 0;pointer-events: none;transform: translateY(8px);transition: opacity 220ms var(--ease-ui), transform 220ms var(--ease-ui);font-size: 13px}
body .elementor.elementor.elementor .toast{max-width: 360px}
body .elementor.elementor .toast.is-visible{opacity: 1;transform: translateY(0)}
body .elementor.elementor .owner-section-head{display: grid;grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);gap: clamp(30px, 5vw, 80px);align-items: end;margin-bottom: clamp(44px, 5vw, 72px)}
body .elementor.elementor .owner-section-head h2{margin: 0}
body .elementor.elementor .owner-section-head p{margin: 0;color: var(--muted)}
body .elementor.elementor.elementor .owner-section-head p{max-width: 46ch}
body .elementor.elementor .owner-icon{height: 46px;display: grid;place-items: center;border-radius: 50%;background: var(--turquoise-soft);color: var(--turquoise-deep);flex: none}
body .elementor.elementor.elementor .owner-icon{width: 46px}
body .elementor.elementor .owner-icon svg{height: 22px}
body .elementor.elementor.elementor .owner-icon svg{width: 22px}
body .elementor.elementor .owner-why-layout{display: grid;grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);gap: clamp(44px, 6vw, 110px);align-items: start}
body .elementor.elementor .owner-why-intro{position: sticky;top: 130px}
body .elementor.elementor .owner-why-intro h2{margin: 18px 0 22px}
body .elementor.elementor .owner-why-intro > p, body .elementor.elementor .owner-why-intro > :where(.elementor-widget.cdp-w) > p{margin: 0 0 28px;color: var(--muted)}
body .elementor.elementor.elementor .owner-why-intro > p, body .elementor.elementor.elementor .owner-why-intro > :where(.elementor-widget.cdp-w) > p{max-width: 38ch}
body .elementor.elementor .owner-why{list-style: none;margin: 0;padding: 0;border-top: 1px solid var(--ink)}
body .elementor.elementor .owner-why li{position: relative;display: grid;grid-template-columns: clamp(56px, 5vw, 70px) minmax(0, 1fr);gap: clamp(22px, 3vw, 44px);align-items: start;padding: clamp(30px, 3.2vw, 46px) 0;border-bottom: 1px solid var(--stone);transition: padding-left 0.5s var(--ease-out)}
body .elementor.elementor .owner-why li::before{content: "";position: absolute;left: 0;bottom: -1px;height: 1px;background: var(--turquoise-deep);transition: width 0.6s var(--ease-out)}
body .elementor.elementor.elementor .owner-why li::before{width: 0}
body .elementor.elementor .owner-why li:hover{padding-left: 14px}
body .elementor.elementor.elementor .owner-why li:hover::before{width: 100%}
body .elementor.elementor .owner-why-icon{height: clamp(56px, 5vw, 70px);display: grid;place-items: center;border: 0;border-radius: 50%;background: var(--turquoise-deep);color: #fff;transition: background 0.5s var(--ease-out), transform 0.5s var(--ease-out)}
body .elementor.elementor.elementor .owner-why-icon{width: clamp(56px, 5vw, 70px)}
body .elementor.elementor .owner-why-icon svg{height: 44%;stroke-width: 1.6}
body .elementor.elementor.elementor .owner-why-icon svg{width: 44%}
body .elementor.elementor .owner-why li:hover .owner-why-icon{background: #1f6f6b;transform: scale(1.06)}
body .elementor.elementor .owner-why h3{margin: 0 0 12px;font-size: clamp(22px, 2vw, 29px);letter-spacing: -0.01em;color: var(--ink)}
body .elementor.elementor .owner-why p{margin: 0;color: #4a504b}
body .elementor.elementor.elementor .owner-why p{max-width: 52ch}
body .elementor.elementor .owner-process{background: #17312f;color: #fff;padding: clamp(70px, 8vw, 120px) 0}
body .elementor.elementor .owner-process .eyebrow{color: var(--turquoise)}
body .elementor.elementor .owner-process h2{color: #fff}
body .elementor.elementor .owner-process .owner-section-head p{color: rgba(255, 255, 255, 0.68)}
body .elementor.elementor .owner-steps{--step-gap: clamp(24px, 3vw, 54px);list-style: none;margin: 0;padding: 0;position: relative;display: grid;grid-template-columns: repeat(4, 1fr);gap: var(--step-gap)}
body .elementor.elementor .owner-steps li{position: relative;padding-top: 62px}
body .elementor.elementor .owner-steps li::before{content: "";position: absolute;top: 21px;left: 9px;height: 1px;background: rgba(255, 255, 255, 0.18)}
body .elementor.elementor.elementor .owner-steps li::before{width: calc(100% + var(--step-gap))}
body .elementor.elementor .owner-steps li::after{content: "";position: absolute;top: 21px;left: 9px;height: 1px;background-color: var(--turquoise);background-image: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.85) 45%, rgba(255, 255, 255, 0.85) 55%, transparent 100%);background-repeat: no-repeat;background-size: 90px 100%;background-position: -90px 0;transition: width 0.7s var(--ease-out)}
body .elementor.elementor.elementor .owner-steps li::after{width: 0}
body .elementor.elementor .owner-steps.is-visible li::after{animation: route-pulse 3.2s linear 1.6s infinite}
@keyframes route-pulse{
  0% { background-position: -90px 0; }
  100% { background-position: calc(100% + 90px) 0; }
}
body .elementor.elementor.elementor .owner-steps.is-visible li::after{width: calc(100% + var(--step-gap))}
body .elementor.elementor .owner-steps.is-visible li:nth-child(2)::after{transition-delay: 0.5s;animation-delay: 2.6s}
body .elementor.elementor .owner-steps.is-visible li:nth-child(3)::after{transition-delay: 1s;animation-delay: 3.6s}
body .elementor.elementor.elementor .owner-steps li:last-child::before, body .elementor.elementor.elementor .owner-steps li:last-child::after{width: calc(100% - 9px)}
body .elementor.elementor .owner-steps.is-visible li:last-child::after{transition-delay: 1.5s;animation-delay: 4.6s}
body .elementor.elementor.elementor .owner-steps.is-visible li:last-child::after{width: calc(100% - 9px)}
body .elementor.elementor .owner-step-number{position: relative;display: block;font-family: var(--sans);font-size: 11px;letter-spacing: 0.18em;text-transform: uppercase;color: var(--turquoise);margin-bottom: 16px}
body .elementor.elementor .owner-step-number::before{content: "";position: absolute;top: -50px;left: 0;height: 19px;border-radius: 50%;border: 1px solid rgba(255, 255, 255, 0.45);background: #102522;transform: scale(0.4);opacity: 0;transition: transform 0.6s var(--ease-out), opacity 0.6s var(--ease-out)}
body .elementor.elementor.elementor .owner-step-number::before{width: 19px}
body .elementor.elementor .owner-step-number::after{content: "";position: absolute;top: -44px;left: 6px;height: 7px;border-radius: 50%;background: var(--turquoise);opacity: 0;transition: opacity 0.6s var(--ease-out) 0.2s}
body .elementor.elementor.elementor .owner-step-number::after{width: 7px}
body .elementor.elementor .owner-steps.is-visible .owner-step-number::before{transform: scale(1);opacity: 1}
body .elementor.elementor .owner-steps.is-visible .owner-step-number::after{opacity: 1}
body .elementor.elementor .owner-steps.is-visible li:nth-child(2) .owner-step-number::before{transition-delay: 0.5s}
body .elementor.elementor .owner-steps.is-visible li:nth-child(3) .owner-step-number::before{transition-delay: 1s}
body .elementor.elementor .owner-steps.is-visible li:nth-child(2) .owner-step-number::after{transition-delay: 0.7s}
body .elementor.elementor .owner-steps.is-visible li:nth-child(3) .owner-step-number::after{transition-delay: 1.2s}
body .elementor.elementor .owner-steps li:first-child .owner-step-number::before{border-color: var(--turquoise);box-shadow: 0 0 0 6px rgba(88, 184, 178, 0.14)}
body .elementor.elementor .owner-step-pin{position: absolute;top: -4px;left: auto;right: -9px;height: 30px;color: var(--turquoise);opacity: 0;transform: translateY(-10px);transition: opacity 0.6s var(--ease-out) 1.5s, transform 0.6s var(--ease-out) 1.5s}
body .elementor.elementor.elementor .owner-step-pin{width: 30px}
body .elementor.elementor .owner-steps.is-visible .owner-step-pin{opacity: 1;transform: translateY(0);transition-delay: 2.2s}
body .elementor.elementor .owner-step-pin svg{height: 100%}
body .elementor.elementor.elementor .owner-step-pin svg{width: 100%}
body .elementor.elementor .owner-steps h3{margin: 0 0 14px;color: #fff;font-family: var(--serif);font-size: clamp(24px, 2.2vw, 32px);letter-spacing: -0.015em}
body .elementor.elementor .owner-steps p{margin: 0;color: rgba(255, 255, 255, 0.66)}
body .elementor.elementor.elementor .owner-steps p{max-width: 34ch}
body .elementor.elementor .owner-quotes-section{padding: clamp(72px, 8vw, 128px) 0;background: var(--paper)}
body .elementor.elementor .owner-quotes{display: grid;grid-template-columns: repeat(3, 1fr);gap: clamp(20px, 2vw, 30px)}
body .elementor.elementor .owner-quotes figure{position: relative;margin: 0;padding: clamp(38px, 3.4vw, 54px) clamp(30px, 2.8vw, 44px) clamp(32px, 3vw, 42px);background: var(--white);border-radius: var(--radius);box-shadow: 0 1px 0 var(--line), 0 18px 40px -32px rgba(23, 26, 24, 0.5);display: flex;flex-direction: column;overflow: hidden;transition: transform 0.5s var(--ease-out), box-shadow 0.5s var(--ease-out)}
body .elementor.elementor .owner-quotes figure::before{content: "";position: absolute;top: 0;left: 0;height: 3px;background: var(--turquoise-deep);transform: scaleX(0.18);transform-origin: left;transition: transform 0.7s var(--ease-out)}
body .elementor.elementor.elementor .owner-quotes figure::before{width: 100%}
body .elementor.elementor .owner-quotes figure:hover{transform: translateY(-6px);box-shadow: 0 1px 0 var(--line), 0 34px 60px -34px rgba(23, 26, 24, 0.55)}
body .elementor.elementor .owner-quotes figure:hover::before{transform: scaleX(1)}
body .elementor.elementor .owner-quote-mark{font-family: var(--serif);font-size: 96px;line-height: 0.55;color: var(--turquoise);opacity: 0.32;margin-bottom: 18px}
body .elementor.elementor .owner-quotes blockquote{margin: 0 0 34px;flex: 1;font-family: var(--serif);font-size: clamp(23px, 1.9vw, 29px);line-height: 1.32;letter-spacing: -0.015em;color: var(--ink)}
body .elementor.elementor .owner-quotes figcaption{display: flex;align-items: center;gap: 16px;padding-top: 24px;border-top: 1px solid var(--line)}
body .elementor.elementor .owner-quote-avatar{height: 46px;flex: none;display: grid;place-items: center;border-radius: 50%;background: var(--turquoise-deep);color: #fff;font-size: 13px;font-weight: 600;letter-spacing: 0.08em}
body .elementor.elementor.elementor .owner-quote-avatar{width: 46px}
body .elementor.elementor .owner-quote-id strong{display: block;font-size: 15px;font-weight: 600}
body .elementor.elementor .owner-quote-id > span, body .elementor.elementor .owner-quote-id > :where(.elementor-widget.cdp-w) > span{display: block;margin-top: 5px;color: var(--muted);font-size: 11px;letter-spacing: 0.13em;text-transform: uppercase}
body .elementor.elementor .owner-transparency{display: grid;grid-template-columns: 1fr 1fr;gap: clamp(36px, 5vw, 80px);align-items: center;padding: clamp(46px, 5vw, 76px);background: #102522;border: 0;border-radius: var(--radius);color: #fff}
body .elementor.elementor .owner-transparency .eyebrow{color: var(--turquoise)}
body .elementor.elementor .owner-transparency h2{color: #fff}
body .elementor.elementor .owner-transparency .lead{color: rgba(255, 255, 255, 0.66)}
body .elementor.elementor .owner-checklist{list-style: none;margin: 0;padding: 0;display: grid;gap: 2px}
body .elementor.elementor .owner-checklist li{display: flex;align-items: center;gap: 16px;padding: 17px 0;border-bottom: 1px solid rgba(255, 255, 255, 0.16);font-weight: 500;color: #fff}
body .elementor.elementor .owner-checklist li:last-child{border-bottom: 0}
body .elementor.elementor .owner-checklist svg{height: 20px;flex: none;color: var(--turquoise)}
body .elementor.elementor.elementor .owner-checklist svg{width: 20px}
body .elementor.elementor .commitments-section{background: #102522;color: #fff;padding: clamp(80px, 9vw, 140px) 0}
body .elementor.elementor .commitments-layout{display: grid;grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr);gap: clamp(48px, 6vw, 110px);align-items: start}
body .elementor.elementor .commitments-aside{position: sticky;top: 130px}
body .elementor.elementor .commitments-aside .eyebrow{color: var(--turquoise)}
body .elementor.elementor .commitments-aside h2{margin: 18px 0 22px;color: #fff}
body .elementor.elementor .commitments-aside > p, body .elementor.elementor .commitments-aside > :where(.elementor-widget.cdp-w) > p{margin: 0;color: rgba(255, 255, 255, 0.62)}
body .elementor.elementor.elementor .commitments-aside > p, body .elementor.elementor.elementor .commitments-aside > :where(.elementor-widget.cdp-w) > p{max-width: 38ch}
body .elementor.elementor .commitments{list-style: none;margin: 0;padding: 0;border-top: 1px solid rgba(255, 255, 255, 0.16)}
body .elementor.elementor .commitments li{position: relative;display: grid;grid-template-columns: clamp(58px, 5.2vw, 74px) minmax(0, 1fr);gap: clamp(22px, 3vw, 44px);align-items: start;padding: clamp(34px, 3.4vw, 52px) 0;border-bottom: 1px solid rgba(255, 255, 255, 0.16);transition: padding-left 0.5s var(--ease-out)}
body .elementor.elementor .commitments li::before{content: "";position: absolute;left: 0;bottom: -1px;height: 1px;background: var(--turquoise);transition: width 0.6s var(--ease-out)}
body .elementor.elementor.elementor .commitments li::before{width: 0}
body .elementor.elementor.elementor .commitments li:hover::before{width: 100%}
body .elementor.elementor .commitments li:hover{padding-left: 14px}
body .elementor.elementor .commitment-icon{height: clamp(58px, 5.2vw, 74px);display: grid;place-items: center;border: 1px solid rgba(255, 255, 255, 0.22);border-radius: 50%;color: var(--turquoise);transition: border-color 0.5s var(--ease-out), background 0.5s var(--ease-out)}
body .elementor.elementor.elementor .commitment-icon{width: clamp(58px, 5.2vw, 74px)}
body .elementor.elementor .commitment-icon svg{height: 46%}
body .elementor.elementor.elementor .commitment-icon svg{width: 46%}
body .elementor.elementor .commitments li:hover .commitment-icon{border-color: var(--turquoise);background: rgba(88, 184, 178, 0.12)}
body .elementor.elementor .commitment-body h3{margin: 0 0 14px;color: #fff;font-size: clamp(24px, 2.2vw, 32px);letter-spacing: -0.01em}
body .elementor.elementor .commitment-body p{margin: 0;color: rgba(255, 255, 255, 0.62)}
body .elementor.elementor.elementor .commitment-body p{max-width: 52ch}
body .elementor.elementor .stats-invert{position: relative;overflow: hidden;margin-top: clamp(48px, 5vw, 78px);display: grid;grid-template-columns: repeat(3, 1fr);background: var(--turquoise-deep);border-radius: var(--radius);padding: clamp(38px, 4vw, 64px) clamp(30px, 4vw, 66px);color: #fff}
body .elementor.elementor .stats-invert::after{content: "";position: absolute;inset: 0;background: radial-gradient(120% 140% at 12% 0%, rgba(255, 255, 255, 0.18), transparent 58%);opacity: 0;transition: opacity 1.4s var(--ease-out);pointer-events: none}
body .elementor.elementor .stats-invert.is-visible::after{opacity: 1}
body .elementor.elementor .stats-invert .stat{position: relative;z-index: 1;padding: 6px clamp(18px, 2.4vw, 40px);border-left: 1px solid rgba(255, 255, 255, 0.16);opacity: 0;transform: translateY(18px)}
body .elementor.elementor .stats-invert .stat:first-child{border-left: 0;padding-left: 0}
body .elementor.elementor .stats-invert.is-visible .stat{animation: stat-rise 0.9s var(--ease-out) forwards}
body .elementor.elementor .stats-invert.is-visible .stat:nth-child(2){animation-delay: 0.14s}
body .elementor.elementor .stats-invert.is-visible .stat:nth-child(3){animation-delay: 0.28s}
body .elementor.elementor .stats-invert .stat strong{display: block;font-family: var(--serif);font-size: clamp(52px, 6vw, 88px);line-height: 0.95;letter-spacing: -0.035em;color: #fff}
body .elementor.elementor .stats-invert .stat span{display: block;margin-top: 16px;color: rgba(255, 255, 255, 0.62);font-size: 11px;letter-spacing: 0.16em;text-transform: uppercase}
@keyframes stat-rise{
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
body .elementor.elementor .stats-invert .stat strong{white-space: nowrap}
body .elementor.elementor .stats-invert--four{grid-template-columns: repeat(4, 1fr)}
body .elementor.elementor .stats-invert--four.is-visible .stat:nth-child(4){animation-delay: 0.42s}
body .elementor.elementor .cabin-pricing{margin-top: clamp(48px, 5vw, 80px);display: grid;grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);gap: clamp(40px, 5vw, 90px);align-items: start;padding: clamp(40px, 4.4vw, 68px);background: #102522;border-radius: var(--radius);color: #fff}
body .elementor.elementor .cabin-pricing-intro .eyebrow{color: var(--turquoise)}
body .elementor.elementor .cabin-pricing-intro h3{margin: 18px 0 18px;color: #fff;font-size: clamp(26px, 2.6vw, 38px);letter-spacing: -0.02em}
body .elementor.elementor .cabin-pricing-intro p{margin: 0;color: rgba(255, 255, 255, 0.62)}
body .elementor.elementor.elementor .cabin-pricing-intro p{max-width: 34ch}
body .elementor.elementor .cabin-pricing-list{list-style: none;margin: 0;padding: 0;border-top: 1px solid rgba(255, 255, 255, 0.16)}
body .elementor.elementor .cabin-pricing-list li{display: flex;align-items: baseline;justify-content: space-between;gap: 24px;padding: 20px 0;border-bottom: 1px solid rgba(255, 255, 255, 0.16);transition: padding-left 0.45s var(--ease-out)}
body .elementor.elementor .cabin-pricing-list li:hover{padding-left: 12px}
body .elementor.elementor .cabin-pricing-guests{font-size: 11px;letter-spacing: 0.16em;text-transform: uppercase;color: rgba(255, 255, 255, 0.7)}
body .elementor.elementor .cabin-pricing-rate{font-family: var(--serif);font-size: clamp(26px, 2.4vw, 34px);line-height: 1;letter-spacing: -0.02em;color: var(--turquoise);white-space: nowrap}
body .elementor.elementor .cabin-pricing-rate small{font-family: var(--sans);font-size: 11px;letter-spacing: 0.14em;text-transform: uppercase;color: rgba(255, 255, 255, 0.5);margin-left: 8px}
body .elementor.elementor .experience-mosaic--six{grid-template-columns: repeat(12, 1fr);gap: clamp(12px, 1.2vw, 20px);margin-top: clamp(48px, 5vw, 78px);align-items: stretch}
body .elementor.elementor .experience-mosaic--six .experience-tile{transform: none;height: auto;overflow: hidden;box-shadow: none;transition: none}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(1){grid-column: span 7;aspect-ratio: 7 / 5}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(2){grid-column: span 5;aspect-ratio: 5 / 5}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(3){grid-column: span 4;aspect-ratio: 4 / 4.4}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(4){grid-column: span 4;aspect-ratio: 4 / 4.4}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(5){grid-column: span 4;aspect-ratio: 4 / 4.4}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(6){grid-column: span 12;aspect-ratio: 12 / 3.4}
body .elementor.elementor .experience-mosaic--six .experience-tile img{transition: transform 1.1s var(--ease-out)}
body .elementor.elementor .experience-mosaic--six .experience-tile:hover img{transform: scale(1.05)}
body .elementor.elementor .experience-mosaic--six .experience-tile::after{background: linear-gradient(to top, rgba(16, 37, 34, 0.72) 0%, rgba(16, 37, 34, 0.18) 38%, transparent 68%)}
body .elementor.elementor .experience-mosaic--six .experience-tile span{right: auto;left: clamp(20px, 1.8vw, 32px);bottom: clamp(18px, 1.6vw, 28px);font-size: clamp(24px, 1.9vw, 32px);display: flex;align-items: center;gap: 14px}
body .elementor.elementor .experience-mosaic--six .experience-tile span::before{content: "";height: 1px;background: var(--turquoise);transform: scaleX(0);transform-origin: left;transition: transform 0.6s var(--ease-out)}
body .elementor.elementor.elementor .experience-mosaic--six .experience-tile span::before{width: 26px}
body .elementor.elementor .experience-mosaic--six .experience-tile:hover span::before{transform: scaleX(1)}
body .elementor.elementor .experience-strip{display: flex;gap: clamp(8px, 0.8vw, 14px);margin-top: clamp(48px, 5vw, 78px);height: clamp(420px, 42vw, 620px)}
body .elementor.elementor .experience-strip .experience-tile{position: relative;flex: 1 1 0;height: 100%;overflow: hidden;transform: none;transition: flex-grow 0.7s var(--ease-out)}
body .elementor.elementor.elementor .experience-strip .experience-tile{min-width: 0}
body .elementor.elementor .experience-strip .experience-tile:first-child{flex-grow: 2.4}
body .elementor.elementor .experience-strip:hover .experience-tile:first-child{flex-grow: 1}
body .elementor.elementor .experience-strip .experience-tile:hover{flex-grow: 2.4}
body .elementor.elementor .experience-strip .experience-tile img{height: 100%;object-fit: cover;transition: transform 1.2s var(--ease-out)}
body .elementor.elementor.elementor .experience-strip .experience-tile img{width: 100%}
body .elementor.elementor .experience-strip .experience-tile:hover img{transform: scale(1.04)}
body .elementor.elementor .experience-strip .experience-tile::after{content: "";position: absolute;inset: 0;background: linear-gradient(to top, rgba(16, 37, 34, 0.78) 0%, rgba(16, 37, 34, 0.2) 42%, transparent 72%)}
body .elementor.elementor .experience-strip .experience-tile span{position: absolute;left: clamp(16px, 1.3vw, 24px);right: clamp(12px, 1vw, 18px);bottom: clamp(18px, 1.6vw, 28px);z-index: 2;color: #fff;font-family: var(--serif);font-size: clamp(17px, 1.15vw, 21px);line-height: 1.12;letter-spacing: -0.01em;text-wrap: balance;overflow-wrap: anywhere;hyphens: auto;transition: font-size 0.7s var(--ease-out)}
body .elementor.elementor .experience-strip .experience-tile:first-child span, body .elementor.elementor .experience-strip .experience-tile:hover span{font-size: clamp(24px, 2vw, 34px)}
body .elementor.elementor .experience-strip:hover .experience-tile:first-child span{font-size: clamp(17px, 1.15vw, 21px)}
body .elementor.elementor .experience-strip:hover .experience-tile:first-child:hover span{font-size: clamp(24px, 2vw, 34px)}
body .elementor.elementor .experience-strip .experience-tile span::before{content: "";display: block;height: 1px;margin-bottom: 14px;background: var(--turquoise);transform: scaleX(0.35);transform-origin: left;transition: transform 0.6s var(--ease-out)}
body .elementor.elementor.elementor .experience-strip .experience-tile span::before{width: 28px}
body .elementor.elementor .experience-strip .experience-tile:hover span::before, body .elementor.elementor .experience-strip .experience-tile:first-child span::before{transform: scaleX(1)}
body .elementor.elementor .experience-strip:hover .experience-tile:first-child span::before{transform: scaleX(0.35)}
body .elementor.elementor .experience-strip:hover .experience-tile:first-child:hover span::before{transform: scaleX(1)}
body .elementor.elementor .villas-feature-section{background: var(--turquoise-deep);color: #fff}
body .elementor.elementor .villas-feature-section .eyebrow{color: rgba(255, 255, 255, 0.72)}
body .elementor.elementor .villas-feature-section .eyebrow::after{background: rgba(255, 255, 255, 0.45)}
body .elementor.elementor .villas-feature-section h2{color: #fff}
body .elementor.elementor .villas-feature-section .lead{color: rgba(255, 255, 255, 0.78)}
body .elementor.elementor .villas-feature-section .button-outline{border-color: rgba(255, 255, 255, 0.55);color: #fff}
body .elementor.elementor .villas-feature-section .button-outline:hover{background: #fff;border-color: #fff;color: var(--turquoise-deep)}
body .elementor.elementor .villas-feature-section .frame{background: #fff;padding: clamp(10px, 1vw, 16px);box-shadow: 0 30px 70px -44px rgba(0, 0, 0, 0.7)}
body .elementor.elementor .villas-feature-section .frame img{display: block}
body .elementor.elementor .villa-gallery{margin-top: clamp(34px, 4vw, 56px)}
body .elementor.elementor .villa-gallery-main{height: clamp(400px, 56vw, 760px)}
body .elementor.elementor .villa-gallery-main img{height: 100%;object-fit: cover;transition: opacity 0.3s var(--ease-out)}
body .elementor.elementor.elementor .villa-gallery-main img{width: 100%}
body .elementor.elementor .villa-gallery-thumbs{display: grid;grid-auto-flow: column;grid-auto-columns: minmax(0, 1fr);gap: clamp(10px, 1vw, 18px);margin-top: clamp(12px, 1.2vw, 18px)}
body .elementor.elementor .villa-thumb{position: relative;padding: 0;border: 0;background: none;cursor: pointer;height: clamp(76px, 9vw, 132px);overflow: hidden;opacity: 0.62;transition: opacity 0.4s var(--ease-out)}
body .elementor.elementor .villa-thumb img{height: 100%;object-fit: cover;display: block}
body .elementor.elementor.elementor .villa-thumb img{width: 100%}
body .elementor.elementor .villa-thumb::after{content: "";position: absolute;inset: 0;border: 2px solid transparent;transition: border-color 0.4s var(--ease-out)}
body .elementor.elementor .villa-thumb:hover{opacity: 0.85}
body .elementor.elementor .villa-thumb.is-active{opacity: 1}
body .elementor.elementor .villa-thumb.is-active::after{border-color: var(--turquoise-deep)}
body .elementor.elementor .villa-thumb:focus-visible{outline: 2px solid var(--turquoise-deep);outline-offset: 3px}
body .elementor.elementor .quote-section-invert{background: var(--turquoise-deep);color: #fff}
body .elementor.elementor .quote-section-invert .eyebrow{color: rgba(255, 255, 255, 0.72)}
body .elementor.elementor .quote-section-invert .eyebrow::after{background: rgba(255, 255, 255, 0.45)}
body .elementor.elementor .quote-section-invert .quote-block blockquote, body .elementor.elementor .quote-section-invert .quote-block p, body .elementor.elementor .quote-section-invert .quote-block h2{color: #fff}
body .elementor.elementor .quote-section-invert .quote-block::before{color: rgba(255, 255, 255, 0.28)}
body .elementor.elementor .quote-section-invert .quote-block cite, body .elementor.elementor .quote-section-invert .quote-block .muted, body .elementor.elementor .quote-section-invert .quote-block figcaption{color: rgba(255, 255, 255, 0.72)}
body .elementor.elementor .service-showcase{display: grid;grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);gap: clamp(40px, 5vw, 96px);align-items: start}
body .elementor.elementor .service-showcase-nav{position: sticky;top: 130px}
body .elementor.elementor .service-showcase-nav h2{margin: 18px 0 20px}
body .elementor.elementor .service-showcase-nav .lead{margin: 0 0 clamp(28px, 3vw, 44px)}
body .elementor.elementor.elementor .service-showcase-nav .lead{max-width: 42ch}
body .elementor.elementor .service-nav{display: grid;border-top: 1px solid var(--line)}
body .elementor.elementor .service-nav-item{display: grid;grid-template-columns: 38px minmax(0, 1fr) 24px;align-items: center;gap: 14px;padding: 18px 0;border: 0;border-bottom: 1px solid var(--line);background: none;cursor: pointer;text-align: left;color: var(--muted);transition: color 0.4s var(--ease-out), padding-left 0.4s var(--ease-out)}
body .elementor.elementor.elementor .service-nav-item{width: 100%}
body .elementor.elementor .service-nav-icon{height: 38px;display: grid;place-items: center;border: 1px solid var(--line);border-radius: 50%;color: var(--turquoise-deep);transition: border-color 0.4s var(--ease-out), color 0.4s var(--ease-out)}
body .elementor.elementor.elementor .service-nav-icon{width: 38px}
body .elementor.elementor .service-nav-icon svg{height: 20px}
body .elementor.elementor.elementor .service-nav-icon svg{width: 20px}
body .elementor.elementor .service-nav-item .label{font-family: var(--serif);font-size: clamp(20px, 1.6vw, 26px);letter-spacing: -0.01em;color: var(--ink)}
body .elementor.elementor .service-nav-item .mark{opacity: 0;color: var(--turquoise-deep);transition: opacity 0.4s var(--ease-out), transform 0.4s var(--ease-out);transform: translateX(-6px)}
body .elementor.elementor .service-nav-item:hover, body .elementor.elementor .service-nav-item.is-active{padding-left: 18px;padding-right: 18px;background: var(--turquoise-deep);border-bottom-color: var(--turquoise-deep)}
body .elementor.elementor .service-nav-item:hover .label, body .elementor.elementor .service-nav-item.is-active .label, body .elementor.elementor .service-nav-item:hover .mark, body .elementor.elementor .service-nav-item.is-active .mark{color: #fff}
body .elementor.elementor .service-nav-item:hover .service-nav-icon, body .elementor.elementor .service-nav-item.is-active .service-nav-icon{color: #fff;border-color: rgba(255, 255, 255, 0.55)}
body .elementor.elementor .service-nav-item.is-active .mark, body .elementor.elementor .service-nav-item:hover .mark{opacity: 1;transform: translateX(0)}
body .elementor.elementor .service-showcase-panels{position: relative}
body .elementor.elementor .service-panel{display: none}
body .elementor.elementor .service-panel.is-active{display: block;animation: service-panel-in 0.6s var(--ease-out)}
@keyframes service-panel-in{
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
body .elementor.elementor .service-panel-image{height: clamp(320px, 40vw, 560px)}
body .elementor.elementor .service-panel-image img{height: 100%;object-fit: cover}
body .elementor.elementor.elementor .service-panel-image img{width: 100%}
body .elementor.elementor .service-panel-copy{padding-top: clamp(26px, 2.6vw, 38px)}
body .elementor.elementor .service-panel-copy .index{font-size: 11px;letter-spacing: 0.18em;color: var(--turquoise-deep)}
body .elementor.elementor .service-panel-copy h3{margin: 14px 0 16px;font-size: clamp(26px, 2.4vw, 36px);letter-spacing: -0.02em}
body .elementor.elementor .service-panel-copy p{margin: 0 0 24px;color: var(--muted)}
body .elementor.elementor.elementor .service-panel-copy p{max-width: 56ch}
body .elementor.elementor .experience-strip .experience-tile--left img{object-position: 22% center;transition: transform 1.2s var(--ease-out), object-position 0.7s var(--ease-out)}
body .elementor.elementor .experience-strip .experience-tile--left:hover img{object-position: center}

/* ============ adaptations responsive, regroupees ============ */

@media (max-width: 1180px){
body .elementor.elementor .owner-link{display: none}
body .elementor.elementor .main-nav{gap: 13px}
body .elementor.elementor .main-nav a{font-size: 11px}
}
@media (max-width: 1120px){
body .elementor.elementor .main-nav, body .elementor.elementor .nav-actions{display: none}
body .elementor.elementor .nav-shell{grid-template-columns: 1fr auto;min-height: 68px;padding-left: 22px}
body .elementor.elementor .menu-button{position: relative;z-index: 3;display: inline-grid;grid-column: 2;grid-row: 1}
body .elementor.elementor .brand{border-right: 0}
body .elementor.elementor .hero-grid, body .elementor.elementor .inner-hero-grid, body .elementor.elementor .destination-panel, body .elementor.elementor .detail-content, body .elementor.elementor .booking-layout, body .elementor.elementor .contact-grid{grid-template-columns: 1fr}
body .elementor.elementor .hero-grid{align-items: start;min-height: auto}
body .elementor.elementor .hero-copy{padding-bottom: 0}
body .elementor.elementor .hero-image-wrap{height: 62vw;min-height: 480px}
body .elementor.elementor .hero-coordinates{display: none}
body .elementor.elementor .feature-copy{grid-column: 1 / span 5}
body .elementor.elementor .feature-image-large{grid-column: 6 / -1}
body .elementor.elementor .feature-image-small{grid-column: 6 / span 4;margin: 0 0 -42px 18px}
body .elementor.elementor .booking-card{position: static}
body .elementor.elementor .footer-grid{grid-template-columns: repeat(2, 1fr)}
}
@media (max-width: 980px){
body .elementor.elementor .owner-management-intro{grid-template-columns: 1fr;align-items: start;gap: 36px}
body .elementor.elementor.elementor .owner-management-intro .lead{max-width: 680px}
body .elementor.elementor .owner-management-grid{grid-template-columns: 1fr}
body .elementor.elementor .owner-management-main{min-height: min(92vw, 780px)}
body .elementor.elementor .owner-management-panel{grid-template-rows: auto min(58vw, 420px)}
body .elementor.elementor .catamaran-offers-intro{grid-template-columns: 1fr;align-items: start;gap: 36px}
body .elementor.elementor.elementor .catamaran-offers-intro .lead{max-width: 680px}
body .elementor.elementor .catamaran-offer-grid{grid-template-columns: 1fr;grid-template-rows: none}
body .elementor.elementor .catamaran-offer-card--day, body .elementor.elementor .catamaran-offer-card--cabins, body .elementor.elementor .catamaran-offer-card--bespoke{grid-column: 1;grid-row: auto;min-height: min(78vw, 690px)}
body .elementor.elementor .catamaran-offer-card:not(.catamaran-offer-card--day) .catamaran-offer-copy h3{font-size: clamp(46px, 7vw, 72px)}
body .elementor.elementor .catamaran-journey{min-height: 980px}
body .elementor.elementor .catamaran-journey-route{grid-template-columns: repeat(2, 1fr)}
body .elementor.elementor .catamaran-journey-stop{min-height: 190px}
body .elementor.elementor .catamaran-journey-stop:nth-child(3), body .elementor.elementor .catamaran-journey-stop:nth-child(4){border-top: 1px solid rgba(255, 255, 255, 0.18)}
body .elementor.elementor .catamaran-journey-stop:nth-child(3){border-left: 0}
}
@media (max-width: 780px){
:root{--container: min(90vw, 680px)}
body .elementor.elementor h1, body .elementor.elementor .display-xl{font-size: clamp(58px, 17vw, 94px)}
body .elementor.elementor h2, body .elementor.elementor .display-lg{font-size: clamp(48px, 14vw, 78px)}
body .elementor.elementor .section{padding: 82px 0}
body .elementor.elementor .site-header{padding-top: 14px}
body .elementor.elementor.elementor .nav-wrap{width: 94vw}
body .elementor.elementor .cinematic-hero, body .elementor.elementor .cinematic-hero-compact{min-height: 88svh;padding: 148px 0 56px}
body .elementor.elementor .cinematic-hero::after{background:
      linear-gradient(90deg, rgba(8, 26, 25, 0.7), rgba(8, 26, 25, 0.18)),
      linear-gradient(0deg, rgba(5, 19, 18, 0.74) 0%, rgba(5, 19, 18, 0.22) 70%)}
body .elementor.elementor .cinematic-hero-content h1{font-size: clamp(58px, 16.5vw, 92px);line-height: 0.88}
body .elementor.elementor.elementor .cinematic-hero-content h1{max-width: 94%}
body .elementor.elementor .cinematic-hero-content > p.body-xl, body .elementor.elementor .cinematic-hero-content > :where(.elementor-widget.cdp-w) > p.body-xl{margin-top: 24px;font-size: 17px}
body .elementor.elementor.elementor .cinematic-hero-content > p.body-xl, body .elementor.elementor.elementor .cinematic-hero-content > :where(.elementor-widget.cdp-w) > p.body-xl{max-width: 92%}
body .elementor.elementor .cinematic-hero-content .eyebrow{margin-bottom: 22px}
body .elementor.elementor .cinematic-coordinates{display: none}
body.mgc-page-services .elementor.elementor .cinematic-hero::before{background-position: 60% center}
body.mgc-page-contact .elementor.elementor .cinematic-hero::before, body.mgc-page-a-propos .elementor.elementor .cinematic-hero::before{background-position: 58% center}
body .elementor.elementor .hero{min-height: auto;padding-top: 130px}
body .elementor.elementor .hero-title{margin-bottom: 20px}
body .elementor.elementor .hero-image-wrap{min-height: 430px;height: 76vh}
body .elementor.elementor .hero-image-note{right: 8px;bottom: -22px;left: 8px;padding-left: 20px}
body .elementor.elementor.elementor .hero-image-note{width: auto}
body .elementor.elementor .hero-index{display: none}
body .elementor.elementor .inner-hero{padding-top: 145px}
body .elementor.elementor .inner-hero-grid{gap: 48px}
body .elementor.elementor .inner-hero-image{height: 115vw;max-height: 600px}
body .elementor.elementor .intro-split, body .elementor.elementor .field-grid, body .elementor.elementor .accordion-content{grid-template-columns: 1fr}
body .elementor.elementor .stats-grid, body .elementor.elementor .facts-grid, body .elementor.elementor .timeline{grid-template-columns: 1fr}
body .elementor.elementor .stat + .stat, body .elementor.elementor .fact + .fact{border-top: 1px solid var(--line);border-left: 0}
body .elementor.elementor .atlas-grid{grid-template-columns: 1fr;grid-template-rows: none;min-height: 0}
body .elementor.elementor .atlas-item, body .elementor.elementor .atlas-item:first-child{grid-row: auto;min-height: 112vw;max-height: 620px}
body .elementor.elementor .feature-grid{grid-template-columns: 1fr}
body .elementor.elementor .feature-copy, body .elementor.elementor .feature-image-large, body .elementor.elementor .feature-image-small{grid-column: 1;grid-row: auto}
body .elementor.elementor .feature-image-large{height: 115vw;max-height: 600px}
body .elementor.elementor .feature-image-small{height: 78vw;max-height: 410px;margin-top: -32vw;margin-bottom: 0;margin-left: auto;transform: translateX(0)}
body .elementor.elementor.elementor .feature-image-small{width: 65%}
body .elementor.elementor .catamaran-offers-intro h2 br{display: none}
body .elementor.elementor .catamaran-offer-card--day, body .elementor.elementor .catamaran-offer-card--cabins, body .elementor.elementor .catamaran-offer-card--bespoke{min-height: 128vw;max-height: 700px}
body .elementor.elementor .catamaran-offer-number{top: 18px;left: 18px}
body .elementor.elementor .catamaran-offer-copy{padding: 26px 22px}
body .elementor.elementor .catamaran-offer-copy h3, body .elementor.elementor .catamaran-offer-card:not(.catamaran-offer-card--day) .catamaran-offer-copy h3{font-size: clamp(43px, 13vw, 66px)}
body .elementor.elementor .catamaran-offer-copy > p:not(.eyebrow), body .elementor.elementor .catamaran-offer-copy > :where(.elementor-widget.cdp-w) > p:not(.eyebrow){font-size: 13px}
body .elementor.elementor .catamaran-offer-price{margin-top: 20px;padding-top: 16px}
body .elementor.elementor .catamaran-journey{min-height: 0;padding-top: 92vw}
body .elementor.elementor .catamaran-journey-image{height: 92vw;object-position: 62% center}
body .elementor.elementor .catamaran-journey-heading{position: absolute;inset: 0 0 auto;padding: 34px 24px}
body .elementor.elementor .catamaran-journey-heading h2{font-size: clamp(48px, 14vw, 72px)}
body .elementor.elementor .catamaran-journey-route{position: relative;grid-template-columns: 1fr;background: #102522;backdrop-filter: none}
body .elementor.elementor .catamaran-journey-stop{min-height: 0;padding: 26px 24px 30px}
body .elementor.elementor .catamaran-journey-stop + .catamaran-journey-stop, body .elementor.elementor .catamaran-journey-stop:nth-child(3), body .elementor.elementor .catamaran-journey-stop:nth-child(4){border-top: 1px solid rgba(255, 255, 255, 0.16);border-left: 0}
body .elementor.elementor .service-row{grid-template-columns: 40px 1fr 30px;gap: 12px}
body .elementor.elementor .service-row p{display: none}
body .elementor.elementor .villa-grid{grid-template-columns: 1fr}
body .elementor.elementor .villa-card, body .elementor.elementor .villa-card:nth-child(3n + 1), body .elementor.elementor .villa-card:nth-child(3n + 2), body .elementor.elementor .villa-card:nth-child(3n){grid-column: 1;margin-top: 0}
body .elementor.elementor .villa-card-image, body .elementor.elementor .villa-card:nth-child(3n + 2) .villa-card-image{height: 112vw;max-height: 560px}
body .elementor.elementor .villa-card-meta{grid-template-columns: auto 1fr}
body .elementor.elementor .villa-card-meta .link-arrow{grid-column: 2}
body .elementor.elementor .experience-mosaic{grid-template-columns: 1fr 1fr}
body .elementor.elementor .experience-link-grid{grid-template-columns: 1fr}
body .elementor.elementor .experience-link-card{min-height: 220px;padding: 28px 22px}
body .elementor.elementor .experience-tile{height: 80vw;max-height: 480px}
body .elementor.elementor .experience-tile:nth-child(2), body .elementor.elementor .experience-tile:nth-child(4){transform: translateY(20px)}
body .elementor.elementor .destination-panel{min-height: auto}
body .elementor.elementor .destination-copy{padding: 70px 6vw}
body .elementor.elementor .destination-image{min-height: 110vw}
body .elementor.elementor .cta-band-grid{grid-template-columns: 1fr;align-items: start}
body .elementor.elementor .detail-title-row{display: block}
body .elementor.elementor .detail-gallery{grid-template-columns: 1fr}
body .elementor.elementor .detail-gallery-main{height: 120vw}
body .elementor.elementor .detail-gallery-side{height: auto;grid-template-columns: 1fr 1fr;grid-template-rows: none}
body .elementor.elementor .detail-gallery-side img{height: 65vw}
body .elementor.elementor .detail-gallery-more{grid-template-columns: 1fr}
body .elementor.elementor .detail-gallery-more figure{height: 92vw;max-height: 560px}
body .elementor.elementor .owner-management-intro h2 br{display: none}
body .elementor.elementor .owner-management-main{min-height: 125vw;max-height: 650px}
body .elementor.elementor .owner-management-seal{top: 18px;right: 18px}
body .elementor.elementor.elementor .owner-management-seal{width: 92px}
body .elementor.elementor .owner-management-seal strong{font-size: 30px}
body .elementor.elementor .owner-management-services article{grid-template-columns: 28px minmax(0, 1fr);gap: 12px;padding: 24px 20px}
body .elementor.elementor .owner-management-services h3{font-size: clamp(31px, 10vw, 44px)}
body .elementor.elementor .owner-management-services p{font-size: 11px}
body .elementor.elementor .owner-management-panel{grid-template-rows: auto minmax(300px, 100vw)}
body .elementor.elementor .owner-management-secondary{min-height: 100vw;max-height: 460px}
body .elementor.elementor .amenity-list, body .elementor.elementor .choice-grid{grid-template-columns: 1fr}
body .elementor.elementor .accordion summary{grid-template-columns: 38px 1fr auto;gap: 10px}
body .elementor.elementor .accordion-content{padding-left: 48px}
body .elementor.elementor .steps{overflow-x: auto}
body .elementor.elementor.elementor .step{min-width: 116px}
body .elementor.elementor .booking-form-shell, body .elementor.elementor .booking-summary{padding: 24px}
body .elementor.elementor .contact-grid{gap: 60px}
body .elementor.elementor .contact-details a{font-size: 25px}
body .elementor.elementor .footer-grid{grid-template-columns: 1fr}
body .elementor.elementor .footer-bottom{align-items: flex-start;flex-direction: column}
}
@media (max-width: 480px){
body .elementor.elementor.elementor .brand img{width: 74px}
body .elementor.elementor .cinematic-hero-content .hero-actions{align-items: flex-start}
body .elementor.elementor.elementor .cinematic-hero-content .hero-actions .button{width: auto}
body .elementor.elementor .hero-actions{align-items: stretch;flex-direction: column}
body .elementor.elementor.elementor .hero-actions .button{width: 100%}
body .elementor.elementor .experience-mosaic{grid-template-columns: 1fr}
body .elementor.elementor .experience-tile:nth-child(2), body .elementor.elementor .experience-tile:nth-child(4){transform: none}
body .elementor.elementor .detail-gallery-side{grid-template-columns: 1fr}
body .elementor.elementor .detail-gallery-side img{height: 100vw}
body .elementor.elementor .whatsapp-float{right: 14px;bottom: 14px}
}
@media (prefers-reduced-motion: reduce){
*, *::before, *::after{animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;scroll-behavior: auto !important;transition-duration: 0.01ms !important}
body .elementor.elementor .reveal{opacity: 1;transform: none;filter: none}
}
@media (max-width: 960px){
body .elementor.elementor .owner-why-layout{grid-template-columns: 1fr}
body .elementor.elementor .owner-why-intro{position: static}
}
@media (max-width: 620px){
body .elementor.elementor .owner-why li{grid-template-columns: 1fr;gap: 16px}
}
@media (prefers-reduced-motion: reduce){
body .elementor.elementor .owner-steps li::after{transition: none;animation: none}
body .elementor.elementor.elementor .owner-steps li::after{width: calc(100% + var(--step-gap))}
body .elementor.elementor .owner-step-number::before, body .elementor.elementor .owner-step-number::after, body .elementor.elementor .owner-step-pin{opacity: 1;transform: none;transition: none}
}
@media (max-width: 900px){
body .elementor.elementor .owner-steps{grid-template-columns: 1fr;gap: 0;padding-left: 42px}
body .elementor.elementor .owner-steps li{padding: 0 0 40px}
body .elementor.elementor .owner-steps li::before, body .elementor.elementor .owner-steps li::after{top: 6px;left: -33px;height: 100%}
body .elementor.elementor.elementor .owner-steps li::before, body .elementor.elementor.elementor .owner-steps li::after{width: 1px}
body .elementor.elementor .owner-steps li::after{height: 0;transition: height 0.7s var(--ease-out)}
body .elementor.elementor .owner-steps.is-visible li::after{height: 100%;background-size: 100% 90px;background-image: linear-gradient(180deg, transparent 0%, rgba(255, 255, 255, 0.85) 45%, rgba(255, 255, 255, 0.85) 55%, transparent 100%);animation-name: route-pulse-v}
body .elementor.elementor.elementor .owner-steps.is-visible li::after{width: 1px}
@keyframes route-pulse-v {
    0% { background-position: 0 -90px; }
    100% { background-position: 0 calc(100% + 90px); }
  }
body .elementor.elementor .owner-step-number::before{top: -3px;left: -42px}
body .elementor.elementor .owner-step-number::after{top: 3px;left: -36px}
body .elementor.elementor .owner-step-pin{top: auto;bottom: 6px;left: -48px;right: auto}
}
@media (max-width: 1080px){
body .elementor.elementor .owner-included, body .elementor.elementor .owner-quotes{grid-template-columns: repeat(2, 1fr)}
}
@media (max-width: 760px){
body .elementor.elementor .owner-section-head, body .elementor.elementor .owner-included, body .elementor.elementor .owner-quotes, body .elementor.elementor .owner-transparency{grid-template-columns: 1fr}
}
@media (max-width: 960px){
body .elementor.elementor .commitments-layout{grid-template-columns: 1fr}
body .elementor.elementor .commitments-aside{position: static}
}
@media (max-width: 620px){
body .elementor.elementor .commitments li{grid-template-columns: 1fr;gap: 14px}
}
@media (prefers-reduced-motion: reduce){
body .elementor.elementor .stats-invert .stat{opacity: 1;transform: none;animation: none}
}
@media (max-width: 900px){
body .elementor.elementor .stats-invert{padding: clamp(28px, 4vw, 44px) clamp(20px, 3vw, 36px)}
body .elementor.elementor .stats-invert .stat{padding: 4px clamp(10px, 1.6vw, 20px)}
body .elementor.elementor .stats-invert .stat strong{font-size: clamp(30px, 5.4vw, 52px)}
body .elementor.elementor .stats-invert .stat span{font-size: 9px;letter-spacing: 0.1em;margin-top: 10px}
}
@media (max-width: 860px){
body .elementor.elementor .cabin-pricing{grid-template-columns: 1fr}
}
@media (max-width: 900px){
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(1), body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(2){grid-column: span 12;aspect-ratio: 12 / 7}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(3), body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(4), body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(5){grid-column: span 6;aspect-ratio: 6 / 6.6}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(5){grid-column: span 12;aspect-ratio: 12 / 6}
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(6){aspect-ratio: 12 / 5}
}
@media (max-width: 620px){
body .elementor.elementor .experience-mosaic--six .experience-tile:nth-child(n){grid-column: span 12;aspect-ratio: 4 / 3.4}
}
@media (max-width: 900px){
body .elementor.elementor .experience-strip{flex-wrap: wrap;height: auto}
body .elementor.elementor .experience-strip .experience-tile, body .elementor.elementor .experience-strip .experience-tile:first-child{flex: 1 1 calc(50% - 10px);height: 60vw;max-height: 380px}
body .elementor.elementor .experience-strip .experience-tile span, body .elementor.elementor .experience-strip .experience-tile:first-child span, body .elementor.elementor .experience-strip:hover .experience-tile:first-child span{font-size: clamp(22px, 3.4vw, 30px)}
}
@media (max-width: 560px){
body .elementor.elementor .experience-strip .experience-tile, body .elementor.elementor .experience-strip .experience-tile:first-child{flex: 1 1 100%;height: 74vw;max-height: none}
}
@media (max-width: 700px){
body .elementor.elementor .villa-gallery-thumbs{grid-auto-flow: row;grid-template-columns: repeat(3, 1fr)}
body .elementor.elementor .villa-thumb{height: 22vw}
}
@media (max-width: 960px){
body .elementor.elementor .service-showcase{grid-template-columns: 1fr}
body .elementor.elementor .service-showcase-nav{position: static}
}
@media (prefers-reduced-motion: reduce){
body .elementor.elementor .service-panel.is-active{animation: none}
}