.elementor-kit-11{--e-global-color-primary:#76898D;--e-global-color-secondary:#231F20;--e-global-color-text:#C9C5C2;--e-global-color-accent:#B39E77;--e-global-color-luxpaper:#EDEFED;--e-global-color-luxdeep:#5C6E72;--e-global-color-luxmist:#C9D2D1;--e-global-color-luxwhite:#FFFFFF;--e-global-color-luxlift:#2B2728;--e-global-color-luxnight:#1A1718;--e-global-typography-primary-font-family:"Archivo";--e-global-typography-primary-font-size:84px;--e-global-typography-primary-font-weight:200;--e-global-typography-primary-line-height:1.04em;--e-global-typography-primary-letter-spacing:-1.6px;--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-secondary-font-size:44px;--e-global-typography-secondary-font-weight:300;--e-global-typography-secondary-line-height:1.14em;--e-global-typography-secondary-letter-spacing:-0.6px;--e-global-typography-text-font-family:"Archivo";--e-global-typography-text-font-size:17px;--e-global-typography-text-font-weight:300;--e-global-typography-text-line-height:1.78em;--e-global-typography-text-letter-spacing:0.1px;--e-global-typography-accent-font-family:"Archivo";--e-global-typography-accent-font-size:11px;--e-global-typography-accent-font-weight:500;--e-global-typography-accent-text-transform:uppercase;--e-global-typography-accent-line-height:1.6em;--e-global-typography-accent-letter-spacing:3.4px;--e-global-typography-luxlead-font-family:"Archivo";--e-global-typography-luxlead-font-size:23px;--e-global-typography-luxlead-font-weight:300;--e-global-typography-luxlead-font-style:italic;--e-global-typography-luxlead-line-height:1.55em;--e-global-typography-luxlead-letter-spacing:0px;--e-global-typography-luxtitle-font-family:"Archivo";--e-global-typography-luxtitle-font-size:27px;--e-global-typography-luxtitle-font-weight:300;--e-global-typography-luxtitle-line-height:1.38em;--e-global-typography-luxtitle-letter-spacing:-0.2px;--e-global-typography-luxmenu-font-family:"Archivo";--e-global-typography-luxmenu-font-size:60px;--e-global-typography-luxmenu-font-weight:200;--e-global-typography-luxmenu-line-height:1.08em;--e-global-typography-luxmenu-letter-spacing:-0.4px;background-color:#231F20;}.elementor-kit-11 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1240px;}.e-con{--container-max-width:1240px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title, .page-title{display:var(--page-title-display);}body.rtl .elementor-labels-inline .elementor-field-group > .elementor-field-label{padding-left:0px;}body:not(.rtl) .elementor-labels-inline .elementor-field-group > .elementor-field-label{padding-right:0px;}body .elementor-labels-above .elementor-field-group > .elementor-field-label{padding-bottom:0px;}body .woocommerce-Reviews .elementor-field-group > label{margin-bottom:0px;}.elementor-widget-text-editor p,
				.elementor-tab-content p,
				.the7-e-tab-content.the7-e-tab-text-content p,
				.elementor-widget-woocommerce-product-content p,
				.elementor-widget-theme-post-content > .elementor-widget-container >  p,
				#the7-body .elementor-widget-text-editor ul,
				#the7-body .elementor-tab-content ul,
				#the7-body .the7-e-tab-content.the7-e-tab-text-content ul,
				#the7-body .elementor-widget-woocommerce-product-content ul,
				#the7-body .elementor-widget-theme-post-content > .elementor-widget-container > ul,
				#the7-body .elementor-widget-text-editor ol,
				#the7-body .elementor-tab-content ol,
				#the7-body .the7-e-tab-content.the7-e-tab-text-content ol,
				#the7-body .elementor-widget-woocommerce-product-content ol,
				#the7-body .elementor-widget-theme-post-content > .elementor-widget-container > ol,
				.the7-elementor-product-comments #reviews .comment-text .description p,
				.elementor-widget-post-comments .comment-content p{margin-bottom:1.15em;}:root{--the7-p-spacing:1.15em;}@media(max-width:1024px){.elementor-kit-11{--e-global-typography-primary-font-size:60px;--e-global-typography-secondary-font-size:36px;--e-global-typography-text-font-size:17px;--e-global-typography-luxlead-font-size:21px;--e-global-typography-luxtitle-font-size:25px;--e-global-typography-luxmenu-font-size:48px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-11{--e-global-typography-primary-font-size:42px;--e-global-typography-secondary-font-size:30px;--e-global-typography-text-font-size:16px;--e-global-typography-luxlead-font-size:19px;--e-global-typography-luxtitle-font-size:22px;--e-global-typography-luxmenu-font-size:34px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ==========================================================================
   LUX BY COPPOLO — Site stylesheet
   Lives in Site Settings > Custom CSS. Colours map to the Global Colours,
   so changing a colour in Site Settings updates everything below.
   ========================================================================== */

:root {
  --lux-slate: var(--e-global-color-primary, #76898D);
  --lux-ink: var(--e-global-color-secondary, #231F20);
  --lux-text: var(--e-global-color-text, #3E3A3C);
  --lux-foil: var(--e-global-color-accent, #B39E77);
  --lux-paper: var(--e-global-color-luxpaper, #EDEFED);
  --lux-lift: var(--e-global-color-luxlift, #2B2728);
  --lux-night: var(--e-global-color-luxnight, #1A1718);
  --lux-deep: var(--e-global-color-luxdeep, #5C6E72);
  --lux-mist: var(--e-global-color-luxmist, #C9D2D1);
  --lux-white: #FFFFFF;
  --lux-header-h: 120px;
  --lux-gutter: clamp(20px, 4vw, 56px);
  --lux-ease: cubic-bezier(.22, .61, .36, 1);
  --lux-ease-out: cubic-bezier(.16, 1, .3, 1);
  --lux-wide: 125%;
}

html { -webkit-text-size-adjust: 100%; }
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-kerning: normal;
  font-optical-sizing: auto;
}
::selection { background: var(--lux-foil); color: var(--lux-ink); }
a { transition: color .5s var(--lux-ease), opacity .5s var(--lux-ease); }
:focus-visible { outline: 1px solid var(--lux-foil); outline-offset: 6px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* ---------- Typographic utilities ---------- */
.lux-wide,
.lux-kicker .elementor-heading-title,
.lux-caption,
.lux-phone .elementor-heading-title,
.lux-btn .elementor-button,
.lux-link a,
.lux-burger__label,
.lux-footlinks a,
.lux-fine {
  font-stretch: var(--lux-wide);
  font-variation-settings: "wdth" 125;
}
.lux-kicker .elementor-heading-title {
  font-family: var(--e-global-typography-accent-font-family, "Archivo"), sans-serif !important;
  font-size: 11px !important; font-weight: 500 !important; letter-spacing: .32em !important;
  text-transform: uppercase !important; line-height: 1.6 !important; font-style: normal !important;
}
.lux-display .elementor-heading-title { text-wrap: balance; font-variation-settings: "wdth" 100; }
.lux-measure { max-width: 62ch; }
.lux-measure-narrow { max-width: 44ch; }
.lux-balance .elementor-heading-title { text-wrap: balance; }
.lux-lead p, .lux-lead { text-wrap: pretty; }

/* ---------- Brand mark (inline SVG sprite) ---------- */
.lux-logo { display: block; width: 100%; height: auto; overflow: hidden; }
.lux-logo--white { --lx-ink: #fff; --lx-word: #fff; }
.lux-logo--ink { --lx-ink: var(--lux-ink); --lx-word: var(--lux-ink); }
.lux-ornament { display: block; margin: 0 auto; width: 220px; max-width: 70%; height: auto; }
.lux-ornament.lux-logo--white { opacity: .7; }

/* ==========================================================================
   HEADER
   ========================================================================== */
[data-elementor-type="header"] {
  position: fixed; top: 0; left: 0; right: 0; z-index: 990;
}
.admin-bar [data-elementor-type="header"] { top: 32px; }
@media (max-width: 782px) { .admin-bar [data-elementor-type="header"] { top: 46px; } }
@media (max-width: 600px) { .admin-bar.lux-scrolled [data-elementor-type="header"] { top: 0; } }

.lux-header {
  position: relative;
  background-color: var(--lux-slate);
  transition: background-color .7s var(--lux-ease), min-height .6s var(--lux-ease),
              box-shadow .7s var(--lux-ease);
}
.lux-header::after {
  content: ""; position: absolute; left: var(--lux-gutter); right: var(--lux-gutter); bottom: 0;
  height: 1px; background: rgba(255,255,255,.16);
  transform: scaleX(0); transform-origin: center; transition: transform 1.2s var(--lux-ease-out);
}
.lux-scrolled .lux-header { min-height: 84px !important; }
.lux-scrolled .lux-header::after { transform: scaleX(1); }

/* Home: transparent over the hero film; logo arrives once you scroll */
.home .lux-header { background-color: transparent; }
.home .lux-header .lux-brand { opacity: 0; transform: translateY(-6px); pointer-events: none; }
.home.lux-scrolled .lux-header {
  background-color: rgba(35,31,32,.72);
  -webkit-backdrop-filter: blur(18px) saturate(120%); backdrop-filter: blur(18px) saturate(120%);
}
.home.lux-scrolled .lux-header .lux-brand { opacity: 1; transform: none; pointer-events: auto; }
.home .lux-header .lux-logo { --lx-ink: #fff; --lx-word: #fff; }

.lux-brand {
  display: block; width: 96px; margin: 0 auto; line-height: 0;
  transition: opacity .8s var(--lux-ease), transform .8s var(--lux-ease), width .6s var(--lux-ease);
}
.lux-scrolled .lux-brand { width: 66px; }

/* Menu trigger: two engraved lines that settle on hover */
button.lux-burger,
button.lux-burger:hover,
button.lux-burger:focus {
  display: flex; align-items: center; gap: 18px; padding: 10px 0 !important; margin: 0;
  background: none !important; border: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  color: var(--lux-white) !important; cursor: pointer; font: inherit; line-height: 1;
  -webkit-appearance: none; appearance: none;
}
.lux-burger__lines { position: relative; width: 30px; height: 9px; display: block; }
.lux-burger__lines i {
  position: absolute; left: 0; height: 1px; background: currentColor; display: block;
  transition: width .6s var(--lux-ease), transform .6s var(--lux-ease);
}
.lux-burger__lines i:first-child { top: 0; width: 30px; }
.lux-burger__lines i:last-child { bottom: 0; width: 18px; }
.lux-burger:hover .lux-burger__lines i:last-child { width: 30px; }
.lux-burger__label {
  font-size: 11px; font-weight: 500; letter-spacing: .32em; text-transform: uppercase; line-height: 1;
}

.lux-phone .elementor-heading-title {
  display: flex; align-items: center; margin: 0 !important;
  font-size: 11px !important; font-weight: 500 !important; letter-spacing: .26em !important;
  line-height: 1 !important; white-space: nowrap;
}
.lux-phone .elementor-heading-title a {
  color: var(--lux-white); display: block; padding: 10px 0;
  background: linear-gradient(currentColor, currentColor) no-repeat right 100% / 0 1px;
  transition: background-size .7s var(--lux-ease);
}
.lux-phone .elementor-heading-title a:hover { background-size: 100% 1px; background-position: left 100%; }
.lux-phone-icon a { display: inline-flex; color: var(--lux-white); padding: 8px; }
.lux-phone-icon svg { width: 20px; height: 20px; }

/* ==========================================================================
   BUTTONS — an engraved double rule, filled from the left on hover
   ========================================================================== */
.lux-btn .elementor-button {
  --btn-line: rgba(255,255,255,.9); --btn-ink: #fff;
  --btn-fill: #fff; --btn-ink-hover: var(--lux-ink);
  position: relative; isolation: isolate; overflow: visible;
  display: inline-flex; align-items: center; justify-content: center;
  padding: 21px 48px; min-width: 220px;
  background: transparent !important; color: var(--btn-ink) !important;
  border: 1px solid var(--btn-line) !important; border-radius: 0 !important;
  font-size: 11px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; line-height: 1;
  box-shadow: none !important;
  transition: color .7s var(--lux-ease), border-color .7s var(--lux-ease);
}
.lux-btn .elementor-button::before {
  content: ""; position: absolute; inset: 0; z-index: -1; background: var(--btn-fill);
  transform: scaleX(0); transform-origin: right center;
  transition: transform .8s var(--lux-ease-out);
}
.lux-btn .elementor-button::after {
  content: ""; position: absolute; inset: 4px; pointer-events: none;
  border: 1px solid var(--btn-line); opacity: .38;
  transition: border-color .7s var(--lux-ease), opacity .7s var(--lux-ease), inset .7s var(--lux-ease);
}
.lux-btn .elementor-button:hover,
.lux-btn .elementor-button:focus-visible { color: var(--btn-ink-hover) !important; }
.lux-btn .elementor-button:hover::before,
.lux-btn .elementor-button:focus-visible::before { transform: scaleX(1); transform-origin: left center; }
.lux-btn .elementor-button:hover::after,
.lux-btn .elementor-button:focus-visible::after { border-color: var(--lux-foil); opacity: 1; inset: 5px; }
.lux-btn .elementor-button .elementor-button-content-wrapper { position: relative; z-index: 1; }

.lux-btn--light .elementor-button {
  --btn-line: rgba(255,255,255,.9); --btn-ink: #fff;
  --btn-fill: #fff; --btn-ink-hover: var(--lux-ink);
}

/* Quiet text link with a drawn underline */
.lux-link a {
  display: inline-block; padding-bottom: 8px;
  font-size: 11px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase;
  color: inherit; text-decoration: none;
  background: linear-gradient(currentColor, currentColor) no-repeat left 100% / 100% 1px;
  transition: background-size .8s var(--lux-ease-out);
}
.lux-link a:hover { background-size: 34% 1px; }

/* ==========================================================================
   PAGE HEROES — the invitation card
   ========================================================================== */
.lux-hero { position: relative; overflow: hidden; }
.lux-hero--page { padding-top: calc(var(--lux-header-h) + 72px) !important; background-color: #2E3537; }
/* Tonal stand-in until the hero photograph is chosen */
.lux-hero--page {
  background-image:
    radial-gradient(80% 70% at 50% 35%, rgba(140,156,159,.55), transparent 70%),
    linear-gradient(165deg, #8C9C9F 0%, var(--lux-deep) 55%, #2E3537 100%);
}
.lux-hero--page > .e-con-inner, .lux-hero--page > .e-con { position: relative; z-index: 2; }
.lux-hero--page::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(35,31,32,0), var(--lux-ink));
}
.lux-ph-label--hero { left: var(--lux-gutter) !important; bottom: 32px !important; }
.lux-invite { position: relative; }
.lux-invite::before,
.lux-invite::after {
  content: ""; position: absolute; pointer-events: none; z-index: 0;
  border: 1px solid rgba(255,255,255,.34);
}
.lux-invite::before { inset: 0; }
.lux-invite::after { inset: 7px; border-color: rgba(255,255,255,.18); }
.lux-invite > * { position: relative; z-index: 1; }

/* Home film */
.lux-hero--home { min-height: 100vh; min-height: 100svh; background-color: var(--lux-ink); }
.lux-hero--home::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 1;
  background:
    radial-gradient(120% 80% at 50% 40%, rgba(35,31,32,0) 30%, rgba(35,31,32,.55) 100%),
    linear-gradient(180deg, rgba(35,31,32,.35) 0%, rgba(35,31,32,0) 22%, rgba(35,31,32,0) 70%, rgba(35,31,32,.55) 100%);
}
/* Until the film is added, a slow drift of light on slate */
.lux-hero--home:not(:has(video)):not(:has(iframe)) {
  background-image:
    radial-gradient(60% 50% at 30% 30%, rgba(118,137,141,.55), transparent 70%),
    radial-gradient(50% 60% at 75% 70%, rgba(92,110,114,.6), transparent 70%),
    linear-gradient(160deg, #2b2829, #231F20);
  background-size: 140% 140%, 160% 160%, 100% 100%;
  animation: luxDrift 26s ease-in-out infinite alternate;
}
@keyframes luxDrift {
  from { background-position: 0% 0%, 100% 100%, 0 0; }
  to   { background-position: 60% 40%, 30% 60%, 0 0; }
}
.lux-hero--home > .e-con-inner,
.lux-hero--home > .elementor-element { position: relative; z-index: 2; }
.lux-lockup { width: min(440px, 76vw); margin: 0 auto; }
.lux-lockup .lux-logo + .lux-logo { margin-top: 26px; }
.lux-scrollcue-w { position: static !important; }
.lux-scrollcue {
  position: absolute; left: 50%; bottom: 34px; z-index: 2; width: 1px; height: 56px;
  background: linear-gradient(rgba(255,255,255,.0), rgba(255,255,255,.7));
  transform-origin: top; animation: luxCue 2.8s var(--lux-ease) infinite;
}
@keyframes luxCue { 0% { transform: scaleY(0); opacity: 1; } 60% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }

/* The one orchestrated moment: the home arrival */
body:not(.elementor-editor-active) .lux-hero--home .lux-arrive-1 { animation: luxArrive 2.4s var(--lux-ease-out) .25s both; }
body:not(.elementor-editor-active) .lux-hero--home .lux-arrive-2 { animation: luxArrive 2.2s var(--lux-ease-out) 1.05s both; }
body:not(.elementor-editor-active) .lux-hero--home .lux-arrive-3 { animation: luxFade 1.6s var(--lux-ease) 1.9s both; }
@keyframes luxArrive {
  from { opacity: 0; transform: translateY(14px) scale(.985); filter: blur(6px); }
  to   { opacity: 1; transform: none; filter: blur(0); }
}
@keyframes luxFade { from { opacity: 0; } to { opacity: 1; } }

/* ==========================================================================
   SECTIONS & EDITORIAL DEVICES
   ========================================================================== */
.lux-rule-top { border-top: 1px solid rgba(255,255,255,.14); }
.lux-sticky { position: sticky; top: calc(var(--lux-header-h) + 32px); align-self: flex-start; }

.lux-statement .elementor-heading-title { text-wrap: balance; }

/* Index of experiences */
.lux-index-row { border-top: 1px solid rgba(255,255,255,.14); transition: background-color .8s var(--lux-ease); }
.lux-index-row:last-child { border-bottom: 1px solid rgba(255,255,255,.14); }
.lux-index-row .elementor-heading-title { transition: transform .8s var(--lux-ease-out), color .6s var(--lux-ease); }
.lux-index-row:hover { background-color: rgba(255,255,255,.03); }
.lux-index-row:hover .elementor-heading-title { transform: translateX(10px); color: var(--lux-foil); }

/* Pillars on The Lux Difference */
.lux-pillar + .lux-pillar { border-left: 1px solid rgba(255,255,255,.14); }

/* Facts on About */
.lux-fact { border-top: 1px solid rgba(255,255,255,.2); }

/* The name */
.lux-name .elementor-heading-title { font-variation-settings: "wdth" 112; font-stretch: 112%; }
.lux-name--then .elementor-heading-title { color: rgba(255,255,255,.28) !important; }
.lux-name-divider { align-self: stretch; width: 1px !important; min-height: 120px; background: rgba(255,255,255,.2); }
.lux-assets { position: absolute !important; width: 0 !important; height: 0 !important; overflow: hidden; }

/* ==========================================================================
   IMAGES — placeholders until photography arrives, inset frame, slow zoom
   ========================================================================== */
.lux-img {
  position: relative; overflow: hidden; isolation: isolate;
  background: linear-gradient(155deg, #8C9C9F 0%, var(--lux-slate) 45%, var(--lux-deep) 100%);
}
.lux-img img {
  display: block; width: 100% !important; height: auto !important;
  aspect-ratio: var(--lux-ratio, 4 / 5); object-fit: cover; object-position: center;
  transform: scale(1.001); transition: transform 2.4s var(--lux-ease-out), filter 1.6s var(--lux-ease);
  filter: saturate(.92);
}
.lux-img:hover img { transform: scale(1.045); filter: saturate(1); }
.lux-img::after {
  content: ""; position: absolute; inset: 14px; z-index: 2; pointer-events: none;
  border: 1px solid rgba(255,255,255,.3);
  transition: inset 1.2s var(--lux-ease-out), border-color 1.2s var(--lux-ease);
}
.lux-img:hover::after { inset: 20px; border-color: rgba(255,255,255,.5); }
.lux-img img[src*="elementor/assets/images/placeholder"] { opacity: 0; }
/* Keep the tonal placeholder visible through Elementor's background lazy-load */
.e-con .e-con .lux-img.lux-img.lux-img.lux-img.lux-img {
  background-image: linear-gradient(155deg, #8C9C9F 0%, var(--lux-slate) 45%, var(--lux-deep) 100%) !important;
}
.lux-ratio-portrait { --lux-ratio: 4 / 5; }
.lux-ratio-tall     { --lux-ratio: 3 / 4; }
.lux-ratio-land     { --lux-ratio: 3 / 2; }
.lux-ratio-square   { --lux-ratio: 1 / 1; }
.lux-ratio-wide     { --lux-ratio: 21 / 9; }
@media (max-width: 767px) { .lux-ratio-wide { --lux-ratio: 4 / 3; } }

.lux-caption {
  display: flex; align-items: center; gap: 14px; margin-top: 18px;
  font-size: 10.5px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  color: rgba(255,255,255,.56);
}
.lux-caption::before { content: ""; width: 28px; height: 1px; background: currentColor; flex: none; }

/* Placeholder labels: visible only to logged-in editors */
.lux-photo { position: relative; }
.lux-ph-label { position: absolute !important; left: 30px; bottom: 28px; z-index: 3; pointer-events: none; width: auto !important; }
.lux-ph-label .elementor-heading-title {
  font-size: 10px !important; letter-spacing: .22em !important; text-transform: uppercase;
  color: rgba(255,255,255,.75) !important; font-stretch: 125%;
}
body:not(.logged-in) .lux-ph-label { display: none !important; }

/* ==========================================================================
   FULLSCREEN MENU (popup)
   ========================================================================== */
.lux-popup .dialog-widget-content,
.elementor-popup-modal:has(.lux-menu) .dialog-widget-content {
  background-color: var(--lux-ink) !important; box-shadow: none !important; border-radius: 0 !important;
}
.lux-popup .dialog-close-button,
.elementor-popup-modal:has(.lux-menu) .dialog-close-button { display: none !important; }
.lux-menu { position: relative; }
.lux-menu::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(70% 60% at 50% 55%, rgba(118,137,141,.22), transparent 70%);
}
.lux-menu > * { position: relative; }

.lux-close {
  display: flex; align-items: center; gap: 18px; padding: 10px 0;
  color: var(--lux-white) !important; text-decoration: none;
}
.lux-close__x { position: relative; width: 30px; height: 20px; display: block; }
.lux-close__x i {
  position: absolute; left: 3px; right: 3px; top: 50%; height: 1px; background: currentColor; display: block;
  transition: transform .9s var(--lux-ease-out);
}
.lux-close__x i:first-child { transform: rotate(38deg); }
.lux-close__x i:last-child { transform: rotate(-38deg); }
.lux-close:hover .lux-close__x i:first-child { transform: rotate(45deg) scaleX(.86); }
.lux-close:hover .lux-close__x i:last-child { transform: rotate(-45deg) scaleX(.86); }
.lux-menu .lux-brand { width: 96px; }

.lux-nav ul { list-style: none; margin: 0; padding: 0; text-align: center; }
.lux-nav li { overflow: hidden; }
.lux-nav a {
  position: relative; display: inline-block; padding: .14em 0;
  font-family: var(--e-global-typography-luxmenu-font-family, "Archivo"), sans-serif;
  font-size: var(--e-global-typography-luxmenu-font-size, clamp(34px, 5.4vw, 64px));
  font-weight: var(--e-global-typography-luxmenu-font-weight, 200);
  line-height: 1.08; letter-spacing: -.01em;
  color: rgba(255,255,255,.9); text-decoration: none;
  transition: color .6s var(--lux-ease), opacity .6s var(--lux-ease);
}
.lux-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: .06em; height: 1px; background: var(--lux-foil);
  transform: scaleX(0); transform-origin: right; transition: transform .9s var(--lux-ease-out);
}
.lux-nav a:hover::after, .lux-nav a:focus-visible::after,
.lux-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }
.lux-nav ul:hover a:not(:hover) { opacity: .32; }
.lux-nav a:hover { color: #fff; }
body:not(.elementor-editor-active) .lux-nav li a { animation: luxRiseIn 1.1s var(--lux-ease-out) both; }
.lux-nav li:nth-child(1) a { animation-delay: .15s !important; }
.lux-nav li:nth-child(2) a { animation-delay: .22s !important; }
.lux-nav li:nth-child(3) a { animation-delay: .29s !important; }
.lux-nav li:nth-child(4) a { animation-delay: .36s !important; }
.lux-nav li:nth-child(5) a { animation-delay: .43s !important; }
.lux-nav li:nth-child(6) a { animation-delay: .50s !important; }
@keyframes luxRiseIn { from { transform: translateY(105%); opacity: 0; } to { transform: none; opacity: 1; } }
.lux-fine {
  font-size: 10.5px; font-weight: 500; letter-spacing: .26em; text-transform: uppercase; line-height: 1.8;
  color: rgba(255,255,255,.5);
}
.lux-fine a { color: rgba(255,255,255,.8); text-decoration: none; }
.lux-fine a:hover { color: #fff; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
/* Social: hairline rings that fill on hover, echoing the buttons */
.lux-social .elementor-social-icons-wrapper { display: flex; justify-content: center; flex-wrap: wrap; gap: 18px; }
.lux-social .elementor-grid-item { margin: 0 !important; }
.lux-social .elementor-social-icon {
  position: relative; isolation: isolate; overflow: visible;
  width: 52px !important; height: 52px !important; padding: 0 !important;
  display: inline-flex !important; align-items: center; justify-content: center;
  background-color: transparent !important; border-radius: 50% !important;
  border: 1px solid rgba(255,255,255,.34) !important;
  transition: border-color .7s var(--lux-ease), transform .7s var(--lux-ease-out);
}
.lux-social .elementor-social-icon::before {
  content: ""; position: absolute; inset: -1px; z-index: -1; border-radius: 50%;
  background: #fff; transform: scale(0); transition: transform .7s var(--lux-ease-out);
}
.lux-social .elementor-social-icon::after {
  content: ""; position: absolute; inset: -6px; border-radius: 50%; pointer-events: none;
  border: 1px solid var(--lux-foil); opacity: 0; transform: scale(.92);
  transition: opacity .7s var(--lux-ease), transform .9s var(--lux-ease-out);
}
.lux-social .elementor-social-icon i { font-size: 15px !important; color: #fff !important; transition: color .6s var(--lux-ease); }
.lux-social .elementor-social-icon svg { width: 15px !important; height: 15px !important; fill: #fff !important; transition: fill .6s var(--lux-ease); }
.lux-social .elementor-social-icon:hover,
.lux-social .elementor-social-icon:focus-visible { border-color: #fff !important; }
.lux-social .elementor-social-icon:hover::before,
.lux-social .elementor-social-icon:focus-visible::before { transform: scale(1); }
.lux-social .elementor-social-icon:hover::after,
.lux-social .elementor-social-icon:focus-visible::after { opacity: 1; transform: scale(1); }
.lux-social .elementor-social-icon:hover i { color: var(--lux-ink) !important; }
.lux-social .elementor-social-icon:hover svg { fill: var(--lux-ink) !important; }
@media (max-width: 767px) {
  .lux-social .elementor-social-icon { width: 46px !important; height: 46px !important; }
  .lux-social .elementor-social-icons-wrapper { gap: 14px; }
}
.lux-footer .lux-brand { width: 92px; }
.lux-footlinks { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 44px; margin: 0; padding: 0; list-style: none; }
.lux-footlinks a {
  font-size: 11px; font-weight: 500; letter-spacing: .28em; text-transform: uppercase;
  color: rgba(255,255,255,.72); text-decoration: none; padding-bottom: 6px;
  background: linear-gradient(var(--lux-foil), var(--lux-foil)) no-repeat right 100% / 0 1px;
  transition: color .6s var(--lux-ease), background-size .8s var(--lux-ease-out);
}
.lux-footlinks a:hover { color: #fff; background-size: 100% 1px; background-position: left 100%; }
.lux-footer-rule { height: 1px; width: 100%; background: rgba(255,255,255,.12); }

/* ==========================================================================
   PRIVATE INQUIRY — the reply card (Contact Form 7)
   ========================================================================== */
.lux-card {
  --card: var(--e-global-color-luxlift, #2B2728);
  position: relative; background: var(--card);
  outline: 1px solid rgba(255,255,255,.16); outline-offset: -14px;
  box-shadow: inset 0 0 0 20px var(--card), inset 0 0 0 21px rgba(255,255,255,.07);
}
.lux-card > * { position: relative; z-index: 1; }

.lux-form br { display: none; }
.lux-form p { margin: 0; }
.lux-form .lux-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 34px 40px; align-items: end; }
.lux-form .lux-span { grid-column: 1 / -1; }
.lux-form .lux-field { position: relative; display: block; }
.lux-form label {
  display: block; margin-bottom: 6px;
  font-size: 10.5px; font-weight: 500; letter-spacing: .24em; text-transform: uppercase;
  color: rgba(255,255,255,.6); font-stretch: 125%; font-variation-settings: "wdth" 125;
}
.lux-form label em { font-style: normal; letter-spacing: .12em; text-transform: none; color: rgba(255,255,255,.4); }
.lux-form .wpcf7-form-control-wrap { display: block; position: relative; }
.lux-form input[type="text"], .lux-form input[type="email"], .lux-form input[type="tel"],
.lux-form select, .lux-form textarea {
  width: 100%; display: block; margin: 0; padding: 12px 0 13px;
  font-family: inherit; font-size: 17px; font-weight: 300; line-height: 1.5; color: #fff;
  background-color: transparent; border: 0; border-radius: 0; box-shadow: none; outline: 0;
  border-bottom: 1px solid rgba(255,255,255,.26);
  background-image: linear-gradient(var(--lux-foil), var(--lux-foil));
  background-repeat: no-repeat; background-position: left 100%; background-size: 0 1px;
  transition: background-size .9s var(--lux-ease-out), border-color .6s var(--lux-ease);
  -webkit-appearance: none; appearance: none;
}
.lux-form input:focus, .lux-form select:focus, .lux-form textarea:focus {
  background-size: 100% 1px; border-bottom-color: rgba(255,255,255,.1); outline: 0;
}
.lux-form textarea { min-height: 132px; resize: vertical; }
.lux-form select {
  cursor: pointer; padding-right: 32px;
  background-image:
    linear-gradient(var(--lux-foil), var(--lux-foil)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%23FFFFFF' stroke-width='1'/%3E%3C/svg%3E");
  background-repeat: no-repeat, no-repeat;
  background-position: left 100%, right 4px center;
  background-size: 0 1px, 14px 8px;
}
.lux-form select:focus { background-size: 100% 1px, 14px 8px; }
.lux-form ::placeholder { color: rgba(255,255,255,.3); font-weight: 300; }
.lux-form select option { color: var(--lux-ink); background: #fff; }
.lux-form .lux-submit { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-top: 8px; }
.lux-form input[type="submit"] {
  position: relative; cursor: pointer; margin: 0;
  padding: 22px 52px; min-width: 240px;
  font-family: inherit; font-size: 11px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase;
  font-stretch: 125%; font-variation-settings: "wdth" 125;
  color: #fff; border: 1px solid rgba(255,255,255,.9); border-radius: 0;
  outline: 1px solid rgba(255,255,255,.38); outline-offset: -5px;
  background-color: transparent;
  background-image: linear-gradient(#fff, #fff);
  background-repeat: no-repeat; background-position: right center; background-size: 0 100%;
  transition: background-size .8s var(--lux-ease-out), color .7s var(--lux-ease), outline-color .7s var(--lux-ease);
  -webkit-appearance: none; appearance: none;
}
.lux-form input[type="submit"]:hover, .lux-form input[type="submit"]:focus-visible {
  color: var(--lux-ink); background-size: 100% 100%; background-position: left center;
  outline: 1px solid var(--lux-foil); outline-offset: -6px;
}
.lux-form .wpcf7-spinner { margin: 0; background-color: var(--lux-slate); opacity: .8; }
.lux-form .wpcf7-not-valid-tip {
  margin-top: 8px; font-size: 12px; letter-spacing: .04em; color: #D9A49A;
}
.lux-form .wpcf7-not-valid { border-bottom-color: #D9A49A !important; }
.lux-cf7 .wpcf7-response-output,
.wpcf7 form .wpcf7-response-output {
  margin: 34px 0 0 !important; padding: 18px 0 0 !important; border: 0 !important;
  border-top: 1px solid rgba(255,255,255,.16) !important;
  font-size: 14px; line-height: 1.7; color: #fff;
}
.wpcf7 form.init .wpcf7-response-output { display: none; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output { color: #D9A49A; }
.wpcf7 form.sent .wpcf7-response-output { color: var(--lux-foil); }
@media (max-width: 767px) { .lux-form .lux-grid { grid-template-columns: 1fr; gap: 28px; } }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
  :root { --lux-header-h: 100px; }
  .lux-brand { width: 80px; }
  .lux-pillar + .lux-pillar { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); }
  .lux-sticky { position: static; }
}
@media (max-width: 767px) {
  :root { --lux-header-h: 80px; }
  .lux-brand, .lux-scrolled .lux-brand, .lux-menu .lux-brand { width: 58px; }
  .lux-scrolled .lux-header { min-height: 68px !important; }
  .lux-burger__label { display: none; }
  .lux-menu-foot .lux-fine { text-align: center; }
  .lux-btn .elementor-button { padding: 20px 34px; min-width: 0; }
  .lux-name-divider { width: 64px !important; min-height: 1px; height: 1px; align-self: center; }
  .lux-hero--page { padding-top: calc(var(--lux-header-h) + 40px) !important; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-delay: 0s !important; transition-duration: .001ms !important; }
  .lux-scrollcue { display: none; }
}

/* ==========================================================================
   THE7 COMPATIBILITY — hides The7's own header chrome and page title.
   The footer is never hidden: The7 renders the Elementor footer as #footer.
   ========================================================================== */
.masthead:not([class*="elementor"]):not(:has(.elementor)),
.dt-mobile-header:not(:has(.elementor)),
.dt-close-mobile-menu-icon,
body:has([data-elementor-type="header"]) .mobile-header-space,
body:has([data-elementor-type="header"]) .header-space,
body:has(.lux-hero) .page-title,
body:has(.lux-hero) .fancy-header,
#bottom-bar,
.scroll-top { display: none !important; }

#footer[class*="elementor"],
#footer:has(.elementor) {
  padding: 0 !important; margin: 0 !important; background: none !important; border: 0 !important;
}

body:has(.lux-hero) #main { padding: 0 !important; }
body:has(.lux-hero) #main > .wf-wrap,
body:has(.lux-hero) #main .wf-container-main { max-width: none !important; padding: 0 !important; margin: 0 !important; width: 100% !important; }
body:has(.lux-hero) #content { width: 100% !important; padding: 0 !important; }
body:has(.lux-hero) #sidebar { display: none !important; }/* End custom CSS */