﻿    /* Chips */
    .chip{
      display:inline-flex;
      align-items:center;
      gap:.55rem;
      padding: .58rem .9rem;
      border-radius: 999px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.10);
      font-size:.92rem;
      color: rgba(255,255,255,.92);
      transition: transform .18s ease;
    }
    .chip:hover{ transform: translateY(-1px); }
    .chip.dark{
      background: rgba(0,0,0,.04);
      border: 1px solid rgba(0,0,0,.08);
      color: rgba(0,0,0,.75);
    }

    /* Lux cards */
    .lux-card{
      border-radius: var(--radius);
      overflow:hidden;
      border: 1px solid rgba(0,0,0,.08);
      background:#fff;
      box-shadow: var(--shadowSoft);
      transition: transform .22s ease, box-shadow .22s ease;
      height:100%;
    }
    .lux-card:hover{
      transform: translateY(-4px);
      box-shadow: 0 26px 65px rgba(0,0,0,.14);
    }
    .lux-card img{ width:100%; height: 250px; object-fit: cover; }
    .lux-card .padded{ padding: 18px 18px 20px; }

    /* Gallery */
    .gimg{
      border-radius: 16px;
      overflow:hidden;
      border:1px solid rgba(255,255,255,.10);
      box-shadow: 0 16px 45px rgba(0,0,0,.22);
      transform: translateZ(0);
    }
    .gimg img{
      width:100%;
      height: 280px;
      object-fit: cover;
      transition: transform .35s ease;
    }
    .gimg:hover img{ transform: scale(1.04); }

    /* Pricing */
    .price{
      font-size: clamp(2rem, 4vw, 3.1rem);
      font-weight: 600;
      letter-spacing: .6px;
    }

    /* Dividers */
    .divider{ height:1px; background: rgba(255,255,255,.10); }
    .divider-dark{ height:1px; background: rgba(0,0,0,.10); }

    /* Sticky conversion bar */
    .sticky-cta{
      position: fixed;
      left: 0; right:0; bottom:0;
      z-index: 1050;
      background: rgba(8,8,10,.86);
      backdrop-filter: blur(12px);
      border-top: 1px solid rgba(255,255,255,.10);
      padding: .72rem;
      display:none;
    }
    @media (max-width: 992px){
      .sticky-cta{ display:block; }
    }

    /* Wizard */
    .steps{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
    .step-pill{
      display:flex; align-items:center; gap:.6rem;
      padding:.55rem .85rem;
      border-radius: 999px;
      border:1px solid rgba(255,255,255,.14);
      background: rgba(0,0,0,.08);
      color: rgba(255,255,255,.85);
      font-size:.92rem;
    }
    .dot{ width:10px; height:10px; border-radius:999px; background: rgba(255,255,255,.25); }
    .step-pill.active{ border-color: rgba(198,165,92,.55); background: rgba(198,165,92,.10); }
    .step-pill.active .dot{ background: var(--gold); }

    .progress-wrap{ height: 6px; background: rgba(255,255,255,.10); border-radius:999px; overflow:hidden; }
    .progress-barx{
      height:100%; width:0%;
      background: linear-gradient(90deg, rgba(198,165,92,.35), rgba(198,165,92,.95));
      transition: width .25s ease;
    }
    .panel{ display:none; }
    .panel.active{ display:block; animation: fadeIn .28s ease both; }
    @keyframes fadeIn{ from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:translateY(0)} }

    /* Forms */
    .form-control, .form-select{
      border-radius: 14px;
      padding: 14px 14px;
      border: 1px solid rgba(0,0,0,.12);
    }
    .form-control:focus, .form-select:focus{
      border-color: rgba(198,165,92,.78);
      box-shadow: 0 0 0 .25rem rgba(198,165,92,.18);
    }
    .form-note{ color: rgba(255,255,255,.72); font-size:.95rem; }

    /* micro underline */
    .hover-underline{ position:relative; }
    .hover-underline::after{
      content:"";
      position:absolute;
      left:0; bottom:-6px;
      width:0; height:1px;
      background: rgba(198,165,92,.85);
      transition: width .25s ease;
    }
    .hover-underline:hover::after{ width:100%; }

    /* Honeypot hidden */
    .hp-field{ position:absolute; left:-9999px; top:-9999px; opacity:0; }

    /* RTL helpers */
    html[dir=rtl] body{ direction: rtl; }
    html[dir=rtl] .text-start{ text-align:right !important; }
    html[dir=rtl] .text-end{ text-align:left !important; }
    html[dir=rtl] .ms-auto{ margin-left: 0 !important; margin-right: auto !important; }
    html[dir=rtl] .me-2{ margin-right: 0 !important; margin-left: .5rem !important; }
    
    /* =========================
   CINEMATIC + LIGHT SWEEP
   ========================= */

