/* ============================================================
   LUXURY UNLOCKED — HOME
   SOURCE-EXACT PORT FROM ROOT ZIP:
   base.css + hero.jsx + sections.jsx + closing.jsx + contactform.jsx

   Header/footer intentionally NOT targeted.
   ============================================================ */

:root{
  --paper:#FAF7F0;
  --paper-2:#F1EADC;
  --paper-3:#EAE1CF;
  --ink:#211C15;
  --ink-soft:#463F34;
  --muted:#8A7F6E;
  --line:rgba(33,28,21,.16);
  --line-soft:rgba(33,28,21,.08);
  --accent:#C49A4C;
  --accent-deep:#6E4E18;
  --dark:#1C1813;
  --dark-2:#252017;
  --on-dark:#F2EBDC;
  --on-dark-muted:#A99E89;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Jost',system-ui,-apple-system,sans-serif;
  --maxw:1300px;
  --gut:clamp(20px,5.2vw,72px);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* Only page shell — no header/footer typography rules */
body.index-page{
  margin:0;
  overflow-x:hidden;
  background:var(--paper);
  color:var(--ink);
}

body.index-page .lu-home-main,
body.index-page .lu-home-main *{
  box-sizing:border-box;
}

body.index-page .lu-home-main{
  position:relative;
  z-index:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-weight:300;
  font-size:17px;
  line-height:1.75;
  letter-spacing:.005em;
  overflow:hidden;
}

body.index-page .lu-home-main img{
  display:block;
  max-width:100%;
}

body.index-page .lu-home-main a{
  color:inherit;
  text-decoration:none;
}

body.index-page .lu-home-main button{
  font-family:inherit;
  cursor:pointer;
}

body.index-page .lu-home-main h1,
body.index-page .lu-home-main h2,
body.index-page .lu-home-main h3,
body.index-page .lu-home-main h4{
  font-family:var(--serif);
  font-weight:400;
  margin:0;
  line-height:1.04;
  letter-spacing:-.01em;
}

body.index-page .lu-home-main ::selection{
  background:var(--accent);
  color:#fff;
}

/* ============================================================
   BASE TYPE — exact base.css
   ============================================================ */

.lu-home-main .eyebrow{
  font-family:var(--sans);
  font-weight:500;
  font-size:11.5px;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--accent-deep);
  display:inline-flex;
  align-items:center;
  gap:.9em;
}

.lu-home-main .eyebrow::before{
  content:"";
  width:26px;
  height:1px;
  background:var(--accent);
  opacity:.7;
}

.lu-home-main .h-sec{
  font-size:clamp(2.1rem,4.6vw,4rem);
  font-weight:300;
  letter-spacing:-.015em;
}

.lu-home-main .lede{
  font-size:clamp(1.05rem,1.5vw,1.32rem);
  line-height:1.7;
  color:var(--ink-soft);
  font-weight:300;
  max-width:60ch;
}

.lu-home-main .accent-it{
  font-family:var(--serif);
  font-style:italic;
  color:var(--accent-deep);
  font-weight:500;
}

/* ============================================================
   BASE LAYOUT — exact base.css
   ============================================================ */

.lu-home-main .wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding-inline:var(--gut);
}

.lu-home-main .section{
  padding-block:clamp(72px,11vh,150px);
}

/* ============================================================
   BUTTONS — EXACT base.css IMPLEMENTATION
   No alternate z-index/isolation implementation.
   ============================================================ */

.lu-home-main .btn{
  --bd:var(--ink);

  display:inline-flex;
  align-items:center;
  gap:.85em;

  font-family:var(--sans);
  font-weight:500;
  font-size:12px;
  letter-spacing:.2em;
  text-transform:uppercase;

  padding:1.05em 1.9em;

  border:1px solid var(--bd);
  border-radius:0;

  background:transparent;
  color:var(--ink);

  position:relative;
  overflow:hidden;

  transition:
    color .5s var(--ease),
    border-color .5s var(--ease);
}

.lu-home-main .btn span{
  position:relative;
  z-index:1;
  transition:color .5s var(--ease);
}

.lu-home-main .btn::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;

  background:var(--ink);

  transform:scaleX(0);
  transform-origin:right;

  transition:transform .55s var(--ease);
}

.lu-home-main .btn:hover::after{
  transform:scaleX(1);
  transform-origin:left;
}

.lu-home-main .btn:hover{
  color:var(--paper);
  border-color:var(--ink);
}

.lu-home-main .btn:hover span{
  color:var(--paper);
}

