/* SHINAH MOTORS — 시안 C · 에디토리얼
   모바일 우선. 브레이크포인트: 640px(태블릿), 900px(데스크톱) */

:root{
  --navy:#0e1a2b;
  --blue:#1d6fe0;
  --blue-lt:#7cb2ff;
  --ink:#111a26;
  --mute:#5f6b7a;
  --soft:#f4f5f7;
  --line:#dfe3e8;
  --ease-out:cubic-bezier(.2,.8,.2,1);
  --ease-expo:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.7,0,.3,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Noto Sans KR',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-x:clip}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:#fff;color:var(--navy);padding:10px 14px;border-radius:10px;font-weight:700}
.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--blue-lt);outline-offset:3px;border-radius:6px}

.wrap{max-width:1180px;margin:0 auto;padding:0 20px}
.kicker{margin:0 0 14px;display:flex;align-items:center;gap:10px;font-size:12px;font-weight:700;letter-spacing:.14em;color:var(--blue)}
.kicker i{display:inline-block;width:22px;height:2px;background:currentColor}
.more{color:var(--blue);font-size:15px;font-weight:500;display:inline-flex;align-items:center;gap:4px}
.more:hover{text-decoration:underline}

/* ---------- 상단 메뉴 ---------- */
.nav{position:sticky;top:0;z-index:50;background:rgba(14,26,43,.78);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);color:#fff}
.nav-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 24px;min-height:56px}
.logo{display:inline-flex;align-items:center;gap:10px}
.logo-img{height:30px;width:auto;display:block}
.logo-txt{font-size:14px;font-weight:900;letter-spacing:.12em}
/* 휴대폰: 로고·글자를 조금 줄여서 함께 표시, 아주 좁은 화면(340px 미만)만 글자 숨김 */
@media (max-width:639px){.logo{gap:8px}.logo-img{height:26px}.logo-txt{font-size:11.5px;letter-spacing:.08em;white-space:nowrap}}
@media (max-width:339px){.logo-txt{display:none}}
.menu{order:3;width:100%;display:flex;gap:14px;overflow-x:auto;padding:0 0 12px;font-size:14px;color:#c6cfdb;scrollbar-width:none}
.menu::-webkit-scrollbar{display:none}
.menu a{white-space:nowrap;padding:4px 0}
.menu a:hover{color:#fff}
.nav-call{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border-radius:999px;background:#fff;color:var(--navy);font-size:14px;font-weight:700}
.nav-call-num{display:none}
@media (min-width:640px){.nav-call-short{display:none}.nav-call-num{display:inline}}

/* ---------- 첫 화면 ---------- */
.hero{background:var(--navy);color:#fff;padding:48px 0 0;position:relative}
.hero-grid{display:grid;gap:40px}
.h-hero{margin:0;font-size:clamp(46px,13.5vw,128px);line-height:1;font-weight:900;letter-spacing:-.05em}
.hl{display:block;overflow:hidden;padding-bottom:.06em}
.hl > span{display:block}
.hl-blue > span{color:var(--blue-lt)}
.hl-thin > span{font-weight:300}
.lead{margin:26px 0 0;font-size:17px;line-height:1.7;color:#b9c4d3;max-width:30em}
.btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 22px;border-radius:999px;font-size:16px;font-weight:700;flex:1 1 140px;transition:transform .2s}
.btn:active{transform:scale(.97)}
.btn-pri{background:var(--blue);color:#fff}
.btn-sec{background:#fff;color:var(--navy)}
.btn-ghost{flex-basis:100%;min-height:44px;color:var(--blue-lt);font-weight:500}

/* 제목 한 줄씩 등장 — JS가 켜져 있을 때만 숨겼다가, 인트로가 끝나면(html.intro-done) 재생 */
.js .hl > span{translate:0 105%}
.js .lead,.js .btns{opacity:0;translate:0 12px}
.intro-done .hl > span{animation:slideUp 1s var(--ease-expo) forwards}
.intro-done .hl:nth-child(2) > span{animation-delay:.12s}
.intro-done .hl:nth-child(3) > span{animation-delay:.24s}
.intro-done .lead{animation:fadeUp .8s var(--ease-out) .45s forwards}
.intro-done .btns{animation:fadeUp .8s var(--ease-out) .58s forwards}
@keyframes slideUp{to{translate:0 0}}
@keyframes fadeUp{to{opacity:1;translate:0 0}}

.hero-video{position:relative;z-index:2;margin-bottom:-80px}
.hero-pad{height:80px;background:#fff}

/* ---------- 카드 · 썸네일 ---------- */
.card{display:block;background:#fff;border-radius:22px;overflow:hidden;transition:transform .45s var(--ease-out),box-shadow .45s}
@media (hover:hover){.card:hover{transform:translateY(-6px);box-shadow:0 24px 48px rgba(14,26,43,.16)}}
.thumb{position:relative;aspect-ratio:16/9;background:#1a2b42;display:flex;align-items:center;justify-content:center;overflow:hidden}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.play{position:relative;width:66px;height:66px;border-radius:50%;background:rgba(255,255,255,.95);display:flex;align-items:center;justify-content:center;animation:breathe 2.8s ease-in-out infinite}
.play svg{margin-left:4px}
.play-sm{width:50px;height:50px}
@keyframes breathe{0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,255,255,.4)}50%{transform:scale(1.07);box-shadow:0 0 0 16px rgba(255,255,255,0)}}
.hero-video .card{box-shadow:0 30px 70px rgba(0,0,0,.35)}
.hv-body{display:block;padding:18px 22px 22px}
.tag{display:inline-block;padding:4px 10px;border-radius:6px;background:#eaf1fc;color:#1557b8;font-size:12px;font-weight:700;letter-spacing:.02em}
.hv-body h2{margin:10px 0 6px;font-size:19px;line-height:1.4;font-weight:700;color:var(--ink)}

/* ---------- 섹션 공통 ---------- */
.sec{padding:80px 0}
.sec-soft{background:var(--soft)}
.sec-head{margin-bottom:36px;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 24px}
.h2{margin:0;font-size:clamp(32px,8.4vw,64px);line-height:1.08;font-weight:900;letter-spacing:-.045em;color:var(--navy)}
.sub{margin:12px 0 0;font-size:16px;line-height:1.6;color:var(--mute)}

/* 이런 정비를 합니다 */
.rows{border-top:2px solid var(--navy)}
.row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:4px 16px;align-items:start;padding:22px 0;border-bottom:1px solid var(--line)}
.num{font-size:13px;font-weight:700;color:var(--blue);padding-top:5px;letter-spacing:.04em}
.row h3{margin:0;font-size:22px;font-weight:900;letter-spacing:-.03em;color:var(--navy);display:flex;align-items:center;gap:10px}
.row h3 svg{color:var(--blue);flex:none}
.row p{grid-column:2;margin:4px 0 0;font-size:15px;line-height:1.6;color:var(--mute)}
.row p strong{color:var(--ink);font-weight:700}

/* 정비 사례 — 가로로 넘기는 카드 (페이지 자체 가로 스크롤은 없음) */
.rail{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 20px 28px;scroll-padding:0 20px;scrollbar-width:none;max-width:1180px;margin:0 auto}
.rail::-webkit-scrollbar{display:none}
.case{flex:0 0 82%;scroll-snap-align:start;padding:24px;display:flex;flex-direction:column;gap:10px;box-shadow:0 1px 0 rgba(14,26,43,.04)}
.case-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.case-top time{font-size:13px;color:var(--mute)}
.case h3{margin:10px 0 0;font-size:20px;line-height:1.38;font-weight:700;letter-spacing:-.02em;color:var(--ink)}
.case p{margin:0;font-size:15px;line-height:1.6;color:var(--mute)}
.case .no{margin-top:auto;padding-top:16px;font-size:40px;font-weight:900;letter-spacing:-.04em;color:#e3e8ef;line-height:1}
/* 사례 카드 대표 이미지(블로그 대표 GIF → 무음 반복 영상). 카드 안쪽 여백을 넘어 위쪽 가득 채움 */
.case.has-media{padding-top:0}
.case-media{display:block;margin:0 -24px 8px;aspect-ratio:1/1;overflow:hidden;background:#e9eef4}
.case-media video,.case-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}
.case:hover .case-media video,.case:hover .case-media img{transform:scale(1.04)}
/* 대표 영상 안 글자와 겹치지 않게, 영상이 있는 카드는 큰 번호를 숨김 */
.case.has-media .no{display:none}
.rail-hint{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mute)}
/* 슬라이드 도구: 안내 문구 + 이전/다음 버튼(넓은 화면에서만) */
.rail-tools{display:flex;align-items:center;gap:14px}
.rail-nav{display:none;gap:8px}
.rail-btn{width:44px;height:44px;border-radius:50%;border:1px solid #d5dce6;background:#fff;color:var(--navy);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s,color .25s,border-color .25s,opacity .25s}
.rail-btn:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.rail-btn:disabled{opacity:.35;cursor:default;background:#fff;color:var(--navy);border-color:#d5dce6}
@media (min-width:900px){.rail-nav{display:flex}}
/* 영상 슬라이드 카드 */
.vcard{flex:0 0 82%;scroll-snap-align:start;background:#fff;box-shadow:0 1px 0 rgba(14,26,43,.04)}
.sec:not(.sec-soft) .vcard{background:var(--soft)}
.vid-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px;font-size:13px;color:var(--mute)}
.vcard .vid-body h3{margin:0;font-size:17px;line-height:1.45;font-weight:700;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* 정비 영상 */
.vids{display:grid;gap:16px}
.vid{background:var(--soft)}
.vid-body{display:block;padding:18px 20px 22px}
.vid-body h3{margin:0 0 8px;font-size:17px;line-height:1.45;font-weight:700;color:var(--ink)}

/* 자주 묻는 질문 */
.faq-grid{display:grid;gap:24px}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:2px solid var(--navy)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 0;font-size:18px;font-weight:700;color:var(--ink);min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.pm{flex:none;width:30px;height:30px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;color:var(--navy);transition:transform .35s var(--ease-out),background .3s,color .3s}
.faq details[open] .pm{transform:rotate(45deg);background:var(--blue);color:#fff}
.faq details p{margin:0;padding:0 44px 24px 0;font-size:16px;line-height:1.75;color:#3d4856}
.faq details[open] p{animation:fadeDown .4s ease}
@keyframes fadeDown{from{opacity:0;translate:0 -6px}to{opacity:1;translate:0 0}}

/* 찾아오는 길 */
.visit{display:grid;gap:28px}
.addr{margin:0;font-size:clamp(30px,8vw,56px);line-height:1.12;font-weight:900;letter-spacing:-.045em;color:var(--navy)}
.tel{display:inline-block;margin-top:14px;font-size:clamp(22px,5.6vw,32px);font-weight:700;letter-spacing:-.02em;color:var(--blue)}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:28px 0 0}
.fact{border-top:2px solid var(--navy);padding-top:12px}
.fact dt{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--mute)}
.fact dd{margin:6px 0 0;font-size:16px;color:#86909c}
.maps{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}
.map-btn{flex:1 1 120px;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;border-radius:999px;background:var(--navy);color:#fff;font-size:15px;font-weight:700;transition:background .2s}
.map-btn:hover{background:var(--blue)}
.photo{border-radius:22px;background:var(--soft);min-height:260px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;color:var(--mute);font-size:14px;text-align:center;padding:24px;box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;position:relative}

/* 채널 모음 */
.navy{background:var(--navy);color:#fff}
.navy .h2{color:#fff}
.navy .kicker{color:var(--blue-lt)}
.chs{border-top:2px solid #fff}
.ch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:0 4px;border-bottom:1px solid rgba(255,255,255,.14);font-size:18px;font-weight:700;color:#fff;transition:padding .35s var(--ease-out),color .3s}
.ch svg{transition:transform .35s var(--ease-out)}
@media (hover:hover){.ch:hover{padding-left:14px;color:var(--blue-lt)}.ch:hover svg{transform:translateX(4px)}}

/* 하단 */
.foot{background:#08111d;color:#9aa6b6;padding:36px 0 120px;font-size:13px;line-height:1.7}
.foot strong{color:#fff;font-size:14px}
.foot p{margin:0}
.foot .tm{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12);font-size:12px}

/* 휴대폰 하단 고정 버튼 */
.mbar{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:6px;padding:6px;border-radius:999px;background:rgba(14,26,43,.86);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);box-shadow:0 12px 32px rgba(14,26,43,.35)}
.mbar a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:50px;border-radius:999px;font-size:13px;font-weight:700;color:#fff}
.mbar a.on{background:var(--blue)}

/* ---------- 첫 화면 로고 (스크롤 연동) ----------
   --p: 0(맨 위) → 1(화면 높이 90% 내림). main.js가 스크롤마다 갱신
   로고(.sp-lw)는 main.js가 상단 메뉴 로고 자리까지 이동·축소시킴 */
:root{--p:0}
.splash{position:relative;height:200svh;margin-bottom:-60svh;background:var(--navy)}
.splash ~ main .hero{z-index:2;padding-top:64px}
.sp-in{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#fff}
.sp-stage{position:relative;display:flex;flex-direction:column;align-items:center;gap:18px}
.sp-lw{transform-origin:0 0;will-change:transform}
.sp-logo{display:block;width:min(70vw,340px);height:auto;animation:logoIn 1s var(--ease-out) both}
.sp-name{display:block;font-size:clamp(18px,4.6vw,24px);font-weight:900;letter-spacing:.32em;margin-right:-.32em;animation:tagIn .6s var(--ease-out) .5s both}
.sp-tag{display:block;font-size:15px;color:rgba(255,255,255,.72);animation:tagIn .5s ease-out .9s both}
.sp-nw,.sp-tw{opacity:calc(1 - var(--p) * 3);translate:0 calc(var(--p) * 40px)}
.sp-hint{position:absolute;left:0;right:0;bottom:calc(84px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;letter-spacing:.2em;color:rgba(255,255,255,.6);opacity:calc(1 - var(--p) * 6)}
.sp-hint i{width:1px;height:34px;background:linear-gradient(rgba(255,255,255,.7),rgba(255,255,255,0));animation:hint 1.6s ease-in-out infinite}
@media (min-width:900px){.sp-hint{bottom:36px}}
/* 상단 메뉴 로고: 첫 화면 로고가 도착하면 바통 터치 */
.js .nav .logo-img{opacity:0;transition:opacity .25s}
.js.docked .nav .logo-img{opacity:1}
.js.docked .sp-lw{opacity:0}
@keyframes logoIn{from{opacity:0;transform:scale(.84);filter:blur(12px)}to{opacity:1;transform:scale(1);filter:blur(0)}}
@keyframes tagIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes hint{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---------- 스크롤 등장 ----------
   내용이 화면에 들어오는 순간 약 1초 동안 스르륵 등장(main.js가 html.io + .in). 화면 밖으로 나가면 다시 숨겨서 오갈 때마다 재생.
   스크롤 거리에 맞추는 CSS 스크롤 타임라인 방식은 너무 빨리 끝나 거의 안 보여서 쓰지 않음
   영상 썸네일은 확대된 상태에서 제자리로, 사례·영상 카드는 오른쪽에서 차례로, 섹션 제목은 왼쪽에서 */
.io .rv{opacity:0;translate:0 56px;transition:opacity 1s var(--ease-out),translate 1.1s var(--ease-out)}
.io .rv.in{opacity:1;translate:0 0}
.io .vid .thumb img{scale:1.2;transition:scale 1.6s var(--ease-out)}
.io .rv.in .thumb img,.io .rv.in.vid .thumb img{scale:1}
.io .rail .case,.io .rail .vcard{opacity:0;translate:90px 0;transition:opacity 1s var(--ease-out),translate 1.1s var(--ease-out)}
.io .rail.in .case,.io .rail.in .vcard{opacity:1;translate:0 0}
.io .rail.in .case:nth-child(2),.io .rail.in .vcard:nth-child(2){transition-delay:.12s}
.io .rail.in .case:nth-child(3),.io .rail.in .vcard:nth-child(3){transition-delay:.24s}
.io .rail.in .case:nth-child(n+4),.io .rail.in .vcard:nth-child(n+4){transition-delay:.36s}
.io .sec-head .h2{opacity:0;translate:-48px 0;transition:opacity 1s var(--ease-out),translate 1.1s var(--ease-out)}
.io .sec-head.in .h2{opacity:1;translate:0 0}

/* ---------- 태블릿 ---------- */
@media (min-width:640px){
  .wrap{padding:0 32px}
  .rail{padding:6px 32px 28px;scroll-padding:0 32px}
  .case,.vcard{flex-basis:46%}
  .btn-ghost{flex-basis:auto;flex-grow:0}
  .vids{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vid-lg{grid-column:span 2}
}

/* ---------- 데스크톱 ---------- */
@media (min-width:900px){
  .menu{order:0;width:auto;padding:0;gap:32px;font-size:13px}
  .nav-in{min-height:52px}
  .hero{padding:96px 0 0}
  .hero-grid{grid-template-columns:1.15fr .85fr;gap:56px;align-items:end}
  .hero-video{margin-bottom:-120px}
  .hero-pad{height:120px}
  .sec{padding:128px 0}
  .rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
  .row{padding:30px 0}
  .case,.vcard{flex-basis:calc((100% - 28px) / 3)}
  .vids{grid-template-columns:1.4fr 1fr;grid-template-rows:auto auto}
  .vid-lg{grid-column:1;grid-row:span 2}
  .faq-grid{grid-template-columns:.8fr 1.2fr;gap:64px}
  .visit{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px;align-items:stretch}
  .photo{min-height:100%}
  .chs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:40px}
  .mbar{display:none}
  .foot{padding-bottom:40px}
}

/* ---------- 동작 줄이기 ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .splash{display:none}
  .js .nav .logo-img{opacity:1}
  .vid .thumb img,.rail .case,.rail .vcard,.sec-head .h2,.io .rail .vcard,.io .vid .thumb img,.io .rail .case,.io .sec-head .h2{animation:none;opacity:1;translate:0 0;scale:1;transition:none}
  .js .hl > span{translate:0 0;animation:none}
  .js .lead,.js .btns{opacity:1;translate:0 0;animation:none}
  .rv,.io .rv{animation:none;opacity:1;translate:0 0;transition:none}
  .play{animation:none}
  .card,.ch{transition:none}
}

/* ---------- 고객 후기 (남색 섹션 안 흰 카드, 정비 사례 슬라이드와 같은 .rail/.case 동작) ---------- */
.navy .rail-hint{color:rgba(255,255,255,.62)}
.navy .sub{color:rgba(255,255,255,.7)}
.navy .more{color:var(--blue-lt)}
.navy .rail-btn{border-color:rgba(255,255,255,.25)}
.tag-naver{background:#e3f6ec;color:#03894a}
.review{gap:12px}
.review .qm{display:block;height:26px;font-size:64px;line-height:1;font-weight:900;color:var(--blue);font-family:Georgia,serif}
.review blockquote{margin:0;font-size:15.5px;line-height:1.75;color:var(--ink);word-break:keep-all}
.review.short blockquote{font-size:21px;line-height:1.5;font-weight:700;letter-spacing:-.02em}
.kw{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;list-style:none}
.kw li{font-size:12px;padding:4px 9px;border-radius:6px;background:var(--soft);color:var(--mute)}
.review .who{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--mute)}
.review .who b{color:var(--ink)}

/* ---------- 정비 기록 글 페이지 (public/cases/<주소>/index.html) ---------- */
.post{padding:28px 0 72px}
.post-wrap{max-width:760px;margin:0 auto;padding:0 20px}
.crumb{font-size:13px;color:var(--mute);margin:0 0 26px}
.crumb a:hover{color:var(--blue)}
.post h1{margin:0;font-size:clamp(26px,6.4vw,40px);line-height:1.25;font-weight:900;letter-spacing:-.035em;color:var(--navy)}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:16px 0 28px;font-size:13px;color:var(--mute)}
.post h2{margin:44px 0 12px;font-size:clamp(21px,4.6vw,26px);line-height:1.35;font-weight:800;letter-spacing:-.025em;color:var(--navy)}
.post p,.post li{font-size:16.5px;line-height:1.85;color:#2b3542}
.post p{margin:0 0 14px}
.post ul,.post ol{margin:0 0 14px;padding-left:22px}
.post li{margin:4px 0}
.post strong{color:var(--ink)}
.sum{background:var(--soft);border-radius:22px;padding:22px 22px 10px}
.sum h2{margin:0 0 12px;font-size:15px;letter-spacing:.02em;color:var(--blue)}
.sum dl{margin:0}
.sum dl div{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.sum dt{font-size:13px;font-weight:700;color:var(--mute);padding-top:2px}
.sum dd{margin:0;font-size:15.5px;line-height:1.65;color:var(--ink)}
.post-fig{margin:22px 0}
.post-fig video,.post-fig img{display:block;width:100%;height:auto;aspect-ratio:640/364;object-fit:cover;border-radius:18px;background:#e9eef4}
.post-fig figcaption{margin-top:8px;font-size:13.5px;color:var(--mute)}
.fig-grid{display:grid;gap:0 14px}
@media (min-width:640px){.fig-grid{grid-template-columns:1fr 1fr}}
.steps li{padding-left:4px}
.tip{margin-top:44px;border-left:4px solid var(--blue);background:#f2f7ff;border-radius:0 18px 18px 0;padding:20px 22px 8px}
.tip h2{margin:0 0 10px;font-size:19px}
.post-video{position:relative;max-width:360px;aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:#000}
.post-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.src{margin-top:28px!important;font-size:15px!important;color:var(--mute)!important}
.src a{color:var(--blue);font-weight:700}
.post-cta{margin-top:36px;padding:26px 24px;border-radius:22px;background:var(--navy);color:#fff}
.post-cta p{color:#c6cfdb;font-size:15.5px}
.post-cta strong{color:#fff;font-size:18px}
.post-cta .btns{margin-top:18px}
.btn-line{border:1px solid rgba(255,255,255,.35);color:#fff}

/* ---------- 정비 기록 전체 목록 (public/cases/index.html) · 주제별 묶음 기록 ---------- */
.cl-lead{font-size:16.5px;line-height:1.8;color:#2b3542;margin:16px 0 22px}
.cl-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}
.cl-nav a{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--soft);font-size:14px;font-weight:700;color:var(--navy)}
.cl-nav a b{font-weight:500;color:var(--mute)}
.cl-nav a:hover{background:#e6eefb}
.cl-sec{scroll-margin-top:90px}
.cl{list-style:none;margin:0;padding:0!important}
.cl li{margin:0;border-bottom:1px solid var(--line)}
.cl a{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center;padding:16px 4px}
.cl a strong{grid-column:1/-1;font-size:16px;line-height:1.5;font-weight:700;color:var(--ink)}
.cl a time{grid-column:1/-1;font-size:13px;color:var(--mute)}
.cl a:hover strong{color:var(--blue)}
.rec{border-top:1px solid var(--line);padding:22px 0 6px}
.rec h3{margin:0 0 8px;font-size:18px;line-height:1.45;font-weight:800;color:var(--navy)}
.rec-meta{display:flex;align-items:center;gap:10px;font-size:13px!important;color:var(--mute)!important}
.post-fig img{aspect-ratio:auto;max-height:560px;object-fit:contain;background:#f1f3f6}
