/* ============================================================
   LA Photography — Luxury Layer (v2)
   Shared premium design system layered on top of main.css
   Warm Oklahoma rustic • Cinematic • Editorial • Accessible AA
   ============================================================ */

:root {
  --lux-sand:      #D8C6A3;
  --lux-gold-a:    #DFA851;
  --lux-gold-b:    #B8860B;
  --lux-black:     #121110;
  --lux-char:      #1B1B1B;
  --lux-char-2:    #221E1B;
  --lux-rose:      #B0727B;
  --lux-warm-gray: #6B5E54;
  --lux-cream:     #F1E8D8;
  --lux-cream-dk:  #E8DFD0;
  --lux-shadow-1: 0 12px 40px rgba(0,0,0,.28);
  --lux-shadow-2: 0 22px 60px rgba(0,0,0,.42);
  --lux-shadow-glow: 0 24px 60px rgba(176,114,123,.18), inset 0 0 0 1px rgba(216,198,163,.08);
  --lux-radius:    22px;
  --lux-radius-sm: 14px;
  --lux-radius-lg: 28px;
  --lux-blur:      blur(12px);
  --lux-ease:      cubic-bezier(.2,.7,.2,1);
  --font-serif:    'Playfair Display', Georgia, serif;
  --font-sans:     'Lato','Montserrat',system-ui,-apple-system,sans-serif;
}

html { scroll-behavior: smooth; }

/* ---------- Global upgrades ---------- */
body.lux { font-family: var(--font-sans); background: var(--lux-black); color: var(--lux-cream); }
.lux h1,.lux h2,.lux h3,.lux h4 { font-family: var(--font-serif); color: var(--lux-cream); font-weight: 500; letter-spacing:.005em; }
.lux h1 { line-height:1.06; }
.lux a { color: inherit; }

.lux-container { max-width: 1280px; margin: 0 auto; padding: 0 24px; }
.lux-eyebrow {
  font-family: var(--font-serif); font-style: italic; letter-spacing: .28em;
  text-transform: uppercase; font-size: .78rem; color: var(--lux-rose);
  display:inline-block;
}
.lux-divider {
  width: 90px; height: 1px; margin: 18px auto;
  background: linear-gradient(90deg, transparent, var(--lux-rose), transparent);
}
.lux-divider.left { margin-left: 0; }

/* ---------- Buttons ---------- */
.lux-btn {
  display:inline-flex; align-items:center; gap:12px;
  padding: 16px 34px; border-radius: 999px;
  font-family: var(--font-sans); font-weight: 600; letter-spacing:.18em;
  text-transform: uppercase; font-size:.78rem; text-decoration:none;
  border: 0; cursor: pointer;
  transition: transform .3s var(--lux-ease), box-shadow .3s var(--lux-ease), filter .3s var(--lux-ease), background .3s var(--lux-ease);
}
.lux-btn:focus-visible { outline: 2px solid var(--lux-gold-a); outline-offset: 4px; }
.lux-btn-gold {
  background: linear-gradient(135deg, var(--lux-gold-a), var(--lux-gold-b));
  color:#1a1512;
  box-shadow: 0 10px 30px rgba(184,134,11,.35), inset 0 0 0 1px rgba(255,255,255,.18);
}
.lux-btn-gold:hover { transform: translateY(-3px); filter: brightness(1.06);
  box-shadow: 0 18px 44px rgba(184,134,11,.5), inset 0 0 0 1px rgba(255,255,255,.24); }
