:root{
  --ivory:#f8f3eb;
  --ivory-2:#efe5d6;
  --white:#ffffff;
  --gold:#c9a96e;
  --gold-2:#e1c58d;
  --text:#2d2a26;
  --muted:#6f675c;
  --line:rgba(201,169,110,.22);
  --shadow:0 18px 50px rgba(80,62,33,.08);
  --radius:28px;
}

html{scroll-behavior:smooth;}

body{
  font-family:"Inter", sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at 15% 10%, rgba(201,169,110,.14), transparent 20%),
    radial-gradient(circle at 85% 20%, rgba(255,255,255,.8), transparent 25%),
    linear-gradient(180deg, rgba(248,243,235,.95), rgba(244,237,227,.96)),
    repeating-linear-gradient(120deg, rgba(170,170,170,.035) 0 2px, transparent 2px 120px),
    repeating-linear-gradient(30deg, rgba(170,170,170,.03) 0 2px, transparent 2px 140px);
  background-attachment: fixed;
}

.navbar{
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(14px);
  box-shadow:0 10px 35px rgba(0,0,0,.05);
  padding:.95rem 0;
  transition:all .25s ease;
}
.navbar.scrolled{
  background:rgba(255,255,255,.86);
  padding:.8rem 0;
}
.navbar-toggler{
  background:rgba(255,255,255,.65);
  border-radius:14px;
}

.brand-logo{
  width:56px;
  height:56px;
  object-fit:contain;
  border-radius:50%;
  background:#fff;
  box-shadow:0 10px 25px rgba(0,0,0,.06);
}

.brand-title,
.hero-title,
.section-title,
.service-card h3,
.feature-panel h3{
  font-family:"Cormorant Garamond", serif;
}

.brand-title{
  font-size:1.65rem;
  line-height:1;
  color:#1d1b18;
}
.brand-subtitle{
  font-size:.74rem;
  letter-spacing:.24em;
  color:var(--gold);
  font-weight:700;
}

.nav-link{
  color:#5a554d !important;
  font-weight:600;
}
.nav-link:hover,
.nav-link.active{
  color:#a88648 !important;
}

.btn-brand{
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  border:none;
  color:#24190d;
  font-weight:700;
  box-shadow:0 14px 32px rgba(201,169,110,.28);
}
.btn-brand:hover{
  color:#24190d;
  transform:translateY(-1px);
}
.btn-outline-brand{
  background:rgba(255,255,255,.55);
  border:1px solid var(--line);
  color:#4f473d;
}
.btn-outline-brand:hover{
  background:#fff;
  color:#2b241b;
  border-color:rgba(201,169,110,.45);
}

.hero-section{
  padding-top:4.75rem;
}
.hero-title{
  font-size:clamp(3.2rem, 7vw, 6rem);
  line-height:.9;
  margin-bottom:1.2rem;
}
.hero-copy{
  max-width:620px;
  color:var(--muted);
  font-size:1.08rem;
}
.eyebrow{
  color:#b18b4f;
  text-transform:uppercase;
  letter-spacing:.24em;
  font-size:.78rem;
  font-weight:700;
  margin-bottom:1rem;
}

.hero-card,
.stat-card,
.service-card,
.feature-panel,
.booking-card,
.contact-card{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(201,169,110,.16);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

.hero-card{
  padding:1rem;
}
.hero-logo-wrap{
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(243,236,228,.96));
  border-radius:22px;
  padding:1.15rem;
}
.hero-logo{
  display:block;
  width:100%;
  max-width:460px;
  margin:0 auto;
  height:auto;
  border-radius:20px;
}
.hero-card-note{
  text-align:center;
  color:var(--muted);
  font-size:.93rem;
  margin-top:.95rem;
}

.stat-card{
  padding:1.15rem;
  height:100%;
}
.stat-number{
  font-weight:700;
  color:#1f1b16;
}
.stat-label{
  color:var(--muted);
  font-size:.92rem;
  margin-top:.2rem;
}

.section-space{padding:120px 0;}
.section-accent{
  background:linear-gradient(180deg, rgba(255,255,255,.15), rgba(255,255,255,.35));
  border-top:1px solid rgba(201,169,110,.12);
  border-bottom:1px solid rgba(201,169,110,.12);
}
.section-heading{
  max-width:760px;
}
.section-title{
  font-size:clamp(2.35rem, 4vw, 3.7rem);
  margin-bottom:1rem;
}
.section-copy{
  color:var(--muted);
}

