:root{--bg:#ffffff;--text:#2F2B2A;--muted:#6F6A68;--accent:#C9A34E;--accent-2:#D4A0A7;--accent-3:#F4EAF6;--accent-4:#FBF7F2;--light:#f7f7f9;--card:#ffffff;--radius:1.25rem;--shadow:0 10px 25px rgba(0,0,0,.06)}

/* Reset */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Poppins",system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;color:var(--text);background:var(--bg);line-height:1.6}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}

/* Typography */
h1,h2,h3,h4{color:var(--text);font-family:"Playfair Display", Georgia, "Times New Roman", serif}
h1{font-weight:700;font-size:clamp(2rem,4vw+1rem,3.2rem)}
h2{font-weight:700;font-size:clamp(1.9rem,3vw+1rem,2.6rem)}
h3{font-weight:700;font-size:clamp(1.5rem,2vw+1rem,2rem)}
h4{font-weight:600;font-size:clamp(1.125rem,1.2vw+1rem,1.25rem)}
p{font-weight:400;color:var(--muted)}

/* Utilities */
.container{max-width:1200px;margin-inline:auto;padding-inline:16px}
.section{padding: clamp(3rem,5vw,5rem) 0}
.no-top{padding-top:0}
.center{text-align:center}
.grid{display:grid;gap:clamp(16px,2vw,24px)}
.shadow{box-shadow:var(--shadow)}
.rounded{border-radius:var(--radius)}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(16px,2vw,24px)}
.section-title{margin:0 0 12px}
.intro{max-width:65ch;margin:0 auto clamp(24px,3vw,36px)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 20px;border-radius:14px;font-weight:600;background:linear-gradient( to right, var(--accent-4), #ffffff);color:var(--text);transition:transform .2s ease, box-shadow .2s ease;border:1px solid color-mix(in oklab, var(--accent), transparent 80%)}
.btn-primary{color:#fff;background:linear-gradient(135deg, var(--accent), var(--accent-2))}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px color-mix(in oklab, var(--accent-2), transparent 75%),0 8px 18px color-mix(in oklab, var(--accent), transparent 78%)}
a.btn {
  text-decoration: none;   /* remove underline */
  color: inherit;          /* inherit text color from .btn */
}

a.btn:visited {
  color: inherit;          /* prevent purple visited state */
}

a.btn:hover,
a.btn:focus {
  text-decoration: none;   /* ensure no underline on hover/focus */
}

/* Header */
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.8);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid #eee}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:110px;padding:8px 16px}
.brand{font-weight:700}

/* Hero */
.hero{min-height:80vh;position:relative}
.hero-slider{position:relative;height:100%;min-height:80vh;overflow:hidden}
.slides{height:100%;display:grid;grid-auto-flow:column;grid-auto-columns:100%;transition:transform .6s ease}
.slide{position:relative;display:grid;place-items:center;min-height:80vh;color:#fff}
.slide-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.overlay{position:absolute;inset:0;background:linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.45))}
.slide .content{position:relative;text-align:center;color:#fff}
.slide-title{margin:0 0 12px}
.slide-text{max-width:70ch;margin:0 auto 20px;color:var(--muted)}
.slider-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:var(--shadow)}
.slider-arrow.prev{left:12px}
.slider-arrow.next{right:12px}
.dots{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);display:flex;gap:8px;z-index:6}
.dots button{width:10px;height:10px;border-radius:50%;background:#B2B0E8}
.dots button[aria-selected="true"]{background:var(--accent-2);box-shadow:0 0 0 3px color-mix(in oklab, var(--accent-2), transparent 70%)}

/* Signature */
.features-grid{grid-template-columns:1fr}
.feature{display:grid;gap:8px;align-content:start;border:1px solid #f0f0f0;transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease}
.feature:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:color-mix(in oklab, var(--accent), #ddd 75%)}
.icon-badge{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--light),#fff);border:1px solid #eee;box-shadow:var(--shadow);font-size:22px}
.icon-badge i{font-size:22px;color:var(--accent-2)}

/* Services */
.services-grid{grid-template-columns:1fr}
.service-img{width:100%;aspect-ratio:16/10;object-fit:cover;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}
.service .service-body{padding-top:12px}
.service .btn{margin-top:8px}

/* Process */
.timeline{list-style:none;margin:0;padding:0;display:grid;gap:20px;position:relative}
.timeline .step{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;border:1px solid #f1f1f4}
.step-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--light),#fff);border:1px solid #eee;margin-bottom:8px}
.step-icon i{font-size:20px;color:var(--accent)}

/* Showcase */
.showcase-grid{grid-template-columns:1fr 1fr}
.show-item{position:relative;overflow:hidden;border-radius:var(--radius);box-shadow:var(--shadow)}
.show-item img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s ease}
.show-item:hover img{transform:scale(1.05)}
.show-item figcaption{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,.55));color:#fff;padding:12px 14px;font-weight:600}

/* Testimonials */
.soft-bg{background:var(--light)}
.testimonial-slider{position:relative;overflow:hidden}
.t-slides{display:grid;grid-auto-flow:column;grid-auto-columns:100%;gap:16px;transition:transform .5s ease}
.t-card .quote{font-size:36px;color:var(--accent-2);line-height:0}
.t-dots{display:flex;justify-content:center;gap:8px;margin-top:12px}
.t-dots button{width:8px;height:8px;border-radius:50%;background:#cfd3ea}
.t-dots button[aria-selected="true"]{background:var(--accent-2)}

/* CTA */
.cta-banner{position:relative;isolation:isolate}
.cta-inner{position:relative;text-align:center;color:#fff;padding: clamp(2.5rem,6vw,4rem) 0;border-radius:var(--radius);background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:var(--shadow)}
.cta-bg{position:absolute;inset:0;background:url('assets/cta-bg.jpg') center/cover no-repeat;opacity:.1;pointer-events:none;border-radius:var(--radius);}
.cta-heading{margin:0 0 12px}

/* FAQs */
.faq-list details{border:1px solid #eee;border-radius:var(--radius);padding:12px}
.faq-list summary{list-style:none;cursor:pointer;position:relative;font-weight:600}
.faq-list summary::marker{display:none}
.faq-list summary::after{content:"▾";position:absolute;right:8px;transition:transform .2s ease}
.faq-list details[open] summary::after{transform:rotate(180deg)}
.faq-list p{margin:8px 0 0}

/* Contact */
.contact-grid{display:grid;gap:24px}
.form-grid{grid-template-columns:1fr;gap:16px}
.form-grid label{display:grid;gap:6px}
input,select,textarea{width:100%;padding:12px 14px;border:1px solid #e6e6ef;border-radius:12px;background:#fff;transition:border-color .2s ease, box-shadow .2s ease}
input:focus,select:focus,textarea:focus{border-color:var(--accent-2);box-shadow:0 0 0 4px color-mix(in oklab, var(--accent-2), transparent 80%)}
.col-span{grid-column:1/-1}
.map .ratio{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--radius);overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Footer mega menu (clean, minimal) */
.footer-mega {
  border-top: 1px solid #eee;
  padding-top: 16px;
}
.footer-mega .mega-grid {
  display: grid;
  gap: 12px;
}
.footer-mega details {
  background: none;
  border: 0;
}
.footer-mega summary {
  list-style: none;
  cursor: default;
  padding: 0;
  margin: 0 0 6px;
  font-weight: 700;
}
.footer-mega summary::marker {
  display: none;
}
.footer-mega ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  color: var(--muted);
}
.footer-mega a {
  text-decoration: none;
  color: inherit;
}
.footer-mega a:hover {
  text-decoration: underline;
  color: var(--accent);
}
@media (min-width:600px) {
  .footer-mega .mega-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width:900px) {
  .footer-mega .mega-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width:1200px) {
  .footer-mega .mega-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}
@media (max-width:899px) {
  .footer-mega summary {
    cursor: pointer;
    position: relative;
    padding-right: 18px;
  }
  .footer-mega summary::after {
    content: "▾";
    position: absolute;
    right: 0;
    top: 0;
  }
}

.mt {
  margin-top: 30px;
}

/* Slim footer variant */
.footer-slim .subscribe {
  display: grid;
  gap: 10px;
  border-bottom: 1px solid #eee;
  padding: 16px 0;
  margin-bottom: 12px;
}
.footer-slim .subscribe .row {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.footer-slim .subscribe h4 {
  margin: 0;
  font-size: 1rem;
}
.footer-slim .subscribe .input {
  display: flex;
  gap: 8px;
  align-items: center;
  background: #f6f7fb;
  border: 1px solid #ececf3;
  border-radius: 999px;
  padding: 8px 10px;
  min-width: 260px;
}
.footer-slim .subscribe input {
  border: 0;
  background: transparent;
  outline: none;
  min-width: 200px;
}
.footer-slim .subscribe .send {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  display: grid;
  place-items: center;
}
.footer-slim .grid {
  display: grid;
  gap: 16px;
}
.footer-slim .brand small {
  display: block;
  color: var(--muted);
}
.footer-slim .links h5 {
  margin: 0 0 6px;
  font-size: .95rem;
}
.footer-slim ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.footer-slim a {
  text-decoration: none;
  color: var(--muted);
}
.footer-slim a:hover {
  color: var(--accent);
}
.footer-slim .socials {
  display: flex;
  gap: 8px;
  margin-top: 10px;
}
.footer-slim .socials .icon {
  background: #f2f3f9;
}
.footer-slim .note {
  margin-top: 10px;
}
.footer-slim .note .pill {
  display: inline-block;
  padding: 10px 16px;
  border: 1px solid #ececf3;
  border-radius: 12px;
  background: #fff;
  color: var(--muted);
  font-weight: 600;
}
.footer-logo {
  height: 120px;
  width: auto;
  object-fit: contain;
}

/* Premium Navbar Tagline */
.navbar-tagline {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-weight: 100;
  font-size: clamp(1.1rem, 2.5vw, 1.3rem);
  color: var(--accent);
  margin-left: 20px;
  letter-spacing: 0.3px;
  position: relative;
  animation: elegantGlow 4s ease-in-out infinite;
}

.navbar-tagline .cursive {
  font-family: "Edu NSW ACT Cursive", cursive;
  font-optical-sizing: auto;
  font-weight: 100;
  font-style: normal;
}

@keyframes elegantGlow {
  0%, 100% { 
    text-shadow: 0 0 5px rgba(201, 163, 78, 0.3);
    transform: translateY(0);
  }
  50% { 
    text-shadow: 0 0 8px rgba(201, 163, 78, 0.5), 0 0 12px rgba(212, 160, 167, 0.3);
    transform: translateY(-1px);
  }
}

.navbar-tagline::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transition: width 0.3s ease;
}

.navbar-tagline:hover::after {
  width: 100%;
}

@media (max-width: 899px) {
  .navbar-tagline {
    font-size: clamp(0.8rem, 2.5vw, 1.1rem);
    margin-left: 12px;
  }
}
.footer-slim .mini {
  font-size: .9rem;
}
.footer-slim .map-thumb {
  width: 100%;
  aspect-ratio: 1/1;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #eee;
  background: #f7f8fd;
}
.footer-slim .map-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (min-width:600px) {
  .footer-slim .grid {
    grid-template-columns: 1.4fr 1fr 1fr;
  }
}
@media (min-width:900px) {
  .footer-slim .grid {
    grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr;
  }
}
@media (min-width:1200px) {
  .footer-slim .grid {
    grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr 1fr 1.2fr;
  }
}

.footer-mega,
.footer-slim {
  border-top: 2px solid #ddd; /* divider line */
  margin-top: 40px;           /* spacing before footer */
}


/* Reveal Animations */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease}
.reveal.in-view{opacity:1;transform:translateY(0)}

@media (prefers-reduced-motion: reduce){
	*{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important}
}

/* Breakpoints */
@media (min-width:600px){
	.features-grid{grid-template-columns:repeat(2,1fr)}
	.services-grid{grid-template-columns:repeat(2,1fr)}
	.showcase-grid{grid-template-columns:repeat(3,1fr)}
	.contact-grid{grid-template-columns:1fr 1fr}
}
@media (min-width:900px){
	.slides{grid-auto-columns:100%}
	.timeline{grid-template-columns:repeat(5,1fr);align-items:start}
	.timeline{position:relative}
	.timeline::before{content:"";position:absolute;left:0;right:0;top:32px;height:2px;background:#e9e9f2}
	.timeline .step{position:relative}
	.timeline .step::before{content:"";position:absolute;top:24px;left:0;right:0;height:2px;background:transparent}
}
@media (min-width:1200px){
	.services-grid{grid-template-columns:repeat(3,1fr)}
	.features-grid{grid-template-columns:repeat(4,1fr)}
}

/* Header enhancements */
.logo{height:95px;width:auto;max-width:300px;object-fit:contain}
.nav{display:flex;align-items:center;gap:12px}
@media (min-width:900px){
	.nav{gap:0}
}
.nav-menu{list-style:none;margin:0;padding:0;display:flex;gap:16px}
.nav-menu a{text-decoration:none;color:var(--text);font-weight:600}
.nav-toggle{display:none}
.hamburger{display:inline-flex;flex-direction:column;gap:5px;width:36px;height:36px;align-items:center;justify-content:center;border-radius:8px;border:1px solid #eee;background:#fff}
.hamburger span{display:block;width:18px;height:2px;background:#222}
/* Dropdown menu (hover open; nested sub on hover) */
.nav-menu li{position:relative}
.has-dropdown > .dropdown{position:absolute;left:0;top:100%;min-width:260px;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:var(--shadow);padding:10px;display:none;z-index:100}
.has-dropdown:hover > .dropdown{display:block}
.dropdown > li{padding:6px 8px}
.dropdown, .dropdown .sub{list-style:none;margin:0;padding:0}
.dropdown a{display:block;padding:6px 8px;border-radius:8px;color:var(--text)}
.dropdown a:hover{background:var(--accent-4)}
.dropdown .group{position:relative}
.dropdown .group > .sub{position:absolute;left:100%;top:0;min-width:260px;background:#fff;border:1px solid #eee;border-radius:12px;box-shadow:var(--shadow);padding:10px;display:none}
.dropdown .group:hover > .sub{display:block}

/* Modern Mega Menu for Services (Desktop only) */
@media (min-width:900px){
	.services-mega-menu{position:absolute;right:0;top:100%;width:min(800px,95vw);background:#fff;border:1px solid #eee;border-radius:16px;box-shadow:0 20px 40px rgba(0,0,0,.1);padding:20px;display:none;z-index:200}
	.services-mega-menu .mega-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
	.services-mega-menu .mega-category h4{margin:0 0 12px;font-size:1rem;color:var(--accent);font-weight:700;border-bottom:2px solid var(--accent-4);padding-bottom:8px}
	.services-mega-menu .mega-category ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}
	.services-mega-menu .mega-category a{text-decoration:none;color:var(--text);padding:6px 10px;border-radius:8px;transition:all .2s ease;display:block;font-size:.85rem}
	.services-mega-menu .mega-category a:hover{background:var(--accent-4);color:var(--accent);transform:translateX(4px)}
	.has-mega:hover .services-mega-menu{display:block}
}
@media (min-width:900px) and (max-width:1100px){
	.services-mega-menu{width:min(700px,95vw)}
	.services-mega-menu .mega-grid{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:900px) and (max-width:950px){
	.services-mega-menu{width:min(600px,95vw)}
	.services-mega-menu .mega-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:899px){
	.header-inner{height:85px;padding:8px 16px;overflow:visible}
	.logo{height:70px;max-width:220px}
	.nav{position:fixed;left:0;right:0;top:85px;height:calc(100dvh - 85px);background:#fff;box-shadow:var(--shadow);padding:12px 16px;display:grid;gap:12px;grid-template-rows:1fr auto;transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .2s ease;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1000;padding-bottom:calc(28px + env(safe-area-inset-bottom))}
	.nav-menu{flex-direction:column;gap: 4px;}
	.nav .book-now{padding:16px 0;border-top:1px solid #eee;width:100%;display:block;margin-top:8px;margin-bottom:calc(12px + env(safe-area-inset-bottom))}
	/* Mobile dropdown behavior: expand groups inline margin-top:16px;*/
	.has-dropdown > .dropdown{position:static;display:block;border:0;box-shadow:none;padding:6px 0}
	.dropdown .group > .sub{position:static;display:block;border:0;box-shadow:none;padding-left:8px}
	/* Mobile mega menu responsive */
	.services-mega-menu .mega-category ul[style*="grid-template-columns"],
	.mega-menu .mega-category ul[style*="grid-template-columns"]{grid-template-columns:1fr !important;gap:6px !important}
	/* Mobile mega menu layout */
	.services-mega-menu{position:static;display:block;border:0;box-shadow:none;padding:6px 0;width:auto}
	.mega-menu{position:static;display:block;border:0;box-shadow:none;padding:6px 0;width:auto}
	.services-mega-menu .mega-grid,
	.mega-menu .mega-grid{grid-template-columns:1fr;gap:8px}
	/* Mobile mega menu indentation */
	.services-mega-menu .mega-category h4,
	.mega-menu .mega-category h4{padding-left:16px;font-weight:600;color:var(--accent);margin:8px 0 4px}
	.services-mega-menu .mega-category ul,
	.mega-menu .mega-category ul{list-style:none;padding:0;margin:0}
	.services-mega-menu .mega-category a,
	.mega-menu .mega-category a{padding:4px 8px 4px 32px;display:block}
	#nav-toggle:checked ~ .hamburger{border-color:var(--accent-2)}
	#nav-toggle:checked ~ .hamburger span{background:var(--accent-2)}
	#nav-toggle:checked ~ .nav{opacity:1;pointer-events:auto;transform:none}
	body.nav-open{overflow:hidden}

	/* Mobile: show all services links by default */
	.services-mega-menu .mega-category ul{display:grid}
}
@media (min-width:900px){
	.hamburger{display:none}
	.nav .book-now{margin-left:12px;padding:12px 20px;width:auto}
}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.9);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid #eee;transition:box-shadow .2s ease}
.site-header.is-scrolled{box-shadow:var(--shadow)}


/* Modal popup */
.modal{position:fixed;inset:0;display:grid;place-items:center;z-index:1000;opacity:0;visibility:hidden;transition:opacity .25s ease, visibility 0s linear .25s}
.modal[aria-hidden="false"]{opacity:1;visibility:visible;transition:opacity .25s ease}
.modal .backdrop{position:absolute;inset:0;background:rgba(0,0,0,.6)}
.modal-dialog{position:relative;z-index:1;width:min(640px,92vw);max-height:90vh;overflow:auto;background:#fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(16px,2vw,24px);transform:translateY(8px);transition:transform .25s ease}
.modal[aria-hidden="false"] .modal-dialog{transform:translateY(0)}
.modal-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;background:#f3f4f8}
.modal-form{display:grid;gap:12px}
.modal-form label{display:grid;gap:6px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row-email-phone{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-row-event-details{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:640px){
	.form-row{grid-template-columns:1fr}
	.form-row-email-phone{grid-template-columns:1fr}
	.form-row-event-details{grid-template-columns:1fr}
}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}

/* Fancy Hero */
.hero.fancy{padding: clamp(1.5rem,3vw,2.5rem) 0; background:linear-gradient(180deg,#fff,#fafbff)}
.fancy-hero .slides{position:relative;display:block;min-height:80vh}
.fancy-hero .slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .6s ease}
.fancy-hero .slide .split{min-height:80vh;height:100%}
.fancy-hero .slide.is-active{opacity:1;pointer-events:auto}
.fancy-hero .split{display:grid;grid-template-columns:0.8fr 1.2fr;align-items:center;gap:clamp(20px,4vw,40px);min-height:80vh}
.fancy-hero .left{display:grid;gap:12px;color:var(--text)}
.fancy-hero .big{font-size:clamp(1.8rem,4.5vw,3.6rem)}
.fancy-hero .image-wrap{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}
.fancy-hero .image-wrap::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.0),rgba(0,0,0,.15))}
.fancy-hero img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.fancy-hero .cta-row{display:flex;gap:10px;align-items:center}
.fancy-hero .hero-chrome{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.fancy-hero .counter{font-weight:700;color:var(--accent-2);display:flex;gap:8px;align-items:center}
.fancy-hero .progress{position:relative;flex:1;max-width:420px;height:3px;background:#e9ebf5;border-radius:999px;overflow:hidden}
.fancy-hero .progress .bar{position:absolute;left:0;top:0;bottom:0;width:0;background:linear-gradient(90deg,var(--accent-2),var(--accent-4))}
.fancy-hero .rail{position:absolute;right:12px;top:50%;transform:translateY(-50%);display:grid;gap:8px;align-items:center;justify-items:center}
.fancy-hero .rail-btn{width:40px;height:56px;border-radius:999px;background:var(--accent);color:#fff}
.fancy-hero .rail-label{writing-mode:vertical-rl;transform:rotate(180deg);background:var(--accent-2);color:#fff;padding:8px 6px;border-radius:12px;font-weight:600}
.fancy-hero .read-more{color:var(--accent-2);text-decoration:none;position:relative;font-weight:600}
.fancy-hero .read-more::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:currentColor;opacity:.6}
.fancy-hero .meta-row{margin-top:12px;padding:16px 0 0}
.fancy-hero .meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;color:var(--muted)}
.fancy-hero .meta-label{display:block;font-size:.78rem;color:var(--muted)}
.fancy-hero .meta-value{display:block;font-weight:600;color:var(--text)}
@media (min-width:900px){.fancy-hero .meta-grid{grid-template-columns:repeat(4,1fr)}}
@media (max-width:899px){
	.fancy-hero .split{grid-template-columns:1fr;min-height:unset;gap:24px}
	.fancy-hero .rail{display:none}
	.fancy-hero .left{order:2}
	.fancy-hero .right{order:1}
	.fancy-hero .left .big{font-size:clamp(1.6rem,4vw,2.2rem);margin-right:0;text-align:center}
	.fancy-hero .slide-text{text-align:center;margin:0 auto 16px}
	.fancy-hero .cta-row{justify-content:center}
	.fancy-hero .cta-row .btn{font-size:0.875rem;padding:10px 16px}
	.fancy-hero .slides{min-height:unset}
	.fancy-hero .slide .split{min-height:unset;height:auto;padding:20px 0}

	.fancy-hero .dots{margin:24px auto 0}
	.fancy-hero .hero-chrome{justify-content:center;margin-bottom:16px}
	.fancy-hero .counter{justify-content:center}
	.fancy-hero .progress{max-width:280px}
	
	/* Mobile arrow positioning */
	.fancy-hero .slider-arrow.prev{left:16px}
	.fancy-hero .slider-arrow.next{right:16px}
}

/* Overlap title into image like reference */
.fancy-hero .split{position:relative}
.fancy-hero .left{position:relative;z-index:2}
.fancy-hero .right{position:relative;z-index:1}
.fancy-hero .left .big{line-height:1.02}
@media (min-width:900px){
	.fancy-hero .left .big{margin-right:-12vw}
}
@media (min-width:1200px){
	.fancy-hero .left .big{margin-right:-16vw}
}
.fancy-hero .left .big{text-shadow:0 2px 6px rgba(0,0,0,.06)}

/* Move dots out of the bottom overlay so they don't overlap meta text */
.fancy-hero .dots{position:relative;left:auto;bottom:auto;transform:none;display:flex;gap:8px;margin:16px auto 0;justify-content:center;z-index:2}

/* Icons tint */
.icon-badge i{font-size:22px;color:var(--accent-2)}
.step-icon i{font-size:20px;color:var(--accent)}

[hidden]{display:none !important}
.modal{display:grid}
.hero.fancy{box-shadow:0 12px 30px rgba(0,0,0,.06)}

/* Slide animations */
.fancy-hero .slide{--t:600ms}
.fancy-hero .slide .big{position:relative;overflow:hidden}
.fancy-hero .slide .big::after{content:"";position:absolute;left:0;top:0;height:100%;width:100%;background:#000;transform:translateX(-101%)}
.fancy-hero .slide.is-active .big::after{animation:mask-wipe var(--t) ease forwards}
@keyframes mask-wipe{0%{transform:translateX(-101%)}100%{transform:translateX(101%)}}
.fancy-hero .slide .slide-text,.fancy-hero .slide .cta-row{opacity:0;transform:translateY(8px)}
.fancy-hero .slide.is-active .slide-text,.fancy-hero .slide.is-active .cta-row{animation:fade-up var(--t) ease forwards;animation-delay:120ms}
@keyframes fade-up{to{opacity:1;transform:none}}
/* stronger image slide logic: incoming from left, leaving to right */
.fancy-hero .slide .image-wrap{transform:none;opacity:1}
.fancy-hero .slide.is-active .image-wrap{animation:image-in-right var(--t) ease forwards}
.fancy-hero .slide.is-leaving .image-wrap{animation:image-out-right var(--t) ease forwards}
@keyframes image-in-right{from{transform:translateX(-56px);opacity:.9}to{transform:none;opacity:1}}
@keyframes image-out-right{from{transform:none;opacity:1}to{transform:translateX(88px);opacity:.8}}
.image-frame{position:relative;overflow:hidden;border-radius:var(--radius)}
.image-frame img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;will-change:transform}
/* Replace previous image-in/out with frame-based translate percentages */
.fancy-hero .slide.is-active .image-frame img{animation:img-enter 700ms cubic-bezier(.22,.61,.36,1) forwards}
.fancy-hero .slide.is-leaving .image-frame img{animation:img-exit 700ms cubic-bezier(.22,.61,.36,1) forwards}
@keyframes img-enter{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes img-exit{from{transform:translateX(0)}to{transform:translateX(100%)}}

.title-xl{font-size:clamp(2rem,5.2vw,3.8rem);line-height:1.05;font-weight:700}
.title-lg{font-size:clamp(1.6rem,3.6vw,2.4rem);line-height:1.1;font-weight:700}
.title-dual span:first-child{color:var(--accent)}
.title-dual span:last-child{color:var(--accent-2)}
.section .intro.center{text-align:center}
.section .intro{font-size:clamp(1rem,1.3vw,1.125rem)}
.section .section-title{text-align:center}
.fancy-hero .left{text-align:left}
.fancy-hero .left .big{margin-right:-12vw}

/* 
.book-now {
  padding: 10px 20px;
  border-radius: 20px;
  font-weight: 600;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  color: #fff;
  white-space: nowrap;
}

@media (max-width: 899px) {
  .book-now {
    margin-left: auto;
    margin-right: 8px;
    font-size: 14px;
    padding: 8px 16px;
    display: inline-block;
  }
}*/
html{
  scroll-behavior: smooth;
}
/* Wedding Specialty Section */
.wedding-specialty {
  position: relative;
  overflow: hidden;
}

.specialty-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: center;
}

.specialty-text {
  text-align: center;
}

.gold-divider {
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  margin: 0 auto 16px;
  border-radius: 2px;
}

.wedding-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 24px 0;
  padding: 20px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: var(--radius);
  border: 1px solid #f0f0f0;
}

.stat {
  text-align: center;
}

.stat .number {
  display: block;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 700;
  color: var(--accent);
  font-family: "Playfair Display", serif;
}

.stat .label {
  display: block;
  font-size: 0.9rem;
  color: var(--muted);
  font-weight: 500;
  margin-top: 4px;
}

.wedding-showcase {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 12px;
  height: 400px;
}

.showcase-item {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.showcase-item.main {
  grid-row: 1 / -1;
}

.showcase-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.showcase-item:hover img {
  transform: scale(1.05);
}

.showcase-item .overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.7));
  padding: 16px;
  color: white;
}

.showcase-item .tag {
  font-size: 0.9rem;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.2);
  padding: 6px 12px;
  border-radius: 20px;
  backdrop-filter: blur(10px);
}

@media (min-width: 900px) {
  .specialty-content {
    grid-template-columns: 1fr 1.2fr;
  }
  
  .specialty-text {
    text-align: left;
  }
  
  .gold-divider {
    margin: 0 0 16px;
  }
}

@media (max-width: 600px) {
  .wedding-stats {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  
  .wedding-showcase {
    grid-template-columns: 1fr;
    grid-template-rows: 200px 120px 120px;
    height: auto;
  }
  
  .showcase-item.main {
    grid-row: 1;
  }
}

/* Scroll-To-Top Button */
#scrollbtn{
  animation-name: appear;
  animation-timeline: scroll(root block);
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  border-radius: 40px;
  color: white;
  width: 40px !important;
  padding: 2px;
  font-size: x-large !important;
  margin: 8px !important;
}

@keyframes appear{
  0%{
    opacity: 0;
    display: none;
    position: fixed;
  }
  3%{
    opacity: 0;
    display: none;
  }
  3.5%{
    opacity: 1;
    display: block;
  }
  100%{
    opacity: 1;
    display: block;
    position: fixed;
  }
}
