/* =============================================================
   SWISSVIVO  ·  luxe.css
   "Quiet Luxe" — LIGHT warm-ivory direction (home flagship)
   Warm paper · champagne gold · elegant serif · generous space
   Loaded AFTER style.css to override on the luxe home.
   ============================================================= */

:root {
  --lx-paper: #ffffff;          /* Monzo-white canvas */
  --lx-paper-2: #f3f5f4;        /* soft neutral for alternating sections */
  --lx-mint: #eaf3ec;           /* Monzo soft-mint card fill */
  --lx-white: #ffffff;
  --lx-ink: #1c1a14;
  --lx-ink-80: rgba(28,26,20,0.82);
  --lx-ink-60: rgba(28,26,20,0.60);
  --lx-ink-45: rgba(28,26,20,0.46);
  --lx-ink-30: rgba(28,26,20,0.34);
  --lx-gold: #9a7b31;         /* labels / small text (contrast on light) */
  --lx-gold-rich: #b6913c;    /* large accent words */
  --lx-gold-deep: #7c6222;
  --lx-hair: rgba(28,26,20,0.15);
  --lx-hair-soft: rgba(28,26,20,0.08);
  --lx-navy: #0d1b2e;         /* original brand deep blue for dark parts */
  --lx-navy-2: #112538;
  --mz-coral: #ff5a45;        /* Monzo-inspired vibrant accent */
  --mz-coral-deep: #e8412c;
  --mz-teal: #17a398;
  --mz-blue: #3a6ff0;
  --lx-serif: "Bricolage Grotesque", "Inter", system-ui, sans-serif;
  --lx-sans: "Inter", system-ui, -apple-system, sans-serif;
  --lx-gutter: clamp(24px, 6vw, 90px);
  --lx-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---- Base ---- */
body.luxe { background: var(--lx-paper); color: var(--lx-ink-60); --nav-h: 96px; }
body.luxe ::selection { background: var(--lx-gold-rich); color: var(--lx-white); }
body.luxe ::-webkit-scrollbar-track { background: var(--lx-paper-2); }
body.luxe ::-webkit-scrollbar-thumb { background: linear-gradient(var(--lx-gold), var(--lx-gold-deep)); border-color: var(--lx-paper-2); }
body.luxe .scroll-progress { background: linear-gradient(90deg, var(--lx-gold-deep), var(--lx-gold-rich)); box-shadow: 0 0 12px rgba(182,145,60,0.35); }

/* Hide the busy utility bar for a clean luxe canvas */
body.luxe .topbar { display: none; }

/* ---- Header on luxe (light, transparent over hero) ---- */
body.luxe .site-header { background: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom: 1px solid transparent; }
body.luxe .site-header.scrolled { background: rgba(247,244,236,0.82); backdrop-filter: blur(18px) saturate(120%); -webkit-backdrop-filter: blur(18px) saturate(120%); border-bottom-color: var(--lx-hair-soft); box-shadow: 0 10px 30px rgba(28,26,20,0.06); }
body.luxe .brand img { height: 72px; filter: brightness(0.62) contrast(1.12); }
body.luxe .site-header.scrolled .brand img { filter: brightness(0.55) contrast(1.15); }
body.luxe .mobile-head img { height: 56px; filter: brightness(0.62) contrast(1.12); }
body.luxe .footer-brand img { height: 76px; }
body.luxe .nav-menu > li > a { color: var(--lx-ink-45); font-family: var(--lx-sans); font-weight: 500; font-size: 0.82rem; letter-spacing: 0.04em; }
body.luxe .nav-menu > li > a:hover, body.luxe .nav-menu > li > a.active { color: var(--lx-ink); }
body.luxe .nav-menu > li > a::after { background: var(--lx-gold-rich); height: 1px; }
body.luxe .nav-toggle { color: var(--lx-ink); border-color: var(--lx-hair); background: rgba(28,26,20,0.03); }

/* Luxe button = refined gold outline that fills on hover */
.lx-btn {
  --h: 56px;
  position: relative; display: inline-flex; align-items: center; gap: 14px;
  height: var(--h); padding: 0 30px; border-radius: 0;
  font-family: var(--lx-sans); font-weight: 600; font-size: 0.76rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--lx-gold-deep); border: 1px solid rgba(154,123,49,0.5); background: transparent;
  overflow: hidden; transition: color 0.5s var(--lx-ease), border-color 0.5s;
}
.lx-btn > * { position: relative; z-index: 1; }
.lx-btn::before { content: ""; position: absolute; inset: 0; background: var(--lx-gold-rich); transform: translateY(101%); transition: transform 0.5s var(--lx-ease); z-index: 0; }
.lx-btn:hover { color: var(--lx-white); border-color: var(--lx-gold-rich); }
.lx-btn:hover::before { transform: translateY(0); }
.lx-btn svg { width: 16px; height: 16px; transition: transform 0.5s var(--lx-ease); }
.lx-btn:hover svg { transform: translateX(4px); }
.lx-btn.solid { background: var(--lx-gold-rich); color: var(--lx-white); border-color: var(--lx-gold-rich); }
.lx-btn.solid::before { background: var(--lx-gold-deep); }
.lx-btn.ghost { color: var(--lx-ink-60); border-color: var(--lx-hair); }
.lx-btn.ghost::before { background: rgba(28,26,20,0.05); }
.lx-btn.ghost:hover { color: var(--lx-ink); border-color: var(--lx-ink-30); }

/* Refined text link */
.lx-link { display: inline-flex; align-items: center; gap: 12px; font-family: var(--lx-sans); font-size: 0.78rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lx-gold-deep); }
.lx-link .ln { width: 26px; height: 1px; background: currentColor; transition: width 0.5s var(--lx-ease); }
.lx-link:hover .ln { width: 46px; }

/* ---- Shared luxe primitives ---- */
.lx-container { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: var(--lx-gutter); }
.lx-narrow { max-width: 920px; }
.lx-section { position: relative; padding: clamp(90px, 14vh, 180px) 0; }
.lx-label { display: inline-flex; align-items: center; gap: 14px; font-family: var(--lx-sans); font-size: 0.7rem; font-weight: 700; letter-spacing: 0.32em; text-transform: uppercase; color: var(--lx-gold); }
.lx-label::before { content: ""; width: 30px; height: 1px; background: var(--lx-gold); opacity: 0.8; }
.lx-label.center { justify-content: center; }
.lx-hair { height: 1px; width: 100%; background: var(--lx-hair); }
.lx-display { font-family: var(--lx-serif); font-weight: 500; color: var(--lx-ink); line-height: 1.02; letter-spacing: -0.005em; }
.lx-display .it { font-style: italic; color: var(--lx-gold-rich); font-weight: 500; }
.lx-body { font-family: var(--lx-sans); color: var(--lx-ink-60); font-size: clamp(1rem, 1.3vw, 1.15rem); line-height: 1.72; font-weight: 400; }

/* ---- HERO ---- */
.lx-hero { position: relative; min-height: 100vh; display: flex; align-items: center; overflow: hidden; margin-top: calc(-1 * var(--nav-h)); padding: calc(var(--nav-h) + 40px) 0 80px; isolation: isolate; }
.lx-hero-bg { position: absolute; inset: 0; z-index: -3; background: var(--lx-paper); }
.lx-hero-img { position: absolute; inset: 0; z-index: -3; background-size: cover; background-position: center; opacity: 0.14; filter: saturate(0.75) brightness(1.08) contrast(0.98); }
.lx-hero-veil { position: absolute; inset: 0; z-index: -2; background: radial-gradient(64% 56% at 80% 18%, rgba(182,145,60,0.16), transparent 62%), linear-gradient(180deg, rgba(247,244,236,0.5) 0%, rgba(247,244,236,0.2) 42%, rgba(247,244,236,0.85) 100%); }
.lx-hero-glow { position: absolute; z-index: -2; width: 56vw; height: 56vw; top: -16%; right: -8%; border-radius: 50%; background: radial-gradient(circle, rgba(182,145,60,0.14), transparent 62%); filter: blur(30px); animation: lxGlow 14s var(--lx-ease) infinite alternate; }
@keyframes lxGlow { from { transform: translate(0,0) scale(1); opacity: 0.8; } to { transform: translate(-4%, 4%) scale(1.12); opacity: 1; } }
.lx-grain { position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0.03; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

.lx-hero-inner { position: relative; z-index: 2; width: 100%; }
.lx-hero h1 { font-family: var(--lx-serif); font-weight: 500; color: var(--lx-ink); font-size: clamp(3.2rem, 8.5vw, 8.5rem); line-height: 0.98; letter-spacing: -0.01em; margin: 30px 0 0; }
.lx-hero h1 .it { font-style: italic; color: var(--lx-gold-rich); }
.lx-hero-sub { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-top: clamp(34px, 5vw, 60px); flex-wrap: wrap; }
.lx-hero-lead { max-width: 40ch; }
.lx-hero-meta { position: absolute; left: var(--lx-gutter); bottom: 40px; z-index: 2; display: flex; align-items: center; gap: 20px; font-family: var(--lx-sans); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--lx-ink-30); }
.lx-hero-meta .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--lx-gold-rich); }
.lx-scroll { position: absolute; right: var(--lx-gutter); bottom: 40px; z-index: 2; display: flex; align-items: center; gap: 12px; writing-mode: vertical-rl; font-family: var(--lx-sans); font-size: 0.68rem; letter-spacing: 0.24em; text-transform: uppercase; color: var(--lx-ink-30); }
.lx-scroll .bar { width: 1px; height: 54px; background: linear-gradient(var(--lx-gold-rich), transparent); }

/* ---- Statement ---- */
.lx-statement { text-align: center; }
.lx-statement .lx-display { font-size: clamp(2.2rem, 5.2vw, 4.6rem); max-width: 20ch; margin: 30px auto; }
.lx-statement .lx-body { max-width: 56ch; margin: 0 auto; }

/* ---- Refined service list ---- */
.lx-list { border-top: 1px solid var(--lx-hair); }
.lx-row { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(20px, 4vw, 60px); padding: clamp(28px, 4vw, 50px) 0; border-bottom: 1px solid var(--lx-hair); color: inherit; transition: padding 0.6s var(--lx-ease); }
.lx-row .lx-idx { font-family: var(--lx-sans); font-size: 0.72rem; letter-spacing: 0.2em; color: var(--lx-gold); align-self: start; padding-top: 0.9em; }
.lx-row h3 { font-family: var(--lx-serif); font-weight: 500; font-size: clamp(2rem, 4.6vw, 3.6rem); color: var(--lx-ink); line-height: 1; letter-spacing: -0.01em; transition: color 0.5s, transform 0.6s var(--lx-ease); }
.lx-row .lx-rowdesc { font-family: var(--lx-sans); color: var(--lx-ink-45); font-size: 0.98rem; line-height: 1.6; max-width: 46ch; margin-top: 14px; max-height: 0; opacity: 0; overflow: hidden; transition: max-height 0.6s var(--lx-ease), opacity 0.5s, margin 0.5s; }
.lx-row .lx-arrow { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--lx-hair); display: grid; place-items: center; color: var(--lx-ink-45); flex-shrink: 0; transition: 0.6s var(--lx-ease); }
.lx-row .lx-arrow svg { width: 20px; height: 20px; transition: transform 0.5s var(--lx-ease); }
.lx-row:hover { padding-left: clamp(8px, 2vw, 30px); }
.lx-row:hover h3 { color: var(--lx-gold-deep); }
.lx-row:hover .lx-rowdesc { max-height: 90px; opacity: 1; margin-top: 14px; }
.lx-row:hover .lx-arrow { border-color: var(--lx-gold-rich); background: var(--lx-gold-rich); color: var(--lx-white); }
.lx-row:hover .lx-arrow svg { transform: translateX(3px); }
@media (max-width: 640px) { .lx-row { grid-template-columns: 1fr auto; } .lx-row .lx-idx { display: none; } }

/* ---- Cinematic quote band (light, airy) ---- */
.lx-band { position: relative; overflow: hidden; isolation: isolate; padding: clamp(110px, 18vh, 220px) 0; }
.lx-band-img { position: absolute; inset: -8% 0; z-index: -3; background-size: cover; background-position: center; opacity: 1; filter: saturate(0.9) brightness(1.0); will-change: transform; }
.lx-band::before { content: ""; position: absolute; inset: 0; z-index: -2; background: linear-gradient(100deg, rgba(247,244,236,0.84) 0%, rgba(247,244,236,0.44) 46%, rgba(247,244,236,0.18) 78%, rgba(247,244,236,0.34) 100%); }
.lx-quote { font-family: var(--lx-serif); font-weight: 500; font-style: italic; font-size: clamp(2rem, 5.2vw, 4.4rem); line-height: 1.22; color: var(--lx-ink); max-width: 22ch; letter-spacing: -0.005em; }
.lx-quote .g { color: var(--lx-gold-rich); }
.lx-quote-by { margin-top: 34px; font-family: var(--lx-sans); font-size: 0.75rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--lx-ink-30); }

/* ---- Elegant numbers ---- */
.lx-figs { display: grid; grid-template-columns: repeat(4, 1fr); }
.lx-fig { padding: 8px clamp(16px, 3vw, 40px); border-left: 1px solid var(--lx-hair); }
.lx-fig:first-child { border-left: none; padding-left: 0; }
.lx-fig .n { font-family: var(--lx-serif); font-weight: 500; font-size: clamp(2.6rem, 5vw, 4.2rem); color: var(--lx-ink); line-height: 1; letter-spacing: -0.01em; }
.lx-fig .n .u { color: var(--lx-gold-rich); }
.lx-fig .l { margin-top: 14px; font-family: var(--lx-sans); font-size: 0.82rem; color: var(--lx-ink-45); line-height: 1.5; }
@media (max-width: 760px) { .lx-figs { grid-template-columns: 1fr 1fr; gap: 40px 0; } .lx-fig:nth-child(3) { border-left: none; padding-left: 0; } }

/* ---- Split ---- */
.lx-split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 100px); align-items: center; }
.lx-split.rev .lx-split-media { order: 2; }
.lx-split-media { position: relative; overflow: hidden; }
.lx-split-media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/4.6; filter: saturate(0.9); transition: transform 1.2s var(--lx-ease); }
.lx-split-media::after { content: ""; position: absolute; inset: 0; border: 1px solid var(--lx-hair); pointer-events: none; }
.lx-split-media:hover img { transform: scale(1.05); }
.lx-split h2 { font-family: var(--lx-serif); font-weight: 500; font-size: clamp(2rem, 4vw, 3.4rem); color: var(--lx-ink); line-height: 1.05; letter-spacing: -0.01em; margin: 26px 0; }
.lx-checks { list-style: none; padding: 0; margin: 30px 0 0; }
.lx-checks li { display: flex; gap: 16px; padding: 18px 0; border-top: 1px solid var(--lx-hair); font-family: var(--lx-sans); color: var(--lx-ink-80); font-size: 0.98rem; }
.lx-checks li:last-child { border-bottom: 1px solid var(--lx-hair); }
.lx-checks .ci { color: var(--lx-gold-rich); flex-shrink: 0; }
.lx-checks .ci svg { width: 18px; height: 18px; }
@media (max-width: 860px) { .lx-split { grid-template-columns: 1fr; } .lx-split.rev .lx-split-media { order: 0; } }

