:root{
  --bg:#07080A;
  --surface:#15151B;
  --surface2:#101116;
  --text:#F3F3F3;
  --muted:rgba(243,243,243,.72);
  --gold:#E0BD49;
  --gold2:#b88714;
  --pink:#E4027B;

  --radius-xl:22px;
  --radius-lg:18px;

  --shadow:0 14px 40px rgba(0,0,0,.35);
  --shadow-soft:0 18px 40px rgba(0,0,0,.12);

  --container: 1120px;
  --pad: 18px;
}

/* Base */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(1200px 600px at 15% 10%, rgba(224,189,73,.12), transparent 55%),
    radial-gradient(900px 500px at 85% 20%, rgba(228,2,123,.08), transparent 60%),
    var(--bg);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img{ max-width:100%; display:block; }

a{ color:inherit; }
a:hover{ color: var(--gold); }

.skip-link{
  position:absolute; left:-999px; top:12px;
  background: var(--gold); color:#07080A;
  padding:10px 12px; border-radius: 12px;
  font-weight: 900;
  z-index: 1000;
}
.skip-link:focus{ left:12px; }

.container{
  width: min(var(--container), calc(100% - 2*var(--pad)));
  margin: 0 auto;
}

section{
  padding: 72px 0;
  content-visibility: auto;
  contain-intrinsic-size: 900px;
}
@media (max-width: 640px){
  section{ padding: 56px 0; }
}

h1,h2,h3{
  font-family: "Playfair Display", serif;
  letter-spacing: .02em;
  margin: 0 0 12px 0;
}
p{ margin: 0 0 12px 0; }

.muted{ color: var(--muted); }
.kicker{
  color: rgba(224,189,73,.9);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .78rem;
  font-weight: 900;
}
.gold-text{
  background: linear-gradient(180deg, #fff3c7 0%, var(--gold) 40%, var(--gold2) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
}
.divider{
  width: 88px; height: 3px;
  background: rgba(224,189,73,.85);
  border-radius: 999px;
  margin-top: 14px;
}

/* Header */
.site-header{
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(7,8,10,.78);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(224,189,73,.18);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
  padding: 10px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap: 12px;
  text-decoration:none;
}
.brand-logo{
  width:84px;
  height:84px;
  border-radius: 18px;
  border: 1px solid rgba(224,189,73,.22);
  object-fit: cover;
}
.brand-text{ display:flex; flex-direction:column; line-height: 1.1; }
.brand-name{ font-weight: 900; letter-spacing:.02em; }
.brand-tag{ font-size:.88rem; color: rgba(243,243,243,.68); font-weight: 700; }

.nav{
  display:flex;
  gap: 18px;
  align-items:center;
}
.nav-link{
  text-decoration:none;
  font-weight: 800;
  color: rgba(243,243,243,.86);
}
.nav-link.is-active{ color: var(--gold); }

.nav-toggle{
  display:none;
  width: 44px;
  height: 44px;
  background: transparent;
  border: 1px solid rgba(243,243,243,.16);
  border-radius: 14px;
  padding: 8px;
}
.nav-toggle span{
  display:block;
  height:2px;
  background: rgba(243,243,243,.85);
  border-radius: 999px;
  margin: 6px 0;
}

/* Mobile nav */
@media (max-width: 880px){
  .brand-logo{ width:68px; height:68px; border-radius: 16px; }
  .nav-toggle{ display:block; }
  .nav{
    position: fixed;
    inset: 72px 12px auto 12px;
    background: rgba(7,8,10,.96);
    border: 1px solid rgba(224,189,73,.20);
    border-radius: 18px;
    padding: 14px;
    display:none;
    flex-direction: column;
    gap: 10px;
    box-shadow: var(--shadow);
  }
  .nav.is-open{ display:flex; }
  .nav-link{
    width:100%;
    padding: 12px 12px;
    border-radius: 14px;
    border: 1px solid rgba(243,243,243,.10);
  }
}

/* Buttons */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid transparent;
  text-decoration:none;
  font-weight: 900;
  cursor:pointer;
  white-space: nowrap;
}
.btn-primary{
  background: var(--gold);
  color:#07080A;
  border-color: rgba(224,189,73,.9);
  box-shadow: 0 10px 24px rgba(224,189,73,.12);
}
.btn-primary:hover{
  background: transparent;
  color: var(--gold);
  border-color: rgba(224,189,73,.9);
}
.btn-ghost{
  background: transparent;
  color: var(--text);
  border-color: rgba(243,243,243,.18);
}
.btn-ghost:hover{
  border-color: rgba(224,189,73,.55);
  color: var(--gold);
}

