/* Enhancements only: retain the original compiled Tailwind design. */
.woulfe-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* State classes override utility colors only on the contracted header. */
#woulfe-header {
  padding-top: 1.25rem;
  padding-bottom: 1.25rem;
  background-color: transparent;
  transition: background-color 500ms, padding 500ms, box-shadow 500ms, border-color 500ms;
}
#woulfe-header.is-scrolled,
#woulfe-header.menu-open {
  background-color: color-mix(in srgb, var(--color-cream, #faf7f2) 90%, transparent);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
#woulfe-header.is-scrolled {
  padding-top: .75rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid color-mix(in srgb, var(--color-gold-light, #e4cf9e) 40%, transparent);
  box-shadow: 0 1px 3px rgb(0 0 0 / .05);
}
#woulfe-header .woulfe-menu-link {
  color: color-mix(in srgb, var(--color-charcoal, #302b28) 70%, transparent);
}
#woulfe-header .woulfe-menu-link[aria-current="page"],
#woulfe-header .woulfe-menu-link.woulfe-shop-link {
  color: var(--color-rose, #ca8b91);
  font-weight: 500;
}
#woulfe-header .woulfe-menu-link[aria-current="page"] {
  border-bottom: 2px solid var(--color-gold, #cda95e);
  padding-bottom: .125rem;
}
#woulfe-header.over-hero .woulfe-menu-link {
  color: rgb(255 255 255 / .9);
}
#woulfe-header.over-hero .woulfe-menu-link[aria-current="page"],
#woulfe-header.over-hero .woulfe-shop-link,
#woulfe-header.over-hero [aria-controls="mobile-navigation"] {
  color: #fff;
}
#woulfe-header .woulfe-menu-link:hover,
#woulfe-header .woulfe-menu-link:focus-visible {
  color: var(--color-rose, #ca8b91);
}
#woulfe-header [aria-controls="mobile-navigation"] {
  color: var(--color-charcoal, #302b28);
}
#woulfe-header [aria-controls="mobile-navigation"] [data-menu-close],
#woulfe-header [aria-controls="mobile-navigation"] .woulfe-menu-close,
#woulfe-header [aria-controls="mobile-navigation"] .lucide-x { display: none; }
#woulfe-header [aria-controls="mobile-navigation"].is-open [data-menu-close],
#woulfe-header [aria-controls="mobile-navigation"].is-open .woulfe-menu-close,
#woulfe-header [aria-controls="mobile-navigation"].is-open .lucide-x { display: block; }
#woulfe-header [aria-controls="mobile-navigation"].is-open [data-menu-open],
#woulfe-header [aria-controls="mobile-navigation"].is-open .woulfe-menu-open,
#woulfe-header [aria-controls="mobile-navigation"].is-open .lucide-menu { display: none; }
#mobile-navigation:not(.is-open),
#mobile-navigation[hidden] { display: none !important; }
#mobile-navigation.is-open {
  display: flex;
  background-color: color-mix(in srgb, var(--color-cream, #faf7f2) 98%, transparent);
  overscroll-behavior: contain;
  padding-bottom: max(2.5rem, env(safe-area-inset-bottom));
  animation: woulfe-menu-enter 250ms cubic-bezier(.23, 1, .32, 1) both;
}
#mobile-navigation .woulfe-menu-link { color: var(--color-charcoal, #302b28); }
#mobile-navigation .woulfe-menu-link[aria-current="page"],
#mobile-navigation .woulfe-shop-link,
#mobile-navigation .woulfe-menu-link:hover { color: var(--color-rose, #ca8b91); }
@media (min-width: 1280px) {
  #mobile-navigation.is-open { display: none !important; }
}
@keyframes woulfe-menu-enter {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}

.woulfe-ripple-link { position: relative; isolation: isolate; }
.woulfe-ripple-link [data-shop-ripple-layer] {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: 9999px;
  pointer-events: none;
}
.woulfe-ripple-link [data-shop-ripple] {
  position: absolute;
  display: block;
  border-radius: 9999px;
  pointer-events: none;
  background-color: var(--color-blush-dark, #ba8790);
  animation: woulfe-shop-ripple 280ms cubic-bezier(.23, 1, .32, 1) forwards;
}
@keyframes woulfe-shop-ripple {
  from { opacity: .18; transform: scale(.12); }
  to { opacity: 0; transform: scale(1); }
}
@keyframes woulfe-shop-ripple-reduced {
  from { opacity: .18; }
  to { opacity: 0; }
}
[data-woulfe-booking-feedback] .woulfe-booking-label { display: inline-flex; align-items: center; gap: inherit; }
[data-woulfe-booking-feedback].is-opening .woulfe-booking-label { opacity: 0; }
[data-woulfe-booking-feedback] [data-booking-spinner] {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
[data-woulfe-booking-feedback] [data-booking-spinner][hidden] { display: none !important; }
.woulfe-booking-ring {
  display: block;
  width: 15px;
  height: 15px;
  border: 1.8px solid rgb(255 255 255 / .9);
  border-right-color: transparent;
  border-radius: 50%;
  animation: woulfe-booking-spin 800ms linear infinite;
}
@keyframes woulfe-booking-spin { to { transform: rotate(360deg); } }

[data-gallery-category][hidden],
[data-gallery-category].woulfe-gallery-hidden { display: none !important; }
[data-gallery-filter].is-active {
  background-color: var(--color-rose, #ca8b91);
  border-color: var(--color-rose, #ca8b91);
  color: #fff;
}
.woulfe-gallery-trigger { cursor: zoom-in; }
.woulfe-gallery-trigger:focus-visible,
.woulfe-gallery-open:focus-visible,
[data-gallery-filter]:focus-visible,
#woulfe-header a:focus-visible,
#woulfe-header button:focus-visible,
#mobile-navigation a:focus-visible {
  outline: 2px solid var(--color-rose, #ca8b91);
  outline-offset: 4px;
}
.woulfe-gallery-control-host { position: relative; }
.woulfe-gallery-control-host:has([data-gallery-category][hidden]) > .woulfe-gallery-open { display: none; }
.woulfe-gallery-open {
  position: absolute;
  bottom: .75rem;
  right: .75rem;
  z-index: 2;
  border-radius: 9999px;
  border: 1px solid rgb(255 255 255 / .5);
  background: rgb(48 43 40 / .75);
  color: #fff;
  padding: .5rem .9rem;
  font: 500 .8rem var(--font-sans, 'Jost', sans-serif);
  cursor: zoom-in;
}
.woulfe-lightbox {
  position: fixed;
  inset: 0;
  width: min(94vw, 1100px);
  max-width: 94vw;
  max-height: 94dvh;
  padding: 0;
  border: 0;
  border-radius: 1rem;
  overflow: auto;
  background: var(--color-charcoal, #302b28);
  color: #fff;
  font-family: var(--font-sans, 'Jost', sans-serif);
}
.woulfe-lightbox:not([open]) { display: none; }
.woulfe-lightbox::backdrop { background: rgb(0 0 0 / .82); }
.woulfe-lightbox.is-fallback[open] { z-index: 10000; box-shadow: 0 0 0 100vmax rgb(0 0 0 / .82); margin: auto; }
.woulfe-lightbox-panel { position: relative; padding: 3.25rem 1rem 1rem; }
.woulfe-lightbox button {
  border: 1px solid rgb(255 255 255 / .3);
  border-radius: 9999px;
  min-width: 44px;
  min-height: 44px;
  color: #fff;
  background: rgb(255 255 255 / .06);
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
}
.woulfe-lightbox button:hover { background: rgb(255 255 255 / .15); }
.woulfe-lightbox button:focus-visible { outline: 2px solid var(--color-gold, #cda95e); outline-offset: 3px; }
.woulfe-lightbox .woulfe-lightbox-close { position: absolute; top: .45rem; right: .65rem; }
.woulfe-lightbox-figure { margin: 0; text-align: center; }
.woulfe-lightbox-image { width: 100%; height: auto; max-height: 70dvh; object-fit: contain; }
.woulfe-lightbox figcaption { padding: .8rem; color: rgb(255 255 255 / .85); font-size: .9rem; }
.woulfe-lightbox-controls { display: flex; align-items: center; justify-content: center; gap: 1.5rem; }
.woulfe-lightbox-controls [hidden] { display: none !important; }

/* No waiting/opacity-zero class: content stays readable if observation or JS fails. */
.woulfe-reveal-active { animation: woulfe-section-reveal 700ms ease-out; }
@keyframes woulfe-section-reveal {
  from { opacity: .65; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
.wp-block-woulfe-design-section [id] { scroll-margin-top: 7rem; }
@media (prefers-reduced-motion: reduce) {
  #woulfe-header { transition: none; }
  #mobile-navigation.is-open,
  .woulfe-reveal-active,
  .woulfe-booking-ring { animation: none; }
  .woulfe-ripple-link [data-shop-ripple] {
    transform: scale(1);
    animation: woulfe-shop-ripple-reduced 120ms linear forwards;
  }
  .woulfe-shop-link,
  .woulfe-shop-link svg,
  [data-gallery-src] img { transition: none !important; }
  .woulfe-shop-link:hover,
  .woulfe-shop-link:focus-visible { translate: none !important; transform: none !important; }
}
