#main_content {  width: 100%; }
#main_intro { display:none; }

:root { 
    --place-border: #e5e7eb; 
    --place-muted: #6b7280; 
    --place-bg: #f8fafc; 
    --place-card: #ffffff; 
    --place-font-family: -apple-system,BlinkMacSystemFont,helvetica,"Apple SD Gothic Neo",sans-serif;
    --place-detail-overlay-gap: 6px;
    /* 오버레이 상세카드 상단 여백(수동 보정용, 필요 시만) */
    --place-detail-top-extra: 0px;
    /* 오버레이 상세카드 하단 여백(뷰포트 기준) */
    --place-detail-height-extra: 0px;
    --place-detail-bottom-gap: 10px;
    /* 상세 패널 기본 너비(지도 중심 오프셋 추정용) */
    --place-detail-overlay-width: 420px;
    /* 상세 패널 열림 시 마커를 추가로 오른쪽으로(px) */
    --place-map-center-pan-extra: 0;
} 

body { font-family: var(--place-font-family); }

#logo_wrap,
.footer-info  { display:none;}

.place-shell,
.place-shell input,
.place-shell button,
.place-shell textarea,
.place-shell select,
.place-shell .pd-review-report,
.place-shell .pd-review-report *,
.place-shell .vote-result-widget,
.place-shell .receipt-photo-review-widget {
    font-family: var(--place-font-family);
}

.place-shell {
    display:grid; grid-template-columns:360px 1fr; height: 100vh; border:1px solid var(--place-border); border-radius:16px; overflow:hidden; background:var(--place-card); } 
