*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --cream:#FAFAF7;--white:#fff;--char:#222;--mid:#555;--soft:#888;
  --border:#E2E0DA;--bg1:#F4F2EC;--bg2:#EDEAE3;
  --gold:#C9953A;--goldh:#B8821F;--goldbg:#FBF3E3;
  --font:'Roboto', sans-serif;
  --r:6px;
  --s1:0 2px 8px rgba(0,0,0,.06);
  --s2:0 6px 24px rgba(0,0,0,.10);
  --s3:0 16px 48px rgba(0,0,0,.14)
}
html{scroll-behavior:smooth;font-size:16px}
body{background:var(--cream);color:var(--char);font-family:var(--font);font-weight:400;line-height:1.65;overflow-x:hidden;overflow-x:clip}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit}
input,textarea,select{font-family:inherit}
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-track{background:var(--bg1)}
::-webkit-scrollbar-thumb{background:var(--gold);border-radius:3px}

/* ─── NAV ─── */
#nav,#nav.sc{
  background:#0b0b0b !important;position:fixed;top:0;left:0;right:0;z-index:900;
  padding:0 56px;height:72px;display:flex;align-items:center;
  justify-content:space-between;
  box-shadow:0 1px 0 rgba(255,255,255,.10);
  transition:all .3s
}
#nav::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:env(safe-area-inset-top,0px);background:#0b0b0b}
.nlogo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.nlogo svg{height:55px;width:auto}
.nlinks{display:flex;align-items:center;gap:28px;list-style:none}
.nlinks a{
  font-size:.95rem;font-weight:500;letter-spacing:.01em;color:rgba(255,255,255,.78);
  transition:color .22s;position:relative
}
.nlinks a::after{
  content:"";position:absolute;bottom:-3px;left:0;
  width:0;height:1.5px;background:var(--gold);transition:width .22s
}
.nlinks a:hover{color:#fff}.nlinks a:hover::after{width:100%}
.ncta{
  font-size:.875rem;font-weight:600;letter-spacing:.07em;
  padding:9px 20px;background:var(--gold);color:#fff;border-radius:var(--r);
  transition:all .25s;white-space:nowrap
}
.ncta:hover{background:var(--goldh);transform:translateY(-1px);box-shadow:0 4px 14px rgba(201,149,58,.38)}

/* hamburger — white lines on the dark nav */
.nhbg{
  display:none;flex-direction:column;gap:5px;
  padding:8px;z-index:902;background:none;border:none;cursor:pointer
}
.nhbg span{width:22px;height:2px;background:#fff;transition:all .3s;display:block;border-radius:2px}
.nhbg.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nhbg.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nhbg.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* mobile overlay */
.nmob{
  display:none;position:fixed;inset:0;background:#0b0b0b;z-index:901;
  flex-direction:column;align-items:flex-start;padding:0 32px;
  padding-top:88px;gap:0
}
.nmob.open{display:flex}
.nmob-close{
  position:absolute;top:20px;right:24px;
  width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  font-size:1.4rem;color:rgba(255,255,255,.8);cursor:pointer;
  border:1px solid rgba(255,255,255,.28);border-radius:50%;
  transition:all .2s;background:none
}
.nmob-close:hover{color:#fff;border-color:#fff}
.nmob a{
  font-size:1.15rem;font-weight:500;color:#fff;
  padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12);width:100%;
  transition:color .2s;display:block
}
.nmob a:last-of-type{border-bottom:none}
.nmob a:hover{color:var(--gold)}
.nmob .mcta{
  margin-top:24px!important;display:inline-flex!important;
  background:var(--gold)!important;color:#fff!important;
  padding:13px 28px!important;border-radius:var(--r)!important;
  font-size:.875rem!important;font-weight:600!important;
  letter-spacing:.07em;
  border-bottom:none!important;width:auto!important;
  justify-content:center
}

/* ─── HERO — split layout ─── */
#hero{
  position:relative;height:100vh;min-height:640px;
  display:grid;grid-template-columns:40% 60%;
  overflow:hidden;padding-top:72px
}

/* Left panel: content */
.hleft{
  display:flex;flex-direction:column;justify-content:center;
  padding:48px 52px 48px 60px;
  background:var(--cream);position:relative;z-index:2;
  overflow:hidden;isolation:isolate
}
/* subtle construction graph lines */
.hleft::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(to right,rgba(201,149,58,.07) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(201,149,58,.07) 1px,transparent 1px),
    linear-gradient(to right,rgba(201,149,58,.11) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(201,149,58,.11) 1px,transparent 1px);
  background-size:24px 24px,24px 24px,96px 96px,96px 96px;
  -webkit-mask-image:radial-gradient(ellipse 90% 85% at 18% 42%,#000 25%,transparent 78%);
  mask-image:radial-gradient(ellipse 90% 85% at 18% 42%,#000 25%,transparent 78%)
}
.hleft::after{
  content:"";position:absolute;inset:-20%;pointer-events:none;z-index:0;
  background-image:
    linear-gradient(135deg,transparent 49.6%,rgba(201,149,58,.05) 49.6%,rgba(201,149,58,.05) 50.4%,transparent 50.4%),
    linear-gradient(45deg,transparent 49.6%,rgba(34,34,34,.025) 49.6%,rgba(34,34,34,.025) 50.4%,transparent 50.4%);
  background-size:72px 72px,108px 108px;
  opacity:.85;
  -webkit-mask-image:linear-gradient(115deg,#000 0%,rgba(0,0,0,.35) 45%,transparent 72%);
  mask-image:linear-gradient(115deg,#000 0%,rgba(0,0,0,.35) 45%,transparent 72%)
}
.hleft > *{position:relative;z-index:1}
.htag{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.9rem;font-weight:400;
  text-transform:uppercase;color:var(--gold);margin-bottom:16px
}
.htag::before{display:block;width:22px;height:1.5px;background:var(--gold)}
.htitle{
  font-size:clamp(1.9rem,2.8vw,3.4rem);font-weight:600;
  line-height:1.1;color:var(--char);margin-bottom:14px
}
.hsub{
  font-size:1rem;color:var(--mid);margin-bottom:32px;
  max-width:380px;line-height:1.72
}
.hbtns{display:flex;gap:12px;flex-wrap:wrap}
.bgold{
  display:inline-flex;align-items:center;gap:8px;
  padding:12px 26px;background:var(--gold);color:#fff;
  font-size:.875rem;font-weight:600;
  border-radius:var(--r);transition:all .25s
}
.bgold:hover{background:var(--goldh);transform:translateY(-2px);box-shadow:0 8px 20px rgba(201,149,58,.36)}
.boutl{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 26px;border:1.5px solid var(--border);
  color:var(--char);font-size:.875rem;font-weight:500;
  letter-spacing:.07em;
  border-radius:var(--r);transition:all .25s;
  background: #ffffff
}
.boutl:hover{border-color:var(--gold);color:var(--gold)}

/* Slide indicator dots */
.hdots-left{
  display:flex;gap:8px;z-index:12;
  position:absolute;bottom:20px;left:20px
}
.hdot-l{
  width:8px;height:8px;border-radius:50%;
  background:rgba(255,255,255,.45);cursor:pointer;transition:all .25s;border:none;
  box-shadow:0 1px 4px rgba(0,0,0,.18)
}
.hdot-l.on{background:var(--gold);transform:scale(1.2)}

/* Right panel: image slides */
.hright{position:relative;overflow:hidden;background:var(--bg2);min-height:0;touch-action:pan-y pinch-zoom}
.hslides{position:absolute;inset:0;width:100%;height:100%}
.hslide{position:absolute;inset:0;opacity:0;transition:opacity 1s ease,transform 1.6s ease;transform:scale(1.03);pointer-events:none}
.hslide.on{opacity:1;transform:scale(1);pointer-events:auto}
.hslide.out{opacity:0;transform:scale(.98)}
.hbg{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  display:block;background:var(--bg2)
}

/* prev/next — pill style instead of circles */
.harr{
  position:absolute;top:50%;transform:translateY(-50%);z-index:10;
  display:flex;align-items:center;gap:6px;
  padding:10px 16px;
  background:rgba(255,255,255,.92);
  color:var(--char);font-size:.875rem;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;
  border:1px solid rgba(255,255,255,.6);
  border-radius:100px;
  backdrop-filter:blur(8px);
  transition:all .25s;
  box-shadow:var(--s1);
  -webkit-tap-highlight-color:transparent
}
.harr:hover{background:#fff;color:var(--gold);box-shadow:var(--s2)}
.harr.p{left:16px}.harr.n{right:16px}
.harr .harr-txt{display:inline}
.harr svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2;flex-shrink:0}
.hthumbs{position:absolute;bottom:20px;right:20px;display:none;gap:6px;z-index:10}
.hthumb{
  width:52px;height:36px;border-radius:4px;overflow:hidden;
  cursor:pointer;opacity:.42;transition:all .25s;border:2px solid transparent
}
.hthumb.on{opacity:1;border-color:var(--gold)}.hthumb:hover{opacity:.8}
.hthi{width:100%;height:100%;background-size:cover;background-position:center}

/* Hero animate in */
.hleft-body{opacity:0;transform:translateX(-18px);transition:opacity .8s ease .3s,transform .8s ease .3s}
.hleft-body.vis{opacity:1;transform:translateX(0)}

/* ─── STATS (light, in hero) ─── */
#stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px 16px;
  margin-top:36px;padding-top:28px;border-top:1px solid var(--border)
}
.sitem{text-align:left}
.snum{font-size:clamp(1.5rem,2.2vw,2rem);font-weight:600;color:var(--gold);line-height:1;margin-bottom:4px}
.slbl{font-size:.9375rem;color:var(--mid)}

/* ─── SHARED ─── */
.stag{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.9rem;font-weight:400;
  text-transform:uppercase;color:var(--gold);margin-bottom:11px
}
.stag::before{display:block;width:24px;height:1.5px;background:var(--gold)}
.sh{font-size:clamp(1.6rem,3.5vw,2.8rem);font-weight:600;line-height:1.14;color:var(--char);margin-bottom:13px}
.ssub{font-size:.9375rem;color:var(--mid);line-height:1.78;max-width:650px}
.fu{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.fu.vis{opacity:1;transform:translateY(0)}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}.d3{transition-delay:.3s}.d4{transition-delay:.4s}

/* ─── GALLERY ─── */
#gallery{padding:80px 56px;background:var(--bg1);--gpad:56px;--navh:72px}
.galhead{text-align:center;margin-bottom:40px}
.galhead .stag{justify-content:center}.galhead .stag::before{display:none}
.galhead .ssub{margin:0 auto}
.galfilters{
  /* sticky, full-bleed bar that stays under the fixed nav while the grid scrolls */
  position:sticky;top:var(--navh);z-index:50;
  display:flex;justify-content:flex-start;align-items:center;gap:7px;flex-wrap:nowrap;
  margin:0 calc(-1*var(--gpad)) 16px;padding:12px var(--gpad);
  background:var(--bg1);
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  transition:box-shadow .25s
}
.galfilters::-webkit-scrollbar{display:none}
.galfilters.stuck{box-shadow:0 6px 16px -8px rgba(0,0,0,.18)}
/* auto margins center the pills when they fit, and still allow scrolling when they don't */
.galfilters .gfbtn:first-child{margin-left:auto}
.galfilters .gfbtn:last-child{margin-right:auto}
.gfbtn{flex-shrink:0;white-space:nowrap}
.gfbtn{
  padding:8px 18px;border:1.5px solid var(--border);border-radius:100px;
  font-size:.875rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  color:var(--mid);transition:all .22s;background:#fff
}
.gfbtn:hover{border-color:var(--gold);color:var(--char)}
.gfbtn.on{background:var(--char);border-color:var(--char);color:#fff}
.masonry{columns:4;column-gap:12px}
/* gallery cards (rendered by scripts.js) */
.gitem{break-inside:avoid;margin-bottom:12px}
.gcard{display:block;position:relative;width:100%;padding:0;border:0;background:#ece6dc;border-radius:var(--r);overflow:hidden;cursor:pointer;transition:transform .3s,box-shadow .3s}
.gcard:hover,.gcard:focus-visible{transform:translateY(-3px);box-shadow:var(--s3)}
.gcard:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.gcard img{display:block;width:100%;height:auto;min-height:180px;object-fit:cover;transition:transform .5s ease}
.gcard:hover img{transform:scale(1.04)}

/* video tiles */
.gvid{cursor:default;background:#111}
.gvid video{display:block;width:100%;height:auto;min-height:180px;object-fit:cover;background:#111}
.gplay{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:64px;height:64px;border-radius:50%;border:0;padding:0;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.92);color:#1a1a1a;box-shadow:0 6px 24px rgba(0,0,0,.35);
  transition:transform .2s,background .2s,opacity .25s
}
.gplay svg{display:block;flex:none;margin-left:3px}
.gplay:hover{transform:translate(-50%,-50%) scale(1.07);background:#fff}
.gplay:focus-visible,.gexpand:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.gvid.playing .gplay{opacity:0;pointer-events:none}
.gvid.playing:hover .gplay,.gvid.playing .gplay:focus-visible{opacity:1;pointer-events:auto;top:34px;left:34px;transform:translate(-50%,-50%) scale(.7)}
.gvid.playing .gplay svg{margin-left:0}
.gdur{
  position:absolute;left:10px;bottom:10px;padding:3px 9px;border-radius:100px;
  background:rgba(0,0,0,.65);color:#fff;font-size:.875rem;font-weight:500;line-height:1.4;
  pointer-events:none;transition:opacity .2s
}
.gdur:empty{display:none}
.gvid.playing .gdur{opacity:0}
.gexpand{
  position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.55);color:#fff;cursor:pointer;padding:0;
  display:flex;align-items:center;justify-content:center;
  transition:background .2s
}
.gexpand svg{display:block;flex:none}
.gexpand:hover{background:rgba(0,0,0,.8)}
.gmsg{column-span:all;text-align:center;padding:3rem 1rem;color:var(--mid);font-size:.9rem}

/* ─── PROCESS — light mode ─── */
#process{
  padding:88px 80px;
  background:var(--cream);
  position:relative
}
#process::before{
  content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:var(--border)
}
.phead{text-align:center;margin-bottom:64px}
.phead .stag{justify-content:center}
.phead .stag::before{background:var(--gold)}
.phead .sh{color:var(--char)}
.phead .ssub{color:var(--mid);margin:0 auto;text-align:center}

/* Step connector */
.pgrid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:28px;position:relative;align-items:stretch;grid-auto-rows:1fr
}
.pconnector{
  position:absolute;top:50%;transform:translateY(-50%);
  left:calc(33.33% - 14px);right:calc(33.33% - 14px);
  height:2px;z-index:0;
  display:flex;align-items:center;pointer-events:none
}
.pconn-seg{flex:1;height:2px;background:var(--gold)}
.pconn-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--gold);flex-shrink:0;margin:0 2px
}

.pstep{position:relative;z-index:1;display:flex}

/* Step card */
.pcard{
  background:#fff;border:none;border-radius:14px;
  padding:36px 28px 32px;
  box-shadow:0 4px 24px rgba(0,0,0,.06);
  display:flex;flex-direction:column;align-items:center;
  flex:1;width:100%;
  transition:box-shadow .3s,transform .3s
}
.pcard:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,.09)}