.service-card{
  padding:1.7rem;
  transition:transform .3s ease, box-shadow .3s ease;
}
.service-card:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 55px rgba(80,62,33,.12);
}
.service-icon{
  width:58px;
  height:58px;
  border-radius:18px;
  display:grid;
  place-items:center;
  margin-bottom:1rem;
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  color:#2d2112;
  font-weight:800;
}
.service-card h3{
  font-size:1.95rem;
  margin-bottom:.65rem;
}
.service-card p{
  color:var(--muted);
  margin-bottom:0;
}

.feature-panel{
  padding:2rem;
  min-height:100%;
  background:
    linear-gradient(180deg, rgba(255,255,255,.84), rgba(245,237,227,.92));
}
.quote-mark{
  font-size:5rem;
  line-height:.7;
  color:rgba(201,169,110,.7);
  font-family:"Cormorant Garamond", serif;
}
.feature-panel h3{
  font-size:2.45rem;
  margin-bottom:1rem;
}
.feature-panel p{
  color:#63594d;
  margin-bottom:0;
}
.feature-list{
  display:grid;
  gap:1rem;
  margin-top:1.5rem;
}
.feature-item{
  display:flex;
  align-items:center;
  gap:.85rem;
  color:#4f493f;
}
.feature-item span{
  width:12px;
  height:12px;
  border-radius:50%;
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  box-shadow:0 0 0 6px rgba(201,169,110,.12);
}

.gallery-card{
  min-height:280px;
  border-radius:26px;
  overflow:hidden;
  border:1px solid rgba(201,169,110,.18);
  box-shadow:var(--shadow);
  background:
    radial-gradient(circle at top left, rgba(201,169,110,.18), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(238,229,216,.95));
  display:flex;
  align-items:end;
  padding:1.35rem;
}
.gallery-card span{
  font-family:"Cormorant Garamond", serif;
  font-size:1.9rem;
  color:#4b4338;
}

.booking-card,
.contact-card{
  padding:2rem;
}
.contact-line{
  margin-top:1.2rem;
  display:grid;
  gap:.3rem;
}
.contact-line strong{
  color:#a88648;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.78rem;
}
.contact-line span{
  color:#51493e;
}
.map-placeholder{
  min-height:100%;
  height:100%;
  border-radius:22px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:2rem;
  background:
    linear-gradient(180deg, rgba(255,255,255,.78), rgba(245,237,227,.88));
  border:1px dashed rgba(201,169,110,.35);
}
.map-pill{
  display:inline-block;
  margin-bottom:1rem;
  padding:.65rem 1rem;
  border-radius:999px;
  background:rgba(201,169,110,.14);
  color:#a88648;
  font-size:.82rem;
  text-transform:uppercase;
  letter-spacing:.18em;
}

.footer-section{
  padding:1.4rem 0 2rem;
  border-top:1px solid rgba(201,169,110,.16);
  color:#766f65;
  background:rgba(255,255,255,.35);
}
.footer-links a{
  text-decoration:none;
  color:#766f65;
}
.footer-links a:hover{
  color:#a88648;
}

.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s ease, transform .8s ease;
}
.reveal.show{
  opacity:1;
  transform:none;
}

@media (max-width: 991.98px){
  .navbar-collapse{
    margin-top:1rem;
    padding:1rem;
    border-radius:22px;
    background:rgba(255,255,255,.92);
    box-shadow:0 18px 35px rgba(0,0,0,.06);
  }
  .hero-section .min-vh-100{
    min-height:auto !important;
    padding-top:6.8rem !important;
  }
}

@media (max-width: 575.98px){
  .brand-logo{
    width:48px;height:48px;
  }
  .brand-title{
    font-size:1.35rem;
  }
  .hero-title{
    font-size:3rem;
  }
  .section-space{padding:120px 0;}
  .service-card,
  .booking-card,
  .contact-card,
  .feature-panel{
    padding:1.4rem;
  }
}


.map-embed{
  width: 100%;
  min-height: 420px;
  height: 100%;
  overflow: hidden;
  border-radius: 22px;
  box-shadow: var(--shadow);
}

.map-embed iframe{
  display: block;
  width: 100%;
  min-height: 420px;
  border: 0;
}