/* Hero cinematic overlay controlled by JS via CSS variables */
.hero{
  --cinFade: 0;   /* 0..1 */
  --cinZoom: 1;   /* 1..1.07 */
  --cinBlur: 0px; /* 0..2px */
}

.hero video{
  transform: scale(var(--cinZoom));
  filter: contrast(1.05) saturate(calc(.95 - (var(--cinFade) * .15))) blur(var(--cinBlur));
  transition: transform .20s ease, filter .20s ease;
  will-change: transform, filter;
}

/* Additional cinematic shading that increases on scroll */
.hero::before{
  background:
    radial-gradient(80% 65% at 20% 20%,
      rgba(0,0,0, calc(.18 + (var(--cinFade) * .10))),
      rgba(0,0,0, calc(.70 + (var(--cinFade) * .10)))
    ),
    linear-gradient(to top,
      rgba(0,0,0, calc(.88 + (var(--cinFade) * .08))),
      rgba(0,0,0, calc(.35 + (var(--cinFade) * .08)))
    );
  transition: background .20s ease;
}

/* Cinematic "veil" top/bottom vignettes */
.cinematic-veil{
  pointer-events:none;
  position:absolute;
  inset:0;
  z-index:0;
}
.cinematic-veil::before,
.cinematic-veil::after{
  content:"";
  position:absolute;
  left:0; right:0;
  height:18vh;
}
.cinematic-veil::before{
  top:0;
  background: linear-gradient(to bottom, rgba(0,0,0,.55), rgba(0,0,0,0));
}
.cinematic-veil::after{
  bottom:0;
  background: linear-gradient(to top, rgba(0,0,0,.70), rgba(0,0,0,0));
}

/* NAV: scroll progress line + cinematic blur intensity */
.nav-glass{
  position: relative;
}
.nav-progress{
  position:absolute;
  left:0; right:0; bottom:-1px;
  height:2px;
  background: rgba(255,255,255,.06);
}
.nav-progress > span{
  display:block;
  height:100%;
  width:0%;
  background: linear-gradient(90deg, rgba(198,165,92,.20), rgba(198,165,92,.95));
  transition: width .10s linear;
}

/* Blur intensity toggle */
.nav-glass.is-scrolled{
  background: rgba(8,8,10,.88);
  backdrop-filter: blur(16px);
}

/* LIGHT SWEEP for premium buttons */
.btn-gold{
  position: relative;
  overflow: hidden;
}

/* subtle sheen always present, stronger on hover */
.btn-gold::after{
  content:"";
  position:absolute;
  top:-40%;
  left:-60%;
  width:45%;
  height:180%;
  background: linear-gradient(110deg,
    rgba(255,255,255,0),
    rgba(255,255,255,.20),
    rgba(255,255,255,0)
  );
  transform: rotate(10deg) translateX(-120%);
  opacity: .0;
}

/* hover sweep */
.btn-gold:hover::after{
  opacity: .85;
  animation: sweep 1.05s ease forwards;
}

/* gentle pulse sweep on first view (JS adds .sweep-once) */
.btn-gold.sweep-once::after{
  opacity: .55;
  animation: sweep 1.25s ease forwards;
}

@keyframes sweep{
  from{ transform: rotate(10deg) translateX(-120%); }
  to{ transform: rotate(10deg) translateX(340%); }
}

/* Optional: micro “glow” around gold buttons on hover */
.btn-gold:hover{
  box-shadow: 0 16px 42px rgba(198,165,92,.20);
}

/* Make hero-card sit above veils */
.hero .container{ position:relative; z-index:1; }
      