*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;color:#201328;background:#fff}a{color:inherit}header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.97);box-shadow:0 8px 25px rgba(38,6,56,.08)}.nav{max-width:1240px;margin:auto;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand img{display:block;height:78px;width:auto}.nav nav{display:flex;align-items:center;gap:22px;font-weight:700;font-size:14px}.nav nav a{text-decoration:none}.quote-link,.btn.primary{background:#d4af37;color:#260638;padding:14px 22px;border-radius:999px;font-weight:900;text-decoration:none}.menu{display:none;border:0;background:none;font-size:28px}.hero{min-height:720px;position:relative;overflow:hidden;display:flex;align-items:center}.hero-slides,.hero-slide,.hero-slide img,.shade{position:absolute;inset:0}.hero-slide{opacity:0;transition:opacity .8s}.hero-slide.active{opacity:1}.hero-slide img{width:100%;height:100%;object-fit:cover}.shade{background:linear-gradient(90deg,rgba(25,5,36,.9),rgba(38,6,56,.5),rgba(38,6,56,.1))}.hero-content{position:relative;z-index:2;color:#fff;max-width:760px;padding:70px max(6vw,32px)}.eyebrow{text-transform:uppercase;letter-spacing:3px;color:#d4af37;font-weight:900;font-size:14px}.hero h1{font-size:clamp(48px,7vw,88px);line-height:.98;margin:.2em 0}.hero-content>p:not(.eyebrow){font-size:21px;line-height:1.6;max-width:650px}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-block;padding:14px 22px;border-radius:999px;font-weight:900;text-decoration:none}.btn.secondary{border:1px solid #fff;color:#fff}.dots{position:absolute;z-index:4;bottom:28px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.dots button{width:10px;height:10px;border-radius:50%;border:0;background:#fff8}.dots button.active{background:#d4af37;width:28px;border-radius:20px}.trust{display:grid;grid-template-columns:repeat(4,1fr);max-width:1200px;margin:-30px auto 40px;position:relative;z-index:5;background:#fff;border-radius:18px;box-shadow:0 16px 50px #26063822;overflow:hidden}.trust div{padding:24px;text-align:center;font-weight:900;border-right:1px solid #eee}.intro,.services{max-width:1200px;margin:70px auto;padding:0 24px;text-align:center}.intro h2,.services h2,.about h2,.shop h2,.quote h2{font-size:clamp(34px,5vw,60px);margin:.2em 0;color:#260638}.intro p:last-child{color:#6b5d70;font-size:18px}.work-section{padding:46px 0;overflow:hidden}.work-section:nth-of-type(even){background:#fff8ef}.work-head{max-width:1200px;margin:auto;padding:0 24px 24px}.work-head h2{font-size:38px;color:#5b2c83;margin:0}.work-head p{color:#6b5d70}.rail{display:flex;gap:18px;overflow-x:hidden;scroll-behavior:smooth;padding:4px 24px 22px;scrollbar-width:none;max-width:1248px;margin:0 auto}.rail::-webkit-scrollbar{display:none}.rail figure{margin:0;flex:0 0 clamp(300px,32vw,390px);height:270px;border-radius:18px;overflow:hidden;position:relative;box-shadow:0 14px 34px #26063820;background:#eee}.rail img{width:100%;height:100%;object-fit:cover}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px}.service-grid div{padding:22px;border:1px solid #eadcf4;border-radius:16px;background:#fff;font-weight:800}.shop,.about,.quote{max-width:1200px;margin:80px auto;padding:48px;border-radius:28px}.shop{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;background:#f4e7ff}.shop img{width:100%;height:420px;object-fit:cover;border-radius:20px}.about{display:grid;grid-template-columns:1fr 1fr;gap:50px;background:#260638;color:#fff}.about h2{color:#fff}.about>p{font-size:20px;line-height:1.7}.quote{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;background:#fff8ef}.contact-copy a{color:#5b2c83;font-weight:900}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid input,.form-grid select,.form-grid textarea{width:100%;padding:15px;border:1px solid #d8c9df;border-radius:10px;font:inherit}.form-grid textarea{grid-column:1/-1;min-height:145px}.quote button{margin-top:14px;padding:15px 24px;border:0;border-radius:999px;background:#d4af37;color:#260638;font-weight:900;font-size:16px}.hidden{display:none}footer{text-align:center;padding:48px 20px;background:#17121b;color:#fff}footer img{height:62px;filter:brightness(0) invert(1);opacity:.95}footer a{color:#d4af37;font-weight:800}@media(max-width:900px){.nav{padding:12px 16px}.brand img{height:64px}.menu{display:block}.nav nav{display:none;position:absolute;top:88px;left:0;right:0;background:#fff;padding:20px;flex-direction:column;box-shadow:0 15px 25px #0002}.nav nav.open{display:flex}.hero{min-height:650px}.trust{grid-template-columns:1fr 1fr;margin:0;border-radius:0}.service-grid{grid-template-columns:1fr 1fr}.shop,.about,.quote{margin:45px 16px;padding:28px;grid-template-columns:1fr}.shop img{height:320px}.form-grid{grid-template-columns:1fr}.form-grid textarea{grid-column:auto}.rail figure{flex-basis:280px;height:210px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.rail{animation:none}.hero-slide{transition:none}}