.lu-home-main .btn--light{
  --bd:rgba(242,235,220,.5);
  color:var(--on-dark);
}

.lu-home-main .btn--light::after{
  background:var(--on-dark);
}

.lu-home-main .btn--light:hover{
  color:var(--dark);
  border-color:var(--on-dark);
}

.lu-home-main .btn--light:hover span{
  color:var(--dark);
}

.lu-home-main .btn .arr{
  transition:transform .5s var(--ease);
}

.lu-home-main .btn:hover .arr{
  transform:translateX(4px);
}

.lu-home-main .link-u{
  font-family:var(--sans);
  font-weight:500;
  font-size:12.5px;
  letter-spacing:.16em;
  text-transform:uppercase;

  display:inline-flex;
  align-items:center;
  gap:.7em;

  padding-bottom:4px;

  position:relative;

  color:var(--ink);
}

.lu-home-main .link-u::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;

  height:1px;
  width:100%;

  background:currentColor;

  transform:scaleX(1);
  transform-origin:left;

  transition:transform .45s var(--ease);
}

.lu-home-main .link-u:hover::after{
  transform:scaleX(0);
  transform-origin:right;
}

.lu-home-main .link-u .arr{
  transition:transform .45s var(--ease);
}

.lu-home-main .link-u:hover .arr{
  transform:translateX(5px);
}

/* ============================================================
   REVEAL — exact base.css
   ============================================================ */

.lu-home-main .reveal{
  opacity:0;
  transform:translateY(26px);
  transition:
    opacity 1s var(--ease),
    transform 1.1s var(--ease);
}

.lu-home-main .reveal.in{
  opacity:1;
  transform:none;
}

.lu-home-main .reveal-img{
  clip-path:inset(0 0 100% 0);
  transition:clip-path 1.2s var(--ease);
}

.lu-home-main .reveal-img.in{
  clip-path:inset(0 0 0 0);
}

.lu-home-main [data-d="1"]{transition-delay:.08s}
.lu-home-main [data-d="2"]{transition-delay:.16s}
.lu-home-main [data-d="3"]{transition-delay:.24s}
.lu-home-main [data-d="4"]{transition-delay:.32s}
.lu-home-main [data-d="5"]{transition-delay:.4s}

/* ============================================================
   HERO — exact hero.jsx
   ============================================================ */

.lu-home-main .hero{
  position:relative;
  min-height:100svh;

  display:flex;
  flex-direction:column;

  overflow:hidden;

  background:var(--dark);
  color:var(--on-dark);
}

.lu-home-main .hero-layer{
  position:absolute;
  inset:0;
  z-index:0;
}

.lu-home-main .hero-slide{
  position:absolute;
  inset:0;

  opacity:0;

  transition:opacity 1.4s var(--ease);
}

.lu-home-main .hero-slide.active{
  opacity:1;
}

.lu-home-main .hero-slide img{
  width:100%;
  height:100%;
  object-fit:cover;

  transform:scale(1.08);

  transition:transform 7s linear;
}

.lu-home-main .hero-slide.active img{
  transform:scale(1);
}

.lu-home-main .hero-scrim{
  position:absolute;
  inset:0;
  z-index:1;

  background:
    linear-gradient(
      to right,
      rgba(15,12,9,.72) 0%,
      rgba(15,12,9,.5) 24%,
      rgba(15,12,9,.2) 52%,
      rgba(15,12,9,0) 78%
    ),
    linear-gradient(
      to top,
      rgba(15,12,9,.88) 0%,
      rgba(15,12,9,.42) 40%,
      rgba(15,12,9,.32) 70%,
      rgba(15,12,9,.55) 100%
    );
}

/* IMPORTANT: source is relative normal-flow, not absolute */
.lu-home-main .hero-content{
  position:relative;
  z-index:2;

  max-width:var(--maxw);
  margin:0 auto;
  width:100%;

  padding:
    clamp(28px,4vh,48px)
    var(--gut)
    clamp(32px,5vh,60px);
}

.lu-home-main .hero-top{
  position:relative;
  z-index:2;

  flex:1 0 auto;

  display:flex;
  flex-direction:column;
  justify-content:center;

  padding-top:clamp(120px,15vh,170px);
  padding-bottom:clamp(24px,4vh,44px);
}

.lu-home-main .hero-top .wrap{
  max-width:var(--maxw);
  margin:0 auto;
  padding:0 var(--gut);
  width:100%;
}