.lux-btn-ghost {
  background: rgba(241,232,216,.06); color: var(--lux-cream);
  border: 1px solid rgba(216,198,163,.28); backdrop-filter: var(--lux-blur);
}
.lux-btn-ghost:hover { background: rgba(216,198,163,.14); transform: translateY(-2px); }
.lux-btn-rose {
  background: linear-gradient(135deg, var(--lux-rose), #8f5a63);
  color: #f6ecd8;
  box-shadow: 0 10px 30px rgba(176,114,123,.35);
}
.lux-btn-rose:hover { transform: translateY(-3px); filter: brightness(1.05); }

/* ---------- Header (sticky, glass) ---------- */
.lux-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 90;
  background: rgba(10,9,8,.55);
  backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid rgba(216,198,163,.10);
  transition: background .3s ease, padding .3s ease;
}
.lux-header .lux-container {
  display:flex; align-items:center; justify-content:space-between;
  padding-top: 16px; padding-bottom: 16px;
}
.lux-header.scrolled { background: rgba(10,9,8,.92); }
.lux-brand { display:flex; align-items:center; gap:14px; text-decoration:none; }
.lux-brand .mark {
  font-family: var(--font-serif); font-size: 1.55rem; color: var(--lux-sand);
  letter-spacing:.06em; line-height:1;
}
.lux-brand .sub {
  font-family: var(--font-sans); font-size:.62rem; letter-spacing:.36em;
  text-transform:uppercase; color: rgba(241,232,216,.65); margin-top:4px;
}
.lux-nav { display:none; gap: 34px; }
@media (min-width: 980px) { .lux-nav { display:flex; } }
.lux-nav a {
  color: rgba(241,232,216,.82); text-decoration:none; font-size:.82rem;
  letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  position: relative; padding: 6px 0;
}
.lux-nav a::after {
  content:""; position:absolute; left:50%; bottom:0; width:0; height:1px;
  background: var(--lux-gold-a); transition: width .3s var(--lux-ease), left .3s var(--lux-ease);
}
.lux-nav a:hover::after,
.lux-nav a.active::after { width: 100%; left: 0; }
.lux-nav a.active { color: var(--lux-sand); }
.lux-header .lux-btn { display:none; }
@media (min-width: 980px) { .lux-header .lux-btn { display:inline-flex; padding: 12px 22px; font-size:.72rem; } }

.lux-burger { display: inline-flex; flex-direction: column; gap: 5px;
  background: transparent; border: 0; cursor: pointer; padding: 8px;
}
@media (min-width: 980px) { .lux-burger { display:none; } }
.lux-burger span { width: 24px; height: 1.5px; background: var(--lux-sand); transition: transform .25s ease, opacity .25s ease; }
.lux-mobile-nav {
  position: fixed; top: 0; right: 0; height: 100vh; width: min(360px, 84vw);
  background: rgba(15,13,12,.98); backdrop-filter: blur(20px);
  border-left: 1px solid rgba(216,198,163,.14);
  transform: translateX(100%); transition: transform .35s var(--lux-ease);
  z-index: 95; display: flex; flex-direction: column;
  padding: 100px 34px 34px; overflow-y:auto;
}
.lux-mobile-nav.open { transform: translateX(0); }
.lux-mobile-nav a {
  padding: 14px 0; color: var(--lux-cream); text-decoration: none;
  font-size: 1rem; letter-spacing:.2em; text-transform:uppercase;
  border-bottom: 1px solid rgba(216,198,163,.08);
}
.lux-mobile-nav a.lux-btn { margin-top: 22px; border-bottom: 0; text-align:center; justify-content:center; }

/* ---------- Trust bar / icon cards ---------- */
.lux-trust { padding: 100px 0 40px; }
.lux-trust-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px;
}
@media (min-width: 720px) { .lux-trust-grid { grid-template-columns: repeat(3, 1fr); gap: 18px; } }
@media (min-width: 1100px) { .lux-trust-grid { grid-template-columns: repeat(6, 1fr); } }
.lux-trust-card {
  padding: 26px 18px; text-align:center; border-radius: var(--lux-radius);
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border: 1px solid rgba(216,198,163,.14);
  backdrop-filter: var(--lux-blur);
  transition: transform .3s var(--lux-ease), border-color .3s var(--lux-ease);
}
.lux-trust-card:hover { transform: translateY(-4px); border-color: rgba(216,198,163,.28); }
.lux-trust-icon {
  width: 52px; height: 52px; margin: 0 auto 14px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(223,168,81,.22), rgba(184,134,11,.05) 70%);
  display:flex; align-items:center; justify-content:center;
  border: 1px solid rgba(216,198,163,.3);
}
.lux-trust-icon svg { width: 22px; height: 22px; stroke: var(--lux-gold-a); fill: none; stroke-width: 1.6; }
.lux-trust-card h4 {
  font-size: .88rem; letter-spacing:.16em; text-transform:uppercase;
  color: var(--lux-cream); margin: 0; font-family: var(--font-sans); font-weight:600;
}

