/* 홈(정비사 1순위) 전용 스타일. home.css 토큰 위에서만 동작하고 다른 페이지에는 로드되지 않는다.
   모션 토큰: 누름 90ms, 선택 150ms, 패널 220ms, 등장 360ms. 호버는 hover:hover 안에서만. */

/* 히어로 = 정비사 앱 체험 */
#ex-partners.p-hero-mech{padding-top:0;padding-bottom:0;background:var(--color-surface)}
.p-hero-mech .ex-partners-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);column-gap:56px;padding-top:56px;padding-bottom:64px;align-items:start}
.p-hero-mech .p-hero-copy{width:auto;pointer-events:auto}
.p-hero-mech .ex-partners-device{top:104px}
.p-hero-mech .ex-partners-footer{display:none}
.p-hero-kicker{margin:0 0 14px;font-size:13px;font-weight:650;color:var(--color-primary-text);display:flex;align-items:center;gap:8px}
.p-hero-kicker img{width:22px;height:22px;border-radius:6px}
.p-hero-mech h1{font-size:clamp(38px,4vw,58px);line-height:1.3;letter-spacing:-.06em;font-weight:800;margin:0 0 20px;white-space:normal}
.p-hero-mech h1 span{color:var(--color-primary-text)}
.p-hero-mech .p-hero-description{font-size:17px;line-height:1.8;color:var(--color-text-muted);max-width:560px}
.p-hero-mech .p-hero-actions{margin-top:28px;align-items:center;gap:14px 22px}
.p-hero-mech .p-hero-actions .p-button{font-size:15px;padding:13px 22px;gap:10px}
.p-hero-qr{display:none;align-items:center;gap:10px;font-size:11px;line-height:1.6;color:var(--color-text-muted)}
.p-hero-qr img{width:84px;height:84px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);padding:5px}
.p-hero-try{margin:14px 0 0;font-size:14px}
.p-hero-try a{display:inline-flex;align-items:center;gap:8px;color:var(--color-primary-text);font-weight:650;min-height:40px}
.p-hero-try .p-icon{width:16px;height:16px;transform:rotate(90deg)}
.p-hero-mech .p-hero-facts{margin-top:22px;flex-direction:column;gap:8px;font-size:14px}
.p-hero-proof{margin:22px 0 0;display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-bg-canvas);font-size:13px;color:var(--color-text-heading)}
.p-hero-proof small{color:var(--color-text-muted);font-size:12px}
.p-hero-proof a{color:var(--color-primary-text);font-weight:650}
.p-hero-mech .ex-partners-note{margin-top:14px}
@media(hover:hover) and (pointer:fine) and (min-width:901px){.p-hero-qr{display:flex}}
@media(max-width:900px){.p-hero-mech .ex-partners-grid{grid-template-columns:1fr;column-gap:0;padding-top:28px;padding-bottom:40px;row-gap:22px}.p-hero-mech .ex-partners-device{top:auto}}
@media(max-width:600px){.p-hero-mech h1{font-size:clamp(30px,8.6vw,38px);margin-bottom:14px}.p-hero-mech .p-hero-description{font-size:14.5px;line-height:1.75}.p-hero-mech .p-hero-actions{margin-top:20px}.p-hero-mech .p-hero-actions .p-button{width:100%;font-size:14px}.p-hero-try{margin-top:8px}.p-hero-mech .p-hero-facts{margin-top:16px;gap:6px;font-size:13px}.p-hero-proof{font-size:12px;padding:9px 12px}.p-hero-mech .ex-partners-phone{height:min(640px,86svh)}}