/* Top line icon */
.pico-top{
  width:44px;height:44px;margin-bottom:18px;
  display:flex;align-items:center;justify-content:center;color:var(--gold)
}
.pico-top svg{width:36px;height:36px;stroke:var(--gold);fill:none;stroke-width:1.4}

.ptitle{
  font-size:1.35rem;font-weight:600;color:var(--goldh);
  margin-bottom:22px;line-height:1.25;text-align:center
}

/* Highlight stat box */
.pstat{
  display:flex;align-items:center;gap:0;
  width:100%;max-width:270px;
  background:#FBF6EE;border:1px solid rgba(201,149,58,.14);
  border-radius:10px;padding:14px 16px;margin-bottom:24px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8)
}
.pstat-ico{
  width:52px;height:52px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0
}
.pstat-ico svg{width:36px;height:36px;stroke:var(--gold);fill:none;stroke-width:1.5}
.pstat-div{width:1px;height:44px;background:rgba(201,149,58,.22);margin:0 14px;flex-shrink:0}
.pstat-txt{
  display:flex;flex-direction:column;align-items:flex-start;
  color:var(--gold);line-height:1.1;flex:1
}
.pstat-pre,.pstat-post{
  font-size:.875rem;font-weight:600;text-transform:uppercase; color :var(--goldh);
}
.pstat-num{
  font-size:2rem;font-weight:600;line-height:1;
  margin:2px 0;letter-spacing:-.02em
}