/* ---------- Section chrome ---------- */
.lux-section { padding: 90px 0; position: relative; }
.lux-section.tight { padding: 60px 0; }
.lux-section.warm {
  background:
    radial-gradient(ellipse at 30% 20%, rgba(176,114,123,.08), transparent 55%),
    linear-gradient(180deg, #14110f, var(--lux-black));
}
.lux-section.cream {
  background: linear-gradient(180deg, var(--lux-cream) 0%, #ece1cc 100%);
  color: #2a231d;
}
.lux-section.cream h1,.lux-section.cream h2,.lux-section.cream h3,.lux-section.cream h4 { color:#2a231d; }
.lux-section.cream .lux-eyebrow { color: #8b5a62; }

.lux-heading {
  text-align:center; max-width: 780px; margin: 0 auto 56px;
}
.lux-heading h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); margin: 14px 0 14px; }
.lux-heading p  { color: rgba(241,232,216,.72); line-height:1.65; }
.lux-section.cream .lux-heading p { color: #6B5E54; }

/* ---------- Hero (homepage cinematic) ---------- */
.lux-hero {
  position: relative; min-height: 100vh; display: flex; align-items: center;
  overflow: hidden; padding: 120px 0 80px;
}
.lux-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center;
  transform: scale(1.08); animation: lux-slow-zoom 22s ease-out forwards;
  will-change: transform; filter: brightness(.55) contrast(1.08); }
@keyframes lux-slow-zoom { to { transform: scale(1.0); } }
.lux-hero-scrim { position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(10,9,8,.45) 0%, rgba(10,9,8,.55) 40%, rgba(10,9,8,.9) 100%),
    radial-gradient(ellipse at 25% 65%, rgba(176,114,123,.14), transparent 55%);
}
.lux-hero-inner { position: relative; z-index: 2; max-width: 900px; margin: 0 auto; text-align: center; }
.lux-hero h1 {
  font-size: clamp(2.4rem, 6.2vw, 5rem);
  margin: 22px 0 22px;
  text-shadow: 0 4px 30px rgba(0,0,0,.4);
}
.lux-hero p.lede {
  font-size: clamp(1.05rem, 1.4vw, 1.22rem);
  color: rgba(241,232,216,.86); max-width: 680px; margin: 0 auto 34px;
  line-height: 1.65;
}
.lux-hero-ctas { display:flex; gap: 14px; justify-content:center; flex-wrap:wrap; }
.lux-hero-scroll {
  position: absolute; bottom: 34px; left: 50%; transform: translateX(-50%);
  color: rgba(241,232,216,.7); font-size:.7rem; letter-spacing:.34em; text-transform:uppercase;
  z-index: 2; display:flex; flex-direction:column; align-items:center; gap:10px;
}
.lux-hero-scroll::after {
  content:""; width:1px; height:40px; background: linear-gradient(180deg, var(--lux-gold-a), transparent);
  animation: lux-pulse 2.2s ease-out infinite;
}
@keyframes lux-pulse { 0%{opacity:.2; transform:scaleY(.6);} 50%{opacity:1; transform:scaleY(1);} 100%{opacity:.2; transform:scaleY(.6);} }

/* Fade + rise entry */
[data-lux-rise] { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--lux-ease), transform .9s var(--lux-ease); }
[data-lux-rise].in { opacity: 1; transform: translateY(0); }
[data-lux-rise][data-delay="1"] { transition-delay: .12s; }
[data-lux-rise][data-delay="2"] { transition-delay: .24s; }
[data-lux-rise][data-delay="3"] { transition-delay: .36s; }
[data-lux-rise][data-delay="4"] { transition-delay: .48s; }

/* ---------- About split ---------- */
.lux-about {
  display: grid; grid-template-columns: 1fr; gap: 40px; align-items:center;
}
@media (min-width: 900px) { .lux-about { grid-template-columns: 1fr 1.1fr; gap: 70px; } }
.lux-about-img {
  position:relative; border-radius: var(--lux-radius-lg); overflow:hidden;
  aspect-ratio: 4/5;
  box-shadow: var(--lux-shadow-2), inset 0 0 0 1px rgba(216,198,163,.14);
}
.lux-about-img img { width:100%; height:100%; object-fit:cover; display:block; }
.lux-about-img::after {
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 60%, rgba(10,9,8,.4));
}
.lux-about-body h2 { font-size: clamp(1.9rem, 3.2vw, 2.7rem); margin-bottom: 18px; }
.lux-about-body p { color: rgba(241,232,216,.82); line-height: 1.75; margin-bottom: 16px; font-size:1.02rem; }
.lux-about-sig { font-family: var(--font-serif); font-style: italic; color: var(--lux-rose); font-size: 1.15rem; margin-top: 12px; }

