:root {
  --wp-surface: #fff;
  --wp-ink: #18201b;
  --wp-accent: #376f4b;
  --wp-focus: #146cdb;
  --wp-radius: .75rem;
  --wp-space: clamp(1rem, 3vw, 2rem);
  --wp-reveal-distance: 1.5rem;
  --wp-reveal-duration: 800ms;
  --wp-image-fade-duration: 450ms;
  --wp-reveal-easing: cubic-bezier(.22, .75, .25, 1);
}

*, *::before, *::after { box-sizing: border-box; }
img { max-width: 100%; }
.wp-container { width: min(100% - 2 * var(--wp-space), 72rem); margin-inline: auto; }
.wp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: var(--wp-space); }
.wp-grid > * { min-width: 0; overflow-wrap: anywhere; }

/* Fade-in is fail-open: without JS/ready attribute every item remains visible. */
html[data-wp-fade-in-ready] [data-wp-reveal][data-wp-reveal-state="pending"] {
  opacity: 0;
  transform: translateY(var(--wp-reveal-distance));
}
html[data-wp-fade-in-ready] [data-wp-reveal][data-wp-reveal-state="visible"] {
  animation: wp-reveal-in var(--wp-reveal-duration) var(--wp-reveal-easing) both;
  animation-delay: var(--wp-reveal-delay, 0ms);
}
[data-wp-reveal-group] > [data-wp-reveal]:nth-child(1) { --wp-reveal-delay: 50ms; }
[data-wp-reveal-group] > [data-wp-reveal]:nth-child(2) { --wp-reveal-delay: 150ms; }
[data-wp-reveal-group] > [data-wp-reveal]:nth-child(3) { --wp-reveal-delay: 250ms; }
[data-wp-reveal-group] > [data-wp-reveal]:nth-child(4) { --wp-reveal-delay: 350ms; }
html[data-wp-fade-in-ready] img[data-wp-image-fade] {
  transition: opacity var(--wp-image-fade-duration) var(--wp-reveal-easing);
}
html[data-wp-fade-in-ready] img[data-wp-image-fade][data-wp-image-state="pending"] { opacity: 0; }
html[data-wp-fade-in-ready] img[data-wp-image-fade][data-wp-image-state="loaded"],
html[data-wp-fade-in-ready] img[data-wp-image-fade][data-wp-image-state="error"] { opacity: 1; }
@keyframes wp-reveal-in {
  from { opacity: 0; transform: translateY(var(--wp-reveal-distance)); }
  to { opacity: 1; transform: translateY(0); }
}

.wp-scroll-rail {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(84vw, 20rem);
  gap: 1rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  padding-block-end: .75rem;
  scrollbar-width: thin;
  scrollbar-color: var(--wp-accent) transparent;
}
.wp-scroll-rail > * { min-width: 0; scroll-snap-align: start; }
@media (min-width: 48rem) { .wp-scroll-rail { grid-auto-columns: minmax(17rem, calc((100% - 2rem) / 3)); } }

[data-wp-nav-panel][hidden] { display: none; }
[data-wp-nav-toggle] { min-width: 44px; min-height: 44px; }
@media (min-width: 48rem) {
  [data-wp-nav-toggle] { display: none; }
  [data-wp-nav-panel][hidden] { display: flex; }
}

[data-wp-gallery] img { cursor: zoom-in; }
[data-wp-gallery] img:focus-visible,
.wp-lightbox button:focus-visible { outline: 3px solid var(--wp-focus); outline-offset: 3px; }
html[data-wp-lightbox-open] { overflow: hidden; }
.wp-lightbox[hidden] { display: none; }
.wp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: center;
  padding: max(.5rem, env(safe-area-inset-top)) max(.5rem, env(safe-area-inset-right))
    max(.5rem, env(safe-area-inset-bottom)) max(.5rem, env(safe-area-inset-left));
  color: #fff;
  background: rgb(10 12 11 / 94%);
  overscroll-behavior: none;
  touch-action: none;
}
.wp-lightbox__stage { width: min(94vw, 100rem); max-height: 92dvh; margin: 0; display: flex; flex-direction: column; gap: .75rem; align-items: center; }
.wp-lightbox__viewport { width: 100%; height: min(80dvh, 62.5rem); display: grid; place-items: center; overflow: hidden; touch-action: none; user-select: none; }
.wp-lightbox__image { display: block; max-width: 100%; max-height: 100%; object-fit: contain; transform-origin: center; will-change: transform; cursor: zoom-in; }
.wp-lightbox[data-zoomed] .wp-lightbox__image { cursor: grab; }
.wp-lightbox__button { position: absolute; z-index: 2; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgb(255 255 255 / 30%); border-radius: 50%; color: #fff; background: rgb(255 255 255 / 12%); font-size: 1.5rem; touch-action: manipulation; user-select: none; -webkit-user-select: none; }
.wp-lightbox__close { top: max(1rem, env(safe-area-inset-top)); right: max(1rem, env(safe-area-inset-right)); }
.wp-lightbox__previous { left: max(.5rem, env(safe-area-inset-left)); top: 50%; }
.wp-lightbox__next { right: max(.5rem, env(safe-area-inset-right)); top: 50%; }
.wp-lightbox[data-single] .wp-lightbox__previous,
.wp-lightbox[data-single] .wp-lightbox__next { display: none; }
.wp-lightbox__caption { max-width: min(60ch, 80vw); min-height: 1.4em; text-align: center; }
.wp-lightbox__tools { position: absolute; bottom: max(.75rem, env(safe-area-inset-bottom)); left: 50%; z-index: 2; display: flex; padding: .2rem; border-radius: 999px; background: rgb(10 12 11 / 75%); transform: translateX(-50%); }
.wp-lightbox__tools button { min-width: 44px; min-height: 40px; border: 0; border-radius: 999px; color: #fff; background: transparent; touch-action: manipulation; user-select: none; -webkit-user-select: none; }
.wp-lightbox__count { position: absolute; right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); }
.wp-lightbox__hint { position: absolute; top: max(1rem, env(safe-area-inset-top)); left: 50%; max-width: calc(100vw - 7rem); padding: .45rem .75rem; overflow: hidden; border-radius: 999px; background: rgb(10 12 11 / 75%); text-overflow: ellipsis; white-space: nowrap; transform: translateX(-50%); }
.wp-lightbox__loading { position: absolute; bottom: 1rem; display: none; padding: .4rem .7rem; border-radius: 999px; background: rgb(10 12 11 / 75%); }
.wp-lightbox[aria-busy="true"] .wp-lightbox__loading { display: block; }
.wp-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .wp-lightbox * { scroll-behavior: auto !important; transition: none !important; }
  [data-wp-reveal], img[data-wp-image-fade] {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    transition: none !important;
  }
}