.scroll-progress{
  position:fixed;
  top:0;
  left:0;
  height:4px;
  width:0%;
  z-index:2000;
  background:linear-gradient(90deg, var(--gold-2), var(--gold));
  box-shadow:0 4px 12px rgba(201,169,110,.35);
}

.hero-chips{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  margin-top:1.25rem;
}

.hero-chip{
  padding:.7rem 1rem;
  border-radius:999px;
  background:rgba(255,255,255,.58);
  border:1px solid rgba(201,169,110,.18);
  color:#5a5042;
  font-size:.9rem;
  font-weight:600;
  box-shadow:0 10px 24px rgba(80,62,33,.05);
  backdrop-filter:blur(10px);
}

.hover-lift{
  transition:transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.hover-lift:hover{
  transform:translateY(-8px);
  box-shadow:0 24px 60px rgba(80,62,33,.14);
  border-color:rgba(201,169,110,.32);
}

.glow-card{
  position:relative;
  overflow:hidden;
}
.glow-card::before{
  content:"";
  position:absolute;
  inset:-30%;
  background:radial-gradient(circle, rgba(201,169,110,.18), transparent 35%);
  animation:softPulse 8s linear infinite;
  pointer-events:none;
}
@keyframes softPulse{
  0%{transform:translate(-10%, -10%) scale(1);}
  50%{transform:translate(10%, 10%) scale(1.15);}
  100%{transform:translate(-10%, -10%) scale(1);}
}

.tilt-card{
  transform-style:preserve-3d;
}

.testimonial-shell{
  max-width:900px;
  margin:2rem auto 0;
  padding:1rem 0 0;
}

.testimonial-card{
  background:rgba(255,255,255,.8);
  border:1px solid rgba(201,169,110,.18);
  border-radius:30px;
  box-shadow:var(--shadow);
  padding:3rem 3rem 4rem;
  text-align:center;
  min-height:320px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.testimonial-card p{
  font-family:"Cormorant Garamond", serif;
  font-size:2rem;
  line-height:1.15;
  color:#473f34;
  max-width:700px;
  margin:0 auto 1rem;
}

.testimonial-card h4{
  margin:0;
  font-size:1rem;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:#a88648;
}

.stars{
  letter-spacing:.3em;
  color:var(--gold);
  margin-bottom:1rem;
  font-size:1rem;
}

.carousel-indicators [data-bs-target]{
  width:10px;
  height:10px;
  border-radius:50%;
  background-color:rgba(201,169,110,.5);
}
.carousel-control-prev-icon,
.carousel-control-next-icon{
  background-color:rgba(168,134,72,.85);
  border-radius:50%;
  padding:1.2rem;
  background-size:55%;
}

.promo-badge{
  display:inline-block;
  padding:.45rem .8rem;
  border-radius:999px;
  margin-bottom:.9rem;
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  background:rgba(201,169,110,.14);
  color:#a88648;
  border:1px solid rgba(201,169,110,.18);
}

.back-to-top{
  position:fixed;
  right:22px;
  bottom:22px;
  width:54px;
  height:54px;
  border:none;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg, var(--gold-2), var(--gold));
  color:#2b1f12;
  font-size:1.3rem;
  font-weight:800;
  box-shadow:0 16px 34px rgba(201,169,110,.3);
  z-index:1200;
  opacity:0;
  visibility:hidden;
  transform:translateY(10px);
  transition:all .3s ease;
}
.back-to-top.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}
.back-to-top:hover{
  transform:translateY(-3px);
}

@media (max-width: 767.98px){
  .testimonial-card{
    padding:2rem 1.4rem 3.5rem;
    min-height:280px;
  }
  .testimonial-card p{
    font-size:1.6rem;
  }
  .hero-chip{
    font-size:.82rem;
  }
}


/* ===== Premium Theme Toggle ===== */
body{
  transition: background .35s ease, color .35s ease;
}

.theme-toggle{
  position: fixed;
  top: 18px;
  left: 18px;
  z-index: 3000;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
}

.theme-toggle-track{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(201,169,110,.28);
  box-shadow: 0 14px 34px rgba(80,62,33,.12);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.theme-toggle-label{
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-weight: 700;
  color: #7e7468;
  user-select: none;
}

.theme-toggle-thumb{
  position: relative;
  width: 62px;
  height: 32px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--gold-2), var(--gold));
  box-shadow: inset 0 2px 8px rgba(255,255,255,.32), 0 8px 18px rgba(201,169,110,.22);
}