/* ---------- Category preview cards (homepage) ---------- */
.lux-cats { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 720px) { .lux-cats { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .lux-cats { grid-template-columns: repeat(3, 1fr); } }
.lux-cat {
  position: relative; overflow:hidden; border-radius: var(--lux-radius);
  aspect-ratio: 4/5; box-shadow: var(--lux-shadow-1);
  transition: transform .4s var(--lux-ease);
}
.lux-cat:hover { transform: translateY(-6px); }
.lux-cat img { width:100%; height:100%; object-fit:cover;
  transition: transform 1s var(--lux-ease); }
.lux-cat:hover img { transform: scale(1.06); }
.lux-cat::after {
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 40%, rgba(10,9,8,.9) 100%);
}
.lux-cat-lbl {
  position:absolute; bottom:22px; left:22px; right:22px; z-index:2;
}
.lux-cat-lbl .cap { display:block; color: var(--lux-rose); font-family: var(--font-serif); font-style:italic;
  font-size:.85rem; letter-spacing:.22em; text-transform:uppercase; margin-bottom: 6px; }
.lux-cat-lbl .ttl { display:block; color: var(--lux-cream); font-family: var(--font-serif); font-size:1.5rem; line-height:1.1; }

/* ---------- Sticky Book CTA (mobile) ---------- */
.lux-sticky-cta {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 80;
  display: flex; justify-content: center;
}
.lux-sticky-cta .lux-btn { width: 100%; justify-content:center;
  box-shadow: 0 15px 40px rgba(184,134,11,.5), 0 0 0 1px rgba(255,255,255,.18) inset;
}
@media (min-width: 980px) { .lux-sticky-cta { display:none; } }

/* ---------- Cinematic band CTA ---------- */
.lux-cta-band {
  position: relative; padding: 120px 0; text-align: center; overflow: hidden;
}
.lux-cta-band .bg {
  position: absolute; inset:0; background-size: cover; background-position: center;
  filter: brightness(.4); transform: scale(1.05);
}
.lux-cta-band .scrim {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(10,9,8,.6), rgba(10,9,8,.85));
}
.lux-cta-band .lux-container { position:relative; z-index:2; }
.lux-cta-band h2 { font-size: clamp(2rem, 3.6vw, 3rem); margin-bottom: 18px; }
.lux-cta-band p { color: rgba(241,232,216,.82); max-width: 640px; margin: 0 auto 34px; line-height:1.65; }

