/* Theme variables (override via shortcode/widget) */
.bun-sunum-wrap{
  --bun-card-bg:#ffffff;
  --bun-card-border: rgba(0,0,0,.12);
  --bun-primary:#0878e0;
  --bun-primary-text:#ffffff;
  --bun-card-h: 0px;
}

/* Grid: Desktop 3 columns, Mobile 1 column */
.bun-sunum-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:14px;
  margin: 10px 0 20px;
}
@media (max-width: 768px){
  .bun-sunum-grid{ grid-template-columns: 1fr; }
}

.bun-sunum-card{
  width:100%;
  border:1px solid var(--bun-card-border);
  border-radius:14px;
  padding:18px 16px;
  background:var(--bun-card-bg);
  color:#111 !important;
  cursor:pointer;
  text-align:left;
  transition: transform .15s ease, box-shadow .15s ease;
  box-shadow: 0 6px 22px rgba(0,0,0,.06);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  min-height: var(--bun-card-h);
}
.bun-sunum-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 30px rgba(0,0,0,.10);
}

.bun-sunum-card-img{
  display:block;
  width:100%;
  height: 140px;
  border-radius: 12px;
  background-size: cover;
  background-position: center;
  margin-bottom: 12px;
  border: 1px solid rgba(0,0,0,.08);
}
@media (max-width: 768px){
  .bun-sunum-card-img{ height: 180px; }
}

.bun-sunum-card-title{
  display:block;
  font-weight:800;
  font-size: clamp(16px, 2.2vw, 20px);
  line-height:1.25;
  margin-bottom:8px;
}
.bun-sunum-card-hint{
  display:block;
  opacity:.75;
  font-size: 13px;
  margin-top:auto;
}

/* Modal */
.bun-sunum-modal{
  position:fixed;
  inset:0;
  z-index:999999;
  display:none;
}
.bun-sunum-modal.is-open{ display:block; }

.bun-sunum-modal-backdrop{
  position:absolute;
  inset:0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(2px);
}

.bun-sunum-modal-panel{
  position:absolute;
  inset: 20px;
  background:#fff;
  border-radius:18px;
  overflow:hidden;
  box-shadow: 0 18px 70px rgba(0,0,0,.35);
  display:flex;
}
@media (max-width: 680px){
  .bun-sunum-modal-panel{ inset: 10px; border-radius:14px; }
}

.bun-sunum-close{
  position:absolute;
  right:12px;
  top:10px;
  width:42px;
  height:42px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  color:#111 !important;
  font-size:28px;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
}
.bun-sunum-close:hover{ background: rgba(0,0,0,.04); }

.bun-sunum-modal-inner{
  width:100%;
  display:flex;
  flex-direction:column;
  padding: 24px 22px 18px;
  color:#111;
}

.bun-sunum-modal-title{
  font-weight:900;
  font-size: clamp(18px, 2.8vw, 28px);
  line-height:1.2;
  padding-right: 54px;
}

.bun-sunum-modal-body{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 18px 0 12px;
}

.bun-sunum-slide{
  width: min(920px, 100%);
  margin: 0 auto;
  text-align:center;
}

.bun-sunum-step-img{
  display:none;
  width:100%;
  max-width: 920px;
  height:auto;
  border-radius: 14px;
  border: 1px solid rgba(0,0,0,.10);
  margin: 0 auto 16px;
}

.bun-sunum-step-title{
  font-weight: 800;
  font-size: clamp(18px, 2.4vw, 26px);
  margin-bottom: 14px;
}

.bun-sunum-step-content{
  font-size: clamp(16px, 2.1vw, 22px);
  line-height: 1.65;
  text-align: justify;
  text-align-last: left;
  hyphens: auto;
  word-break: break-word;
  max-width: 920px;
  margin: 0 auto;
}
.bun-sunum-step-content p{ margin: 0 0 14px; }

.bun-sunum-modal-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 10px;
  border-top: 1px solid rgba(0,0,0,.08);
  padding-top: 14px;
  margin-top: 6px;
}

.bun-sunum-btn{
  border: 1px solid rgba(0,0,0,.14) !important;
  border-radius: 12px;
  padding: 11px 16px;
  font-weight: 800;
  cursor:pointer;
  min-width: 110px;
}

.bun-sunum-prev{
  background:#fff !important;
  color:#111 !important;
}
.bun-sunum-next{
  background: var(--bun-primary) !important;
  color: var(--bun-primary-text) !important;
  border-color: rgba(0,0,0,.0) !important;
}

.bun-sunum-btn:hover{ filter: brightness(0.98); }
.bun-sunum-btn:disabled{ opacity:.5; cursor:not-allowed; }

.bun-sunum-progress{ opacity:.8; font-weight:700; }

/* Animations */
.bun-animate-in .bun-sunum-step-title,
.bun-animate-in .bun-sunum-step-content,
.bun-animate-in .bun-sunum-step-img{
  animation: bunFadeInUp .45s ease both;
}
.bun-animate-in .bun-sunum-step-content{ animation-delay: .05s; }
.bun-animate-in .bun-sunum-step-img{ animation-delay: .02s; }

@keyframes bunFadeInUp{
  from{ opacity:0; transform: translateY(10px); }
  to{ opacity:1; transform: translateY(0); }
}

/* Scroll lock */
html.bun-sunum-lock, body.bun-sunum-lock{
  overflow:hidden !important;
}