.theme-toggle-thumb::before{
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffffff, #f3ede4);
  box-shadow: 0 5px 10px rgba(0,0,0,.14);
  transition: transform .28s ease;
}

.theme-toggle-icon{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: .85rem;
  line-height: 1;
  pointer-events: none;
}

.sun-icon{
  left: 8px;
  color: #8a662d;
}

.moon-icon{
  right: 8px;
  color: #3e2b16;
  opacity: .8;
}

body.dark-mode .theme-toggle-track{
  background: rgba(23,18,13,.82);
  border-color: rgba(201,169,110,.34);
  box-shadow: 0 16px 36px rgba(0,0,0,.35);
}

body.dark-mode .theme-toggle-label{
  color: #d7c8b6;
}

body.dark-mode .theme-toggle-thumb{
  background: linear-gradient(135deg, #caa764, #8d6840);
}

body.dark-mode .theme-toggle-thumb::before{
  transform: translateX(30px);
  background: linear-gradient(180deg, #fff8ec, #dac7a9);
}

body.dark-mode{
  background:
    radial-gradient(circle at 15% 10%, rgba(201,169,110,.12), transparent 22%),
    radial-gradient(circle at 85% 18%, rgba(201,169,110,.08), transparent 26%),
    linear-gradient(180deg, #110e0b, #1b1510 55%, #100d0a) !important;
  color: #f4ede3 !important;
}

body.dark-mode .navbar{
  background: rgba(20,16,12,.78) !important;
  box-shadow: 0 10px 35px rgba(0,0,0,.24);
}

body.dark-mode .navbar.scrolled{
  background: rgba(20,16,12,.9) !important;
}

body.dark-mode .navbar-toggler{
  background: rgba(40,31,22,.9);
}

body.dark-mode .brand-title,
body.dark-mode .hero-title,
body.dark-mode .section-title,
body.dark-mode .service-card h3,
body.dark-mode .feature-panel h3,
body.dark-mode .stat-number,
body.dark-mode .gallery-card span{
  color: #f5ede4 !important;
}

body.dark-mode .nav-link{
  color: #d7c8b6 !important;
}

body.dark-mode .nav-link:hover,
body.dark-mode .nav-link.active{
  color: #e1c58d !important;
}

body.dark-mode .hero-copy,
body.dark-mode .section-copy,
body.dark-mode .stat-label,
body.dark-mode .hero-card-note,
body.dark-mode .service-card p,
body.dark-mode .feature-panel p,
body.dark-mode .contact-line span,
body.dark-mode .footer-section,
body.dark-mode .footer-links a{
  color: #c8b7a3 !important;
}

body.dark-mode .hero-card,
body.dark-mode .stat-card,
body.dark-mode .service-card,
body.dark-mode .feature-panel,
body.dark-mode .booking-card,
body.dark-mode .contact-card,
body.dark-mode .testimonial-card{
  background: rgba(28,22,16,.82) !important;
  border-color: rgba(201,169,110,.2) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.25);
}

body.dark-mode .hero-logo-wrap{
  background: linear-gradient(180deg, rgba(36,28,20,.96), rgba(24,18,13,.96)) !important;
}

body.dark-mode .gallery-card{
  background:
    radial-gradient(circle at top left, rgba(201,169,110,.18), transparent 30%),
    linear-gradient(180deg, rgba(37,29,21,.96), rgba(21,16,12,.96)) !important;
  border-color: rgba(201,169,110,.2) !important;
}

body.dark-mode .section-accent{
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.04)) !important;
  border-top: 1px solid rgba(201,169,110,.12);
  border-bottom: 1px solid rgba(201,169,110,.12);
}

body.dark-mode .map-placeholder{
  background: linear-gradient(180deg, rgba(30,23,17,.9), rgba(22,17,13,.95)) !important;
  border-color: rgba(201,169,110,.28) !important;
}

body.dark-mode .footer-section{
  background: rgba(19,15,11,.6) !important;
  border-top-color: rgba(201,169,110,.16) !important;
}

body.dark-mode .btn-outline-brand{
  background: rgba(255,255,255,.04) !important;
  color: #e5d7c4 !important;
  border-color: rgba(201,169,110,.22) !important;
}

body.dark-mode .btn-outline-brand:hover{
  background: rgba(201,169,110,.08) !important;
  color: #fff6ea !important;
}