/* ---------- Testimonial slider ---------- */
.lux-slider { position: relative; max-width: 900px; margin: 0 auto; }
.lux-slider-viewport { overflow: hidden; border-radius: var(--lux-radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  border: 1px solid rgba(216,198,163,.16);
  box-shadow: var(--lux-shadow-2);
  padding: 44px 40px;
}
.lux-slider-track {
  display: flex; transition: transform .7s var(--lux-ease);
}
.lux-slide {
  min-width: 100%; padding: 0 8px; text-align:center;
}
.lux-slide .stars { color: var(--lux-gold-a); letter-spacing:.16em; margin-bottom: 18px; }
.lux-slide .q {
  font-family: var(--font-serif); font-style: italic;
  font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.6; color: var(--lux-cream);
  margin: 0 auto 24px; max-width: 700px;
}
.lux-slide .who { color: var(--lux-cream); font-weight:600; letter-spacing:.02em; }
.lux-slide .where { display:block; color: var(--lux-rose); font-family: var(--font-serif); font-style: italic;
  font-size:.82rem; letter-spacing:.24em; text-transform:uppercase; margin-top: 6px; }
.lux-slider-dots { display:flex; justify-content:center; gap: 8px; margin-top: 22px; }
.lux-slider-dot {
  width: 8px; height:8px; border-radius:50%; background: rgba(216,198,163,.3);
  border: 0; cursor:pointer; transition: all .3s ease;
}
.lux-slider-dot.active { background: var(--lux-gold-a); width: 26px; border-radius: 999px; }

/* ---------- Footer ---------- */
.lux-footer {
  padding: 80px 0 30px;
  background: linear-gradient(180deg, #0f0d0c, #050403);
  border-top: 1px solid rgba(216,198,163,.1);
  color: rgba(241,232,216,.76);
}
.lux-footer-grid {
  display: grid; grid-template-columns: 1fr; gap: 40px;
}
@media (min-width: 760px) { .lux-footer-grid { grid-template-columns: 1.5fr 1fr 1fr 1.2fr; } }
.lux-footer h4 {
  font-family: var(--font-sans); text-transform:uppercase; letter-spacing:.22em;
  font-size:.72rem; color: var(--lux-sand); margin-bottom: 20px; font-weight:600;
}
.lux-footer ul { list-style:none; padding:0; margin:0; }
.lux-footer li { padding: 6px 0; }
.lux-footer a { text-decoration:none; color: rgba(241,232,216,.76); }
.lux-footer a:hover { color: var(--lux-gold-a); }
.lux-footer .brand-tagline { font-family: var(--font-serif); font-style:italic; color: var(--lux-rose); margin-top: 12px; }
.lux-social { display:flex; gap: 10px; margin-top: 16px; }
.lux-social a {
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid rgba(216,198,163,.22);
  display: inline-flex; align-items:center; justify-content:center;
  transition: background .2s ease, transform .2s ease;
}
.lux-social a:hover { background: rgba(216,198,163,.14); transform: translateY(-2px); }
.lux-social svg { width: 16px; height: 16px; fill: var(--lux-cream); }
.lux-footer-bot {
  margin-top: 46px; padding-top: 22px; border-top: 1px solid rgba(216,198,163,.1);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  color: rgba(241,232,216,.55); font-size:.82rem;
}

/* ---------- Pricing cards ---------- */
.lux-pricing { display: grid; grid-template-columns: 1fr; gap: 22px; }
@media (min-width: 900px) { .lux-pricing { grid-template-columns: repeat(3, 1fr); align-items: start; } }
.lux-price-card {
  position: relative; padding: 40px 32px 34px;
  border-radius: var(--lux-radius-lg);
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border: 1px solid rgba(216,198,163,.14);
  box-shadow: var(--lux-shadow-1);
  backdrop-filter: var(--lux-blur);
  transition: transform .3s var(--lux-ease), border-color .3s var(--lux-ease);
}
.lux-price-card:hover { transform: translateY(-6px); border-color: rgba(216,198,163,.32); }
.lux-price-card.featured {
  background: linear-gradient(180deg, rgba(223,168,81,.10), rgba(184,134,11,.04));
  border-color: rgba(223,168,81,.36);
  box-shadow: var(--lux-shadow-2), 0 0 0 1px rgba(223,168,81,.2) inset;
  transform: translateY(-8px);
}
.lux-price-card .ribbon {
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  background: linear-gradient(135deg, var(--lux-gold-a), var(--lux-gold-b));
  color: #1a1512; padding: 6px 18px; border-radius: 999px;
  font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; font-weight:700;
  box-shadow: 0 6px 20px rgba(184,134,11,.4);
}
.lux-price-card h3 { font-size: 1.55rem; margin-bottom: 6px; }
.lux-price-card .tag { color: var(--lux-rose); font-family: var(--font-serif); font-style:italic;
  font-size:.85rem; letter-spacing:.2em; text-transform:uppercase; }
.lux-price-card .price { font-family: var(--font-serif); font-size: 2.6rem; color: var(--lux-sand); margin: 20px 0 8px; }
.lux-price-card .price small { font-size:.85rem; color: rgba(241,232,216,.55); letter-spacing:.14em; }
.lux-price-card ul { list-style:none; padding: 0; margin: 22px 0; }
.lux-price-card li {
  padding: 10px 0; border-bottom: 1px dashed rgba(216,198,163,.12);
  color: rgba(241,232,216,.85); font-size:.95rem;
}
.lux-price-card li:last-child { border-bottom: 0; }
.lux-price-card li::before {
  content:"✓"; margin-right: 10px; color: var(--lux-gold-a); font-weight:700;
}
.lux-price-card .lux-btn { width: 100%; justify-content: center; }

/* ---------- Contact block ---------- */
.lux-contact-grid {
  display: grid; grid-template-columns: 1fr; gap: 22px;
}
@media (min-width: 760px) { .lux-contact-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1100px) { .lux-contact-grid { grid-template-columns: repeat(4, 1fr); } }
.lux-contact-card {
  padding: 28px 24px; border-radius: var(--lux-radius);
  background: linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.015));
  border: 1px solid rgba(216,198,163,.14);
  backdrop-filter: var(--lux-blur); text-align: center;
  transition: transform .3s var(--lux-ease);
}
.lux-contact-card:hover { transform: translateY(-4px); }
.lux-contact-card .lux-trust-icon { margin-bottom: 16px; }
.lux-contact-card h4 { font-family: var(--font-sans); font-size:.82rem; letter-spacing:.22em; text-transform:uppercase;
  color: var(--lux-cream); margin-bottom: 10px; }