.lu-home-main .hero-eyebrow{
  color:var(--accent);
  letter-spacing:.4em;
}

.lu-home-main .hero-eyebrow::before{
  background:var(--accent);
}

.lu-home-main .hero-h{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(3rem,8.5vw,7.4rem);
  line-height:.94;
  letter-spacing:-.02em;

  color:#fff;

  margin:.32em 0 0;

  max-width:16ch;

  text-shadow:
    0 2px 44px rgba(0,0,0,.5),
    0 0 1px rgba(0,0,0,.25);
}

.lu-home-main .hero-h em{
  font-style:italic;
  color:#E2B954;
}

.lu-home-main .hero-sub{
  font-size:clamp(1.05rem,1.5vw,1.3rem);
  font-weight:300;

  color:rgba(242,235,220,.92);

  max-width:46ch;

  margin:26px 0 0;

  line-height:1.65;

  text-shadow:0 1px 24px rgba(0,0,0,.55);
}

.lu-home-main .hero-actions{
  margin-top:38px;

  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

.lu-home-main .hero-plan-btn{
  border-color:transparent;
}

.lu-home-main .hero-bottom{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;

  gap:40px;
  flex-wrap:wrap;
}

.lu-home-main .hero-place{
  display:flex;
  align-items:baseline;

  gap:18px;
  flex-wrap:wrap;
}

.lu-home-main .hero-place .pnum{
  font-family:var(--serif);
  font-style:italic;

  color:var(--accent);

  font-size:1.1rem;
}

.lu-home-main .hero-place h2{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.7rem,3vw,2.7rem);

  color:#fff;

  line-height:1;
}

.lu-home-main .hero-place .pcountry{
  font-size:12px;
  letter-spacing:.24em;
  text-transform:uppercase;

  color:rgba(242,235,220,.6);
}

.lu-home-main .hero-place .pline{
  font-size:14.5px;

  color:rgba(242,235,220,.78);

  max-width:38ch;

  margin-top:8px;

  line-height:1.55;
}

.lu-home-main .hero-nav-stack{
  display:flex;
  flex-direction:column;

  gap:18px;

  align-items:flex-end;
}

.lu-home-main .hero-nav{
  display:flex;
  align-items:center;
  gap:10px;
}

.lu-home-main .hdot{
  position:relative;

  width:64px;
  height:2px;

  background:rgba(242,235,220,.24);

  border:0;
  padding:0;

  overflow:hidden;
}

.lu-home-main .hdot i{
  position:absolute;
  left:0;
  top:0;
  bottom:0;

  width:100%;

  background:var(--accent);

  transform:scaleX(0);
  transform-origin:left;
}

.lu-home-main .hdot.active i{
  animation:hfill var(--dur,7s) linear forwards;
}

.lu-home-main .hdot.seen i{
  transform:scaleX(1);
}

@keyframes hfill{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}

.lu-home-main .hero-thumbs{
  display:flex;
  gap:12px;
}

.lu-home-main .hthumb{
  width:74px;
  height:54px;

  overflow:hidden;

  border:0;
  padding:0;

  position:relative;

  filter:grayscale(.4) brightness(.7);

  transition:
    filter .5s var(--ease),
    transform .5s var(--ease);

  opacity:.7;
}

.lu-home-main .hthumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.lu-home-main .hthumb.active,
.lu-home-main .hthumb:hover{
  filter:none;
  opacity:1;
  transform:translateY(-3px);
}

.lu-home-main .hthumb.active::after{
  content:"";
  position:absolute;
  inset:auto 0 0 0;

  height:2px;

  background:var(--accent);
}

@media(max-width:760px){
  .lu-home-main .hero-thumbs{
    display:none;
  }

  .lu-home-main .hero-bottom{
    gap:24px;
  }
}

/* ============================================================
   DESTINATION TICKER — exact sections.jsx
   ============================================================ */

.lu-home-main .dticker{
  position:relative;

  overflow:hidden;

  background:var(--paper);

  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);

  padding:clamp(16px,2.2vw,26px) 0;

  -webkit-mask-image:
    linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
  mask-image:
    linear-gradient(to right,transparent 0,#000 7%,#000 93%,transparent 100%);
}

.lu-home-main .dticker-track{
  display:flex;
  width:max-content;

  animation:dtick var(--dtick,64s) linear infinite;
}

.lu-home-main .dticker:hover .dticker-track,
.lu-home-main .dticker:focus-within .dticker-track{
  animation-play-state:paused;
}

@keyframes dtick{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-50%,0,0)}
}