@media (max-width: 767.98px){
  .theme-toggle{
    top: 14px;
    left: 14px;
  }
  .theme-toggle-track{
    gap: 8px;
    padding: 6px 8px;
  }
  .theme-toggle-label{
    display: none;
  }
}


/* ===== Team Stacked Cards ===== */
.team-stack-wrap{
  max-width: 1100px;
  margin: 2.5rem auto 0;
}

.team-stack{
  position: relative;
  height: 650px;
  margin: 0 auto;
  perspective: 1400px;
}

.team-card{
  position: absolute;
  inset: 0;
  width: min(100%, 420px);
  margin: 0 auto;
  height: 100%;
  max-height: 620px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(201,169,110,.18);
  border-radius: 34px;
  box-shadow: 0 30px 80px rgba(80,62,33,.12);
  overflow: hidden;
  transform-origin: center center;
  transition:
    transform .6s cubic-bezier(.2,.8,.2,1),
    opacity .45s ease,
    box-shadow .45s ease,
    border-color .45s ease;
  display: flex;
  flex-direction: column;
  backdrop-filter: blur(12px);
}

.team-card:hover{
  box-shadow: 0 40px 95px rgba(80,62,33,.18);
}

.team-photo-slot{
  position: relative;
  flex: 0 0 72%;
  min-height: 430px;
  background:
    radial-gradient(circle at top left, rgba(201,169,110,.18), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(240,231,218,.96));
  display: grid;
  place-items: center;
}

.photo-placeholder{
  width: calc(100% - 42px);
  height: calc(100% - 42px);
  border-radius: 28px;
  border: 1.5px dashed rgba(201,169,110,.45);
  display: grid;
  place-items: center;
  color: #a88648;
  background:
    linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.25));
  font-family:"Cormorant Garamond", serif;
  font-size: 2rem;
  letter-spacing: .04em;
}

.team-card-body{
  flex: 1 1 auto;
  padding: 1.35rem 1.5rem 1.55rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  background:
    linear-gradient(180deg, rgba(255,255,255,.6), rgba(255,255,255,.88));
}

.team-role{
  display: inline-block;
  align-self: flex-start;
  padding: .45rem .8rem;
  margin-bottom: .8rem;
  border-radius: 999px;
  background: rgba(201,169,110,.13);
  border: 1px solid rgba(201,169,110,.18);
  color: #a88648;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.team-card h3{
  margin: 0 0 .45rem;
  font-size: 2.2rem;
  color: #2d2419;
}

.team-card p{
  margin: 0;
  color: #5e5549;
  font-size: .98rem;
}

.team-card.is-active{
  z-index: 3;
}

.team-card.is-second{
  z-index: 2;
}

.team-card.is-third{
  z-index: 1;
}

.team-stack-controls{
  margin-top: 1.75rem;
  display: flex;
  justify-content: center;
  gap: .85rem;
  flex-wrap: wrap;
}

body.dark-mode .team-card{
  background: rgba(28,22,16,.86);
  border-color: rgba(201,169,110,.22);
  box-shadow: 0 30px 80px rgba(0,0,0,.3);
}

body.dark-mode .team-photo-slot{
  background:
    radial-gradient(circle at top left, rgba(201,169,110,.16), transparent 28%),
    linear-gradient(180deg, rgba(35,27,20,.96), rgba(24,18,13,.96));
}

body.dark-mode .photo-placeholder{
  color: #e1c58d;
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
  border-color: rgba(201,169,110,.36);
}

body.dark-mode .team-card-body{
  background: linear-gradient(180deg, rgba(22,17,13,.5), rgba(27,21,16,.92));
}

body.dark-mode .team-role{
  color: #e1c58d;
  background: rgba(201,169,110,.12);
  border-color: rgba(201,169,110,.22);
}

body.dark-mode .team-card h3{
  color: #f5ede4;
}

body.dark-mode .team-card p{
  color: #c8b7a3;
}

@media (max-width: 767.98px){
  .team-stack{
    height: 560px;
  }
  .team-card{
    width: min(100%, 340px);
    max-height: 530px;
  }
  .team-photo-slot{
    min-height: 320px;
  }
  .team-card h3{
    font-size: 1.9rem;
  }
}


/* ===== Masonry Gallery ===== */
.masonry-gallery{
  column-count: 4;
  column-gap: 1.25rem;
  margin-top: 2.5rem;
}

