/* iSeodang Reviews Hub v1.8.0 — design tokens per iseodang-page-design-seo §1 (60-30-10, Red = CTA only) */
.isd-rv{--isd-red:#E30613;--isd-navy:#25257E;--isd-blue:#2A2E9E;--isd-cream:#FAF7F1;--isd-off:#FDFBF7;--isd-line:#DDD8CE;--isd-gray:#6B6B6B;
  --isd-r-card:12px;--isd-r-btn:8px;--isd-gap:16px;font-family:inherit;color:#111;background:var(--isd-off);overflow-x:clip;position:relative}
.isd-rv *,.isd-rv *::before,.isd-rv *::after{box-sizing:border-box}
.isd-rv__h2{font-size:22px;line-height:1.3;color:var(--isd-navy);margin:0 0 20px;text-align:center}
@media(min-width:768px){.isd-rv__h2{font-size:28px}}

/* ① HERO */
.isd-rv__hero{position:relative;min-height:72vh;display:grid;place-items:center;overflow:hidden;color:#fff;isolation:isolate}
.isd-rv__hero-bg{position:absolute;inset:0;z-index:-1}
.isd-rv__hero-bg img{width:100%;height:100%;object-fit:cover;will-change:transform;transform-origin:50% 60%}
.isd-rv__hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(37,37,126,.25) 0%,rgba(0,0,0,.55) 100%)}
.isd-rv__hero-inner{max-width:900px;padding:96px 20px 64px;text-align:center}
.isd-rv__eyebrow{letter-spacing:.18em;font-size:13px;font-weight:600;opacity:.9;margin:0 0 12px}
.isd-rv__h1{font-size:32px;line-height:1.15;margin:0 0 16px;font-weight:800;perspective:600px}
@media(min-width:768px){.isd-rv__h1{font-size:56px}}
.isd-rv__ch{display:inline-block;white-space:pre;backface-visibility:hidden}
.isd-rv__lead{font-size:16px;line-height:1.6;max-width:600px;margin:0 auto 24px;opacity:.95}
.isd-rv__lang{display:inline-flex;gap:6px;padding:6px;border-radius:999px;background:rgba(255,255,255,.14);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.isd-rv__lang-btn{min-width:44px;min-height:44px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:#fff;font-size:14px;cursor:pointer;transition:background .25s,color .25s}
.isd-rv__lang-btn.is-active{background:#fff;color:var(--isd-navy);font-weight:700}

/* ② TRUST */
.isd-rv__trust{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;list-style:none;margin:-32px auto 0;padding:0 16px;max-width:1080px;position:relative;z-index:2}
@media(min-width:768px){.isd-rv__trust{grid-template-columns:repeat(4,1fr)}}
.isd-rv__trust li{background:#fff;border:1px solid var(--isd-line);border-radius:var(--isd-r-card);padding:16px;text-align:center;box-shadow:0 8px 24px rgba(37,37,126,.06)}
.isd-rv__trust strong{display:block;color:var(--isd-navy);font-size:20px}
.isd-rv__trust span{font-size:13px;color:var(--isd-gray)}

/* ③ BENTO GRID */
.isd-rv__grid-wrap{padding:56px 0}
@media(min-width:768px){.isd-rv__grid-wrap{padding:88px 0}}
.isd-rv__grid{display:grid;gap:var(--isd-gap);max-width:1120px;margin:0 auto;padding:0 16px;
  grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(220px,auto);grid-auto-flow:dense}
.isd-rv__card--2x1{grid-column:span 2}
.isd-rv__card--1x2{grid-row:span 2}
.isd-rv__card--2x2{grid-column:span 2;grid-row:span 2}
@media(max-width:1023px){.isd-rv__grid{grid-template-columns:repeat(2,1fr)}}
/* MOBILE → horizontal snap carousel (Reels style) */
@media(max-width:767px){
  .isd-rv__grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;padding:0 24px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .isd-rv__grid::-webkit-scrollbar{display:none}
  .isd-rv__card{flex:0 0 84vw;scroll-snap-align:center;min-height:62vh;grid-column:auto!important;grid-row:auto!important}
  .isd-rv__card--video{flex-basis:70vw;min-height:110vw}
}
.isd-rv__dots{display:flex;justify-content:center;gap:6px;margin-top:14px}
.isd-rv__dots i{width:6px;height:6px;border-radius:50%;background:var(--isd-line);transition:width .25s,background .25s}
.isd-rv__dots i.is-on{width:18px;border-radius:3px;background:var(--isd-navy)}

/* CARD */
.isd-rv__card{position:relative;display:flex;flex-direction:column;gap:12px;padding:20px;background:#fff;border:1px solid var(--isd-line);border-radius:var(--isd-r-card);
  box-shadow:0 2px 6px rgba(0,0,0,.04);overflow:hidden;transform-style:preserve-3d;will-change:transform;opacity:0}
@media(prefers-reduced-motion:reduce){.isd-rv__card{opacity:1}}
.isd-rv__glare{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .35s;mix-blend-mode:soft-light;border-radius:inherit}
.isd-rv__author{display:flex;align-items:center;gap:12px}
.isd-rv__author strong{display:block;font-size:15px;color:#111}
.isd-rv__author small{color:var(--isd-gray);font-size:13px}
.isd-rv__avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;flex:0 0 48px}
.isd-rv__avatar--ph{display:grid;place-items:center;background:var(--isd-navy);color:#fff;font-weight:700;font-size:18px}
.isd-rv__stars{margin-left:auto;color:#F5B301;letter-spacing:1px;font-size:14px}
.isd-rv__body{font-size:16px;line-height:1.6;color:#222;margin:0;flex:1}
.isd-rv__orig{align-self:flex-start;background:none;border:0;color:var(--isd-blue);font-size:13px;text-decoration:underline;cursor:pointer;padding:6px 0;min-height:32px}
/* in-flow (not absolute) so it never overlaps the author name on narrow 1x2 cards — QA 2026-09-02 */
.isd-rv__badge{align-self:flex-start;background:var(--isd-navy);color:#fff;font-size:12px;font-weight:700;padding:6px 10px;border-radius:999px;order:-1}
.isd-rv__card--topik{background:linear-gradient(160deg,#fff 60%,var(--isd-cream))}
/* Teacher reply */
.isd-rv__reply{display:flex;gap:10px;padding:12px;background:var(--isd-cream);border-left:3px solid var(--isd-navy);border-radius:8px;font-size:14px;line-height:1.5}
.isd-rv__reply img{width:32px;height:32px;border-radius:50%;object-fit:cover;flex:0 0 32px}
.isd-rv__reply strong{color:var(--isd-navy);font-size:13px}
.isd-rv__reply p{margin:2px 0 0;color:#333}
/* Reactions */
.isd-rv__react{display:flex;gap:8px;margin-top:auto}
.isd-rv__react button{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border:1px solid var(--isd-line);border-radius:999px;background:#fff;cursor:pointer;font-size:15px;transition:border-color .2s,background .2s}
.isd-rv__react button:hover{border-color:var(--isd-navy)}
.isd-rv__react button.is-done{background:var(--isd-cream);border-color:var(--isd-navy)}
.isd-rv__react b{font-size:13px;color:var(--isd-gray);font-weight:600}
/* Video */
.isd-rv__card--video{padding:0;background:#000}
.isd-rv__card--video .isd-rv__author,.isd-rv__card--video .isd-rv__body,.isd-rv__card--video .isd-rv__react{position:relative;z-index:2;padding:0 16px;color:#fff}
.isd-rv__card--video .isd-rv__body{color:#eee}
.isd-rv__card--video .isd-rv__react{padding-bottom:16px}
.isd-rv__card--video .isd-rv__author{padding-top:16px}
.isd-rv__video{position:absolute;inset:0;overflow:hidden;cursor:pointer}
.isd-rv__video img{width:100%;height:100%;object-fit:cover;opacity:.75;will-change:transform,filter}
.isd-rv__video-el{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover;pointer-events:none}
.isd-rv__play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.85);color:var(--isd-navy);font-size:20px}
.isd-rv__card--video:hover .isd-rv__play{opacity:0;transition:opacity .4s}

/* ④ FAQ */
.isd-rv__faq{max-width:760px;margin:0 auto;padding:0 16px 56px}
.isd-rv__faq details{border-bottom:1px solid var(--isd-line);padding:14px 0}
.isd-rv__faq summary{cursor:pointer;font-weight:600;color:var(--isd-navy);font-size:16px;min-height:44px;display:flex;align-items:center}
.isd-rv__faq p{color:#333;line-height:1.6;margin:8px 0 0}

/* ⑤ CTA */
.isd-rv__cta{background:var(--isd-navy);color:#fff;text-align:center;padding:64px 16px}
.isd-rv__cta .isd-rv__h2{color:#fff}
.isd-rv__btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;margin:6px;border-radius:var(--isd-r-btn);font-weight:700;text-decoration:none;font-size:16px;will-change:transform}
.isd-rv__btn--primary{background:var(--isd-red);color:#fff}
.isd-rv__btn--ghost{border:2px solid #fff;color:#fff}

/* Lottie stage */
.isd-rv__lottie{position:absolute;inset:0;pointer-events:none;z-index:50}
.isd-rv__burst{position:absolute;width:160px;height:160px;transform:translate(-50%,-50%)}

/* === 라이브 QA 수정 (2026-09-02, iseodang.com/reviews-new) ============================ */

/* v1.0.2 — Astra 상위 컨테이너 탈출 (전체폭).
   이 스타일시트는 [isd_reviews] 가 있는 페이지에서만 로드되므로 다른 페이지에 영향 없음. */
html{overflow-x:clip}
.isd-rv{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
body:has(.isd-rv) .entry-title,body:has(.isd-rv) .ast-archive-description{display:none}
body:has(.isd-rv) .site-content .ast-container,body:has(.isd-rv) .site-content .entry-content{max-width:100%;padding-left:0;padding-right:0;margin-top:0}
/* :has() 미지원 구형 브라우저 대비 — 제목이 보일 뿐 레이아웃은 깨지지 않는다. */

/* v1.0.3 — 테마 색상 오버라이드 방어.
   Astra가 h1/h2/p 에 명시적 color 를 주므로 .isd-rv__hero{color:#fff} 상속이 무력화된다 → 흰 배경글씨가 진회색으로 보임. */
.isd-rv__hero .isd-rv__h1,.isd-rv__hero .isd-rv__eyebrow,.isd-rv__hero .isd-rv__lead{color:#fff}
.isd-rv .isd-rv__h2{color:var(--isd-navy)}
.isd-rv__cta .isd-rv__h2,.isd-rv__cta .isd-rv__btn{color:#fff}
.isd-rv__card .isd-rv__body{color:#222}
.isd-rv__card--video .isd-rv__body{color:#eee}
.isd-rv__card .isd-rv__author strong{color:#111}
.isd-rv__faq summary,.isd-rv__reply strong,.isd-rv__trust strong{color:var(--isd-navy)}

/* v1.0.4 — Astra .entry-content ul (특이도 0,1,1) 이 .isd-rv__trust(0,1,0) 의 margin:auto 를 이겨 좌측 정렬되던 문제. */
.isd-rv ul,.isd-rv ol{list-style:none}
.isd-rv ul.isd-rv__trust{margin:-32px auto 0;padding:0 16px}

/* v1.0.5 — [hidden] 속성이 display:flex 에 져서 데스크톱에도 모바일 점이 보이던 문제 + 좁은 카드 이름 줄바꿈. */
.isd-rv__dots[hidden]{display:none}
.isd-rv__author>div{min-width:0;flex:1}
.isd-rv__author small{display:block;line-height:1.35}

/* =========================================================================
   v1.1.0 — 후기 제출 폼 [isd_review_form]
   브랜드 토큰 재사용. 폼만 있는 페이지에서도 이 파일 하나만 로드된다.
   ====================================================================== */
.isd-rf{--isd-red:#E30613;--isd-navy:#25257E;--isd-cream:#FAF7F1;--isd-line:#DDD8CE;--isd-gray:#6B6B6B;
  max-width:680px;margin:0 auto;padding:32px 16px;color:#111}
.isd-rf *,.isd-rf *::before,.isd-rf *::after{box-sizing:border-box}
.isd-rf__title{font-size:24px;line-height:1.3;color:var(--isd-navy);margin:0 0 8px}
@media(min-width:768px){.isd-rf__title{font-size:28px}}
.isd-rf__lead{color:var(--isd-gray);font-size:15px;line-height:1.6;margin:0 0 24px}
.isd-rf__form,.isd-rf__thanks{background:#fff;border:1px solid var(--isd-line);border-radius:12px;padding:24px}
.isd-rf__row{display:grid;gap:16px}
@media(min-width:600px){.isd-rf__row{grid-template-columns:1fr 1fr}}
.isd-rf__field{display:block;margin:0 0 16px}
.isd-rf__field>span{display:block;font-size:14px;font-weight:600;color:#333;margin:0 0 6px}
.isd-rf__field input,.isd-rf__field select,.isd-rf__field textarea{
  width:100%;min-height:48px;padding:12px;border:1px solid var(--isd-line);border-radius:8px;
  font-size:16px;font-family:inherit;color:#111;background:#fff}
.isd-rf__field textarea{min-height:140px;line-height:1.6;resize:vertical}
.isd-rf__field input:focus,.isd-rf__field select:focus,.isd-rf__field textarea:focus{
  outline:2px solid var(--isd-navy);outline-offset:1px;border-color:var(--isd-navy)}
.isd-rf__count{display:block;margin-top:6px;font-size:13px;color:var(--isd-gray)}
.isd-rf__count.is-ok{color:#1a7f37;font-weight:600}
/* 별점: 라디오를 역순으로 두고 ~ 결합자로 채우기 (JS 불필요) */
.isd-rf__stars{border:0;padding:0;margin:0 0 16px;display:flex;flex-direction:row-reverse;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.isd-rf__stars legend{width:100%;font-size:14px;font-weight:600;color:#333;margin:0 0 6px;float:left}
.isd-rf__stars input{position:absolute;opacity:0;width:1px;height:1px}
.isd-rf__stars label{font-size:34px;line-height:1;color:var(--isd-line);cursor:pointer;padding:0 2px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}
.isd-rf__stars input:checked ~ label,.isd-rf__stars label:hover,.isd-rf__stars label:hover ~ label{color:#F5B301}
.isd-rf__stars input:focus-visible + label{outline:2px solid var(--isd-navy);border-radius:6px}
.isd-rf__consent{display:flex;gap:10px;align-items:flex-start;background:var(--isd-cream);border-radius:8px;padding:14px;font-size:14px;line-height:1.55;color:#333;margin:0 0 20px}
.isd-rf__consent input{width:20px;height:20px;flex:0 0 20px;margin-top:2px}
.isd-rf__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.isd-rf__error{background:#fdecec;border-left:3px solid var(--isd-red);color:#8a1216;padding:12px;border-radius:6px;font-size:14px;margin:0 0 16px}
.isd-rf__submit{width:100%;border:0;cursor:pointer;font-size:16px}
.isd-rf__submit:disabled{opacity:.6;cursor:progress}
.isd-rf__thanks{text-align:center}
.isd-rf__thanks p{color:var(--isd-gray);line-height:1.6;margin:0 0 20px}
.isd-rf__wa{display:inline-flex;border:2px solid var(--isd-navy);color:var(--isd-navy)}

/* ========================================================================
   v1.2.0 — 사진 없는 브랜드 히어로 (.isd-rv--art)
   실촬영본이 없을 때 가짜 사진을 띄우지 않는다. 한옥 지붕 곡선 모티브 + 브랜드 네이비.
   이미지 요청 0건이라 LCP 가 오히려 빨라진다. 관리자에서 사진을 지정하면 자동으로 사진 히어로.
   ===================================================================== */
.isd-rv--art .isd-rv__hero{
  background:
    url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22240%22%20height%3D%22120%22%20viewBox%3D%220%200%20240%20120%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20opacity%3D%220.11%22%3E%3Cpath%20d%3D%22M0%2096%20Q60%2046%20120%2096%20Q180%2046%20240%2096%22%2F%3E%3Cpath%20d%3D%22M0%2064%20Q60%2014%20120%2064%20Q180%2014%20240%2064%22%2F%3E%3Cpath%20d%3D%22M-120%2096%20Q-60%2046%200%2096%22%2F%3E%3Cpath%20d%3D%22M-120%2064%20Q-60%2014%200%2064%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") repeat,
    radial-gradient(120% 90% at 50% 8%, rgba(250,247,241,.20) 0%, rgba(250,247,241,0) 55%),
    linear-gradient(160deg, #2A2E9E 0%, #25257E 45%, #1A1A57 100%);
  background-size:240px 120px, auto, auto;
}
.isd-rv--art .isd-rv__hero::after{background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(0,0,0,.18) 100%)}
.isd-rv--art .isd-rv__hero::before{
  content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:0;
  background:linear-gradient(180deg,rgba(253,251,247,0) 0%,rgba(253,251,247,.10) 100%)}

/* =======================================================================
   v1.3.0 — 후기 카드 실사 사진 (수료증 든 학생 등)
   카드 패딩(20px)을 음수 마진으로 상쇄해 상단 전체폭으로 붙인다.
   =================================================================== */
.isd-rv__photo{width:calc(100% + 40px);margin:-20px -20px 4px;height:190px;object-fit:cover;object-position:50% 35%;
  border-radius:var(--isd-r-card) var(--isd-r-card) 0 0;display:block;background:var(--isd-cream)}
.isd-rv__card--2x1 .isd-rv__photo,.isd-rv__card--2x2 .isd-rv__photo{height:230px}
.isd-rv__card--1x2 .isd-rv__photo{height:260px}
@media(max-width:767px){.isd-rv__photo{height:200px}}

/* v1.3.1 — 사진 히어로 가독성: 얼굴 위 흰 글씨가 묻히지 않도록 중앙 스크림 추가.
   가장자리 얼굴은 살아있게 두고 글자 반경만 어둡게 한다. */
.isd-rv:not(.isd-rv--art) .isd-rv__hero::after{
  background:
    radial-gradient(68% 52% at 50% 50%, rgba(8,8,32,.64) 0%, rgba(8,8,32,.30) 55%, rgba(8,8,32,0) 78%),
    linear-gradient(180deg, rgba(37,37,126,.34) 0%, rgba(0,0,0,.58) 100%);
}
.isd-rv:not(.isd-rv--art) .isd-rv__h1{text-shadow:0 2px 18px rgba(0,0,0,.45)}
.isd-rv:not(.isd-rv--art) .isd-rv__lead,.isd-rv:not(.isd-rv--art) .isd-rv__eyebrow{text-shadow:0 1px 10px rgba(0,0,0,.5)}

/* ========================================================================
   v1.4.0 — TOPIK 성과 밴드 · 인터뷰(Q&A) 카드 · 샘플 배지
   =================================================================== */
.isd-rv__stats{max-width:1080px;margin:40px auto 0;padding:28px 16px;text-align:center;
  background:linear-gradient(135deg,var(--isd-navy) 0%,#1A1A57 100%);border-radius:var(--isd-r-card);color:#fff}
.isd-rv__stats-num{margin:0;font-size:44px;line-height:1;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.isd-rv__stats-num em{font-style:normal;color:#F5B301;margin-left:2px}
.isd-rv__stats-label{margin:8px 0 0;font-size:14px;opacity:.9}
@media(min-width:768px){.isd-rv__stats{padding:36px 24px}.isd-rv__stats-num{font-size:60px}.isd-rv__stats-label{font-size:16px}}
.isd-rv__qa{display:flex;flex-direction:column;gap:6px;flex:1}
.isd-rv__q{margin:10px 0 0;font-size:14px;font-weight:700;color:var(--isd-navy);line-height:1.45;padding-left:10px;border-left:3px solid var(--isd-navy)}
.isd-rv__q:first-child{margin-top:0}
.isd-rv__a{margin:0;font-size:15px;line-height:1.6;color:#222;padding-left:13px}
.isd-rv__card--interview{background:linear-gradient(180deg,#fff 70%,var(--isd-cream))}
.isd-rv__card--sample{border:2px dashed #d63638;background:repeating-linear-gradient(135deg,#fff,#fff 14px,#fff8f8 14px,#fff8f8 28px)}
.isd-rv__sample{align-self:flex-start;order:-2;background:#d63638;color:#fff;font-size:11px;font-weight:700;padding:4px 9px;border-radius:6px}

/* v1.5.1 — 히어로 사진 컬러 그레이딩 (2026-09-02)
   원본이 러티를 먹은 듯 뿤연하고 색이 물러 "예날 사진" 느낌이었다.
   대비·채도를 올려 안개를 걷고, 어둡게 깔던 스크림은 줄여 사진이 살아나게 한다.
   원본 파일은 그대로 — 수치만 바꾸면 언제든 되돌릴 수 있다. */
.isd-rv__hero-bg img{filter:contrast(1.20) saturate(1.28) brightness(1.05)}
.isd-rv:not(.isd-rv--art) .isd-rv__hero::after{
  background:
    radial-gradient(64% 48% at 50% 50%, rgba(6,6,28,.58) 0%, rgba(6,6,28,.26) 55%, rgba(6,6,28,0) 78%),
    linear-gradient(180deg, rgba(37,37,126,.18) 0%, rgba(0,0,0,.50) 100%);
}
/* ============================================================
   v1.6.0 — INFO CARDS (2026-09-02)
   후기가 적어 보이는 문제를 '사실'로 채우는 섹션. 후기 카드와 시각적으로
   확실히 구분되어야 방문자가 후기로 오인하지 않는다 → 크림 배경 + 네이비 스탯,
   별점·아바타·반응 버튼 없음. Astra 의 .entry-content ul (0,1,1) 을 이기려고
   .isd-rv ul.isd-rv__info (0,2,1) 로 올려 놓았다 (라이브 QA 2026-09-02 교훈).
   ============================================================ */
.isd-rv__info-wrap{padding:48px 0 8px}
@media(min-width:768px){.isd-rv__info-wrap{padding:72px 0 8px}}
.isd-rv ul.isd-rv__info{
  display:grid;grid-template-columns:repeat(2,1fr);gap:var(--isd-gap);
  max-width:1120px;margin:0 auto;padding:0 16px;list-style:none}
@media(min-width:768px){.isd-rv ul.isd-rv__info{grid-template-columns:repeat(3,1fr)}}
.isd-rv ul.isd-rv__info>li{
  display:flex;flex-direction:column;gap:8px;padding:20px;
  background:linear-gradient(160deg,#fff 55%,var(--isd-cream));
  border:1px solid var(--isd-line);border-radius:var(--isd-r-card);
  box-shadow:0 2px 6px rgba(37,37,126,.05);
  margin:0;text-align:left;list-style:none}
.isd-rv__info-stat{
  align-self:flex-start;font-weight:800;font-size:13px;letter-spacing:.04em;
  color:#fff;background:var(--isd-navy);padding:5px 10px;border-radius:999px;white-space:nowrap}
.isd-rv__info-title{display:block;font-size:16px;line-height:1.35;color:var(--isd-navy)}
.isd-rv__info-body{margin:0;font-size:14px;line-height:1.6;color:#444}
/* 스크롤 진입 시 순차 등장. GSAP 없이 CSS 만으로 — JS 죽어도 내용은 보인다. */
@media(prefers-reduced-motion:no-preference){
  .isd-rv ul.isd-rv__info>li{animation:isd-info-in .5s both;animation-delay:var(--isd-d,0ms);
    animation-timeline:view();animation-range:entry 0% cover 26%}
}
@keyframes isd-info-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ============================================================
   v1.7.0 — GOOGLE REVIEWS (2026-09-02)
   구글 프로필의 진짜 후기. 우리 사이트 후기 카드와 구분되어야 하므로
   흰 카드 + 구글 출처 배지. 작성자 사진은 구글 CDN 이라 referrerpolicy 필요.
   ============================================================ */
.isd-rv__g-wrap{padding:48px 0 8px}
@media(min-width:768px){.isd-rv__g-wrap{padding:72px 0 8px}}
.isd-rv__g-agg{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:-8px 0 20px;padding:0 16px}
.isd-rv__g-score{font-size:30px;font-weight:800;color:var(--isd-navy);line-height:1}
.isd-rv__g-agg .isd-rv__stars{margin:0;font-size:18px}
.isd-rv__g-all{color:var(--isd-blue);font-size:14px;text-decoration:underline;min-height:32px;display:inline-flex;align-items:center}
.isd-rv ul.isd-rv__g-list{
  display:grid;grid-template-columns:1fr;gap:var(--isd-gap);
  max-width:1120px;margin:0 auto;padding:0 16px;list-style:none}
@media(min-width:768px){.isd-rv ul.isd-rv__g-list{grid-template-columns:repeat(3,1fr)}}
.isd-rv ul.isd-rv__g-list>li{
  position:relative;display:flex;flex-direction:column;gap:10px;padding:20px;margin:0;list-style:none;
  background:#fff;border:1px solid var(--isd-line);border-radius:var(--isd-r-card);box-shadow:0 2px 6px rgba(0,0,0,.04)}
.isd-rv__g-head{display:flex;align-items:center;gap:12px}
.isd-rv__g-head strong{display:block;font-size:15px;color:#111}
.isd-rv__g-head small{color:var(--isd-gray);font-size:13px}
.isd-rv__g-body{margin:0;font-size:15px;line-height:1.65;color:#222;
  display:-webkit-box;-webkit-line-clamp:8;-webkit-box-orient:vertical;overflow:hidden}
.isd-rv__g-src{align-self:flex-start;margin-top:auto;font-size:12px;font-weight:700;letter-spacing:.02em;
  color:#5f6368;background:#f1f3f4;border-radius:999px;padding:5px 12px;text-decoration:none;min-height:28px;
  display:inline-flex;align-items:center}
@media(prefers-reduced-motion:no-preference){
  .isd-rv ul.isd-rv__g-list>li{animation:isd-info-in .5s both;animation-delay:var(--isd-d,0ms);
    animation-timeline:view();animation-range:entry 0% cover 26%}
}

/* ============================================================
   v1.8.0 — YOUTUBE SHORTS WALL + SOCIAL STRIP (2026-09-02)
   전부 아이서당 자기 채널(@iseodang_my) 영상. 9:16 세로 비율 고정.
   썸네일(hqdefault)은 4:3 이라 중앙만 크롭해서 세로로 채운다.
   ============================================================ */
.isd-rv__yt-wrap{padding:48px 0 8px}
@media(min-width:768px){.isd-rv__yt-wrap{padding:72px 0 8px}}
.isd-rv ul.isd-rv__yt{
  display:grid;grid-template-columns:repeat(2,1fr);gap:var(--isd-gap);
  max-width:1120px;margin:0 auto;padding:0 16px;list-style:none}
@media(min-width:600px){.isd-rv ul.isd-rv__yt{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.isd-rv ul.isd-rv__yt{grid-template-columns:repeat(6,1fr)}}
.isd-rv ul.isd-rv__yt>li{
  position:relative;margin:0;list-style:none;aspect-ratio:9/16;overflow:hidden;cursor:pointer;
  background:#000;border:1px solid var(--isd-line);border-radius:var(--isd-r-card)}
.isd-rv__yt-card img{width:100%;height:100%;object-fit:cover;transform:scale(1.6);
  transition:transform .45s ease,opacity .3s;opacity:.92}
.isd-rv__yt-card:hover img{transform:scale(1.72);opacity:1}
.isd-rv__yt-card iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.isd-rv__yt-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:52px;height:52px;display:grid;place-items:center;border:0;border-radius:50%;
  background:rgba(255,255,255,.9);color:var(--isd-navy);font-size:18px;cursor:pointer;
  transition:transform .25s,opacity .25s}
.isd-rv__yt-card:hover .isd-rv__yt-play{transform:translate(-50%,-50%) scale(1.12)}
.isd-rv__yt-card.is-playing .isd-rv__yt-play,
.isd-rv__yt-card.is-playing img{opacity:0;pointer-events:none}
.isd-rv__yt-more{text-align:center;margin:16px 0 0}
.isd-rv__yt-more a{color:var(--isd-blue);font-size:14px;text-decoration:underline;
  min-height:44px;display:inline-flex;align-items:center}
@media(prefers-reduced-motion:no-preference){
  .isd-rv ul.isd-rv__yt>li{animation:isd-info-in .5s both;animation-delay:var(--isd-d,0ms);
    animation-timeline:view();animation-range:entry 0% cover 26%}
}

/* SOCIAL STRIP */
.isd-rv__social{text-align:center;padding:40px 16px 8px}
.isd-rv__social-h{margin:0 0 14px;font-size:14px;color:var(--isd-gray);letter-spacing:.04em}
.isd-rv ul.isd-rv__social-list{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;list-style:none;margin:0;padding:0}
.isd-rv ul.isd-rv__social-list>li{margin:0;list-style:none}
.isd-rv__social-btn{
  display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;
  border:1px solid var(--isd-line);background:#fff;color:#333;font-size:14px;font-weight:600;
  text-decoration:none;transition:border-color .2s,color .2s,transform .2s}
.isd-rv__social-btn:hover{transform:translateY(-2px)}
.isd-rv__social-btn--google:hover{border-color:#4285F4;color:#4285F4}
.isd-rv__social-btn--youtube:hover{border-color:#FF0000;color:#FF0000}
.isd-rv__social-btn--instagram:hover{border-color:#C13584;color:#C13584}
.isd-rv__social-btn--facebook:hover{border-color:#1877F2;color:#1877F2}