.lux-contact-card p { color: rgba(241,232,216,.82); margin: 4px 0; }
.lux-contact-card a { color: rgba(241,232,216,.82); text-decoration:none; }
.lux-contact-card a:hover { color: var(--lux-gold-a); }

/* ---------- Utility ---------- */
.lux-mt-40 { margin-top: 40px; }
.lux-mt-60 { margin-top: 60px; }
.no-scroll { overflow:hidden; }

/* ---------- Prefers reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* ---------- Lightbox ---------- */
.lux-lightbox {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(0,0,0,.92);
  display: flex; align-items: center; justify-content: center;
  padding: 40px; opacity: 0; pointer-events: none;
  transition: opacity .3s var(--lux-ease);
}
.lux-lightbox.open { opacity: 1; pointer-events: auto; cursor: zoom-out; }
.lux-lightbox img { max-width: 92vw; max-height: 88vh; object-fit: contain;
  box-shadow: 0 30px 100px rgba(0,0,0,.6); border-radius: 6px; }

/* ---------- Portfolio masonry ---------- */
.lux-filter-bar { display:flex; flex-wrap:wrap; gap: 10px; justify-content:center; margin: 0 auto 40px; }
.lux-filter {
  padding: 10px 20px; border-radius: 999px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(216,198,163,.18);
  color: rgba(241,232,216,.78); cursor: pointer; font-family: inherit;
  font-size: .78rem; letter-spacing: .2em; text-transform: uppercase; font-weight: 500;
  transition: all .25s var(--lux-ease);
}
.lux-filter:hover { background: rgba(216,198,163,.12); color: var(--lux-cream); }
.lux-filter.active {
  background: linear-gradient(135deg, var(--lux-gold-a), var(--lux-gold-b));
  color: #1a1512; border-color: transparent; font-weight: 600;
  box-shadow: 0 8px 24px rgba(184,134,11,.35);
}

.lux-masonry {
  columns: 1; column-gap: 18px;
}
@media (min-width: 640px)  { .lux-masonry { columns: 2; } }
@media (min-width: 1000px) { .lux-masonry { columns: 3; } }
@media (min-width: 1400px) { .lux-masonry { columns: 4; } }
.lux-masonry-item {
  break-inside: avoid; margin-bottom: 18px; position: relative;
  border-radius: var(--lux-radius-sm); overflow: hidden;
  cursor: zoom-in; display: block;
  box-shadow: var(--lux-shadow-1);
  transition: transform .35s var(--lux-ease);
}
.lux-masonry-item:hover { transform: translateY(-4px); }
.lux-masonry-item img { width: 100%; height: auto; display: block;
  transition: transform .8s var(--lux-ease); }
.lux-masonry-item:hover img { transform: scale(1.05); }
.lux-masonry-item .overlay {
  position: absolute; inset: 0; opacity: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(10,9,8,.85));
  transition: opacity .35s var(--lux-ease);
  display: flex; align-items: flex-end; padding: 20px;
}
.lux-masonry-item:hover .overlay { opacity: 1; }
.lux-masonry-item .overlay span {
  font-family: var(--font-serif); font-style: italic; color: var(--lux-cream);
  letter-spacing: .12em; font-size: .95rem;
}