.carousel-wrap{position:relative;max-width:1280px;margin:0 auto}
.carousel-btn{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:46px;height:46px;border:0;border-radius:50%;
  background:rgba(38,6,56,.9);color:#fff;font-size:25px;font-weight:900;
  cursor:pointer;box-shadow:0 10px 25px rgba(38,6,56,.25)
}
.carousel-btn:hover{background:#5b2c83}
.carousel-btn.prev{left:4px}
.carousel-btn.next{right:4px}
.rail.is-paused{scroll-behavior:auto}
@media(max-width:900px){
  .rail{padding-left:18px;padding-right:18px}
  .rail figure{flex-basis:82vw;height:235px}
  .carousel-btn{width:40px;height:40px;font-size:22px}
}
@media(prefers-reduced-motion:reduce){
  .carousel-btn{display:none}
}

/* V12 guaranteed continuous scrolling */
.rail{overscroll-behavior-x:contain;will-change:scroll-position}
.carousel-wrap{overflow:hidden}
.carousel-wrap::before,.carousel-wrap::after{content:"";position:absolute;top:0;bottom:0;width:42px;z-index:3;pointer-events:none}
.carousel-wrap::before{left:0;background:linear-gradient(90deg,#fff,transparent)}
.carousel-wrap::after{right:0;background:linear-gradient(270deg,#fff,transparent)}
.work-section:nth-of-type(even) .carousel-wrap::before{background:linear-gradient(90deg,#fff8ef,transparent)}
.work-section:nth-of-type(even) .carousel-wrap::after{background:linear-gradient(270deg,#fff8ef,transparent)}

/* V13: unique-photo loop sizing.
   Clones exist only off-screen for continuity; duplicate photos are not visible together. */
.rail.original-count-2 figure{
  flex:0 0 calc((100% - 18px)/2);
}
.rail.original-count-3 figure{
  flex:0 0 calc((100% - 36px)/3);
}
.rail.original-count-4 figure{
  flex:0 0 calc((100% - 54px)/4);
}
@media(max-width:900px){
  .rail.original-count-2 figure,
  .rail.original-count-3 figure,
  .rail.original-count-4 figure{
    flex-basis:82vw;
  }
}

/* V14: fast, reliable continuous carousels */
.rail{
  display:block !important;
  overflow:hidden !important;
  max-width:1280px;
  margin:0 auto;
  padding:8px 0 22px;
}
.rail-track{
  display:flex;
  width:max-content;
  gap:18px;
  padding-left:24px;
  will-change:transform;
  animation:rail-loop var(--carousel-duration,12s) linear infinite;
}
.rail-track.reverse{
  animation-direction:reverse;
}
.rail:hover .rail-track,
.rail:focus-within .rail-track{
  animation-play-state:paused;
}
.rail-track figure{
  margin:0;
  flex:0 0 clamp(300px,31vw,390px);
  height:270px;
  border-radius:18px;
  overflow:hidden;
  box-shadow:0 14px 34px rgba(38,6,56,.14);
  background:#eee;
}
.rail-track img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.carousel-wrap,
.carousel-btn{
  all:unset;
}
@keyframes rail-loop{
  from{transform:translateX(0)}
  to{transform:translateX(calc(-50% - 9px))}
}
@media(max-width:900px){
  .rail-track{gap:14px;padding-left:16px}
  .rail-track figure{flex-basis:82vw;height:235px}
}
@media(prefers-reduced-motion:reduce){
  .rail{overflow-x:auto !important}
  .rail-track{animation:none;transform:none}
}

/* V15: slower and cleaner carousels */
.rail-track{
  animation-timing-function:linear;
}
.rail-track figure{
  flex:0 0 clamp(310px,29vw,380px);
}
@media(min-width:1100px){
  .rail-track figure{
    flex-basis:360px;
  }
}
@media(max-width:900px){
  .rail-track figure{
    flex-basis:82vw;
  }
}