/* min-height:0 중요: grid/flex 내부 스크롤(overflow:auto) 활성화 */
.place-sidebar { border-right:1px solid var(--place-border); background:#fff; display:flex; flex-direction:column; min-width:0; min-height:0; z-index:999; }
.place-detail { background:#fff; min-width:0; min-height:0; display:none; } 
.place-map-pane { position:relative; min-width:0; min-height:0; background:var(--place-bg); } 

/* map 안에 있던 검색바가 load 시 잠깐 보였다가 이동하면서 "큰 돋보기"가 번쩍이는 FOUC 방지 */
.map-search-bar { visibility:hidden; } 
.place-search .map-search-bar { visibility:visible; } 
.main_content_wrap { padding:0;}

/* 상세 패널: 네이버처럼 map 위에 떠있는 카드(좌측/상단 여백) */
.place-detail.is-overlay { 
    position:fixed; 
    top: var(--place-detail-top, 10px);
    bottom: var(--place-detail-bottom-gap, 10px);
    left: var(--place-detail-left, 16px);
    width: min(420px, calc(100vw - var(--place-detail-left, 16px) - 16px));
    min-width: 320px;
    height: auto;
    max-height: none;
    background:transparent; 
    border:0; 
    z-index: 1400; 
    pointer-events:none; 
    transition: transform .22s ease;
    box-sizing:border-box;
} 
.place-detail.is-overlay { display:block; } 
.place-detail.is-overlay .place-detail-inner { 
    padding:0 0 12px; 
    height:100%; 
    max-height:100%; 
    min-height:0;
    overflow:auto; 
    background:transparent; 
    pointer-events:auto; 
    box-sizing:border-box;
    border-radius: 12px;
}
.place-detail.is-overlay.has-detail .place-detail-inner .pd-card {
    min-height:100%;
    box-sizing:border-box;
}
.place-detail.is-overlay .place-detail-title,
.place-detail.is-overlay .place-detail-sub { display:none; } 
.place-detail.is-overlay #placeDetailContent { margin-top:0 !important; } 

/* Naver-like dock handle (collapse/expand the whole detail panel) */
.pd-dock-handle {
    position:absolute;
    top:50%;
    right:-20px;
    transform: translateY(-50%);
    width:36px;
    height:56px;
    border-radius: 0 14px 14px 0;
    border:1px solid rgba(229,231,235,0.95);
    background:#fff;
    color:#111827;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow: 0 10px 22px rgba(0,0,0,0.10);
    z-index: -1;
    pointer-events:auto;
}
.pd-dock-handle:hover { background:#f3f4f6; }
.pd-dock-handle svg { width:18px; height:18px; }

/* Hide handle until a store is selected (prevents initial stray arrow) */
.place-detail.is-overlay:not(.has-detail) .pd-dock-handle { display:none; }

/* Collapse to the left, and keep z-index low so the left sidebar can stay on top */
.place-detail.is-overlay.is-collapsed { transform: translateX(calc(-100% - 35px)); z-index: 800; }
.place-detail.is-overlay.is-collapsed .pd-dock-handle svg { transform: rotate(180deg); }

#map { width:100%; height:100%; min-height:640px; background-color:#f8f9fa; margin:0; position: relative; }

.place-search { padding:12px 14px 10px; border-bottom:1px solid var(--place-border); background:#fff; position:sticky; top:0; z-index:5; }
.place-search .map-search-bar {
    --accent:#7452f6;
    width:100%;
    margin:0;
    padding:0;
    background:transparent;
    box-shadow:none;
    visibility:visible;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
}
.place-search .place-search-logo-row {
    display:flex;
    align-items:center;
    justify-content:flex-start;
    padding:0 2px;
    margin:0 10px 10px;
}
.place-search .place-search-logo {
    display:inline-flex;
    align-items:center;
    text-decoration:none;
    line-height:0;
}
.place-search .place-search-logo-img {
    display:block;
    width:auto;
    max-width:168px;
    height:auto;
    max-height:62px;
    object-fit:contain;
}
.place-search .map-search-form-wrap {
    position:relative;
    width:100%;
}
.place-search .map-search-form {
    width:100%;
    min-height:56px;
    padding:0 6px 0 10px;
    display:flex;
    align-items:center;
    gap:4px;
    border-radius:28px;
    border:2px solid rgba(116, 82, 246, 0.55);
    background:#fff;
    box-shadow:0 8px 22px rgba(34, 28, 76, 0.08);
    margin:0;
    box-sizing:border-box;
}
.place-search .map-search-form,
.place-search .map-search-form * { -webkit-tap-highlight-color:transparent; }
.place-search .map-search-form:focus-within,
.place-search .map-search-input:focus,
.place-search .map-search-input:focus-visible,
.place-search .map-search-option:focus,
.place-search .map-search-submit:focus {
    outline:none !important;
}
.place-search .map-search-brand {
    width:30px;
    min-width:30px;
    height:30px;
    border-right:1px solid #d6daf2;
    color:var(--accent);
    font-size:33px;
    font-weight:700;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    padding-right:10px;
    margin-right:2px;
    font-family:"Segoe UI", "Noto Sans KR", sans-serif;
}
.place-search .map-search-input,
.place-search .map-search-form input[type="text"] {
    border:0 !important;
    outline:0 !important;
    box-shadow:none !important;
    flex:1;
    min-width:0;
    width:100%;
    font-size:15px;
    color:#2b2f4b;
    background:transparent !important;
    appearance:none;
    -webkit-appearance:none;
    padding:0;
}
.place-search .map-search-input::placeholder { color:#a6acbe; font-weight:500; }
.place-search .map-search-option {
    width:34px;
    height:34px;
    border:0;
    background:transparent;
    color:#444b67;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    border-radius:10px;
    flex-shrink:0;
    padding:0;
}
.place-search .map-search-option:hover { background:#f3f4fb; }
.place-search .map-search-submit {
    width:38px;
    height:38px;
    border:0;
    border-radius:999px;
    background:linear-gradient(145deg, #8968ff 0%, #6848f0 100%);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    box-shadow:0 8px 14px rgba(104, 72, 240, 0.35);
    flex-shrink:0;
    padding:0;
}
.place-search .map-search-submit:hover { filter:brightness(1.02); }
.place-search .map-search-submit svg,
.place-search .map-search-option svg { width:18px; height:18px; display:block; }
.place-search .map-location-btn { display:none !important; }

/* 자동완성 드롭다운 */
.place-search .typeahead { position:absolute; left:0; right:0; top:calc(100% + 8px); background:#fff; border:1px solid var(--place-border); border-radius:12px; box-shadow:0 18px 40px rgba(0,0,0,0.10); overflow:hidden; z-index:20; display:none; }
.typeahead .row { display:flex; gap:10px; padding:10px 12px; cursor:pointer; align-items:flex-start; }
.typeahead .row:hover { background:#f8fafc; }
.typeahead .ico { width:18px; height:18px; color:#9ca3af; flex:0 0 auto; margin-top:2px; }
.typeahead .t { flex:1 1 auto; min-width:0; }
.typeahead .t .name { font-weight:900; font-size:13px; color:#111827; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.typeahead .t .addr { margin-top:3px; font-size:12px; color:#6b7280; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.typeahead .tag { font-size:12px; color:#9ca3af; font-weight:900; flex:0 0 auto; margin-top:1px; }
.typeahead .divider { height:1px; background:#eef2f7; }

.place-list { padding:10px 10px 14px; overflow:auto; flex:1 1 auto; min-height:0; background:#fff; }
.place-item { border:1px solid var(--place-border); border-radius:14px; padding:12px; margin-bottom:10px; cursor:pointer; background:#fff; transition: box-shadow .15s ease, border-color .15s ease; }
.place-item:hover { border-color:#cbd5e1; box-shadow: 0 8px 18px rgba(0,0,0,0.06); }
.place-item.is-active { border-color:#7452f6; box-shadow:0 10px 22px rgba(116, 82, 246, 0.18); }
.place-item .t1 { font-weight:900; font-size:15px; color:#111827; }
.place-item .t2 { margin-top:4px; font-size:12px; color:var(--place-muted); line-height:1.4; }
.place-item .t3 { margin-top:6px; font-size:12px; color:#374151; }

.place-detail-inner { padding:16px; height:100%; min-height:0; overflow:auto; overflow-anchor:none; overscroll-behavior: contain; -ms-scroll-chaining: none; background:#fff; }
.place-detail-inner.is-news-scroll-lock,
.place-detail-inner.is-style-scroll-lock,
.place-detail-inner.is-review-scroll-lock { overflow:hidden; display:flex; flex-direction:column; }
.place-detail-inner.is-news-scroll-lock #placeDetailContent,
.place-detail-inner.is-style-scroll-lock #placeDetailContent,
.place-detail-inner.is-review-scroll-lock #placeDetailContent { flex:1 1 0; min-height:0; height:0; overflow:hidden; display:flex; flex-direction:column; }
.place-detail-inner.is-news-scroll-lock .pd-card,
.place-detail-inner.is-style-scroll-lock .pd-card,
.place-detail-inner.is-review-scroll-lock .pd-card { flex:1 1 0; min-height:0; height:0; display:flex; flex-direction:column; }
.place-detail.is-overlay.has-detail .place-detail-inner.is-news-scroll-lock .pd-card,
.place-detail.is-overlay.has-detail .place-detail-inner.is-style-scroll-lock .pd-card,
.place-detail.is-overlay.has-detail .place-detail-inner.is-review-scroll-lock .pd-card { min-height:0; height:0; max-height:100%; }
.place-detail-title { margin:0; font-size:22px; font-weight:900; letter-spacing:-0.02em; }
.place-detail-sub { margin:6px 0 0; font-size:13px; color:var(--place-muted); }
.place-detail-meta { margin-top:14px; display:grid; gap:10px; }
.place-detail-row { display:flex; gap:10px; }
.place-detail-label { width:72px; flex:0 0 auto; color:var(--place-muted); font-weight:900; font-size:12px; }
.place-detail-value { color:#111827; font-size:13px; line-height:1.5; }
.place-detail-actions { margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; }
.place-btn { display:inline-flex; align-items:center; justify-content:center; padding:10px 12px; border-radius:10px; border:1px solid #d1d5db; background:#fff; text-decoration:none; color:#111827; font-weight:900; font-size:13px; cursor:pointer; }
.place-btn-primary { border-color:#10b981; background:#10b981; color:#fff; }

/* 네이버 스타일 느낌의 상세 카드 */
.pd-card { position:relative; border:1px solid var(--place-border); border-radius:16px; overflow:visible; background:#fff; box-shadow: 0 10px 28px rgba(0,0,0,0.06); }
.pd-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(72px,72px); gap:4px; padding:0; width:100%; box-sizing:border-box; background:#fff; border-radius:16px 0 0 0; overflow:hidden; align-items:stretch; height:160px; }
.pd-hero-main { min-width:0; min-height:148px; border-radius:0; overflow:hidden; background-size:cover; background-position:center; box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08); }
.pd-hero-left { background: radial-gradient(circle at 20% 20%, rgba(255,255,255,0.35), transparent 45%), linear-gradient(135deg, #111827, #6b7280); }
.pd-hero-center { background:#cbd5e1; }
.pd-hero-side-col { display:flex; flex-direction:column; align-items:stretch; min-width:72px; width:100%; max-width:72px; background:#fff; overflow:hidden; }
.pd-hero-side { display:flex; flex-direction:column; align-items:stretch; border:0; border-radius:0; overflow:hidden; background:#fff; min-width:0; width:100%; max-width:100%; padding:0; text-align:center; appearance:none; -webkit-appearance:none; flex:1 1 auto; min-height:0; cursor:pointer; }
.pd-hero-side-thumb { width:100%; min-width:100%; height:56px; min-height:56px; flex:0 0 56px; background:#dbe4f0; background-size:cover; background-position:center; overflow:hidden; }
.pd-hero-share-btn {
    flex:0 0 36px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    width:100%;
    margin:0;
    padding:0 6px;
    border:0;
    border-top:1px solid #e8edf3;
    background:linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    color:#475569;
    font-size:12px;
    font-weight:700;
    letter-spacing:-0.04em;
    line-height:1;
    cursor:pointer;
    transition:background .15s ease, color .15s ease;
}
.pd-hero-share-btn:hover { background:#eef4ff; color:#2563eb; }
.pd-hero-share-btn:active { background:#e3ecff; }
.pd-hero-share-btn svg { width:14px; height:14px; flex:0 0 14px; display:block; }
.pd-hero-share-btn span { display:block; }
.pd-hero-side-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.pd-hero-side-copy { flex:1 1 auto; display:flex; align-items:center; justify-content:center; width:100%; box-sizing:border-box; padding:8px 4px; background:#fff; text-align:center; }
.pd-hero-side-link { display:block; width:100%; font-size:15px; font-weight:600; line-height:1.3; letter-spacing:-0.04em; padding:0; margin:0 auto; font-family:inherit; color:#6c6c6c; text-align:center; }
.pd-body { padding:0px; }
.pd-profile-scroll { background:#fff; }
.pd-sticky-sentinel { height:1px; margin:0; padding:0; pointer-events:none; }
.pd-sticky-head { position:sticky; top:0; z-index:30; background:#fff; box-shadow:0 1px 0 rgba(229,231,235,0.9); }
.pd-title-row { position:relative; display:flex; gap:10px; justify-content:space-between; align-items:flex-start; padding:16px 12px 0; }
.pd-sticky-style-back {
    position:absolute;
    left:6px;
    top:-70%;
    transform:translateY(-50%);
    width:44px;
    height:44px;
    border-radius:999px;
    border:0;
    background:transparent;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    z-index:40;
}
.pd-sticky-style-back svg { width:26px; height:26px; display:block; }
.pd-sticky-style-back[hidden] { display: none !important; }
.pd-sticky-head.is-stuck .pd-sticky-style-back,
.pd-sticky-head.is-news-panel-active .pd-sticky-style-back,
.pd-sticky-head.is-style-panel-active .pd-sticky-style-back { color:#111827; top:50%; }
.pd-title-row--main > div { padding-left:42px; }
.pd-title-row--main .pd-sticky-style-back { top:-115px; color:#fff; }


.pd-title-row > div { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:8px; row-gap:2px; min-width:0; padding-left:0px; }
.pd-title-head { flex:0 0 100%; display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; order:0; }
.pd-title-head-inner { display:flex; flex-wrap:wrap; align-items:baseline; column-gap:8px; row-gap:2px; min-width:0; flex:1 1 auto; }
.pd-heart-like { display:inline-flex; align-items:center; gap:4px; border:0; background:transparent; padding:0; margin:0; cursor:pointer; color:#9ca3af; font-size:12px; font-weight:700; flex:0 0 auto; white-space:nowrap; line-height:1.2; align-self:center; }
.pd-heart-like:disabled { cursor:default; opacity:1; }
.pd-heart-like.is-liked { color:#ef4444; }
.pd-heart-like-icon::before { content:'♡'; font-size:15px; line-height:1; }
.pd-heart-like.is-liked .pd-heart-like-icon::before { content:'♥'; }
.pd-sticky-head.is-stuck .pd-heart-like { display:none; }
.pd-title-row--compact { display:none; padding-bottom:0; }
.pd-sticky-head.is-stuck .pd-title-row--compact { display:flex; }
.pd-sticky-head.is-stuck .pd-title-row--compact > div { padding-left:42px; }
.pd-title { margin:0; font-size:20px; font-weight:600;  min-width:0; order:1; color:#1c1c1c; }
.pd-biz { color:#6b7280; font-weight:600; font-size:14px; white-space:nowrap; order:2; }
.pd-trust-badges { flex:0 0 100%; order:3; display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.pd-trust-badge { display:inline-flex; align-items:center; gap:5px; padding:5px 10px; border-radius:999px; background:#f3f0ff; color:#6d5efc; border:1px solid #e4deff; font-size:14px; font-weight:600; line-height:1.2; white-space:nowrap; }
.pd-trust-badge__icon { width:16px; height:16px; flex-shrink:0; }
.pd-sticky-head.is-stuck .pd-trust-badges { display:none; }
.pd-board-head { flex:0 0 100%; order:2; display:flex; align-items:center; gap:10px; min-width:0; color:#6b7280; font-size:13px; font-weight:500; line-height:1.45; margin:2px 0 6px; }
.pd-board-name { min-width:0; color:#434343; font-size:16px; font-weight:600; line-height:1.45; }
.pd-board-rank { display:inline-flex; align-items:center; flex:0 0 auto; height:22px; padding:0 10px; border-radius:999px; background:#eef4ff; color:#4f6fae; border:1px solid #d7e4ff; font-size:12px; font-weight:700; line-height:1; white-space:nowrap; }
.pd-board-intro { flex:0 0 100%; order:2; color:#6b7280; font-size:14px; font-weight:500; line-height:1.45; }
/* 디자이너 목록(로딩 스켈레톤 포함): 상호 아래 중복 정보 숨김 */
.pd-body.pd-body--has-designer-list > .pd-title-row--main .pd-board-head,
.pd-body.pd-body--has-designer-list > .pd-title-row--main .pd-board-intro,
.pd-body.pd-body--has-designer-list > .pd-title-row--main .pd-meta,
.pd-body:has(.pd-designer-list) > .pd-title-row--main .pd-board-head,
.pd-body:has(.pd-designer-list) > .pd-title-row--main .pd-board-intro,
.pd-body:has(.pd-designer-list) > .pd-title-row--main .pd-meta {
    display:none;
}
.pd-profile-scroll {
    min-height:0;
}
.pd-profile-scroll:has(.pd-designer-list) {
    min-height:96px;
}
.pd-designer-list {
    margin:10px 12px 8px;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:14px;
}
.pd-designer-card {
    display:flex;
    align-items:stretch;
    gap:12px;    
    /* border-top: 1px solid #ddd; */
    padding: 0 10px;    
}
.pd-designer-media {
    flex:0 0 88px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    align-self:stretch;
    gap:8px;
}

.pd-designer-card.is-active,
.pd-designer-list--single .pd-designer-card {
    border:2px solid #f9a8d4;
    background:#fdf2f8;
    padding:10px;
    border-radius:10px;
    box-shadow:0 8px 18px rgba(236,72,153,0.12);
}

.pd-designer-card.is-active .pd-designer-thumb {
    box-shadow:0 0 0 0px #e7e7e7;
    
}
.pd-designer-thumb {
    flex:1 1 auto;
    width:88px;
    min-width:88px;
    min-height:88px;
    height:100%;
    align-self:stretch;
    border:0;
    padding:0;
    border-radius:12px;
    background-size:cover;
    background-position:center top;
    background-repeat:no-repeat;
    cursor:pointer;
    transition:opacity .15s ease, box-shadow .15s ease;
}
.pd-designer-selected-badge {
    display:none;
    min-width:84px;
    height:24px;
    text-align:center;
    border-radius:999px;
    border:1px solid #f9a8d4;
    background:linear-gradient(180deg,#fdf2f8,#fce7f3);
    color:#be185d;
    font-size:11px;
    font-weight:700;
    line-height:1;
    padding:0 10px;
    box-shadow:0 6px 14px rgba(236,72,153,0.18);
    letter-spacing:0.01em;
    white-space:nowrap;
}
.pd-designer-selected-badge::before {
    content:'❤';
    display:inline-block;
    margin-right:4px;
    font-size:10px;
    transform:translateY(-0.5px);
}
.pd-designer-card.is-active .pd-designer-selected-badge,
.pd-designer-list--single .pd-designer-selected-badge {
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
}
.pd-designer-thumb:hover {
    opacity:0.92;
}
.pd-designer-body {
    flex:1 1 auto;
    min-width:0;
    align-self:stretch;
    display:flex;
    flex-direction:column;
    gap:0;
    padding-top:0;
    min-height:88px;
}
.pd-designer-intro-row {
    display:flex;
    align-items:flex-start;
    gap:6px;
    margin-bottom:2px;
    flex:0 0 auto;
}
.pd-designer-intro {
    flex:1 1 auto;
    min-width:0;
    margin:0;
    color:#6b7280;
    font-size:14px;
    font-weight:500;
    line-height:1.45;
    max-height:calc(1.45em * 2);
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    word-break:keep-all;
    overflow-wrap:anywhere;
}
.pd-designer-intro-row.is-expanded .pd-designer-intro {
    display:block;
    max-height:none;
    -webkit-line-clamp:unset;
    overflow:visible;
}
.pd-designer-intro-more {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:auto;
    height:auto;
    margin:0;
    align-self:center;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    color:#9ca3af;
    cursor:pointer;
    box-shadow:none;
    line-height:1;
    transition:color .15s ease, transform .15s ease;
}
.pd-designer-intro-more[hidden] {
    display:none !important;
}
.pd-designer-intro-row.is-expanded .pd-designer-intro-more svg {
    transform:rotate(-90deg);
}
.pd-designer-intro-more svg {
    display:block;
    transition:transform .15s ease;
}
.pd-designer-intro-more:hover {
    color:#6b7280;
}
.pd-designer-intro-more:active {
    color:#374151;
    transform:translateX(1px);
}
.pd-designer-name {
    margin:0;
    color:#404040;
    font-size:15px;
    font-weight:600;
    line-height:1.4;
    flex:0 0 auto;
}
.pd-designer-specialty {
    margin:0;
    color:#4b5563;
    font-size:13px;
    font-weight:500;
    line-height:1.4;
}
.pd-designer-style-btn {
    align-self:flex-start;
    display:inline-flex;
    align-items:center;
    flex-wrap:wrap;
    gap:16px;
    margin-top:auto;
    padding-top:4px;
    padding-bottom:0;
    border:0;
    background:transparent;
    font-size:13px;
    font-weight:600;
    line-height:1.4;
    cursor:pointer;
    text-decoration:none;
    flex:0 0 auto;
}
.pd-designer-style-btn .pd-chip {
    margin:0;
    pointer-events:none;
}
.pd-designer-style-link {
    color:#808590;
    font-weight:500;
    /* text-decoration:underline; */
    text-underline-offset:2px;
    font-size:14px;
}
.pd-designer-style-btn:hover .pd-designer-style-link {
    color:#1d4ed8;
}
.pd-designer-card--skeleton {
    pointer-events:none;
}
.pd-designer-skeleton-thumb {
    flex:0 0 88px;
    width:88px;
    min-height:88px;
    border-radius:12px;
    background:linear-gradient(135deg,#e5e7eb 0%,#f3f4f6 45%,#e5e7eb 90%);
    background-size:200% 100%;
    animation:pd-designer-shimmer 1.2s ease-in-out infinite;
}
.pd-designer-skeleton-line {
    border-radius:6px;
    background:linear-gradient(90deg,#e5e7eb 0%,#f3f4f6 50%,#e5e7eb 100%);
    background-size:200% 100%;
    animation:pd-designer-shimmer 1.2s ease-in-out infinite;
}
.pd-designer-skeleton-line--intro {
    height:calc(1.45em * 2);
    width:100%;
    max-width:none;
    margin-bottom:2px;
}
.pd-designer-skeleton-line--md { height:14px; width:72%; max-width:220px; }
.pd-designer-skeleton-line--sm { height:14px; width:48%; max-width:160px; margin-top:2px; }
.pd-designer-skeleton-line--btn { height:22px; width:120px; margin-top:6px; border-radius:999px; }
@keyframes pd-designer-shimmer {
    0% { background-position:100% 0; }
    100% { background-position:-100% 0; }
}
.pd-meta { flex:0 0 100%; order:3; }
.pd-meta { margin-top:8px; display:flex; gap:6px; flex-wrap:wrap; }
/* 스크롤 고정 시 compact 상호만 표시 (탭과 함께) */
.pd-sticky-head.is-stuck .pd-title-row--compact { padding-bottom:8px; }
.pd-chip { border:1px solid #e5e7eb; background:#f8fafc; color:#374151; padding:4px 10px; border-radius:12px; font-size:12px; font-weight:400; }
.pd-chip-accent { border-color:#f0abfc; background:#fdf4ff; color:#a21caf; }
.pd-follow { border:1px solid #e5e7eb; background:#fff; border-radius:999px; padding:8px 10px; font-size:12px; font-weight:900; cursor:pointer; }
.pd-actions { margin-top:12px; display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:8px; }
.pd-actions a:not(.pd-action-btn),
.pd-actions button:not(.pd-action-btn) { border:0; background:transparent; border-radius:0; padding:0; font-weight:inherit; font-size:inherit; cursor:pointer; text-decoration:none; color:inherit; text-align:center; }
.pd-store-actions { margin-top:14px; }
.pd-actions a.pd-action-btn,
.pd-actions button.pd-action-btn {
    display:flex; align-items:center; gap:7px;
    min-height:52px; padding:9px 11px 9px 9px;
    border-radius:20px !important;
    border:1px solid #ebe9f5;
    background:#fff !important;
    box-shadow:0 4px 16px rgba(15,23,42,0.08);
    font-size:15px; font-weight:600; letter-spacing:0;
    color:#404f64; text-decoration:none; text-align:left;
    overflow:hidden;
    box-sizing:border-box;
    transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.pd-action-icon-wrap {
    position:relative; flex:0 0 34px; width:34px; height:34px;
    display:flex; align-items:center; justify-content:center;
}
.pd-action-icon-wrap--soft {
    border-radius:50%;
    background:rgba(124,92,255,0.1);
}
.pd-action-icon-wrap--glass {
    width:32px; height:32px; flex-basis:32px;
    border-radius:50%;
    background:rgba(255,255,255,0.22);
    border:1px solid rgba(255,255,255,0.32);
    -webkit-backdrop-filter:blur(5px);
    backdrop-filter:blur(5px);
    box-shadow:inset 0 1px 0 rgba(255,255,255,0.35);
}
.pd-action-fa {
    font-size:18px; line-height:1; flex:0 0 auto;
    color:#7c5cff; display:block;
}
.pd-action-ico { width:21px; height:21px; flex:0 0 auto; color:#7c5cff; }
.pd-action-ico path { fill:currentColor; }
.pd-action-sparkle {
    position:absolute; top:-1px; right:-2px;
    width:11px; height:11px; color:#9b7cff; pointer-events:none;
}
.pd-action-label { flex:1; min-width:0; line-height:1.2; transform:translateY(-0.5px); white-space:nowrap; }
.pd-actions a.pd-action-btn.pd-action-talk,
.pd-actions a.pd-action-btn.pd-action-reserve {
    border-color:#ebe9f5 !important;
    background:#fff !important;
}
.pd-action-talk .pd-action-fa,
.pd-action-reserve .pd-action-fa,
.pd-action-talk .pd-action-ico,
.pd-action-reserve .pd-action-ico { color:#7c5cff; }
.pd-action-talk .pd-action-sparkle,
.pd-action-reserve .pd-action-sparkle { color:#a78bfa; }
.pd-actions a.pd-action-btn.pd-action-call,
.pd-actions a.pd-action-btn.pd-action-call:link,
.pd-actions a.pd-action-btn.pd-action-call:visited {
    border:0 !important;
    background:linear-gradient(135deg, #c4b5fd 0%, #8b7cf8 38%, #7c5cff 68%, #6a4dfc 100%) !important;
    color:#fff !important;
    -webkit-text-fill-color:#fff;
    box-shadow:0 8px 22px rgba(106,77,252,0.34) !important;
}
.pd-action-call .pd-action-label,
.pd-action-call .pd-action-fa,
.pd-action-call .pd-action-ico,
.pd-action-call .pd-action-ico path,
.pd-action-call .pd-action-sparkle {
    color:#fff !important;
    -webkit-text-fill-color:#fff !important;
    fill:#fff !important;
}
.pd-action-call .pd-action-fa { font-size:16px; }
.pd-action-call .pd-action-ico { width:17px; height:17px; }
.pd-actions a.pd-action-btn:hover { transform:translateY(-1px); box-shadow:0 8px 20px rgba(15,23,42,0.1); }
.pd-actions a.pd-action-btn.pd-action-call:hover { box-shadow:0 12px 28px rgba(106,77,252,0.42) !important; }
@media (max-width:420px) {
    .pd-actions a.pd-action-btn { padding:8px 8px 8px 7px; gap:5px; min-height:48px; font-size:16px; border-radius:18px !important; }
    .pd-action-icon-wrap { width:30px; height:30px; flex-basis:30px; }
    .pd-action-icon-wrap--glass { width:28px; height:28px; flex-basis:28px; }
    .pd-action-fa { font-size:16px; }
    .pd-action-ico { width:18px; height:18px; }
}
.pd-tabs-wrap { position:relative; margin-top:0; border-bottom:1px solid #ddd; background:#fff; }
.pd-tabs-wrap .pd-tabs { margin-top:0; padding:10px 20px 0; border-bottom:0; }
.pd-tabs { display:flex; gap:20px; overflow-x:auto; overflow-y:hidden; flex-wrap:nowrap; white-space:nowrap; background:#fff; scrollbar-width:none; -ms-overflow-style:none; -webkit-overflow-scrolling:touch; scroll-behavior:smooth; }
.pd-tabs::-webkit-scrollbar { display:none; width:0; height:0; }
.pd-tabs-wrap::before,
.pd-tabs-wrap::after { content:''; position:absolute; top:0; bottom:0; width:40px; pointer-events:none; z-index:1; opacity:0; transition:opacity .18s ease; }
.pd-tabs-wrap::before { left:0; background:linear-gradient(to right, #fff 10%, rgba(255,255,255,0)); }
.pd-tabs-wrap::after { right:0; background:linear-gradient(to left, #fff 10%, rgba(255,255,255,0)); }
.pd-tabs-wrap.has-overflow:not(.at-start)::before { opacity:1; }
.pd-tabs-wrap.has-overflow:not(.at-end)::after { opacity:1; }
.pd-tabs-nav { position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:34px; height:34px; border:0; border-radius:999px; background:#fff; color:#374151; box-shadow:0 2px 10px rgba(15,23,42,.14); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .18s ease, box-shadow .18s ease; }
.pd-tabs-nav.is-prev { left:6px; }
.pd-tabs-nav.is-next { right:6px; }
.pd-tabs-nav.is-hidden { display:none !important; }
.pd-tabs-wrap.has-overflow:hover .pd-tabs-nav:not(.is-hidden),
.pd-tabs-wrap.has-overflow:focus-within .pd-tabs-nav:not(.is-hidden) { opacity:1; pointer-events:auto; }
.pd-tabs-nav:hover { box-shadow:0 4px 14px rgba(15,23,42,.18); }
@media (hover: none) {
    .pd-tabs-wrap.has-overflow .pd-tabs-nav:not(.is-hidden) { opacity:1; pointer-events:auto; }
}
.pd-sticky-head.is-stuck .pd-tabs-wrap .pd-tabs { padding-top:0; }
.pd-tab { display:inline-flex; align-items:center; border:0; background:transparent; padding:8px 0; font-weight:600; font-size:16px; color:#6b7280; cursor:pointer; white-space:nowrap; text-decoration:none; flex:0 0 auto; }
.pd-tab:hover { color:#111827; }
.pd-tab.is-active { color:#111827; border-bottom:2px solid #111827; }
.pd-pane { padding:10px 0 0; }
.pd-section { border:0px solid #eef2f7; border-radius:0px; padding:0px; margin-bottom:10px; border-top:10px solid #f0f0f0; }
.pd-section > div { padding:12px; }
.pd-section > .pd-section { padding:0; }
.pd-section .pd-section-title { padding:12px 12px 0;}

.pd-section:first-child { border-top:0; }

/* 전문 경력: 이미지는 풀폭, 타이틀만 좌우 여백 */
.pd-section.pd-career-section { padding:0 0 16px !important; box-sizing:border-box; }
.pd-section.pd-career-section > .pd-section-title { padding:16px 12px 12px !important; margin:0; font-size:18px; font-weight:700; color:#111827; }
.pd-section.pd-career-section > .pd-career-profile { margin:0 0 12px; padding:0 !important; width:100%; }
.pd-section.pd-career-section .pd-career-profile-photo {
    width:100%;
    aspect-ratio:4 / 5;
    max-height:420px;
    border-radius:0;
    overflow:hidden;
    background:linear-gradient(135deg,#e5e7eb,#d1d5db);
}
.pd-section.pd-career-section .pd-career-profile-photo img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center top;
}
.pd-section.pd-career-section .pd-career-profile-photo-fallback {
    width:100%;
    height:100%;
    background:linear-gradient(135deg,#e5e7eb,#cbd5e1);
}
.pd-section.pd-career-section .pd-career-profile-name {
    margin:16px 0 16px;
    padding:0 12px;
    font-size:16px;
    font-weight:600;
    color:#64748b;
    line-height:1.4;
    letter-spacing:-0.01em;
}
.pd-section.pd-career-section > .pd-career-list { display:flex; flex-direction:column; gap:12px; margin:0; padding:0 12px 8px !important; background:transparent; border:0; border-radius:0; }
.pd-section.pd-career-section > .pd-place-bot-block { padding:0 !important; margin:0; }
.pd-section.pd-career-section .pd-career-item { margin:0; padding:18px 18px 22px; background:#fff; border:1px solid #e8ecf1; border-radius:14px; box-shadow:0 2px 10px rgba(15,23,42,.05); min-height:76px; box-sizing:border-box; }
.pd-section.pd-career-section .pd-career-term { margin:0 0 10px; font-size:14px; font-weight:600; letter-spacing:0.06em; color:#5d6675; line-height:1.4; }
.pd-section.pd-career-section .pd-career-desc { margin:0; font-size:15px; font-weight:600; color:#1f2937; line-height:1.7; word-break:break-word; white-space:normal; }
.pd-section.pd-career-section .pd-place-bot-block > .pd-section-title { padding:16px 0 12px !important; margin:0; font-size:18px; font-weight:700; color:#111827; }
.pd-intro-card--ai-chatbot {
    display:block;
    padding:0;
    overflow:hidden;
    background:#fff;
    min-height:0;
    height:auto;
    cursor:default;
    pointer-events:none;
}
.pd-intro-card--ai-chatbot:hover {
    transform:none;
    box-shadow:0 4px 18px rgba(99, 130, 255, 0.1);
}
.pd-ai-chatbot-banner {
    display:flex;
    align-items:center;
    width:100%;
    height:54px;
    max-height:54px;
    overflow:hidden;
}
.pd-ai-chatbot-side {
    display:block;
    flex:0 0 auto;
    width:auto;
    height:54px;
    max-height:54px;
    object-fit:contain;
    object-position:center;
}
.pd-ai-chatbot-side--left { flex:0 0 auto; }
.pd-ai-chatbot-side--right { flex:0 0 auto; }
.pd-ai-chatbot-mid {
    flex:1 1 0;
    min-width:0;
    height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0 4px;
    background-repeat:no-repeat;
    background-position:center;
    background-size:100% 100%;
}
.pd-ai-chatbot-label {
    position:relative;
    z-index:1;
    font-size:17px;
    font-weight:800;
    letter-spacing:-0.03em;
    color:#1a2233;
    line-height:1.2;
    text-align:center;
    white-space:nowrap;
}
.pd-intro-card--ai-chatbot .pd-ai-chatbot-accent {
    background:linear-gradient(135deg, #7c3aed 0%, #6366f1 55%, #6a4dfc 100%);
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
}
.pd-place-bot-block .pd-place-bot-host {
    width:calc(100% - 24px);
    margin:0 12px 20px;
    box-sizing:border-box;
}
.pd-section.pd-career-section .pd-place-bot-block--divider { margin:0 -10px; border-top:10px solid #f0f0f0; padding:0 10px !important; box-sizing:border-box; }
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host {
    margin-top:0;
    overflow:visible;
    border-radius:14px;
    padding:0;
}
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host:empty { display:none; }
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host #bb-panel {
    width:100%;
    margin:0;
    max-width:none;
    color:#111827 !important;
    font-weight:400 !important;
}
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host #bb-panel,
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host #bb-panel *:not(.fa):not(.fas):not(.far):not(.fab):not(.fal):not(.fad):not(.fa-solid):not(.fa-regular):not(.fa-brands) {
    font-family: 'Pretendard Variable', 'Pretendard', sans-serif !important;
}
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host #bb-panel .fa,
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host #bb-panel .fas,
.pd-section.pd-career-section .pd-place-bot-block .pd-place-bot-host #bb-panel .fa-solid {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
}

/* 모바일 상세: 가격-챗봇 사이 미니 지도 (네이버 플레이스 스타일) */
.pd-place-map-section { display:none; padding:0 !important; }
.pd-place-map-inner { padding:12px; }
.pd-place-map-section .pd-section-title {
    margin:0 0 10px;
    font-size:18px;
    font-weight:700;
    color:#111827;
}
.pd-place-map-canvas-wrap {
    position:relative;
    border-radius:12px;
    overflow:hidden;
    border:1px solid #e5e7eb;
    background:#f3f4f6;
}
.pd-place-map-canvas {
    width:100%;
    height:200px;
    min-height:200px;
}
.pd-place-map-expand {
    position:absolute;
    top:10px;
    right:10px;
    z-index:4;
    width:34px;
    height:34px;
    border-radius:10px;
    border:1px solid rgba(229,231,235,.95);
    background:rgba(255,255,255,.96);
    color:#374151;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 8px rgba(15,23,42,.12);
    text-decoration:none;
}
.pd-place-map-zoom {
    position:absolute;
    top:52px;
    right:10px;
    z-index:4;
    width:34px;
    overflow:hidden;
    border-radius:10px;
    border:1px solid rgba(229,231,235,.95);
    background:rgba(255,255,255,.96);
    box-shadow:0 2px 8px rgba(15,23,42,.12);
}
.pd-place-map-zoom-btn {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:34px;
    border:0;
    background:transparent;
    color:#111827;
    font-size:22px;
    font-weight:500;
    line-height:1;
    cursor:pointer;
    padding:0;
}
.pd-place-map-zoom-btn + .pd-place-map-zoom-btn {
    border-top:1px solid #e5e7eb;
}
.pd-place-map-zoom-btn:active {
    background:#f3f4f6;
}
.pd-place-map-pin-label {
    display:inline-block;
    margin-top:2px;
    padding:2px 6px;
    border-radius:6px;
    background:rgba(255,255,255,.94);
    border:1px solid rgba(229,231,235,.95);
    box-shadow:0 1px 4px rgba(15,23,42,.12);
    font-size:13px;
    font-weight:700;
    line-height:1.35;
    color:#111827;
    white-space:nowrap;
    text-align:center;
    pointer-events:none;
}
.pd-place-map-addr {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-top:12px;
}
.pd-place-map-addr-main {
    margin:0;
    flex:1 1 auto;
    min-width:0;
    font-size:15px;
    font-weight:600;
    line-height:1.5;
    color:#1f2937;
    word-break:keep-all;
}
.pd-place-map-copy {
    flex:0 0 auto;
    border:0;
    background:transparent;
    color:#2563eb;
    font-size:13px;
    font-weight:600;
    padding:2px 0;
    cursor:pointer;
}
.pd-place-map-addr-sub {
    margin-top:6px;
    display:flex;
    flex-direction:column;
    gap:6px;
    font-size:13px;
    line-height:1.45;
    color:#6b7280;
}
.pd-place-map-addr-sub-row {
    display:flex;
    align-items:flex-start;
    gap:8px;
}
.pd-place-map-addr-sub-text {
    flex:1 1 auto;
    min-width:0;
    color:#374151;
    word-break:keep-all;
}
.pd-place-map-addr-tag {
    display:inline-flex;
    align-items:center;
    height:22px;
    padding:0 8px;
    border-radius:999px;
    background:#f3f4f6;
    color:#6b7280;
    font-size:12px;
    font-weight:700;
}
.pd-place-map-directions-wrap {
    margin-top:12px;
}
.pd-place-map-directions {
    position:relative;
    /* padding:12px 14px 12px; */
    /* border-radius:12px; */
    /* background:#f8fafc; */
    /* border:1px solid #e8ecf1; */
    font-size:14px;
    font-weight:500;
    line-height:1.65;
    color:#374151;
    word-break:keep-all;
}
.pd-place-map-directions-text {
    margin:0;
    padding:0;
    padding-right:20px;
}
.pd-place-map-directions-text.is-clamped {
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
}
.pd-place-map-directions-toggle {
    display:none;
    align-items:center;
    gap:1px;
    margin:0;
    padding:0 0 0 16px;
    border:0;
    background:linear-gradient(90deg, rgba(248,250,252,0) 0%, #f8fafc 30%, #f8fafc 100%);
    color:#6b7280;
    font-size:13px;
    font-weight:600;
    line-height:1.65;
    cursor:pointer;
    white-space:nowrap;
}
.pd-place-map-directions-wrap.is-truncated:not(.is-expanded) .pd-place-map-directions-toggle {
    display:inline-flex;
    position:absolute;
    right:6px;
    bottom:4px;
    z-index:2;
}
.pd-place-map-directions-wrap.is-expanded .pd-place-map-directions-text {
    display:inline;
    -webkit-line-clamp:unset;
    overflow:visible;
    padding-right:0;
}
.pd-place-map-directions-wrap.is-expanded .pd-place-map-directions-toggle {
    display:inline-flex;
    position:static;
    margin:0 0 0 4px;
    padding:0;
    background:transparent;
    vertical-align:baseline;
}
.pd-place-map-directions-dots {
    letter-spacing:0.06em;
    color:#9ca3af;
    font-weight:700;
}
.pd-place-map-directions-chevron {
    display:inline-flex;
    align-items:center;
    color:#4b5563;
    width:18px;
    height:18px;
    transition:transform .18s ease;
}
.pd-place-map-directions-chevron svg {
    width:18px;
    height:18px;
    display:block;
}
.pd-place-map-directions-chevron.is-up {
    transform:rotate(180deg);
}
.pd-place-map-directions-toggle-label {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
}
.pd-place-map-actions {
    margin-top:14px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
.pd-place-map-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:46px;
    padding:10px 12px;
    border:1px solid #e5e7eb;
    border-radius:12px;
    background:#fff;
    color:#111827;
    font-size:14px;
    font-weight:700;
    text-decoration:none;
    box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.pd-place-map-btn svg { flex:0 0 auto; color:#4b5563; }

.pd-section-title { font-weight:900; font-size:13px; color:#111827; margin-bottom:0px; }
.pd-section-title .info { font-size:14px;}

.pd-kv { display:grid; gap:6px; }
.pd-kv div { font-size:13px; color:#111827; line-height:1.45; }
.pd-kv .muted { color:#6b7280; font-weight:900; font-size:12px; } 
.pd-price { margin-top:6px; } 
.pd-price-title { font-weight:900; font-size:16px; color:#111827; margin-bottom:10px; } 
.pd-price-table { width:100%; border-collapse:collapse; } 
.pd-price-table td { padding:8px 0; border-bottom:1px dashed #e5e7eb; vertical-align:top; } 
.pd-price-cat { width:66px; color:#6b7280; font-weight:900; font-size:13px; padding-right:10px; } 
.pd-price-name { color:#111827; font-weight:500; font-size:16px; } 
.pd-price-badge { display:inline-block; margin-left:6px; padding:2px 6px; border-radius:999px; border:1px solid #e5e7eb; background:#f3f4f6; color:#6b7280; font-size:11px; font-weight:900; vertical-align:middle; } 
.pd-price-val { text-align:right; font-weight:600; font-size:16px; color:#111827; white-space:nowrap; } 
.pd-price-extra { margin-top:14px; color:#6b7280; font-size:15px; line-height:1.55; font-weight:400; }
.pd-price-note { margin-top:10px; color:#6b7280; font-size:12px; line-height:1.45; } 
.pd-price-gallery-wrap { margin-top:14px; }
.pd-price-gallery-grid { grid-template-columns:1fr 1fr; gap:12px; }
.pd-price-gallery .pd-gallery-item,
.pd-price-gallery-item { border-radius:16px; }
.pd-price-gallery .pd-gallery-item img,
.pd-price-gallery-item img { height:150px; object-fit:cover; }
.pd-hours { margin-top:2px; }
.pd-hours-status { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; font-weight:900; font-size:13px; color:#111827; }
.pd-hours-status .muted { color:#6b7280; font-weight:900; }
.pd-hours-list { margin:8px 0; display:grid; gap:4px; }
.pd-hours-row { display:flex; gap:10px; align-items:baseline; font-size:15px; }
.pd-hours-day { width:18px; flex:0 0 auto; color:#6b7280; font-weight:900; }
.pd-hours-time { color:#111827; font-weight:600; }
.pd-hours-off { color:#111827; font-weight:900; }
.pd-hours-row.is-today .pd-hours-day,
.pd-hours-row.is-today .pd-hours-time { color:#111827; font-weight:900; }
.pd-hours-title { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.pd-hours-toggle { border:1px solid #e5e7eb; background:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; color:#111827; padding:0; flex:0 0 auto; }
.pd-hours-toggle:hover { background:#f3f4f6; }
.pd-hours-toggle svg { display:block; transition: transform .15s ease; }
.pd-hours-section.is-open .pd-hours-toggle svg { transform: rotate(180deg); }
.pd-hours-body { margin-top:8px; }
.pd-hours-detail { margin-left:28px; background:#fff;  }

/* 기본정보(주소/복사/영업시간) 네이버 스타일 */
.pd-info { display:grid; gap:4px; }
.pd-info-row { display:flex; gap:10px; align-items:flex-start; }
.pd-info-ico { width:18px; height:18px; color:#9ca3af; flex:0 0 auto; margin-top:2px; }
.pd-info-main { flex:1 1 auto; min-width:0; }
.pd-info-label { color:#6b7280; font-weight:900; font-size:12px; }
.pd-info-value { margin-top:2px; color:#111827; font-weight:900; font-size:13px; line-height:1.35; }
.pd-info-actions { display:flex; gap:6px; flex:0 0 auto; }
.pd-mini-btn { border:0px solid #e5e7eb; background:#fff; border-radius:10px; padding:7px 10px; font-size:12px; font-weight:900; cursor:pointer; color:#111827; }
.pd-mini-btn:hover { background:#f3f4f6; }
/* Toggle button: same size for address + hours, and centered icon */
.pd-toggle-btn { width:26px; height:26px; border-radius:10px; padding:0; font-size:0; display:flex; align-items:center; justify-content:center; }
.pd-toggle-btn svg { width:18px; height:18px; }
.pd-addr-wrap, .pd-hours-wrap { align-items:center; }
.pd-addr-wrap .pd-info-ico, .pd-hours-wrap .pd-info-ico { margin-top:0; }
.pd-addr-detail { border:1px solid #e5e7eb; background:#fff; border-radius:12px; padding:10px 10px; display:grid; gap:8px; }
.pd-addr-line { display:flex; gap:8px; align-items:baseline; min-width:0; }
.pd-addr-tag { flex:0 0 auto; font-size:12px; font-weight:600; color:#6b7280; background:#f3f4f6; border:1px solid #e5e7eb; border-radius:0px; padding:2px 6px; }
.pd-addr-text { flex:1 1 auto; min-width:0; font-size:14px; color:#424242; font-weight:600;  }
.pd-copy { border:0; background:transparent; color:#2563eb; font-weight:500; font-size:14px; cursor:pointer; padding:2px 4px; flex:0 0 auto; }
.pd-copy:hover { text-decoration:underline; }
.pd-addr-toggle svg { width:18px; height:18px; display:block; transition: transform .15s ease; }
.pd-addr-open .pd-addr-toggle svg { transform: rotate(180deg); }

/* 매장소개 · 소개 카드 헤더 (참고 UI) */
.pd-text-section--has-intro-card { gap:0; }
.pd-intro-card {
    display:flex; align-items:center; gap:12px;
    width:calc(100% - 24px); max-width:none;
    margin:12px 12px 8px;
    padding:13px 14px 13px 12px;
    border:1px solid rgba(232, 240, 255, 0.9);
    border-radius:28px;
    background:linear-gradient(180deg, #f2f7ff 0%, #f6f9ff 34%, #ffffff 52%);
    box-shadow:0 4px 18px rgba(99, 130, 255, 0.06);
    cursor:pointer; text-align:left;
    box-sizing:border-box;
    transition:transform .15s ease, box-shadow .15s ease;
}
.pd-section > div.pd-intro-card-row { padding:0 !important; }
.pd-section > .pd-pane { padding:0 !important; }
.pd-intro-card:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(99, 130, 255, 0.16); }
.pd-intro-card--static {
    cursor:default;
    pointer-events:none;
}
.pd-intro-card--static:hover {
    transform:none;
    box-shadow:0 4px 18px rgba(99, 130, 255, 0.06);
}
.pd-intro-card-icon-wrap {
    position:relative; flex:0 0 44px; width:44px; height:44px;
    border-radius:50%;
    background:rgba(124,92,255,0.11);
    display:flex; align-items:center; justify-content:center;
}
.pd-intro-card-icon-wrap--custom {
    flex:0 0 44px; width:44px; height:44px;
    background:transparent;
    overflow:visible;
}
.pd-intro-card-custom-ico {
    display:block;
    width:44px;
    height:44px;
    object-fit:contain;
}
.pd-intro-card-fa { font-size:21px; line-height:1; color:#7c5cff; }
.pd-intro-card-sparkle {
    position:absolute; pointer-events:none;
    width:11px; height:11px; color:#8b74ff;
}
.pd-intro-card-sparkle { top:-2px; right:0; }
.pd-intro-card-sparkle--alt { top:5px; right:-5px; width:9px; height:9px; color:#6a4dfc; opacity:.95; }
.pd-intro-card-text { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
.pd-intro-card-label {
    font-size:17px; font-weight:700; letter-spacing:-0.03em;
    color:#1a2233; line-height:1.2;
}
.pd-intro-card-sub {
    font-size:14px; font-weight:600; line-height:1.35;
    color:#6b7280; letter-spacing:-0.01em;
}
.pd-intro-section { display:block; }
.pd-intro-section-body { padding:0 0 12px; }
.pd-intro-section.is-intro-collapsed .pd-intro-section-body { display:none; }
.pd-intro-card-row { padding:0; margin:0; }
.pd-intro-card-row .pd-intro-card { width:calc(100% - 24px); margin:12px 12px 8px; }
.pd-intro-card--center {
    display:grid;
    grid-template-columns:44px 1fr 40px;
    align-items:center;
    position:relative;
}
.pd-intro-card--center .pd-intro-card-icon-wrap {
    grid-column:1;
    grid-row:1;
}
.pd-intro-card--center .pd-intro-card-text {
    grid-column:1 / -1;
    grid-row:1;
    justify-self:center;
    text-align:center;
    flex:none;
    min-width:0;
}
.pd-intro-card--center .pd-intro-card-arrow-wrap {
    grid-column:3;
    grid-row:1;
    justify-self:end;
    position:static;
    transform:none;
}
.pd-intro-card-row--center { display:flex; justify-content:center; }
.pd-intro-card--more {
    gap:8px;
    padding:8px 12px 8px 10px;
    border-radius:22px;
}
.pd-intro-card-row .pd-intro-card--more {
    margin-top:4px;
    margin-bottom:6px;
}
.pd-intro-card--center.pd-intro-card--more {
    grid-template-columns:36px 1fr 32px;
}
.pd-intro-card--more .pd-intro-card-icon-wrap,
.pd-intro-card--more .pd-intro-card-icon-wrap--custom {
    flex:0 0 36px;
    width:36px;
    height:36px;
}
.pd-intro-card--more .pd-intro-card-custom-ico {
    width:36px;
    height:36px;
}
.pd-intro-card--more .pd-intro-card-label {
    font-size:15px;
}
.pd-intro-card--more .pd-intro-card-arrow-wrap {
    flex:0 0 30px;
    width:30px;
    height:30px;
}
.pd-intro-card--more .pd-intro-card-arrow-wrap svg {
    width:13px;
    height:13px;
}
.pd-text-section.pd-intro-section > .pd-intro-card { margin-bottom:4px; }
.pd-profile-scroll .pd-map-auth-banner-wrap {
    width:calc(100% - 24px);
    margin:8px 12px 4px;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    gap:8px;
}
.pd-profile-scroll .pd-map-auth-banner {
    width:100%;
}
.pd-map-beta-banner {
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
    padding:14px 10px;
    border-radius:14px;
    background:#f9f8ff;
    border:1px solid #e8e8f0;
    box-sizing:border-box;
}
.pd-map-beta-banner-ico {
    flex:0 0 44px;
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#f2eeff;
    border:1px solid #ddd6fe;
    box-sizing:border-box;
}
.pd-map-beta-banner-ico-img {
    display:block;
    width:26px;
    height:26px;
    object-fit:contain;
}
.pd-map-beta-banner-text {
    flex:1 1 auto;
    min-width:0;
}
.pd-map-beta-banner-title {
    margin:0 0 4px;
    font-size:15px;
    font-weight:700;
    letter-spacing:-0.03em;
    color:#1a2233;
    line-height:1.3;
}
.pd-map-beta-banner-sub {
    margin:0;
    font-size:13px;
    font-weight:500;
    letter-spacing:-0.02em;
    color:#7a8499;
    line-height:1.35;
}
@media (max-width: 420px) {
    .pd-map-beta-banner {
        padding:12px 14px;
        gap:10px;
    }
    .pd-map-beta-banner-title {
        font-size:14px;
    }
    .pd-map-beta-banner-sub {
        font-size:12px;
    }
}
.pd-map-auth-banner {
    display:flex;
    align-items:center;
    gap:6px;
    padding:8px 8px 8px 8px;
    border:1px solid rgba(232, 240, 255, 0.95);
    border-radius:28px;
    background:#fff;
    box-shadow:0 4px 18px rgba(99, 130, 255, 0.08);
    box-sizing:border-box;
}
.pd-map-auth-banner-ico {
    flex:0 0 44px;
    width:44px;
    height:44px;
}
.pd-map-auth-banner-ico .pd-intro-card-custom-ico {
    width:44px;
    height:44px;
}
.pd-map-auth-banner-copy {
    flex:1 1 auto;
    min-width:0;
    flex-shrink:0;
    margin:0;
    font-size:15px;
    font-weight:700;
    letter-spacing:-0.03em;
    color:#1a2233;
    line-height:1.25;
    white-space:nowrap;
}
.pd-map-auth-banner-connector {
    flex:0 1 auto;
    flex-shrink:1;
    min-width:0;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:1px;
    opacity:0.95;
    overflow:hidden;
}
.pd-map-auth-banner-dots-svg {
    display:block;
    width:22px;
    height:8px;
    flex:0 0 auto;
}
.pd-map-auth-banner-arrow-svg {
    display:block;
    width:16px;
    height:20px;
    flex:0 0 auto;
}
.pd-map-auth-banner-btn {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:2px;
    margin:0;
    padding:8px 10px 8px 12px;
    border:0;
    border-radius:999px;
    background:linear-gradient(90deg, #9333ea 0%, #7c3aed 42%, #6366f1 100%);
    color:#fff;
    font-size:12px;
    font-weight:700;
    letter-spacing:-0.02em;
    line-height:1;
    white-space:nowrap;
    cursor:pointer;
    box-shadow:0 6px 16px rgba(124, 58, 237, 0.32);
    transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.pd-map-auth-banner-btn:hover {
    filter:brightness(1.04);
    box-shadow:0 8px 20px rgba(124, 58, 237, 0.4);
    transform:translateY(-1px);
}
.pd-map-auth-banner-btn:active {
    transform:translateY(0);
    box-shadow:0 4px 12px rgba(124, 58, 237, 0.28);
}
.pd-map-auth-banner-btn-chev {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    flex:0 0 20px;
}
.pd-map-auth-banner-btn-chev svg {
    display:block;
    width:20px;
    height:20px;
}
.pd-map-auth-banner-btn-chev svg,
.pd-map-auth-banner-arrow-svg {
    transform:none;
}
@media (max-width: 420px) {
    .pd-map-auth-banner-connector { display:none; }
    .pd-map-auth-banner-copy { font-size:14px; }
    .pd-map-auth-banner-btn {
        padding:9px 10px 9px 12px;
        font-size:12px;
    }
}
.pd-text-section.pd-intro-section > .pd-intro-section-body { padding:0 12px 12px; box-sizing:border-box; }
.pd-intro-card-arrow-wrap {
    flex:0 0 36px; width:36px; height:36px;
    border-radius:50%;
    background:#f3f0ff;
    box-shadow:0 2px 10px rgba(124,92,255,0.16);
    display:flex; align-items:center; justify-content:center;
}
.pd-intro-card-arrow-wrap svg {
    width:15px; height:15px; color:#7c5cff;
}
.pd-intro-section .pd-gallery { margin:0 12px; }
.pd-price .pd-gallery { margin:0; }
.pd-intro-section .pd-style-list-view { padding:0; }
.pd-home-review .pd-review-card { margin:0; padding:10px 0; }
.pd-price { padding:0 12px 12px; }
.pd-price-title { display:none; }

/* 매장사진 캐러셀 */
.pd-text-section { display:grid; gap:12px; }
.pd-designer-holiday-banner {
    display:flex;
    align-items:flex-start;
    gap:10px;
    margin:0 0 20px;
    padding:12px 14px;
    border-radius:12px;
    border:1px solid #f9a8d4;
    background:linear-gradient(135deg, #fdf2f8 0%, #fff7ed 100%);
    box-shadow:0 8px 20px rgba(236,72,153,0.10);
}
.pd-designer-holiday-icon {
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:34px;
    height:34px;
    border-radius:10px;
    background:#fff;
    color:#db2777;
    box-shadow:0 4px 10px rgba(219,39,119,0.12);
}
.pd-designer-holiday-icon--photo {
    width:40px;
    height:40px;
    padding:0;
    border-radius:999px;
    overflow:hidden;
    background:#f3f4f6;
    box-shadow:0 4px 12px rgba(17,24,39,0.12);
}
.pd-designer-holiday-icon--photo img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.pd-designer-holiday-icon--fallback {
    border-radius:999px;
}
.pd-designer-holiday-body {
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:4px;
}
.pd-designer-holiday-label {
    font-size:11px;
    font-weight:800;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:#be185d;
}
.pd-designer-holiday-value {
    font-size:15px;
    font-weight:700;
    line-height:1.45;
    color:#831843;
    word-break:keep-all;
}
.pd-text-body-wrap { position:relative; }
.pd-text-body { color:#6b7280; font-weight:400; font-size:14px; line-height:1.7; max-height: calc(1.7em * 10); overflow:hidden; position:relative; }
.pd-text-section.is-expanded .pd-text-body { max-height:none; }
.pd-text-fade { display:none; position:absolute; left:0; right:0; bottom:0; height:72px; pointer-events:none; background:linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.82) 45%, #fff 100%); }
.pd-text-section.is-truncated .pd-text-fade { display:block; }
.pd-text-section.is-expanded .pd-text-fade { display:none; }
.pd-text-gap { display:block; height:.55em; }
.pd-text-toggle-wrap {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:44px;
    margin-top:10px;
    padding:10px 12px;
    border:0;
    background:transparent;
    cursor:pointer;
    position:relative;
    box-sizing:border-box;
    font:inherit;
    color:inherit;
}
.pd-text-toggle-wrap::before {
    content:'';
    position:absolute;
    left:0;
    right:0;
    top:50%;
    height:1px;
    background:#ece8df;
    transform:translateY(-50%);
    pointer-events:none;
    z-index:0;
}
.pd-intro-section .pd-text-toggle-wrap::before {
    left:-12px;
    right:-12px;
}
.pd-text-toggle-wrap .pd-text-toggle {
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #ece8df;
    background:#f7f7f7;
    color:#5b4a2f;
    font-weight:800;
    font-size:15px;
    padding:6px 20px;
    min-width:132px;
    border-radius:999px;
    box-shadow:0 6px 18px rgba(15,23,42,0.08);
    pointer-events:none;
}
.pd-text-toggle-wrap[hidden] { display:none !important; }
.pd-text-section.is-empty .pd-text-fade,
.pd-text-section.is-empty .pd-text-toggle-wrap { display:none !important; }
.pd-text-toggle-wrap .pd-text-toggle::after { content:'›'; display:inline-block; margin-left:8px; font-size:17px; transform:translateY(1px); }
.pd-text-section.is-expanded .pd-text-toggle-wrap .pd-text-toggle::after { content:'⌃'; font-size:15px; transform:none; }
.pd-text-toggle-wrap:hover .pd-text-toggle { background:#f1ebdf; }
.pd-gallery { position:relative; }
.pd-gallery-grid { display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
.pd-gallery-item { border-radius:16px; overflow:hidden; background:#e5e7eb; border:1px solid #e5e7eb; padding:0; cursor:pointer; }
.pd-gallery-item img { width:100%; height:150px; object-fit:cover; display:block; }
.pd-style-list-view {
    width:100%;
    max-width:100%;
    overflow:hidden;
}
.pd-style-list-gallery {
    position:relative;
    width:100%;
    max-width:100%;
}
/* 보이는 창: overflow hidden + 가로 스크롤(스크립트로 밀기) */
.pd-style-carousel-viewport {
    position:relative;
    width:100%;
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    -ms-overflow-style:none;
}
.pd-style-carousel-viewport::-webkit-scrollbar {
    display:none;
    width:0;
    height:0;
}
/* 페이지(4칸)들을 가로 한 줄로 이어 붙인 긴 띠 */
.pd-style-carousel-track {
    display:flex;
    flex-direction:row;
    flex-wrap:nowrap;
    align-items:flex-start;
}
.pd-style-grid-page {
    flex:0 0 auto;
    box-sizing:border-box;
}
.pd-style-list-gallery.is-sliding { pointer-events:none; }
.pd-style-list-gallery.is-sliding .pd-style-list-nav { pointer-events:auto; }
.pd-style-list-nav { margin-top:10px; }
.pd-style-list-nav .pd-gallery-pager { color:#16a34a; font-weight:800; font-size:14px; }
.pd-style-list-nav .pd-gallery-arrow:disabled { opacity:0.45; cursor:default; }
.pd-section-title .info { margin-left:6px; font-weight:700; color:#111827; }
.pd-style-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.pd-style-pane { scroll-margin-top:8px; }
.pd-style-pane[hidden],
#pd-home[hidden] { display:none !important; }
.pd-scroll-body.is-style-tab-active { padding-top:0; }
.pd-style-browse .pd-section-title { display:none; }
#pd-style.pd-style-browse[hidden] { display: none !important; }
.pd-style-browse-grid.pd-style-grid { margin-top:0; }
.pd-style-tab-more,
.pd-style-browse-more,
.pd-review-tab-more {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    width:100%;
    margin-top:12px;
    padding:14px 16px;
    border:0;
    border-radius:12px;
    background:#f3f4f6;
    color:#374151;
    font-size:15px;
    font-weight:600;
    cursor:pointer;
}
.pd-style-tab-more-icon {
    font-size:14px;
    line-height:1;
    font-weight:700;
    color:#6b7280;
}
.pd-style-browse-more[hidden] { display:none !important; }
.pd-style-card { display:flex; flex-direction:column; padding:0; border:0; background:transparent; text-align:left; cursor:pointer; }
.pd-style-card-image { display:block; border-radius:16px; overflow:hidden; background:#e5e7eb; border:1px solid #e5e7eb; aspect-ratio:3/4; }
.pd-style-card-image img { width:100%; height:100%; object-fit:cover; display:block; opacity:0; transition:opacity .28s ease; }
.pd-style-card-image img.is-loaded { opacity:1; }
.pd-style-card-body { display:flex; flex-direction:column; gap:4px; padding:8px 2px 0; }
.pd-style-card-title {
    color:#5e75b6;
    font-size:16px;
    font-weight:600;
    line-height:1.35;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:1;
    line-clamp:1;
    overflow:hidden;
    word-break:break-word;
}
.pd-style-card-desc {
    color:#6b7280;
    font-size:13px;
    line-height:1.5;
    font-weight:500;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    line-clamp:2;
    overflow:hidden;
    word-break:break-word;
}
.pd-style-section.is-detail-active > .pd-section-title { display:none; }
.pd-style-section.is-detail-active .pd-style-detail-view {
    flex:0 0 auto;
    min-height:0;
    overflow:visible;
    height:auto;
}
.pd-style-section.is-detail-active .pd-style-detail-card { overflow:visible; }
.pd-style-section.is-detail-active .pd-style-detail-title,
.pd-style-section.is-detail-active .pd-style-detail-desc,
.pd-style-section.is-detail-active .pd-style-guide-rec-text {
    display:block;
    -webkit-line-clamp:unset;
    line-clamp:unset;
    -webkit-box-orient:unset;
    overflow:visible;
}
.pd-style-detail-view[hidden] { display:none !important; }
.pd-style-detail-card { border-radius:0; overflow:hidden; border:0px solid #e5e7eb; background:#fff; box-shadow:0 10px 30px rgba(15,23,42,0.06); }
.pd-card .pd-style-detail-view { padding:0;}
.pd-style-detail-image {
    position:relative;
    width:100%;
    margin:0;
    background:#e5e7eb;
    overflow:hidden;
    cursor:pointer;
}
.pd-style-section.is-detail-active .pd-style-detail-view:not([hidden]) {
    cursor:grab;
    user-select:none;
    -webkit-user-select:none;
    touch-action:pan-y;
}
.pd-style-section.is-detail-active .pd-style-detail-image,
.pd-style-section.is-detail-active .pd-style-detail-image-viewport,
.pd-style-section.is-detail-active .pd-style-detail-image img {
    cursor:pointer;
    touch-action:manipulation;
}
.pd-style-section.is-detail-active .pd-style-detail-view:not([hidden]):active {
    cursor:grabbing;
}
.pd-style-section.is-detail-active .pd-style-detail-nav,
.pd-style-section.is-detail-active .pd-style-detail-nav * {
    cursor:pointer;
    user-select:auto;
    -webkit-user-select:auto;
    touch-action:manipulation;
}
.pd-style-detail-image-viewport {
    position:relative;
    width:100%;
    overflow:hidden;
    background:#e5e7eb;
    line-height:0;
}
.pd-style-detail-image-viewport .pd-style-detail-img {
    width:100%;
    height:auto;
    max-height:min(90vh, 960px);
    object-fit:contain;
    object-position:center center;
    display:block;
    background:#e5e7eb;
    cursor:pointer;
    will-change:transform;
    backface-visibility:hidden;
    -webkit-user-drag:none;
    user-select:none;
    -webkit-user-select:none;
}
.pd-style-detail-image-viewport .pd-style-detail-img--current {
    position:relative;
    z-index:1;
}
.pd-style-detail-image-viewport.is-animating .pd-style-detail-img--current,
.pd-style-detail-image-viewport.is-animating .pd-style-detail-img--next {
    position:absolute;
    top:0;
    left:0;
    right:0;
    width:100%;
    max-height:min(90vh, 960px);
}
.pd-style-card-image img,
.pd-style-list-gallery img,
.pd-gallery[data-style-gallery="1"] img {
    -webkit-user-drag:none;
    user-select:none;
    -webkit-user-select:none;
}
.pd-style-detail-image-viewport .pd-style-detail-img--next {
    display:none;
    z-index:2;
}
.pd-style-detail-image-viewport.is-animating .pd-style-detail-img--next {
    display:block;
}
@media (prefers-reduced-motion: reduce) {
    .pd-style-detail-image-viewport .pd-style-detail-img {
        transition:none !important;
    }
}
.pd-style-detail-body { padding:10px 14px 12px; }
.pd-style-detail-title {
    color:#111827;
    font-size:17px;
    font-weight:600;
    line-height:1.35;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    word-break:break-word;
}
.pd-style-detail-desc {
    margin-top:6px;
    color:#6b7280;
    font-size:13px;
    line-height:1.5;
    font-weight:500;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    overflow:hidden;
    word-break:break-word;
}
.pd-style-detail-guide { margin-top:8px; }
.pd-style-guide { display:flex; flex-direction:column; gap:6px; }
.pd-style-guide-rec { padding:4px 0 6px; border-radius:0; background:transparent; border:0; }
.pd-style-guide-rec-title { font-size:14px; font-weight:700; color:#374151; margin-bottom:3px; }
.pd-style-guide-rec-text { font-size:12px; line-height:1.4; color:#4b5563; white-space:pre-wrap; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; word-break:break-word; }
.pd-style-guide-chips { display:flex; flex-wrap:wrap; gap:5px; margin-top:4px; }
.pd-style-guide-chip {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:4px 8px;
    border-radius:999px;
    background:#f3f4f6;
    border:0;
    font-size:13px;
    font-weight:600;
    color:#4b5563;
}
.pd-style-guide-metrics-title { font-size:14px; font-weight:700; color:#111827; margin:2px 0 4px; }
.pd-style-guide-metrics-grid { display:grid; grid-template-columns:1fr 1fr; gap:2px 10px; }
.pd-style-guide-metric {
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    padding:3px 0;
    border-radius:0;
    background:transparent;
    border:0;
}
.pd-style-guide-metric-label { font-size:14px; color:#6b7280; font-weight:600; margin-bottom:0; flex:0 1 auto; }
.pd-style-guide-metric-value { font-size:14px; font-weight:800; color:#111827; line-height:1.4; }
.pd-style-guide-metric-stars { font-size:12px; letter-spacing:0.2px; color:#f59e0b; line-height:1; flex:0 0 auto; }
.pd-style-guide-note { margin-top:4px; padding-left:6px; border-left:2px solid #cbd5e1; font-size:10px; line-height:1.35; color:#64748b; }
.pd-style-detail-empty { color:#9ca3af; }
.pd-style-detail-nav { margin-top:12px; display:flex; align-items:center; justify-content:center; gap:12px; padding-bottom:2px; }
.pd-style-detail-arrow { width:40px; height:40px; border-radius:999px; border:1px solid #e5e7eb; background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.pd-style-detail-arrow svg { width:20px; height:20px; }
.pd-style-detail-counter { min-width:72px; text-align:center; font-size:14px; font-weight:800; color:#16a34a; }
/* 리뷰 CTA 카드: place.php에서 모바일 UA일 때만 HTML 출력 + JS로 PC 터치 없음 숨김 */
.pd-review-section > .pd-section-title { padding-bottom:12px; }
.pd-review-card { position:relative; overflow:hidden; margin:12px; border:1px solid #e2e8f0; border-radius:24px; background:#fff; box-shadow:0 8px 30px rgba(0,0,0,0.04); }
.pd-review-orb { position:absolute; border-radius:999px; background:#0066ff; pointer-events:none; }
.pd-review-orb-top { top:-20px; right:-20px; width:128px; height:128px; opacity:.03; }
.pd-review-orb-bottom { bottom:-10px; left:20%; width:80px; height:80px; opacity:.02; }
.pd-review-copy { position:relative; padding:6px 28px 20px; }
.pd-review-copy h2 { margin:0 0 8px; color:#1a202c; font-size:22px; font-weight:800; line-height:1.3; letter-spacing:-0.03em; }
.pd-review-copy h2 span { color:#0066ff; }
.pd-review-copy p { margin:0; color:#4a5568; font-size:17px; font-weight:700; line-height:1.35; }
.pd-review-actions { position:relative; display:flex; align-items:center; gap:12px; padding:0 24px 6px; }
.pd-review-back { width:44px; height:44px; flex:0 0 auto; border-radius:999px; border:1px solid #e2e8f0; background:#fff; color:#94a3b8; display:flex; align-items:center; justify-content:center; box-shadow:0 1px 4px rgba(15,23,42,0.06); cursor:pointer; }
.pd-review-write { flex:1 1 auto; min-height:56px; border-radius:16px; border:1px solid #dbeafe; background:#fff; color:#0066ff; font-size:16px; font-weight:800; display:flex; align-items:center; justify-content:center; gap:8px; cursor:pointer; box-shadow:0 4px 12px rgba(0,102,255,0.08); }
.pd-review-back:hover, .pd-review-write:hover { transform:translateY(-1px); }
.pd-review-section > .pd-review-report { padding:0; }
.pd-review-report { margin:0 0 14px; border:0; border-radius:0; background:transparent; padding:0; overflow:visible; }
.pd-review-report-body { padding:0; }
.pd-review-report-title { font-size:17px; font-weight:800; color:#111827; }
.pd-review-report-empty { margin:8px 12px 0; color:#6b7280; font-size:14px; line-height:1.5; }
.pd-review-report .vote-result-widget { margin:0; padding:12px 12px 16px; border-radius:0; background:#fff; }
.pd-review-report .receipt-review-section-divider { display:block; width:100%; height:10px; margin:0; padding:0; border:0; background:#f4f5f7; box-sizing:border-box; }
.pd-review-report .receipt-photo-review-widget.pd-section,
.pd-review-report .receipt-photo-review-widget { margin:0; padding:16px 12px 20px; border:0; border-top:0; background:#fff; }
.pd-shop-gallery-section { margin-bottom:0; border-top:0; }
.pd-shop-gallery-section > div { padding:0; }
.pd-shop-gallery-hero { padding:12px 12px 0; }
.pd-shop-hero-grid { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) 92px; gap:8px; align-items:stretch; }
.pd-shop-hero-main-col { display:contents; }
.pd-shop-hero-main { min-width:0; border-radius:14px; }
.pd-shop-hero-main img { width:100%; height:178px; object-fit:cover; display:block; }
.pd-shop-hero-side { display:flex; flex-direction:column; justify-content:space-between; align-items:stretch; border-radius:14px; background:#fff; border:1px solid #e5e7eb; overflow:hidden; }
.pd-shop-hero-side-image { display:block; }
.pd-shop-hero-side-image img { width:100%; height:104px; object-fit:cover; display:block; }
.pd-shop-hero-more { flex:1 1 auto; display:flex; align-items:center; justify-content:center; padding:10px 8px; font-size:20px; font-weight:800; letter-spacing:-0.04em; color:#2563eb; background:#fff; }
.pd-gallery-nav { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:10px; }
.pd-gallery-arrow { width:36px; height:36px; border-radius:999px; border:1px solid #e5e7eb; background:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.pd-gallery-arrow:hover { background:#f3f4f6; }
.pd-gallery-arrow svg { width:18px; height:18px; }
.pd-gallery-pager { font-weight:700; font-size:13px; color:#111827; min-width:64px; text-align:center; }
.pd-lightbox[hidden] { display:none !important; }
.pd-lightbox { position:fixed; inset:0; z-index:20000; }
.pd-lightbox-backdrop { position:absolute; inset:0; background:rgba(15,23,42,0.72); }
.pd-lightbox-dialog { position:relative; z-index:1; width:min(92vw, 980px); height:min(88vh, 900px); margin:6vh auto; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.pd-lightbox-stage { display:flex; align-items:center; justify-content:center; width:100%; height:100%; pointer-events:auto; }
.pd-lightbox-image { max-width:100%; max-height:100%; object-fit:contain; border-radius:12px; box-shadow:0 18px 60px rgba(0,0,0,0.28); background:transparent; }
.pd-lightbox-nav,
.pd-lightbox-close {
    border:0;
    background:transparent;
    box-shadow:none;
    color:#fff;
    cursor:pointer;
    display:flex;
    align-items:center;
    justify-content:center;
    z-index:20002;
    padding:10px;
    -webkit-tap-highlight-color:transparent;
}
.pd-lightbox-close {
    position:fixed;
    top:max(14px, env(safe-area-inset-top, 0px));
    right:max(14px, env(safe-area-inset-right, 0px));
}
.pd-lightbox-close-icon {
    display:block;
    width:44px;
    height:44px;
}
.pd-lightbox-nav {
    position:fixed;
    top:50%;
    transform:translateY(-50%);
    min-width:52px;
    min-height:72px;
}
.pd-lightbox-nav-icon {
    display:block;
    width:48px;
    height:48px;
}
.pd-lightbox-nav.is-prev { left:max(10px, env(safe-area-inset-left, 0px)); }
.pd-lightbox-nav.is-next { right:max(10px, env(safe-area-inset-right, 0px)); }
.pd-lightbox-nav:hover,
.pd-lightbox-close:hover { opacity:0.88; }
.pd-lightbox-caption {
    position:absolute;
    left:50%;
    bottom:52px;
    transform:translateX(-50%);
    max-width:min(92vw, 720px);
    color:#fff;
    font-size:15px;
    font-weight:700;
    text-align:center;
    text-shadow:0 2px 12px rgba(0,0,0,0.45);
    pointer-events:none;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.pd-lightbox-counter { position:absolute; left:50%; bottom:12px; transform:translateX(-50%); background:rgba(17,24,39,0.72); color:#fff; padding:8px 14px; border-radius:999px; font-size:13px; font-weight:700; pointer-events:none; }
.pd-lightbox.is-simple .pd-lightbox-caption { bottom:24px; }
.pd-lightbox.is-simple .pd-lightbox-nav,
.pd-lightbox.is-simple .pd-lightbox-counter { display:none !important; }
.pd-lightbox.is-simple .pd-lightbox-image { border-radius:0; box-shadow:none; }
.pd-lightbox.is-style-fullscreen .pd-lightbox-backdrop { background:rgba(0,0,0,0.9); }
.pd-lightbox.is-style-fullscreen .pd-lightbox-dialog {
    width:100%;
    max-width:none;
    height:100%;
    max-height:none;
    margin:0;
}
.pd-lightbox.is-style-fullscreen .pd-lightbox-stage { width:100%; height:100%; }
.pd-lightbox.is-style-fullscreen .pd-lightbox-image {
    max-width:min(100vw, 720px);
    max-height:min(92vh, 960px);
    border-radius:0;
    box-shadow:none;
}
body.pd-lightbox-open { overflow:hidden; }

@media (max-width: 760px) {
    .pd-lightbox-dialog { width:min(94vw, 980px); height:min(84vh, 900px); margin:5vh auto; }
    .pd-lightbox-close-icon { width:40px; height:40px; }
    .pd-lightbox-nav-icon { width:42px; height:42px; }
    .pd-lightbox-nav { min-width:44px; min-height:64px; padding:8px; }
    .pd-hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(64px,64px); gap:3px; padding:5px; }
    .pd-hero-main { min-height:122px; }
    .pd-hero-side-col { min-width:64px; max-width:64px; }
    .pd-hero-side-thumb { height:46px; min-height:46px; flex-basis:46px; }
    .pd-hero-share-btn { flex-basis:32px; font-size:11px; gap:4px; }
    .pd-hero-share-btn svg { width:12px; height:12px; flex-basis:12px; }
    .pd-hero-side-thumb img { height:100%; }
    .pd-hero-side-copy { padding:8px 4px; }
    .pd-hero-side-link { font-size:13px; letter-spacing:-0.06em; }
    .pd-shop-hero-grid { grid-template-columns:minmax(0, 1fr) minmax(0, 1fr) 78px; gap:6px; }
    .pd-shop-hero-main img { height:150px; }
    .pd-shop-hero-side-image img { height:88px; }
    .pd-shop-hero-more { font-size:18px; padding:8px 6px; }
    .pd-style-card-image { aspect-ratio:3/4; }
    .pd-style-detail-image-viewport .pd-style-detail-img { max-height:min(88vh, 840px); }
    .pd-review-copy { padding:24px 22px 18px; }
    .pd-review-copy h2 { font-size:20px; }
    .pd-review-copy p { font-size:15px; }
    .pd-review-actions { padding:0 20px 24px; }
}

/* Typography tune (Naver-ish): less bold, slightly larger */
.pd-section-title { font-size:18px; font-weight:600; color:#111827; }
.pd-info-label { color:#6b7280; font-weight:700; font-size:13px; }
.pd-info-value { margin-top:2px; color:#424242; font-weight:400; font-size:15px; }


/* Collapsible animation (Naver-like fold-in) */
.pd-collapse { overflow:hidden; max-height:0; opacity:0; transform: translateY(-6px); transition: max-height .18s ease, opacity .18s ease, transform .18s ease; }
.pd-collapse.is-open { max-height: 520px; opacity:1; transform: translateY(0); }

/* Pretty scrollbars */
.place-list::-webkit-scrollbar, .place-detail-inner::-webkit-scrollbar { width:10px; height:10px; }
.place-list::-webkit-scrollbar-thumb, .place-detail-inner::-webkit-scrollbar-thumb { background: rgba(17,24,39,0.18); border-radius:999px; border:3px solid rgba(255,255,255,0.9); }
.place-list::-webkit-scrollbar-track, .place-detail-inner::-webkit-scrollbar-track { background: transparent; }

#loading { position:absolute; top:14px; left:50%; transform:translateX(-50%); z-index:1300; background:#fff; padding:8px 14px; border-radius:999px; box-shadow:0 2px 10px rgba(0,0,0,0.16); font-weight:900; }

@media (max-width: 1100px) { 
    .place-shell { grid-template-columns: 340px 1fr; } 
    .place-detail.is-overlay { min-width: 280px; } 
} 
@media (max-width: 760px) {
    .place-shell { grid-template-columns: 1fr; border-radius:0; border-left:0; border-right:0; }
    .place-sidebar { border-right:0; }
    .place-map-pane { height: 62vh; }
    #map { min-height:0; height:100%; }
}

/* 반응형 */
@media (max-width: 900px) {
    .place-sidebar { display:none; }
    .pd-dock-handle { display:none; }
}


/* 클러스터 스타일 */
.cluster {
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: bold;
    font-size: 13px;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.cluster-small { width: 40px; height: 40px; background: #FF6B6B; color: white; }
.cluster-medium { width: 50px; height: 50px; background: #FF8C42; color: white; }
.cluster-large { width: 60px; height: 60px; background: #FF5252; color: white; }
.cluster-xlarge { width: 70px; height: 70px; background: #D63031; color: white; }

/* 커스텀 오버레이 스타일 */
.custom-label {
    display: inline-block;
    padding: 6px 12px;
    background: #fff;
    border: 2px solid #3498db;
    border-radius: 20px;
    font-size: 13px;
    font-weight: bold;
    color: #2c3e50;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

.map-control-wrap {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 1200;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.map-control-group {
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18);
    background: #fff;
    border: 1px solid #e8e8e8;
}

.map-control-btn,
.map-control-link {
    width: 44px;
    height: 44px;
    border: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: #1f2328;
    cursor: pointer;
    font-size: 24px;
    font-weight: 500;
    text-decoration: none;
    line-height: 1;
    user-select: none;
}

.map-control-btn + .map-control-btn {
    border-top: 1px solid #ececec;
}

.map-control-btn:hover,
.map-control-link:hover {
    background: #f5f6f7;
}

.map-control-link svg {
    width: 20px;
    height: 20px;
    display: block;
}

@media (max-width: 900px) {
    html:has(.place-shell),
    body:has(.place-shell) {
        overflow-x: clip;
        max-width: 100%;
    }

    #registration_root:has(.place-shell),
    #main_content:has(.place-shell),
    .main_content_wrap:has(.place-shell),
    .place-shell,
    .place-map-pane,
    .place-detail.is-overlay,
    .place-detail.is-overlay .place-detail-inner,
    #placeDetailContent,
    .pd-card,
    .pd-body,
    .pd-sticky-head {
        max-width: 100%;
        overflow-x: clip;
    }

    .pd-tabs-wrap {
        max-width: 100%;
        overflow-x: hidden;
    }

    .pd-tabs {
        max-width: 100%;
    }

    .pd-intro-section > .pd-intro-section-body {
        overflow-x: clip;
    }

    .place-shell {
        grid-template-columns: 1fr;
        height: auto;
        min-height: 0;
        border-radius: 0;
        border-left: 0;
        border-right: 0;
        overflow-y: visible;
    }

    .pd-card { border:none;}

    .place-sidebar {
        display: none;
        border-right: 0;
    }

    .place-map-pane {
        display: block;
        min-height: 0;
        height: auto;
        background: #fff;
    }

    #map,
    .map-control-wrap,
    .map-search-bar,
    #loading {
        display: none !important;
    }

    .place-detail.is-overlay {
        position: static;
        top: auto;
        left: auto;
        width: 100%;
        min-width: 0;
        height: auto;
        max-height: none;
        background: #fff;
        pointer-events: auto;
        transform: none !important;
        z-index: auto;
    }

    .place-detail.is-overlay .place-detail-inner {
        padding: 0;
        height: auto;
        min-height: 0;
        max-height: none;
        overflow-y: visible;
        background: #fff;
    }

    .place-detail.is-overlay.is-collapsed {
        transform: none !important;
    }

    .pd-dock-handle {
        display: none !important;
    }

    .pd-title-row {
        padding-bottom: 10px;
    }

    .pd-place-map-section {
        display: block;
    }

    #placeDetailContent {
        width: 100%;
        max-height: none;
        overflow-y: visible;
        position: relative;
    }

    /* 반응형 상세: 스크롤은 유지, 스크롤바만 숨김 */
    body:has(.place-shell),
    .place-detail.is-overlay,
    .place-detail.is-overlay .place-detail-inner,
    .place-detail.is-overlay #placeDetailContent,
    .place-detail.is-overlay .pd-card,
    .place-detail.is-overlay .pd-tabs,
    .place-detail.is-overlay .pd-gallery,
    .place-detail.is-overlay .pd-sticky-head {
        -ms-overflow-style: none;
        scrollbar-width: none;
    }

    body:has(.place-shell)::-webkit-scrollbar,
    .place-detail.is-overlay::-webkit-scrollbar,
    .place-detail.is-overlay .place-detail-inner::-webkit-scrollbar,
    .place-detail.is-overlay #placeDetailContent::-webkit-scrollbar,
    .place-detail.is-overlay .pd-card::-webkit-scrollbar,
    .place-detail.is-overlay .pd-tabs::-webkit-scrollbar,
    .place-detail.is-overlay .pd-gallery::-webkit-scrollbar,
    .place-detail.is-overlay .pd-sticky-head::-webkit-scrollbar {
        width: 0;
        height: 0;
        display: none;
    }

    .place-detail.is-overlay .place-detail-inner.is-news-scroll-lock {
        overflow: hidden;
        display: flex;
        flex-direction: column;
        min-height: 0;
        height: 100dvh;
        max-height: 100dvh;
        background: #fff;
    }

    .place-detail.is-overlay .place-detail-inner.is-news-scroll-lock #placeDetailContent,
    .place-detail.is-overlay .place-detail-inner.is-news-scroll-lock .pd-card {
        background: #fff;
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        max-height: 100%;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .place-detail.is-overlay .place-detail-inner.is-style-scroll-lock {
        overflow: hidden;
        display: flex;
        flex-direction: column;
        min-height: 0;
        height: 100dvh;
        max-height: 100dvh;
        background: #fff;
    }

    .place-detail.is-overlay .place-detail-inner.is-style-scroll-lock #placeDetailContent,
    .place-detail.is-overlay .place-detail-inner.is-style-scroll-lock .pd-card {
        background: #fff;
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        max-height: 100%;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .place-detail.is-overlay .place-detail-inner.is-review-scroll-lock {
        overflow: hidden;
        display: flex;
        flex-direction: column;
        min-height: 0;
        height: 100dvh;
        max-height: 100dvh;
        background: #fff;
    }

    .place-detail.is-overlay .place-detail-inner.is-review-scroll-lock #placeDetailContent,
    .place-detail.is-overlay .place-detail-inner.is-review-scroll-lock .pd-card {
        background: #fff;
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        max-height: 100%;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .pd-card.is-news-tab-open,
    .pd-card:has(.pd-body.is-news-open) {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 0;
        height: 100%;
    }

    .pd-card.is-news-tab-open > .pd-hero,
    .pd-card:has(.pd-body.is-news-open) > .pd-hero,
    .pd-card.is-style-tab-open > .pd-hero,
    .pd-card:has(.pd-body.is-style-open) > .pd-hero,
    .pd-card.is-review-tab-open > .pd-hero,
    .pd-card:has(.pd-body.is-review-open) > .pd-hero {
        display: none !important;
    }

    .pd-card.is-news-tab-open > .pd-body,
    .pd-card:has(.pd-body.is-news-open) > .pd-body {
        flex: 1;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .pd-body.is-news-open .pd-sticky-head {
        flex: 0 0 auto;
        background: #fff;
    }

    .pd-body.is-news-open {
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .pd-body.is-news-open .pd-news-panel {
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
        padding: 12px 0 16px;
    }

    .pd-card.is-style-tab-open,
    .pd-card:has(.pd-body.is-style-open) {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 0;
        height: 100%;
    }

    .pd-card.is-style-tab-open > .pd-body,
    .pd-card:has(.pd-body.is-style-open) > .pd-body {
        flex: 1;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .pd-body.is-style-open .pd-sticky-head {
        flex: 0 0 auto;
        background: #fff;
    }

    .pd-body.is-style-open {
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .pd-body.is-style-open #pd-style.pd-style-browse {
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
        padding: 0 12px 16px;
    }

    .pd-card.is-review-tab-open,
    .pd-card:has(.pd-body.is-review-open) {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-height: 0;
        height: 100%;
    }

    .pd-card.is-review-tab-open > .pd-body,
    .pd-card:has(.pd-body.is-review-open) > .pd-body {
        flex: 1;
        min-height: 0;
        display: flex;
        flex-direction: column;
    }

    .pd-body.is-review-open .pd-sticky-head {
        flex: 0 0 auto;
        background: #fff;
    }

    .pd-body.is-review-open {
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        overflow: hidden;
        display: flex;
        flex-direction: column;
    }

    .pd-body.is-review-open .pd-review-panel {
        flex: 1 1 0;
        min-height: 0;
        height: 0;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        touch-action: pan-y;
    }
}

/* 매장 소식 · 공지 슬라이드 */
.pd-notice-wrap { margin: 10px 0px 0px 12px; }
.pd-notice-carousel { position: relative; border: 0; border-radius: 0; background: transparent; overflow: visible; }
.pd-notice-viewport { overflow: hidden; width: 100%; touch-action: pan-y; }
.pd-notice-track { display: flex; gap: 10px; align-items: stretch; min-height: 96px; transition: transform 0.42s cubic-bezier(0.4, 0, 0.2, 1); will-change: transform; padding-right: 2px; }
.pd-notice-card { flex: 0 0 auto; min-width: 0; box-sizing: border-box; display: flex; gap: 0; padding: 0; align-items: stretch; border: 1px solid #e5e7eb; border-radius: 16px; background: #fff; overflow: hidden; min-height: 96px; margin: 0 0 0 10px; cursor: pointer; transition: box-shadow .18s ease, border-color .18s ease; }
.pd-notice-card:hover { border-color: #d1d5db; box-shadow: 0 4px 14px rgba(17,24,39,.06); }
.pd-notice-card:focus-visible { outline: 2px solid #111827; outline-offset: 2px; }
.pd-notice-thumb { flex: 0 0 auto; align-self: stretch; width: auto; aspect-ratio: 1; min-width: 96px; max-width: 120px; border-radius: 15px 0 0 15px; background-size: cover; background-position: center; position: relative; overflow: hidden; }
.pd-notice-thumb-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-notice-type-badge { position: absolute; top: 8px; left: 8px; background: #ef4444; color: #fff; font-size: 10px; font-weight: 800; line-height: 1.2; padding: 3px 8px; border-radius: 999px; z-index: 1; }
.pd-notice-type-badge.is-alert { background: #ef4444; }
.pd-notice-type-badge.is-event { background: #ef4444; }
.pd-notice-body { min-width: 0; flex: 1; display: flex; flex-direction: column; justify-content: center; padding: 12px 14px 12px 12px; }
.pd-notice-title { font-size: 18px; font-weight: 600; line-height: 1.35; color: #111827; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pd-notice-wrap .pd-notice-date { display: none; }
.pd-notice-card-more { flex: 0 0 56px; width: 56px; flex-direction: column; align-items: center; justify-content: center; border: 0; background: transparent; box-shadow: none; margin: 0 12px 0 0; padding: 0; gap: 0; min-height: 96px; opacity: 0.92; transition: opacity .18s ease; }
.pd-notice-carousel.is-more-open .pd-notice-card-more { opacity: 1; }
.pd-notice-card-more:hover,
.pd-notice-card-more:focus-visible { border: 0; box-shadow: none; }
.pd-notice-more-inner { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; width: 56px; min-height: 96px; }
.pd-notice-more-icon { width: 34px; height: 34px; border-radius: 999px; border: 1px solid #e5e7eb; background: #fff; color: #374151; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(17,24,39,.06); }
.pd-notice-card-more:hover .pd-notice-more-icon { border-color: #d1d5db; background: #f9fafb; }
.pd-notice-more-label { font-size: 12px; line-height: 1.2; color: #6b7280; font-weight: 700; white-space: nowrap; }

.pd-notice-nav { position: absolute; top: 50%; z-index: 5; width: 34px; height: 34px; margin: 0; padding: 0; border-radius: 999px; border: 1px solid #e5e7eb; background: #fff; color: #374151; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.08); transform: translateY(-50%); opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.pd-notice-carousel:hover .pd-notice-nav:not(.is-hidden) { opacity: 1; pointer-events: auto; }
.pd-notice-nav-layer { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.pd-notice-nav-layer .pd-notice-nav { pointer-events: none; }
.pd-notice-carousel:hover .pd-notice-nav-layer .pd-notice-nav:not(.is-hidden) { pointer-events: auto; }
.pd-notice-nav.pd-notice-prev { left:2%; }
.pd-notice-nav.pd-notice-next { right:2%; }
.pd-notice-nav.is-prev { left: 8px; right: auto; }
.pd-notice-nav.is-next { right: 8px; left: auto; }
.pd-notice-nav.is-hidden { display: none !important; }
.pd-notice-carousel > .pd-notice-nav { position: absolute; top: 50%; z-index: 5; transform: translateY(-50%); }
.pd-notice-carousel > .pd-notice-nav.is-prev { left: 8px; right: auto; }
.pd-notice-carousel > .pd-notice-nav.is-next { right: 8px; left: auto; }
@media (hover: none) {
    .pd-notice-carousel .pd-notice-nav:not(.is-hidden) { opacity: 1; pointer-events: auto; }
}

.pd-news-section { padding-top: 8px; }
.pd-news-filters {
    display: flex;
    gap: 4px;
    margin: 0 16px 14px;
    width: calc(100% - 32px);
    padding: 4px;
    background: #f3f4f6;
    border-radius: 12px;
    box-sizing: border-box;
}
.pd-news-filter {
    flex: 1;
    min-width: 0;
    text-align: center;
    border: 0;
    background: transparent;
    color: #6b7280;
    border-radius: 9px;
    padding: 10px 8px;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, box-shadow .18s ease;
}
.pd-news-filter:hover:not(.is-active) { background: rgba(255,255,255,.55); color: #374151; }
.pd-news-filter.is-active {
    background: #111827;
    color: #fff;
    box-shadow: 0 2px 8px rgba(17,24,39,.2);
}
.pd-news-filter:focus-visible { outline: 2px solid #111827; outline-offset: 2px; }
.pd-news-filter[hidden] { display: none !important; }
.pd-news-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 0 0 10px;
}
.pd-news-card-head-left {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 1;
}
.pd-news-card-head-badges {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
    flex-shrink: 0;
}
.pd-news-card-head-badges .pd-news-badge-notice,
.pd-news-card-head-badges .pd-news-type-badge {
    display: inline-flex;
    align-items: center;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 8px;
    border-radius: 999px;
    line-height: 1.2;
}
.pd-news-card-avatar {
    width: 36px;
    height: 36px;
    border-radius: 999px;
    flex-shrink: 0;
    background-size: cover;
    background-position: center;
    background-color: #e5e7eb;
}
.pd-news-card-head .pd-news-card-shop {
    font-size: 16px;
    font-weight: 700;
    color: #111827;
    line-height: 1.35;
    word-break: break-word;
}
.pd-homepage-card-body .pd-news-card-title {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 900;
    line-height: 1.35;
    color: #111827;
    word-break: break-word;
}
.pd-homepage-card .pd-news-card-media {
    margin: 0;
    width: 100%;
    aspect-ratio: auto;
    max-height: none;
    border-radius: 12px;
    overflow: hidden;
    line-height: 0;
    background: #f3f4f6;
}
.pd-homepage-card[data-view-url] { cursor: pointer; -webkit-tap-highlight-color: rgba(17,24,39,.08); }
.pd-homepage-card .pd-news-card-media,
.pd-homepage-card .pd-news-card-title { pointer-events: none; }
.pd-homepage-card .pd-news-card-media img {
    width: 100%;
    height: auto;
    display: block;
}
.pd-homepage-card-body {
    padding: 10px 0 0;
}
.pd-homepage-card .pd-news-card-foot { justify-content: flex-end; margin-top: 0; }
.pd-news-list { display: grid; gap: 16px; background: #fff; }
.pd-news-list.is-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 140px;
    background: #fff;
}
.pd-news-empty { padding: 28px 12px; text-align: center; color: #9ca3af; font-size: 13px; font-weight: 700; background: #fff; }
.pd-news-card { border: 0px solid #e5e7eb; border-radius: 0px; overflow: hidden; background: #fff; border-bottom:1px solid #ddd; padding:16px; }
.pd-news-badge-notice { background: #dcfce7; color: #166534; border: 1px solid #86efac; }
.pd-news-type-badge.is-blog { background: #dcfce7; color: #15803d; border: 1px solid #86efac; }
.pd-news-type-badge.is-alert { background: #dbeafe; color: #1d4ed8; border: 1px solid #93c5fd; }
.pd-news-type-badge.is-homepage { background: #dbeafe; color: #1d4ed8; border: 1px solid #93c5fd; font-size:12px; font-weight: 600; }
.pd-news-card-media { position: relative; width: 100%; aspect-ratio: 1 / 1; max-height: 420px; background-size: cover; background-position: center; background-color: #f3f4f6; }
.pd-news-card-gallery-wrap { position: relative; margin-top: 10px; padding-left: 0px; }
.pd-news-card-gallery { overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.pd-news-card-gallery::-webkit-scrollbar { display: none; }
.pd-news-card-gallery-track { display: flex; gap: 8px; padding: 0 16px 10px 0; }
.pd-news-card-slide { flex: 0 0 calc((100% - 8px) / 1.5); scroll-snap-align: start; border: 0; padding: 0; border-radius: 12px; overflow: hidden; position: relative; aspect-ratio: 1 / 1; background: #f3f4f6; cursor: pointer; }
.pd-news-card-gallery-wrap.is-single .pd-news-card-slide { flex: 0 0 calc(100% - 16px); }
.pd-news-card-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pd-news-card-slide .pd-news-type-badge { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,.65); color: #fff; font-size: 11px; font-weight: 800; padding: 4px 8px; border-radius: 999px; z-index: 1; }
.pd-news-gallery-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 3; width: 34px; height: 34px; border: 0; border-radius: 999px; background: rgba(255,255,255,.94); color: #374151; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.14); opacity: 0; pointer-events: none; transition: opacity .18s ease; }
.pd-news-card-gallery-wrap:hover .pd-news-gallery-nav:not(.is-hidden) { opacity: 1; pointer-events: auto; }
.pd-news-gallery-nav.is-prev { left: 22px; }
.pd-news-gallery-nav.is-next { right: 22px; }
.pd-news-gallery-nav.is-hidden { display: none !important; }
@media (hover: none) {
    .pd-news-card-gallery-wrap .pd-news-gallery-nav:not(.is-hidden) { opacity: 1; pointer-events: auto; }
}
.pd-news-card-media .pd-news-type-badge { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,.65); color: #fff; font-size: 11px; font-weight: 800; padding: 4px 8px; border-radius: 999px; }
.pd-news-play { position: absolute; top: 10px; right: 10px; width: 28px; height: 28px; border-radius: 999px; background: rgba(255,255,255,.92); z-index: 1; }
.pd-news-play::after { content: ''; position: absolute; inset: 0; margin: auto; width: 0; height: 0; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-left: 9px solid #111827; transform: translateX(2px); }
.pd-news-card-body { padding: 14px 0; padding-left:0; }
.pd-news-card-copy { cursor: default; }
.pd-news-card-copy[data-needs-more="1"] { cursor: pointer; }
.pd-news-card .is-blog-content-link { cursor: pointer; }
.pd-news-card .is-blog-content-link:hover { text-decoration: underline; text-underline-offset: 2px; }
.pd-news-card-copy-collapsed .pd-news-card-title { margin: 0 0 6px; font-size: 17px; font-weight: 800; line-height: 1.35; color: #111827; }
.pd-news-card-copy-collapsed .pd-news-card-title:last-child { margin-bottom: 0; }
.pd-news-card-excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; margin: 0; font-size: 14px; line-height: 1.6; color: #6b7280; word-break: break-word; font-weight: 400; padding-top:16px;}
.pd-news-card-copy-expanded { display: none; }
.pd-news-card.is-expanded .pd-news-card-copy-collapsed { display: none; }
.pd-news-card.is-expanded .pd-news-card-copy-expanded { display: block; }
.pd-news-card-title { margin: 0 0 30px; font-size: 16px; font-weight: 800; line-height: 1.35; color: #111827; }
.pd-news-title-event { color: #15803d; font-weight: 800; letter-spacing: 0.02em; }
.pd-news-card-text { margin: 0; font-size: 14px; font-weight: 400; line-height: 1.6; color: #6b7280; white-space: pre-wrap; word-break: break-word; }
.pd-news-card-more { margin-top: 20px; border: 0; background: transparent; padding: 0; color: #6b7280; font-size: 13px; font-weight: 700; cursor: pointer; }
.pd-news-period { margin-top: 12px; display: inline-block; padding: 8px 12px; border-radius: 12px; background: #f3f4f6; font-size: 12px; font-weight: 800; color: #4b5563; }
.pd-news-card-foot { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12px; color: #9ca3af; font-weight: 700; }
.pd-news-like-btn { display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; padding: 0; cursor: pointer; color: #9ca3af; font-size: 12px; font-weight: 700; }
.pd-news-like-btn:disabled { cursor: default; opacity: 1; }
.pd-news-like-btn.is-liked { color: #ef4444; }
.pd-news-like-icon::before { content: '♡'; font-size: 15px; line-height: 1; }
.pd-news-like-btn.is-liked .pd-news-like-icon::before { content: '♥'; }
.pd-news-scroll-sentinel { width: 100%; height: 1px; flex-shrink: 0; pointer-events: none; }
.pd-news-loading-more { padding: 16px 0 8px; text-align: center; font-size: 13px; font-weight: 700; color: #9ca3af; }
.pd-news-loading-more[hidden] { display: none !important; }
.pd-news-panel { display: block; background: #fff; }
.pd-news-panel[hidden] { display: none !important; }
.pd-news-panel.is-feed-loading { background: #fff; }
/* 소식 탭: 스타일 탭과 동일 — 히어로 숨김, 상단 탭 고정, 피드만 스크롤 */
.pd-card.is-news-tab-open,
.pd-card:has(.pd-body.is-news-open) {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    height: 100%;
    background: #fff;
}
.pd-card.is-news-tab-open > .pd-hero,
.pd-card:has(.pd-body.is-news-open) > .pd-hero {
    display: none !important;
}
.pd-card.is-news-tab-open > .pd-body,
.pd-card:has(.pd-body.is-news-open) > .pd-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    background: #fff;
}
.pd-body.is-news-open .pd-scroll-body { display: none !important; }
.pd-body.is-news-open .pd-notice-wrap { display: none !important; }
.pd-body.is-news-open > .pd-title-row--main,
.pd-body.is-news-open > .pd-profile-scroll { display: none !important; }
.pd-body.is-news-open .pd-sticky-head {
    flex: 0 0 auto;
    position: relative;
    top: auto;
    z-index: 30;
    background: #fff;
    box-shadow: 0 1px 0 rgba(229, 231, 235, 0.95);
}
.pd-body.is-news-open .pd-sticky-head .pd-title-row--compact { display: flex !important; padding-bottom: 8px; }
.pd-body.is-news-open .pd-sticky-head .pd-tabs-wrap .pd-tabs { padding-top: 0; }
.pd-body.is-news-open .pd-news-panel {
    display: block;
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 12px 0 16px;
    box-sizing: border-box;
    background: #fff;
}

/* 스타일 탭: 소식 탭과 동일 — 히어로 숨김, 상단 탭 고정, 목록만 스크롤 */
.pd-card.is-style-tab-open,
.pd-card:has(.pd-body.is-style-open) {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    height: 100%;
    background: #fff;
}
.pd-card.is-style-tab-open > .pd-hero,
.pd-card:has(.pd-body.is-style-open) > .pd-hero {
    display: none !important;
}
.pd-card.is-style-tab-open > .pd-body,
.pd-card:has(.pd-body.is-style-open) > .pd-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    background: #fff;
}
.pd-body.is-style-open .pd-scroll-body { display: none !important; }
.pd-body.is-style-open > .pd-title-row--main,
.pd-body.is-style-open > .pd-profile-scroll,
.pd-body.is-style-open .pd-notice-wrap { display: none !important; }
.pd-body.is-style-open .pd-sticky-head {
    flex: 0 0 auto;
    position: relative;
    top: auto;
    z-index: 30;
    background: #fff;
    box-shadow: 0 1px 0 rgba(229, 231, 235, 0.95);
}
.pd-body.is-style-open .pd-sticky-head .pd-title-row--compact { display: flex !important; padding-bottom: 8px; }
.pd-body.is-style-open .pd-sticky-head .pd-tabs-wrap .pd-tabs { padding-top: 0; }
.pd-body.is-style-open {
    flex:1 1 0;
    min-height:0;
    overflow:hidden;
    display:flex;
    flex-direction:column;
}
.pd-body.is-style-open #pd-style.pd-style-browse {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 0;
    min-height: 0;
    height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    touch-action: pan-y;
    padding: 0 12px 16px;
    box-sizing: border-box;
    background: #fff;
}
#pd-style.pd-style-browse[hidden] { display: none !important; }

/* 리뷰 탭: 스타일·소식과 동일 — 히어로 숨김, 상단 탭 고정, 리뷰만 스크롤 */
.pd-card.is-review-tab-open,
.pd-card:has(.pd-body.is-review-open) {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    height: 100%;
    background: #fff;
}
.pd-card.is-review-tab-open > .pd-hero,
.pd-card:has(.pd-body.is-review-open) > .pd-hero {
    display: none !important;
}
.pd-card.is-review-tab-open > .pd-body,
.pd-card:has(.pd-body.is-review-open) > .pd-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    background: #fff;
}
.pd-body.is-review-open .pd-scroll-body { display: none !important; }
.pd-body.is-review-open .pd-notice-wrap { display: none !important; }
.pd-body.is-review-open > .pd-title-row--main,
.pd-body.is-review-open > .pd-profile-scroll { display: none !important; }
.pd-body.is-review-open .pd-sticky-head {
    flex: 0 0 auto;
    position: relative;
    top: auto;
    z-index: 30;
    background: #fff;
    box-shadow: 0 1px 0 rgba(229, 231, 235, 0.95);
}
.pd-body.is-review-open .pd-sticky-head .pd-title-row--compact { display: flex !important; padding-bottom: 8px; }
.pd-body.is-review-open .pd-sticky-head .pd-tabs-wrap .pd-tabs { padding-top: 0; }
.pd-review-panel[hidden] { display: none !important; }
.pd-body.is-review-open .pd-review-panel {
    display: flex !important;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    box-sizing: border-box;
    background: #fff;
}
.pd-body.is-review-open .pd-review-panel .pd-review-section {
    flex: 0 0 auto;
    min-height: 0;
}
.pd-home-review .pd-review-report--preview {
    margin: 0;
    padding: 0;
}
.pd-home-review .pd-review-report--preview .pd-review-report-body {
    padding: 0;
}
.pd-home-review > .pd-review-card {
    margin-bottom: 0;
}
/* 홈 미리보기도 리뷰 탭과 동일한 좌우 여백(12px) */
.pd-home-review .pd-review-report--preview .vote-result-widget {
    margin: 0;
    padding: 12px 12px 16px;
    border-radius: 0;
    background: #fff;
}
.pd-home-review .pd-review-report--preview .receipt-review-section-divider {
    display: block;
    width: 100%;
    height: 10px;
    margin: 0;
    padding: 0;
    border: 0;
    background: #f4f5f7;
    box-sizing: border-box;
}
.pd-home-review .pd-review-report--preview .receipt-photo-review-widget,
.pd-home-review .pd-review-report--preview .receipt-photo-review-widget.pd-section {
    margin: 0;
    padding: 16px 12px 20px;
    border: 0;
    border-top: 0;
    background: #fff;
}
.pd-home-review .pd-review-tab-more {
    margin-left: 12px;
    margin-right: 12px;
    width: calc(100% - 24px);
    box-sizing: border-box;
}
.pd-sticky-head.is-review-panel-active .pd-sticky-style-back { color: #111827; top: 50%; }

.pd-news-manage { margin-bottom: 12px; }
.pd-news-manage-link { display: inline-flex; align-items: center; justify-content: center; padding: 10px 14px; border-radius: 12px; background: #111827; color: #fff; font-size: 13px; font-weight: 800; text-decoration: none; }
.pd-news-card.is-news-focus { animation: pdNewsFocusPulse 1.4s ease; }
@keyframes pdNewsFocusPulse {
    0% { box-shadow: 0 0 0 0 rgba(17,24,39,.18); }
    35% { box-shadow: 0 0 0 4px rgba(17,24,39,.12); }
    100% { box-shadow: 0 0 0 0 rgba(17,24,39,0); }
}

/* hairmap 공유 모달 — shop.php(sl-share) 동일 UX */
body.hm-share-opened { overflow: hidden; }
/* 공유 중 상세 패널 inner 배경 — 투명 상태에서 스크롤 밀림 시 지도가 비치는 현상 완화 */
body.hm-share-opened .place-detail.is-overlay.has-detail .place-detail-inner {
    background: #fff;
}
.hm-share-modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    opacity: 0;
    visibility: hidden;
    transition: all .2s ease;
    z-index: 14000;
    touch-action: none;
    overscroll-behavior: none;
}
.hm-share-modal-backdrop.open { opacity: 1; visibility: visible; }
.hm-share-modal {
    position: fixed;
    left: 50%;
    bottom: 0;
    width: min(96%, 520px);
    transform: translate(-50%, 110%);
    opacity: 0;
    pointer-events: none;
    transition: transform .2s ease, opacity .2s ease;
    z-index: 14001;
    background: #fff;
    border-radius: 18px 18px 0 0;
    padding: 18px 16px 16px;
    box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.2);
    overflow: hidden;
    overscroll-behavior: none;
    touch-action: manipulation;
}
.hm-share-modal.open { transform: translate(-50%, 0); opacity: 1; pointer-events: auto; }
.hm-share-modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.hm-share-modal-head h3 { margin: 0; font-size: 22px; font-weight: 800; color: #111827; }
.hm-share-modal-close {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #374151;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.hm-share-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-top: 4px; }
.hm-share-modal-btn {
    border: 0;
    background: #fff;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding: 8px 4px;
    color: #111827;
}
.hm-share-modal-btn i {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #f3f4f6;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}
.hm-share-modal-btn .hm-share-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #f3f4f6;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
}
.hm-share-modal-btn .hm-share-icon svg {
    display: block;
}
.hm-share-icon--kakao { background: #fee500; color: #3c1e1e; }
.hm-share-icon--kakao i { width: auto; height: auto; background: transparent; font-size: 20px; }
.hm-share-icon--band { background: #00c73c; color: #fff; }
.hm-share-icon--x { background: #111827; color: #fff; }
.hm-share-modal-btn span { font-size: 12px; color: #4b5563; }
.hm-share-url-row {
    margin-top: 14px;
    display: flex;
    align-items: center;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    overflow: hidden;
}
.hm-share-url-row input {
    flex: 1;
    border: 0;
    background: #fff;
    padding: 12px;
    font-size: 14px;
    color: #1f2937;
    outline: none;
    min-width: 0;
}
.hm-share-url-row button {
    border: 0;
    border-left: 1px solid #e5e7eb;
    background: #f9fafb;
    color: #374151;
    font-size: 14px;
    font-weight: 700;
    padding: 12px 14px;
    cursor: pointer;
    white-space: nowrap;
}
.hm-share-url-row button:hover { background: #f3f4f6; }
.hm-share-toast {
    position: fixed;
    left: 50%;
    top: 50%;
    min-width: 280px;
    max-width: 88vw;
    padding: 14px 24px;
    border-radius: 30px;
    background: rgba(17, 24, 39, 0.96);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    box-shadow: 0 14px 40px rgba(15, 23, 42, 0.28);
    transform: translate(-50%, -50%);
    opacity: 0;
    visibility: hidden;
    z-index: 14002;
    pointer-events: none;
    transition: opacity .24s ease, visibility .24s ease;
    word-break: keep-all;
}
.hm-share-toast.is-visible { opacity: 1; visibility: visible; }
@media (max-width: 760px) {
    .hm-share-modal { width: 100%; max-width: none; border-radius: 16px 16px 0 0; }
    .hm-share-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 4px; }
    .hm-share-modal-btn i { width: 40px; height: 40px; font-size: 16px; }
}