/* ---------- Form styles ---------- */
.lux-form { display: grid; gap: 18px; }
.lux-form .row { display: grid; grid-template-columns: 1fr; gap: 18px; }
@media (min-width: 640px) { .lux-form .row.two { grid-template-columns: 1fr 1fr; } }
.lux-form label { display: block; font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(241,232,216,.72); margin-bottom: 8px; font-weight: 500; }
.lux-form input, .lux-form select, .lux-form textarea {
  width: 100%; padding: 14px 16px; border-radius: 10px;
  background: rgba(255,255,255,.04); border: 1px solid rgba(216,198,163,.18);
  color: var(--lux-cream); font-family: inherit; font-size: 1rem;
  transition: border-color .2s ease, background .2s ease;
}
.lux-form input:focus, .lux-form select:focus, .lux-form textarea:focus {
  outline: none; border-color: var(--lux-gold-a); background: rgba(255,255,255,.06);
}
.lux-form textarea { min-height: 140px; resize: vertical; }
.lux-form .lux-btn { width: 100%; justify-content: center; }

/* ---------- Hide old main.css hero blocks on lux pages ---------- */
body.lux .site-header, body.lux .hero, body.lux .subhero,
body.lux .site-footer, body.lux .cookie { display: none !important; }
body.lux main > section:first-child { padding-top: 0; }