.masonry-item{
  break-inside: avoid;
  margin-bottom: 1.25rem;
}

.masonry-card{
  position: relative;
  width: 100%;
  border-radius: 28px;
  overflow: hidden;
  border: 1px solid rgba(201,169,110,.18);
  box-shadow: 0 24px 60px rgba(80,62,33,.10);
  background:
    radial-gradient(circle at top left, rgba(201,169,110,.20), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(238,229,216,.94));
  display: flex;
  align-items: flex-end;
  padding: 1.35rem;
  min-height: 220px;
  transition: transform .35s ease, box-shadow .35s ease;
}

.masonry-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 32px 75px rgba(80,62,33,.16);
}

.masonry-item.short .masonry-card{ min-height: 220px; }
.masonry-item.medium .masonry-card{ min-height: 320px; }
.masonry-item.tall .masonry-card{ min-height: 460px; }

.masonry-card span{
  font-family:"Cormorant Garamond", serif;
  font-size: 2rem;
  color: #4b4338;
  line-height: 1;
}

body.dark-mode .masonry-card{
  background:
    radial-gradient(circle at top left, rgba(201,169,110,.18), transparent 30%),
    linear-gradient(180deg, rgba(37,29,21,.96), rgba(21,16,12,.96));
  border-color: rgba(201,169,110,.22);
  box-shadow: 0 24px 60px rgba(0,0,0,.24);
}

body.dark-mode .masonry-card span{
  color: #f5ede4;
}

@media (max-width: 991.98px){
  .masonry-gallery{
    column-count: 3;
  }
}

@media (max-width: 767.98px){
  .masonry-gallery{
    column-count: 2;
    column-gap: 1rem;
  }
  .masonry-item{
    margin-bottom: 1rem;
  }
  .masonry-card span{
    font-size: 1.6rem;
  }
}

@media (max-width: 575.98px){
  .masonry-gallery{
    column-count: 1;
  }
}


/* ===== Services Tabs + Expand ===== */
.services-tabs-wrap{
  max-width: 1040px;
  margin: 2.5rem auto 0;
}

.services-tabs{
  display: flex;
  justify-content: center;
  gap: .85rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}

.service-tab{
  border: 1px solid rgba(201,169,110,.2);
  background: rgba(255,255,255,.7);
  color: #5b5246;
  border-radius: 999px;
  padding: .9rem 1.2rem;
  font-weight: 700;
  letter-spacing: .04em;
  transition: all .3s ease;
  box-shadow: 0 10px 24px rgba(80,62,33,.05);
}

.service-tab:hover{
  transform: translateY(-2px);
  border-color: rgba(201,169,110,.36);
}

.service-tab.active{
  background: linear-gradient(135deg, var(--gold-2), var(--gold));
  color: #271b10;
  border-color: transparent;
  box-shadow: 0 16px 34px rgba(201,169,110,.24);
}

.service-panels{
  position: relative;
}

.service-panel{
  display: none;
}

.service-panel.active{
  display: block;
}

.service-accordion{
  display: grid;
  gap: 1rem;
}

.service-accordion-item{
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(201,169,110,.16);
  border-radius: 26px;
  overflow: hidden;
  box-shadow: 0 18px 42px rgba(80,62,33,.07);
  transition: border-color .3s ease, box-shadow .3s ease, transform .3s ease;
}

.service-accordion-item:hover{
  transform: translateY(-2px);
  border-color: rgba(201,169,110,.28);
  box-shadow: 0 22px 48px rgba(80,62,33,.1);
}

.service-accordion-trigger{
  width: 100%;
  border: 0;
  background: transparent;
  text-align: left;
  padding: 1.25rem 1.35rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
}

.service-accordion-trigger strong{
  display: block;
  font-size: 1.15rem;
  color: #2c241a;
  margin-bottom: .2rem;
}

.service-accordion-trigger small{
  color: #7b705f;
  font-size: .92rem;
}

.service-plus{
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(201,169,110,.12);
  color: #a88648;
  font-size: 1.4rem;
  font-weight: 400;
  transition: transform .3s ease, background .3s ease;
}

.service-accordion-item.open .service-plus{
  transform: rotate(45deg);
  background: rgba(201,169,110,.2);
}

.service-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease;
}

.service-accordion-content p{
  margin: 0;
  padding: 0 1.35rem 1.35rem;
  color: #5f564a;
  line-height: 1.65;
}

