:root{ --rv2-sub:#DCA6AE; }

/*! review.css ??고객 리뷰 (merged into 0.398.1) */
:root{ --rv2-line:#E6EAF1; --rv2-muted:#6B7280; --rv2-accent:#B7616E; --rv2-primary:#1F3FB8; --rv2-card:#fff; --rv2-shadow:0 1px 2px rgba(16,24,40,.06); --rv2-radius:12px; }
.rv2__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.rv2__title{margin:0;font-size:1.6rem;color:#0f1a2a}
.btn-ghost{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:0;background:#DCA6AE;color:#fff;font-weight:700;cursor:pointer}


.rv2__photos{margin-bottom:18px}
.rv2__photos-head{display:flex;align-items:baseline;gap:8px;margin-bottom:10px}
.rv2__photos-head strong{font-weight:800}
.rv2__thumbs{display:flex;gap:12px;overflow:auto;padding-bottom:6px}
.thumb{border:0;background:none;padding:0;border-radius:12px;overflow:hidden;box-shadow:var(--rv2-shadow);cursor:pointer;min-width:120px}
.thumb img{display:block;width:120px;height:120px;object-fit:cover}
.thumb--video{position:relative;background:#000}
.thumb__video{display:block;width:120px;height:120px;object-fit:cover;border-radius:inherit;background:#000;pointer-events:none}
.thumb.-placeholder{display:grid;place-items:center;background:#F3F5F9;width:120px;height:120px;border:1px dashed var(--rv2-line)}
.ico-image{width:28px;height:28px;border:2px solid #B8C1D1;border-radius:6px;display:inline-block;position:relative}
.ico-image::after{content:"";position:absolute;right:4px;bottom:4px;width:10px;height:10px;border-radius:2px;background:#B8C1D1}
.thumb__badge{position:absolute;right:6px;bottom:6px;background:rgba(15,26,42,.75);color:#fff;padding:2px 6px;border-radius:999px;font-size:.7rem;font-weight:700}
.rv2__compose .compose-card{background:#F6F8FB;border:1px solid var(--rv2-line);border-radius:12px;padding:16px}
.compose__row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.compose__row.-col{grid-template-columns:1fr}
.field .label{display:block;margin-bottom:6px;color:#0f172a;font-weight:700}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--rv2-line);border-radius:10px;padding:10px;background:#fff}

.rv2__compose .field{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.rv2__compose .field .label{
  margin-bottom:0;
}
.rv2__compose .compose__row{
  align-items:flex-start;
}

.stars-input button{font-size:22px;line-height:1;color:#D4D8E0;background:none;border:0;cursor:pointer;text-shadow:0 0 .8px currentColor,0 0 .8px currentColor}
.stars-input button.is-on{color:#F5B301;text-shadow:0 0 1px #F5B301,0 0 1px #F5B301}
.rv2__list{list-style:none;margin:10px 0 0;padding:0;}
.rv2-card{
  background:var(--rv2-card);
  border:1px solid var(--rv2-line);
  border-radius:12px;
  box-shadow:var(--rv2-shadow);
  padding:16px;
  margin-bottom:18px;
  width:100%;
  box-sizing:border-box;
}
.rv2-card__media-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-start;
  justify-content:flex-start;
  margin:12px 0;
}
.rv2-card__media{
  position:relative;
  width:120px;
  height:120px;
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--rv2-line);
}
.rv2-card__media img,
.rv2-card__media video{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
  display:block;
}

.rv2-card__media video{background:#000;}


.rv2-card .name{font-weight:800}
.badge{background:#ECF2FF;color:#3652C8;border-radius:999px;padding:4px 8px;font-weight:700;font-size:.8rem}
.stars{letter-spacing:1px;font-weight:900}
.stars.-y{color:#F5B301;}
.date{color:#8A94A7;font-size:.85rem;margin-left:auto}
.rv2-card__text{color:#242b3a;line-height:1.6}
.btn-more{margin-top:6px;border:0;background:none;color:#1F3FB8;font-weight:800;cursor:pointer}
.rv2__more{display:flex;justify-content:center;margin:18px 0 8px}
.btn-outline{border:1px solid var(--rv2-line);background:#fff;border-radius:12px;padding:10px 18px;font-weight:800;color:#0f172a;box-shadow:var(--rv2-shadow)}
.rv2-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.86);display:grid;grid-template-rows:auto auto 1fr;place-items:center;z-index:1000}
.rv2-lightbox[hidden]{display:none}
.rv2-lightbox__close{position:absolute;top:24px;right:28px;width:40px;height:40px;border-radius:50%;border:0;background:#fff;color:#111;font-size:24px;cursor:pointer}
.rv2-lightbox__img{max-width:78vw;max-height:72vh;border-radius:10px;box-shadow:0 6px 30px rgba(0,0,0,.4)}
.rv2-lightbox__thumbs{display:flex;gap:10px;margin-top:12px}
.rv2-lightbox__thumbs img{width:72px;height:72px;object-fit:cover;border-radius:8px;border:2px solid transparent;cursor:pointer}
.rv2-lightbox__thumbs img.is-on{border-color:#fff}
@media (max-width:768px){ .compose__row{grid-template-columns:1fr} .rv2-lightbox__img{max-width:92vw;max-height:70vh} .thumb img,.thumb.-placeholder{width:120px;height:120px} }

.rv2__header .sec-title{margin:0}

/* v0.399.1 - compose open/close animation (safe, scoped) */
#reviews .rv2__compose{ display:grid; grid-template-rows:0fr; opacity:0; margin-bottom:0; transition:grid-template-rows 240ms ease, opacity 240ms ease, margin 240ms ease; }
#reviews .rv2__compose.is-open{ grid-template-rows:1fr; opacity:1; margin-bottom:18px; }
#reviews .rv2__compose .compose-inner{ overflow:hidden; }


/* v0.400 button subcolor + open-state outline (scoped) */
#reviews #btnWrite, 
#reviews .btn-ghost{ background:var(--brand-sub); color:#fff; border:0; }
#reviews #btnWrite.is-on, 
#reviews .btn-ghost.is-on{ background:transparent; color:var(--brand-sub); border:2px solid var(--brand-sub); }


/* v0.401 submit button & layout (scoped) */
#reviews .compose__actions{ display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }
#reviews .compose__actions #btnCancel{
  border:1px solid var(--rv2-line);
  background:#fff;
  color:#0f172a;
  border-radius:12px;
  padding:10px 16px;
  font-weight:700;
  cursor:pointer;
  transition:background-color .2s ease, color .2s ease, border-color .2s ease;
}
#reviews .compose__actions #btnCancel:hover{
  background:#f3f5f9;
}
#reviews .compose__actions .btn-primary{
  background: var(--brand-sub);
  color:#fff;
  border:0;
  border-radius:12px;
  padding:10px 16px;
  font-weight:800;
  cursor:pointer;
  box-shadow:var(--rv2-shadow);
  transition: background .2s ease, box-shadow .2s ease;
}
#reviews .compose__actions .btn-primary:hover{
  background: var(--rv2-primary);
  box-shadow:0 4px 12px rgba(31,63,184,.25);
}




/* v0.404: force-square thumbnails for review list (robust & scoped) */
#reviews .rv2-card__media{ 
  width: var(--rv2-thumb, 120px) !important; 
  height: var(--rv2-thumb, 120px) !important; 
  flex: 0 0 var(--rv2-thumb, 120px) !important; 
  position: relative;
}
#reviews .rv2-card__media a{ 
  display:block; 
  width: 100% !important; 
  height: 100% !important; 
}
#reviews .rv2-card__media img,
#reviews .rv2-card__media video,
#reviews .rv2-card__media .rv2-card__media-img{
  display:block;
  width: 100% !important;
  height: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: 12px;
}
/* keep the +N badge pinned */
#reviews .rv2-card__media .rv2-card__more{ right: 6px; bottom: 6px; }


/* v0.405: lightbox thumbs basic layout */
#reviews .rv2-lightbox{ position:fixed; inset:0; background:rgba(0,0,0,.8); display:grid; place-items:center; z-index:9999; }
#reviews .rv2-lightbox[hidden]{ display:none; }
#reviews .rv2-lightbox__img{ max-width:80vw; max-height:70vh; display:block; }
#reviews .rv2-lightbox__close{ position:absolute; top:16px; right:20px; font-size:28px; background:transparent; color:#fff; border:0; cursor:pointer; }
#reviews .rv2-lightbox__thumbs{ display:flex; gap:8px; margin-top:16px; justify-content:center; flex-wrap:wrap; }
#reviews .rv2-lightbox__thumbs img{ width:64px; height:64px; object-fit:cover; border-radius:8px; opacity:.7; cursor:pointer; }
#reviews .rv2-lightbox__thumbs img.is-on{ opacity:1; outline:2px solid var(--brand-sub, #DCA6AE); }


/* v0.406: portal lightbox (global) */
.rv2-lightbox--portal{ position:fixed; inset:0; background:rgba(0,0,0,.8); display:grid; place-items:center; z-index:9999; }
.rv2-lightbox--portal[hidden]{ display:none; }
.rv2-lightbox--portal .rv2-lightbox__img{ max-width:80vw; max-height:70vh; display:block; }
.rv2-lightbox--portal .rv2-lightbox__close{ position:absolute; top:16px; right:20px; font-size:28px; background:transparent; color:#fff; border:0; cursor:pointer; }
.rv2-lightbox--portal .rv2-lightbox__thumbs{ display:flex; gap:8px; margin-top:16px; justify-content:center; flex-wrap:wrap; }
.rv2-lightbox--portal .rv2-lightbox__thumbs img{ width:64px; height:64px; object-fit:cover; border-radius:8px; opacity:.75; cursor:pointer; }
.rv2-lightbox--portal .rv2-lightbox__thumbs img.is-on{ opacity:1; outline:2px solid var(--brand-sub, #DCA6AE); }
body.rv2-no-scroll{ overflow:hidden; }


/* v0.407: center lightbox content nicely */
.rv2-lightbox--portal{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:6vh 4vw; /* keep away from very top/bottom/edges */
}
.rv2-lightbox__content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  max-width:90vw;
  max-height:88vh;
}
.rv2-lightbox--portal .rv2-lightbox__img{
  max-width:90vw;
  max-height:72vh;
}


/* v0.408: unified lightbox visuals */
.rv2-lightbox,
.rv2-lightbox--portal{
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,.8) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6vh 4vw !important;
  z-index: 9999 !important;
}
.rv2-lightbox[hidden]{ display:none !important; }
.rv2-lightbox__content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
  max-width:90vw;
  max-height:88vh;
}
.rv2-lightbox__img{
  max-width:90vw;
  max-height:72vh;
  display:block;
}
.rv2-lightbox__thumbs{
  display:flex;
  gap:8px;
  margin-top:16px;
  justify-content:center;
  flex-wrap:wrap;
}
.rv2-lightbox__thumbs img{ width:64px; height:64px; object-fit:cover; border-radius:8px; opacity:.8; cursor:pointer; }
.rv2-lightbox__thumbs img.is-on{ opacity:1; outline:2px solid var(--brand-sub, #DCA6AE); }
.rv2-lightbox__close{
  position: fixed;
  top: 16px;
  right: 20px;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(0,0,0,.5);
  color:#fff;
  font-size:22px;
  border:0;
  cursor:pointer;
  display:grid;
  place-items:center;
}
.rv2-lightbox__close:hover{ background: rgba(0,0,0,.7); }


/* v0.409: disable review card more-badge completely */
.rv2-card__more{ display:none !important; }


/* v0.411 minimal ??'+' visual badge only (no JS) */
.rv2-card[data-has-multi="1"] .rv2-card__media{ position: relative; }
.rv2-card[data-has-multi="1"] .rv2-card__media::after{
  content: '+';
  position: absolute; right: 8px; bottom: 8px;
  width: 28px; height: 28px; border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 700; font-size: 18px; line-height: 28px;
  color: #fff; background: rgba(0,0,0,.55);
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
  pointer-events: none; /* click-through ??기존 ?�작 ?��? */
}
@media (max-width: 480px){
  .rv2-card[data-has-multi="1"] .rv2-card__media::after{
    width: 24px; height: 24px; font-size: 16px; right: 6px; bottom: 6px;
  }
}



/* v0.420 ??review: square thumbnails + clamp + subcolor '?�보? */
#reviews .rv2__thumbs .thumb{
  flex: 0 0 auto;
  width: clamp(64px, 12vw, 96px);
  aspect-ratio: 1 / 1;            /* keep perfect square */
  display: grid; place-items: center;
}
#reviews .rv2__thumbs .thumb > img{
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  display: block;
}
#reviews .rv2__thumbs .thumb.-placeholder{ 
  background: #f4f6fa;
}
#reviews .rv2__thumbs .thumb.-placeholder .ico-image{ color:#9aa4b2; }

/* clamp the long review text by default */
.rv2-card__text.-clamp{
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* '?�보??�기' as subcolor link-style */
#reviews .btn-more{
  color: #31527e; 
  background: transparent; border: 0; padding: 4px 0;
  font-weight: 700; cursor: pointer;
}
#reviews .btn-more:focus{ outline: none; text-decoration: underline; }




/* v0.421 ??enforce square thumbnails & style excerpt toggle */
#reviews .rv2__thumbs .thumb{
  width: clamp(64px, 12vw, 96px);
  height: auto;               /* let JS/ratio control height */
  aspect-ratio: 1 / 1;
  display: grid; place-items: center;
}
#reviews .rv2__thumbs .thumb > img{
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  display: block;
}
/* link-like button in sub color */
#reviews .btn-outline[data-toggle="excerpt"]{
  color: #31527e; background: transparent; border: 0; padding: 4px 0; font-weight: 700; cursor: pointer;
}
#reviews .btn-outline[data-toggle="excerpt"]:focus{ outline: none; text-decoration: underline; }


/* v0.422 ??helper to hide more/less button */
#reviews .btn-outline.is-hidden{ display:none; }

/* v0.423 ??hidden state for more/less */
#reviews .btn-outline.is-hidden{ display:none; }



/* v0.424 ??excerpt button hidden by default; shown only with '-active' */
#reviews .btn-outline[data-toggle="excerpt"]{ display:none; }
#reviews .btn-outline[data-toggle="excerpt"].-active{ display:inline; }
/* keep subcolor style */
#reviews .btn-outline[data-toggle="excerpt"]{ color:#31527e; background:transparent; border:0; padding:4px 0; font-weight:700; cursor:pointer; }



/* v0.425 ??remove excerpt feature: always show full text, hide buttons */
#reviews .rv2-card__text{ display:block; -webkit-line-clamp: initial; -webkit-box-orient: initial; overflow: visible; }
#reviews .rv2-card__text.-clamp{ display:block; -webkit-line-clamp: initial; -webkit-box-orient: initial; overflow: visible; }
#reviews [data-toggle="excerpt"]{ display:none !important; }



/* v0.426 ??excerpt (clean) */
#reviews .rv2-card__text.-clamp{
  display:-webkit-box;
  -webkit-line-clamp: var(--excerpt-lines, 3);
  -webkit-box-orient: vertical;
  overflow: hidden;
}
#reviews .btn-excerpt{
  display:none;
  color:#31527e;
  font-weight:700;
  background:transparent;
  border:0;
  padding:4px 0;
  cursor:pointer;
}
#reviews .btn-excerpt.is-active{ display:inline; }
#reviews .btn-excerpt:focus{ outline:none; text-decoration:underline; }




/* v0.427 ??Reviews empty state */
#reviews .rv2-empty{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap: 12px; padding: 36px 16px; border: 1px dashed #E5E8EE; border-radius: 12px;
  background: #F8FAFD; color:#445063; text-align:center;
}
#reviews .rv2-empty .title{ font-weight:700; font-size:1rem; }
#reviews .rv2-empty .desc{ font-size:0.95rem; color:#5B6676; }
#reviews .rv2-empty .btn-write{
  appearance:none; border:0; border-radius:10px; padding:10px 14px; cursor:pointer;
  font-weight:700; background:#31527e; color:#fff;
}
#reviews .rv2-empty .btn-write:focus{ outline:none; box-shadow:0 0 0 2px rgba(49,82,126,.25); }


/* v0.430 ??helpers */
#reviews .is-hidden{ display:none !important; }


/* v0.432 ??smooth fold for empty box */
#reviews .rv2-empty{
  transition: max-height .25s ease, opacity .25s ease;
  max-height: 500px; /* expanded baseline, adjusted by JS */
}
#reviews .is-hidden{ display:none !important; }



/* v0.449-p1 ??compose select & uploader & head layout */
/* increase right padding for selects so text doesn't stick to arrow */
.rv2__compose .field select{ padding-right: 34px; }

.rv2__compose .field{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.rv2__compose .field .label{
  margin-bottom:0;
}
.rv2__compose .compose__row{
  align-items:flex-start;
}

/* uploader dashed dropzone style */

.rv2__compose .uploader{
  border: 2px dashed var(--rv2-line);
  border-radius: 12px;
  min-height: 72px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px;
  color: var(--hint, #9aa3af);
  background: #fafbfc;
  cursor:pointer;
  position:relative;
  transition:border-color .2s ease, background .2s ease;
}
.rv2__compose .uploader:focus,
.rv2__compose .uploader:focus-within{
  outline:none;
  border-color:var(--rv2-primary);
}

.rv2__compose .uploader--simple{
  border:0;
  padding:0;
  background:transparent;
  cursor:default;
}
.rv2__compose .uploader--simple:focus,
.rv2__compose .uploader--simple:focus-within{
  border-color:transparent;
}

.rv2__compose .uploader__items{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  min-height:72px;
}
.rv2__compose .uploader__add{
  display:flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  border-radius:10px;
  border:2px dashed var(--rv2-line);
  background:#fff;
  color:#475467;
  font-size:32px;
  line-height:1;
  cursor:pointer;
  transition:border-color .2s ease, color .2s ease, background .2s ease;
}
.rv2__compose .uploader__items .uploader__add{
  align-self:flex-start;
}
.rv2__compose .uploader__add:hover,
.rv2__compose .uploader__add:focus{
  border-color:var(--rv2-primary);
  color:var(--rv2-primary);
  outline:none;
}
.rv2__compose .uploader__item{
  position:relative;
  width:72px;
  height:72px;
  border-radius:10px;
  overflow:hidden;
  border:1px solid var(--rv2-line);
  background:#fff;
}
.rv2__compose .uploader__media{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.rv2__compose .uploader__item--video .uploader__media{
  background:#000;
}
.rv2__compose .uploader__badge{
  position:absolute;
  left:6px;
  bottom:6px;
  background:#E11D48;
  color:#fff;
  padding:2px 6px;
  border-radius:999px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.02em;
}
.rv2__compose .uploader__fallback{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  width:100%;
  height:100%;
  font-size:.75rem;
  padding:6px;
  color:#475467;
}
.rv2__compose .uploader.-drag{
  border-color:var(--rv2-primary);
  background:rgba(31,63,184,.05);
}
.rv2__compose .uploader__input{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  border:0;
  clip:rect(0,0,0,0);
  clip-path:inset(50%);
  overflow:hidden;
}
.rv2__compose .uploader__remove{
  position:absolute;
  top:4px;
  right:4px;
  width:24px;
  height:24px;
  border-radius:50%;
  border:0;
  background:#E11D48;
  color:#fff;
  font-size:14px;
  line-height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.rv2__compose .uploader__remove:hover{
  background:#C1124A;
}
.rv2__compose .uploader__remove:focus{
  outline:none;
  box-shadow:0 0 0 2px rgba(49,82,126,.2);
}
.rv2__compose .compose__error{
  margin-top:4px;
  min-height:16px;
  font-size:.82rem;
  color:#D92D20;
  font-weight:600;
}
.rv2__compose .field.is-error .label{
  color:#D92D20;
}
.rv2__compose .field.is-error input,
.rv2__compose .field.is-error select,
.rv2__compose .field.is-error textarea{
  border-color:#D92D20;
  box-shadow:0 0 0 1px rgba(217,45,32,.15);
}
.rv2__compose .stars-input.is-error button{
  color:#D92D20;
}

/* review card head reflow: name -> badge -> stars -> (keep date small) */







/* v0.449-p2 ??fixes per request */
/* 1) Hide any camera icon that might be injected */
.rv2__write .ico-camera, .rv2__header .ico-camera{ display:none; }


/* 3) Review head order: Name -> Stars -> Procedure(badge) */





/* 4) Procedure badge: no pill, muted color */



/* v0.450-p1 ??review head layout: name + date (same line) ??stars (next line) ??procedure */
.rv2-card__head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  column-gap:8px;
  row-gap:6px;
  margin-bottom: 1rem;
}
.rv2-card__head .name{ order:0; }
.rv2-card__head .date{ order:1; font-size:12px; color:#9aa3af; }
.rv2-card__head .stars{ order:2; flex-basis:100%; }
.rv2-card__head .badge{
  order:3;
  background: transparent;
  color: var(--muted, #8A94A7);
  padding: 0;
  border-radius: 0;
  font-weight:600;
}

/* media sizing */
#reviews .rv2-card__media{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--rv2-line);
}
#reviews .rv2-card__media img,
#reviews .rv2-card__media video,
#reviews .rv2-card__media .review-video{
  width:100%;
  height:100%;
  border-radius:inherit;
  object-fit:cover;
}
#reviews .rv2-card__media--video{background:#000;}