.lu-home-main .dticker-set{
  display:flex;
  align-items:center;

  flex:0 0 auto;
}

.lu-home-main .dticker-item{
  display:inline-block;

  font-family:var(--serif);
  font-style:italic;
  font-weight:300;
  font-size:clamp(1.5rem,3.2vw,2.9rem);
  line-height:1.2;

  color:var(--ink-soft);

  white-space:nowrap;

  padding-inline:clamp(16px,1.7vw,28px);

  transition:color .45s var(--ease);
}

.lu-home-main .dticker-item:hover,
.lu-home-main .dticker-item:focus-visible{
  color:var(--accent-deep);
}

.lu-home-main .dticker-sep{
  flex:0 0 auto;

  color:var(--accent);

  opacity:.7;
}

/* ============================================================
   SERVICES — exact sections.jsx
   ============================================================ */

.lu-home-main .intro-head{
  display:grid;

  grid-template-columns:1.05fr .95fr;

  gap:clamp(28px,5vw,80px);

  align-items:end;

  margin-bottom:clamp(48px,7vh,88px);
}

.lu-home-main .intro-head .lede{
  margin:0;
}

.lu-home-main .services-title{
  margin-top:22px;
  max-width:16ch;
}

.lu-home-main .svc-grid{
  display:grid;

  grid-template-columns:repeat(3,1fr);

  gap:clamp(22px,3vw,44px);
}

.lu-home-main .svc{
  display:flex;
  flex-direction:column;
}

.lu-home-main .svc-fig{
  aspect-ratio:4/5;

  overflow:hidden;

  background:var(--paper-3);

  margin-bottom:26px;
}

.lu-home-main .svc-fig img{
  width:100%;
  height:100%;

  object-fit:cover;

  transition:transform 1.4s var(--ease);
}

.lu-home-main .svc:hover .svc-fig img{
  transform:scale(1.05);
}

.lu-home-main .svc-n{
  font-family:var(--serif);
  font-style:italic;

  color:var(--accent-deep);

  font-size:1.1rem;

  margin-bottom:10px;
}

.lu-home-main .svc h3{
  font-size:clamp(1.5rem,2vw,1.9rem);
  font-weight:400;

  margin-bottom:4px;
}

.lu-home-main .svc .ssub{
  font-family:var(--serif);
  font-style:italic;

  color:var(--muted);

  font-size:1.12rem;

  margin-bottom:16px;
}

.lu-home-main .svc p{
  color:var(--ink-soft);

  font-size:15.5px;
  line-height:1.7;

  margin:0 0 22px;

  flex:1;
}

/* ============================================================
   CURATED DESTINATIONS — exact sections.jsx
   ============================================================ */

.lu-home-main .curated{
  background:var(--paper-2);
}

.lu-home-main .curated-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;

  gap:30px;

  flex-wrap:wrap;
}

.lu-home-main .curated-title{
  margin-top:20px;

  max-width:14ch;
}

.lu-home-main .curated-copy{
  max-width:34ch;
}

.lu-home-main .curated-copy p{
  color:var(--ink-soft);

  margin:0 0 20px;

  font-size:16px;
}

.lu-home-main .dest-grid{
  display:grid;

  gap:14px;

  grid-template-columns:repeat(6,1fr);
  grid-template-rows:repeat(2,minmax(0,1fr)) auto;

  margin-top:clamp(40px,6vh,68px);
}

.lu-home-main .dtile{
  position:relative;

  overflow:hidden;

  display:block;

  min-height:240px;

  background:var(--dark);
}

.lu-home-main .dtile img{
  position:absolute;
  inset:0;

  width:100%;
  height:100%;

  object-fit:cover;

  transition:transform 1.5s var(--ease);

  filter:brightness(.82);
}

.lu-home-main .dtile:hover img{
  transform:scale(1.07);

  filter:brightness(.7);
}

.lu-home-main .dtile::after{
  content:"";

  position:absolute;
  inset:0;

  background:
    linear-gradient(
      to top,
      rgba(10,8,5,.9),
      rgba(10,8,5,.15) 58%,
      transparent
    );
}

.lu-home-main .dtile-c{
  position:absolute;
  left:0;
  bottom:0;
  z-index:2;

  padding:clamp(18px,2vw,30px);

  color:#fff;
}

.lu-home-main .dtile .dtag{
  font-size:11px;
  font-weight:500;

  letter-spacing:.26em;
  text-transform:uppercase;

  color:#EAC873;

  display:block;

  margin-bottom:8px;

  text-shadow:0 1px 10px rgba(0,0,0,.6);

  transform:translateY(6px);

  transition:
    transform .5s var(--ease),
    opacity .5s;
}