/* Surfaces */
.surface{
  background: rgba(21,21,27,.72);
  border: 1px solid rgba(224,189,73,.16);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow);
}
.pink-stitch{ position: relative; }
.pink-stitch:before{
  content:"";
  position:absolute;
  inset:-10px;
  border-radius: calc(var(--radius-xl) + 6px);
  border:2px dashed rgba(228,2,123,.55);
  pointer-events:none;
}
.pink-stitch:after{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius: calc(var(--radius-xl) + 2px);
  border:1px solid rgba(224,189,73,.22);
  pointer-events:none;
}
.pad-xl{ padding: 28px; }
@media (max-width: 640px){
  .pad-xl{ padding: 18px; }
}

/* Hero */
.hero{
  padding-top: 26px;
}
.hero-grid{
  display:grid;
  grid-template-columns: 1.25fr .85fr;
  gap: 22px;
  align-items:center;
}
@media (max-width: 880px){
  .hero-grid{ grid-template-columns: 1fr; }
}
.hero-title{ font-size: clamp(2rem, 4vw, 3.1rem); }
.hero-lead{
  font-size: 1.05rem;
  color: rgba(243,243,243,.84);
  max-width: 60ch;
}
.pills{ display:flex; flex-wrap:wrap; gap:10px; margin-top: 18px; }
.pill{
  display:inline-flex;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(224,189,73,.25);
  background: rgba(21,21,27,.55);
  color: rgba(243,243,243,.85);
  font-weight: 800;
  font-size: .92rem;
}
.hero-media{
  border-radius: 22px;
  overflow:hidden;
  border: 1px solid rgba(224,189,73,.16);
  background: rgba(0,0,0,.22);
  box-shadow: 0 18px 40px rgba(0,0,0,.30);
  aspect-ratio: 4/5;
}
.hero-media img{ width:100%; height:100%; object-fit: cover; }

/* Feature cards */
.grid-3{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
}
@media (max-width: 880px){
  .grid-3{ grid-template-columns: 1fr; }
}
.card{
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(224,189,73,.14);
  background: rgba(21,21,27,.60);
}
.card-title{ font-weight: 900; margin-bottom: 6px; }
.card p{ margin:0; }

/* Light prices section background */
.prices-wrap{
  background:
    radial-gradient(900px 600px at 50% 0%, rgba(224,189,73,.10), transparent 60%),
    #f7f2e7;
  color: #15151B;
}
.prices-wrap a{ color: #15151B; }
.prices-wrap .kicker{ color: rgba(21,21,27,.65); }
.prices-wrap h2{ color: #15151B; }

.prices-grid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 18px;
  margin-top: 22px;
}
@media (max-width: 880px){
  .prices-grid{ grid-template-columns: 1fr; }
}
.price-card{
  background: #fff;
  border-radius: 16px;
  box-shadow: var(--shadow-soft);
  border: 1px solid rgba(21,21,27,.08);
  padding: 22px;
}
.price-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(21,21,27,.78);
  padding-bottom: 10px;
  margin-bottom: 14px;
  border-bottom: 1px solid rgba(21,21,27,.14);
}
.price-row{
  display:flex;
  align-items:baseline;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(21,21,27,.06);
  font-size: .98rem;
}
.price-row:last-child{ border-bottom:0; padding-bottom:0; }
.price-row .label{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width: 72%;
  color: rgba(21,21,27,.92);
  font-weight: 700;
}
.price-row .dots{
  flex:1;
  border-bottom: 1px dotted rgba(21,21,27,.35);
  transform: translateY(-2px);
}
.price-row .price{
  white-space:nowrap;
  font-weight: 900;
  color: rgba(21,21,27,.92);
}
.center{ text-align:center; }
.mt{ margin-top: 18px; }