/* ---- Closing CTA ---- */
.lx-cta { text-align: center; position: relative; overflow: hidden; }
.lx-cta .lx-display { font-size: clamp(2.6rem, 6.5vw, 6rem); max-width: 16ch; margin: 30px auto 40px; }
.lx-cta-actions { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.lx-cta-phone { margin-top: 30px; font-family: var(--lx-sans); font-size: 0.82rem; letter-spacing: 0.06em; color: var(--lx-ink-30); }
.lx-cta-phone a { color: var(--lx-gold-deep); }

/* ---- Footer on luxe: brand deep navy blue ---- */
body.luxe .site-footer { background: linear-gradient(180deg, var(--lx-navy-2), var(--lx-navy)); border-top: 1px solid rgba(182,145,60,0.25); }
body.luxe .site-footer::before { background: linear-gradient(90deg, transparent, var(--lx-gold-rich), transparent); }
body.luxe .footer-col h4 { color: var(--lx-gold-rich); }
body.luxe .footer-brand p, body.luxe .footer-col a, body.luxe .footer-contact li { color: rgba(236,231,219,0.66); }
body.luxe .footer-col a:hover, body.luxe .footer-bottom-links a:hover { color: var(--lx-gold-rich); }
body.luxe .footer-socials a { border-color: rgba(236,231,219,0.18); color: rgba(236,231,219,0.7); }
body.luxe .footer-socials a:hover { background: var(--lx-gold-rich); color: #211d15; border-color: transparent; }

/* ---- Re-skin existing .btn (nav + drawer) to luxe ---- */
body.luxe .btn { border-radius: 0; font-family: var(--lx-sans); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.76rem; font-weight: 600; height: 52px; }
body.luxe .btn svg { width: 15px; height: 15px; }
body.luxe .btn-primary { background: var(--lx-gold-rich); color: var(--lx-white); box-shadow: none; }
body.luxe .btn-primary::after { display: none; }
body.luxe .btn-primary:hover { background: var(--lx-gold-deep); box-shadow: none; }
body.luxe .btn-ghost { background: rgba(28,26,20,0.03); border-color: var(--lx-hair); color: var(--lx-ink-60); backdrop-filter: none; }
body.luxe .btn-ghost:hover { border-color: var(--lx-ink-30); color: var(--lx-ink); background: rgba(28,26,20,0.06); }
body.luxe .mobile-panel { background: linear-gradient(180deg, var(--lx-white), var(--lx-paper)); border-left-color: var(--lx-hair); }
body.luxe .mobile-menu a { color: var(--lx-ink); border-bottom-color: var(--lx-hair); font-family: var(--lx-serif); }
body.luxe .mobile-menu a:hover, body.luxe .mobile-menu a.active { color: var(--lx-gold-deep); }
body.luxe .mobile-close { color: var(--lx-ink); border-color: var(--lx-hair); }
body.luxe .to-top { background: var(--lx-gold-rich); color: var(--lx-white); }
body.luxe .mobile-call { background: var(--lx-gold-rich); color: var(--lx-white); }

/* =============================================================
   INTERIOR PAGES — re-skin the existing markup to LIGHT LUXE
   (applied by adding class="luxe" + luxe.css to each page)
   ============================================================= */

/* ---- Type + base palette ---- */
body.luxe h1, body.luxe h2, body.luxe h3, body.luxe h4, body.luxe .display,
body.luxe .section-head h2, body.luxe .ed-head h2 {
  font-family: var(--lx-serif); font-weight: 500; color: var(--lx-ink); letter-spacing: -0.01em;
}
body.luxe .lead { color: var(--lx-ink-60); font-family: var(--lx-sans); font-weight: 400; }
body.luxe .serif-accent, body.luxe .gold-text { color: var(--lx-gold-rich); -webkit-text-fill-color: currentColor; background: none; font-style: italic; }

/* ---- Kicker -> luxe label ---- */
body.luxe .kicker { color: var(--lx-gold); }
body.luxe .kicker .k-num { color: var(--lx-gold-rich); }
body.luxe .kicker .k-line { background: var(--lx-hair); opacity: 1; }
body.luxe .eyebrow { color: var(--lx-gold); }
body.luxe .eyebrow::before { background: linear-gradient(90deg, transparent, var(--lx-gold)); }

/* ---- Section surfaces (all warm light) ---- */
body.luxe .section--white { background: var(--lx-white); }
body.luxe .section--paper { background: var(--lx-paper); }
body.luxe .section--cream { background: var(--lx-paper-2); }
body.luxe .section--mist { background: var(--lx-paper-2); }
body.luxe .section--gold { background: linear-gradient(180deg, #f3ead2, var(--lx-paper)); }
/* section--ink -> stays LIGHT (warm panel), flip children back to ink */
body.luxe .section--ink { background: var(--lx-paper-2); color: var(--lx-ink-60); }
body.luxe .section--ink::before { display: none; }
body.luxe .section--ink h2, body.luxe .section--ink h3, body.luxe .section--ink h4 { color: var(--lx-ink); }
body.luxe .section--ink .lead, body.luxe .section--ink p, body.luxe .section--ink .split-body p,
body.luxe .section--ink .value-card p, body.luxe .section--ink .service-card p, body.luxe .section--ink .step p,
body.luxe .section--ink .acc-a-inner, body.luxe .section--ink .stat-label, body.luxe .section--ink .check-list p { color: var(--lx-ink-60); }
body.luxe .section--ink .kicker, body.luxe .section--ink .eyebrow, body.luxe .section--ink .link-arrow { color: var(--lx-gold); }
body.luxe .section--ink .kicker .k-num { color: var(--lx-gold-rich); }
body.luxe .section--ink .check-list strong, body.luxe .section--ink .stat-num { color: var(--lx-ink); }

/* ---- Buttons ---- */
body.luxe .btn-ink { background: var(--mz-blue); color: var(--lx-paper); }
body.luxe .btn-ink:hover { background: var(--lx-navy-2); }
body.luxe .btn-ink svg { color: var(--lx-gold-rich); }
body.luxe .cta-text, body.luxe .link-arrow { color: var(--lx-gold-deep); }
body.luxe .cta-text:hover { border-color: var(--lx-gold-rich); }

/* ---- Interior page hero (page-hero--img) -> light luxe ---- */
body.luxe .page-hero.page-hero--img { background: var(--lx-paper); }
body.luxe .page-hero.page-hero--img { background: var(--mz-blue); }
body.luxe .page-hero--img .page-hero-media { opacity: 0.55; filter: saturate(0.95) brightness(0.9) contrast(1.05); background-attachment: scroll; }
body.luxe .page-hero--img .page-hero-scrim { background:
  radial-gradient(58% 56% at 84% 18%, rgba(182,145,60,0.15), transparent 60%),
  linear-gradient(90deg, rgba(9,16,28,0.8) 0%, rgba(13,27,46,0.34) 52%, rgba(13,27,46,0.05) 85%),
  linear-gradient(180deg, rgba(9,16,28,0.35) 0%, transparent 40%, rgba(9,16,28,0.88) 100%); }
body.luxe .page-hero--img h1 { font-family: var(--lx-serif); font-weight: 600; color: #fff; text-shadow: 0 6px 40px rgba(0,0,0,0.4); letter-spacing: -0.015em; }
body.luxe .page-hero--img h1 .serif-accent, body.luxe .page-hero--img h1 .gold-text { color: var(--lx-gold-light); }
body.luxe .page-hero--img .lead { color: rgba(234,238,244,0.82); }
body.luxe .page-hero--img .breadcrumb { color: rgba(234,238,244,0.6); }
body.luxe .page-hero--img .breadcrumb a:hover, body.luxe .page-hero--img .breadcrumb .cur { color: var(--lx-gold-light); }
body.luxe .page-hero--img .kicker { color: var(--lx-gold-light); text-shadow: 0 2px 12px rgba(0,0,0,0.4); }
body.luxe .page-hero--img .kicker .k-num { color: var(--lx-gold-light); }
body.luxe .page-hero--img .kicker .k-line { background: rgba(255,255,255,0.32); }
body.luxe .page-hero--img .btn-ghost { color: #fff; border-color: rgba(255,255,255,0.3); }
body.luxe .page-hero--img .btn-ghost:hover { color: #fff; border-color: rgba(255,255,255,0.6); }

/* ---- Cards ---- */
body.luxe .card { background: var(--lx-white); border: 1px solid var(--lx-hair); box-shadow: none; border-radius: 0; }
body.luxe .card:hover { box-shadow: 0 22px 50px rgba(28,26,20,0.09); border-color: rgba(182,145,60,0.4); transform: translateY(-5px); }
body.luxe .card::before { display: none; }
body.luxe .card--glass { background: var(--lx-white); backdrop-filter: none; }
body.luxe .svc-ico, body.luxe .cta-top-inner .ct-ico, body.luxe .contact-line .cl-ico, body.luxe .fm-float .fm-ico, body.luxe .media-tag .mt-ico { border-radius: 0; }
body.luxe .svc-ico { background: var(--lx-paper-2); border-color: var(--lx-hair); color: var(--lx-gold-deep); }
body.luxe .card:hover .svc-ico { background: var(--lx-gold-rich); color: var(--lx-white); }
body.luxe .value-card .vc-ico { color: var(--lx-gold-deep); }
body.luxe .service-card p, body.luxe .value-card p { color: var(--lx-ink-60); }
body.luxe .svc-index { color: var(--lx-ink-30); font-family: var(--lx-serif); }

/* ---- Index list / rows ---- */
body.luxe .index-list { border-top-color: var(--lx-hair); }
body.luxe .index-row { border-bottom-color: var(--lx-hair); }
body.luxe .index-row h3 { font-family: var(--lx-serif); font-weight: 500; color: var(--lx-ink); }
body.luxe .index-row .ir-num { color: var(--lx-gold); }
body.luxe .index-row .ir-desc { color: var(--lx-ink-45); }
body.luxe .index-row .ir-arrow { border-color: var(--lx-hair); color: var(--lx-ink-45); }
body.luxe .index-row:hover { background: linear-gradient(90deg, rgba(182,145,60,0.07), transparent); }
body.luxe .index-row:hover h3 { color: var(--lx-gold-deep); }
body.luxe .index-row:hover .ir-arrow { background: var(--lx-gold-rich); color: var(--lx-white); border-color: transparent; }

/* ---- Accordion ---- */
body.luxe .acc-item { background: var(--lx-white); border-color: var(--lx-hair); box-shadow: none; border-radius: 0; }
body.luxe .acc-item.open { border-color: rgba(182,145,60,0.4); }
body.luxe .acc-q { color: var(--lx-ink); font-family: var(--lx-serif); font-weight: 500; }
body.luxe .acc-q .acc-ico { border-color: var(--lx-hair); color: var(--lx-gold-deep); }
body.luxe .acc-item.open .acc-q .acc-ico { background: var(--lx-gold-rich); color: var(--lx-white); }
body.luxe .acc-a-inner { color: var(--lx-ink-60); }

/* ---- Forms ---- */
body.luxe .field input, body.luxe .field select, body.luxe .field textarea { background: var(--lx-white); border-color: var(--lx-hair); color: var(--lx-ink); border-radius: 0; }
body.luxe .field input::placeholder, body.luxe .field textarea::placeholder { color: var(--lx-ink-30); }
body.luxe .field input:focus, body.luxe .field select:focus, body.luxe .field textarea:focus { border-color: var(--lx-gold-rich); box-shadow: 0 0 0 3px rgba(182,145,60,0.14); background: var(--lx-white); }
body.luxe .field label { color: var(--lx-ink-60); }
body.luxe .field label .req { color: var(--lx-gold-deep); }
body.luxe .form-check a, body.luxe .form-trust svg { color: var(--lx-gold-deep); }
body.luxe .contact-line { background: var(--lx-white); border-color: var(--lx-hair); border-radius: 0; }
body.luxe .contact-line .cl-val { color: var(--lx-ink); }
body.luxe .form-card { border-radius: 0; }
body.luxe .map-wrap { border-radius: 0; border-color: var(--lx-hair); }

/* ---- Team ---- */
body.luxe .team-card { background: var(--lx-white); border-color: var(--lx-hair); border-radius: 0; box-shadow: none; }
body.luxe .team-body h3, body.luxe .team-lead h3 { font-family: var(--lx-serif); font-weight: 500; color: var(--lx-ink); }
body.luxe .team-body .role, body.luxe .team-lead .role { color: var(--lx-gold-deep); }
body.luxe .team-body p, body.luxe .team-lead p { color: var(--lx-ink-60); }
body.luxe .team-contact { border-top-color: var(--lx-hair); }
body.luxe .team-contact a { color: var(--lx-ink-45); text-decoration-color: var(--lx-hair); }
body.luxe .team-contact a:hover { color: var(--lx-gold-deep); }
body.luxe .team-group-title h3 { font-family: var(--lx-serif); }
body.luxe .team-group-title .tgt-line { background: linear-gradient(90deg, var(--lx-gold-rich), transparent); }
body.luxe .team-lead { border-radius: 0; }

/* ---- Stats ---- */
body.luxe .stat-item .stat-num, body.luxe .stat-card .stat-num, body.luxe .stat-ribbon .sr-item b { font-family: var(--lx-serif); color: var(--lx-ink); }
body.luxe .stat-num.gold-text { color: var(--lx-gold-rich); -webkit-text-fill-color: var(--lx-gold-rich); }
body.luxe .stat-num .u, body.luxe .sr-item b .u { color: var(--lx-gold-rich); }
body.luxe .stat-item .stat-ico { color: var(--lx-gold-deep); }
body.luxe .stat-ribbon { background: var(--lx-white); border-color: var(--lx-hair); box-shadow: none; border-radius: 0; }
body.luxe .stat-ribbon .sr-item { border-right-color: var(--lx-hair); }

/* ---- Steps / process ---- */
body.luxe .step { background: var(--lx-white); border-color: var(--lx-hair); box-shadow: none; border-radius: 0; }
body.luxe .step .step-n { font-family: var(--lx-serif); color: var(--lx-gold-deep); border-color: var(--lx-hair); background: var(--lx-paper-2); }
body.luxe .step p { color: var(--lx-ink-60); }

/* ---- Check list ---- */
body.luxe .check-list strong { color: var(--lx-ink); }
body.luxe .check-list p { color: var(--lx-ink-60); }
body.luxe .check-list .ck { background: rgba(182,145,60,0.1); border-color: rgba(182,145,60,0.5); color: var(--lx-gold-deep); border-radius: 0; }

/* ---- Split media / feature media: show the photo fully, no dark overlay ---- */
body.luxe .split-media, body.luxe .feature-media, body.luxe .split-media img, body.luxe .feature-media > img { border-radius: 0; }
body.luxe .split-media::after { display: none; }
body.luxe .split-media img, body.luxe .feature-media > img { filter: saturate(0.96) contrast(1.02) brightness(1.0); }
body.luxe .split-body p { color: var(--lx-ink-60); }
body.luxe .fm-float { border-radius: 0; border-color: var(--lx-hair); }
body.luxe .fm-float b, body.luxe .media-tag b { font-family: var(--lx-serif); color: var(--lx-ink); }

/* ---- CTA band (top) ---- */
body.luxe .cta-band--top { background: var(--lx-paper-2); border-top: 1px solid var(--lx-hair); border-bottom: 1px solid var(--lx-hair); }
body.luxe .cta-band--top .cta-top-inner h3 { color: var(--lx-ink); font-family: var(--lx-serif); font-weight: 500; }
body.luxe .cta-band--top .cta-top-inner p { color: var(--lx-ink-60); }
body.luxe .cta-band--top .cta-top-inner .ct-ico { background: var(--lx-white); border-color: rgba(182,145,60,0.4); color: var(--lx-gold-deep); }

/* ---- CTA final (bottom) -> light warm card ---- */
body.luxe .cta-band--bottom { background: var(--lx-paper); }
body.luxe .cta-final { background: var(--lx-white); border: 1px solid var(--lx-hair); box-shadow: 0 34px 70px rgba(28,26,20,0.09); border-radius: 0; }
body.luxe .cta-final::before, body.luxe .cta-final::after { display: none; }
body.luxe .cta-final h2 { color: var(--lx-ink); }
body.luxe .cta-final p { color: var(--lx-ink-60); }
body.luxe .cta-final .eyebrow { color: var(--lx-gold); }
body.luxe .cta-final .eyebrow::before { background: linear-gradient(90deg, transparent, var(--lx-gold)); }
body.luxe .cta-final .cta-phone { color: var(--lx-ink-30); }
body.luxe .cta-final .cta-phone a { color: var(--lx-gold-deep); }
body.luxe .cta-final .btn-ghost { background: rgba(28,26,20,0.03); color: var(--lx-ink); border-color: var(--lx-hair); }
body.luxe .cta-final .btn-ghost:hover { color: var(--lx-ink); border-color: var(--lx-ink-30); background: rgba(28,26,20,0.06); }

/* ---- Founder / timeline / job rows / lifecycle / pillars ---- */
body.luxe .founder-quote { color: var(--lx-ink); }
body.luxe .founder-by b { color: var(--lx-ink); font-family: var(--lx-serif); }
body.luxe .founder-by span { color: var(--lx-gold-deep); }
body.luxe .founder-mark { color: var(--lx-gold-rich); }
body.luxe .tl-year { color: var(--lx-gold-deep); }
body.luxe .tl-item h3 { font-family: var(--lx-serif); }
body.luxe .tl-item p { color: var(--lx-ink-60); }
body.luxe .tl-item::before { box-shadow: 0 0 0 5px var(--lx-paper); }
body.luxe .timeline::before { background: linear-gradient(var(--lx-gold-rich), rgba(182,145,60,0.1)); }
body.luxe .job-row { background: var(--lx-white); border-color: var(--lx-hair); box-shadow: none; border-radius: 0; }
body.luxe .job-row h3 { font-family: var(--lx-serif); }
body.luxe .job-meta span { color: var(--lx-ink-60); }
body.luxe .job-meta svg { color: var(--lx-gold-deep); }
body.luxe .lc-age { font-family: var(--lx-serif); color: var(--lx-ink); }
body.luxe .lc-step span { color: var(--lx-ink-60); }
body.luxe .lc-step::before, body.luxe .lifecycle::before { box-shadow: 0 0 0 5px var(--lx-paper); }
body.luxe .pillar.p1 { background: #ebe3d1; color: var(--lx-ink); }
body.luxe .pillar.p2 { background: #e0d6bf; color: var(--lx-ink); }
body.luxe .pillar.p3 { background: linear-gradient(180deg, var(--lx-gold-rich), var(--lx-gold-deep)); color: var(--lx-white); }
body.luxe .pillar h3 { font-family: var(--lx-serif); }
body.luxe .lx-hair, body.luxe .rule { background: var(--lx-hair); }

/* ---- Comparison + quotes + partners + review (home content that may appear) ---- */
body.luxe .compare-col { background: var(--lx-white); border-color: var(--lx-hair); border-radius: 0; }
body.luxe .compare-col.is-us { background: linear-gradient(160deg, var(--lx-navy-2), var(--lx-navy)); color: rgba(236,231,219,0.85); }
body.luxe .compare-col.is-us h3 { color: var(--lx-white); }
body.luxe .compare-badge { border-radius: 0; }
body.luxe .quote-card blockquote { color: var(--lx-ink); }
body.luxe .quote-author b { color: var(--lx-ink); }
body.luxe .review-badge { background: var(--lx-white); border-color: var(--lx-hair); border-radius: 0; }
body.luxe .partner-item { background: var(--lx-white); border-color: var(--lx-hair); border-radius: 0; color: var(--lx-ink-45); font-family: var(--lx-serif); }
body.luxe .trust-chip { background: var(--lx-white); border-color: var(--lx-hair); }

/* ---- Legal / TOC ---- */
body.luxe .toc-chips a { background: var(--lx-white); border-color: var(--lx-hair); color: var(--lx-ink-60); border-radius: 0; }
body.luxe .toc-chips a:hover { border-color: rgba(182,145,60,0.5); color: var(--lx-gold-deep); background: #f3ead2; }
body.luxe .legal-body h2 { color: var(--lx-ink); }

/* ---- 404 ---- */
body.luxe .page-hero .display.gold-text { color: var(--lx-gold-rich); -webkit-text-fill-color: var(--lx-gold-rich); }

/* =============================================================
   CORPORATE HERO — video-forward, deep navy, glass stat cards
   ============================================================= */
.cx-hero { min-height: 100vh; align-items: center; }
.cx-hero .lx-hero-video { opacity: 0.95; filter: saturate(1.0) brightness(0.9) contrast(1.06); }
.cx-scrim { position: absolute; inset: 0; z-index: -2; background:
  linear-gradient(180deg, rgba(9,17,30,0.6) 0%, rgba(13,27,46,0.28) 34%, rgba(9,16,28,0.9) 100%),
  linear-gradient(90deg, rgba(9,16,28,0.82) 0%, rgba(13,27,46,0.38) 46%, rgba(13,27,46,0.04) 82%),
  radial-gradient(58% 58% at 84% 22%, rgba(182,145,60,0.16), transparent 60%); }
.cx-hero-inner { position: relative; z-index: 2; width: 100%; display: grid; grid-template-columns: 1.28fr 0.72fr; gap: clamp(36px, 5vw, 80px); align-items: center; }
.cx-kicker { display: inline-flex; align-items: center; gap: 14px; font-family: var(--lx-sans); font-size: 0.72rem; font-weight: 700; letter-spacing: 0.32em; text-transform: uppercase; color: var(--lx-gold-light); }
.cx-kicker::before { content: ""; width: 32px; height: 1px; background: var(--lx-gold-light); opacity: 0.85; }
.cx-h1 { font-family: var(--lx-serif); font-weight: 600; color: #fff; font-size: clamp(3rem, 6.6vw, 6.6rem); line-height: 1.03; letter-spacing: -0.015em; margin: 26px 0 0; text-shadow: 0 6px 44px rgba(0,0,0,0.42); }
.cx-h1 .it { font-style: italic; color: var(--lx-gold-light); font-weight: 500; }
.cx-lead { font-family: var(--lx-sans); color: rgba(234,238,244,0.82); font-size: clamp(1.05rem, 1.4vw, 1.25rem); line-height: 1.72; max-width: 46ch; margin: 30px 0 0; }
.cx-actions { display: flex; gap: 16px; margin-top: 38px; flex-wrap: wrap; }
.cx-ghost { color: #fff; border-color: rgba(255,255,255,0.32); }
.cx-ghost::before { background: rgba(255,255,255,0.14); }
.cx-ghost:hover { color: #fff; border-color: rgba(255,255,255,0.65); }
/* navy glass stat cards */
.cx-cards { display: flex; flex-direction: column; gap: 16px; }
.cx-card { position: relative; overflow: hidden; padding: 26px 28px; border-radius: 4px;
  background: rgba(13,27,46,0.4);
  backdrop-filter: blur(22px) saturate(155%); -webkit-backdrop-filter: blur(22px) saturate(155%);
  border: 1px solid rgba(255,255,255,0.16);
  box-shadow: 0 22px 54px rgba(0,0,0,0.32), inset 0 1px 0 rgba(255,255,255,0.18); }
.cx-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: linear-gradient(var(--lx-gold-light), var(--lx-gold-deep)); }
.cx-card .cx-num { font-family: var(--lx-serif); font-weight: 600; font-size: 2.1rem; color: #fff; line-height: 1; letter-spacing: -0.01em; }
.cx-card .cx-num .u { color: var(--lx-gold-light); font-weight: 500; }
.cx-card .cx-cl { font-family: var(--lx-sans); font-size: 0.82rem; color: rgba(234,238,244,0.7); margin-top: 9px; line-height: 1.5; }
.cx-meta { position: absolute; left: var(--lx-gutter); bottom: 36px; z-index: 2; display: flex; align-items: center; gap: 16px; font-family: var(--lx-sans); font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(234,238,244,0.55); }
.cx-meta .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--lx-gold-light); }
.cx-scroll { position: absolute; right: var(--lx-gutter); bottom: 36px; z-index: 2; display: flex; align-items: center; gap: 12px; writing-mode: vertical-rl; font-family: var(--lx-sans); font-size: 0.68rem; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(234,238,244,0.55); }
.cx-scroll .bar { width: 1px; height: 54px; background: linear-gradient(var(--lx-gold-light), transparent); }
@media (max-width: 1000px) { .cx-hero-inner { grid-template-columns: 1fr; } .cx-cards { display: none; } }

/* Header over the dark navy hero: white nav; light bar after scroll */
body.luxe .site-header.on-hero.scrolled { background: rgba(247,244,236,0.78); backdrop-filter: blur(22px) saturate(150%); -webkit-backdrop-filter: blur(22px) saturate(150%); border-bottom-color: var(--lx-hair-soft); }
body.luxe .site-header.on-hero.scrolled .brand img { filter: brightness(0.55) contrast(1.15); }
body.luxe .site-header.on-hero.scrolled .nav-menu > li > a { color: var(--lx-ink-45); }
body.luxe .site-header.on-hero.scrolled .nav-menu > li > a:hover, body.luxe .site-header.on-hero.scrolled .nav-menu > li > a.active { color: var(--lx-ink); }
body.luxe .site-header.on-hero.scrolled .nav-toggle { color: var(--lx-ink); border-color: var(--lx-hair); }

/* =============================================================
   LIFE — video hero, line reveals, gold cursor, page transitions
   ============================================================= */

/* ---- Hero video background ---- */
.lx-hero-video { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover;
  opacity: 0.9; filter: saturate(0.92) brightness(1.0) contrast(1.0);
  animation: lxKen 26s ease-in-out infinite alternate; }
@keyframes lxKen { from { transform: scale(1.02); } to { transform: scale(1.1); } }
/* lighter veil, strongest on the left for text legibility, video shows through elsewhere */
body.luxe .lx-hero-veil { background:
  radial-gradient(60% 55% at 80% 16%, rgba(182,145,60,0.12), transparent 62%),
  linear-gradient(90deg, rgba(247,244,236,0.74) 0%, rgba(247,244,236,0.4) 42%, rgba(247,244,236,0.12) 72%, rgba(247,244,236,0.04) 100%),
  linear-gradient(180deg, rgba(247,244,236,0.15) 0%, transparent 40%, rgba(247,244,236,0.5) 100%); }
@media (prefers-reduced-motion: reduce) { .lx-hero-video { animation: none; } }

/* ---- Line-by-line headline reveal ---- */
.reveal-line { display: block; overflow: hidden; padding: 0.16em 0.05em 0.12em; margin-block: -0.14em; }
.rl-in { display: block; transform: translateY(108%); opacity: 0; transition: transform 1.05s var(--lx-ease), opacity 1.05s var(--lx-ease); }
.lines-in .reveal-line:nth-child(1) .rl-in { transition-delay: 0.05s; }
.lines-in .reveal-line:nth-child(2) .rl-in { transition-delay: 0.16s; }
.lines-in .reveal-line:nth-child(3) .rl-in { transition-delay: 0.27s; }
.lines-in .rl-in { transform: none; opacity: 1; }

/* ---- Gold cursor (desktop, fine pointer) ---- */
.cursor-ring { position: fixed; top: 0; left: 0; z-index: 9997; pointer-events: none; margin: -16px 0 0 -16px; will-change: transform; }
.cursor-ring .cr { width: 30px; height: 30px; display: block; color: var(--lx-gold-rich); transition: transform 0.32s var(--lx-ease), color 0.32s; overflow: visible; }
.cursor-ring.on .cr { transform: scale(1.7); color: var(--lx-gold-deep); }
.cursor-ring.down .cr { transform: scale(0.82); }
@media (hover: none), (pointer: coarse) { .cursor-ring { display: none; } }

/* ---- Page transitions (calm, smooth) ---- */
.page-fade { position: fixed; inset: 0; z-index: 9998; background: var(--lx-paper); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.4s cubic-bezier(0.4,0,0.2,1), visibility 0.4s; }
body.page-leaving .page-fade { opacity: 1; visibility: visible; }
/* gentle content enter (JS-gated, so no blank-page risk without JS) */
body.has-transitions main { opacity: 0; transform: translateY(8px); }
body.has-transitions.entered main { opacity: 1; transform: none; transition: opacity 0.6s cubic-bezier(0.22,0.61,0.36,1), transform 0.6s cubic-bezier(0.22,0.61,0.36,1); }

@media (prefers-reduced-motion: reduce) {
  .rl-in { transform: none !important; opacity: 1 !important; }
  .page-fade { display: none; }
  body.has-transitions main { opacity: 1 !important; transform: none !important; }
}

/* =============================================================
   GLASS — frosted translucent components
   ============================================================= */
body.luxe .card,
body.luxe .card--glass,
body.luxe .team-card,
body.luxe .team-lead,
body.luxe .acc-item,
body.luxe .form-card,
body.luxe .contact-line,
body.luxe .stat-ribbon,
body.luxe .step,
body.luxe .job-row,
body.luxe .quote-card,
body.luxe .review-badge,
body.luxe .cta-final,
body.luxe .compare-col.is-them,
body.luxe .partner-item,
body.luxe .fm-float,
body.luxe .media-tag,
body.luxe .toc-chips a {
  position: relative;
  background: rgba(255,255,253,0.4);
  backdrop-filter: blur(22px) saturate(155%);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
  border: 1px solid rgba(255,255,255,0.7);
  box-shadow: 0 18px 50px rgba(28,26,20,0.11), inset 0 1px 0 rgba(255,255,255,0.85), inset 0 -1px 0 rgba(28,26,20,0.04);
}
/* glass sheen highlight along the top edge */
body.luxe .card::after,
body.luxe .team-card::after,
body.luxe .form-card::after,
body.luxe .cta-final::after {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 45%;
  background: linear-gradient(180deg, rgba(255,255,255,0.35), transparent); pointer-events: none;
}
body.luxe .card, body.luxe .team-card, body.luxe .form-card, body.luxe .cta-final { position: relative; overflow: hidden; }
body.luxe .card:hover,
body.luxe .team-card:hover,
body.luxe .step:hover,
body.luxe .job-row:hover {
  background: rgba(255,255,253,0.58);
  border-color: rgba(182,145,60,0.45);
  box-shadow: 0 30px 66px rgba(28,26,20,0.15), inset 0 1px 0 rgba(255,255,255,0.9);
}
/* form inputs: light frosted */
body.luxe .field input, body.luxe .field select, body.luxe .field textarea {
  background: rgba(255,255,253,0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
/* glass gold CTA band (top) */
body.luxe .cta-band--top { background: rgba(243,234,210,0.55); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); }
body.luxe .cta-band--top .cta-top-inner .ct-ico { background: rgba(255,255,255,0.6); backdrop-filter: blur(8px); }
/* nav becomes glassier on scroll */
body.luxe .site-header.scrolled { background: rgba(247,244,236,0.62); backdrop-filter: blur(22px) saturate(150%); -webkit-backdrop-filter: blur(22px) saturate(150%); }
/* subtle tint so glass reads on flat sections */
body.luxe .section--white { background: linear-gradient(180deg, #fbf9f3, var(--lx-paper)); }
body.luxe .section--cream, body.luxe .section--mist { background: linear-gradient(180deg, var(--lx-paper-2), #efe9db); }

/* =============================================================
   CORPORATE OVERRIDES  ·  navy overlays, rounded, glass CTAs,
   bigger logo, formal numbers, legible text on dark
   ============================================================= */
body.luxe { --nav-h: 108px; }

/* ---- Bigger logo ---- */
body.luxe .brand img { height: 86px; }
body.luxe .footer-brand img { height: 92px; }
body.luxe .mobile-head img { height: 64px; }
body.luxe .site-header.on-hero .brand img { filter: brightness(0) invert(1); }

/* ---- Rounded corners across the site ---- */
body.luxe .card, body.luxe .card--glass, body.luxe .team-card, body.luxe .team-lead,
body.luxe .acc-item, body.luxe .form-card, body.luxe .contact-line, body.luxe .stat-ribbon,
body.luxe .step, body.luxe .job-row, body.luxe .quote-card, body.luxe .review-badge,
body.luxe .compare-col, body.luxe .partner-item, body.luxe .toc-chips a, body.luxe .cx-card,
body.luxe .stat-card, body.luxe .value-card, body.luxe .service-card, body.luxe .hero-info-card,
body.luxe .fm-float, body.luxe .media-tag, body.luxe .pillar { border-radius: 18px; }
body.luxe .lx-btn, body.luxe .btn, body.luxe .cta-text, body.luxe .lx-label::before { border-radius: 14px; }
body.luxe .field input, body.luxe .field select, body.luxe .field textarea { border-radius: 12px; }
body.luxe .map-wrap, body.luxe .split-media, body.luxe .feature-media, body.luxe .split-media img,
body.luxe .feature-media > img, body.luxe .team-photo, body.luxe .team-photo img, body.luxe .lx-split-media,
body.luxe .founder-photo, body.luxe .svc-photo, body.luxe .insight-media { border-radius: 20px; }
body.luxe .svc-ico, body.luxe .cta-top-inner .ct-ico, body.luxe .contact-line .cl-ico,
body.luxe .fm-float .fm-ico, body.luxe .media-tag .mt-ico, body.luxe .acc-q .acc-ico,
body.luxe .stat-item .stat-ico, body.luxe .cx-card { border-radius: 14px; }

/* ---- Vibrant GOLD primary CTA (pops on light navbar + dark hero cards) ---- */
body.luxe .lx-btn.solid, body.luxe .btn-primary {
  background: linear-gradient(135deg, #e6c778 0%, #cba24a 52%, #b78f38 100%); color: #2a1e07;
  border: none; padding: 0 40px; border-radius: 14px; backdrop-filter: none;
  box-shadow: 0 14px 36px rgba(182,145,60,0.4), inset 0 1px 0 rgba(255,255,255,0.5); }
body.luxe .lx-btn.solid::before, body.luxe .btn-primary::before, body.luxe .btn-primary::after { display: none; }
body.luxe .lx-btn.solid:hover, body.luxe .btn-primary:hover { background: linear-gradient(135deg, #f0d488 0%, #d6ab50 52%, #c0973c 100%); color: #2a1e07; transform: translateY(-3px); box-shadow: 0 22px 48px rgba(182,145,60,0.5); }
body.luxe .lx-btn.solid svg, body.luxe .btn-primary svg { color: #3a2a0a; }
body.luxe .lx-btn.solid svg, body.luxe .btn-primary svg { color: var(--lx-gold-light); }
body.luxe .cx-actions .lx-btn, body.luxe .cta-actions .btn, body.luxe .cta-final .btn,
body.luxe .page-hero-actions .btn, body.luxe .lx-cta-actions .lx-btn { min-width: 232px; justify-content: center; }

/* ---- Bottom CTA band -> wide, thin, SOLID navy (no transparency) ---- */
body.luxe .cta-band--bottom { padding: clamp(50px, 7vw, 90px) 0; }
body.luxe .cta-final {
  max-width: 100%; border-radius: 22px; color: #fff;
  padding: clamp(40px, 5vw, 62px) clamp(30px, 5vw, 68px);
  background: linear-gradient(150deg, #19b4a4, #0f8074) !important;
  backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 34px 74px rgba(9,16,28,0.36); }
body.luxe .cta-final h2 { font-size: clamp(2rem, 4.4vw, 3.2rem); }
body.luxe .cta-final h2 { color: #fff; }
body.luxe .cta-final p { color: rgba(234,238,244,0.82); }
body.luxe .cta-final .eyebrow { color: var(--lx-gold-light); }
body.luxe .cta-final .eyebrow::before { background: linear-gradient(90deg, transparent, var(--lx-gold-light)); }
body.luxe .cta-final .cta-phone { color: rgba(234,238,244,0.55); }
body.luxe .cta-final .cta-phone a { color: var(--lx-gold-light); }
body.luxe .cta-final .btn-ghost { background: rgba(255,255,255,0.08); color: #fff; border-color: rgba(255,255,255,0.3); }
body.luxe .cta-final .btn-ghost:hover { color: #fff; border-color: rgba(255,255,255,0.65); }
body.luxe .cta-band--top { background: rgba(13,27,46,0.5); backdrop-filter: blur(20px) saturate(150%); -webkit-backdrop-filter: blur(20px) saturate(150%); border-top: 1px solid rgba(255,255,255,0.1); border-bottom: 1px solid rgba(255,255,255,0.1); }
body.luxe .cta-band--top .cta-top-inner h3 { color: #fff; }
body.luxe .cta-band--top .cta-top-inner p { color: rgba(234,238,244,0.72); }
body.luxe .cta-band--top .cta-top-inner .ct-ico { background: rgba(255,255,255,0.1); border-color: rgba(182,145,60,0.5); color: var(--lx-gold-light); }

/* ---- Mid-page image overlays -> dark blue ---- */
body.luxe .lx-band-img { opacity: 1; filter: saturate(0.95) brightness(0.82) contrast(1.06); }
body.luxe .lx-band::before { background: linear-gradient(100deg, rgba(9,16,28,0.82) 0%, rgba(13,27,46,0.44) 46%, rgba(13,27,46,0.18) 78%, rgba(9,16,28,0.5) 100%); }
body.luxe .lx-quote { color: #fff; }
body.luxe .lx-quote .g { color: var(--lx-gold-light); }
body.luxe .lx-quote-by { color: rgba(234,238,244,0.5); }
body.luxe .lx-band .lx-label { color: var(--lx-gold-light); }
body.luxe .lx-band .lx-label::before { background: var(--lx-gold-light); }
body.luxe .svc-photo::after { background: linear-gradient(180deg, rgba(9,16,28,0.15) 0%, rgba(9,16,28,0.5) 42%, rgba(9,16,28,0.94) 100%); }
body.luxe .cine-band::before { background: linear-gradient(120deg, rgba(9,16,28,0.85), rgba(13,27,46,0.45) 55%, rgba(9,16,28,0.7)); }

/* ---- Formal number figures (clean, corporate, not decorative) ---- */
body.luxe .stat-num, body.luxe .stat-card .stat-num, body.luxe .sr-item b, body.luxe .cx-num,
body.luxe .lc-age, body.luxe .lx-fig .n, body.luxe .fm-float b, body.luxe .review-badge b,
body.luxe .cx-card .cx-num, body.luxe .stat-item .stat-num {
  font-family: var(--lx-sans); font-weight: 700; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
body.luxe .cx-num .u, body.luxe .sr-item b .u, body.luxe .stat-num .u, body.luxe .lx-fig .n .u { font-weight: 600; }

/* ---- Legibility guarantees on dark heroes ---- */
body.luxe .cx-h1 { color: #fff; }
body.luxe .cx-h1 .it { color: #e6be6a; }
body.luxe .cx-badge { display: inline-flex; }
body.luxe .cx-hero-copy > .cx-kicker { display: flex; margin-top: 2px; }
body.luxe .cx-lead { color: rgba(234,238,244,0.85); }
body.luxe .cx-kicker { color: var(--lx-gold-light); text-shadow: 0 2px 16px rgba(0,0,0,0.55); }
body.luxe .cx-card .cx-num, body.luxe .cx-card .cx-cl { color: #fff; }
body.luxe .cx-card .cx-cl { color: rgba(234,238,244,0.72); }
body.luxe .cx-ghost, body.luxe .page-hero--img .btn-ghost, body.luxe .cx-hero .lx-btn.ghost { color: #fff; border-color: rgba(255,255,255,0.32); }
body.luxe .page-hero--img .page-hero-actions .btn-primary { color: #fff; }

/* =============================================================
   MONZO GLIMPSE — vibrant bold card section, coral accents
   ============================================================= */
.mz-section { background: linear-gradient(180deg, #fbf9f3, var(--lx-paper)); }
.mz-head { text-align: center; max-width: 760px; margin: 0 auto clamp(44px, 5vw, 74px); }
.mz-badge { display: inline-block; padding: 9px 20px; border-radius: 100px; background: var(--mz-coral); color: #fff; font-family: var(--lx-sans); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; box-shadow: 0 8px 24px rgba(255,90,69,0.32); }
body.luxe .mz-h2, body.luxe .mz-card h3 { font-family: var(--lx-sans); }
.mz-h2 { font-family: var(--lx-sans); font-weight: 800; font-size: clamp(2.2rem, 5vw, 3.8rem); color: var(--lx-ink); letter-spacing: -0.035em; line-height: 1.04; margin: 24px 0 16px; }
.mz-h2 .c { color: var(--mz-coral); }
.mz-h2 .g { color: var(--lx-gold-rich); }
.mz-lead { font-family: var(--lx-sans); color: var(--lx-ink-60); font-size: 1.1rem; line-height: 1.6; max-width: 52ch; margin: 0 auto; }
.mz-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 1.8vw, 24px); }
.mz-card { background: var(--lx-white); border-radius: 28px; padding: clamp(28px, 2.6vw, 40px); border: 1px solid var(--lx-hair); box-shadow: 0 16px 44px rgba(28,26,20,0.07); transition: transform 0.55s var(--lx-ease), box-shadow 0.55s var(--lx-ease); position: relative; overflow: hidden; }
.mz-card:hover { transform: translateY(-10px); box-shadow: 0 40px 80px rgba(28,26,20,0.16); }
.mz-ico { width: 66px; height: 66px; border-radius: 20px; display: grid; place-items: center; margin-bottom: 26px; color: #fff; transition: transform 0.55s var(--lx-ease); }
.mz-card:hover .mz-ico { transform: rotate(-6deg) scale(1.08); }
.mz-ico svg { width: 30px; height: 30px; }
.mz-card:nth-child(1) .mz-ico { background: var(--mz-coral); box-shadow: 0 12px 30px rgba(255,90,69,0.35); }
.mz-card:nth-child(2) .mz-ico { background: var(--mz-blue); }
.mz-card:nth-child(3) .mz-ico { background: var(--lx-gold-rich); box-shadow: 0 12px 30px rgba(182,145,60,0.35); }
.mz-card:nth-child(4) .mz-ico { background: var(--mz-teal); }
.mz-card h3 { font-family: var(--lx-sans); font-weight: 800; font-size: 1.4rem; color: var(--lx-ink); margin-bottom: 12px; letter-spacing: -0.02em; }
.mz-card p { font-family: var(--lx-sans); color: var(--lx-ink-60); font-size: 0.96rem; line-height: 1.6; }
@media (max-width: 900px) { .mz-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .mz-grid { grid-template-columns: 1fr; } }

/* coral hero badge (glimpse of Monzo in the hero) */
.cx-badge { display: inline-flex; align-items: center; gap: 9px; padding: 8px 16px 8px 10px; border-radius: 100px; background: rgba(255,90,69,0.16); border: 1px solid rgba(255,90,69,0.45); color: #fff; font-family: var(--lx-sans); font-size: 0.78rem; font-weight: 500; margin-bottom: 22px; backdrop-filter: blur(8px); }
.cx-badge .cx-pip { width: 8px; height: 8px; border-radius: 50%; background: var(--mz-coral); box-shadow: 0 0 10px var(--mz-coral); }
.cx-badge strong { color: var(--mz-coral); font-weight: 700; }

/* =============================================================
   MONZO TYPE — bold grotesque headings, bold colour accents
   ============================================================= */
body.luxe h1, body.luxe .cx-h1, body.luxe .lx-display, body.luxe .lx-hero h1, body.luxe .page-hero--img h1 { font-family: var(--lx-serif); font-weight: 700; letter-spacing: -0.035em; }
body.luxe h2, body.luxe h3, body.luxe h4, body.luxe .ed-head h2, body.luxe .section-head h2 { font-family: var(--lx-serif); font-weight: 700; letter-spacing: -0.03em; }
body.luxe .lx-row h3, body.luxe .index-row h3 { font-weight: 700; letter-spacing: -0.03em; }
body.luxe .team-body h3, body.luxe .team-lead h3, body.luxe .acc-q, body.luxe .mz-card h3, body.luxe .job-row h3, body.luxe .pillar h3, body.luxe .step h3, body.luxe .card h3, body.luxe .value-card h3, body.luxe .service-card h3 { font-family: var(--lx-serif); font-weight: 700; letter-spacing: -0.02em; }
/* accents: bold colour, not elegant italic */
body.luxe .it, body.luxe .serif-accent, body.luxe .cx-h1 .it, body.luxe .lx-display .it, body.luxe .lx-quote, body.luxe .lx-statement .it { font-style: normal; }
body.luxe .lx-quote { font-weight: 600; letter-spacing: -0.02em; }
body.luxe .cx-h1 .it, body.luxe .lx-display .it, body.luxe .lx-statement .it { color: #e6be6a; font-weight: 700; }
body.luxe .lx-quote .g, body.luxe .gold-text, body.luxe .serif-accent { color: var(--lx-gold-rich); }
/* friendlier, bolder buttons (rounded rectangle) */
body.luxe .lx-btn, body.luxe .btn { border-radius: 16px; font-weight: 700; }

/* =============================================================
   MONZO DESIGN — service cards, colour stat cards, colour block
   ============================================================= */

/* ---- Big vibrant service cards ---- */
.mz-svc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 1.8vw, 24px); }
.mz-svc { position: relative; display: flex; flex-direction: column; background: var(--lx-white); border-radius: 28px; padding: clamp(30px, 2.6vw, 42px); border: 1px solid var(--lx-hair); box-shadow: 0 16px 44px rgba(28,26,20,0.07); color: inherit; overflow: hidden; transition: transform 0.55s var(--lx-ease), box-shadow 0.55s var(--lx-ease); min-height: 300px; }
.mz-svc:hover { transform: translateY(-10px); box-shadow: 0 42px 82px rgba(28,26,20,0.16); }
.mz-svc .mz-ico { width: 66px; height: 66px; border-radius: 20px; display: grid; place-items: center; margin-bottom: 24px; color: #fff; transition: transform 0.55s var(--lx-ease); }
.mz-svc:hover .mz-ico { transform: rotate(-6deg) scale(1.08); }
.mz-svc .mz-ico svg { width: 30px; height: 30px; }
.mz-svc h3 { font-family: var(--lx-serif); font-weight: 700; font-size: 1.6rem; color: var(--lx-ink); margin-bottom: 12px; letter-spacing: -0.02em; }
.mz-svc p { font-family: var(--lx-sans); color: var(--lx-ink-60); font-size: 0.96rem; line-height: 1.6; margin-bottom: 22px; }
.mz-svc .mz-go { margin-top: auto; display: inline-flex; align-items: center; gap: 10px; font-family: var(--lx-sans); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.02em; color: var(--lx-ink); }
.mz-svc .mz-go svg { width: 18px; height: 18px; transition: transform 0.5s var(--lx-ease); }
.mz-svc:hover .mz-go svg { transform: translateX(5px); }
.mz-svc:nth-child(6n+1) .mz-ico { background: var(--mz-coral); box-shadow: 0 12px 30px rgba(255,90,69,0.34); }
.mz-svc:nth-child(6n+1):hover .mz-go, .mz-svc:nth-child(6n+1):hover h3 { color: var(--mz-coral-deep); }
.mz-svc:nth-child(6n+2) .mz-ico { background: var(--mz-blue); }
.mz-svc:nth-child(6n+2):hover .mz-go, .mz-svc:nth-child(6n+2):hover h3 { color: var(--lx-navy); }
.mz-svc:nth-child(6n+3) .mz-ico { background: var(--lx-gold-rich); box-shadow: 0 12px 30px rgba(182,145,60,0.34); }
.mz-svc:nth-child(6n+3):hover .mz-go, .mz-svc:nth-child(6n+3):hover h3 { color: var(--lx-gold-deep); }
.mz-svc:nth-child(6n+4) .mz-ico { background: var(--mz-teal); }
.mz-svc:nth-child(6n+4):hover .mz-go, .mz-svc:nth-child(6n+4):hover h3 { color: var(--mz-teal); }
.mz-svc:nth-child(6n+5) .mz-ico { background: var(--mz-blue); }
.mz-svc:nth-child(6n+5):hover .mz-go, .mz-svc:nth-child(6n+5):hover h3 { color: var(--mz-blue); }
.mz-svc:nth-child(6n+6) .mz-ico { background: var(--lx-navy-2); }
.mz-svc:nth-child(6n+6):hover .mz-go, .mz-svc:nth-child(6n+6):hover h3 { color: var(--lx-navy); }
@media (max-width: 900px) { .mz-svc-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .mz-svc-grid { grid-template-columns: 1fr; } }

/* ---- Colourful stat cards ---- */
.mz-figs { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(16px, 1.8vw, 24px); }
.mz-fig { border-radius: 26px; padding: clamp(28px, 2.6vw, 40px); color: #fff; display: flex; flex-direction: column; justify-content: flex-end; min-height: 220px; position: relative; overflow: hidden; transition: transform 0.55s var(--lx-ease); box-shadow: 0 20px 48px rgba(28,26,20,0.12); }
.mz-fig:hover { transform: translateY(-8px); }
.mz-fig .n { font-family: var(--lx-sans); font-weight: 800; font-size: clamp(1.85rem, 2.7vw, 2.7rem); line-height: 1.04; letter-spacing: -0.025em; font-variant-numeric: tabular-nums; max-width: 100%; overflow-wrap: break-word; }
.mz-fig .n .u { opacity: 0.85; }
.mz-fig .l { margin-top: 12px; font-family: var(--lx-sans); font-size: 0.9rem; opacity: 0.86; line-height: 1.45; }
.mz-fig:nth-child(1) { background: var(--mz-coral); }
.mz-fig:nth-child(2) { background: var(--mz-blue); }
.mz-fig:nth-child(3) { background: var(--lx-gold-rich); }
.mz-fig:nth-child(4) { background: var(--mz-teal); }
.mz-fig::before { content: ""; position: absolute; right: -30px; top: -30px; width: 130px; height: 130px; border-radius: 50%; background: rgba(255,255,255,0.1); }
@media (max-width: 760px) { .mz-figs { grid-template-columns: 1fr 1fr; } }

/* ---- Colour-blocked section (navy) ---- */
.mz-block { background: linear-gradient(160deg, var(--lx-navy-2), var(--lx-navy)); color: #fff; position: relative; overflow: hidden; }
.mz-block::before { content: ""; position: absolute; top: -10%; right: -6%; width: 40%; height: 120%; background: radial-gradient(circle, rgba(255,90,69,0.16), transparent 62%); }
.mz-block .mz-h2 { color: #fff; }
.mz-block .mz-lead { color: rgba(234,238,244,0.78); }
.mz-block .mz-card { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.mz-block .mz-card h3 { color: #fff; }
.mz-block .mz-card p { color: rgba(234,238,244,0.72); }

/* ---- Interior cards -> vibrant (value/service cards get colour tiles) ---- */
body.luxe .value-card, body.luxe .service-card { border-radius: 26px; }
body.luxe .value-card .vc-ico, body.luxe .service-card .svc-ico { width: 62px; height: 62px; border-radius: 18px; display: grid; place-items: center; color: #fff !important; border: none; margin-bottom: 22px; transition: transform 0.55s var(--lx-ease); }
body.luxe .value-card:hover .vc-ico, body.luxe .card:hover .svc-ico { transform: rotate(-6deg) scale(1.08); }
body.luxe .grid.cols-4 > .value-card:nth-child(4n+1) .vc-ico, body.luxe .grid.cols-3 > *:nth-child(3n+1) .svc-ico { background: var(--mz-coral); }
body.luxe .grid.cols-4 > .value-card:nth-child(4n+2) .vc-ico, body.luxe .grid.cols-3 > *:nth-child(3n+2) .svc-ico { background: var(--mz-blue); }
body.luxe .grid.cols-4 > .value-card:nth-child(4n+3) .vc-ico, body.luxe .grid.cols-3 > *:nth-child(3n+3) .svc-ico { background: var(--lx-gold-rich); }
body.luxe .grid.cols-4 > .value-card:nth-child(4n+4) .vc-ico { background: var(--mz-teal); }

/* =============================================================
   HEROES AS BIG ROUNDED CARDS (Monzo)
   ============================================================= */
body.luxe .site-header { background: rgba(247,244,236,0.88); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); border-bottom: 1px solid transparent; }
body.luxe .site-header.scrolled { background: rgba(247,244,236,0.94); border-bottom-color: var(--lx-hair-soft); box-shadow: 0 10px 30px rgba(28,26,20,0.06); }
body.luxe .brand img { filter: brightness(0.55) contrast(1.15); }

body.luxe .cx-hero, body.luxe .page-hero.page-hero--img {
  margin: clamp(10px, 1.4vw, 16px);
  border-radius: clamp(26px, 2.8vw, 44px);
  overflow: hidden; isolation: isolate;
  box-shadow: 0 30px 70px rgba(9,16,28,0.2);
}
body.luxe .cx-hero {
  margin-top: clamp(10px, 1.4vw, 16px);
  min-height: calc(100svh - var(--nav-h) - clamp(20px, 2.8vw, 32px));
  padding: clamp(44px, 6vh, 84px) 0; align-items: center;
}
body.luxe .page-hero.page-hero--img {
  margin-top: clamp(10px, 1.4vw, 16px);
  min-height: 58vh;
  padding: clamp(44px, 6vh, 72px) 0 clamp(40px, 5vw, 64px);
}
/* keep hero background layers clipped inside the rounded card */
body.luxe .cx-hero .lx-hero-video, body.luxe .cx-hero .cx-scrim,
body.luxe .page-hero--img .page-hero-media, body.luxe .page-hero--img .page-hero-scrim { border-radius: inherit; }

/* reveal tuning: slower, more elegant */
body.luxe [data-reveal] { transition-duration: 1.1s; }
@media (prefers-reduced-motion: reduce) { .lx-hero-glow { animation: none; } }

/* =============================================================
   NAVBAR AS A FLOATING ROUNDED CARD (Monzo)
   ============================================================= */
body.luxe { --nav-h: 108px; }
/* the bar itself is invisible; the .nav inside is the card */
body.luxe .site-header,
body.luxe .site-header.scrolled,
body.luxe .site-header.on-hero,
body.luxe .site-header.on-hero.scrolled {
  background: transparent !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border-bottom: none !important; box-shadow: none !important;
}
body.luxe .header-inner { padding-top: clamp(10px, 1.2vw, 16px); }

body.luxe .site-header .nav {
  height: 82px;
  background: rgba(252,250,244,0.78);
  backdrop-filter: blur(24px) saturate(160%); -webkit-backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid rgba(255,255,255,0.75);
  border-radius: clamp(20px, 2vw, 28px);
  padding: 0 14px 0 26px;
  box-shadow: 0 16px 44px rgba(28,26,20,0.12), inset 0 1px 0 rgba(255,255,255,0.6);
  transition: background 0.4s var(--ease), box-shadow 0.4s var(--ease), border-color 0.4s;
}
body.luxe .site-header.scrolled .nav,
body.luxe .site-header.on-hero.scrolled .nav {
  background: rgba(252,250,244,0.92);
  box-shadow: 0 20px 52px rgba(28,26,20,0.16), inset 0 1px 0 rgba(255,255,255,0.7);
}

/* logo sized to sit inside the card */
body.luxe .brand img,
body.luxe .site-header.scrolled .brand img,
body.luxe .site-header.on-hero .brand img,
body.luxe .site-header.on-hero.scrolled .brand img {
  height: 62px; filter: brightness(0.5) contrast(1.18);
}

/* nav links + toggle read as dark on the light card in every state */
body.luxe .site-header .nav-menu > li > a,
body.luxe .site-header.on-hero .nav-menu > li > a { color: var(--lx-ink-45); }
body.luxe .site-header .nav-menu > li > a:hover,
body.luxe .site-header .nav-menu > li > a.active { color: var(--lx-ink); }
body.luxe .site-header .nav-toggle,
body.luxe .site-header.on-hero .nav-toggle {
  color: var(--lx-ink); border-color: var(--lx-hair); background: rgba(28,26,20,0.03);
}

/* =============================================================
   INTERACTIVE CALCULATORS
   ============================================================= */
body.luxe .calc { background: #fff; border: 1px solid var(--lx-hair); border-radius: clamp(20px, 2.4vw, 30px); overflow: hidden; box-shadow: 0 22px 54px rgba(28,26,20,0.09); }
body.luxe .calc-head { padding: clamp(24px, 3vw, 34px) clamp(24px, 3vw, 36px) 0; }
body.luxe .calc-eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lx-gold-deep); }
body.luxe .calc-head h3 { font-family: var(--lx-serif); font-weight: 700; font-size: clamp(1.4rem, 2.4vw, 1.95rem); color: var(--lx-ink); margin: 6px 0 6px; }
body.luxe .calc-head > p { color: var(--lx-ink-60); font-size: 0.95rem; max-width: 54ch; line-height: 1.6; }
body.luxe .calc-body { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 44px); padding: clamp(24px, 3vw, 36px); align-items: center; }
body.luxe .calc-in { margin-bottom: 22px; }
body.luxe .calc-in:last-child { margin-bottom: 0; }
body.luxe .calc-in-top { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 9px; }
body.luxe .calc-in label { font-size: 0.85rem; font-weight: 600; color: var(--lx-ink); }
body.luxe .calc-in .calc-val { font-family: var(--lx-sans); font-weight: 800; color: var(--lx-gold-deep); font-size: 0.95rem; font-variant-numeric: tabular-nums; }
body.luxe .calc-range { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 999px; background: var(--lx-hair); outline: none; cursor: pointer; }
body.luxe .calc-range::-webkit-slider-thumb { -webkit-appearance: none; width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 2px solid var(--lx-gold-rich); box-shadow: 0 2px 6px rgba(182,145,60,0.4); cursor: pointer; }
body.luxe .calc-range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: #fff; border: 2px solid var(--lx-gold-rich); cursor: pointer; }
body.luxe .calc-result { background: var(--lx-mint); border-radius: 18px; padding: clamp(22px, 2.6vw, 30px); text-align: center; }
body.luxe .calc-big { font-family: var(--lx-serif); font-weight: 800; font-size: clamp(2rem, 4vw, 2.9rem); color: var(--lx-ink); letter-spacing: -0.02em; line-height: 1; font-variant-numeric: tabular-nums; }
body.luxe .calc-cap { color: var(--lx-ink-60); font-size: 0.9rem; margin-top: 6px; }
body.luxe .calc-badge { display: inline-block; margin-top: 12px; padding: 5px 15px; border-radius: 999px; font-weight: 700; font-size: 0.8rem; }
body.luxe .calc-badge.ok { background: rgba(23,163,152,0.14); color: #0f8074; }
body.luxe .calc-badge.no { background: rgba(224,83,59,0.14); color: #c0392b; }
body.luxe .calc-bars { margin: 18px 0 4px; }
body.luxe .calc-bar { margin-bottom: 10px; text-align: left; }
body.luxe .calc-bar small { display: block; font-size: 0.74rem; color: var(--lx-ink-60); margin-bottom: 4px; }
body.luxe .calc-bar-track { height: 12px; border-radius: 999px; background: rgba(20,40,30,0.10); overflow: hidden; }
body.luxe .calc-bar-fill { height: 100%; border-radius: 999px; transition: width 0.4s var(--lx-ease); }
body.luxe .calc-bar-fill.b1 { background: var(--mz-teal); }
body.luxe .calc-bar-fill.b2 { background: var(--lx-gold-rich); }
body.luxe .calc-bar-fill.gap { background: var(--mz-coral); }
body.luxe .calc-chart { width: 100%; height: 84px; margin: 16px 0 4px; display: block; }
body.luxe .calc-area { fill: rgba(198,162,76,0.28); } body.luxe .calc-line { stroke: var(--lx-gold-rich); stroke-width: 3; fill: none; stroke-linecap: round; }
body.luxe .calc-kpis { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(20,40,30,0.14); }
body.luxe .calc-kpi span { display: block; font-weight: 800; color: var(--lx-ink); font-size: 1rem; font-variant-numeric: tabular-nums; }
body.luxe .calc-kpi small { color: var(--lx-ink-45); font-size: 0.74rem; }
body.luxe .calc-cta { display: inline-flex; align-items: center; gap: 8px; margin: 0 clamp(24px,3vw,36px) clamp(24px,3vw,36px); padding: 13px 24px; border-radius: 999px; background: linear-gradient(135deg, #e6c778, #cba24a); color: #2a1e07; font-family: var(--lx-sans); font-weight: 700; font-size: 0.88rem; text-decoration: none; cursor: pointer; border: none; }
body.luxe .calc-cta:hover { background: linear-gradient(135deg, #f0d488, #d6ab50); }
body.luxe .calc-cta svg { width: 18px; height: 18px; }
body.luxe .calc-note { font-size: 0.72rem; color: var(--lx-ink-45); margin: -6px clamp(24px,3vw,36px) clamp(20px,2.6vw,28px); }
@media (max-width: 760px) { body.luxe .calc-body { grid-template-columns: 1fr; } }

/* =============================================================
   SERVICES HUB (dienstleistungen.html)
   ============================================================= */
body.luxe .dl-hero { padding-top: clamp(28px, 5vh, 56px); padding-bottom: clamp(20px, 3vw, 36px); }
body.luxe .dl-h1 { font-family: var(--lx-serif); font-weight: 700; font-size: clamp(2.3rem, 5vw, 4rem); color: var(--lx-ink); letter-spacing: -0.02em; line-height: 1.04; margin: 16px 0 0; }
body.luxe .dl-h1 .it { color: var(--lx-gold-rich); font-style: normal; }
body.luxe .dl-toggle { position: relative; display: inline-flex; margin-top: 28px; background: var(--lx-paper-2); border: 1px solid var(--lx-hair); border-radius: 999px; padding: 5px; }
body.luxe .dl-tab { position: relative; z-index: 1; border: none; background: none; cursor: pointer; font-family: var(--lx-sans); font-weight: 600; font-size: 0.9rem; color: var(--lx-ink-60); padding: 11px 26px; border-radius: 999px; transition: color 0.3s; }
body.luxe .dl-tab.is-active { color: #fff; }
body.luxe .dl-thumb { position: absolute; top: 5px; left: 0; height: calc(100% - 10px); border-radius: 999px; background: var(--lx-navy); transition: transform 0.4s var(--lx-ease), width 0.4s var(--lx-ease); z-index: 0; }
body.luxe .dl-seg[hidden] { display: none; }
body.luxe .dl-cat { margin-bottom: clamp(38px, 5vw, 60px); }
body.luxe .dl-cat-head { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--lx-hair-soft); }
body.luxe .dl-cat-ic { flex: none; width: 52px; height: 52px; border-radius: 15px; display: grid; place-items: center; color: #fff; }
body.luxe .dl-cat-ic svg { width: 26px; height: 26px; }
body.luxe .dl-cat:nth-child(1) .dl-cat-ic { background: var(--mz-coral); }
body.luxe .dl-cat:nth-child(2) .dl-cat-ic { background: var(--mz-teal); }
body.luxe .dl-cat:nth-child(3) .dl-cat-ic { background: var(--lx-gold-rich); }
body.luxe .dl-cat:nth-child(4) .dl-cat-ic { background: var(--mz-blue); }
body.luxe .dl-cat:nth-child(5) .dl-cat-ic { background: var(--mz-coral); }
body.luxe .dl-cat-head h3 { font-family: var(--lx-serif); font-weight: 700; font-size: clamp(1.3rem, 2.2vw, 1.6rem); color: var(--lx-ink); }
body.luxe .dl-cat-count { font-size: 0.82rem; color: var(--lx-ink-45); }
body.luxe .dl-cat-link { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--lx-gold-deep); font-weight: 600; font-size: 0.85rem; text-decoration: none; white-space: nowrap; }
body.luxe .dl-cat-link svg { width: 16px; height: 16px; }
body.luxe .dl-cat-link:hover { color: var(--lx-gold-rich); }
body.luxe .dl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
body.luxe .dl-item { display: flex; flex-direction: column; align-items: stretch; gap: 10px; text-align: left; padding: 24px 24px; border: 1px solid var(--lx-hair); border-radius: 22px; background: #fff; cursor: pointer; font-family: var(--lx-sans); color: var(--lx-ink); box-shadow: 0 12px 32px rgba(28,26,20,0.05); transition: border-color 0.3s, box-shadow 0.45s var(--lx-ease), transform 0.45s var(--lx-ease); }
body.luxe .dl-item:hover { border-color: var(--lx-gold-rich); box-shadow: 0 30px 60px rgba(28,26,20,0.13); transform: translateY(-6px); }
body.luxe .dl-item .dl-it-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
body.luxe .dl-item .dl-it-top > span[data-i18n^="svc."] { font-family: var(--lx-serif); font-weight: 700; font-size: 1.08rem; line-height: 1.25; letter-spacing: -0.01em; color: var(--lx-ink); }
body.luxe .dl-item svg { width: 30px; height: 30px; padding: 6px; border-radius: 10px; color: #fff; background: var(--lx-gold-rich); flex: none; transition: transform 0.45s var(--lx-ease), background 0.3s; }
body.luxe .dl-item:hover svg { transform: rotate(90deg); }
body.luxe .dl-item .dl-desc { font-family: var(--lx-sans); font-size: 0.9rem; font-weight: 400; line-height: 1.55; color: var(--lx-ink-60); }
/* colour-cycle the plus tiles like the home cards */
body.luxe .dl-grid > .dl-item:nth-child(4n+1) svg { background: var(--mz-coral); }
body.luxe .dl-grid > .dl-item:nth-child(4n+2) svg { background: var(--mz-blue); }
body.luxe .dl-grid > .dl-item:nth-child(4n+3) svg { background: var(--lx-gold-rich); }
body.luxe .dl-grid > .dl-item:nth-child(4n+4) svg { background: var(--mz-teal); }
@media (max-width: 560px) { body.luxe .dl-cat-link { display: none; } }

/* =============================================================
   SERVICE REQUEST WIZARD (modal)
   ============================================================= */
.wz-overlay { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 20px; background: rgba(9,16,28,0.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s; }
.wz-overlay[hidden] { display: grid; }
.wz-overlay.is-open { opacity: 1; visibility: visible; }
.wz-modal { position: relative; width: min(520px, 100%); max-height: 90vh; overflow-y: auto; background: #fff; border-radius: 24px; padding: clamp(24px, 3vw, 38px); box-shadow: 0 40px 90px rgba(9,16,28,0.35); transform: translateY(16px) scale(0.98); transition: transform 0.35s var(--lx-ease); }
.wz-overlay.is-open .wz-modal { transform: none; }
.wz-close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--lx-hair); background: #fff; color: var(--lx-ink); display: grid; place-items: center; cursor: pointer; }
.wz-close svg { width: 18px; height: 18px; }
.wz-eyebrow { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lx-gold-deep); }
.wz-head h3 { font-family: var(--lx-serif); font-weight: 700; font-size: 1.5rem; color: var(--lx-ink); margin: 6px 0 14px; }
.wz-steps { display: flex; gap: 8px; margin-bottom: 22px; }
.wz-dot { width: 30px; height: 5px; border-radius: 99px; background: var(--lx-hair); transition: background 0.3s; }
.wz-dot.is-active { background: var(--lx-gold-rich); }
.wz-panel { display: none; }
.wz-panel.is-active { display: block; }
.wz-field { display: block; margin-bottom: 14px; }
.wz-field > span { display: block; font-size: 0.78rem; font-weight: 600; color: var(--lx-ink-60); margin-bottom: 6px; }
.wz-field input, .wz-field textarea { width: 100%; font-family: var(--lx-sans); font-size: 0.95rem; padding: 12px 14px; border: 1px solid var(--lx-hair); border-radius: 12px; background: #fbfbfa; }
.wz-field input:focus, .wz-field textarea:focus { outline: none; border-color: var(--lx-gold-rich); box-shadow: 0 0 0 3px rgba(182,145,60,0.14); }
.wz-field input[readonly] { background: var(--lx-mint); font-weight: 600; color: var(--lx-ink); border-color: rgba(20,40,30,0.12); }
.wz-seg { display: flex; gap: 6px; background: var(--lx-paper-2); padding: 5px; border-radius: 999px; margin-top: 2px; }
.wz-seg-btn { flex: 1; border: none; background: none; padding: 9px; border-radius: 999px; cursor: pointer; font-family: var(--lx-sans); font-weight: 600; font-size: 0.85rem; color: var(--lx-ink-60); }
.wz-seg-btn.is-active { background: var(--lx-navy); color: #fff; }
.wz-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.wz-nav { display: flex; gap: 10px; margin-top: 18px; }
.wz-back { background: none; border: 1px solid var(--lx-hair); color: var(--lx-ink); padding: 0 22px; height: 50px; border-radius: 999px; cursor: pointer; font-family: var(--lx-sans); font-weight: 600; }
.wz-next, .wz-submit { flex: 1; height: 50px; border: none; border-radius: 999px; cursor: pointer; font-family: var(--lx-sans); font-weight: 700; color: #2a1e07; background: linear-gradient(135deg, #e6c778, #cba24a); }
.wz-next:hover, .wz-submit:hover { background: linear-gradient(135deg, #f0d488, #d6ab50); }
.wz-summary { background: var(--lx-mint); border-radius: 14px; padding: 14px 16px; font-size: 0.9rem; color: var(--lx-ink); margin-bottom: 14px; line-height: 1.7; }
.wz-summary b { color: var(--lx-ink); }
.wz-check { display: flex; gap: 10px; align-items: flex-start; font-size: 0.82rem; color: var(--lx-ink-60); line-height: 1.5; }
.wz-check input { margin-top: 3px; flex: none; }
.wz-done { text-align: center; padding: 14px 0; }
.wz-done svg { width: 52px; height: 52px; color: var(--mz-teal); margin-bottom: 10px; }
.wz-done p { color: var(--lx-ink); line-height: 1.6; }

/* =============================================================
   NAV MEGA-MENU (Leistungen dropdown)
   ============================================================= */
body.luxe .has-mega { position: relative; display: flex; align-items: center; }
body.luxe .nav-menu > li.has-mega > .mega-trigger {
  display: inline-flex; align-items: center; gap: 5px; background: none; border: none; cursor: pointer;
  color: var(--lx-ink-45); font-family: var(--lx-sans); font-weight: 500; font-size: 0.82rem; letter-spacing: 0.04em; padding: 0;
  transition: color 0.3s;
}
body.luxe .has-mega:hover > .mega-trigger, body.luxe .mega-trigger[aria-expanded="true"] { color: var(--lx-ink); }
body.luxe .mega-chev { width: 14px; height: 14px; transition: transform 0.3s; }
body.luxe .has-mega:hover .mega-chev, body.luxe .mega-trigger[aria-expanded="true"] .mega-chev { transform: rotate(180deg); }
body.luxe .mega-panel {
  position: absolute; top: calc(100% + 20px); left: 50%; margin-left: -340px; width: min(680px, 92vw);
  background: #fff; border: 1px solid rgba(20,24,34,0.08); border-radius: 22px;
  box-shadow: 0 34px 74px rgba(20,24,34,0.22); padding: 22px; z-index: 200;
  opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(8px);
  transition: opacity 0.28s var(--lx-ease), transform 0.28s var(--lx-ease), visibility 0.28s;
}
body.luxe .has-mega:hover .mega-panel, body.luxe .mega-panel.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
body.luxe .mega-panel::before { content: ""; position: absolute; top: -20px; left: 0; right: 0; height: 20px; }
body.luxe .mega-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px; }
body.luxe .mega-head { display: flex; align-items: center; gap: 8px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lx-ink-45); padding: 4px 10px 8px; }
body.luxe .mega-dot { width: 8px; height: 8px; border-radius: 50%; }
body.luxe .mega-dot.dp { background: var(--mz-teal); } body.luxe .mega-dot.dg { background: var(--mz-blue); }
body.luxe .mega-col > a { display: flex; align-items: flex-start; gap: 12px; padding: 9px 10px; border-radius: 14px; text-decoration: none; transition: background 0.2s; }
body.luxe .mega-col > a:hover { background: var(--lx-mint); }
body.luxe .mega-ic { flex: none; width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; background: var(--lx-paper-2); color: var(--lx-gold-deep); transition: background 0.2s; }
body.luxe .mega-col > a:hover .mega-ic { background: #fff; }
body.luxe .mega-ic svg { width: 19px; height: 19px; }
body.luxe .mega-tx b { display: block; font-family: var(--lx-sans); font-weight: 700; font-size: 0.9rem; color: var(--lx-ink); }
body.luxe .mega-tx small { display: block; font-size: 0.75rem; color: var(--lx-ink-45); margin-top: 2px; line-height: 1.3; }
body.luxe .mega-all { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 14px; padding: 13px; border-radius: 14px; background: var(--lx-navy); color: #fff !important; text-decoration: none; font-family: var(--lx-sans); font-weight: 600; font-size: 0.85rem; transition: background 0.2s; }
body.luxe .mega-all svg { width: 18px; height: 18px; }
body.luxe .mega-all:hover { background: #16283f; }

/* language switcher in the nav card */
body.luxe .lang-switch { display: inline-flex; align-items: center; gap: 1px; margin-right: 8px; padding: 3px; background: rgba(28,26,20,0.04); border-radius: 999px; }
body.luxe .lang-opt { border: none; background: none; cursor: pointer; font-family: var(--lx-sans); font-weight: 700; font-size: 0.72rem; letter-spacing: 0.03em; color: var(--lx-ink-45); padding: 6px 9px; border-radius: 999px; transition: color 0.2s, background 0.2s; }
body.luxe .lang-opt:hover { color: var(--lx-ink); }
body.luxe .lang-opt.is-active { color: #2a1e07; background: linear-gradient(135deg, #e6c778 0%, #cba24a 60%, #b78f38 100%); box-shadow: 0 2px 8px rgba(182,145,60,0.35); }
@media (max-width: 1024px) { body.luxe .lang-switch { display: none; } }

/* the nav CTA is a compact pill nested in the card */
body.luxe .site-header .nav-actions .btn-primary { height: 52px; padding: 0 28px; border-radius: 999px; font-size: 0.82rem; }

@media (max-width: 640px) {
  body.luxe .site-header .nav { height: 64px; padding: 0 10px 0 16px; }
  body.luxe .brand img { height: 46px; }
  body.luxe .site-header .nav-actions .btn-primary { display: none; }
}

/* =============================================================
   MID-PAGE FULL-WIDTH BANDS AS ROUNDED CARDS (Monzo)
   ============================================================= */
/* full-width image quote band -> inset image card */
body.luxe .lx-band {
  margin: clamp(20px, 4vw, 56px) clamp(10px, 1.4vw, 16px);
  border-radius: clamp(26px, 2.8vw, 44px);
  overflow: hidden; isolation: isolate;
  box-shadow: 0 34px 74px rgba(9,16,28,0.22);
  padding: clamp(80px, 13vh, 170px) 0;
}
body.luxe .lx-band-img, body.luxe .lx-band::before { border-radius: inherit; }

/* full-width top CTA band -> inset navy card (matches the bottom CTA card) */
body.luxe .cta-band--top {
  background: transparent !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
  border-top: none !important; border-bottom: none !important;
  padding: clamp(14px, 2vw, 26px) 0;
}
body.luxe .cta-band--top .cta-top-inner {
  background: linear-gradient(150deg, #19b4a4, #0f8074);
  border-radius: clamp(20px, 2vw, 28px);
  padding: clamp(24px, 3vw, 38px) clamp(26px, 4vw, 52px);
  border: 1px solid rgba(255,255,255,0.09);
  box-shadow: 0 26px 60px rgba(9,16,28,0.3);
}

/* =============================================================
   MORE TRANSPARENT HERO (home video reads through)
   ============================================================= */
body.luxe .cx-hero .lx-hero-video { opacity: 1; filter: saturate(1.04) brightness(0.98) contrast(1.05); }
body.luxe .cx-hero .cx-scrim {
  background:
    linear-gradient(180deg, rgba(9,17,30,0.34) 0%, rgba(13,27,46,0.12) 36%, rgba(9,16,28,0.62) 100%),
    linear-gradient(90deg, rgba(9,16,28,0.62) 0%, rgba(13,27,46,0.2) 46%, rgba(13,27,46,0) 80%),
    radial-gradient(58% 58% at 84% 22%, rgba(182,145,60,0.14), transparent 60%);
}
/* a soft readability pad directly behind the headline text only */
body.luxe .cx-hero-copy { position: relative; }

/* =============================================================
   MONZO CONSOLIDATION PASS
   pill CTAs · even gold+coral colour · card parity · hero gradient
   ============================================================= */

/* ---- 1. ALL buttons become fully-rounded pills (Monzo signature) ---- */
body.luxe .btn, body.luxe .lx-btn, body.luxe a.btn, body.luxe button.btn,
body.luxe .btn-primary, body.luxe .btn-ghost, body.luxe .btn-secondary,
body.luxe .lx-btn.solid, body.luxe .cx-ghost, body.luxe .back-to-top {
  border-radius: 999px !important;
}

/* ---- 2. Hero: strong left-to-right gradient so text pops, video still reads ---- */
body.luxe .cx-hero .cx-scrim {
  background:
    linear-gradient(90deg, rgba(9,16,28,0.9) 0%, rgba(11,21,36,0.72) 30%, rgba(13,27,46,0.34) 58%, rgba(13,27,46,0.06) 82%),
    linear-gradient(180deg, rgba(9,17,30,0.28) 0%, rgba(13,27,46,0.05) 40%, rgba(9,16,28,0.5) 100%),
    radial-gradient(60% 60% at 88% 24%, rgba(182,145,60,0.16), transparent 62%);
}

/* ---- 2b. Video masks out to 0 opacity on the right; card base is navy ---- */
body.luxe .cx-hero { background: linear-gradient(120deg, #0c1a2e 0%, var(--lx-navy) 55%, #0a1526 100%); }
body.luxe .cx-hero .lx-hero-video {
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.35) 68%, transparent 84%);
  mask-image: linear-gradient(90deg, #000 0%, #000 42%, rgba(0,0,0,0.35) 68%, transparent 84%);
}

/* ---- 2c. Paragraphs are left-aligned (except explicitly centered heads) ---- */
body.luxe p { text-align: left; }
body.luxe .center p, body.luxe .tac, body.luxe .tac p, body.luxe .section-head.center p { text-align: center; }

/* ---- 3. Hero layout: text left, actions + stats right ---- */
body.luxe .cx-hero-inner { grid-template-columns: 1.15fr 0.85fr; align-items: center; }
body.luxe .cx-hero-right { display: flex; flex-direction: column; gap: clamp(20px, 2.4vw, 30px); align-items: stretch; }
body.luxe .cx-hero-right .cx-actions { margin-top: 0; flex-direction: column; gap: 12px; }
body.luxe .cx-hero-right .cx-actions .lx-btn { width: 100%; min-width: 0; justify-content: center; padding: 0 22px; font-size: 0.78rem; letter-spacing: 0.06em; white-space: nowrap; }
@media (max-width: 900px) {
  body.luxe .cx-hero-inner { grid-template-columns: 1fr; }
  body.luxe .cx-hero-right { margin-top: 34px; }
}

/* ---- 4. Even colour distribution: Monzo accents alongside SWISSVIVO gold ---- */
/* rotate card accent icons through coral / navy / gold / teal on EVERY grid */
body.luxe .grid.cols-2 > *:nth-child(2n+1) .vc-ico,
body.luxe .grid.cols-2 > *:nth-child(2n+1) .svc-ico { background: var(--mz-coral); }
body.luxe .grid.cols-2 > *:nth-child(2n+2) .vc-ico,
body.luxe .grid.cols-2 > *:nth-child(2n+2) .svc-ico { background: var(--mz-blue); }
body.luxe .grid.cols-3 > *:nth-child(3n+1) .vc-ico { background: var(--mz-coral); }
body.luxe .grid.cols-3 > *:nth-child(3n+2) .vc-ico { background: var(--mz-teal); }
body.luxe .grid.cols-3 > *:nth-child(3n+3) .vc-ico { background: var(--lx-gold-rich); }
body.luxe .vc-ico, body.luxe .svc-ico { color: #fff; }
/* alternate section kicker numbers between gold and coral for rhythm */
body.luxe .section:nth-of-type(even) .kicker .k-num { color: var(--mz-coral); }
body.luxe .link-arrow:hover, body.luxe .link-arrow:hover svg { color: var(--mz-coral); }

/* ---- 5. Card parity: interior cards get the same lift + timing as home ---- */
body.luxe .value-card, body.luxe .service-card, body.luxe .info-card,
body.luxe .step, body.luxe .mz-card, body.luxe .team-card, body.luxe .plan-card {
  border-radius: clamp(18px, 1.6vw, 26px);
  transition: transform 0.5s var(--ease), box-shadow 0.5s var(--ease), border-color 0.5s var(--ease);
}
body.luxe .value-card:hover, body.luxe .service-card:hover, body.luxe .info-card:hover,
body.luxe .step:hover, body.luxe .team-card:hover, body.luxe .plan-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 60px rgba(28,26,20,0.12);
}
body.luxe .value-card:hover .vc-ico, body.luxe .service-card:hover .svc-ico {
  transform: rotate(-6deg) scale(1.06);
}
body.luxe .vc-ico, body.luxe .svc-ico { transition: transform 0.5s var(--ease); }

/* ---- 6. Interior heroes: clean COLOUR cards, no photo (home keeps its video) ---- */
body.luxe .page-hero--img .page-hero-media { display: none !important; }
body.luxe .page-hero--img {
  background: linear-gradient(135deg, #16283f 0%, #0d1b2e 58%, #0a1526 100%);
}
body.luxe .page-hero--img .page-hero-scrim {
  background:
    radial-gradient(62% 82% at 86% 14%, rgba(230,199,120,0.16), transparent 62%),
    linear-gradient(180deg, rgba(0,0,0,0) 46%, rgba(0,0,0,0.16) 100%);
}
body.luxe .page-hero--blue { background: linear-gradient(135deg, #2b57cf 0%, #244aad 58%, #1b3a8a 100%); }
body.luxe .page-hero--teal { background: linear-gradient(135deg, #148f83 0%, #0f7d72 58%, #0b6156 100%); }

/* =============================================================
   PHASE 1: white canvas · Monzo scale · clean photo hero
   ============================================================= */

/* ---- Whiter navbar card on the new white canvas ---- */
body.luxe .site-header .nav { background: rgba(255,255,255,0.82); }
body.luxe .site-header.scrolled .nav { background: rgba(255,255,255,0.94); }

/* ---- Clean PHOTO hero card (home only) ---- */
body.luxe .cx-hero--photo {
  background: #0b1420;
  min-height: clamp(520px, 80vh, 800px);
  padding: clamp(44px, 6vh, 84px) 0;
  align-items: flex-end;
}
body.luxe .cx-hero--photo .cx-hero-photo {
  position: absolute; inset: 0; z-index: -3;
  background-size: cover; background-position: center 28%;
  border-radius: inherit;
}
body.luxe .cx-hero--photo .cx-scrim {
  background:
    linear-gradient(90deg, rgba(8,14,24,0.9) 0%, rgba(8,14,24,0.66) 30%, rgba(8,14,24,0.22) 58%, rgba(8,14,24,0) 80%),
    linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.34) 100%);
}
body.luxe .cx-hero--photo .cx-hero-inner { grid-template-columns: 1fr; }
body.luxe .cx-hero--photo .cx-hero-copy { max-width: 640px; }
body.luxe .cx-hero--photo .cx-h1 { font-size: clamp(2.4rem, 4.8vw, 4.2rem); margin-top: 20px; }
body.luxe .cx-hero--photo .cx-lead { max-width: 44ch; color: rgba(240,243,248,0.9); }
body.luxe .cx-hero--photo .cx-actions { margin-top: 32px; }
body.luxe .cx-hero--photo .cx-h1, body.luxe .cx-hero--photo .cx-lead { transition: opacity 0.5s var(--lx-ease); }
body.luxe .cx-hero--photo .cx-kicker { color: rgba(255,241,216,0.94); }
body.luxe .cx-hero--photo .cx-kicker::before { background: rgba(255,241,216,0.85); }

/* ---- Hero photo CAROUSEL (Monzo: fading slides + arrows + dots) ---- */
body.luxe .cx-carousel { position: absolute; inset: 0; z-index: -3; border-radius: inherit; overflow: hidden; }
body.luxe .cx-slide {
  position: absolute; inset: 0; background-size: cover; background-position: center 32%;
  opacity: 0; transform: scale(1.04); transition: opacity 1.2s var(--lx-ease), transform 6.5s ease-out;
}
body.luxe .cx-slide.is-active { opacity: 1; transform: scale(1); }
body.luxe .cx-carousel-ui {
  position: absolute; z-index: 3; right: clamp(20px, 4vw, 54px); bottom: clamp(18px, 2.6vw, 32px);
  display: flex; align-items: center; gap: 14px;
}
body.luxe .cx-c-arrow {
  width: 46px; height: 46px; border-radius: 50%; flex: none; cursor: pointer;
  border: 1px solid rgba(255,255,255,0.5); background: rgba(255,255,255,0.14); color: #fff;
  display: grid; place-items: center; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: background 0.3s, border-color 0.3s, transform 0.3s;
}
body.luxe .cx-c-arrow svg { width: 20px; height: 20px; }
body.luxe .cx-c-arrow:hover { background: rgba(255,255,255,0.28); border-color: #fff; }
body.luxe .cx-c-arrow:active { transform: scale(0.94); }
body.luxe .cx-dots { display: flex; align-items: center; gap: 9px; padding: 0 4px; }
body.luxe .cx-dot { width: 9px; height: 9px; border-radius: 50%; border: none; padding: 0; cursor: pointer; background: rgba(255,255,255,0.45); transition: background 0.3s, width 0.3s; }
body.luxe .cx-dot.is-active { background: #fff; width: 26px; border-radius: 5px; }
@media (max-width: 620px) { body.luxe .cx-carousel-ui { left: clamp(24px, 6vw, 90px); right: auto; } }

/* =============================================================
   MONZO CARD SIZING · brighter interior heroes · footer card
   ============================================================= */
/* Hero + image cards align to the SAME container as the navbar (smaller, Monzo) */
body.luxe .cx-hero, body.luxe .page-hero.page-hero--img, body.luxe .lx-band {
  width: min(calc(100% - 2 * var(--gutter)), calc(var(--container-wide) - 2 * var(--gutter)));
  margin-left: auto; margin-right: auto;
}

/* Footer becomes an inset rounded card */
body.luxe .site-footer {
  width: min(calc(100% - 2 * var(--gutter)), calc(var(--container-wide) - 2 * var(--gutter)));
  margin: clamp(24px, 3vw, 48px) auto clamp(16px, 2vw, 28px);
  border-radius: clamp(26px, 2.8vw, 44px);
  overflow: hidden; isolation: isolate;
  border: 1px solid rgba(182,145,60,0.16);
}

/* ALL CTA cards match the hero/footer card width EXACTLY (every page) */
body.luxe .cta-band .container-ed, body.luxe .cta-band .container,
body.luxe .lx-cta > .lx-container { }
body.luxe .cta-band .container-ed, body.luxe .cta-band .container { max-width: none !important; padding-inline: 0 !important; width: 100%; }
body.luxe .cta-final,
body.luxe .cta-band--top .cta-top-inner,
body.luxe .lx-cta .lx-container {
  width: min(calc(100% - 2 * var(--gutter)), calc(var(--container-wide) - 2 * var(--gutter))) !important;
  max-width: none !important;
  margin-left: auto !important; margin-right: auto !important;
}

/* ---- All CTA cards -> soft Monzo mint (rgb 234,243,236), dark text ---- */
body.luxe .cta-final,
body.luxe .cta-band--top .cta-top-inner {
  background: rgb(234, 243, 236) !important;
  border: 1px solid rgba(20, 40, 30, 0.10) !important;
  box-shadow: 0 20px 50px rgba(28, 40, 34, 0.10) !important;
  color: var(--lx-ink);
}
body.luxe .cta-final h2, body.luxe .cta-final .lx-display,
body.luxe .cta-band--top .cta-top-inner h3 { color: var(--lx-ink); }
body.luxe .cta-final p, body.luxe .cta-band--top .cta-top-inner p { color: var(--lx-ink-60); }
body.luxe .cta-final .eyebrow, body.luxe .cta-final .lx-label { color: var(--lx-gold-deep); }
body.luxe .cta-final .eyebrow::before { background: linear-gradient(90deg, transparent, var(--lx-gold-deep)); }
body.luxe .cta-final .cta-phone { color: var(--lx-ink-45); }
body.luxe .cta-final .cta-phone a { color: var(--lx-gold-deep); }
body.luxe .cta-final .btn-ghost { background: transparent; color: var(--lx-ink); border-color: rgba(28,26,20,0.28); }
body.luxe .cta-final .btn-ghost:hover { color: var(--lx-ink); border-color: var(--lx-gold-rich); }
body.luxe .cta-band--top .cta-top-inner .ct-ico { background: #fff; border-color: rgba(182,145,60,0.4); color: var(--lx-gold-deep); }

/* ---- Hero: lighter overlay so the photo colour shows through ---- */
body.luxe .cx-hero--photo .cx-scrim {
  background:
    linear-gradient(62deg, rgba(8,14,24,0.82) 0%, rgba(8,14,24,0.5) 34%, rgba(8,14,24,0.12) 62%, rgba(8,14,24,0) 82%),
    linear-gradient(180deg, rgba(0,0,0,0) 42%, rgba(0,0,0,0.42) 100%);
}
body.luxe .cx-hero--photo .cx-h1 { font-size: clamp(2.2rem, 4.3vw, 3.8rem); }

/* =============================================================
   CTA CARDS AS IMAGE BANDS (like the Philosophie band)
   image + navy overlay + big headline + gold accent + white pill
   ============================================================= */
body.luxe .cta-final, body.luxe .lx-cta .lx-container {
  position: relative; overflow: hidden; isolation: isolate; color: #fff;
  background: transparent !important; border: none !important;
}
body.luxe .cta-final {
  min-height: clamp(360px, 44vw, 520px);
  display: flex; flex-direction: column; justify-content: center; text-align: left;
  padding: clamp(44px, 6.5vw, 92px) clamp(32px, 6vw, 84px) !important;
  box-shadow: 0 34px 74px rgba(9,16,28,0.3) !important;
}
body.luxe .lx-cta .lx-container {
  border-radius: clamp(26px, 2.8vw, 44px);
  padding: clamp(56px, 8vw, 120px) clamp(32px, 6vw, 80px);
  max-width: min(calc(100% - 2 * var(--gutter)), calc(var(--container-wide) - 2 * var(--gutter)));
}
body.luxe .cta-final::before, body.luxe .lx-cta .lx-container::before {
  display: block !important; content: ""; position: absolute; inset: 0; z-index: -2; width: auto; height: auto; top: 0; right: 0;
  background-color: var(--lx-navy);
  background-image: var(--cta-img, none); background-size: cover; background-position: center;
  transform: scale(1.02); mask-image: none; -webkit-mask-image: none;
}
body.luxe .cta-final::after, body.luxe .lx-cta .lx-container::after {
  display: block !important; content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(90deg, rgba(9,16,28,0.82) 0%, rgba(9,16,28,0.6) 55%, rgba(9,16,28,0.46) 100%),
    linear-gradient(180deg, rgba(9,16,28,0.32) 0%, rgba(9,16,28,0.12) 42%, rgba(9,16,28,0.46) 100%),
    rgba(9,16,28,0.26);
  mask-image: none; -webkit-mask-image: none; background-size: auto;
}
/* left-align the CTA content (matches the Philosophie band) */
body.luxe .cta-final { align-items: flex-start; text-align: left; }
body.luxe .cta-final .kicker, body.luxe .cta-final .eyebrow { justify-content: flex-start; }
body.luxe .cta-final p { margin-left: 0; margin-right: auto; }
body.luxe .cta-final .cta-actions { justify-content: flex-start; }
/* text on the image */
body.luxe .cta-final .kicker, body.luxe .cta-final .eyebrow,
body.luxe .lx-cta .lx-label { color: var(--lx-gold-light) !important; }
body.luxe .cta-final h2, body.luxe .lx-cta .lx-display { color: #fff !important; font-size: clamp(2rem, 4.2vw, 3.4rem); }
body.luxe .cta-final h2 { max-width: 22ch; }
body.luxe .cta-final .it, body.luxe .lx-cta .lx-display .it,
body.luxe .cta-final h2 .it { color: var(--lx-gold-light) !important; }
body.luxe .cta-final p { color: rgba(236,240,246,0.86) !important; max-width: 54ch; }
body.luxe .lx-cta .lx-cta-phone { color: rgba(236,240,246,0.6) !important; }
body.luxe .lx-cta .lx-cta-phone a { color: var(--lx-gold-light) !important; }
/* white primary pill + white ghost on the image */
body.luxe .cta-final .btn-primary, body.luxe .cta-final .lx-btn.solid,
body.luxe .lx-cta .lx-btn.solid {
  background: #fff !important; color: var(--lx-ink) !important; border: none !important;
  box-shadow: 0 14px 34px rgba(0,0,0,0.24) !important;
}
body.luxe .cta-final .btn-primary svg, body.luxe .cta-final .lx-btn.solid svg,
body.luxe .lx-cta .lx-btn.solid svg { color: var(--lx-ink) !important; }
body.luxe .cta-final .btn-ghost, body.luxe .lx-cta .lx-btn.ghost {
  background: rgba(255,255,255,0.10) !important; color: #fff !important; border-color: rgba(255,255,255,0.42) !important;
}

/* ---- Eyebrow + breadcrumb read clearly on the bright colour heroes ---- */
body.luxe .page-hero--img .kicker, body.luxe .page-hero--img .kicker .k-num { color: rgba(255,255,255,0.92); text-shadow: 0 1px 8px rgba(0,0,0,0.18); }
body.luxe .page-hero--img .kicker .k-line { background: rgba(255,255,255,0.55); }
body.luxe .page-hero--img .breadcrumb { color: rgba(255,255,255,0.78); }
body.luxe .page-hero--img .breadcrumb a:hover, body.luxe .page-hero--img .breadcrumb .cur { color: #fff; }

/* =============================================================
   LIVE CHAT WIDGET (generic branding, opens WhatsApp + captures email)
   ============================================================= */
.lc-widget { position: fixed; right: clamp(16px, 2.4vw, 30px); bottom: clamp(16px, 2.4vw, 30px); z-index: 300; font-family: var(--lx-sans); }
body.luxe .back-to-top { right: auto; left: clamp(16px, 2.4vw, 30px); }

.lc-toggle {
  display: inline-flex; align-items: center; gap: 10px; cursor: pointer;
  height: 58px; padding: 0 22px 0 20px; border: none; border-radius: 999px;
  background: linear-gradient(135deg, #e6c778 0%, #cba24a 55%, #b78f38 100%); color: #2a1e07;
  font-family: var(--lx-sans); font-weight: 700; font-size: 0.9rem; letter-spacing: 0.01em;
  box-shadow: 0 16px 40px rgba(182,145,60,0.42), inset 0 1px 0 rgba(255,255,255,0.5);
  transition: transform 0.3s var(--lx-ease), box-shadow 0.3s var(--lx-ease);
}
.lc-toggle:hover { transform: translateY(-3px); box-shadow: 0 22px 50px rgba(182,145,60,0.5); }
.lc-toggle svg { width: 24px; height: 24px; }
.lc-ic-close { display: none; }
.lc-widget.is-open .lc-ic-open, .lc-widget.is-open .lc-toggle-label { display: none; }
.lc-widget.is-open .lc-ic-close { display: block; }
.lc-widget.is-open .lc-toggle { padding: 0; width: 58px; justify-content: center; }

.lc-panel {
  position: absolute; right: 0; bottom: 72px; width: min(360px, calc(100vw - 32px));
  background: #fff; border: 1px solid rgba(20,24,34,0.08); border-radius: 22px; overflow: hidden;
  box-shadow: 0 30px 70px rgba(20,24,34,0.24);
  transform: translateY(14px) scale(0.98); opacity: 0; pointer-events: none;
  transition: transform 0.35s var(--lx-ease), opacity 0.35s var(--lx-ease);
}
.lc-widget.is-open .lc-panel { transform: translateY(0) scale(1); opacity: 1; pointer-events: auto; }
.lc-panel[hidden] { display: block; } /* animate instead of hard-hide */

.lc-head { display: flex; align-items: center; gap: 12px; padding: 18px 20px; background: var(--lx-mint); color: var(--lx-ink); border-bottom: 1px solid rgba(20,40,30,0.08); }
.lc-avatar { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 0.9rem; color: #2a1e07; background: linear-gradient(135deg, #e6c778, #cba24a); flex: none; box-shadow: 0 4px 12px rgba(182,145,60,0.3); }
.lc-title { font-weight: 700; font-size: 0.98rem; color: var(--lx-ink); }
.lc-status { font-size: 0.76rem; color: var(--lx-ink-60); display: flex; align-items: center; gap: 6px; margin-top: 2px; }
.lc-dot { width: 8px; height: 8px; border-radius: 50%; background: #43d17f; box-shadow: 0 0 0 3px rgba(67,209,127,0.25); }

.lc-body { padding: 18px 20px 20px; }
.lc-msg { background: var(--lx-mint); color: var(--lx-ink); font-size: 0.9rem; line-height: 1.5; padding: 13px 15px; border-radius: 14px 14px 14px 4px; margin: 0 0 16px; }
.lc-field { display: block; margin-bottom: 12px; }
.lc-field span { display: block; font-size: 0.74rem; font-weight: 600; color: var(--lx-ink-60); letter-spacing: 0.02em; margin-bottom: 6px; }
.lc-field input, .lc-field textarea {
  width: 100%; font-family: var(--lx-sans); font-size: 0.92rem; color: var(--lx-ink);
  padding: 11px 13px; border: 1px solid rgba(20,24,34,0.14); border-radius: 12px; background: #fbfbfa; resize: vertical;
}
.lc-field input:focus, .lc-field textarea:focus { outline: none; border-color: var(--lx-gold-rich); box-shadow: 0 0 0 3px rgba(182,145,60,0.14); }
.lc-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.lc-send {
  width: 100%; height: 50px; border: none; border-radius: 999px; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  background: linear-gradient(135deg, #e6c778 0%, #cba24a 55%, #b78f38 100%); color: #2a1e07;
  font-family: var(--lx-sans); font-weight: 700; font-size: 0.9rem;
  box-shadow: 0 12px 30px rgba(182,145,60,0.36); transition: transform 0.25s var(--lx-ease);
}
.lc-send:hover { transform: translateY(-2px); }
.lc-send svg { width: 18px; height: 18px; }
.lc-note { font-size: 0.72rem; color: var(--lx-ink-45); text-align: center; margin: 12px 0 0; line-height: 1.4; }
.lc-done { text-align: center; padding: 6px 0 2px; }
.lc-done svg { width: 44px; height: 44px; color: var(--mz-teal); margin-bottom: 8px; }
.lc-done p { font-size: 0.92rem; color: var(--lx-ink); line-height: 1.5; }
@media (prefers-reduced-motion: reduce) { .lc-panel, .lc-toggle, .lc-send { transition: none; } }

/* Brighter, Monzo-vibrant interior hero colours (were too dark) */
body.luxe .page-hero.page-hero--img { background: linear-gradient(140deg, #ff7d60 0%, #ff5a45 52%, #ef4a30 100%); }
body.luxe .page-hero.page-hero--teal { background: linear-gradient(140deg, #22c6b4 0%, #17a398 52%, #12897f 100%); }
body.luxe .page-hero.page-hero--blue { background: linear-gradient(140deg, #5a8bff 0%, #3a6ff0 52%, #2f5be0 100%); }
/* softer scrim on the bright colour heroes so the colour stays vivid */
body.luxe .page-hero--img .page-hero-scrim {
  background:
    radial-gradient(58% 78% at 84% 14%, rgba(255,255,255,0.14), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,0) 52%, rgba(0,0,0,0.14) 100%);
}
/* white pill CTA on colour heroes (Monzo) */
body.luxe .page-hero--img .page-hero-actions .btn-primary,
body.luxe .page-hero--img .lx-btn.solid {
  background: #fff; color: var(--lx-ink) !important; border: none;
  box-shadow: 0 14px 34px rgba(0,0,0,0.2);
}
body.luxe .page-hero--img .page-hero-actions .btn-primary:hover,
body.luxe .page-hero--img .lx-btn.solid:hover {
  background: #f2f2f2; color: var(--lx-ink) !important; transform: translateY(-3px);
}
body.luxe .page-hero--img .page-hero-actions .btn-primary svg,
body.luxe .page-hero--img .lx-btn.solid svg { color: var(--lx-ink); }

/* ---- Wider, editorial "Wer wir sind" statement (was too narrow) ---- */
body.luxe .lx-statement {
  max-width: 1180px; text-align: left;
  display: grid; grid-template-columns: 1.05fr 1fr;
  column-gap: clamp(40px, 6vw, 96px); row-gap: 14px; align-items: start;
}
body.luxe .lx-statement .lx-label { grid-column: 1; grid-row: 1; justify-content: flex-start; text-align: left; }
body.luxe .lx-statement .lx-display { grid-column: 1; grid-row: 2; max-width: none; margin: 14px 0 0; }
body.luxe .lx-statement .lx-body { grid-column: 2; grid-row: 2; max-width: 52ch; margin: 10px 0 0; align-self: center; }
body.luxe .lx-statement > div:last-child { grid-column: 2; grid-row: 3; margin-top: 4px; }
@media (max-width: 860px) {
  body.luxe .lx-statement { grid-template-columns: 1fr; }
  /* reset BOTH column and row so the heading, body and link stack instead of overlapping */
  body.luxe .lx-statement .lx-label,
  body.luxe .lx-statement .lx-display,
  body.luxe .lx-statement .lx-body,
  body.luxe .lx-statement > div:last-child { grid-column: 1; grid-row: auto; }
}
/* similar centred blocks get more breathing width too */
body.luxe .lx-narrow { max-width: 1120px; }
body.luxe .lx-cta .lx-narrow { max-width: 1000px; }
body.luxe .lx-cta .lx-display { max-width: 26ch; font-size: clamp(2.6rem, 5.6vw, 4.8rem); margin-inline: auto; }
body.luxe .section-head .lead, body.luxe .lx-statement .lx-body { line-height: 1.7; }

/* ---- Slim stats strip beneath the hero ---- */
body.luxe .cx-stats-strip { padding: clamp(30px, 4.5vw, 54px) 0; border-bottom: 1px solid var(--lx-hair-soft); }
body.luxe .cx-strip-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(18px, 2.4vw, 40px); }
body.luxe .cx-strip-num { font-family: var(--lx-serif); font-weight: 700; font-size: clamp(1.9rem, 3vw, 2.7rem); color: var(--lx-ink); letter-spacing: -0.02em; line-height: 1; }
body.luxe .cx-strip-num .u { color: var(--lx-gold-rich); font-size: 0.58em; }
body.luxe .cx-strip-cl { margin-top: 10px; font-family: var(--lx-sans); font-size: 0.92rem; line-height: 1.5; color: var(--lx-ink-60); max-width: 24ch; }
@media (max-width: 860px) { body.luxe .cx-strip-grid { grid-template-columns: repeat(2, 1fr); gap: 26px; } }
body.luxe .cx-strip-item { min-width: 0; }

/* ---- Monzo scale: rein in oversized type across the site ---- */
body.luxe .lx-display { font-size: clamp(2rem, 3.8vw, 3.1rem); }
body.luxe .mz-h2, body.luxe .lx-section h2 { font-size: clamp(1.75rem, 3vw, 2.6rem); }
body.luxe .page-hero h1, body.luxe .page-hero .page-hero-title { font-size: clamp(2.1rem, 4vw, 3.3rem); }
body.luxe .lx-lead, body.luxe .cx-lead, body.luxe .lead { font-size: clamp(1rem, 1.15vw, 1.15rem); }

/* ---- Card definition on the white canvas ---- */
body.luxe .value-card, body.luxe .info-card, body.luxe .step,
body.luxe .team-card, body.luxe .plan-card, body.luxe .acc-item {
  background: #fff;
  border: 1px solid rgba(20,24,34,0.09);
  box-shadow: 0 1px 2px rgba(20,24,34,0.04);
}
body.luxe .section--paper, body.luxe .section--cream, body.luxe .section--white { background: #fff; }
body.luxe .section--mist, body.luxe .section--paper-2 { background: var(--lx-paper-2); }

/* =============================================================
   PRIVAT / GESCHÄFT toggle + animated chart
   ============================================================= */
body.luxe .pb-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; flex-wrap: wrap; margin-bottom: clamp(28px, 3.4vw, 50px); }
body.luxe .pb-toggle { position: relative; display: inline-flex; background: var(--lx-paper-2); border: 1px solid var(--lx-hair); border-radius: 999px; padding: 5px; }
body.luxe .pb-tab { position: relative; z-index: 1; border: none; background: none; cursor: pointer; font-family: var(--lx-sans); font-weight: 600; font-size: 0.9rem; color: var(--lx-ink-60); padding: 10px 24px; border-radius: 999px; transition: color 0.3s; }
body.luxe .pb-tab.is-active { color: #fff; }
body.luxe .pb-thumb { position: absolute; top: 5px; left: 0; height: calc(100% - 10px); border-radius: 999px; background: var(--lx-navy); transition: transform 0.4s var(--lx-ease), width 0.4s var(--lx-ease); z-index: 0; }
body.luxe .pb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3vw, 56px); align-items: center; }
body.luxe .pb-list { list-style: none; margin: 0; padding: 0; }
body.luxe .pb-list[hidden] { display: none; }
body.luxe .pb-list li { display: flex; gap: 16px; align-items: center; padding: clamp(13px, 1.5vw, 19px) 0; border-bottom: 1px solid var(--lx-hair-soft); }
body.luxe .pb-list li:last-child { border-bottom: none; }
body.luxe .pb-ico { width: 46px; height: 46px; border-radius: 14px; flex: none; display: grid; place-items: center; color: #fff; }
body.luxe .pb-ico svg { width: 22px; height: 22px; }
body.luxe .pb-list strong { display: block; font-family: var(--lx-sans); font-weight: 700; color: var(--lx-ink); font-size: 1.02rem; }
body.luxe .pb-list span { color: var(--lx-ink-60); font-size: 0.9rem; }
body.luxe .pb-chart-card { background: #fff; border: 1px solid var(--lx-hair); border-radius: clamp(20px, 2vw, 28px); padding: clamp(24px, 2.6vw, 34px); box-shadow: 0 20px 50px rgba(28,26,20,0.08); }
body.luxe .pb-chart-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 18px; }
body.luxe .pb-chart-label { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--lx-gold-deep); }
body.luxe .pb-chart-title { font-family: var(--lx-serif); font-weight: 700; color: var(--lx-ink); font-size: 1.3rem; margin-top: 4px; }
body.luxe .pb-chart-delta { font-family: var(--lx-sans); font-weight: 800; color: var(--mz-teal); font-size: 1.1rem; background: rgba(23,163,152,0.12); padding: 6px 13px; border-radius: 999px; white-space: nowrap; }
body.luxe .pb-chart { width: 100%; height: clamp(150px, 18vw, 200px); display: block; }
body.luxe .pb-grid-l { stroke: var(--lx-hair-soft); stroke-width: 1; }
body.luxe .pb-line { stroke: var(--lx-gold-rich); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1; stroke-dashoffset: 1; }
body.luxe .pb-chart.is-drawn .pb-line { transition: stroke-dashoffset 1.6s var(--lx-ease); stroke-dashoffset: 0; }
body.luxe .pb-area { opacity: 0; transition: opacity 1s var(--lx-ease) 0.25s; }
body.luxe .pb-chart.is-drawn .pb-area { opacity: 1; }
body.luxe .pb-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--lx-hair-soft); }
body.luxe .pb-kpi span { display: block; font-family: var(--lx-sans); font-weight: 800; color: var(--lx-ink); font-size: 1.02rem; }
body.luxe .pb-kpi small { color: var(--lx-ink-45); font-size: 0.74rem; }
@media (max-width: 860px) { body.luxe .pb-grid { grid-template-columns: 1fr; } }

/* =============================================================
   FÜR JEDE LEBENSLAGE (lifestyle image cards, horizontal scroll)
   ============================================================= */
body.luxe .ll-head { max-width: 620px; margin-bottom: clamp(28px, 3.4vw, 48px); }
body.luxe .ll-sub { color: var(--lx-ink-60); font-size: clamp(1rem, 1.2vw, 1.12rem); line-height: 1.6; margin-top: 12px; }
body.luxe .ll-row {
  display: flex; gap: clamp(14px, 1.5vw, 22px); padding: 4px 2px 8px;
  overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; -ms-overflow-style: none;
}
body.luxe .ll-row::-webkit-scrollbar { display: none; }
/* head + nav arrows */
body.luxe .ll-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 20px; }
body.luxe .ll-nav { display: inline-flex; gap: 10px; }
body.luxe .ll-arrow { width: 50px; height: 50px; border-radius: 999px; border: 1px solid var(--lx-hair); background: var(--lx-paper-2); color: var(--lx-ink); display: grid; place-items: center; cursor: pointer; box-shadow: 0 6px 18px rgba(28,26,20,0.06); transition: background 0.25s, color 0.25s, border-color 0.25s, transform 0.25s; }
body.luxe .ll-arrow:hover { background: var(--lx-gold-rich); border-color: var(--lx-gold-rich); color: #2a1e07; transform: translateY(-2px); }
body.luxe .ll-arrow svg { width: 20px; height: 20px; }
body.luxe .ll-arrow:disabled { opacity: 0.35; cursor: default; transform: none; background: #fff; color: var(--lx-ink); border-color: var(--lx-hair); }
body.luxe .ll-card {
  position: relative; flex: 0 0 clamp(238px, 22vw, 300px); aspect-ratio: 3 / 4; scroll-snap-align: start;
  border-radius: clamp(20px, 2vw, 28px); overflow: hidden; isolation: isolate;
  text-decoration: none;
  box-shadow: 0 18px 44px rgba(28,26,20,0.16);
}
body.luxe .ll-card::before {
  content: ""; position: absolute; inset: 0; z-index: -2;
  background-color: var(--ll-bg, var(--lx-navy));
  background-image: var(--ll-img); background-size: cover; background-position: center;
  transition: transform 0.65s var(--lx-ease);
}
body.luxe .ll-card:hover::before { transform: scale(1.06); }
body.luxe .ll-card::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(9,16,28,0) 28%, rgba(9,16,28,0.5) 58%, rgba(9,16,28,0.94) 100%);
}
body.luxe .ll-inner { position: absolute; left: 0; right: 0; bottom: 0; padding: clamp(18px, 1.8vw, 26px); }
body.luxe .ll-cat { display: block; font-family: var(--lx-serif); font-weight: 700; color: #fff; font-size: clamp(1.1rem, 1.5vw, 1.42rem); line-height: 1.15; letter-spacing: -0.01em; }
body.luxe .ll-txt { color: rgba(236,240,246,0.86); font-size: 0.88rem; line-height: 1.45; margin: 8px 0 0; }
body.luxe .ll-arrow {
  position: absolute; top: clamp(15px, 1.4vw, 20px); right: clamp(15px, 1.4vw, 20px);
  width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff;
  background: rgba(255,255,255,0.18); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: background 0.3s, transform 0.3s, color 0.3s;
}
body.luxe .ll-arrow svg { width: 20px; height: 20px; }
body.luxe .ll-card:hover .ll-arrow { background: var(--lx-gold-rich); color: #2a1e07; transform: translateY(-2px); }

/* =============================================================
   TELL-ME-ABOUT LISTING (Monzo soft-mint card + hover)
   ============================================================= */
body.luxe .tma-card {
  background: var(--lx-mint);
  border-radius: clamp(24px, 3vw, 44px);
  padding: clamp(30px, 4.5vw, 72px);
  position: relative; overflow: hidden;
}
body.luxe .tma-title {
  font-family: var(--lx-serif); font-weight: 700; color: var(--lx-ink);
  font-size: clamp(1.8rem, 3.6vw, 3rem); line-height: 1.05; letter-spacing: -0.02em;
}
body.luxe .tma-sub { color: var(--lx-ink-60); margin-top: 12px; font-size: clamp(1rem, 1.2vw, 1.1rem); }
body.luxe .tma-list { list-style: none; margin: clamp(24px, 3.4vw, 46px) 0 0; padding: 0; }
body.luxe .tma-list li { border-top: 1px solid rgba(20,24,34,0.14); }
body.luxe .tma-list li:last-child { border-bottom: 1px solid rgba(20,24,34,0.14); }
body.luxe .tma-list a {
  display: flex; align-items: center; justify-content: space-between; gap: 18px;
  padding: clamp(16px, 2.1vw, 28px) clamp(10px, 1.4vw, 20px);
  text-decoration: none; border-radius: 16px;
  transition: background 0.35s var(--lx-ease), padding 0.35s var(--lx-ease);
}
body.luxe .tma-label {
  font-family: var(--lx-serif); font-weight: 700; color: var(--mz-coral);
  font-size: clamp(1.5rem, 3.1vw, 2.5rem); letter-spacing: -0.01em; line-height: 1.1;
  transition: transform 0.4s var(--lx-ease), color 0.3s;
}
body.luxe .tma-arrow {
  flex: none; width: clamp(40px, 3vw, 52px); height: clamp(40px, 3vw, 52px);
  border-radius: 50%; display: grid; place-items: center;
  background: var(--mz-coral); color: #fff;
  opacity: 0; transform: translateX(-14px) scale(0.8);
  transition: opacity 0.4s var(--lx-ease), transform 0.4s var(--lx-ease);
}
body.luxe .tma-arrow svg { width: 22px; height: 22px; }
body.luxe .tma-list a:hover, body.luxe .tma-list a:focus-visible {
  background: rgba(255,255,255,0.62); padding-left: clamp(18px, 2vw, 30px);
}
body.luxe .tma-list a:hover .tma-label, body.luxe .tma-list a:focus-visible .tma-label {
  transform: translateX(10px); color: var(--mz-coral-deep);
}
body.luxe .tma-list a:hover .tma-arrow, body.luxe .tma-list a:focus-visible .tma-arrow {
  opacity: 1; transform: translateX(0) scale(1);
}

/* =========================================================
   HOME-STYLE UNIFICATION (match interior cards to the home page)
   value-card / service-card  ->  .mz-card   |   stat-card -> .mz-fig
   ========================================================= */
body.luxe .value-card, body.luxe .service-card {
  border-radius: 28px !important; border: 1px solid var(--lx-hair);
  box-shadow: 0 16px 44px rgba(28,26,20,0.07);
  padding: clamp(28px, 2.6vw, 40px);
  transition: transform 0.55s var(--lx-ease), box-shadow 0.55s var(--lx-ease);
}
body.luxe .value-card:hover, body.luxe .service-card:hover {
  transform: translateY(-10px); box-shadow: 0 40px 80px rgba(28,26,20,0.16);
}
body.luxe .value-card .vc-ico, body.luxe .service-card .svc-ico {
  width: 66px !important; height: 66px !important; border-radius: 20px !important;
  margin-bottom: 26px !important; display: grid; place-items: center; color: #fff !important;
}
body.luxe .value-card .vc-ico svg, body.luxe .service-card .svc-ico svg { width: 30px !important; height: 30px !important; }
body.luxe .value-card h3, body.luxe .service-card h3 { font-size: 1.4rem; margin-bottom: 12px; }
body.luxe .value-card p, body.luxe .service-card p { font-size: 0.96rem; line-height: 1.6; }

/* stat-card -> solid Monzo colour tiles like the home .mz-fig */
body.luxe .stat-card {
  color: #fff !important; border: none !important; border-radius: 26px !important;
  min-height: 220px; display: flex; flex-direction: column; justify-content: flex-end;
  align-items: flex-start; text-align: left !important;
  padding: clamp(28px, 2.6vw, 40px) !important;
  box-shadow: 0 20px 48px rgba(28,26,20,0.12);
  position: relative; overflow: hidden;
  transition: transform 0.55s var(--lx-ease), box-shadow 0.55s var(--lx-ease);
}
body.luxe .stat-card:hover { transform: translateY(-8px); box-shadow: 0 40px 80px rgba(28,26,20,0.16); }
body.luxe .stat-card::before {
  content: ""; position: absolute; right: -30px; top: -30px; width: 130px; height: 130px;
  border-radius: 50%; background: rgba(255,255,255,0.1);
}
body.luxe .grid.cols-4 > .stat-card:nth-child(4n+1) { background: var(--mz-coral); }
body.luxe .grid.cols-4 > .stat-card:nth-child(4n+2) { background: var(--mz-blue); }
body.luxe .grid.cols-4 > .stat-card:nth-child(4n+3) { background: var(--lx-gold-rich); }
body.luxe .grid.cols-4 > .stat-card:nth-child(4n+4) { background: var(--mz-teal); }
body.luxe .stat-card .stat-num, body.luxe .stat-card .stat-num.gold-text {
  color: #fff !important; -webkit-text-fill-color: #fff !important;
  font-family: var(--lx-sans) !important; font-weight: 800 !important; font-style: normal !important;
  font-size: clamp(1.85rem, 2.7vw, 2.7rem) !important; letter-spacing: -0.025em;
  font-variant-numeric: tabular-nums; line-height: 1.04;
}
body.luxe .stat-card .stat-num .u { color: #fff !important; opacity: 0.85; font-weight: 700; }
body.luxe .stat-card .stat-label { color: rgba(255,255,255,0.86) !important; text-align: left !important; margin-top: 12px; font-size: 0.9rem; line-height: 1.45; }

/* ============ LANGUAGE DROPDOWN (nav) ============ */
body.luxe .lang-dd { position: relative; margin-right: 10px; }
body.luxe .lang-dd-btn { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--lx-hair); background: rgba(28,26,20,0.03); cursor: pointer; font-family: var(--lx-sans); font-weight: 700; font-size: 0.75rem; letter-spacing: 0.04em; color: var(--lx-ink); padding: 8px 12px; border-radius: 999px; transition: background 0.2s, border-color 0.2s, color 0.2s; }
body.luxe .lang-dd-btn:hover { background: rgba(28,26,20,0.06); }
body.luxe .lang-dd-btn svg { width: 14px; height: 14px; color: var(--lx-ink-45); transition: transform 0.3s; }
body.luxe .lang-dd.is-open .lang-dd-btn svg { transform: rotate(180deg); }
body.luxe .lang-dd-menu { position: absolute; top: calc(100% + 10px); right: 0; min-width: 152px; background: #fff; border: 1px solid var(--lx-hair); border-radius: 16px; box-shadow: 0 22px 50px rgba(28,26,20,0.16); padding: 6px; display: flex; flex-direction: column; gap: 2px; opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity 0.22s var(--lx-ease), transform 0.22s var(--lx-ease), visibility 0.22s; z-index: 80; }
body.luxe .lang-dd.is-open .lang-dd-menu { opacity: 1; visibility: visible; transform: translateY(0); }
body.luxe .lang-dd-menu .lang-opt { text-align: left; border: none; background: none; cursor: pointer; font-family: var(--lx-sans); font-weight: 600; font-size: 0.85rem; color: var(--lx-ink-60); padding: 10px 12px; border-radius: 10px; transition: color 0.2s, background 0.2s; }
body.luxe .lang-dd-menu .lang-opt:hover { color: var(--lx-ink); background: var(--lx-mint); }
body.luxe .lang-dd-menu .lang-opt.is-active { color: #2a1e07; background: linear-gradient(135deg, #e6c778 0%, #cba24a 60%, #b78f38 100%); box-shadow: 0 2px 8px rgba(182,145,60,0.3); }
/* on transparent photo hero the header text is light */
body.luxe .site-header.on-hero:not(.scrolled) .lang-dd-btn { color: #fff; border-color: rgba(255,255,255,0.42); background: rgba(255,255,255,0.12); }
body.luxe .site-header.on-hero:not(.scrolled) .lang-dd-btn svg { color: rgba(255,255,255,0.85); }
@media (max-width: 1024px) { body.luxe .lang-dd { display: none; } }

/* bigger logo */
body.luxe .brand img { height: 92px !important; }
@media (max-width: 640px) { body.luxe .brand img { height: 74px !important; } }

/* ============ COVERAGE MAP ============ */
body.luxe .chmap-card { display: grid; grid-template-columns: 0.88fr 1.12fr; gap: clamp(28px, 4vw, 68px); align-items: center; background: var(--lx-mint); border-radius: clamp(26px, 2.8vw, 44px); padding: clamp(32px, 5vw, 76px); max-width: min(calc(100% - 2 * var(--gutter)), calc(var(--container-wide) - 2 * var(--gutter))); margin-inline: auto; }
body.luxe .chmap-copy h2 { margin-bottom: 18px; }
body.luxe .chmap-copy p { color: var(--lx-ink-60); max-width: 46ch; line-height: 1.6; }
body.luxe .chmap-stats { display: flex; gap: clamp(28px, 4vw, 52px); margin-top: 30px; }
body.luxe .chmap-stat b { font-family: var(--lx-sans); font-weight: 800; font-size: clamp(1.8rem, 3vw, 2.4rem); letter-spacing: -0.02em; color: var(--lx-gold-deep); display: block; line-height: 1; }
body.luxe .chmap-stat small { display: block; margin-top: 8px; color: var(--lx-ink-60); font-size: 0.85rem; max-width: 18ch; }
body.luxe .chmap-vis { position: relative; }
body.luxe .chmap-svg { width: 100%; height: auto; display: block; overflow: visible; }
body.luxe .chmap-svg .cn { fill: var(--lx-gold-rich); stroke: #fff; stroke-width: 1.6; stroke-linejoin: round; transition: fill 0.25s var(--lx-ease), transform 0.3s var(--lx-ease); transform-origin: center; transform-box: fill-box; cursor: pointer; }
body.luxe .chmap-svg .cn:hover { fill: var(--mz-coral); transform: translateY(-2px) scale(1.015); }
body.luxe .chmap-tip { position: absolute; top: 0; left: 0; pointer-events: none; background: var(--lx-navy); color: #fff; font-family: var(--lx-sans); font-weight: 600; font-size: 0.78rem; padding: 6px 11px; border-radius: 999px; white-space: nowrap; transform: translate(-50%, -140%); box-shadow: 0 8px 20px rgba(9,16,28,0.28); z-index: 5; }
@media (max-width: 860px) { body.luxe .chmap-card { grid-template-columns: 1fr; text-align: left; } }

/* ============ CONTACT FORM (mint card + custom selects) ============ */
body.luxe .form-card { background: var(--lx-mint) !important; border: 1px solid rgba(28,26,20,0.06) !important; border-radius: clamp(22px, 2.2vw, 32px) !important; box-shadow: 0 26px 64px rgba(28,26,20,0.09) !important; padding: clamp(28px, 3.4vw, 48px) !important; }
body.luxe .form-card::before, body.luxe .form-card::after { display: none !important; }
body.luxe .form-card .field input, body.luxe .form-card .field textarea, body.luxe .form-card .field select { background: #fff !important; border: 1px solid rgba(28,26,20,0.1) !important; border-radius: 14px !important; padding: 13px 15px; font-family: var(--lx-sans); font-size: 0.95rem; color: var(--lx-ink); }
body.luxe .form-card .field textarea { border-radius: 16px !important; min-height: 132px; resize: vertical; }
body.luxe .form-card .field input:focus, body.luxe .form-card .field textarea:focus, body.luxe .form-card .field select:focus { border-color: var(--lx-gold-rich) !important; box-shadow: 0 0 0 3px rgba(182,145,60,0.16) !important; outline: none; }
body.luxe .form-card .field label { color: var(--lx-ink); font-weight: 600; font-size: 0.86rem; }
body.luxe .select-wrap { position: relative; }
body.luxe .select-wrap select { width: 100%; appearance: none; -webkit-appearance: none; -moz-appearance: none; padding-right: 42px !important; cursor: pointer; }
body.luxe .select-wrap svg { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--lx-gold-deep); pointer-events: none; }
body.luxe .form-card .form-check span { color: var(--lx-ink-60); }
body.luxe .form-card .form-check a { color: var(--lx-gold-deep); }

/* ============ LEGAL PAGES (Impressum / Datenschutz) ============ */
body.luxe .section--white .legal-body, body.luxe .legal-body { max-width: 1080px !important; margin-inline: auto !important; }
body.luxe .toc-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 0 0 8px; padding: clamp(18px, 2vw, 24px); background: var(--lx-mint); border-radius: 22px; border: none; }
body.luxe .toc-chips a { background: #fff !important; border: 1px solid rgba(28,26,20,0.06) !important; border-radius: 999px !important; padding: 9px 16px; font-size: 0.82rem; font-weight: 600; color: var(--lx-ink-60) !important; box-shadow: 0 4px 12px rgba(28,26,20,0.05); transition: transform 0.2s, color 0.2s, border-color 0.2s; }
body.luxe .toc-chips a:hover { color: var(--lx-gold-deep) !important; border-color: var(--lx-gold-rich) !important; background: #fff !important; transform: translateY(-2px); }
body.luxe .legal-body h2 { margin-top: 54px; padding-top: 34px; border-top: 1px solid var(--lx-hair); font-family: var(--lx-serif); font-weight: 700; font-size: clamp(1.35rem, 2.2vw, 1.72rem); letter-spacing: -0.01em; color: var(--lx-ink); scroll-margin-top: 96px; }
body.luxe .legal-body h3 { margin-top: 28px; margin-bottom: 6px; font-size: 1.05rem; font-weight: 700; color: var(--lx-ink); }
body.luxe .legal-body p, body.luxe .legal-body li { line-height: 1.82; color: var(--lx-ink-60); margin-bottom: 14px; }
body.luxe .legal-body > p:first-of-type { font-size: 1.06rem; color: var(--lx-ink); margin-top: 30px; }
body.luxe .legal-body ul { margin: 8px 0 20px; padding-left: 2px; list-style: none; }
body.luxe .legal-body ul li { position: relative; padding-left: 22px; }
body.luxe .legal-body ul li::before { content: ""; position: absolute; left: 3px; top: 11px; width: 6px; height: 6px; background: var(--lx-gold-rich); border-radius: 50%; }
body.luxe .legal-body a { color: var(--lx-gold-deep); text-decoration: underline; text-underline-offset: 2px; }
body.luxe .legal-body .form-note { display: block; margin-top: 44px; padding: 16px 20px; background: var(--lx-paper-2); border-left: 3px solid var(--lx-gold-rich); border-radius: 12px; font-size: 0.85rem; color: var(--lx-ink-45); }

/* service page body prose */
body.luxe .svc-body { max-width: 64rem; margin: 0 0 clamp(38px, 4.5vw, 60px); display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 46px); }
body.luxe .svc-body p { color: var(--lx-ink-60); line-height: 1.82; font-size: 1.02rem; margin: 0; }
@media (max-width: 720px) { body.luxe .svc-body { grid-template-columns: 1fr; gap: 16px; } }

/* ============================================================
   MOBILE RESPONSIVENESS PASS
   ============================================================ */
html, body.luxe { overflow-x: hidden; max-width: 100%; }
@media (max-width: 640px) {
  html, body.luxe { overflow-x: hidden !important; }
  /* break circular 100% overflow: clip (NOT hidden -> avoids stray scrollbars) */
  body.luxe main, body.luxe .lx-section, body.luxe .section, body.luxe .section-sm, body.luxe .lx-container, body.luxe .container, body.luxe .container-ed { max-width: 100% !important; overflow-x: clip; }
  /* hero / band / footer / navbar: identical margin-based width (immune to overflow) */
  body.luxe .cx-hero, body.luxe .page-hero.page-hero--img, body.luxe .lx-band, body.luxe .site-footer {
    width: auto !important; max-width: none !important; margin-left: 14px !important; margin-right: 14px !important;
  }
  body.luxe .header-inner { padding: 12px 0 0 !important; max-width: none !important; }
  body.luxe .site-header .nav { width: auto; margin: 0 14px; }
  /* the decorative hero location line overlaps the arrows on small screens */
  body.luxe .cx-hero--photo .cx-meta { display: none; }
  body.luxe .cx-hero--photo { padding-left: 22px; padding-right: 22px; }
  body.luxe .cx-hero--photo .cx-hero-copy, body.luxe .cx-hero-copy { max-width: 100%; }
  body.luxe .cx-hero-inner { width: 100%; max-width: 100%; }
  /* hero copy fits the viewport */
  body.luxe .cx-hero-inner { grid-template-columns: 1fr; }
  body.luxe .cx-h1 { font-size: clamp(2.3rem, 10.5vw, 3.2rem); }
  body.luxe .cx-lead { max-width: 100% !important; font-size: 1rem; line-height: 1.6; }
  body.luxe .cx-kicker { font-size: 0.6rem; letter-spacing: 0.1em; }
  body.luxe .cx-hero-copy { padding-right: 4px; }
  body.luxe .cx-actions { flex-wrap: wrap; }
  body.luxe .cx-actions .btn, body.luxe .cx-actions .lx-btn { width: 100%; justify-content: center; }
  /* stat strip + figure grids stack cleanly */
  body.luxe .cx-strip-grid { grid-template-columns: 1fr 1fr; gap: 24px 18px; }
  body.luxe .mz-figs, body.luxe .mz-grid, body.luxe .mz-svc-grid { grid-template-columns: 1fr; }
  body.luxe .grid.cols-4, body.luxe .grid.cols-3, body.luxe .grid.cols-2 { grid-template-columns: 1fr; }
  /* coverage map + split + personal-business stack */
  body.luxe .chmap-card { grid-template-columns: 1fr; text-align: left; }
  body.luxe .lx-split { grid-template-columns: 1fr; }
  body.luxe .pb-grid, body.luxe .pb-grid-l, body.luxe .pb-lists { grid-template-columns: 1fr; }
  /* section headings never overflow */
  body.luxe h1, body.luxe h2, body.luxe .mz-h2, body.luxe .lx-display { overflow-wrap: break-word; word-break: normal; }
  /* forms full width */
  body.luxe .form-grid { grid-template-columns: 1fr; }
  body.luxe .field.full, body.luxe .field { grid-column: auto; }
  /* dl-grid single column */
  body.luxe .dl-grid { grid-template-columns: 1fr; }
  /* footer stacks */
  body.luxe .footer-top { grid-template-columns: 1fr; gap: 32px; }
}

/* careers faces strip — all team members */
body.luxe .faces-stack { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 680px; margin: 0 auto; }
body.luxe .faces-stack img { width: 62px; height: 62px; border-radius: 50%; object-fit: cover; object-position: center top; border: 3px solid var(--lx-white); box-shadow: 0 6px 16px rgba(28,26,20,0.12); transition: transform 0.3s var(--lx-ease); }
body.luxe .faces-stack img:hover { transform: translateY(-4px) scale(1.06); }
@media (max-width: 520px) { body.luxe .faces-stack img { width: 52px; height: 52px; } }

/* careers job descriptions */
body.luxe .job-desc { margin: 8px 0 0; color: var(--lx-ink-60); font-size: 0.95rem; line-height: 1.6; max-width: 60ch; }

/* ============ COLLAPSIBLE JOB DESCRIPTIONS ============ */
body.luxe .job-acc { display: block !important; padding: 0 !important; overflow: hidden; border: 1px solid var(--lx-hair); border-radius: 22px; background: #fff; box-shadow: 0 12px 32px rgba(28,26,20,0.05); transition: box-shadow 0.4s var(--lx-ease); }
body.luxe .job-acc.open { box-shadow: 0 26px 60px rgba(28,26,20,0.12); }
body.luxe .job-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: clamp(22px, 2.6vw, 30px); font: inherit; color: inherit; }
body.luxe .job-head-main { flex: 1; }
body.luxe .job-head-main h3 { font-family: var(--lx-serif); font-weight: 700; font-size: 1.3rem; letter-spacing: -0.01em; }
body.luxe .job-toggle { flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--lx-paper-2); display: grid; place-items: center; color: var(--lx-gold-deep); transition: transform 0.4s var(--lx-ease), background 0.3s, color 0.3s; margin-top: 4px; }
body.luxe .job-toggle svg { width: 20px; height: 20px; }
body.luxe .job-acc.open .job-toggle { transform: rotate(180deg); background: var(--lx-gold-rich); color: #2a1e07; }
body.luxe .job-detail { max-height: 0; overflow: hidden; transition: max-height 0.5s var(--lx-ease); padding: 0 clamp(22px, 2.6vw, 30px); }
body.luxe .job-acc.open .job-detail { max-height: 1600px; padding-bottom: clamp(24px, 2.8vw, 32px); }
body.luxe .jd-block { margin-top: 22px; }
body.luxe .jd-block h4 { font-family: var(--lx-sans); font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.09em; color: var(--lx-gold-deep); margin-bottom: 12px; }
body.luxe .jd-block ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
body.luxe .jd-block li { position: relative; padding-left: 26px; color: var(--lx-ink-60); line-height: 1.6; font-size: 0.96rem; }
body.luxe .jd-block li::before { content: ""; position: absolute; left: 4px; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--lx-gold-rich); }
body.luxe .job-detail > .btn { margin-top: 26px; }

/* FIX: closed mobile drawer sits off-screen (translateX 100%) and is position:fixed,
   so it escapes body overflow clipping and creates page-wide horizontal overflow.
   Clip it inside its viewport-sized container. */
body.luxe .mobile-nav { overflow: hidden; }

/* FIX: hero copy (centered) vs. bottom-pinned meta + carousel controls — reserve space so they never intersect */
body.luxe .cx-hero--photo { padding-bottom: clamp(104px, 13vh, 150px) !important; }
body.luxe .cx-hero--photo .cx-carousel-ui { bottom: clamp(20px, 3vw, 34px); }
body.luxe .cx-hero--photo .cx-meta { bottom: clamp(22px, 3.2vw, 38px); }
@media (max-width: 640px) {
  body.luxe .cx-hero--photo { padding-bottom: 96px !important; }
  body.luxe .cx-hero--photo .cx-carousel-ui { left: clamp(22px, 6vw, 40px); right: auto; bottom: 22px; }
}

/* mobile drawer sub-links (services) */
body.luxe .mobile-menu a.mm-sub { justify-content: flex-start; gap: 12px; font-family: var(--lx-sans); font-size: 1.02rem; font-weight: 600; color: var(--lx-ink-60); padding-top: 12px; padding-bottom: 12px; }
body.luxe .mobile-menu a.mm-sub::before { content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%; background: var(--lx-gold-rich); }
body.luxe .mobile-menu a.mm-sub svg { display: none; }
body.luxe .mobile-menu a.mm-sub:hover { color: var(--lx-gold-deep); padding-left: 6px; }

/* prevent long German compound words from overflowing/clipping card titles */
body.luxe .value-card h3, body.luxe .service-card h3, body.luxe .mz-card h3, body.luxe .mz-svc h3,
body.luxe .dl-item .dl-it-top > span, body.luxe .job-head-main h3 {
  overflow-wrap: break-word; word-break: break-word; hyphens: auto;
}

/* chart card header: keep the long title from colliding with the +42% badge */
body.luxe .pb-chart-top { gap: 14px; }
body.luxe .pb-chart-top > div:first-child { min-width: 0; }
body.luxe .pb-chart-title { overflow-wrap: break-word; }
body.luxe .pb-chart-delta { flex: none; align-self: flex-start; }

/* ============ Custom localized file input (CV upload) ============ */
body.luxe .file-input { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 4px; }
body.luxe .file-input-native { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
body.luxe .file-input-btn { display: inline-flex; align-items: center; gap: 9px; cursor: pointer; padding: 12px 20px; border-radius: 999px; border: 1px solid rgba(28,26,20,0.14); background: #fff; color: var(--lx-ink); font-family: var(--lx-sans); font-weight: 600; font-size: 0.92rem; transition: border-color 0.2s, background 0.2s, transform 0.2s; }
body.luxe .file-input-btn svg { width: 17px; height: 17px; color: var(--lx-gold-deep); }
body.luxe .file-input-btn:hover { border-color: var(--lx-gold-rich); background: #fbf8f1; transform: translateY(-1px); }
body.luxe .file-input-native:focus-visible + .file-input-btn { border-color: var(--lx-gold-rich); box-shadow: 0 0 0 3px rgba(182,145,60,0.16); }
body.luxe .file-input-name { color: #8a8378; font-size: 0.9rem; font-style: italic; }
body.luxe .file-input-name.has-file { color: var(--lx-ink); font-style: normal; font-weight: 600; }

/* =============================================================
   COOKIE CONSENT  ·  banner + preference centre (consent.js)
   Sits bottom-left so it never covers the live-chat launcher.
   ============================================================= */
.cc-banner {
  position: fixed; z-index: 500;
  left: clamp(16px, 2.4vw, 30px); bottom: clamp(16px, 2.4vw, 30px);
  width: min(400px, calc(100vw - 32px));
  background: #fff; border: 1px solid var(--lx-hair-soft); border-radius: 24px;
  padding: 26px 26px 22px;
  box-shadow: 0 30px 70px rgba(9,16,28,0.22);
  font-family: var(--lx-sans);
  opacity: 0; visibility: hidden; transform: translateY(20px) scale(0.98);
  transition: opacity 0.4s var(--lx-ease), transform 0.4s var(--lx-ease), visibility 0.4s;
}
.cc-banner.is-open { opacity: 1; visibility: visible; transform: none; }
.cc-eyebrow { display: block; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--lx-gold-deep); }
.cc-title { font-family: var(--lx-serif); font-weight: 700; font-size: 1.28rem; line-height: 1.25; color: var(--lx-ink); margin: 8px 0 10px; }
.cc-text { font-size: 0.88rem; line-height: 1.6; color: var(--lx-ink-60); }
.cc-link-wrap { margin: 10px 0 0; }
.cc-more { font-size: 0.82rem; font-weight: 600; color: var(--lx-gold-deep); text-decoration: none; border-bottom: 1px solid rgba(124,98,34,0.3); padding-bottom: 1px; transition: border-color 0.25s; }
.cc-more:hover { border-bottom-color: var(--lx-gold-deep); }
.cc-actions { display: flex; gap: 10px; margin-top: 20px; }
.cc-btn {
  flex: 1; min-height: 48px; padding: 0 16px; border-radius: 999px; cursor: pointer;
  font-family: var(--lx-sans); font-weight: 700; font-size: 0.9rem; line-height: 1.2;
  transition: background 0.25s, border-color 0.25s, transform 0.2s;
}
.cc-btn:hover { transform: translateY(-1px); }
.cc-btn-primary { border: none; color: #2a1e07; background: linear-gradient(135deg, #e6c778, #cba24a); }
.cc-btn-primary:hover { background: linear-gradient(135deg, #f0d488, #d6ab50); }
.cc-btn-ghost { border: 1px solid var(--lx-hair); background: #fff; color: var(--lx-ink); }
.cc-btn-ghost:hover { border-color: var(--lx-gold-rich); background: #fbf8f1; }
.cc-settings { display: block; width: 100%; margin-top: 12px; border: none; background: none; cursor: pointer; font-family: var(--lx-sans); font-size: 0.82rem; font-weight: 600; color: var(--lx-ink-45); text-decoration: underline; text-underline-offset: 3px; }
.cc-settings:hover { color: var(--lx-ink); }
.cc-btn:focus-visible, .cc-settings:focus-visible, .cc-close:focus-visible, .cc-more:focus-visible { outline: 2px solid var(--lx-gold-rich); outline-offset: 3px; }

/* ---- Preference centre ---- */
html.cc-lock, html.cc-lock body { overflow: hidden; }
.cc-overlay {
  position: fixed; inset: 0; z-index: 600; display: grid; place-items: center; padding: 20px;
  background: rgba(9,16,28,0.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  opacity: 0; visibility: hidden; transition: opacity 0.3s, visibility 0.3s;
}
.cc-overlay.is-open { opacity: 1; visibility: visible; }
.cc-modal {
  position: relative; width: min(540px, 100%); max-height: 88vh; overflow-y: auto;
  background: #fff; border-radius: 24px; padding: clamp(26px, 3vw, 38px);
  box-shadow: 0 40px 90px rgba(9,16,28,0.35); font-family: var(--lx-sans);
  transform: translateY(16px) scale(0.98); transition: transform 0.35s var(--lx-ease);
}
.cc-overlay.is-open .cc-modal { transform: none; }
.cc-close { position: absolute; top: 16px; right: 16px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--lx-hair); background: #fff; color: var(--lx-ink); display: grid; place-items: center; cursor: pointer; }
.cc-close svg { width: 18px; height: 18px; }
.cc-close:hover { border-color: var(--lx-gold-rich); }
.cc-modal-title { font-family: var(--lx-serif); font-weight: 700; font-size: 1.5rem; color: var(--lx-ink); margin: 8px 0 10px; }
.cc-modal-lead { font-size: 0.88rem; line-height: 1.6; color: var(--lx-ink-60); }
.cc-cat { border: 1px solid var(--lx-hair-soft); border-radius: 16px; padding: 16px 18px; margin-top: 14px; background: #fdfdfc; }
.cc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.cc-cat-head h3 { font-family: var(--lx-sans); font-weight: 700; font-size: 0.98rem; color: var(--lx-ink); }
.cc-cat p { margin-top: 7px; font-size: 0.83rem; line-height: 1.6; color: var(--lx-ink-60); }
.cc-pill { flex: none; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: #14603f; background: var(--lx-mint); border-radius: 999px; padding: 6px 12px; }
.cc-switch { flex: none; display: inline-flex; cursor: pointer; }
.cc-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cc-track { width: 52px; height: 30px; border-radius: 999px; background: var(--lx-hair); display: block; padding: 3px; transition: background 0.25s var(--lx-ease); }
.cc-knob { display: block; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(9,16,28,0.24); transition: transform 0.25s var(--lx-ease); }
.cc-switch input:checked + .cc-track { background: linear-gradient(135deg, #e6c778, #b6913c); }
.cc-switch input:checked + .cc-track .cc-knob { transform: translateX(22px); }
.cc-switch input:focus-visible + .cc-track { outline: 2px solid var(--lx-gold-rich); outline-offset: 3px; }
.cc-modal .cc-actions { margin-top: 22px; }

/* ---- Footer link ---- */
.cc-footer-link { cursor: pointer; }

@media (max-width: 560px) {
  .cc-banner { left: 12px; right: 12px; bottom: 12px; width: auto; padding: 22px 20px 18px; border-radius: 20px; }
  .cc-actions { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  .cc-banner, .cc-overlay, .cc-modal, .cc-btn, .cc-track, .cc-knob { transition: none; }
}

/* ============ MOBILE LANGUAGE SWITCHER (drawer) ============ */
body.luxe .mobile-lang {
  display: flex; gap: 4px; margin: -8px 0 22px; padding: 5px;
  background: rgba(28,26,20,0.05); border-radius: 999px;
}
body.luxe .mobile-lang .lang-opt {
  flex: 1; border: none; background: none; cursor: pointer; padding: 11px 0; border-radius: 999px;
  font-family: var(--lx-sans); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.06em;
  color: var(--lx-ink-45); transition: color 0.2s, background 0.2s;
}
body.luxe .mobile-lang .lang-opt:hover { color: var(--lx-ink); }
body.luxe .mobile-lang .lang-opt.is-active {
  color: #2a1e07; background: linear-gradient(135deg, #e6c778 0%, #cba24a 60%, #b78f38 100%);
  box-shadow: 0 2px 8px rgba(182,145,60,0.35);
}
body.luxe .mobile-lang .lang-opt:focus-visible { outline: 2px solid var(--lx-gold-rich); outline-offset: 2px; }
/* drawer switcher is only needed where the nav dropdown is hidden */
@media (min-width: 1025px) { body.luxe .mobile-lang { display: none; } }

/* Cookie banner steps aside while the mobile drawer or the service wizard is open */
.mobile-nav.open ~ .cc-banner,
.wz-overlay.is-open ~ .cc-banner,
.lc-widget.is-open ~ .cc-banner { opacity: 0; visibility: hidden; transform: translateY(16px) scale(0.98); }

/* Inline "open cookie settings" trigger inside legal copy */
.cc-inline { border: none; background: none; padding: 0; cursor: pointer; font: inherit; color: var(--lx-gold-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.cc-inline:hover { color: var(--lx-ink); }