.lu-home-main .dtile .dplace{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.5rem,2.4vw,2.4rem);
  line-height:1;

  text-shadow:0 2px 16px rgba(0,0,0,.5);
}

.lu-home-main .dtile .dgo{
  margin-top:14px;

  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;

  display:inline-flex;
  align-items:center;
  gap:8px;

  opacity:0;

  transform:translateY(10px);

  transition:
    opacity .5s var(--ease),
    transform .5s var(--ease);

  color:rgba(255,255,255,.9);
}

.lu-home-main .dtile:hover .dgo{
  opacity:1;
  transform:none;
}

.lu-home-main .dfeature{
  grid-column:1/4;
  grid-row:1/3;
}

.lu-home-main .d2{
  grid-column:4/7;
  grid-row:1/2;
}

.lu-home-main .d3{
  grid-column:4/7;
  grid-row:2/3;
}

.lu-home-main .d4{grid-column:1/3}
.lu-home-main .d5{grid-column:3/5}
.lu-home-main .d6{grid-column:5/7}

.lu-home-main .dfeature .dplace{
  font-size:clamp(2rem,3.6vw,3.4rem);
}

/* ============================================================
   SIGNATURE SAFARI — exact sections.jsx
   ============================================================ */

.lu-home-main .safari{
  background:var(--dark);
  color:var(--on-dark);

  overflow:hidden;
}

.lu-home-main .safari .eyebrow{
  color:var(--accent);
}

.lu-home-main .safari .eyebrow::before{
  background:var(--accent);
}

.lu-home-main .safari-grid{
  display:grid;

  grid-template-columns:1fr 1fr;

  gap:clamp(36px,6vw,90px);

  align-items:center;
}

.lu-home-main .safari-fig{
  position:relative;

  aspect-ratio:4/5;
}

.lu-home-main .safari-fig img{
  width:100%;
  height:100%;

  object-fit:cover;
}

.lu-home-main .safari h2{
  color:#fff;

  font-size:clamp(2rem,4vw,3.4rem);
  font-weight:300;

  margin:18px 0 0;
}

.lu-home-main .safari p{
  color:var(--on-dark-muted);

  font-size:16px;
  line-height:1.8;

  margin:22px 0 0;

  max-width:52ch;
}

.lu-home-main .safari p a{
  color:var(--on-dark);

  border-bottom:1px solid var(--accent);

  padding-bottom:1px;
}

.lu-home-main .safari-links{
  list-style:none;

  margin:32px 0 0;

  padding:26px 0 0;

  border-top:1px solid rgba(242,235,220,.14);

  display:grid;

  gap:2px;
}

.lu-home-main .safari-links a{
  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:16px;

  padding:14px 0;

  border-bottom:1px solid rgba(242,235,220,.1);

  color:var(--on-dark);

  font-size:15px;
  letter-spacing:.01em;

  transition:
    padding .4s var(--ease),
    color .4s;
}

.lu-home-main .safari-links a:hover{
  padding-left:10px;

  color:var(--accent);
}

.lu-home-main .safari-links a .arr{
  transition:transform .4s var(--ease);

  color:var(--accent);
}

.lu-home-main .safari-links a:hover .arr{
  transform:translateX(5px);
}

/* ============================================================
   VALUES — exact sections.jsx
   ============================================================ */

.lu-home-main .values-grid{
  display:grid;

  grid-template-columns:1fr 1fr;

  gap:clamp(36px,6vw,84px);

  align-items:center;
}

.lu-home-main .values-title{
  margin-top:20px;
  margin-bottom:18px;

  max-width:15ch;
}

.lu-home-main .values-copy p{
  color:var(--ink-soft);

  font-size:16.5px;

  margin:0 0 30px;

  max-width:46ch;
}

.lu-home-main .values-list{
  display:grid;

  gap:0;
}

.lu-home-main .vrow{
  display:grid;

  grid-template-columns:auto 1fr;

  gap:22px;

  padding:26px 0;

  border-top:1px solid var(--line-soft);
}

.lu-home-main .vrow:last-child{
  border-bottom:1px solid var(--line-soft);
}

.lu-home-main .vrow .vk{
  font-size:11px;

  letter-spacing:.24em;
  text-transform:uppercase;

  color:var(--accent-deep);

  padding-top:7px;

  white-space:nowrap;
}

