/* WOODY HOUSE スワイプギャラリー — スタイル */
.whsg{
  --whsg-surface:#fff;
  --whsg-surface-2:#f1eae0;
  --whsg-ink:#2e2a22;
  --whsg-ink-faint:#a79c87;
  --whsg-accent:#9c7a45;
  --whsg-line:#e5dcc9;
  --whsg-radius:18px;
  background:var(--whsg-surface);
  border-radius:var(--whsg-radius);
  box-shadow:0 20px 46px -26px rgba(46,42,34,.35), 0 2px 8px -2px rgba(46,42,34,.12);
  padding:8px 8px 14px;
  border:1px solid var(--whsg-line);
  max-width:640px;
  margin:0 auto 1.6em;
  box-sizing:border-box;
}
.whsg *{ box-sizing:border-box; }
.whsg-viewport{ position:relative; border-radius:calc(var(--whsg-radius) - 8px); overflow:hidden; }
.whsg-track{
  display:flex;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  margin:0; padding:0; list-style:none;
}
.whsg-track::-webkit-scrollbar{ display:none; }
.whsg-slide{
  flex:0 0 100%;
  scroll-snap-align:center;
  aspect-ratio:4/5;
  position:relative;
  border:0; padding:0; margin:0;
  background:var(--whsg-surface-2);
  cursor:zoom-in;
  display:block;
}
.whsg-slide img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  -webkit-user-drag:none;
  user-select:none;
  pointer-events:none;
}
.whsg-tag{
  position:absolute; left:12px; bottom:12px;
  background:rgba(20,17,12,.55);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  color:#fff; font-size:12.5px; letter-spacing:.03em;
  padding:6px 12px; border-radius:999px; font-weight:500;
}
.whsg-zoomcue{
  position:absolute; right:12px; bottom:12px;
  width:32px; height:32px; border-radius:50%;
  background:rgba(20,17,12,.55);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.whsg-zoomcue svg{ width:15px; height:15px; }
.whsg-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:40px; height:40px; border-radius:50%; border:0;
  background:rgba(255,255,255,.85);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  color:#2e2a22;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 6px 18px -6px rgba(0,0,0,.35);
  transition:opacity .2s ease, transform .2s ease;
}
.whsg-nav:hover{ transform:translateY(-50%) scale(1.06); }
.whsg-nav svg{ width:18px; height:18px; }
.whsg-nav-prev{ left:10px; }
.whsg-nav-next{ right:10px; }
@media (hover:hover){
  .whsg-nav{ opacity:0; }
  .whsg-viewport:hover .whsg-nav{ opacity:1; }
}
.whsg-hint{
  position:absolute; left:50%; bottom:14px; transform:translateX(-50%);
  display:flex; align-items:center; gap:8px;
  background:rgba(20,17,12,.62);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  color:#fff; padding:8px 15px; border-radius:999px;
  font-size:13px; letter-spacing:.02em; pointer-events:none;
  opacity:1; transition:opacity .5s ease, transform .5s ease;
}
.whsg-hint.is-hidden{ opacity:0; transform:translateX(-50%) translateY(6px); }
.whsg-hint-icon svg{ width:20px; height:14px; animation:whsg-swipe-hint 1.6s ease-in-out infinite; }
@keyframes whsg-swipe-hint{
  0%,100%{ transform:translateX(0); opacity:.55; }
  50%{ transform:translateX(5px); opacity:1; }
}
.whsg-dots{ display:flex; justify-content:center; align-items:center; gap:7px; padding-top:12px; }
.whsg-dot{ width:7px; height:7px; border-radius:999px; background:var(--whsg-line); border:0; padding:0; cursor:pointer; transition:width .25s ease, background .25s ease; }
.whsg-dot.is-active{ width:22px; background:var(--whsg-accent); }

/* lightbox (single, shared by all galleries on the page) */
.whsg-lightbox{
  position:fixed; inset:0; background:rgba(15,12,8,.95);
  z-index:100000; display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition:opacity .28s ease; touch-action:none;
}
.whsg-lightbox.is-open{ opacity:1; visibility:visible; }
.whsg-lb-stage{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; overflow:hidden; position:relative; }
.whsg-lb-img{ max-width:92vw; max-height:82vh; object-fit:contain; will-change:transform; touch-action:none; -webkit-user-drag:none; user-select:none; border-radius:4px; }
.whsg-lb-close{ position:absolute; top:16px; right:16px; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; border:0; font-size:22px; line-height:1; cursor:pointer; z-index:2; display:flex; align-items:center; justify-content:center; }
.whsg-lb-counter{ position:absolute; top:22px; left:22px; color:rgba(255,255,255,.82); font-size:13px; letter-spacing:.05em; z-index:2; }
.whsg-lb-nav{ position:absolute; top:50%; transform:translateY(-50%); width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; border:0; cursor:pointer; z-index:2; display:flex; align-items:center; justify-content:center; }
.whsg-lb-nav svg{ width:20px; height:20px; }
.whsg-lb-prev{ left:14px; }
.whsg-lb-next{ right:14px; }
.whsg-lb-hint{ position:absolute; bottom:20px; left:50%; transform:translateX(-50%); color:rgba(255,255,255,.6); font-size:12px; letter-spacing:.02em; z-index:2; white-space:nowrap; }
@media (max-width:520px){
  .whsg-lb-nav{ width:38px; height:38px; }
  .whsg-lb-close{ width:38px; height:38px; }
  .whsg-lb-hint{ font-size:11px; }
}

/* block editor placeholder */
.whsg-editor-placeholder{
  border:2px dashed var(--whsg-line, #ddd);
  border-radius:14px;
  padding:36px 20px;
  text-align:center;
  color:#78705e;
}
.whsg-editor-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(84px,1fr)); gap:8px; }
.whsg-editor-grid img{ width:100%; aspect-ratio:1; object-fit:cover; border-radius:8px; }