/* 섹션 공통(정비사 홈) */
.portal-home .p-mech{padding:72px 0}
.portal-home .p-mech .wrap{width:min(1232px,calc(100% - 96px));margin-inline:auto}
.portal-home .p-mech .pg-section-heading{margin-bottom:30px}
.portal-home .p-mech .pg-section-heading p{max-width:640px;line-height:1.75}
.portal-home .p-mech + .p-mech{padding-top:0}
.p-mech-note{margin:14px 0 0;font-size:13px;line-height:1.7;color:var(--color-text-muted)}
.p-mech-note a{color:var(--color-primary-text);font-weight:650}
.p-shot{position:relative;display:block;border:1px solid var(--color-border);border-radius:14px;overflow:hidden;background:var(--color-surface);box-shadow:0 10px 28px var(--color-shadow-soft)}
.p-shot img{display:block;width:100%;height:auto}
.p-shot .p-screen-expand{opacity:0;transition:opacity .15s}
.p-shot:focus-visible .p-screen-expand{opacity:1}
@media(hover:hover){.p-shot{transition:border-color .15s,box-shadow .15s}.p-shot:hover{border-color:var(--color-primary);box-shadow:0 14px 34px var(--color-shadow-photo)}.p-shot:hover .p-screen-expand{opacity:1}}
@media(hover:none){.p-shot .p-screen-expand{opacity:1}}
.p-shot-caption{margin:10px 0 0;font-size:13px;line-height:1.6;color:var(--color-text-muted)}
.p-shot-caption strong{display:block;color:var(--color-text-heading);font-size:14px;margin-bottom:2px}
.p-phone-shot{width:min(100%,250px);border-radius:22px;border:1px solid var(--color-border);background:var(--color-surface);padding:6px;box-shadow:0 14px 34px var(--color-shadow-soft)}
.p-phone-shot img{display:block;width:100%;height:auto;border-radius:17px}
.p-phone-shot .p-screen-expand{right:14px;bottom:14px;font-size:11px;padding:8px 10px}

/* 폰 → PC */
.p-bridge{display:grid;grid-template-columns:260px 56px minmax(0,1fr);gap:22px;align-items:center}
.p-bridge-arrow{display:grid;place-items:center;color:var(--color-primary-text)}
.p-bridge-arrow svg{width:44px;height:44px}
.p-bridge-pc{display:grid;gap:14px}
.p-bridge-pc .p-shot img{aspect-ratio:5/3;object-fit:cover;object-position:left top}
.p-bridge-side{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;align-items:end}
.p-bridge-side .p-shot img{aspect-ratio:5/3;object-fit:cover;object-position:left top}
.p-bridge-actions{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:26px}
@media(max-width:900px){.p-bridge{grid-template-columns:1fr;gap:14px}.p-bridge-arrow svg{transform:rotate(90deg)}.p-phone-shot{margin-inline:auto}.p-bridge-side{grid-template-columns:1fr}}

/* 현장 사진 */
.p-floor-lines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}
.p-floor-lines div{padding:18px 20px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface)}
.p-floor-lines strong{display:block;font-size:16px;letter-spacing:-.02em;margin-bottom:6px}
.p-floor-lines p{margin:0;font-size:14px;line-height:1.75;color:var(--color-text-muted)}
@media(max-width:800px){.p-floor-lines{grid-template-columns:1fr;gap:10px}}

/* 다시 온 차 */
.p-history{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:40px;align-items:center}
.p-history-copy p{margin:0 0 14px;font-size:15px;line-height:1.85;color:var(--color-text-body,var(--color-text-muted))}
.p-history-copy p:last-child{margin-bottom:0}
.p-history-shots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.p-history-shots figure{margin:0}
.p-history-shots .p-phone-shot{width:100%}
.p-history-shots figcaption{margin-top:8px;font-size:12.5px;line-height:1.55;color:var(--color-text-muted);text-align:center}
@media(max-width:900px){.p-history{grid-template-columns:1fr;gap:22px}}
@media(max-width:600px){.p-history-shots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.p-history-shots .p-phone-shot{padding:3px;border-radius:14px}.p-history-shots .p-phone-shot img{border-radius:11px}.p-history-shots figcaption{font-size:11px}.p-history-shots .p-screen-expand{display:none}}