.lu-home-main .vrow h4{
  font-size:1.4rem;
  font-weight:400;

  margin-bottom:6px;
}

.lu-home-main .vrow p{
  margin:0;

  color:var(--ink-soft);

  font-size:15px;
  line-height:1.65;
}

.lu-home-main .values-fig{
  aspect-ratio:3/4;

  overflow:hidden;

  background:var(--paper-3);
}

.lu-home-main .values-fig img{
  width:100%;
  height:100%;

  object-fit:cover;
}

/* ============================================================
   TESTIMONIALS — exact closing.jsx
   ============================================================ */

.lu-home-main .tst{
  background:var(--paper-2);
}

.lu-home-main .tst-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;

  gap:30px;

  flex-wrap:wrap;

  margin-bottom:clamp(40px,6vh,64px);
}

.lu-home-main .testimonials-title{
  margin-top:20px;

  max-width:18ch;
}

.lu-home-main .tst-stage{
  display:grid;

  grid-template-columns:1.5fr 1fr;

  gap:clamp(30px,5vw,72px);

  align-items:center;
}

.lu-home-main .tst-quote{
  min-height:240px;

  display:flex;
  flex-direction:column;
  justify-content:center;
}

.lu-home-main .tst-mark{
  font-family:var(--serif);

  font-size:5rem;
  line-height:.6;

  color:var(--accent);

  opacity:.5;

  height:40px;
}

.lu-home-main .tst-quote blockquote{
  margin:0;

  font-family:var(--serif);
  font-weight:300;
  font-style:italic;
  font-size:clamp(1.5rem,2.6vw,2.3rem);
  line-height:1.35;

  color:var(--ink);

  letter-spacing:-.01em;

  transition:
    opacity .55s var(--ease),
    transform .55s var(--ease);
}

.lu-home-main .tst-meta{
  margin-top:30px;

  display:flex;
  align-items:center;

  gap:16px;
}

.lu-home-main .tst-meta .av{
  width:46px;
  height:46px;

  border-radius:50%;

  background:var(--accent-deep);
  color:#fff;

  display:flex;
  align-items:center;
  justify-content:center;

  font-family:var(--serif);
  font-size:1.2rem;
}

.lu-home-main .tst-meta b{
  font-family:var(--sans);
  font-weight:500;
  font-size:14px;
  letter-spacing:.04em;

  display:block;
}

.lu-home-main .tst-meta span{
  font-size:12.5px;

  color:var(--muted);

  letter-spacing:.02em;
}

.lu-home-main .tst-controls{
  display:flex;

  gap:12px;

  margin-top:38px;
}

.lu-home-main .tst-controls button{
  width:50px;
  height:50px;

  border:1px solid var(--line);

  background:transparent;

  border-radius:50%;

  display:flex;
  align-items:center;
  justify-content:center;

  transition:
    background .4s var(--ease),
    color .4s,
    border-color .4s;
}

.lu-home-main .tst-controls button:hover{
  background:var(--ink);
  color:var(--paper);

  border-color:var(--ink);
}

.lu-home-main .tst-video{
  position:relative;

  aspect-ratio:3/4;

  overflow:hidden;

  background:var(--dark);
}

.lu-home-main .tst-video img{
  width:100%;
  height:100%;

  object-fit:cover;

  filter:brightness(.78);
}

.lu-home-main .tst-play{
  position:absolute;
  inset:0;

  display:flex;
  align-items:center;
  justify-content:center;

  background:none;

  border:0;
}

.lu-home-main .tst-play .circ{
  width:84px;
  height:84px;

  border-radius:50%;

  background:rgba(250,247,240,.16);

  backdrop-filter:blur(4px);

  border:1px solid rgba(255,255,255,.5);

  display:flex;
  align-items:center;
  justify-content:center;

  transition:
    transform .5s var(--ease),
    background .5s;
}

.lu-home-main .tst-play:hover .circ{
  transform:scale(1.08);

  background:var(--accent-deep);
}

.lu-home-main .tst-video .vlabel{
  position:absolute;
  left:0;
  bottom:0;

  padding:22px;

  color:#fff;

  font-size:12px;
  letter-spacing:.2em;
  text-transform:uppercase;
}

.lu-home-main .tst-video iframe{
  position:absolute;
  inset:0;

  width:100%;
  height:100%;

  border:0;
}

.lu-home-main .tst-dots{
  display:flex;

  gap:8px;

  margin-top:24px;
}

