:root {
  --gsoa-burgundy:#8B1A36;
  --gsoa-burgundy-dark:#6B1228;
  --gsoa-accent:#C4384E;
  --gsoa-cream:#F5F0E6;
  --gsoa-line:#EDE8DC;
  --gsoa-charcoal:#1E1E1E;
  --gsoa-gray:#6B6560;
  --gsoa-white:#FDFAF5;
}

.gsoa-openwall {
  font-family:"Noto Sans KR", sans-serif;
  color:var(--gsoa-charcoal);
  position:relative;
}

.gsoa-ow-toolbar {
  position:sticky;
  top:var(--gsoa-openwall-sticky-top, 76px);
  z-index:50;
  background:rgba(253,250,245,.96);
  backdrop-filter:blur(8px);
  border:1px solid var(--gsoa-line);
  border-radius:12px;
  padding:10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  box-shadow:0 6px 20px rgba(0,0,0,.06);
  transform-origin:top center;
  transition:transform .22s ease, padding .22s ease, border-radius .22s ease, box-shadow .22s ease, background .22s ease;
}

.gsoa-ow-toolbar.is-sticky {
  transform:scale(.985);
  padding:7px 9px;
  border-radius:0 0 10px 10px;
  box-shadow:0 8px 26px rgba(0,0,0,.11);
  background:rgba(253,250,245,.98);
}

.gsoa-ow-tabs { display:flex; flex-wrap:wrap; gap:7px; flex:1; }
.gsoa-ow-tabs button {
  background:#fff;
  color:var(--gsoa-gray);
  border:1px solid var(--gsoa-line);
  padding:9px 14px;
  cursor:pointer;
  font-size:12px;
  border-radius:999px;
  white-space:nowrap;
  transition:.18s ease;
}
.gsoa-ow-tabs button:hover,
.gsoa-ow-tabs button.active {
  color:#fff;
  background:var(--gsoa-burgundy);
  border-color:var(--gsoa-burgundy);
}

.gsoa-ow-write,
.gsoa-ow-submit,
.gsoa-ow-login-btn,
.gsoa-ow-archive-apply,
.gsoa-ow-copy-link,
.gsoa-ow-qr-download,
.gsoa-ow-back-list,
.gsoa-ow-edit-post,
.gsoa-ow-delete-post {
  border-radius:8px;
  padding:11px 18px;
  font-size:13px;
  line-height:1.2;
  font-weight:700;
  cursor:pointer;
  text-decoration:none !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  white-space:nowrap;
  transition:.18s ease;
}