/* 사장님 PC */
.p-owner-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:22px;align-items:start}
.p-owner-main .p-shot img{aspect-ratio:5/3;object-fit:cover;object-position:left top}
.p-owner-list{display:grid;gap:12px}
.p-owner-item{display:grid;grid-template-columns:132px minmax(0,1fr);gap:14px;align-items:center;padding:12px;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);color:inherit;text-decoration:none}
.p-owner-item .p-shot{border-radius:9px;box-shadow:none}
.p-owner-item .p-shot img{aspect-ratio:5/3;object-fit:cover;object-position:left top}
.p-owner-item strong{display:block;font-size:15px;letter-spacing:-.02em;margin-bottom:3px}
.p-owner-item span{font-size:13px;line-height:1.6;color:var(--color-text-muted)}
.p-owner-item .p-chip{margin-left:6px;vertical-align:middle}
@media(hover:hover){.p-owner-item{transition:border-color .15s}.p-owner-item:hover{border-color:var(--color-primary)}}
@media(max-width:900px){.p-owner-grid{grid-template-columns:1fr}}
@media(max-width:600px){.p-owner-item{grid-template-columns:96px minmax(0,1fr);gap:10px;padding:10px}.p-owner-item strong{font-size:14px}.p-owner-item span{font-size:12px}}

/* 간판 격자(정지, 마키 없음) */
.p-signs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.p-signs li{display:grid;gap:8px}
.p-signs img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:14px;border:1px solid var(--color-border);background:var(--color-surface-neutral)}
.p-signs span{display:flex;align-items:baseline;gap:8px;padding:0 4px}
.p-signs strong{font-size:15px;letter-spacing:-.02em}
.p-signs small{font-size:12px;color:var(--color-text-muted)}
@media(max-width:700px){.p-signs{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.p-signs img{border-radius:10px}.p-signs strong{font-size:13px}.p-signs small{font-size:11px}}

/* 넘어올 때 표 */
.p-switch-lead{margin:0 0 20px;font-size:17px;line-height:1.7;color:var(--color-text-heading);max-width:640px}
.portal-home .p-mech .table-scroll table{font-size:14px}

/* 시작 블록 두 길 */
.p-start-roles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px}
.p-start-role{padding:20px 22px;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface)}
.p-start-role h4{margin:0 0 10px;font-size:18px;letter-spacing:-.03em}
.p-start-role p{margin:0;font-size:14px;line-height:1.8;color:var(--color-text-muted)}
.p-start-role p+p{margin-top:8px}
.p-share-owner{display:inline-flex;align-items:center;gap:8px;margin-top:14px;min-height:42px;padding:9px 14px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-bg-canvas);color:var(--color-primary-text);font-size:13px;font-weight:650}
.p-share-owner .p-icon{width:16px;height:16px}
.p-share-status{display:block;margin-top:8px;font-size:12px;color:var(--color-text-muted);min-height:18px}
.p-start-ios{font-size:12px;color:var(--color-text-muted);margin-top:10px}
@media(max-width:800px){.p-start-roles{grid-template-columns:1fr}}

/* 모바일 하단 고정 바 */
.p-sticky-cta{display:none}
@media(max-width:600px){
  .p-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) 40px;gap:8px;align-items:center;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));background:var(--color-surface-glass);border-top:1px solid var(--color-border);box-shadow:0 -8px 24px var(--color-shadow-soft);transform:translateY(100%);transition:transform .2s ease-out}
  .p-sticky-cta.is-visible{transform:none}
  .p-sticky-cta[hidden]{display:none}
  .p-sticky-cta .p-button{min-height:44px;padding:8px 10px;font-size:13px;gap:6px;white-space:nowrap}
  .p-sticky-cta button{width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--color-text-muted);display:grid;place-items:center}
  .p-sticky-cta button .p-icon{width:16px;height:16px}
  body.has-sticky-cta .bw-mascot-fab{transform:translateY(-62px)}
  body.has-sticky-cta{padding-bottom:64px}
}

/* 등장 1회(IntersectionObserver). .js-reveal 은 스크립트가 붙이므로 JS 가 없으면 전부 보인다. */
@media(prefers-reduced-motion:no-preference){
  .portal-home .js-reveal{opacity:0;transform:translateY(12px);transition:opacity .36s ease-out,transform .36s ease-out}
  .portal-home .js-reveal.is-in{opacity:1;transform:none}
}

/* 홈 FAQ 보조 */
.p-owner-faq .p-faq-list details>p{color:var(--color-text-heading)}