.lu-home-main .tst-dots button{
  width:8px;
  height:8px;

  border-radius:50%;

  border:0;

  background:var(--line);

  transition:
    background .4s,
    transform .4s;
}

.lu-home-main .tst-dots button.on{
  background:var(--accent-deep);

  transform:scale(1.3);
}

/* ============================================================
   CONTACT — exact closing.jsx
   ============================================================ */

.lu-home-main .contact{
  background:var(--dark);
  color:var(--on-dark);
}

.lu-home-main .contact .eyebrow{
  color:var(--accent);
}

.lu-home-main .contact .eyebrow::before{
  background:var(--accent);
}

.lu-home-main .contact .accent-it{
  color:var(--accent);
}

.lu-home-main .contact-grid{
  display:grid;

  grid-template-columns:.85fr 1.15fr;

  gap:clamp(40px,6vw,96px);
}

.lu-home-main .contact h2{
  color:#fff;

  font-size:clamp(2.2rem,4.4vw,3.6rem);
  font-weight:300;

  margin:18px 0 0;
}

.lu-home-main .contact .lede{
  color:var(--on-dark-muted);

  margin-top:24px;
}

.lu-home-main .contact-aside{
  display:flex;
  flex-direction:column;

  gap:8px;

  margin-top:40px;
}

.lu-home-main .caside-row{
  padding:18px 0;

  border-top:1px solid rgba(242,235,220,.14);

  display:flex;
  flex-direction:column;

  gap:3px;
}

.lu-home-main .caside-row:last-child{
  border-bottom:1px solid rgba(242,235,220,.14);
}

.lu-home-main .caside-row span{
  font-size:11px;

  letter-spacing:.24em;
  text-transform:uppercase;

  color:var(--accent);
}

.lu-home-main .caside-row a,
.lu-home-main .caside-row p{
  color:var(--on-dark);

  font-size:16px;

  margin:0;

  font-weight:300;
}

/* ============================================================
   CONTACT FORM — exact contactform.jsx
   ============================================================ */

.lu-home-main .form{
  display:grid;

  grid-template-columns:1fr 1fr;

  gap:22px;
}

.lu-home-main .field{
  position:relative;

  grid-column:span 1;
}

.lu-home-main .field.full{
  grid-column:1/-1;
}

.lu-home-main .field input,
.lu-home-main .field textarea{
  width:100%;

  background:transparent;

  border:0;
  border-bottom:1px solid rgba(242,235,220,.28);

  color:#fff;

  font-family:var(--sans);
  font-weight:300;
  font-size:16px;

  padding:12px 0;

  outline:none;

  transition:border-color .4s;
}

.lu-home-main .field textarea{
  resize:none;

  min-height:64px;
}

.lu-home-main .field label{
  font-size:11px;

  letter-spacing:.22em;
  text-transform:uppercase;

  color:var(--on-dark-muted);

  display:block;

  margin-bottom:4px;
}

.lu-home-main .field input:focus,
.lu-home-main .field textarea:focus{
  border-color:var(--accent);
}

.lu-home-main .field input::placeholder,
.lu-home-main .field textarea::placeholder{
  color:rgba(169,158,137,.5);
}

.lu-home-main .field select{
  width:100%;

  background:transparent;

  border:0;
  border-bottom:1px solid rgba(242,235,220,.28);

  color:#fff;

  font-family:var(--sans);
  font-weight:300;
  font-size:16px;

  padding:12px 24px 12px 0;

  outline:none;

  cursor:pointer;

  transition:border-color .4s;

  -webkit-appearance:none;
  appearance:none;

  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23A99E89' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");

  background-repeat:no-repeat;
  background-position:right 2px center;
}

.lu-home-main .field select:focus{
  border-color:var(--accent);
}

.lu-home-main .field select.placeholder{
  color:rgba(169,158,137,.5);
}

.lu-home-main .field select option{
  color:#211C15;
}

.lu-home-main .services-field{
  grid-column:1/-1;
}

.lu-home-main .svc-pills{
  grid-column:1/-1;

  display:flex;
  flex-wrap:wrap;

  gap:10px;

  margin-top:4px;
}

.lu-home-main .pill{
  font-size:12.5px;
  letter-spacing:.04em;

  padding:10px 16px;

  border:1px solid rgba(242,235,220,.28);

  color:var(--on-dark-muted);

  background:transparent;

  border-radius:40px;

  transition:all .35s var(--ease);
}

.lu-home-main .pill.on{
  background:var(--accent-deep);

  border-color:var(--accent-deep);

  color:#fff;
}