/* Gallery */
.filters{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin-top: 16px;
}
.chip{
  border-radius: 999px;
  padding: 10px 14px;
  border: 1px solid rgba(243,243,243,.16);
  background: rgba(21,21,27,.55);
  color: rgba(243,243,243,.9);
  font-weight: 900;
  cursor: pointer;
  user-select: none;
}
.chip:hover{ border-color: rgba(224,189,73,.45); color: var(--gold); }
.chip.is-active{
  background: rgba(224,189,73,.16);
  border-color: rgba(224,189,73,.55);
  color: var(--gold);
}
.gallery-grid{
  display:grid;
  gap: 14px;
  margin-top: 22px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (min-width: 768px){
  .gallery-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 190px;
    gap: 16px;
  }
  .gallery-item.featured{
    grid-column: span 2;
    grid-row: span 2;
  }
}
.gallery-item{
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(224,189,73,.14);
  background: rgba(255,255,255,.06);
  cursor: pointer;
  outline: none;
}
.gallery-item:focus-visible{
  box-shadow: 0 0 0 4px rgba(224,189,73,.35);
}
.gallery-item img{
  width:100%;
  height:100%;
  object-fit: cover;
  display:block;
  transition: transform .35s ease;
}
.gallery-item:hover img{ transform: scale(1.06); }
@media (max-width: 767px){
  .gallery-item{ aspect-ratio: 4 / 5; }
  .gallery-item img{ height:100%; }
}
.gallery-overlay{
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.65));
  pointer-events:none;
}
.gallery-caption{
  position:absolute;
  left: 12px; right: 12px; bottom: 10px;
  display:flex; justify-content:space-between; align-items:flex-end;
  gap: 10px;
  pointer-events:none;
}
.gallery-caption .title{
  font-weight: 900;
  color: rgba(243,243,243,.95);
  font-size: .98rem;
  line-height: 1.1;
}
.gallery-caption .tag{
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(224,189,73,.92);
  background: rgba(7,8,10,.55);
  border: 1px solid rgba(224,189,73,.22);
  border-radius: 999px;
  padding: 6px 10px;
  white-space: nowrap;
}

/* Lightbox */
.lightbox{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.78);
  display:none;
  z-index: 100;
  padding: 18px;
}
.lightbox.is-open{ display:flex; }
.lb-card{
  margin:auto;
  width:min(1100px, 100%);
  background: rgba(21,21,27,.96);
  border:1px solid rgba(224,189,73,.18);
  border-radius: 18px;
  box-shadow: 0 22px 60px rgba(0,0,0,.55);
  overflow:hidden;
}
.lb-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 14px 16px;
  gap: 12px;
}
.lb-title{ font-weight: 900; }
.lb-meta{ font-size:.9rem; color: rgba(243,243,243,.68); }
.lb-body{ padding: 0 16px 16px; }
.lb-img{
  width:100%;
  max-height: 70vh;
  object-fit: contain;
  background: rgba(0,0,0,.15);
  border-radius: 16px;
  border: 1px solid rgba(224,189,73,.18);
}
.lb-actions{
  display:flex;
  justify-content:space-between;
  gap: 10px;
  margin-top: 12px;
}

/* Testimonials */
.quote-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 14px;
  margin-top: 18px;
}
@media (max-width: 880px){
  .quote-grid{ grid-template-columns: 1fr; }
}
.quote{
  border-radius: 18px;
  border: 1px solid rgba(224,189,73,.14);
  background: rgba(21,21,27,.60);
  padding: 18px;
}
.quote mark{
  background: transparent;
  color: var(--gold);
  font-weight: 900;
}

/* Contact */
.contact-grid{
  display:grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 16px;
  margin-top: 18px;
}
@media (max-width: 880px){
  .contact-grid{ grid-template-columns: 1fr; }
}
.map-frame{
  width:100%;
  height: 420px;
  border:0;
  border-radius: 16px;
}

/* Footer */
.site-footer{
  border-top: 1px solid rgba(224,189,73,.18);
  background: rgba(7,8,10,.92);
  padding: 42px 0 24px;
}
.footer-grid{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 16px;
}
@media (max-width: 880px){
  .footer-grid{ grid-template-columns: 1fr; }
}
.footer-title{ font-weight: 900; margin-bottom: 10px; }
.footer-bottom{
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(243,243,243,.10);
}

/* Mobile bottom bar */
.mobile-bar{
  position: fixed;
  left: 12px; right: 12px; bottom: 12px;
  display:none;
  gap: 10px;
  z-index: 60;
  background: rgba(7,8,10,.78);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(224,189,73,.20);
  border-radius: 18px;
  padding: 10px;
}
@media (max-width: 880px){
  .mobile-bar{ display:flex; }
  body{ padding-bottom: 86px; }
}