.ppts{list-style:none;text-align:left;width:100%}
.ppts li{
  font-size:.9375rem;color:var(--mid);padding:12px 0;
  display:flex;align-items:flex-start;gap:12px;line-height:1.55;
  border-bottom:1px solid var(--border)
}
.ppts li:last-child{border-bottom:none;padding-bottom:0}
.ppts li:first-child{padding-top:0}
.pchk{
  width:18px;height:18px;border-radius:50%;
  border:1.5px solid var(--gold);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px
}
.pchk svg{width:9px;height:9px;stroke:var(--gold);fill:none;stroke-width:2.2}

/* ─── ABOUT ─── */
#about{padding:88px 80px;background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.avis{position:relative}
.amain{width:100%;aspect-ratio:4/5;border-radius:10px;box-shadow:var(--s3);overflow:hidden;background:linear-gradient(145deg,#f0ebe3,#8b6f47)}
.amain img{width:100%;height:100%;object-fit:cover}
.aacc{position:absolute;bottom:-24px;right:-18px;width:46%;aspect-ratio:1;border-radius:8px;border:5px solid #fff;box-shadow:var(--s2);overflow:hidden;background:linear-gradient(135deg,var(--gold),#8B6F47)}
.aacc img{width:100%;height:100%;object-fit:cover}
.abadge{position:absolute;top:28px;left:-20px;width:124px;height:124px;background:var(--char);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--s2)}
.abadge .abn{font-size:2.1rem;font-weight:600;color:var(--gold);line-height:1}
.abadge .abl{font-size:.875rem;font-weight:500;letter-spacing:.02em;color:rgba(255,255,255,1);text-align:center;line-height:1.3;margin-top:3px}
.avals{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
.aval{padding:16px;background:var(--bg1);border-radius:8px;border-left:3px solid var(--gold);transition:transform .25s}
.aval:hover{transform:translateY(-2px)}
.avico{margin-bottom:8px}
.avico svg{width:36px;height:36px;stroke:var(--gold);fill:none;stroke-width:1.6}
.aval h4{font-size:1rem;font-weight:600;margin-bottom:4px;color:var(--goldh)}
.aval p{font-size:.9rem;color:var(--mid);line-height:1.6}

/* ─── TESTIMONIALS ─── */
#testi{padding:80px 80px;background:var(--bg2)}
.thead{text-align:center;margin-bottom:48px}
.thead .stag{justify-content:center}.thead .stag::before{display:none}
.twrap{overflow:hidden}
.ttrack{display:flex;gap:20px;transition:transform .55s cubic-bezier(.25,.46,.45,.94)}
.tcard{min-width:calc(33.333% - 14px);background:#fff;border-radius:10px;padding:28px;box-shadow:var(--s1);transition:all .25s;position:relative}
.tcard:hover{transform:translateY(-3px);box-shadow:var(--s2)}
.tstars{position:absolute;top:28px;right:28px;color:var(--gold);font-size:.875rem;letter-spacing:2px}
.tq{font-size:2.8rem;font-weight:600;color:var(--gold);line-height:.5;margin-bottom:13px;opacity:.42}
.ttext{font-size:.9375rem;line-height:1.74;color:var(--char);margin-bottom:20px}
.tauth{display:flex;align-items:center;gap:10px}
.tav{width:38px;height:38px;border-radius:50%;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;color:var(--gold);flex-shrink:0}
.tname{font-size:.9375rem;font-weight:600;color:var(--char)}
.tloc{font-size:.875rem;color:var(--soft)}
.tctrl{display:flex;justify-content:center;gap:9px;margin-top:30px}
.tbtn{width:36px;height:36px;border:1.5px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--mid);font-size:.875rem;transition:all .22s}
.tbtn:hover{background:var(--char);border-color:var(--char);color:#fff}

/* ─── CONTACT — light mode ─── */
#contact{
  padding:88px 80px;background:var(--bg1);
  display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:stretch
}

/* left info panel */
.cinfo{background:#fff;border-radius:12px;padding:44px 40px;box-shadow:var(--s1);display:flex;flex-direction:column}
.cdet{
  display:flex;align-items:flex-start;gap:16px;
  margin-bottom:24px;padding-bottom:24px;
  border-bottom:1px solid var(--border)
}
.cdet:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0}
.cico{
  width:44px;height:44px;border-radius:10px;
  background:var(--goldbg);border:1.5px solid rgba(201,149,58,.25);
  display:flex;align-items:center;justify-content:center;flex-shrink:0
}
.cico svg{width:18px;height:18px;stroke:var(--gold);fill:none;stroke-width:1.7}
.clbl{font-size:.875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-bottom:3px}
.cval{font-size:.9375rem;color:var(--char);font-weight:500;line-height:1.5}
.areas{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.area{
  font-size:.875rem;padding:3px 10px;
  background:var(--bg1);border-radius:100px;
  color:var(--mid);font-weight:500;border:1px solid var(--border)
}
.maph{
  margin-top:20px;min-height:120px;flex:1;
  background:linear-gradient(135deg,#f0ece4,#e6e0d4);
  border-radius:10px;border:1px solid var(--border);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px
}
.mapdot{width:10px;height:10px;background:var(--gold);border-radius:50%;animation:pulse 2s ease infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,149,58,.44)}50%{box-shadow:0 0 0 10px rgba(201,149,58,0)}}
.maph span{font-size:.875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--soft)}

/* right form panel — light */
.cform{
  background:#fff;border-radius:12px;padding:44px 40px;
  box-shadow:var(--s1);border:1px solid var(--border);
  position:relative;overflow:hidden;
  display:flex;flex-direction:column
}
.cform::before{
  content:"";position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(to right,var(--gold),#c6833a)
}
.cform .stag{color:var(--gold)}.cform .stag::before{background:var(--gold)}
.cform .sh{color:var(--char);font-size:1.75rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fg{margin-top:16px}
.fg label{
  display:block;font-size:.9375rem;font-weight:500;
  color:var(--mid);margin-bottom:4px
}
.fg input,.fg textarea,.fg select{
  width:100%;background:#fff;border:1.5px solid var(--border);
  border-radius:6px;padding:10px 13px;color:var(--char);
  font-size:1rem;outline:none;transition:border-color .22s
}
.fg textarea{resize:vertical;min-height:71px}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--gold);background:#fffdf8}
.fg input::placeholder,.fg textarea::placeholder{color:#bbb}
.fsub{
  margin-top:auto;width:100%;padding:13px;
  background:var(--gold);color:#fff;font-size:.875rem;font-weight:600;
  letter-spacing:.12em;
  border-radius:6px;transition:all .25s;font-family:var(--font)
}
.fsub:hover{background:var(--goldh);transform:translateY(-2px);box-shadow:0 8px 20px rgba(201,149,58,.32)}
.fnote{margin-top:12px;text-align:center;font-size:.875rem;color:var(--soft);letter-spacing:.03em}

/* ─── FOOTER ─── */
footer{background:#141414;padding:50px 80px 24px;border-top:1px solid rgba(201,149,58,.18)}
.fttop{display:grid;grid-template-columns:2fr 1fr 1fr;gap:50px;padding-bottom:38px;border-bottom:1px solid rgba(255,255,255,.06)}
.ftlogo{display:flex;align-items:center;gap:9px;margin-bottom:12px}
.ftlogo svg{height:40px;width:auto}
.ftlogoname{font-size:.875rem;font-weight:600;letter-spacing:.09em;color:#fff;text-transform:uppercase}
.ftbrand p{font-size:.9375rem;color:rgba(255,255,255,.55);line-height:1.7;max-width:300px;margin-bottom:17px}
.ftsoc{display:flex;gap:8px}
.ftsocbtn{width:30px;height:30px;border:1px solid rgba(255,255,255,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .22s}
.ftsocbtn svg{width:12px;height:12px;stroke:rgba(255,255,255,.4);fill:none;stroke-width:1.8;transition:stroke .22s}
.ftsocbtn:hover{border-color:var(--gold)}.ftsocbtn:hover svg{stroke:var(--gold)}
.ftcol h5{font-size:.875rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:15px}
.ftcol ul{list-style:none}
.ftcol li{margin-bottom:8px}
.ftcol a{font-size:.9375rem;color:rgba(255,255,255,.6);transition:color .22s}
.ftcol a:hover{color:#DFC28E}
.ftbot{padding-top:20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.ftbot p{font-size:.875rem;color:rgba(255,255,255,.45);letter-spacing:.04em}
.ftbot .g{color:var(--gold)}

/* ─── TOAST ─── */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(14px);background:var(--char);color:#fff;padding:11px 24px;border-radius:100px;font-size:.9375rem;letter-spacing:.02em;z-index:3000;opacity:0;transition:all .35s;border:1px solid rgba(201,149,58,.26);pointer-events:none;font-weight:500}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}


/* ── Form validation styles ── */
#fvalidmsg {
  display: none;
  background: #fff3cd;
  border: 1px solid #ffc107;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 14px;
  color: #856404;
  font-size: .9375rem;
  font-weight: 500;
}
 
.form-err {
  color: #c0392b;
  font-size: .875rem;
}
 
.input-error {
  border-color: #c0392b !important;
}
 

/* ─── LIGHTBOX ─── */
.lightbox{
  display:none;position:fixed;inset:0;z-index:9999;
  background:rgba(10,10,12,.96);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  align-items:center;justify-content:center;
  padding:calc(max(16px,env(safe-area-inset-top,0px)) + 64px) 24px 24px;
  opacity:0;transition:opacity .25s ease
}
.lightbox.open{display:flex;opacity:1}

.lb-content{
  width:100%;max-width:1100px;max-height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px
}
.lb-imgwrap{width:100%;display:flex;align-items:center;justify-content:center;min-height:0}
.lb-content img{
  max-width:100%;
  max-height:calc(100vh - 210px);max-height:calc(100dvh - 210px);
  object-fit:contain;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5);
  opacity:0;transform:scale(.98);transition:opacity .2s ease,transform .2s ease
}
.lb-content img.loaded{opacity:1;transform:scale(1)}
.lb-video{
  display:none;max-width:100%;
  max-height:calc(100vh - 210px);max-height:calc(100dvh - 210px);
  background:#000;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5);outline:none
}
.lightbox.lb-isvideo .lb-video{display:block}
.lightbox.lb-isvideo #lb-img{display:none}
.lb-caption{
  color:#fff;font-size:.875rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-align:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  padding:8px 18px;border-radius:999px
}

/* round prev / next / close buttons */
.lb-nav,.lb-close{
  background:rgba(255,255,255,.12);color:#fff;
  border:1px solid rgba(255,255,255,.22);border-radius:50%;
  aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;
  line-height:0;cursor:pointer;padding:0;margin:0;
  transition:background .2s ease,border-color .2s ease,transform .15s ease;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation
}
.lb-nav{
  position:absolute;top:50%;transform:translateY(-50%);
  width:50px;height:50px;min-width:50px;min-height:50px;
  font-size:1.1rem;z-index:10000;backdrop-filter:blur(4px)
}
.lb-prev{left:20px}.lb-next{right:20px}
/* close sits above everything else in the lightbox so nothing can cover it */
.lb-close{
  position:absolute;top:max(16px,env(safe-area-inset-top,0px));right:20px;
  width:44px;height:44px;min-width:44px;min-height:44px;
  font-size:1.9rem;z-index:10003
}
.lb-nav svg,.lb-close svg,.nmob-close svg{display:block;flex:none;pointer-events:none}
.lb-nav:hover,.lb-close:hover{background:rgba(255,255,255,.24);border-color:rgba(255,255,255,.55)}
.lb-nav:active{transform:translateY(-50%) scale(.94)}
.lb-close:active{transform:scale(.9)}
.lb-nav:focus-visible,.lb-close:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* category pills: a swipeable row */
.lb-filters{
  /* sits between the left edge and the close button, so the two can never overlap */
  position:absolute;left:84px;right:84px;z-index:10001;
  top:max(16px,env(safe-area-inset-top,0px));
  display:flex;align-items:center;gap:7px;flex-wrap:nowrap;
  padding:2px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;
  -webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain
}
.lb-filters::-webkit-scrollbar{display:none}
.lb-fbtn{
  flex-shrink:0;white-space:nowrap;cursor:pointer;
  padding:8px 16px;border-radius:100px;
  font:inherit;font-size:.875rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;
  color:rgba(255,255,255,.85);background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  transition:background .2s,color .2s,border-color .2s;
  -webkit-tap-highlight-color:transparent
}
.lb-fbtn:hover{border-color:rgba(255,255,255,.5)}
.lb-fbtn.on{background:#fff;color:#1a1a1a;border-color:#fff}
.lb-fbtn:focus-visible{outline:2px solid #fff;outline-offset:2px}
.lb-filters .lb-fbtn:first-child{margin-left:auto}
.lb-filters .lb-fbtn:last-child{margin-right:auto}

/* mobile: photo runs edge to edge, arrows + caption overlay it */
@media (max-width:768px){
  .lightbox{
    padding:calc(max(10px,env(safe-area-inset-top,0px)) + 100px) 0 0;
    align-items:stretch;
    background:#0a0a0c
  }
  .lb-filters{left:0;right:0;top:calc(max(10px,env(safe-area-inset-top,0px)) + 52px);padding:2px 10px;gap:6px}
  .lb-fbtn{padding:7px 13px;letter-spacing:.02em}
  .lb-close{top:max(10px,env(safe-area-inset-top,0px));right:10px}
  .lb-content{max-width:100%;width:100%;gap:0;flex:1;min-height:0;max-height:none;justify-content:center}
  .lb-imgwrap{position:relative;width:100%;flex:1;min-height:0}
  .lb-content img{
    width:100%;height:100%;max-width:100%;max-height:none;
    object-fit:contain;border-radius:0;box-shadow:none
  }
  .lb-caption{
    position:absolute;left:50%;transform:translateX(-50%);
    bottom:max(14px,env(safe-area-inset-bottom,0px));z-index:10002;
    background:rgba(0,0,0,.6);border-color:rgba(255,255,255,.25);
    padding:6px 14px;white-space:nowrap
  }
  .lb-nav{
    width:44px;height:44px;min-width:44px;min-height:44px;
    background:rgba(0,0,0,.5);border-color:rgba(255,255,255,.35)
  }
  .lb-prev{left:8px}.lb-next{right:8px}
  .lb-video{
    width:100%;height:100%;max-width:100%;max-height:none;
    object-fit:contain;border-radius:0;box-shadow:none
  }
  /* keep the category pill clear of the video controls */
  .lightbox.lb-isvideo .lb-caption{bottom:calc(max(14px,env(safe-area-inset-bottom,0px)) + 64px)}
}

/* ─── RESPONSIVE ─── */
@media(max-width:1200px){
  #nav{padding:0 32px}
  #gallery{padding:64px 32px;--gpad:32px}
  #process{padding:72px 40px}
  #about{padding:72px 40px}
  #testi{padding:64px 40px}
  #contact{padding:72px 40px}
  footer{padding:44px 40px 24px}
  .masonry{columns:3}
  .pgrid{gap:20px}
  .pstep{padding:0}
  .fttop{grid-template-columns:1.5fr 1fr 1fr}
  .tcard{min-width:calc(50% - 10px)}
}

@media(max-width:1024px){
  #hero{grid-template-columns:45% 55%}
  .hleft{padding:40px 40px 40px 48px}
  #about{grid-template-columns:1fr;gap:50px}
  .aacc{right:-12px;bottom:-16px}
  #contact{grid-template-columns:1fr;grid-auto-rows:1fr}
  .pgrid{grid-template-columns:1fr;gap:20px}
  .pconnector{display:none}
  .pstep{padding:0}
  .ptitle{font-size:1.25rem}
}

@media(max-width:900px){
  #nav{padding:0 20px;height:64px}
  .nlogo svg{height:45px;max-width:min(220px,58vw)}
  .nlinks,.ncta{display:none}
  .nhbg{display:flex}

  #hero{
    display:flex;flex-direction:column;
    height:auto;min-height:0;padding-top:64px
  }
  .hright{
    order:1;width:100%;
    height:clamp(300px,72vw,520px);
    min-height:300px;flex-shrink:0
  }
  .hslide,.hslide.on,.hslide.out{
    transform:none!important;
    transition:opacity .8s ease
  }
  .hbg{object-fit:contain;object-position:center center}
  .hleft{
    order:2;width:100%;
    padding:32px 24px 36px;
    justify-content:flex-start
  }
  .hsub{max-width:none;margin-bottom:24px}
  .harr{
    padding:0;width:40px;height:40px;
    justify-content:center;border-radius:50%
  }
  .harr .harr-txt{display:none}
  .harr.p{left:12px}.harr.n{right:12px}
  .hthumbs{display:none}
  .hdots-left{bottom:14px;left:14px}

  #stats{margin-top:28px;padding-top:24px;gap:14px 10px}
  #gallery{padding:56px 20px;--gpad:20px;--navh:64px}
  .galfilters{gap:6px}
  .gfbtn{padding:8px 14px;font-size:.875rem;letter-spacing:.02em}
  .masonry{columns:2}
  #process{padding:56px 24px}
  .pgrid{grid-template-columns:1fr;gap:16px}
  .pconnector{display:none}
  .pstep{padding:0}
  .pcard{padding:28px 22px 26px}
  .pstat{max-width:none}
  #about{padding:56px 24px}
  .abadge{top:16px;left:0;width:108px;height:108px}
  .abadge .abn{font-size:1.8rem}
  .aacc{right:0;bottom:-12px;width:42%}
  #testi{padding:56px 24px}
  .tcard{min-width:calc(85% - 10px)}
  #contact{padding:56px 24px;gap:24px}
  .cinfo,.cform{padding:32px 24px}
  .frow{grid-template-columns:1fr}
  footer{padding:40px 20px 18px}
  .fttop{grid-template-columns:1fr 1fr;gap:32px 24px}
  .ftbrand{grid-column:1/-1}
  .ftbot{flex-direction:column;text-align:center}
}

@media(max-width:600px){
  .masonry{columns:1}
  .htitle{font-size:1.75rem}
  .hright{height:clamp(280px,68vw,460px);min-height:280px}
  .harr{width:36px;height:36px}
  .avals{grid-template-columns:1fr}
  .sh{font-size:1.5rem}
  .fttop{grid-template-columns:1fr}
}

@media(max-width:400px){
  .hbtns{flex-direction:column}
  .hbtns a{text-align:center;justify-content:center;width:100%}
  #stats{gap:12px 8px}
  .snum{font-size:1.25rem}
  .slbl{font-size:.875rem}
}