.lu-home-main .pill:hover{
  border-color:var(--accent);
}

.lu-home-main .form-foot{
  grid-column:1/-1;

  display:flex;
  align-items:center;
  justify-content:space-between;

  gap:20px;
  flex-wrap:wrap;

  margin-top:8px;
}

.lu-home-main .err{
  color:#E0A98F;

  font-size:12.5px;
  letter-spacing:.04em;
}

.lu-home-main .field-label-svc{
  font-size:11px;

  letter-spacing:.22em;
  text-transform:uppercase;

  color:var(--on-dark-muted);
}

.lu-home-main .submit-btn{
  border-color:var(--accent);
}

/* ============================================================
   BOOT SPLASH — exact base.css
   Outside main by design, does not style header/footer.
   ============================================================ */

#boot-splash{
  position:fixed;
  inset:0;
  z-index:3000;

  display:flex;
  align-items:center;
  justify-content:center;

  background:var(--paper);

  transition:opacity .55s var(--ease);
}

#boot-splash .bs-mark{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(1.6rem,3.6vw,2.6rem);
  letter-spacing:.04em;

  color:var(--ink);

  text-align:center;

  opacity:0;

  animation:bsIn .7s var(--ease) .05s forwards;
}

#boot-splash .bs-mark span{
  display:block;

  font-family:var(--sans);
  font-weight:500;
  font-size:11px;
  letter-spacing:.34em;
  text-transform:uppercase;

  color:var(--accent-deep);

  margin-top:14px;
}

@keyframes bsIn{
  from{
    opacity:0;
    transform:translateY(12px);
  }
  to{
    opacity:1;
    transform:none;
  }
}

body.app-ready #boot-splash{
  opacity:0;
  pointer-events:none;
}

/* ============================================================
   GRAIN — exact base.css
   ============================================================ */

.grain{
  position:fixed;
  inset:0;

  pointer-events:none;

  z-index:1;

  opacity:.5;

  mix-blend-mode:multiply;

  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
}

/* ============================================================
   RESPONSIVE — exact Home source breakpoints
   ============================================================ */

@media(max-width:860px){

  .lu-home-main .intro-head{
    grid-template-columns:1fr;
    gap:24px;
  }

  .lu-home-main .svc-grid{
    grid-template-columns:1fr;
    gap:48px;
  }

  .lu-home-main .svc-fig{
    aspect-ratio:16/10;
  }

  .lu-home-main .dest-grid{
    grid-template-columns:repeat(2,1fr);
    grid-template-rows:none;
  }

  .lu-home-main .dfeature,
  .lu-home-main .d2,
  .lu-home-main .d3,
  .lu-home-main .d4,
  .lu-home-main .d5,
  .lu-home-main .d6{
    grid-column:auto;
    grid-row:auto;
  }

  .lu-home-main .dfeature{
    grid-column:1/3;
  }

  .lu-home-main .safari-grid{
    grid-template-columns:1fr;
    gap:40px;
  }

  .lu-home-main .safari-fig{
    aspect-ratio:4/3;
  }

  .lu-home-main .values-grid{
    grid-template-columns:1fr;
    gap:40px;
  }

  .lu-home-main .values-fig{
    aspect-ratio:4/3;
    order:-1;
  }

  .lu-home-main .tst-stage{
    grid-template-columns:1fr;
  }

  .lu-home-main .tst-video{
    aspect-ratio:16/10;
    order:-1;
  }

  .lu-home-main .contact-grid{
    grid-template-columns:1fr;
    gap:48px;
  }
}

@media(max-width:760px){
  .lu-home-main .hero-thumbs{
    display:none;
  }

  .lu-home-main .hero-bottom{
    gap:24px;
  }
}

@media(max-width:600px){
  .lu-home-main .form{
    grid-template-columns:1fr;
  }
}

/* ============================================================
   REDUCED MOTION — exact intent from source
   ============================================================ */

@media(prefers-reduced-motion:reduce){

  html{
    scroll-behavior:auto;
  }

  .lu-home-main *,
  .lu-home-main *::before,
  .lu-home-main *::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }

  .lu-home-main .reveal{
    opacity:1!important;
    transform:none!important;
  }

  .lu-home-main .reveal-img{
    clip-path:inset(0 0 0 0)!important;
  }

  .lu-home-main .dticker-track{
    animation:none;
  }

  .lu-home-main .dticker{
    overflow-x:auto;
  }

  #boot-splash .bs-mark{
    animation:none;
    opacity:1;
  }
}