.gsoa-ow-write,
.gsoa-ow-submit,
.gsoa-ow-login-btn,
.gsoa-ow-archive-apply {
  background:var(--gsoa-burgundy);
  color:#fff !important;
  border:0;
}
.gsoa-ow-write:hover,
.gsoa-ow-submit:hover,
.gsoa-ow-login-btn:hover,
.gsoa-ow-archive-apply:hover { background:var(--gsoa-burgundy-dark); color:#fff !important; }

.gsoa-ow-status { font-size:12px; color:var(--gsoa-gray); margin:12px 0; }

.gsoa-ow-grid {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:12px;
  align-items:start;
}
@media(max-width:1100px){ .gsoa-ow-grid{grid-template-columns:repeat(3, minmax(0, 1fr));} }
@media(max-width:680px){
  .gsoa-ow-grid{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px;}
  .gsoa-ow-toolbar{display:block;padding:9px;top:var(--gsoa-openwall-sticky-top, 66px);}
  .gsoa-ow-tabs{display:grid;grid-template-columns:repeat(3, 1fr);gap:8px;margin-bottom:10px;}
  .gsoa-ow-tabs button{width:100%;border-radius:8px;padding:10px 6px;font-size:12px;}
  .gsoa-ow-write{width:100%;}
}
@media(max-width:420px){ .gsoa-ow-grid{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:9px;} }

.gsoa-ow-card {
  background:#fff;
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 1px 8px rgba(0,0,0,.08);
  transition:.2s;
  cursor:pointer;
  min-width:0;
}
.gsoa-ow-card:hover { transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.14); }
.gsoa-ow-card img,
.gsoa-ow-card video {
  width:100%;
  aspect-ratio:2/3;
  object-fit:cover;
  display:block;
  background:var(--gsoa-line);
}
.gsoa-ow-card-body { padding:11px 12px 14px; }
.gsoa-ow-badge { display:inline-block; font-size:10px; color:var(--gsoa-burgundy); background:rgba(139,26,54,.08); padding:2px 7px; border-radius:3px; margin-bottom:7px; }
.gsoa-ow-card-title { font-size:14px; font-weight:700; line-height:1.45; margin-bottom:7px; word-break:keep-all; }
.gsoa-ow-card-info { font-size:11px; line-height:1.7; color:var(--gsoa-gray); }
.gsoa-ow-card-info i { width:14px; color:var(--gsoa-burgundy); opacity:.8; margin-right:3px; }
.gsoa-ow-more-wrap { text-align:center; margin-top:22px; }
.gsoa-ow-more { background:#fff; border:1px solid var(--gsoa-line); padding:11px 28px; border-radius:6px; cursor:pointer; color:var(--gsoa-gray); }

.gsoa-ow-modal { display:none; position:fixed; inset:0; background:rgba(0,0,0,.58); z-index:2147483000; align-items:center; justify-content:center; padding:18px; overflow:hidden; }
.gsoa-ow-modal.open { display:flex; }
.gsoa-ow-modal-panel { width:100%; max-width:640px; max-height:min(92vh, 820px); background:var(--gsoa-white); border-radius:14px; box-shadow:0 20px 70px rgba(0,0,0,.35); display:flex; flex-direction:column; overflow:hidden; }
.gsoa-ow-modal-head { flex:0 0 auto; display:flex; justify-content:space-between; align-items:center; background:var(--gsoa-burgundy); color:#fff; padding:16px 18px; gap:10px; }
.gsoa-ow-cancel,
.gsoa-ow-cancel-secondary { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.28); color:#fff; font-size:12px; font-weight:700; cursor:pointer; border-radius:7px; padding:8px 12px; white-space:nowrap; }
.gsoa-ow-cancel:hover{background:rgba(255,255,255,.22);}
.gsoa-ow-modal-body { overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.gsoa-ow-form,
.gsoa-ow-login { padding:22px; }
.gsoa-ow-form label { display:block; font-size:12px; font-weight:700; margin-bottom:14px; }
.gsoa-ow-form small { display:block; margin-top:5px; font-size:10px; line-height:1.5; color:var(--gsoa-gray); font-weight:400; }
.gsoa-ow-form input,
.gsoa-ow-form select,
.gsoa-ow-form textarea { display:block; width:100%; margin-top:6px; padding:11px 12px; border:1px solid var(--gsoa-line); border-radius:6px; font-size:13px; background:#fff; }
.gsoa-ow-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media(max-width:520px){ .gsoa-ow-row{grid-template-columns:1fr;} }
.gsoa-ow-form-actions { position:sticky; bottom:0; background:linear-gradient(to top, var(--gsoa-white) 80%, rgba(253,250,245,.72)); display:grid; grid-template-columns:1fr 2fr; gap:10px; padding-top:12px; margin-top:8px; }
.gsoa-ow-cancel-secondary { background:#fff; color:var(--gsoa-gray); border:1px solid var(--gsoa-line); }
.gsoa-ow-submit { width:100%; }
.gsoa-ow-message { margin-top:12px; font-size:13px; color:var(--gsoa-burgundy); }
.gsoa-ow-empty { text-align:center; padding:60px 20px; color:var(--gsoa-gray); grid-column:1/-1; }

.gsoa-ow-single-poster { margin:0 0 26px; }
.gsoa-ow-single-poster img,
.gsoa-ow-single-poster video { display:block; width:100%; max-width:760px; height:auto; max-height:780px; object-fit:contain; margin:0 auto; border-radius:10px; }
.gsoa-ow-single-cta { margin:38px 0 10px; padding:22px; border:1px solid var(--gsoa-line); border-radius:12px; background:var(--gsoa-white); display:flex; gap:10px; flex-wrap:wrap; justify-content:center; }
.gsoa-ow-copy-link,
.gsoa-ow-qr-download,
.gsoa-ow-back-list,
.gsoa-ow-edit-post { background:#fff; color:var(--gsoa-burgundy); border:1px solid var(--gsoa-burgundy); }
.gsoa-ow-delete-post { background:#fff; color:#9b1c1c; border:1px solid #9b1c1c; }
.gsoa-ow-copy-link:hover,
.gsoa-ow-qr-download:hover,
.gsoa-ow-back-list:hover,
.gsoa-ow-edit-post:hover { background:rgba(139,26,54,.06); color:var(--gsoa-burgundy); }
.gsoa-ow-delete-post:hover { background:rgba(155,28,28,.06); color:#9b1c1c; }

.gsoa-ow-social-login { margin-top:14px; display:flex; justify-content:center; }
.gsoa-ow-social-login .nsl-container { display:none !important; }
.gsoa-ow-social-login .nsl-button { width:100%; }

.single-open-stage .fusion-flexslider,
.single-open-stage .post-slideshow,
.single-open-stage .single-featured-image-header,
.single-open-stage .post-thumbnail,
.single-open-stage .fusion-post-slideshow,
.single-open-stage .fusion-rollover,
.single-open-stage .fusion-post-medium-image,
.single-open-stage .fusion-image-wrapper { display:none !important; }

@media(max-width:520px){
  .gsoa-ow-single-cta{display:grid;grid-template-columns:1fr;}
  .gsoa-ow-copy-link,.gsoa-ow-qr-download,.gsoa-ow-archive-apply,.gsoa-ow-back-list,.gsoa-ow-edit-post,.gsoa-ow-delete-post{width:100%;}
  .gsoa-ow-modal{padding:10px;align-items:stretch;}
  .gsoa-ow-modal-panel{max-height:calc(100vh - 20px);}
}

/* v0.5 refinements */
.gsoa-ow-card img,
.gsoa-ow-card video {
  aspect-ratio: 4 / 5;
}
.gsoa-ow-card-title,
.gsoa-ow-card-info,
.gsoa-ow-single-cta,
.single-open-stage .post-content,
.single-open-stage .entry-content,
.single-open-stage .fusion-post-content,
.single-open-stage .fusion-text {
  overflow-wrap: anywhere;
  word-break: break-word;
}
.gsoa-ow-social-login {
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.gsoa-ow-google-fallback {
  width: 100%;
  max-width: 320px;
}
.gsoa-ow-single-counts {
  margin: 32px 0 0;
  padding: 16px 18px;
  border: 1px solid var(--gsoa-line);
  border-radius: 12px 12px 0 0;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  color: var(--gsoa-gray);
  font-size: 13px;
}
.gsoa-ow-single-counts i { color: var(--gsoa-burgundy); margin-right: 5px; }
.gsoa-ow-like {
  border: 1px solid var(--gsoa-burgundy);
  background: #fff;
  color: var(--gsoa-burgundy);
  border-radius: 999px;
  padding: 9px 15px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.gsoa-ow-like:hover,
.gsoa-ow-like.liked {
  background: rgba(139,26,54,.08);
}
.gsoa-ow-single-counts + .gsoa-ow-single-cta {
  margin-top: 0;
  border-radius: 0 0 12px 12px;
  border-top: 0;
}
@media(max-width:520px){
  .gsoa-ow-single-counts { display: grid; grid-template-columns: 1fr; text-align: center; }
  .gsoa-ow-like { width: 100%; justify-content: center; }
}


/* v0.6 refinements */
.gsoa-ow-webview-guide {
  margin: 12px 0 4px;
  padding: 12px 14px;
  border: 1px solid rgba(139,26,54,.18);
  border-radius: 8px;
  background: rgba(139,26,54,.05);
  color: var(--gsoa-burgundy);
  font-size: 12px;
  line-height: 1.65;
  text-align: left;
}
.gsoa-ow-like.liked {
  transform: scale(1.03);
}


/* v0.7 Kakao login */
.gsoa-ow-kakao-login {
  background:#FEE500 !important;
  color:#191919 !important;
  border:1px solid #FEE500 !important;
  width:100%;
  max-width:320px;
}
.gsoa-ow-kakao-login:hover {
  background:#f4d900 !important;
  color:#191919 !important;
}
.gsoa-ow-kakao-login i { color:#191919; }

/* v0.8.2: QR download button alignment and button shape */
.gsoa-ow-single-cta .gsoa-ow-qr-download {
  border-radius:8px !important;
  padding:11px 18px !important;
  font-size:13px !important;
  line-height:1.2 !important;
  font-weight:700 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  background:#fff !important;
  color:var(--gsoa-burgundy) !important;
  border:1px solid var(--gsoa-burgundy) !important;
  text-decoration:none !important;
  white-space:nowrap !important;
}
.gsoa-ow-single-cta .gsoa-ow-qr-download:hover {
  background:rgba(139,26,54,.06) !important;
  color:var(--gsoa-burgundy) !important;
}

@media(max-width:680px){
  .gsoa-ow-toolbar.is-sticky{transform:scale(.99); padding:7px 8px;}
  .gsoa-ow-toolbar.is-sticky .gsoa-ow-tabs{gap:6px; margin-bottom:7px;}
  .gsoa-ow-toolbar.is-sticky .gsoa-ow-tabs button{padding:8px 5px; font-size:11px;}
  .gsoa-ow-toolbar.is-sticky .gsoa-ow-write{padding:10px 12px; font-size:12px;}
}

/* v0.8.5 OpenWall internal search */
.gsoa-ow-searchbar {
  margin: 12px 0 10px;
}
.gsoa-ow-search-label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: var(--gsoa-gray);
  margin-bottom: 6px;
}
.gsoa-ow-search-box {
  position: relative;
  display: flex;
  align-items: center;
  background: #fff;
  border: 1px solid var(--gsoa-line);
  border-radius: 10px;
  overflow: hidden;
}
.gsoa-ow-search-box i {
  color: var(--gsoa-burgundy);
  opacity: .72;
  padding-left: 14px;
  font-size: 13px;
}
.gsoa-ow-search-box input {
  width: 100%;
  border: 0;
  outline: 0;
  padding: 13px 12px;
  font-size: 13px;
  background: transparent;
  color: var(--gsoa-charcoal);
}
.gsoa-ow-search-box button {
  border: 0;
  background: transparent;
  color: var(--gsoa-gray);
  cursor: pointer;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
}
.gsoa-ow-search-box:focus-within {
  border-color: var(--gsoa-burgundy);
  box-shadow: 0 0 0 3px rgba(139,26,54,.07);
}
@media(max-width:520px){
  .gsoa-ow-searchbar { margin: 10px 0 9px; }
  .gsoa-ow-search-box input { font-size: 12px; padding: 12px 10px; }
}


/* v0.9.0 pagination */
.gsoa-ow-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  flex-wrap:wrap;
  margin:28px 0 10px;
}
.gsoa-ow-page-btn{
  min-width:38px;
  height:38px;
  padding:0 12px;
  border:1px solid rgba(30,30,30,.16);
  background:#fff;
  color:#1E1E1E;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  transition:all .18s ease;
}
.gsoa-ow-page-btn:hover{
  border-color:#8B1A36;
  color:#8B1A36;
}
.gsoa-ow-page-btn.active{
  background:#8B1A36;
  border-color:#8B1A36;
  color:#fff;
}
.gsoa-ow-page-ellipsis{
  font-size:13px;
  color:#9a928d;
  padding:0 2px;
}
@media(max-width:600px){
  .gsoa-ow-pagination{ gap:6px; margin-top:22px; }
  .gsoa-ow-page-btn{ min-width:34px; height:34px; padding:0 10px; font-size:11px; }
}


.gsoa-ow-submit:disabled { opacity:.72; cursor:wait; }
.gsoa-ow-submit.is-loading { pointer-events:none; }
.gsoa-ow-btn-spinner {
  width:14px;
  height:14px;
  border:2px solid rgba(255,255,255,.45);
  border-top-color:#fff;
  border-radius:50%;
  display:inline-block;
  animation:gsoaOwSpin .75s linear infinite;
}
@keyframes gsoaOwSpin { to { transform:rotate(360deg); } }

.gsoa-ow-privacy-note { margin:22px 0 0; text-align:center; font-size:11px; line-height:1.6; color:var(--gsoa-gray); }
.gsoa-ow-privacy-note a { color:var(--gsoa-burgundy); text-decoration:underline; text-underline-offset:2px; }


/* v0.9.3 mobile login modal refinements */
@media (max-width: 520px) {
  .gsoa-ow-modal.open {
    align-items: flex-start;
    justify-content: flex-start;
  }
  .gsoa-ow-modal {
    padding: 0 !important;
  }
  .gsoa-ow-modal-panel {
    width: 100%;
    max-width: none;
    height: 100vh;
    max-height: 100vh !important;
    border-radius: 0;
  }
  .gsoa-ow-modal-head {
    position: sticky;
    top: 0;
    z-index: 5;
    min-height: 64px;
    padding: 14px 16px;
  }
  .gsoa-ow-cancel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 13px;
    font-size: 13px;
  }
  .gsoa-ow-login {
    padding: 26px 20px 36px;
  }
  .gsoa-ow-social-login {
    gap: 12px;
  }
  .gsoa-ow-privacy-note {
    margin-top: 22px;
    padding-top: 2px;
  }
}


/* v0.9.4 mobile modal visibility + spacing fix */
.gsoa-ow-login-close {
  display:none;
  margin:20px auto 0;
  background:#fff;
  color:var(--gsoa-gray);
  border:1px solid var(--gsoa-line);
  border-radius:8px;
  padding:10px 18px;
  font-size:13px;
  font-weight:700;
  cursor:pointer;
}
@media (max-width: 520px) {
  body.gsoa-ow-modal-open .fusion-header-wrapper,
  body.gsoa-ow-modal-open .fusion-header,
  body.gsoa-ow-modal-open .fusion-tb-header,
  body.gsoa-ow-modal-open header.fusion-header-wrapper,
  body.gsoa-ow-modal-open #side-header {
    display:none !important;
  }
  body.gsoa-ow-modal-open {
    overflow:hidden !important;
  }
  .gsoa-ow-modal.open {
    position:fixed !important;
    inset:0 !important;
    z-index:2147483647 !important;
    display:flex !important;
    align-items:stretch !important;
    justify-content:stretch !important;
    padding:0 !important;
  }
  .gsoa-ow-modal-panel {
    width:100vw !important;
    height:100dvh !important;
    max-height:100dvh !important;
    border-radius:0 !important;
  }
  .gsoa-ow-modal-head {
    display:flex !important;
    position:relative !important;
    top:auto !important;
    z-index:10 !important;
    min-height:62px !important;
  }
  .gsoa-ow-modal-body {
    flex:1 1 auto;
    overflow-y:auto;
  }
  .gsoa-ow-privacy-note {
    margin-top:30px !important;
  }
  .gsoa-ow-login-close {
    display:block;
  }
}

/* v0.9.6 desktop login notice spacing */
@media (min-width: 521px) {
  .gsoa-ow-login .gsoa-ow-privacy-note {
    margin-top: 30px !important;
  }
}


/* v0.9.8 bilingual UI + icon close */
.gsoa-ow-tabs button,
.gsoa-ow-write,
.gsoa-ow-submit,
.gsoa-ow-login-btn {
  flex-direction: column;
  gap: 2px;
}
.gsoa-ow-tabs button span,
.gsoa-ow-write span,
.gsoa-ow-submit span,
.gsoa-ow-login-btn span {
  display:block;
  line-height:1.15;
}
.gsoa-ow-tabs button em,
.gsoa-ow-write em,
.gsoa-ow-submit em,
.gsoa-ow-login-btn em,
.gsoa-ow-search-label em,
.gsoa-ow-modal-head strong em,
.gsoa-ow-login > p em,
.gsoa-ow-privacy-note em,
.gsoa-ow-field-en {
  display:block;
  font-style:normal;
  font-size:9px;
  font-weight:500;
  letter-spacing:.06em;
  line-height:1.25;
  opacity:.68;
  text-transform:uppercase;
}
.gsoa-ow-write em,
.gsoa-ow-submit em,
.gsoa-ow-login-btn em {
  color:rgba(255,255,255,.72);
}
.gsoa-ow-tabs button em {
  font-size:8px;
  letter-spacing:.05em;
}
.gsoa-ow-tabs button.active em,
.gsoa-ow-tabs button:hover em {
  color:rgba(255,255,255,.72);
  opacity:1;
}
.gsoa-ow-search-label {
  display:flex;
  align-items:flex-end;
  gap:8px;
}
.gsoa-ow-search-label em {
  display:inline-block;
  margin-bottom:1px;
}
.gsoa-ow-modal-head strong span {
  display:block;
  line-height:1.2;
}
.gsoa-ow-modal-head strong em {
  color:rgba(255,255,255,.72);
  margin-top:2px;
}
.gsoa-ow-login > p em,
.gsoa-ow-privacy-note em,
.gsoa-ow-field-en {
  color:var(--gsoa-gray);
  margin-top:3px;
}
.gsoa-ow-field-en {
  font-size:9px;
  letter-spacing:.04em;
}
.gsoa-ow-close-icon {
  width:40px;
  height:40px;
  min-width:40px;
  padding:0 !important;
  border-radius:999px !important;
  font-size:28px !important;
  line-height:1 !important;
  font-weight:300 !important;
}
@media (max-width:680px){
  .gsoa-ow-tabs button em { font-size:7.5px; }
  .gsoa-ow-write { min-height:48px; }
}
