/* ═══ MOVE-ON 고도화 애드온 (v2) — 실사진·상세·계산기·커뮤니티 ═══ */
:root{--mv-ph-bg:linear-gradient(135deg,#e8edf5,#dfe6f0)}
html.dark{--mv-ph-bg:linear-gradient(135deg,#1c2333,#141a28)}
/* 사진 공통: 컨테이너에 .photo, 로드 실패 시 .noimg → 기존 그라디언트 유지 */
.photo{position:relative;overflow:hidden}
.photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.photo.noimg>img{display:none}
.photo>*:not(img){position:relative;z-index:1}
/* 홈 히어로 사진 */
.fitness-hero.has-photo{position:relative;overflow:hidden}
.fitness-hero.has-photo .hero-photo{position:absolute;inset:0;z-index:0}
.fitness-hero.has-photo .hero-photo img{width:100%;height:100%;object-fit:cover}
.fitness-hero.has-photo .hero-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(10,14,24,.84) 30%,rgba(10,14,24,.42) 65%,rgba(10,14,24,.18))}
.fitness-hero.has-photo .fitness-hero-copy,.fitness-hero.has-photo .hero-visual{position:relative;z-index:1}
.fitness-hero.has-photo .fitness-hero-copy h1,.fitness-hero.has-photo .fitness-hero-copy p{color:#fff}
.fitness-hero.has-photo .fitness-hero-copy h1 em{color:#8de3c3}
.fitness-hero.has-photo .fitness-hero-copy p{opacity:.9}
.fitness-hero:not(.has-photo) .hero-photo{display:none}
/* 종목 그리드 사진 */
.photo-sports .sp-ph{position:relative;display:block;width:100%;aspect-ratio:16/10;border-radius:14px;overflow:hidden;background:var(--mv-ph-bg);margin-bottom:10px}
.photo-sports .sp-ph img{width:100%;height:100%;object-fit:cover;transition:transform .45s}
.photo-sports a:hover .sp-ph img{transform:scale(1.06)}
.photo-sports .sp-ph i{position:absolute;left:8px;bottom:8px;z-index:1;font-style:normal;font-size:15px;background:rgba(255,255,255,.92);border-radius:8px;padding:2px 7px}
.photo-sports .sp-ph.noimg img{display:none}
/* 프로그램 카드 사진 */
.photo-card .card-art.photo{background:var(--mv-ph-bg)}
.photo-card .card-art.photo em,.photo-card .card-art.photo small{text-shadow:0 1px 8px rgba(0,0,0,.5);color:#fff}
.photo-card .card-art.photo.noimg em,.photo-card .card-art.photo.noimg small{text-shadow:none;color:inherit}
/* featured/coach/center 사진 */
.featured-image.photo{background:var(--mv-ph-bg);min-height:190px}
.featured-image.photo i{background:rgba(0,0,0,.55);color:#fff;border-radius:8px;padding:3px 9px}
.coach-photo.photo{background:var(--mv-ph-bg);min-height:170px}
.center-photo.photo{background:var(--mv-ph-bg);min-height:150px}
.coach-large.photo{display:block;background:var(--mv-ph-bg);min-height:170px;border-radius:16px}
/* 트렌드 종목 그리드 */
.trend-sport-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.trend-sport{display:flex;flex-direction:column;border:1px solid rgba(125,135,160,.25);border-radius:14px;overflow:hidden;transition:transform .18s}
.trend-sport:hover{transform:translateY(-3px)}
.trend-sport .ph{position:relative;aspect-ratio:16/10;background:var(--mv-ph-bg);overflow:hidden}
.trend-sport .ph img{width:100%;height:100%;object-fit:cover}
.trend-sport.noimg .ph img{display:none}
.trend-sport .tx{padding:10px 12px 12px;display:grid;gap:2px}
.trend-sport .tx em{font-style:normal;font-size:11px;font-weight:800;color:#e8734a}
.trend-sport .tx b{font-size:14px}
.trend-sport .tx small{font-size:11.5px;opacity:.65}
.trend-sport .tx i{font-style:normal;font-size:11px;opacity:.7}
.trend-sport .tx u{text-decoration:none;color:#12a06b;font-weight:800}
/* programs: 종목 링크 탭 */
.cat-links{display:flex;flex-wrap:wrap;gap:6px}
.cat-links a{border:1px solid rgba(125,135,160,.3);border-radius:999px;padding:7px 14px;font-size:13px;font-weight:600}
.cat-links a.active{background:#12233f;border-color:#12233f;color:#fff}
html.dark .cat-links a.active{background:#e6ebf5;color:#0d1322}
.empty-result{text-align:center;padding:44px 16px;display:grid;gap:6px;justify-items:center}
.empty-result i{font-style:normal;font-size:34px}
.program-thumb.photo{background:var(--mv-ph-bg)}
.program-thumb.photo em{background:rgba(0,0,0,.55);color:#fff;border-radius:7px;padding:2px 8px;align-self:end}
/* ── 프로그램 상세 ── */
.program-detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:26px;align-items:center}
.pd-photo{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:16/10;background:var(--mv-ph-bg)}
.pd-photo img{width:100%;height:100%;object-fit:cover}
.pd-photo.noimg img{display:none}
.pd-cat{position:absolute;left:12px;top:12px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:5px 12px}
.pd-head h1{font-size:clamp(22px,2.6vw,30px);margin:0 0 4px}
.pd-coach{opacity:.7;margin:0 0 12px}
.pd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.pd-stats span{display:grid;justify-items:center;gap:1px;border:1px solid rgba(125,135,160,.25);border-radius:12px;padding:10px 6px}
.pd-stats i{font-style:normal}
.pd-stats b{font-size:15px}
.pd-stats small{font-size:11px;opacity:.6}
.pd-desc{font-size:14.5px;line-height:1.75;margin:0 0 16px}
.pd-actions{display:flex;gap:8px;flex-wrap:wrap}
.pd-actions button{border:1px solid rgba(125,135,160,.3);border-radius:11px;padding:11px 18px;font-weight:700;cursor:pointer;background:transparent;color:inherit}
.pd-actions button.primary{background:#12a06b;border-color:#12a06b;color:#fff}
.pd-actions button.on{border-color:#e8734a;color:#e8734a}
.pd-steps{display:grid;gap:8px}
.pd-step{display:flex;align-items:center;gap:12px;border:1px solid rgba(125,135,160,.25);border-radius:12px;padding:12px 14px}
.pd-step em{font-style:normal;width:28px;height:28px;border-radius:50%;background:#12a06b;color:#fff;display:grid;place-items:center;font-weight:800;font-size:13px;flex-shrink:0}
.pd-step b{flex:1;font-size:14px}
.pd-step small{opacity:.6;font-weight:700}
.pd-note{margin-top:12px;font-size:13px;opacity:.8;border-left:3px solid #12a06b;padding:8px 12px;background:rgba(18,160,107,.06);border-radius:0 10px 10px 0}
/* ── 게시글 뷰 ── */
.post-view-head{border-bottom:1px solid rgba(125,135,160,.25);padding-bottom:14px;margin-bottom:16px}
.post-cat-badge{display:inline-block;background:#12233f;color:#fff;font-size:12px;font-weight:700;border-radius:8px;padding:4px 11px;margin-bottom:8px}
html.dark .post-cat-badge{background:#e6ebf5;color:#0d1322}
.post-view h1{font-size:clamp(20px,2.4vw,27px);margin:0 0 10px}
.post-meta{display:flex;align-items:center;gap:9px;font-size:13px}
.post-meta span{opacity:.6}
.post-tools{margin-left:auto;display:flex;gap:6px}
.post-tools button{font-size:12px;border:1px solid rgba(125,135,160,.3);border-radius:8px;padding:5px 10px;background:transparent;color:inherit;cursor:pointer}
.post-body{font-size:15px;line-height:1.9;padding:4px 2px 18px}
.post-react{display:flex;gap:10px;justify-content:center;padding:8px 0 4px}
.post-react button{border:1.5px solid rgba(125,135,160,.3);border-radius:999px;padding:10px 22px;font-weight:700;font-size:14px;background:transparent;color:inherit;cursor:pointer}
.post-react button.on{border-color:#12a06b;color:#12a06b}
.comment-sec h2{margin:0 0 12px;font-size:17px}
.comment-list{display:grid;gap:10px;margin-bottom:14px}
.comment-row{border:1px solid rgba(125,135,160,.25);border-radius:12px;padding:11px 14px}
.comment-row b{font-size:13.5px}
.comment-row .vb{font-style:normal;font-size:11px;color:#12a06b;font-weight:800;margin-left:6px}
.comment-row p{margin:5px 0 3px;font-size:14px;line-height:1.65}
.comment-row small{opacity:.5;font-size:11.5px}
.comment-row.expert{border-color:rgba(18,160,107,.5);background:rgba(18,160,107,.05)}
.comment-row.mine{border-style:dashed}
.comment-write{display:flex;gap:8px}
.comment-write input{flex:1;border:1.5px solid rgba(125,135,160,.3);border-radius:11px;padding:11px 14px;background:transparent;color:inherit;font-size:14px;outline:0}
.comment-write input:focus{border-color:#12a06b}
.comment-write button{background:#12a06b;color:#fff;border:0;border-radius:11px;padding:0 20px;font-weight:700;cursor:pointer}
.post-nav{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}
.post-nav .pn{display:grid;gap:2px;font-size:13px;min-width:0}
.post-nav .pn em{font-style:normal;font-size:11px;opacity:.55}
.post-nav .pn b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.post-nav .pn.right{text-align:right}
.post-nav .pn.center{text-align:center;border:1px solid rgba(125,135,160,.3);border-radius:10px;padding:9px 18px}
/* ── 강사 상세 ── */
.expert-profile{display:grid;grid-template-columns:280px minmax(0,1fr);gap:26px;align-items:start}
.ep-photo{border-radius:16px;aspect-ratio:1/1;background:var(--mv-ph-bg)}
.ep-photo span{position:absolute;left:10px;bottom:10px;background:rgba(0,0,0,.6);color:#fff;font-size:11.5px;font-weight:700;border-radius:999px;padding:5px 11px}
.ep-info h1{font-size:clamp(22px,2.6vw,30px);margin:6px 0 2px}
.ep-field{opacity:.65;margin:0 0 12px}
.ep-stats{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.ep-stats span{display:grid;justify-items:center;gap:1px;border:1px solid rgba(125,135,160,.25);border-radius:12px;padding:10px 18px}
.ep-stats b{font-size:15px}
.ep-stats small{font-size:11px;opacity:.6}
.ep-quote{margin:0 0 16px;padding:12px 16px;border-left:3px solid #12a06b;background:rgba(18,160,107,.06);border-radius:0 12px 12px 0;font-size:14.5px;line-height:1.7}
.ep-actions{display:flex;gap:8px;flex-wrap:wrap}
.ep-actions button{border:1px solid rgba(125,135,160,.3);border-radius:11px;padding:11px 18px;font-weight:700;background:transparent;color:inherit;cursor:pointer}
.ep-actions button.primary{background:#12a06b;border-color:#12a06b;color:#fff}
.ep-actions button.on{border-color:#e8734a;color:#e8734a}
.ep-career{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ep-career li{display:flex;gap:9px;border:1px solid rgba(125,135,160,.25);border-radius:11px;padding:11px 14px;font-size:14px}
.ep-career i{font-style:normal;color:#12a06b;font-weight:800}
.ep-reviews{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ep-review{border:1px solid rgba(125,135,160,.25);border-radius:12px;padding:14px 16px}
.ep-review .stars{color:#f0a500;font-size:13px;letter-spacing:2px}
.ep-review p{margin:7px 0 5px;font-size:14px;line-height:1.65}
.ep-review small{opacity:.55}
.consult-btn{display:inline-block;border:1px solid #12a06b;color:#12a06b;border-radius:10px;padding:9px 14px;font-weight:700;font-size:13px;text-align:center}
/* ── 가이드 ── */
.guide-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}
.guide-photo-card{display:flex;flex-direction:column;overflow:hidden;padding:0!important;transition:transform .18s}
.guide-photo-card:hover{transform:translateY(-3px)}
.gp-ph{position:relative;display:block;aspect-ratio:16/10;background:var(--mv-ph-bg);overflow:hidden}
.gp-ph img{width:100%;height:100%;object-fit:cover}
.gp-ph.noimg img{display:none}
.gp-ph em{position:absolute;left:10px;top:10px;font-style:normal;background:rgba(0,0,0,.6);color:#fff;font-size:11.5px;font-weight:700;border-radius:999px;padding:4px 11px}
.gp-body{padding:14px 16px 16px;display:grid;gap:5px}
.gp-body h3{margin:0;font-size:16px}
.gp-body p{margin:0;font-size:13px;opacity:.7;line-height:1.6}
.gp-body small{opacity:.5;font-size:11.5px}
.gp-body b{color:#12a06b;font-size:13px}
.guide-topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.guide-topic-grid a{display:flex;align-items:center;gap:10px;border:1px solid rgba(125,135,160,.25);border-radius:12px;padding:12px 14px}
.guide-topic-grid i{font-style:normal;font-size:19px}
.guide-topic-grid em{font-style:normal;font-size:11px;font-weight:800;color:#e8734a;flex-shrink:0}
.guide-topic-grid b{font-size:13px}
.article-photo{border-radius:14px;overflow:hidden;aspect-ratio:21/9;background:var(--mv-ph-bg);margin:14px 0 18px}
.article-photo img{width:100%;height:100%;object-fit:cover}
.article-photo.noimg img{display:none}
/* ── 계산기 ── */
.tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.tool-card.wide{grid-column:1/-1}
.tool-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}
.tool-head i{font-style:normal;font-size:26px;width:52px;height:52px;border-radius:14px;background:rgba(18,160,107,.1);display:grid;place-items:center}
.tool-head h2{margin:0;font-size:18px}
.tool-head p{margin:2px 0 0;font-size:12.5px;opacity:.6}
.tool-card form{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.tool-card form label{display:grid;gap:5px;font-size:12.5px;font-weight:700;flex:1;min-width:110px}
.tool-card form input,.tool-card form select{border:1.5px solid rgba(125,135,160,.3);border-radius:10px;padding:10px 12px;background:transparent;color:inherit;font-size:14px;outline:0;width:100%}
.tool-card form input:focus,.tool-card form select:focus{border-color:#12a06b}
.tool-card form button.primary{background:#12a06b;color:#fff;border:0;border-radius:10px;padding:11px 20px;font-weight:800;cursor:pointer;flex-shrink:0}
.tool-out{border:1.5px dashed rgba(125,135,160,.35);border-radius:12px;padding:14px 16px;font-size:14px;display:grid;gap:5px}
.tool-out em{opacity:.55;font-style:normal;font-size:13px}
.tool-out b{font-size:18px}
.tool-out .grade{color:#12a06b;font-weight:800;font-size:13.5px}
.tool-out small{opacity:.55;font-size:11.5px}
.orm-rows{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0}
.orm-rows i{font-style:normal;font-size:12.5px;border:1px solid rgba(125,135,160,.25);border-radius:8px;padding:5px 10px}
.tool-note{font-size:13px;opacity:.85}
.tool-note b{display:block;margin-bottom:4px}
.tool-next{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tool-next a{display:grid;justify-items:center;gap:3px;border:1px solid rgba(125,135,160,.25);border-radius:14px;padding:18px 10px;text-align:center;transition:transform .15s}
.tool-next a:hover{transform:translateY(-2px)}
.tool-next i{font-style:normal;font-size:22px}
.tool-next b{font-size:14px}
.tool-next small{font-size:11.5px;opacity:.6}
.right-rail .tool-grid a{display:grid;place-items:center;text-align:center;border:1px solid rgba(125,135,160,.25);border-radius:12px;padding:12px 6px;font-size:12px;font-weight:700;line-height:1.4}
/* ── 루틴메이커 픽 사진 ── */
.pick-ph{position:relative;width:52px;height:52px;border-radius:12px;overflow:hidden;background:var(--mv-ph-bg);flex-shrink:0;display:block}
.pick-ph img{width:100%;height:100%;object-fit:cover}
.pick-ph.noimg img{display:none}
.pick-ph em{position:absolute;right:2px;bottom:2px;font-style:normal;font-size:13px}
.week-tabs button.has-plan b::after{content:" ●";color:#12a06b;font-size:9px;vertical-align:2px}
[data-player-pick].picked .pk{font-size:0}
[data-player-pick].picked .pk::before{content:"✓ 담김";font-size:13px;color:#12a06b;font-weight:800}
/* ── 문의 폼 ── */
.contact-form{display:grid;gap:14px;margin:18px 0 22px;text-align:left}
.contact-form .cf-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-form label{display:grid;gap:6px;font-size:13px;font-weight:700}
.contact-form input,.contact-form select,.contact-form textarea{border:1.5px solid rgba(125,135,160,.3);border-radius:11px;padding:12px 14px;background:transparent;color:inherit;font-size:14px;outline:0;width:100%;font-family:inherit}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:#12a06b}
.contact-form .cf-check{display:flex;align-items:center;gap:8px;font-weight:500;font-size:13px;opacity:.8}
.contact-form .cf-submit{background:#12a06b;color:#fff;border:0;border-radius:12px;padding:14px 34px;font-weight:800;font-size:15px;cursor:pointer;justify-self:start}
.contact-form .cf-note{opacity:.5}
/* 반응형 */
@media(max-width:960px){
  .trend-sport-grid{grid-template-columns:repeat(2,1fr)}
  .program-detail,.expert-profile{grid-template-columns:1fr}
  .guide-photo-grid{grid-template-columns:1fr}
  .guide-topic-grid{grid-template-columns:1fr 1fr}
  .tools-grid{grid-template-columns:1fr}
  .ep-career,.ep-reviews{grid-template-columns:1fr}
  .tool-next{grid-template-columns:1fr}
  .contact-form .cf-two{grid-template-columns:1fr}
  .pd-stats{grid-template-columns:repeat(2,1fr)}
  .post-nav{grid-template-columns:1fr}
  .post-nav .pn.right{text-align:left}
}
