*{box-sizing:border-box}html,body.wlpw-standalone-page{margin:0;min-height:100%;font-family:system-ui,-apple-system,"Segoe UI",sans-serif}body.wlpw-standalone-page{background:var(--wlpw-page-bg,#f7f2ea);color:#2f2a25}.wlpw-logo{max-width:180px;max-height:110px;object-fit:contain}.wlpw-event-gate{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--wlpw-page-bg,#f7f2ea)}.wlpw-event-gate-card,.wlpw-upload-card{width:min(560px,100%);padding:clamp(24px,5vw,46px);border-radius:22px;background:#fffffff2;box-shadow:0 22px 65px #4e3d281f}.wlpw-event-gate-card h1,.wlpw-upload-card h1{font-size:clamp(2rem,7vw,3.5rem);margin:0 0 12px}.wlpw-event-gate-form,.wlpw-upload-form{display:grid;gap:16px}.wlpw-event-gate-form input,.wlpw-upload-form input[type=text]{width:100%;min-height:52px;padding:10px 14px;border:1px solid #d2c5b5;border-radius:12px;font:inherit}.wlpw-event-gate-form button,.wlpw-upload-form>button{min-height:54px;border:0;border-radius:13px;background:var(--wlpw-accent,#b08d57);color:#fff;font:inherit;font-weight:800}.wlpw-event-gate-error{margin-top:14px;color:#8d1e1e}.wlpw-landing,.wlpw-upload-page{min-height:100vh;background:var(--wlpw-page-bg,#f7f2ea) center/cover no-repeat;padding:clamp(24px,6vw,80px);display:grid;place-items:center}.wlpw-landing-panel{text-align:center;width:min(1050px,100%);padding:clamp(28px,6vw,64px);background:#ffffffde;border-radius:28px;box-shadow:0 24px 80px #382c1c24}.wlpw-landing-panel h1,.wlpw-upload-page>header h1,.wlpw-gallery-page h1{font-size:clamp(2.5rem,8vw,6rem);margin:10px 0}.wlpw-landing-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:38px}.wlpw-landing-actions a{display:flex;min-height:190px;padding:26px;border-radius:20px;background:#fff;color:#2f2a25;text-decoration:none;flex-direction:column;justify-content:center;gap:8px;box-shadow:0 12px 35px #382c1c17;font-size:1.7rem}.wlpw-landing-actions strong{font-size:1.15rem}.wlpw-landing-actions span{font-size:.9rem;color:#6a625a}.wlpw-small-admin-link{display:inline-block;margin-top:22px;padding:7px 11px;border-radius:9px;background:#2f2a25;color:#fff!important;text-decoration:none;font-size:.78rem}.wlpw-upload-page{display:flex;flex-direction:column;gap:28px;text-align:center}.wlpw-upload-page>header p{font-size:1.2rem}.wlpw-upload-card{text-align:left}.wlpw-file-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.wlpw-action-button{min-height:94px;padding:18px;border-radius:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:pointer;background:var(--wlpw-accent);color:#fff;font-weight:800;text-align:center}.wlpw-upload-button{background:#efe8de;color:#2f2a25}.wlpw-hidden-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.wlpw-preview img{width:100%;max-height:420px;object-fit:contain;border-radius:13px}.wlpw-consent{display:grid;grid-template-columns:22px 1fr;gap:9px}.wlpw-back-link{color:inherit}.wlpw-gallery-page{min-height:100vh;padding:clamp(22px,5vw,64px);background:var(--wlpw-page-bg)}.wlpw-gallery-page header{max-width:1200px;margin:auto}.wlpw-gallery-page header a{color:inherit}.wlpw-gallery-page h1{font-size:clamp(2.2rem,6vw,4.8rem)}.wlpw-gallery-grid{max-width:1400px;margin:28px auto;columns:4 260px;column-gap:16px}.wlpw-gallery-card{break-inside:avoid;margin:0 0 16px;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 9px 30px #00000014}.wlpw-gallery-card>img{display:block;width:100%;height:auto}.wlpw-gallery-card-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 14px}.wlpw-gallery-card-footer button{border:0;border-radius:999px;padding:8px 12px;background:#f0ebe4;font:inherit;cursor:pointer}.wlpw-gallery-card-footer button.is-voted{background:#f8dfe3;color:#a51c38}.wlpw-wall-v4{overflow:hidden;background:var(--wall-bg)!important}.wlpw-wall{position:fixed;inset:0;background:var(--wall-bg)}.wlpw-stage{position:absolute;top:var(--wall-margin);left:var(--wall-margin);right:var(--wall-margin);bottom:calc(var(--wall-margin) + var(--controls-height));display:grid;place-items:center;overflow:hidden;border-radius:var(--wall-radius)}.wlpw-frame{position:absolute;inset:0;margin:0;opacity:0;display:grid;place-items:center;transition:opacity .9s ease}.wlpw-frame.is-visible{opacity:1}.wlpw-frame img{width:100%;height:100%;object-fit:contain;object-position:center;border-radius:var(--wall-radius)}.wlpw-fit-cover .wlpw-frame img{object-fit:cover}.wlpw-animation-zoom .wlpw-frame{transform:scale(.985);transition:opacity .9s ease,transform 7s ease}.wlpw-animation-zoom .wlpw-frame.is-visible{transform:scale(1)}.wlpw-animation-slide .wlpw-frame{transform:translateX(20px);transition:opacity .8s,transform .8s}.wlpw-animation-slide .wlpw-frame.is-visible{transform:none}.wlpw-animation-none .wlpw-frame{transition:none}.wlpw-frame figcaption{position:absolute;right:18px;bottom:18px;padding:8px 13px;border-radius:999px;background:#0008;color:#fff}.wlpw-empty{color:#fff8;font-size:2rem}.wlpw-wall-controls{position:absolute;left:var(--wall-margin);right:var(--wall-margin);bottom:var(--wall-margin);height:var(--controls-height);display:grid;grid-template-columns:110px 1fr 110px;align-items:center;gap:16px}.wlpw-qr-box{text-align:center;color:#fff;font-size:.75rem}.wlpw-qr-box img{display:block;width:92px;height:92px;margin:auto;background:#fff;padding:5px;border-radius:8px}.wlpw-thumbs{display:flex;align-items:center;gap:8px;height:100%;overflow:hidden}.wlpw-thumbs img{width:88px;height:72px;object-fit:cover;border-radius:8px;opacity:.55}.wlpw-thumbs img.is-current{opacity:1;box-shadow:0 0 0 2px #fff}.wlpw-moderation-shell{min-height:100vh;padding:36px;width:min(1400px,100%);margin:auto;background:#f4f1ec}.wlpw-moderation-header{display:flex;justify-content:space-between;gap:20px;align-items:center}.wlpw-moderation-switch{background:#fff;padding:14px;border-radius:14px;display:flex;gap:10px}.wlpw-moderation-switch small{display:block}.wlpw-moderation-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;margin-top:26px}.wlpw-moderation-card{background:#fff;border-radius:15px;overflow:hidden}.wlpw-moderation-card img{width:100%;height:220px;object-fit:cover}.wlpw-moderation-card>div{padding:14px;display:grid;gap:8px}.wlpw-moderation-card span{color:#666}.wlpw-moderation-card .actions{display:flex;gap:8px}.wlpw-moderation-card button{flex:1;border:0;padding:10px;border-radius:9px;background:#222;color:#fff}.wlpw-moderation-card button.delete{background:#f6dede;color:#8b2020}@media(max-width:800px){.wlpw-landing-actions{grid-template-columns:1fr}.wlpw-file-options{grid-template-columns:1fr}.wlpw-wall-controls{grid-template-columns:82px 1fr 82px;gap:8px}.wlpw-qr-box img{width:72px;height:72px}.wlpw-thumbs img{width:70px;height:58px}.wlpw-moderation-header{flex-direction:column;align-items:stretch}}

/* Version 4.1: Landingpage */
.wlpw-landing{
  position:relative;
  background-color:var(--wlpw-page-bg,#f7f2ea);
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.wlpw-landing.has-background-image::before{
  content:"";
  position:absolute;
  inset:0;
  background:color-mix(in srgb, var(--wlpw-page-bg,#f7f2ea) 58%, transparent);
  pointer-events:none;
}
.wlpw-landing-panel{
  position:relative;
  z-index:1;
  width:min(680px,100%);
}
.wlpw-landing-actions{
  grid-template-columns:1fr !important;
  width:min(520px,100%);
  margin:34px auto 0;
  gap:14px;
}
.wlpw-landing-actions a{
  min-height:112px;
  padding:20px 24px;
  flex-direction:column;
  font-size:1.45rem;
}
.wlpw-small-admin-link{
  margin-top:16px;
  padding:5px 9px;
  font-size:.7rem;
  opacity:.78;
}

/* Version 4.1: Voting reset */
.wlpw-reset-all-votes{
  margin-top:12px;
  padding:8px 11px;
  border:1px solid #c9b9a7;
  border-radius:9px;
  background:#fff;
  color:#5f342d;
  font:inherit;
  font-size:.82rem;
  font-weight:700;
  cursor:pointer;
}
.wlpw-reset-all-votes:disabled{
  opacity:.55;
  cursor:wait;
}
.wlpw-moderation-card .actions{
  flex-wrap:wrap;
}
.wlpw-moderation-card button.reset-votes{
  background:#efe8de;
  color:#5b4938;
}
.wlpw-moderation-card button:disabled{
  opacity:.45;
  cursor:not-allowed;
}


/* Version 4.1.1 — reliable full-image rendering on the Fotowall */
body.wlpw-wall-v2.wlpw-fit-contain .wlpw-stage {
  overflow: hidden !important;
}

body.wlpw-wall-v2.wlpw-fit-contain .wlpw-frame,
body.wlpw-wall-v2.wlpw-fit-contain .wlpw-frame.is-visible {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
  transform: none !important;
  box-sizing: border-box !important;
}

body.wlpw-wall-v2.wlpw-fit-contain .wlpw-frame img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
  filter: none !important;
  box-shadow: none !important;
  border: 0 !important;
  background: transparent !important;
  box-sizing: border-box !important;
}

/* In contain mode, only opacity may animate. */
body.wlpw-wall-v2.wlpw-fit-contain .wlpw-frame {
  transition: opacity 1s ease !important;
}


/* =========================================================
   Wedding Live Photo Wall 4.2 — redesigned landing page
   ========================================================= */
body.wlpw-landing-body {
  margin: 0 !important;
  min-height: 100vh;
  overflow-x: hidden;
  color: #3d2e22;
}

.wlpw-landing-v2 {
  position: relative;
  min-height: 100vh;
  box-sizing: border-box;
  display: grid;
  place-items: center;
  padding: clamp(28px, 5vw, 76px) 20px;
  background-color: var(--wlpw-page-bg, #f7f2ea);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  isolation: isolate;
}

.wlpw-landing-overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--wlpw-page-bg, #f7f2ea) 58%, transparent),
      color-mix(in srgb, var(--wlpw-page-bg, #f7f2ea) 72%, transparent)
    );
}

.wlpw-tone-black .wlpw-landing-overlay {
  background: linear-gradient(rgba(0,0,0,.48), rgba(0,0,0,.68));
}

.wlpw-landing-content {
  width: min(760px, 100%);
  text-align: center;
}

.wlpw-landing-logo {
  display: block;
  max-width: min(190px, 50vw);
  max-height: 110px;
  width: auto;
  height: auto;
  margin: 0 auto 18px;
  object-fit: contain;
}

.wlpw-landing-heading {
  margin-bottom: clamp(24px, 4vw, 38px);
}

.wlpw-landing-heading h1 {
  margin: 0;
  color: #4b3423;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(3.25rem, 9vw, 7.3rem);
  font-weight: 400;
  font-style: italic;
  line-height: .95;
  letter-spacing: -.045em;
  text-shadow: 0 2px 24px rgba(255,255,255,.5);
}

.wlpw-tone-black .wlpw-landing-heading h1,
.wlpw-tone-black .wlpw-landing-meta,
.wlpw-tone-black .wlpw-landing-subtitle {
  color: #fff;
  text-shadow: 0 2px 20px rgba(0,0,0,.45);
}

.wlpw-landing-divider {
  width: min(470px, 82%);
  margin: 18px auto 12px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 15px;
  color: #987e60;
}

.wlpw-landing-divider span {
  height: 1px;
  background: currentColor;
  opacity: .75;
}

.wlpw-landing-divider b {
  font-size: 2rem;
  line-height: 1;
  font-weight: 400;
}

.wlpw-landing-meta {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  color: #4b3423;
  font-size: clamp(1.05rem, 2.2vw, 1.45rem);
}

.wlpw-landing-meta strong {
  font-weight: 600;
}

.wlpw-landing-meta i {
  color: #987e60;
  font-style: normal;
}

.wlpw-landing-subtitle {
  margin: 10px 0 0;
  color: #695746;
  font-size: clamp(.98rem, 1.8vw, 1.18rem);
}

.wlpw-landing-buttons {
  width: min(700px, 100%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.wlpw-landing-button {
  min-height: 124px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 100px 1fr;
  align-items: center;
  gap: 22px;
  padding: 20px 30px;
  border: 1px solid rgba(112, 86, 58, .18);
  border-radius: 20px;
  background: rgba(255, 252, 247, .94);
  color: #3d2e22 !important;
  text-decoration: none !important;
  text-align: left;
  box-shadow:
    0 14px 38px rgba(70, 49, 28, .17),
    inset 0 1px 0 rgba(255,255,255,.85);
  backdrop-filter: blur(12px);
  transition:
    transform .18s ease,
    box-shadow .18s ease,
    background .18s ease;
}

.wlpw-landing-button:hover,
.wlpw-landing-button:focus-visible {
  background: #fffdf9;
  color: #3d2e22 !important;
  transform: translateY(-3px);
  box-shadow:
    0 20px 48px rgba(70, 49, 28, .23),
    inset 0 1px 0 #fff;
}

.wlpw-landing-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  color: #9b8468;
}

.wlpw-landing-icon svg {
  width: 68px;
  height: 68px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-width: 3.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wlpw-landing-button-copy {
  display: grid;
  gap: 7px;
}

.wlpw-landing-button-copy strong {
  color: #3d2e22;
  font-size: clamp(1.2rem, 2.5vw, 1.55rem);
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .01em;
}

.wlpw-landing-button-copy small {
  color: #796655;
  font-size: clamp(.92rem, 1.8vw, 1.08rem);
  line-height: 1.35;
}

.wlpw-landing-admin {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 20px;
  padding: 6px 10px;
  border-radius: 9px;
  background: rgba(255,252,247,.76);
  color: #5d4b3b !important;
  text-decoration: none !important;
  font-size: .76rem;
  box-shadow: 0 5px 16px rgba(62,44,27,.1);
}

.wlpw-tone-black .wlpw-landing-admin {
  background: rgba(0,0,0,.45);
  color: #fff !important;
}

@media (max-width: 620px) {
  .wlpw-landing-v2 {
    align-items: start;
    padding: 30px 14px 36px;
  }

  .wlpw-landing-heading h1 {
    font-size: clamp(2.75rem, 15vw, 4.9rem);
  }

  .wlpw-landing-button {
    min-height: 96px;
    grid-template-columns: 65px 1fr;
    gap: 14px;
    padding: 14px 17px;
    border-radius: 16px;
  }

  .wlpw-landing-icon,
  .wlpw-landing-icon svg {
    width: 55px;
    height: 55px;
  }

  .wlpw-landing-button-copy strong {
    font-size: 1.03rem;
  }

  .wlpw-landing-button-copy small {
    font-size: .82rem;
  }
}

/* Keep full-photo mode reliable after the landing redesign. */
body.wlpw-wall-v4.wlpw-fit-contain .wlpw-frame,
body.wlpw-wall-v4.wlpw-fit-contain .wlpw-frame.is-visible {
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  overflow: hidden !important;
}

body.wlpw-wall-v4.wlpw-fit-contain .wlpw-frame img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: none !important;
}


/* =========================================================
   Wedding Live Photo Wall 4.2.1
   Full image rendering + landing-page background
   ========================================================= */

body.wlpw-wall-v4 {
  margin: 0 !important;
  min-height: 100vh;
  overflow: hidden !important;
  background: var(--wlpw-page-bg, #f7f2ea) !important;
}

body.wlpw-wall-v4 .wlpw-wall-background {
  position: fixed;
  inset: 0;
  overflow: hidden;
  background-color: var(--wlpw-page-bg, #f7f2ea);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  isolation: isolate;
}

body.wlpw-wall-v4 .wlpw-wall-background-overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    linear-gradient(
      180deg,
      color-mix(in srgb, var(--wlpw-page-bg, #f7f2ea) 58%, transparent),
      color-mix(in srgb, var(--wlpw-page-bg, #f7f2ea) 72%, transparent)
    );
}

body.wlpw-wall-v4.wlpw-tone-black .wlpw-wall-background-overlay {
  background: linear-gradient(rgba(0,0,0,.52), rgba(0,0,0,.72));
}

/* Main photo viewport */
body.wlpw-wall-v4 .wlpw-stage {
  position: absolute !important;
  top: var(--wall-margin) !important;
  right: var(--wall-margin) !important;
  bottom: calc(var(--wall-margin) + var(--controls-height)) !important;
  left: var(--wall-margin) !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  border-radius: var(--wall-radius) !important;
  background: rgba(255,255,255,.12) !important;
  backdrop-filter: blur(3px);
}

/* Each slide always occupies exactly the viewport. */
body.wlpw-wall-v4 .wlpw-frame,
body.wlpw-wall-v4 .wlpw-frame.is-visible {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: clamp(4px, .7vw, 12px) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Recommended mode: show every pixel of the uploaded photo. */
body.wlpw-wall-v4.wlpw-fit-contain .wlpw-frame,
body.wlpw-wall-v4.wlpw-fit-contain .wlpw-frame.is-visible {
  transform: none !important;
  transition: opacity 1s ease !important;
}

body.wlpw-wall-v4.wlpw-fit-contain .wlpw-frame img {
  position: static !important;
  display: block !important;
  flex: 0 1 auto !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: auto !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: 0 18px 48px rgba(41,30,20,.24) !important;
  border-radius: var(--wall-radius) !important;
}

/* Fill mode intentionally permits cropping. */
body.wlpw-wall-v4.wlpw-fit-cover .wlpw-frame img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  border-radius: var(--wall-radius) !important;
}

/* Natural mode: intrinsic dimensions, but never larger than the viewport. */
body.wlpw-wall-v4.wlpw-fit-natural .wlpw-frame img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: scale-down !important;
  object-position: center center !important;
}

/* Bottom controls visually match the landing page. */
body.wlpw-wall-v4 .wlpw-wall-controls {
  position: absolute !important;
  left: var(--wall-margin) !important;
  right: var(--wall-margin) !important;
  bottom: var(--wall-margin) !important;
  height: var(--controls-height) !important;
  display: grid !important;
  grid-template-columns: 112px minmax(0, 1fr) 112px !important;
  align-items: center !important;
  gap: 15px !important;
}

body.wlpw-wall-v4 .wlpw-qr-box {
  display: grid;
  place-items: center;
  color: #4b3423;
}

body.wlpw-wall-v4.wlpw-tone-black .wlpw-qr-box {
  color: #fff;
}

body.wlpw-wall-v4 .wlpw-qr-card {
  padding: 7px 7px 5px;
  border: 1px solid rgba(112,86,58,.18);
  border-radius: 12px;
  background: rgba(255,252,247,.92);
  box-shadow: 0 9px 26px rgba(70,49,28,.16);
  text-align: center;
  backdrop-filter: blur(9px);
}

body.wlpw-wall-v4 .wlpw-qr-card img {
  display: block;
  width: 82px;
  height: 82px;
  margin: 0 auto 4px;
  padding: 3px;
  border-radius: 7px;
  background: #fff;
}

body.wlpw-wall-v4 .wlpw-qr-card span {
  display: block;
  color: #4b3423;
  font-size: .7rem;
  font-weight: 700;
}

body.wlpw-wall-v4 .wlpw-thumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 100%;
  min-width: 0;
  overflow: hidden;
}

body.wlpw-wall-v4 .wlpw-thumbs img {
  flex: 0 0 auto;
  width: 84px;
  height: 68px;
  object-fit: cover;
  border: 2px solid rgba(255,255,255,.7);
  border-radius: 9px;
  opacity: .58;
  box-shadow: 0 7px 18px rgba(50,35,20,.13);
}

body.wlpw-wall-v4 .wlpw-thumbs img.is-current {
  opacity: 1;
  border-color: #fff;
  box-shadow: 0 0 0 2px #9b8468, 0 8px 22px rgba(50,35,20,.22);
}

/* Never scale the complete-image mode, even if Zoom was selected earlier. */
body.wlpw-wall-v4.wlpw-fit-contain.wlpw-animation-zoom .wlpw-frame,
body.wlpw-wall-v4.wlpw-fit-contain.wlpw-animation-zoom .wlpw-frame.is-visible {
  transform: none !important;
}

@media (max-width: 760px) {
  body.wlpw-wall-v4 .wlpw-wall-controls {
    grid-template-columns: 82px minmax(0,1fr) 82px !important;
    gap: 7px !important;
  }

  body.wlpw-wall-v4 .wlpw-qr-card {
    padding: 5px 4px 4px;
  }

  body.wlpw-wall-v4 .wlpw-qr-card img {
    width: 64px;
    height: 64px;
  }

  body.wlpw-wall-v4 .wlpw-qr-card span {
    font-size: .58rem;
  }

  body.wlpw-wall-v4 .wlpw-thumbs img {
    width: 66px;
    height: 54px;
  }
}


/* 4.2.2 — QR cards use the selected page background */
body.wlpw-wall-v4 .wlpw-qr-card {
  background: var(--wlpw-page-bg, #f7f2ea) !important;
}

body.wlpw-wall-v4 .wlpw-qr-card img {
  background: var(--wlpw-page-bg, #f7f2ea) !important;
}

body.wlpw-wall-v4.wlpw-tone-black .wlpw-qr-card span {
  color: #ffffff !important;
}


/* Version 4.3 — multiple photo upload */
.wlpw-action-button small {
  display: block;
  margin-top: 3px;
  font-size: .72rem;
  font-weight: 500;
  line-height: 1.25;
  opacity: .78;
}

.wlpw-selection-summary {
  padding: 10px 13px;
  border-radius: 11px;
  background: rgba(176, 141, 87, .11);
  color: inherit;
  font-weight: 750;
  text-align: center;
}

.wlpw-preview-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
  gap: 10px;
  max-height: 390px;
  padding: 2px;
  overflow-y: auto;
}

.wlpw-preview-item {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border-radius: 12px;
  background: rgba(0,0,0,.07);
  aspect-ratio: 1 / 1;
}

.wlpw-preview-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.wlpw-preview-item figcaption {
  position: absolute;
  right: 6px;
  bottom: 6px;
  left: 6px;
  overflow: hidden;
  padding: 4px 7px;
  border-radius: 7px;
  background: rgba(0,0,0,.58);
  color: #fff;
  font-size: .68rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 520px) {
  .wlpw-preview-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* =========================================================
   Version 4.4 — Gallery comments
   ========================================================= */
.wlpw-gallery-grid {
  max-width: 1380px !important;
  margin: 28px auto !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 22px !important;
  columns: initial !important;
}

.wlpw-gallery-card-v2 {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, .85fr);
  overflow: hidden;
  border-radius: 20px;
  background: rgba(255,255,255,.95);
  border: 1px solid rgba(112,86,58,.14);
  box-shadow: 0 14px 42px rgba(55,39,24,.14);
}

.wlpw-gallery-media {
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: rgba(39,31,24,.06);
}

.wlpw-gallery-media > img {
  display: block;
  width: 100%;
  height: min(68vh, 720px);
  min-height: 390px;
  object-fit: contain;
  object-position: center;
  background: rgba(36,29,23,.08);
}

.wlpw-gallery-photo-footer {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  padding: 11px 16px;
  background: rgba(255,252,247,.96);
}

.wlpw-gallery-photo-footer > span {
  overflow: hidden;
  color: #5a493a;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wlpw-vote-button {
  flex: 0 0 auto;
  min-width: 76px;
  padding: 9px 13px;
  border: 0;
  border-radius: 999px;
  background: #f0ebe4;
  color: #6a4f3d;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.wlpw-vote-button.is-voted {
  background: #f8dfe3;
  color: #a51c38;
}

.wlpw-gallery-discussion {
  min-width: 0;
  height: min(68vh + 62px, 782px);
  display: grid;
  grid-template-rows: auto minmax(90px, 1fr) auto;
  gap: 12px;
  padding: 20px;
  background: rgba(255,252,247,.98);
}

.wlpw-gallery-discussion h2 {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin: 0;
  color: #49382b;
  font-family: inherit;
  font-size: 1.15rem;
}

.wlpw-gallery-discussion h2 span {
  min-width: 30px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #eee4d8;
  text-align: center;
  font-size: .82rem;
}

.wlpw-comment-list {
  min-height: 0;
  margin: 0;
  padding: 0 5px 0 0;
  overflow-y: auto;
  list-style: none;
}

.wlpw-comment {
  padding: 10px 0 12px;
  border-bottom: 1px solid rgba(112,86,58,.12);
}

.wlpw-comment:last-child {
  border-bottom: 0;
}

.wlpw-comment-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 4px;
}

.wlpw-comment-head strong {
  overflow: hidden;
  color: #49382b;
  font-size: .88rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wlpw-comment-head time {
  flex: 0 0 auto;
  color: #968575;
  font-size: .68rem;
}

.wlpw-comment p {
  margin: 0;
  color: #66584b;
  font-size: .9rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.wlpw-comments-empty {
  align-self: start;
  margin: 0;
  color: #918274;
  font-size: .87rem;
}

.wlpw-comment-form {
  display: grid;
  gap: 8px;
}

.wlpw-comment-form input,
.wlpw-comment-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 11px;
  border: 1px solid #d8cbbb;
  border-radius: 10px;
  background: #fff;
  color: #352a22;
  font: inherit;
}

.wlpw-comment-form textarea {
  min-height: 76px;
  resize: vertical;
}

.wlpw-comment-form button {
  min-height: 42px;
  border: 0;
  border-radius: 10px;
  background: var(--wlpw-accent, #b08d57);
  color: #fff;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
}

.wlpw-comment-form button:disabled,
.wlpw-vote-button:disabled {
  opacity: .55;
  cursor: wait;
}

/* Orientation-safe wall: no old photo may remain below the new frame. */
body.wlpw-wall-v4 .wlpw-stage {
  background-color: color-mix(
    in srgb,
    var(--wlpw-page-bg, #f7f2ea) 72%,
    transparent
  ) !important;
}

body.wlpw-wall-v4 .wlpw-frame {
  z-index: 1 !important;
}

body.wlpw-wall-v4 .wlpw-frame img {
  backface-visibility: hidden;
}

@media (max-width: 900px) {
  .wlpw-gallery-card-v2 {
    grid-template-columns: 1fr;
  }

  .wlpw-gallery-media > img {
    height: auto;
    min-height: 0;
    max-height: 70vh;
  }

  .wlpw-gallery-discussion {
    height: auto;
    min-height: 360px;
    grid-template-rows: auto minmax(120px, 280px) auto;
  }
}

@media (max-width: 540px) {
  .wlpw-gallery-page {
    padding: 18px 11px !important;
  }

  .wlpw-gallery-card-v2 {
    border-radius: 15px;
  }

  .wlpw-gallery-discussion {
    padding: 15px;
  }
}


/* Version 4.4.1 — configurable comment length */
.wlpw-comment-counter {
  margin-top: -4px;
  color: #948474;
  font-size: .72rem;
  text-align: right;
}

.wlpw-comment-form textarea:invalid {
  box-shadow: none;
}


/* Version 4.5 — optional upload comment */
.wlpw-upload-comment-field {
  display: grid;
  gap: 7px;
}

.wlpw-upload-comment-field textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 92px;
  padding: 11px 14px;
  border: 1px solid #d8cbbb;
  border-radius: 12px;
  background: #fffdfb;
  color: inherit;
  font: inherit;
  line-height: 1.45;
  resize: vertical;
}

.wlpw-upload-comment-counter {
  color: #938272;
  font-size: .74rem;
  text-align: right;
}


/* Version 4.6 — likes for gallery comments */
.wlpw-comment-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 8px;
}

.wlpw-comment-like {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 58px;
  justify-content: center;
  padding: 5px 9px;
  border: 0;
  border-radius: 999px;
  background: #f0ebe4;
  color: #6a4f3d;
  font: inherit;
  font-size: .78rem;
  font-weight: 800;
  cursor: pointer;
}

.wlpw-comment-like.is-liked {
  background: #f8dfe3;
  color: #a51c38;
}

.wlpw-comment-like:disabled {
  opacity: .55;
  cursor: wait;
}


/* Version 4.7 — comments on Fotowall */
body.wlpw-wall-v4 .wlpw-frame.has-comments {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 34%) !important;
  align-items: stretch !important;
  gap: clamp(14px, 2vw, 28px) !important;
}

body.wlpw-wall-v4 .wlpw-frame.has-comments > img {
  min-width: 0 !important;
  min-height: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
}

body.wlpw-wall-v4 .wlpw-wall-comments {
  min-width: 0;
  height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: clamp(14px, 1.6vw, 24px);
  border: 1px solid rgba(112,86,58,.16);
  border-radius: var(--wall-radius);
  background: color-mix(in srgb, var(--wlpw-page-bg, #f7f2ea) 88%, transparent);
  color: #49382b;
  box-shadow: 0 14px 40px rgba(55,39,24,.14);
  backdrop-filter: blur(12px);
}

body.wlpw-wall-v4.wlpw-tone-black .wlpw-wall-comments {
  background: rgba(20,20,20,.82);
  color: #fff;
  border-color: rgba(255,255,255,.14);
}

.wlpw-wall-comments-title {
  margin-bottom: 10px;
  color: inherit;
  font-size: clamp(.9rem, 1.3vw, 1.2rem);
  font-weight: 800;
  text-transform: uppercase;
}

.wlpw-wall-comments-list {
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}

.wlpw-wall-comment {
  padding: 11px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,.64);
}

body.wlpw-wall-v4.wlpw-tone-black .wlpw-wall-comment {
  background: rgba(255,255,255,.09);
}

.wlpw-wall-comment-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 5px;
}

.wlpw-wall-comment-head strong {
  overflow: hidden;
  color: inherit;
  font-size: clamp(.78rem, 1vw, .96rem);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.wlpw-wall-comment-head span {
  flex: 0 0 auto;
  color: #a51c38;
  font-size: clamp(.72rem, .9vw, .9rem);
  font-weight: 800;
}

.wlpw-wall-comment p {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: inherit;
  font-size: clamp(.82rem, 1.08vw, 1rem);
  line-height: 1.4;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}

@media (max-width: 900px) {
  body.wlpw-wall-v4 .wlpw-frame.has-comments {
    grid-template-columns: 1fr !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
  }

  body.wlpw-wall-v4 .wlpw-wall-comments {
    height: auto;
    max-height: 34%;
    padding: 10px 12px;
  }

  .wlpw-wall-comments-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* =========================================================
   Version 4.7.1 — compact comments in gallery
   ========================================================= */

.wlpw-gallery-card-v2 {
  grid-template-columns: minmax(0, 1.8fr) minmax(250px, .62fr) !important;
}

.wlpw-gallery-discussion {
  height: min(58vh + 56px, 650px) !important;
  min-height: 0 !important;
  gap: 8px !important;
  padding: 14px !important;
}

.wlpw-gallery-discussion h2 {
  font-size: 1rem !important;
}

.wlpw-gallery-discussion h2 span {
  min-width: 25px !important;
  padding: 3px 7px !important;
  font-size: .72rem !important;
}

.wlpw-comment-list {
  padding-right: 2px !important;
}

.wlpw-comment {
  padding: 7px 0 8px !important;
}

.wlpw-comment-head {
  margin-bottom: 2px !important;
}

.wlpw-comment-head strong {
  font-size: .79rem !important;
}

.wlpw-comment-head time {
  font-size: .62rem !important;
}

.wlpw-comment p {
  font-size: .82rem !important;
  line-height: 1.32 !important;
}

.wlpw-comment-actions {
  margin-top: 5px !important;
}

.wlpw-comment-like {
  min-width: 50px !important;
  padding: 4px 8px !important;
  font-size: .72rem !important;
}

.wlpw-comments-empty {
  font-size: .8rem !important;
}

.wlpw-comment-form {
  gap: 6px !important;
}

.wlpw-comment-form input,
.wlpw-comment-form textarea {
  padding: 7px 9px !important;
  border-radius: 8px !important;
  font-size: .82rem !important;
}

.wlpw-comment-form textarea {
  min-height: 58px !important;
  max-height: 110px !important;
}

.wlpw-comment-form button {
  min-height: 36px !important;
  border-radius: 8px !important;
  font-size: .82rem !important;
}

.wlpw-comment-counter {
  font-size: .65rem !important;
}

@media (max-width: 900px) {
  .wlpw-gallery-card-v2 {
    grid-template-columns: 1fr !important;
  }

  .wlpw-gallery-discussion {
    min-height: 280px !important;
    height: auto !important;
    padding: 12px !important;
  }
}

/* Version 4.8 */
.wlpw-gallery-grid{width:min(1500px,calc(100% - 28px))!important;max-width:1500px!important;margin:24px auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;align-items:start!important;gap:18px!important}
.wlpw-gallery-card-v2{min-width:0!important;grid-template-columns:minmax(0,1.55fr) minmax(190px,.65fr)!important;border-radius:16px!important}
.wlpw-gallery-media>img{width:100%!important;height:370px!important;min-height:0!important;max-height:370px!important;object-fit:contain!important}
.wlpw-gallery-photo-footer{min-height:50px!important;padding:8px 11px!important}
.wlpw-gallery-discussion{height:420px!important;min-height:0!important;padding:11px!important;gap:6px!important;grid-template-rows:auto minmax(60px,1fr) auto!important}
.wlpw-gallery-discussion h2{font-size:.9rem!important}
.wlpw-comment{padding:5px 0 6px!important}
.wlpw-comment p{font-size:.76rem!important;line-height:1.28!important}
.wlpw-comment-head strong{font-size:.73rem!important}
.wlpw-comment-head time{font-size:.56rem!important}
.wlpw-comment-like{min-width:44px!important;padding:3px 7px!important;font-size:.66rem!important}
.wlpw-comment-form{grid-template-columns:1fr auto!important;gap:6px!important;align-items:end!important}
.wlpw-comment-form input[name="author"]{grid-column:1/-1!important}
.wlpw-comment-form input[name="content"]{min-width:0!important;min-height:36px!important;height:36px!important;padding:7px 9px!important}
.wlpw-comment-counter{grid-column:1/2!important;margin-top:-2px!important;font-size:.6rem!important;text-align:right!important}
.wlpw-comment-form button{grid-column:2/3!important;grid-row:2/4!important;min-height:36px!important;height:36px!important;padding:0 10px!important;font-size:.75rem!important}
body.wlpw-wall-v4 .wlpw-frame.has-comments{grid-template-columns:minmax(0,1fr) minmax(210px,24%)!important;gap:clamp(10px,1.3vw,18px)!important}
body.wlpw-wall-v4 .wlpw-wall-comments{padding:clamp(10px,1vw,16px)!important}
.wlpw-wall-comments-title{font-size:clamp(.78rem,1vw,.95rem)!important}
.wlpw-wall-comment{padding:8px 9px!important}
.wlpw-wall-comment p{font-size:clamp(.72rem,.9vw,.87rem)!important;line-height:1.3!important;-webkit-line-clamp:4!important}
.wlpw-landing-admin{margin-top:14px!important;padding:5px 8px!important;font-size:.68rem!important;opacity:.78}
@media(max-width:1120px){.wlpw-gallery-grid{grid-template-columns:1fr!important;width:min(880px,calc(100% - 22px))!important}.wlpw-gallery-card-v2{grid-template-columns:minmax(0,1.7fr) minmax(230px,.7fr)!important}}
@media(max-width:720px){.wlpw-gallery-card-v2{grid-template-columns:1fr!important}.wlpw-gallery-media>img{height:auto!important;max-height:62vh!important}.wlpw-gallery-discussion{height:auto!important;min-height:250px!important}}


/* =========================================================
   Version 5.0 — gallery selection and protected downloads
   ========================================================= */
.wlpw-gallery-download-bar {
  position: sticky;
  top: 10px;
  z-index: 50;
  width: min(1180px, calc(100% - 28px));
  box-sizing: border-box;
  margin: 14px auto 18px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid rgba(112,86,58,.16);
  border-radius: 14px;
  background: rgba(255,252,247,.94);
  box-shadow: 0 10px 32px rgba(55,39,24,.13);
  backdrop-filter: blur(12px);
}

.wlpw-gallery-selection-count {
  color: #594637;
  font-size: .85rem;
  font-weight: 800;
}

.wlpw-gallery-download-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.wlpw-gallery-download-actions button {
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid #d7c9b8;
  border-radius: 9px;
  background: #fff;
  color: #4d3b2d;
  font: inherit;
  font-size: .78rem;
  font-weight: 750;
  cursor: pointer;
}

.wlpw-gallery-download-actions .wlpw-download-selected {
  border-color: transparent;
  background: var(--wlpw-accent, #b08d57);
  color: #fff;
}

.wlpw-gallery-download-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.wlpw-gallery-card-v2 {
  position: relative;
}

.wlpw-gallery-card-v2.is-selected {
  box-shadow:
    0 0 0 4px var(--wlpw-accent, #b08d57),
    0 16px 44px rgba(55,39,24,.2) !important;
}

.wlpw-photo-select-label {
  position: absolute;
  z-index: 12;
  top: 10px;
  left: 10px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.wlpw-photo-select {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.wlpw-photo-select-label span {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  box-sizing: border-box;
  border: 2px solid rgba(72,52,36,.48);
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: transparent;
  font-size: 1rem;
  font-weight: 900;
  box-shadow: 0 5px 15px rgba(40,28,17,.16);
}

.wlpw-photo-select:checked + span {
  border-color: var(--wlpw-accent, #b08d57);
  background: var(--wlpw-accent, #b08d57);
  color: #fff;
}

@media (max-width: 700px) {
  .wlpw-gallery-download-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .wlpw-gallery-download-actions {
    justify-content: stretch;
  }

  .wlpw-gallery-download-actions button {
    flex: 1 1 auto;
  }
}


/* Version 5.2 — gallery sorting */
.wlpw-gallery-toolbar-left {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
}

.wlpw-gallery-sort {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #6a5747;
  font-size: .76rem;
  font-weight: 700;
}

.wlpw-gallery-sort-select {
  min-height: 38px;
  padding: 6px 31px 6px 10px;
  border: 1px solid #d7c9b8;
  border-radius: 9px;
  background: #fff;
  color: #4d3b2d;
  font: inherit;
  cursor: pointer;
}

@media (max-width: 820px) {
  .wlpw-gallery-toolbar-left {
    align-items: stretch;
    flex-direction: column;
    gap: 8px;
  }

  .wlpw-gallery-sort {
    justify-content: space-between;
  }

  .wlpw-gallery-sort-select {
    flex: 1 1 auto;
  }
}


/* =========================================================
   Version 5.2.1 — comments below gallery photos
   ========================================================= */

/* Each gallery card is now stacked:
   photo first, compact comment area below. */
.wlpw-gallery-card-v2 {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  align-items: start !important;
}

.wlpw-gallery-media {
  grid-column: 1 !important;
  grid-row: 1 !important;
  min-width: 0 !important;
  width: 100% !important;
}

.wlpw-gallery-discussion {
  grid-column: 1 !important;
  grid-row: 2 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 150px !important;
  max-height: none !important;
  box-sizing: border-box !important;
  padding: 10px 12px 12px !important;
  border-top: 1px solid rgba(112, 86, 58, .12) !important;
}

/* Keep existing comments compact and allow a small scrolling list
   when several comments exist. */
.wlpw-comment-list {
  min-height: 38px !important;
  max-height: 150px !important;
  overflow-y: auto !important;
}

.wlpw-gallery-discussion h2 {
  margin-bottom: 2px !important;
}

/* Compact form below the comments. */
.wlpw-comment-form {
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 6px !important;
}

.wlpw-comment-form input[name="author"] {
  grid-column: 1 / -1 !important;
}

.wlpw-comment-form input[name="content"] {
  grid-column: 1 !important;
  grid-row: 2 !important;
}

.wlpw-comment-counter {
  grid-column: 1 !important;
  grid-row: 3 !important;
}

.wlpw-comment-form button {
  grid-column: 2 !important;
  grid-row: 2 / 4 !important;
}

/* The image gets more visual room because the discussion no longer
   occupies a permanent right-hand column. */
.wlpw-gallery-media > img {
  height: 430px !important;
  max-height: 430px !important;
}

@media (max-width: 1120px) {
  .wlpw-gallery-card-v2 {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

@media (max-width: 720px) {
  .wlpw-gallery-media > img {
    height: auto !important;
    max-height: 62vh !important;
  }

  .wlpw-gallery-discussion {
    min-height: 140px !important;
  }

  .wlpw-comment-list {
    max-height: 180px !important;
  }
}


/* =========================================================
   Version 5.2.2 — aligned comment form and QR background fix
   ========================================================= */

/* Compact form with a growing textarea and aligned button. */
.wlpw-comment-form {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas:
    "author author"
    "comment button"
    "counter button" !important;
  align-items: start !important;
  gap: 6px !important;
}

.wlpw-comment-form input[name="author"] {
  grid-area: author !important;
}

.wlpw-comment-form textarea[name="content"] {
  grid-area: comment !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 38px;
  min-height: 38px !important;
  max-height: 120px !important;
  box-sizing: border-box !important;
  padding: 8px 10px !important;
  border: 1px solid #d8cbbb !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: #352a22 !important;
  font: inherit !important;
  font-size: .82rem !important;
  line-height: 1.35 !important;
  resize: none !important;
  overflow-y: hidden;
}

.wlpw-comment-counter {
  grid-area: counter !important;
  align-self: start !important;
  margin: -2px 2px 0 0 !important;
  font-size: .62rem !important;
  text-align: right !important;
}

.wlpw-comment-form button {
  grid-area: button !important;
  align-self: start !important;
  min-height: 38px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 12px !important;
  white-space: nowrap;
}

/* QR card and QR bitmap use the exact selected page color. */
body.wlpw-wall-v4 .wlpw-qr-card,
body.wlpw-wall-v4 .wlpw-qr-card img {
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;
}

body.wlpw-wall-v4 .wlpw-qr-card img {
  padding: 0 !important;
  border-radius: 5px !important;
}


/* =========================================================
   Version 5.2.3 — one background setting and exact QR color
   ========================================================= */

/* There is only one visual background source now: Seitenhintergrund. */
body.wlpw-wall-v4,
body.wlpw-wall-v4 .wlpw-wall,
body.wlpw-wall-v4 .wlpw-wall-background,
body.wlpw-wall-v4 .wlpw-stage,
body.wlpw-wall-v4 .wlpw-wall-controls {
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;
}

/* QR area uses the exact same computed page background value. */
body.wlpw-wall-v4 .wlpw-qr-box,
body.wlpw-wall-v4 .wlpw-qr-card,
body.wlpw-wall-v4 .wlpw-qr-card img {
  background: var(--wlpw-qr-bg, var(--wlpw-page-bg, #f7f2ea)) !important;
  background-color: var(--wlpw-qr-bg, var(--wlpw-page-bg, #f7f2ea)) !important;
}

body.wlpw-wall-v4 .wlpw-qr-card {
  box-shadow: none !important;
}

body.wlpw-wall-v4 .wlpw-qr-card img {
  display: block !important;
  mix-blend-mode: multiply;
}

/* On a dark page keep the bright QR foreground/background contrast intact. */
body.wlpw-wall-v4.wlpw-tone-black .wlpw-qr-card img {
  mix-blend-mode: normal;
}


/* =========================================================
   Version 5.2.4 — restored Fotowall design, borderless QR codes
   ========================================================= */
body.wlpw-wall-v4 {
  background: var(--wlpw-page-bg, #f7f2ea) !important;
}

body.wlpw-wall-v4 .wlpw-wall,
body.wlpw-wall-v4 .wlpw-wall-background {
  background-color: transparent !important;
}

body.wlpw-wall-v4 .wlpw-stage {
  background: rgba(255,255,255,.12) !important;
  backdrop-filter: blur(3px);
}

body.wlpw-wall-v4 .wlpw-wall-controls {
  background: transparent !important;
}

body.wlpw-wall-v4 .wlpw-qr-box,
body.wlpw-wall-v4 .wlpw-qr-card {
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  backdrop-filter: none !important;
}

body.wlpw-wall-v4 .wlpw-qr-card {
  padding: 0 !important;
}

body.wlpw-wall-v4 .wlpw-qr-card img {
  display: block !important;
  width: 82px !important;
  height: 82px !important;
  margin: 0 auto 5px !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background-color: var(--wlpw-qr-bg, var(--wlpw-page-bg, #f7f2ea)) !important;
  mix-blend-mode: normal !important;
}

body.wlpw-wall-v4 .wlpw-qr-card span,
body.wlpw-wall-v4.wlpw-tone-black .wlpw-qr-card span {
  color: #555555 !important;
  font-size: .7rem !important;
  font-weight: 700 !important;
  text-shadow: none !important;
}

body.wlpw-wall-v4 .wlpw-thumbs {
  background: transparent !important;
  backdrop-filter: none !important;
}

@media (max-width:760px) {
  body.wlpw-wall-v4 .wlpw-qr-card img {
    width: 64px !important;
    height: 64px !important;
  }
  body.wlpw-wall-v4 .wlpw-qr-card span {
    font-size: .58rem !important;
  }
}


/* =========================================================
   Version 5.2.5 — clickable queue strip and rounded QR corners
   ========================================================= */

/* The filmstrip represents the upcoming queue. */
body.wlpw-wall-v4 .wlpw-thumbs {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none;
}

body.wlpw-wall-v4 .wlpw-thumbs::-webkit-scrollbar {
  display: none;
}

body.wlpw-wall-v4 .wlpw-thumb-button {
  flex: 0 0 auto;
  width: 84px;
  height: 68px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 2px solid rgba(255,255,255,.7);
  border-radius: 9px;
  background: transparent;
  box-shadow: 0 7px 18px rgba(50,35,20,.13);
  cursor: pointer;
  opacity: .68;
  transition:
    opacity .16s ease,
    transform .16s ease,
    box-shadow .16s ease;
}

body.wlpw-wall-v4 .wlpw-thumb-button:hover,
body.wlpw-wall-v4 .wlpw-thumb-button:focus-visible {
  opacity: 1;
  transform: translateY(-2px);
  outline: none;
  box-shadow:
    0 0 0 2px #9b8468,
    0 9px 22px rgba(50,35,20,.22);
}

body.wlpw-wall-v4 .wlpw-thumb-button img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 7px !important;
  object-fit: cover !important;
  opacity: 1 !important;
  box-shadow: none !important;
  pointer-events: none;
}

/* Only the QR bitmap receives rounded corners; there is still no container frame. */
body.wlpw-wall-v4 .wlpw-qr-card img {
  border-radius: 8px !important;
}

@media (max-width: 760px) {
  body.wlpw-wall-v4 .wlpw-thumb-button {
    width: 66px;
    height: 54px;
  }

  body.wlpw-wall-v4 .wlpw-qr-card img {
    border-radius: 7px !important;
  }
}


/* =========================================================
   Version 5.3 — individual photo download and save actions
   ========================================================= */
.wlpw-gallery-photo-footer {
  flex-wrap: wrap;
}

.wlpw-photo-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}

.wlpw-photo-download,
.wlpw-photo-save {
  min-height: 34px;
  padding: 6px 9px;
  border: 1px solid #d7c9b8;
  border-radius: 9px;
  background: #fff;
  color: #514033;
  font: inherit;
  font-size: .72rem;
  font-weight: 750;
  cursor: pointer;
}

.wlpw-photo-save {
  border-color: transparent;
  background: var(--wlpw-accent, #b08d57);
  color: #fff;
}

.wlpw-photo-download:hover,
.wlpw-photo-save:hover,
.wlpw-photo-download:focus-visible,
.wlpw-photo-save:focus-visible {
  transform: translateY(-1px);
}

.wlpw-photo-download:disabled,
.wlpw-photo-save:disabled {
  opacity: .55;
  cursor: wait;
  transform: none;
}

@media (max-width: 560px) {
  .wlpw-gallery-photo-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .wlpw-photo-actions {
    justify-content: stretch;
  }

  .wlpw-photo-download,
  .wlpw-photo-save {
    flex: 1 1 auto;
  }

  .wlpw-vote-button {
    flex: 0 0 auto;
  }
}


/* =========================================================
   Version 5.3.1 — one unified photo save action
   ========================================================= */
.wlpw-photo-actions .wlpw-photo-save {
  min-width: 112px;
}

@media (max-width: 560px) {
  .wlpw-photo-actions .wlpw-photo-save {
    flex: 1 1 auto;
  }
}


/* =========================================================
   Version 5.3.2 — borderless filmstrip thumbnails
   ========================================================= */
body.wlpw-wall-v4 .wlpw-thumb-button,
body.wlpw-wall-v4 .wlpw-thumb-button:hover,
body.wlpw-wall-v4 .wlpw-thumb-button:focus,
body.wlpw-wall-v4 .wlpw-thumb-button:focus-visible {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

body.wlpw-wall-v4 .wlpw-thumb-button img {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}


/* =========================================================
   Version 5.3.3 — subtle filmstrip navigation arrows
   ========================================================= */
body.wlpw-wall-v4 .wlpw-filmstrip-nav {
  min-width: 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 28px;
  align-items: center;
  gap: 5px;
}

body.wlpw-wall-v4 .wlpw-filmstrip-nav .wlpw-thumbs {
  min-width: 0;
  width: 100%;
}

body.wlpw-wall-v4 .wlpw-filmstrip-arrow,
body.wlpw-wall-v4 .wlpw-filmstrip-arrow:hover,
body.wlpw-wall-v4 .wlpw-filmstrip-arrow:focus,
body.wlpw-wall-v4 .wlpw-filmstrip-arrow:focus-visible {
  width: 28px;
  height: 42px;
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0;
  background: transparent !important;
  box-shadow: none !important;
  color: #777 !important;
  font: inherit;
  font-size: 1.45rem;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  opacity: .58;
  transition: opacity .16s ease, transform .16s ease;
}

body.wlpw-wall-v4 .wlpw-filmstrip-arrow:hover,
body.wlpw-wall-v4 .wlpw-filmstrip-arrow:focus-visible {
  opacity: .9;
}

body.wlpw-wall-v4 .wlpw-filmstrip-prev:hover,
body.wlpw-wall-v4 .wlpw-filmstrip-prev:focus-visible {
  transform: translateX(-1px);
}

body.wlpw-wall-v4 .wlpw-filmstrip-next:hover,
body.wlpw-wall-v4 .wlpw-filmstrip-next:focus-visible {
  transform: translateX(1px);
}

@media (max-width: 760px) {
  body.wlpw-wall-v4 .wlpw-filmstrip-nav {
    grid-template-columns: 22px minmax(0, 1fr) 22px;
    gap: 3px;
  }

  body.wlpw-wall-v4 .wlpw-filmstrip-arrow {
    width: 22px;
    font-size: 1.2rem;
  }
}

/* Version 5.4 — minimalist Events homepage */
body.wlpw-events-home{
  margin:0!important;
  min-height:100vh;
  background:#f7f2ea;
  color:#3f3329
}
.wlpw-events-page{
  min-height:100vh;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  padding:24px
}
.wlpw-events-card{
  width:min(420px,100%);
  text-align:center
}
.wlpw-events-card h1{
  margin:0 0 28px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(3rem,10vw,5.5rem);
  font-weight:400;
  line-height:1;
  letter-spacing:-.035em
}
.wlpw-events-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:190px;
  min-height:50px;
  padding:10px 24px;
  border:1px solid rgba(91,72,54,.16);
  border-radius:999px;
  background:#fffdf9;
  color:#4b3a2d!important;
  text-decoration:none!important;
  font-size:1rem;
  font-weight:700;
  box-shadow:0 10px 28px rgba(68,49,31,.12);
  transition:transform .18s ease,box-shadow .18s ease
}
.wlpw-events-button:hover,
.wlpw-events-button:focus-visible{
  transform:translateY(-2px);
  box-shadow:0 14px 34px rgba(68,49,31,.18)
}


/* =========================================================
   Version 5.4.1 — reliable filmstrip navigation and home hotspot
   ========================================================= */

/* Force a real single-row horizontal strip so the arrows can scroll it. */
body.wlpw-wall-v4 .wlpw-filmstrip-nav .wlpw-thumbs {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-behavior: smooth;
  overscroll-behavior-x: contain;
}

/* Cleaner chevron icons. */
body.wlpw-wall-v4 .wlpw-filmstrip-arrow {
  position: relative;
  z-index: 3;
  color: #747474 !important;
  opacity: .52;
  touch-action: manipulation;
}

body.wlpw-wall-v4 .wlpw-filmstrip-arrow svg {
  width: 22px;
  height: 22px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

body.wlpw-wall-v4 .wlpw-filmstrip-arrow:hover,
body.wlpw-wall-v4 .wlpw-filmstrip-arrow:focus-visible {
  opacity: .92;
}

body.wlpw-wall-v4 .wlpw-filmstrip-arrow:disabled {
  opacity: .14 !important;
  cursor: default;
  transform: none !important;
}

/* Almost invisible home hotspot in the top-left corner.
   The icon becomes visible only on hover/focus. */
body.wlpw-wall-v4 .wlpw-wall-home-link {
  position: fixed;
  z-index: 1000;
  top: 10px;
  left: 10px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0);
  color: #5f5f5f !important;
  opacity: .035;
  text-decoration: none !important;
  transition:
    opacity .18s ease,
    background-color .18s ease,
    transform .18s ease;
}

body.wlpw-wall-v4 .wlpw-wall-home-link svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

body.wlpw-wall-v4 .wlpw-wall-home-link:hover,
body.wlpw-wall-v4 .wlpw-wall-home-link:focus-visible {
  opacity: .72;
  background: rgba(255,255,255,.58);
  outline: none;
  transform: translateY(-1px);
}

@media (hover: none) {
  body.wlpw-wall-v4 .wlpw-wall-home-link {
    opacity: .10;
  }
}


/* =========================================================
   Version 5.4.2 — rotated queue and visible current thumbnail
   ========================================================= */

/* The currently displayed image is the first item in the filmstrip. */
body.wlpw-wall-v4 .wlpw-thumb-button.is-current {
  opacity: 1 !important;
  cursor: default;
  transform: none !important;
}

/* No frame is added; a very subtle brightness difference marks the current item. */
body.wlpw-wall-v4 .wlpw-thumb-button.is-current img {
  filter: brightness(1.06);
}

body.wlpw-wall-v4 .wlpw-thumb-button.is-current:hover,
body.wlpw-wall-v4 .wlpw-thumb-button.is-current:focus-visible {
  transform: none !important;
  box-shadow: none !important;
}


/* =========================================================
   Version 5.4.3 — gallery sort label on one line
   ========================================================= */
.wlpw-gallery-toolbar .wlpw-sort-label,
.wlpw-gallery-toolbar label[for="wlpw-gallery-sort"] {
  white-space: nowrap !important;
  width: auto !important;
  min-width: max-content !important;
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
}

.wlpw-gallery-toolbar .wlpw-sort-control,
.wlpw-gallery-toolbar .wlpw-gallery-sort-wrap {
  display: inline-flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
}


/* =========================================================
   Version 5.4.4 — uploader caption always above comments
   ========================================================= */
body.wlpw-wall-v4 .wlpw-frame {
  isolation: isolate;
}

body.wlpw-wall-v4 .wlpw-frame figcaption {
  position: absolute !important;
  z-index: 50 !important;
  isolation: isolate;
}

body.wlpw-wall-v4 .wlpw-wall-comments {
  z-index: 20 !important;
}

/* Keep the uploader tag visibly on top where it meets the comment panel. */
body.wlpw-wall-v4 .wlpw-frame.has-comments figcaption {
  z-index: 60 !important;
  pointer-events: none;
}

/* Version 5.5 */
.wlpw-comment-delete{padding:4px 8px;border:0;border-radius:999px;background:#f3e3e3;color:#8d2c2c;font:inherit;font-size:.7rem;font-weight:750;cursor:pointer}
.wlpw-admin-comments{margin-top:32px;padding-top:24px;border-top:1px solid rgba(112,86,58,.18)}
.wlpw-admin-comments-header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}
#wlpw-delete-all-comments{padding:8px 11px;border:1px solid #d2a7a7;border-radius:9px;background:#fff;color:#8b2828;font:inherit;font-size:.8rem;font-weight:750;cursor:pointer}
.wlpw-admin-comments-list{display:grid;gap:10px}
.wlpw-admin-comment{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:12px 14px;border:1px solid rgba(112,86,58,.14);border-radius:12px;background:#fff}
.wlpw-admin-comment-head{display:flex;flex-wrap:wrap;gap:8px 12px;margin-bottom:5px}
.wlpw-admin-comment-head span{color:#887768;font-size:.72rem}
.wlpw-admin-comment p{margin:0;color:#514237}
@media(max-width:700px){.wlpw-admin-comments-header,.wlpw-admin-comment{align-items:stretch;flex-direction:column}}

/* Version 5.5.2 */
body.wlpw-wall-v4 .wlpw-qr-card,
body.wlpw-wall-v4 .wlpw-qr-box {
  background: transparent !important;
}
body.wlpw-wall-v4 .wlpw-qr-card img {
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  opacity: 1 !important;
}


/* =========================================================
   Version 5.5.3 — QR background visually matches page color
   ========================================================= */

/*
 * The external QR service may return a white bitmap even when a custom
 * background color is requested. We therefore blend a predictable
 * black-on-white QR image into the selected page background.
 */
body.wlpw-wall-v4 .wlpw-qr-card,
body.wlpw-wall-v4 .wlpw-qr-box {
  background: transparent !important;
}

body.wlpw-wall-v4 .wlpw-qr-card img {
  display: block !important;
  background: transparent !important;
  opacity: 1 !important;
}

/* Light page: white pixels disappear into the page, dark modules remain. */
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-card img {
  filter: none !important;
  mix-blend-mode: multiply !important;
}

/*
 * Dark page: invert the bitmap first. Screen blending then hides the
 * black background pixels and keeps the QR modules white.
 */
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-card img {
  filter: invert(1) !important;
  mix-blend-mode: screen !important;
}

/* Keep labels readable on both light and dark page backgrounds. */
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-card span {
  color: #d8d8d8 !important;
}

body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-card span {
  color: #555555 !important;
}


/* =========================================================
   Version 5.5.4 — selectable QR center mark
   ========================================================= */
body.wlpw-wall-v4 .wlpw-qr-visual {
  position: relative;
  display: block;
  line-height: 0;
  border-radius: 8px;
  overflow: hidden;
}

body.wlpw-wall-v4 .wlpw-qr-visual > img {
  display: block !important;
  width: 100%;
  height: auto;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 22%;
  aspect-ratio: 1;
  transform: translate(-50%, -50%);
  border-radius: 7px;
  background: var(--wlpw-page-bg, #f7f2ea) !important;
  color: #555555 !important;
  font-family: inherit;
  font-size: clamp(9px, .72vw, 14px);
  font-weight: 850;
  line-height: 1;
  letter-spacing: -.04em;
  pointer-events: none;
}

body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark {
  color: #ffffff !important;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark-heart svg {
  width: 62%;
  height: 62%;
  fill: currentColor;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
  white-space: nowrap;
}


/* =========================================================
   Version 5.5.5 — configurable QR center text
   ========================================================= */
body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
  padding: 0 2px;
  box-sizing: border-box;
  font-size: clamp(8px, .7vw, 13px);
  letter-spacing: -.05em;
  text-align: center;
}


/* =========================================================
   Version 5.5.6 — QR center mark fit and exact page background
   ========================================================= */

/* Give the center mark a little more room without covering too much QR data. */
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  width: 25% !important;
  min-width: 22px;
  max-width: 34px;
  aspect-ratio: 1 / 1;
  padding: 2px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  border-radius: 6px !important;

  /* Use exactly the same background as the selected page background. */
  background: var(--wlpw-page-bg, #f7f2ea) !important;
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;

  line-height: 1 !important;
}

/* Heart icon must stay fully inside the center area. */
body.wlpw-wall-v4 .wlpw-qr-center-mark-heart svg {
  display: block;
  width: 68% !important;
  height: 68% !important;
  max-width: 20px;
  max-height: 20px;
  overflow: visible !important;
  fill: currentColor !important;
}

/* Text is scaled to fit up to three characters without clipping. */
body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1px 2px !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: clamp(7px, .62vw, 11px) !important;
  font-weight: 850 !important;
  letter-spacing: -.08em !important;
  line-height: 1 !important;
}

/* Keep contrast readable while preserving the page background. */
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark {
  color: #ffffff !important;
}

body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark {
  color: #555555 !important;
}

@media (max-width: 760px) {
  body.wlpw-wall-v4 .wlpw-qr-center-mark {
    min-width: 18px;
    max-width: 27px;
    border-radius: 5px !important;
  }

  body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
    font-size: clamp(6px, 1.7vw, 9px) !important;
  }
}


/* =========================================================
   Version 5.5.7 — subtle flyer and QR downloads
   ========================================================= */
.wlpw-landing-utility-links{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:6px 12px;
  margin-top:14px;
}
.wlpw-landing-utility-links .wlpw-landing-admin{
  margin-top:0 !important;
}
.wlpw-print-downloads{
  position:relative;
  font-size:.7rem;
  opacity:.78;
}
.wlpw-print-downloads summary{
  padding:5px 9px;
  border-radius:9px;
  color:inherit;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.wlpw-print-downloads summary::-webkit-details-marker{display:none}
.wlpw-print-downloads summary::before{content:"↓ ";opacity:.7}
.wlpw-print-downloads[open] summary{background:rgba(255,255,255,.35)}
.wlpw-print-download-menu{
  position:absolute;
  left:50%;
  bottom:calc(100% + 7px);
  z-index:20;
  display:grid;
  min-width:150px;
  padding:6px;
  transform:translateX(-50%);
  border-radius:10px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 30px rgba(45,35,25,.14);
}
.wlpw-print-download-menu a{
  padding:7px 9px;
  border-radius:7px;
  color:#555!important;
  text-decoration:none;
  white-space:nowrap;
}
.wlpw-print-download-menu a:hover{background:#f3eee7}


/* =========================================================
   Version 5.5.9 — exact QR surface, larger code and larger mark
   ========================================================= */

/* Reserve more room for the larger QR codes in the Fotowall controls. */
body.wlpw-wall-v4 .wlpw-wall-controls {
  grid-template-columns: 128px minmax(0, 1fr) 128px !important;
}

/*
 * This solid square is essential: it gives the QR bitmap the exact
 * selected page background even when a background photo is visible behind it.
 */
body.wlpw-wall-v4 .wlpw-qr-visual {
  width: 108px !important;
  height: 108px !important;
  margin: 0 auto 5px !important;
  overflow: hidden !important;
  border-radius: 10px !important;
  background: var(--wlpw-page-bg, #f7f2ea) !important;
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;
  isolation: isolate;
}

body.wlpw-wall-v4 .wlpw-qr-visual > img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: inherit !important;
  background: transparent !important;
}

/* White pixels disappear into the solid page-color square. */
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-visual > img {
  filter: none !important;
  mix-blend-mode: multiply !important;
}

/* On dark page colors the QR modules become white. */
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-visual > img {
  filter: invert(1) !important;
  mix-blend-mode: screen !important;
}

/* Make heart/text clearly visible and large enough. */
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  width: 34% !important;
  min-width: 0 !important;
  max-width: none !important;
  padding: 3px !important;
  overflow: hidden !important;
  border-radius: 8px !important;
  background: var(--wlpw-page-bg, #f7f2ea) !important;
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark-heart svg {
  width: 72% !important;
  height: 72% !important;
  max-width: none !important;
  max-height: none !important;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
  padding: 2px !important;
  font-size: 13px !important;
  letter-spacing: -.06em !important;
}

/* The QR card itself remains transparent and borderless. */
body.wlpw-wall-v4 .wlpw-qr-card,
body.wlpw-wall-v4 .wlpw-qr-box {
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 760px) {
  body.wlpw-wall-v4 .wlpw-wall-controls {
    grid-template-columns: 96px minmax(0, 1fr) 96px !important;
  }

  body.wlpw-wall-v4 .wlpw-qr-visual {
    width: 82px !important;
    height: 82px !important;
    border-radius: 8px !important;
  }

  body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
    font-size: 10px !important;
  }
}


/* =========================================================
   Version 5.5.10 — original QR size, larger center mark only
   ========================================================= */

/* Restore the previous Fotowall QR dimensions. */
body.wlpw-wall-v4 .wlpw-wall-controls {
  grid-template-columns: 110px minmax(0, 1fr) 110px !important;
}

body.wlpw-wall-v4 .wlpw-qr-visual {
  width: 82px !important;
  height: 82px !important;
  margin: 0 auto 5px !important;
  border-radius: 8px !important;
}

/* Only the center field remains larger and easier to read. */
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  width: 38% !important;
  min-width: 0 !important;
  max-width: none !important;
  padding: 3px !important;
  border-radius: 7px !important;
  background: var(--wlpw-page-bg, #f7f2ea) !important;
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark-heart svg {
  width: 74% !important;
  height: 74% !important;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
  font-size: 11px !important;
  line-height: 1 !important;
  letter-spacing: -.06em !important;
}

@media (max-width: 760px) {
  body.wlpw-wall-v4 .wlpw-wall-controls {
    grid-template-columns: 82px minmax(0, 1fr) 82px !important;
  }

  body.wlpw-wall-v4 .wlpw-qr-visual {
    width: 64px !important;
    height: 64px !important;
    border-radius: 7px !important;
  }

  body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
    font-size: 8px !important;
  }
}


/* =========================================================
   Version 5.5.11 — transparent QR background on Fotowall
   ========================================================= */

/*
 * The QR container itself is transparent again. The white pixels of the
 * source QR bitmap are visually removed by the existing blend mode.
 */
body.wlpw-wall-v4 .wlpw-qr-visual,
body.wlpw-wall-v4 .wlpw-qr-card,
body.wlpw-wall-v4 .wlpw-qr-box {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Keep the QR bitmap free of its own CSS background. */
body.wlpw-wall-v4 .wlpw-qr-visual > img {
  background: transparent !important;
  background-color: transparent !important;
}

/*
 * Light page/background image: white bitmap pixels are neutral in multiply,
 * so only the dark QR modules remain visible.
 */
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-visual > img {
  filter: none !important;
  mix-blend-mode: multiply !important;
}

/*
 * Dark page/background: invert first; black pixels are neutral in screen,
 * so only the white QR modules remain visible.
 */
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-visual > img {
  filter: invert(1) !important;
  mix-blend-mode: screen !important;
}

/*
 * Only the center mark keeps the selected page color so text/heart has a
 * calm, readable clear area. The QR background around it stays transparent.
 */
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  background: var(--wlpw-page-bg, #f7f2ea) !important;
  background-color: var(--wlpw-page-bg, #f7f2ea) !important;
}


/* =========================================================
   Version 5.5.12 — fully transparent QR and center mark
   ========================================================= */

/* The whole QR presentation, including heart/text, is transparent. */
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Light background: use dark QR modules, text and icon. */
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark,
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark-heart svg,
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark-cr {
  color: #444444 !important;
  fill: #444444 !important;
}

/* Dark background: switch QR modules, text and icon to white. */
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark,
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark-heart svg,
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark-cr {
  color: #ffffff !important;
  fill: #ffffff !important;
}

/*
 * Preserve the existing automatic QR module contrast:
 * multiply for light backgrounds, inverted screen for dark backgrounds.
 */
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-visual > img {
  filter: none !important;
  mix-blend-mode: multiply !important;
}

body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-visual > img {
  filter: invert(1) !important;
  mix-blend-mode: screen !important;
}


/* =========================================================
   Version 5.5.13 — truly transparent QR bitmap
   ========================================================= */

/*
 * The QR PNG itself now contains real alpha transparency.
 * Therefore no blend mode, inversion or CSS background is required.
 */
body.wlpw-wall-v4 .wlpw-qr-visual,
body.wlpw-wall-v4 .wlpw-qr-card,
body.wlpw-wall-v4 .wlpw-qr-box,
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

body.wlpw-wall-v4 .wlpw-qr-visual > img {
  background: transparent !important;
  background-color: transparent !important;
  mix-blend-mode: normal !important;
  filter: none !important;
  opacity: 1 !important;
}

/* Light background: dark modules, icon and text. */
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark,
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark svg {
  color: #444444 !important;
  fill: #444444 !important;
}

/* Dark background: white modules, icon and text. */
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark,
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark svg {
  color: #ffffff !important;
  fill: #ffffff !important;
}


/* =========================================================
   Version 5.5.15 — transparent center cutout without QR modules
   ========================================================= */

/*
 * The QR bitmap now contains a real transparent cutout underneath
 * the selected heart/text. No colored center panel is rendered.
 */
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  z-index: 8 !important;
}

/* Keep the mark clearly above the QR bitmap. */
body.wlpw-wall-v4 .wlpw-qr-visual > img {
  z-index: 1 !important;
}

body.wlpw-wall-v4 .wlpw-qr-center-mark {
  z-index: 5 !important;
}

/* Readable contrast follows the configured page background. */
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark,
body.wlpw-wall-v4.wlpw-qr-light-bg .wlpw-qr-center-mark svg {
  color: #444444 !important;
  fill: #444444 !important;
}

body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark,
body.wlpw-wall-v4.wlpw-qr-dark-bg .wlpw-qr-center-mark svg {
  color: #ffffff !important;
  fill: #ffffff !important;
}


/* =========================================================
   Version 5.5.16 — centered mark, tighter rounded cutout
   ========================================================= */

/* Exact optical centering of text and heart. */
body.wlpw-wall-v4 .wlpw-qr-center-mark {
  top: 50% !important;
  left: 50% !important;
  width: 34% !important;
  aspect-ratio: 1 / 1 !important;
  transform: translate(-50%, -50%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border-radius: 16% !important;
  overflow: visible !important;
  line-height: 1 !important;
}

/* Center the heart within the transparent cutout. */
body.wlpw-wall-v4 .wlpw-qr-center-mark-heart svg {
  display: block !important;
  width: 66% !important;
  height: 66% !important;
  margin: 0 !important;
  transform: translateY(1%) !important;
  transform-origin: center center !important;
}

/* Center one to three text characters without baseline drift. */
body.wlpw-wall-v4 .wlpw-qr-center-mark-cr {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 2px !important;
  margin: 0 !important;
  font-size: 10px !important;
  line-height: 1 !important;
  letter-spacing: -.06em !important;
  text-align: center !important;
  transform: translateY(.5px) !important;
}

/* Keep the complete center area transparent. */
body.wlpw-wall-v4 .wlpw-qr-center-mark,
body.wlpw-wall-v4 .wlpw-qr-center-mark::before,
body.wlpw-wall-v4 .wlpw-qr-center-mark::after {
  background: transparent !important;
  background-color: transparent !important;
}

/* Version 5.6.0 */
.wlpw-favorites-toggle,.wlpw-download-favorites,.wlpw-personal-favorite{min-height:34px;padding:6px 9px;border:1px solid #d7c9b8;border-radius:9px;background:#fff;color:#514033;font:inherit;font-size:.72rem;font-weight:750;cursor:pointer}.wlpw-favorites-toggle span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:4px;border-radius:999px;background:#eee5da}.wlpw-favorites-toggle.is-active{background:#514033;color:#fff}.wlpw-download-favorites{background:var(--wlpw-accent,#b08d57);border-color:transparent;color:#fff}.wlpw-download-favorites:disabled{opacity:.45}.wlpw-personal-favorite.is-favorite,.wlpw-lightbox-favorite.is-favorite{background:#fff5d9!important;color:#755217!important;border-color:#caa25a!important}.wlpw-gallery-open-image{cursor:zoom-in}.wlpw-favorites-empty{grid-column:1/-1;padding:40px;text-align:center}.wlpw-lightbox[hidden]{display:none!important}body.wlpw-lightbox-open{overflow:hidden!important}.wlpw-lightbox{position:fixed;inset:0;z-index:100000;display:grid;grid-template-columns:64px minmax(0,1fr) 64px;align-items:center;padding:24px;background:rgba(20,17,14,.92);backdrop-filter:blur(12px)}.wlpw-lightbox-content{width:min(1280px,100%);max-height:calc(100vh - 48px);margin:auto;display:grid;grid-template-rows:minmax(0,1fr) auto;overflow:hidden;border-radius:18px;background:#161310}.wlpw-lightbox-image-wrap{display:grid;place-items:center;min-height:0}.wlpw-lightbox-image{width:100%;height:min(76vh,900px);object-fit:contain}.wlpw-lightbox-footer{padding:11px 16px;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#fffdf9}.wlpw-lightbox-meta{display:flex;flex-direction:column}.wlpw-lightbox-position{font-size:.76rem;color:#86776b}.wlpw-lightbox-actions{display:flex;gap:8px}.wlpw-lightbox-actions button{min-height:38px;padding:7px 11px;border:1px solid #d7c9b8;border-radius:9px;background:#fff;font:inherit;font-weight:750}.wlpw-lightbox-save{background:var(--wlpw-accent,#b08d57)!important;color:#fff!important;border-color:transparent!important}.wlpw-lightbox-close{position:fixed;top:14px;right:18px;z-index:3;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:2rem}.wlpw-lightbox-nav{width:48px;height:68px;border:0;border-radius:999px;background:rgba(255,255,255,.08);color:#fff}.wlpw-lightbox-nav svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8}@media(max-width:800px){.wlpw-lightbox{grid-template-columns:1fr;padding:10px}.wlpw-lightbox-nav{position:fixed;top:46%;z-index:3}.wlpw-lightbox-prev{left:8px}.wlpw-lightbox-next{right:8px}.wlpw-lightbox-image{height:72vh}.wlpw-lightbox-footer{align-items:stretch;flex-direction:column}.wlpw-lightbox-actions button{flex:1}}

/* Version 5.7.0 — Emoji reactions */
.wlpw-reaction-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.wlpw-reaction-bar.is-compact{justify-content:flex-end}
.wlpw-reaction-button{min-width:48px;min-height:34px;padding:5px 8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #d7c9b8;border-radius:999px;background:#fff;color:#514033;font:inherit;font-size:.72rem;font-weight:750;cursor:pointer}
.wlpw-reaction-button.is-selected{border-color:#caa25a;background:#fff4d5}
.wlpw-reaction-button:disabled{opacity:.55;cursor:wait}
.wlpw-reaction-emoji{font-size:1rem;line-height:1}
.wlpw-reaction-button b{font-size:.68rem}
.wlpw-lightbox-reactions{margin-right:4px}
body.wlpw-wall-v4 .wlpw-wall-reactions{position:absolute;left:18px;bottom:18px;z-index:35;display:flex;gap:7px;pointer-events:none}
body.wlpw-wall-v4 .wlpw-wall-reactions span{min-width:48px;height:34px;padding:5px 9px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;background:rgba(255,255,255,.78);color:#41362d;box-shadow:0 8px 22px rgba(0,0,0,.12);backdrop-filter:blur(8px)}
body.wlpw-wall-v4 .wlpw-wall-reactions b{font-size:1rem}
body.wlpw-wall-v4 .wlpw-wall-reactions small{font-size:.68rem;font-weight:800}
@media(max-width:760px){.wlpw-reaction-bar.is-compact{width:100%;justify-content:flex-start}.wlpw-lightbox-actions{flex-wrap:wrap}.wlpw-lightbox-reactions{width:100%;order:-1}}

/* Version 5.7.1 */
.wlpw-personal-favorite{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:5px!important;min-width:82px;color:#514033!important}
.wlpw-personal-favorite span{display:inline-block!important;font-size:.95rem;line-height:1}
.wlpw-card-reactions{display:flex!important;flex:1 1 100%!important;width:100%!important;margin-top:5px;justify-content:flex-start!important}
.wlpw-reaction-bar{display:flex!important;visibility:visible!important;min-height:38px}
.wlpw-reaction-button{display:inline-flex!important;visibility:visible!important;opacity:1!important;min-width:50px!important;min-height:36px!important;padding:5px 8px!important;background:#fff!important;color:#514033!important}
.wlpw-reaction-emoji{display:inline-block!important;font-size:1.08rem!important;line-height:1!important}
.wlpw-reaction-count{display:inline-block!important;min-width:1ch!important}
.wlpw-reaction-button.is-selected{background:#fff4d5!important;border-color:#caa25a!important;color:#755217!important}
.wlpw-lightbox-reactions{display:flex!important;flex-wrap:wrap!important}


/* =========================================================
   Version 5.8.0 — compact comments and configurable gallery
   ========================================================= */
.wlpw-photo-actions {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 7px !important;
}

.wlpw-card-reactions {
  flex: 0 1 auto !important;
  width: auto !important;
  margin: 0 auto 0 0 !important;
  order: initial !important;
  justify-content: flex-start !important;
}

.wlpw-card-reactions .wlpw-reaction-button {
  min-width: 45px !important;
  min-height: 36px !important;
  padding: 4px 7px !important;
}

.wlpw-comment-toggle {
  width: fit-content;
  margin-top: 7px;
  padding: 6px 10px;
  border: 1px solid #ddcfbe;
  border-radius: 9px;
  background: rgba(255,255,255,.58);
  color: #765f4c;
  font: inherit;
  font-size: .78rem;
  cursor: pointer;
}

.wlpw-comment-toggle:hover,
.wlpw-comment-toggle:focus-visible {
  background: #fff;
}

.wlpw-comment-form.is-collapsed {
  display: none !important;
}

.wlpw-comment-form:not(.is-collapsed) {
  margin-top: 7px !important;
}

.wlpw-gallery-grid.wlpw-gallery-columns-1 {
  grid-template-columns: minmax(0,1fr) !important;
}
.wlpw-gallery-grid.wlpw-gallery-columns-2 {
  grid-template-columns: repeat(2,minmax(0,1fr)) !important;
}
.wlpw-gallery-grid.wlpw-gallery-columns-3 {
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
}
.wlpw-gallery-grid.wlpw-gallery-columns-4 {
  grid-template-columns: repeat(4,minmax(0,1fr)) !important;
}

@media (max-width: 1180px) {
  .wlpw-gallery-grid.wlpw-gallery-columns-3,
  .wlpw-gallery-grid.wlpw-gallery-columns-4 {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}

@media (max-width: 760px) {
  .wlpw-gallery-grid.wlpw-gallery-columns-1,
  .wlpw-gallery-grid.wlpw-gallery-columns-2,
  .wlpw-gallery-grid.wlpw-gallery-columns-3,
  .wlpw-gallery-grid.wlpw-gallery-columns-4 {
    grid-template-columns: minmax(0,1fr) !important;
  }

  .wlpw-photo-actions {
    flex-wrap: wrap !important;
  }

  .wlpw-card-reactions {
    flex: 1 1 100% !important;
    width: 100% !important;
  }
}

/* Version 5.8.1 — user-selectable gallery layout */
.wlpw-gallery-view-control{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.wlpw-gallery-view-control>span{color:#6f5d4e;font-size:.76rem;font-weight:750}
.wlpw-gallery-view-buttons{display:inline-flex;align-items:center;padding:3px;border:1px solid #ddcfbe;border-radius:10px;background:rgba(255,255,255,.58)}
.wlpw-gallery-view-buttons button{width:31px;height:31px;padding:0;border:0;border-radius:7px;background:transparent;color:#675546;font:inherit;font-size:.76rem;font-weight:800;cursor:pointer}
.wlpw-gallery-view-buttons button:hover,.wlpw-gallery-view-buttons button:focus-visible{background:rgba(255,255,255,.8)}
.wlpw-gallery-view-buttons button.is-active{background:var(--wlpw-accent,#b08d57);color:#fff}
.wlpw-gallery-grid{grid-template-columns:repeat(var(--wlpw-gallery-columns,2),minmax(0,1fr))!important}
.wlpw-gallery-grid.wlpw-gallery-columns-1{--wlpw-gallery-columns:1}
.wlpw-gallery-grid.wlpw-gallery-columns-2{--wlpw-gallery-columns:2}
.wlpw-gallery-grid.wlpw-gallery-columns-3{--wlpw-gallery-columns:3}
.wlpw-gallery-grid.wlpw-gallery-columns-4{--wlpw-gallery-columns:4}
.wlpw-photo-actions{width:100%!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important}
.wlpw-photo-reaction-slot{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}
.wlpw-photo-reaction-slot .wlpw-reaction-bar{width:max-content;min-width:100%;flex-wrap:nowrap!important;justify-content:flex-start!important}
.wlpw-photo-primary-actions{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.wlpw-comment-form.is-collapsed{display:none!important}
.wlpw-comment-toggle{display:inline-flex!important;align-items:center;justify-content:center;min-height:34px}
@media(max-width:1180px){.wlpw-gallery-grid.wlpw-gallery-columns-4{--wlpw-gallery-columns:3}}
@media(max-width:900px){.wlpw-gallery-grid.wlpw-gallery-columns-3,.wlpw-gallery-grid.wlpw-gallery-columns-4{--wlpw-gallery-columns:2}.wlpw-photo-actions{grid-template-columns:1fr!important}.wlpw-photo-primary-actions{justify-content:flex-end}}
@media(max-width:650px){.wlpw-gallery-grid.wlpw-gallery-columns-1,.wlpw-gallery-grid.wlpw-gallery-columns-2,.wlpw-gallery-grid.wlpw-gallery-columns-3,.wlpw-gallery-grid.wlpw-gallery-columns-4{--wlpw-gallery-columns:1}.wlpw-gallery-view-control{width:100%;justify-content:space-between}}


/* =========================================================
   Version 5.8.2 — compact one-line actions and comments
   ========================================================= */

.wlpw-photo-actions {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: 7px !important;
}

.wlpw-card-reactions {
  flex: 0 1 auto !important;
  width: auto !important;
  margin-right: auto !important;
  flex-wrap: nowrap !important;
}

.wlpw-card-reactions .wlpw-reaction-button {
  min-width: 43px !important;
  min-height: 36px !important;
  padding: 4px 7px !important;
}

/* Icon-only card buttons. */
.wlpw-personal-favorite,
.wlpw-photo-save {
  flex: 0 0 38px !important;
  width: 38px !important;
  min-width: 38px !important;
  height: 36px !important;
  min-height: 36px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  border-radius: 9px !important;
}

.wlpw-personal-favorite span {
  font-size: 1rem !important;
  line-height: 1 !important;
}

.wlpw-photo-save svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Comments only consume space when comments exist. */
.wlpw-gallery-discussion {
  min-height: 0 !important;
  padding-top: 10px !important;
}

.wlpw-gallery-discussion h2 {
  margin-bottom: 8px !important;
}

.wlpw-comment-list:empty,
.wlpw-comments-empty,
.wlpw-comment-toggle {
  display: none !important;
}

/* Form always visible but compact. */
.wlpw-comment-form,
.wlpw-comment-form.is-collapsed {
  display: grid !important;
  grid-template-columns: minmax(130px, .8fr) minmax(180px, 1.5fr) auto !important;
  align-items: end !important;
  gap: 7px !important;
  margin-top: 0 !important;
}

.wlpw-comment-form input,
.wlpw-comment-form textarea,
.wlpw-comment-form button {
  min-height: 38px !important;
}

.wlpw-comment-form textarea {
  height: 38px !important;
  min-height: 38px !important;
  max-height: 90px !important;
}

.wlpw-comment-counter {
  position: absolute;
  right: 8px;
  bottom: -16px;
  font-size: .62rem;
}

@media (max-width: 900px) {
  .wlpw-photo-actions {
    overflow-x: auto;
    justify-content: flex-start !important;
  }

  .wlpw-card-reactions {
    flex: 0 0 auto !important;
  }

  .wlpw-comment-form,
  .wlpw-comment-form.is-collapsed {
    grid-template-columns: 1fr !important;
  }

  .wlpw-comment-counter {
    position: static;
    justify-self: end;
  }
}


/* =========================================================
   Version 5.8.3 — wider comment input, compact submit button
   ========================================================= */

.wlpw-gallery-discussion {
  padding-bottom: 10px !important;
}

.wlpw-comment-form,
.wlpw-comment-form.is-collapsed {
  width: 100% !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas:
    "author author"
    "comment submit" !important;
  column-gap: 7px !important;
  row-gap: 7px !important;
  padding-bottom: 0 !important;
}

.wlpw-comment-form input {
  grid-area: author !important;
  width: 100% !important;
}

.wlpw-comment-form textarea {
  grid-area: comment !important;
  width: 100% !important;
  min-width: 0 !important;
}

.wlpw-comment-form button[type="submit"] {
  grid-area: submit !important;
  width: auto !important;
  min-width: 126px !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  white-space: nowrap !important;
}

.wlpw-comment-counter {
  margin: 0 !important;
}

@media (max-width: 650px) {
  .wlpw-comment-form,
  .wlpw-comment-form.is-collapsed {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas:
      "author author"
      "comment submit" !important;
  }

  .wlpw-comment-form button[type="submit"] {
    min-width: 112px !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}


/* Version 5.8.4 — borderless emoji reactions */
.wlpw-reaction-button,
.wlpw-card-reactions .wlpw-reaction-button {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.wlpw-reaction-button:hover,
.wlpw-reaction-button:focus-visible {
  background: rgba(0, 0, 0, .035) !important;
}

.wlpw-reaction-button.is-selected {
  border: 0 !important;
  box-shadow: none !important;
  background: rgba(0, 0, 0, .055) !important;
}


/* =========================================================
   Version 5.9.0 — fixed default layout and swipeable filmstrip
   ========================================================= */
.wlpw-gallery-grid { --wlpw-gallery-columns: 2; }

body.wlpw-wall-v4 .wlpw-filmstrip-nav .wlpw-thumbs {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  touch-action: pan-x !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scroll-snap-type: none !important;
  cursor: grab;
}
body.wlpw-wall-v4 .wlpw-filmstrip-nav .wlpw-thumbs.is-dragging { cursor: grabbing; }
body.wlpw-wall-v4 .wlpw-thumb-button,
body.wlpw-wall-v4 .wlpw-thumb-button img {
  -webkit-user-drag: none;
  user-select: none;
}
