*,*::before,*::after{box-sizing:border-box}html,body{width:100%;max-width:100%;margin:0;overflow-x:hidden}@supports(overflow:clip){html,body{overflow-x:clip}}img,video,iframe{max-width:100%}.mobile-drawer,.info-drawer{visibility:hidden;pointer-events:none}.mobile-drawer.open,.mobile-drawer.drawer-open,.info-drawer.open,.info-drawer.drawer-open{visibility:visible;pointer-events:auto}.instagram-embed-card iframe{width:100%;height:100%;border:0;background:#fff}.gallery-empty{grid-column:1/-1;padding:50px;text-align:center}.cms-hidden{display:none!important}#site-preloader{position:fixed;z-index:99999;inset:0;display:grid;place-items:center;background:#210629;transition:opacity .5s,visibility .5s}#site-preloader.hide{opacity:0;visibility:hidden}#site-preloader img{width:min(260px,55vw);height:auto;animation:preloaderPulse 1.2s ease-in-out infinite}@keyframes preloaderPulse{50%{opacity:.55;transform:scale(.96)}}
@media(max-width:720px){body{padding-bottom:78px}.mobile-contact-dock{position:fixed!important;z-index:800!important;left:12px!important;right:12px!important;bottom:max(10px,env(safe-area-inset-bottom))!important;width:auto!important;max-width:calc(100vw - 24px)!important}.shell{width:min(100% - 30px,1180px)!important}.hero-slide h1,.service-hero-copy h1{overflow-wrap:anywhere}.home-slider{padding-bottom:20px!important}.slider-controls{left:50%!important;right:auto!important;bottom:45px!important;transform:translateX(-50%)!important;justify-content:center!important}.scroll-explore{display:none!important}.slider-visual{width:100%!important}.float-top,.float-bottom{max-width:78%!important}.site-footer{padding-bottom:90px!important}}

/* Reliable sticky header state */
.site-header.is-scrolled{background:#fff!important;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 10px 35px rgba(35,6,45,.1)}

/* Each hero slide gets a visibly different—but still light—brand atmosphere. */
.home-slider{transition:background .65s ease}
.home-slider[data-slide="0"]{background:radial-gradient(circle at 8% 15%,rgba(190,255,149,.42),transparent 27%),radial-gradient(circle at 78% 19%,rgba(142,0,181,.14),transparent 31%),linear-gradient(126deg,#fcfff9,var(--slide-1,#f8effb) 58%,#f2e7f8)}
.home-slider[data-slide="1"]{background:radial-gradient(circle at 10% 18%,rgba(220,247,211,.75),transparent 30%),radial-gradient(circle at 83% 25%,rgba(113,214,166,.2),transparent 29%),linear-gradient(128deg,#fbfff8,var(--slide-2,#eef9ef) 52%,#f7eff9)}
.home-slider[data-slide="2"]{background:radial-gradient(circle at 12% 20%,rgba(245,222,249,.82),transparent 31%),radial-gradient(circle at 85% 22%,rgba(204,177,240,.24),transparent 30%),linear-gradient(128deg,#fffafd,var(--slide-3,#f5eafa) 52%,#eef8ef)}
.slider-controls{display:none!important}
.instagram-thumbnail-card{aspect-ratio:1!important;height:auto!important;min-height:0!important}.instagram-thumbnail-card img{width:100%;height:100%;object-fit:cover}.instagram-embed-card{aspect-ratio:1!important;height:auto!important;min-height:0!important}

/* Remove surplus footer canvas while preserving room for the mobile bottom bar. */
.site-footer{padding-bottom:0!important}
.footer-bottom{padding-bottom:22px!important}

/* Fluid tablet layout: avoid the squeezed desktop state around 768–1100px. */
@media(max-width:1100px){
  .shell{width:min(92vw,1180px)!important}
  .desktop-nav{display:none!important}
  .menu-button{display:grid!important;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:var(--dark)}
  .menu-button span{position:absolute;width:17px;height:1.5px;background:#fff}
  .menu-button span:first-child{transform:translateY(-4px)}.menu-button span:last-child{transform:translateY(4px)}
  .hero-slide{grid-template-columns:minmax(0,1fr)!important;gap:38px!important}
  .slider-stage{height:1080px!important}.home-slider{min-height:1210px!important}
  .slider-visual{width:min(100%,720px)!important;height:520px!important;margin-inline:auto}
  .inner-hero-grid,.service-hero-grid,.contact-hero-grid,.contact-grid,.story-grid,.why-grid{grid-template-columns:minmax(0,1fr)!important}
  .services-collection,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .footer-modern{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .footer-intro,.footer-contact{grid-column:1/-1}
}

@media(max-width:767px){
  body{padding-bottom:64px!important}
  .mobile-contact-dock{display:grid!important;visibility:visible!important;opacity:1!important;transform:none!important;position:fixed!important;z-index:9999!important;left:0!important;right:0!important;bottom:0!important;width:100%!important;max-width:none!important;border-radius:0!important;border-width:1px 0 0!important;box-shadow:0 -8px 30px rgba(34,6,45,.14)!important}
  .mobile-contact-dock>a{min-height:64px!important}
  .site-footer{padding-bottom:0!important}.footer-bottom{padding-bottom:78px!important}
  .services-collection,.gallery-grid{grid-template-columns:minmax(0,1fr)!important}
  .slider-stage{height:900px!important}.home-slider{min-height:1015px!important;padding-bottom:0!important}
  .slider-visual{height:400px!important}
}

/* Gallery uses a dark photographic hero, so its header and eyebrow stay legible. */
.gallery-hero .eyebrow{color:#fff!important}
.site-header.header-dark:not(.is-scrolled) .brand-logo img{filter:none!important}

/* Keep CTA labels legible on the three purple buttons shown over dark sections. */
.home-plan-panel .button,
.why-section .why-intro .button,
.contact-quick-card .button,
.home-plan-panel .button span,
.why-section .why-intro .button span,
.contact-quick-card .button span{color:#fff!important}

.dock-call>span svg{width:20px!important;height:20px!important;fill:none!important;stroke:#fff!important;stroke-width:1.8!important;stroke-linecap:round!important;stroke-linejoin:round!important;display:block!important}

/* All CMS-colored purple CTA buttons use accessible white labels and icons. */
.button,
.button span,
.button i,
.form-submit button,
.form-submit button span{color:#fff!important}

/* Desktop Instagram gallery: four equal posts per row, two rows maximum. */
@media(min-width:901px){
  .instagram-rail-shell{overflow:visible!important}
  .instagram-rail{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:18px!important;overflow:visible!important;padding:0!important}
  .instagram-card,.instagram-card:nth-child(2n){width:100%!important;min-width:0!important;height:auto!important;aspect-ratio:1/1!important;margin:0!important}
  .instagram-card:nth-child(n+9){display:none!important}
  .instagram-actions button{display:none!important}
}