/* ============ BIO GRID (About page) ============ */
.bio-section{background:linear-gradient(180deg,rgba(216,198,163,.03),transparent)}
.bio-grid{display:grid;grid-template-columns:1fr;gap:40px;max-width:1100px;margin:0 auto}
@media (min-width:820px){.bio-grid{grid-template-columns:1fr 1fr;gap:60px}}
.bio-card{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border:1px solid rgba(216,198,163,.14);border-radius:var(--lux-radius,16px);overflow:hidden;transition:transform .35s ease,box-shadow .35s ease}
.bio-card:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(0,0,0,.35)}
.bio-portrait{margin:0;background:#0e0d0c}
.bio-portrait img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 20%;display:block}
.bio-copy{padding:28px 30px 34px}
.bio-copy h3{font-family:'Playfair Display',serif;font-size:1.7rem;color:#D8C6A3;margin:0 0 6px}
.bio-role{font-family:'Playfair Display',serif;font-style:italic;color:#B0727B;margin:0 0 16px;font-size:.95rem;letter-spacing:.05em}
.bio-copy p{color:#c4bba8;line-height:1.7;font-family:'Lato',sans-serif}
.bio-contact{margin-top:18px;padding-top:16px;border-top:1px solid rgba(216,198,163,.14);font-size:.95rem}
.bio-contact a{color:#DFA851;text-decoration:none;transition:color .3s}
.bio-contact a:hover{color:#D8C6A3}

/* ============ FORM STATUS ============ */
.form-status{padding:12px 16px;border-radius:6px;font-family:'Lato',sans-serif;font-size:.92rem;margin:12px 0}
.form-status.error{background:rgba(176,114,123,.15);border:1px solid rgba(176,114,123,.4);color:#e8b4bd}
.form-status.info{background:rgba(216,198,163,.1);border:1px solid rgba(216,198,163,.25);color:#D8C6A3}
button[disabled]{opacity:.65;cursor:wait}

/* ============ MOBILE PRICING CARDS ============ */
.pkg-cards{display:grid;grid-template-columns:1fr;gap:24px;max-width:1180px;margin:0 auto}
@media (min-width:760px){.pkg-cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1080px){.pkg-cards{grid-template-columns:repeat(3,1fr)}}
.pkg-card{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));border:1px solid rgba(216,198,163,.16);border-radius:var(--lux-radius,16px);padding:32px 26px;display:flex;flex-direction:column;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}
.pkg-card:hover{transform:translateY(-4px);border-color:rgba(223,168,81,.4);box-shadow:0 24px 48px rgba(0,0,0,.35)}
.pkg-card.popular{border-color:rgba(223,168,81,.5);background:linear-gradient(180deg,rgba(223,168,81,.1),rgba(255,255,255,.02))}
.pkg-ribbon{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#DFA851,#B8860B);color:#121110;padding:6px 20px;border-radius:20px;font-family:'Lato',sans-serif;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;font-weight:700;box-shadow:0 6px 14px rgba(223,168,81,.35)}
.pkg-name{font-family:'Playfair Display',serif;font-size:1.7rem;color:#D8C6A3;margin:0 0 6px;font-weight:600}
.pkg-tag{font-family:'Playfair Display',serif;font-style:italic;color:#B0727B;font-size:.95rem;margin:0 0 18px}
.pkg-price{font-family:'Playfair Display',serif;color:#DFA851;font-size:2.2rem;font-weight:600;margin:0 0 4px}
.pkg-price small{font-size:.9rem;color:#c4bba8;letter-spacing:.05em;font-family:'Lato',sans-serif;font-style:normal;font-weight:400;display:block;margin-top:2px}
.pkg-features{list-style:none;padding:0;margin:24px 0;flex:1}
.pkg-features li{padding:9px 0;border-bottom:1px solid rgba(216,198,163,.08);color:#c4bba8;font-family:'Lato',sans-serif;font-size:.95rem;display:flex;gap:10px;align-items:flex-start}
.pkg-features li strong{color:#D8C6A3;font-weight:600;min-width:120px;display:inline-block}
.pkg-features li:before{content:"✓";color:#DFA851;font-weight:700;flex-shrink:0}
.pkg-card .lux-btn-gold{margin-top:10px;text-align:center;width:100%}

/* ============ PORTFOLIO MASONRY / LIGHTBOX polish ============ */
.pf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;grid-auto-flow:dense}
@media (min-width:720px){.pf-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}}
.pf-item{position:relative;overflow:hidden;border-radius:12px;background:#0e0d0c;cursor:zoom-in;transition:transform .35s ease}
.pf-item:hover{transform:translateY(-3px)}
.pf-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}
.pf-item:hover img{transform:scale(1.04)}
.pf-item.tall{grid-row:span 2}
.pf-item.wide{grid-column:span 2}
@media (max-width:600px){.pf-item.wide{grid-column:span 1}}
.pf-caption{position:absolute;left:0;right:0;bottom:0;padding:14px 16px;background:linear-gradient(180deg,transparent,rgba(18,17,16,.86));color:#f1e8d8;font-family:'Playfair Display',serif;font-style:italic;font-size:.95rem;letter-spacing:.02em;opacity:0;transition:opacity .3s ease}
.pf-item:hover .pf-caption,.pf-item:focus-visible .pf-caption{opacity:1}
.pf-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:26px 0 32px}
.pf-filter{background:transparent;color:#c4bba8;border:1px solid rgba(216,198,163,.24);padding:9px 18px;border-radius:100px;cursor:pointer;font-family:'Lato',sans-serif;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;transition:all .3s ease}
.pf-filter:hover{color:#D8C6A3;border-color:rgba(223,168,81,.4)}
.pf-filter.active{background:linear-gradient(135deg,#DFA851,#B8860B);color:#121110;border-color:transparent;font-weight:700}

/* Lightbox */
.pf-lightbox{position:fixed;inset:0;background:rgba(10,9,8,.94);display:none;align-items:center;justify-content:center;z-index:1000;padding:20px}
.pf-lightbox.active{display:flex}
.pf-lightbox img{max-width:min(92vw,1400px);max-height:86vh;object-fit:contain;border-radius:6px;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.pf-lightbox-close,.pf-lightbox-prev,.pf-lightbox-next{position:absolute;background:rgba(216,198,163,.12);border:1px solid rgba(216,198,163,.3);color:#f1e8d8;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.4rem;transition:all .3s ease;backdrop-filter:blur(10px)}
.pf-lightbox-close:hover,.pf-lightbox-prev:hover,.pf-lightbox-next:hover{background:rgba(223,168,81,.3);border-color:#DFA851}
.pf-lightbox-close{top:24px;right:24px}
.pf-lightbox-prev{left:24px;top:50%;transform:translateY(-50%)}
.pf-lightbox-next{right:24px;top:50%;transform:translateY(-50%)}
.pf-lightbox-caption{position:absolute;bottom:26px;left:0;right:0;text-align:center;font-family:"Playfair Display",serif;font-style:italic;color:#D8C6A3;font-size:1.05rem;letter-spacing:.02em}