.service-accordion-item.open .service-accordion-content {
  max-height: 1000px;
}

body.dark-mode .service-tab{
  background: rgba(28,22,16,.78);
  color: #d9cbb8;
  border-color: rgba(201,169,110,.18);
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}

body.dark-mode .service-tab.active{
  color: #271b10;
}

body.dark-mode .service-accordion-item{
  background: rgba(28,22,16,.82);
  border-color: rgba(201,169,110,.18);
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

body.dark-mode .service-accordion-trigger strong{
  color: #f5ede4;
}

body.dark-mode .service-accordion-trigger small,
body.dark-mode .service-accordion-content p{
  color: #c8b7a3;
}

body.dark-mode .service-plus{
  background: rgba(201,169,110,.14);
  color: #e1c58d;
}

@media (max-width: 767.98px){
  .service-tab{
    width: calc(50% - .5rem);
    text-align: center;
  }
}


/* ===== Featured Promotions ===== */
.featured-promo{
  margin-top: 2rem;
  border-radius: 36px;
  padding: 3rem;
  background:
    radial-gradient(circle at top left, rgba(201,169,110,.25), transparent 30%),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(240,231,218,.96));
  border: 1px solid rgba(201,169,110,.18);
  box-shadow: 0 30px 80px rgba(80,62,33,.12);
  text-align: center;
}

.featured-content h3{
  font-size: 2.5rem;
  margin: 1rem 0 .5rem;
}

.featured-desc{
  color: #6f675c;
  margin-bottom: 1rem;
}

.promo-price{
  display:flex;
  justify-content:center;
  gap:.75rem;
  align-items:center;
  margin-bottom:1.25rem;
}

.old-price{
  text-decoration: line-through;
  color: #9c8f7c;
}

.new-price{
  font-size: 1.8rem;
  font-weight: 700;
  color: #a88648;
}

.promo-card{
  background: rgba(255,255,255,.85);
  border-radius: 28px;
  padding: 1.5rem;
  border: 1px solid rgba(201,169,110,.18);
  box-shadow: 0 18px 50px rgba(80,62,33,.1);
  transition: transform .3s ease, box-shadow .3s ease;
}

.promo-card:hover{
  transform: translateY(-6px);
  box-shadow: 0 28px 65px rgba(80,62,33,.16);
}

.promo-card h4{
  margin: .5rem 0;
}

.promo-price.small .new-price{
  font-size: 1.4rem;
}

body.dark-mode .featured-promo,
body.dark-mode .promo-card{
  background: rgba(28,22,16,.85);
  border-color: rgba(201,169,110,.22);
}

body.dark-mode .old-price{
  color:#b8aa98;
}

body.dark-mode .featured-desc{
  color:#c8b7a3;
}

/* Refinement adjustments */
.hover-lift:hover{
  transform: translateY(-4px) !important;
  box-shadow: 0 16px 40px rgba(80,62,33,.10) !important;
}

.hero-card{
  box-shadow: 0 20px 50px rgba(80,62,33,.10) !important;
}

/* Calm gallery slightly */
.masonry-card{
  box-shadow: 0 16px 40px rgba(80,62,33,.08) !important;
}

/* Softer transitions globally */
*{
  transition: all .25s ease;
}


/* ===== 10/10 Premium Refinements ===== */

/* Typography upgrade */
.section-title{
  font-size: clamp(2.5rem, 4vw, 3.2rem);
  letter-spacing: -0.5px;
}

.section-copy{
  max-width: 640px;
  margin: 0 auto;
  line-height: 1.7;
}

/* Section divider */
.section-space{
  position: relative;
}

.section-space::after{
  content:"";
  position:absolute;
  bottom:0;
  left:50%;
  transform:translateX(-50%);
  width:60px;
  height:1px;
  background: linear-gradient(90deg, transparent, rgba(201,169,110,.5), transparent);
  opacity:.5;
}

/* Stagger animation */
.reveal{
  opacity:0;
  transform:translateY(30px);
  transition: all .6s ease;
}

.reveal.active{
  opacity:1;
  transform:none;
}

/* Button polish */
.btn-brand{
  letter-spacing:.08em;
  font-weight:600;
}

/* Subtle hover glow for important cards */
.featured-promo:hover{
  box-shadow: 0 40px 100px rgba(201,169,110,.25);
}

/* Premium navbar underline */
.nav-link{
  position:relative;
}

.nav-link::after{
  content:"";
  position:absolute;
  bottom:-4px;
  left:0;
  width:0;
  height:1px;
  background:rgba(201,169,110,.6);
  transition: width .3s ease;
}

.nav-link:hover::after{
  width:100%;
}

/* Slight blur depth effect */
.hero-section{
  backdrop-filter: blur(2px);
}


/* ===== HERO VIDEO BACKGROUND ===== */

.hero-video-section{
  position: relative;
  overflow: hidden;
  min-height: 100vh;
}

.hero-bg-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.hero-video-overlay{
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(248,243,235,.65), rgba(239,229,214,.75)),
    rgba(0,0,0,.15);
  z-index: 1;
}

.hero-video-content{
  position: relative;
  z-index: 2;
}

/* Dark mode */
body.dark-mode .hero-video-overlay{
  background:
    linear-gradient(180deg, rgba(15,13,11,.6), rgba(26,21,16,.75)),
    rgba(0,0,0,.35);
}


/* ===== VIDEO HERO FIXED ===== */
.hero-video-section{
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  padding-top: 4.75rem;
  isolation: isolate;
}

.hero-bg-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -2;
}

.hero-video-overlay{
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(248,243,235,.62), rgba(239,229,214,.78)),
    rgba(0,0,0,.12);
  z-index: -1;
}

.hero-video-content{
  position: relative;
  z-index: 2;
}

.hero-video-section .min-vh-100{
  min-height: 100vh !important;
}

body.dark-mode .hero-video-overlay{
  background:
    linear-gradient(180deg, rgba(15,13,11,.58), rgba(26,21,16,.76)),
    rgba(0,0,0,.28);
}

@media (max-width: 991.98px){
  .hero-video-section{
    padding-top: 5.5rem;
  }
  .hero-video-section .min-vh-100{
    min-height: auto !important;
  }
}


/* ===== Real Team Photo ===== */
.team-photo{
  width: calc(100% - 42px);
  height: calc(100% - 42px);
  object-fit: cover;
  border-radius: 28px;
  box-shadow: 0 12px 30px rgba(0,0,0,.12);
  display: block;
}

body.dark-mode .team-photo{
  box-shadow: 0 18px 36px rgba(0,0,0,.28);
}

/* Announcement Bar */
.announcement-bar {
  position: fixed;
  top: 0;
  width: 100%;
  background: #000;
  color: #fff;
  text-align: center;
  padding: 8px 40px;
  font-size: 0.9rem;
  z-index: 2000;
  display: flex;
  justify-content: center;
  align-items: center;
}
.announcement-bar a { color: #fff; font-weight: 600; margin-left: 6px; }
.announcement-bar button {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: none;
  color: #fff;
  font-size: 18px;
}
.navbar.fixed-top { top: 40px; }

/* Dark mode modal fix */
body.dark-mode .modal-content {
  background: #1e1a15;
  color: #f5ede4;
}
body.dark-mode .btn-close { filter: invert(1); }


/* ===== FIX: Dark Mode Service Tab Readability ===== */
body.dark-mode .service-tab{
  background: #2a2118 !important;
  color: #f5ede4 !important;
  border-color: rgba(201,169,110,.35) !important;
}

body.dark-mode .service-tab.active{
  background: linear-gradient(135deg, var(--gold-2), var(--gold)) !important;
  color: #1a1208 !important;
}

body.dark-mode .service-accordion-content p{
  color: #e6d8c5 !important;
}


/* ===== Dark Mode Fix: Customer Reviews Readability ===== */
body.dark-mode .testimonial-card p{
  color:#f5ede4 !important;
}

body.dark-mode .stars{
  color:#e1c58d !important;
}


/* ===== FIX: Navbar Anchor Offset ===== */
section, header {
  scroll-margin-top: 110px;
}


/* FIX: accordion bleed + containment */
.service-accordion-item {
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.service-accordion-content {
  background: inherit;
  transition: none;
}

/* enable transitions after load */
.loaded .service-accordion-content {
  transition: all 0.3s ease;
}


/* ===== FIX: Team Images Contained Properly ===== */
.team-photo-slot img{
  width: 100%;
  height: 100%;
  object-fit: contain; /* ensures full image is visible */
  position: absolute;
  inset: 0;
  z-index: 1;
  background: #fff;
}

.team-photo-slot{
  overflow: hidden;
  position: relative;
}
