/* Petdori hospital detail – mobile first, scope everything */

.pdh-detail{max-width:480px;margin:0 auto;padding:0 0 90px;color:#17212f;background:#fff}

.pdh-detail *{box-sizing:border-box}

.pdh-hero{width:100%}

.pdh-gallery,.pdh-gallery-placeholder{position:relative;width:100%;height:230px;overflow:hidden;background:#edf2f7}

.pdh-gallery-track{display:flex;height:100%;transition:transform .25s ease;will-change:transform}

.pdh-gallery-slide{flex:0 0 100%;height:100%}

.pdh-gallery-slide img{display:block;width:100%;height:100%;object-fit:cover}

.pdh-gallery-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#718096;font-size:13px}

.pdh-gallery-placeholder span:first-child{font-size:40px;color:#9aaabc}

.pdh-gallery-prev,.pdh-gallery-next{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border:0;border-radius:50%;background:rgba(15,23,42,.55);color:#fff;font-size:26px;cursor:pointer}

.pdh-gallery-prev{left:10px}.pdh-gallery-next{right:10px}

.pdh-gallery-count{position:absolute;right:12px;bottom:12px;border-radius:20px;padding:4px 10px;background:rgba(15,23,42,.6);color:#fff;font-size:12px}

.pdh-overview{padding:20px 16px 16px}

.pdh-overview h1{margin:0 0 7px;font-size:19px;font-weight:700;line-height:1.4}

.pdh-address,.pdh-muted{color:#64748b}

.pdh-address{font-size:13px;margin:0}

.pdh-actions{display:flex;gap:8px;margin-top:18px}

.pdh-actions a{display:flex;flex:1;gap:7px;align-items:center;justify-content:center;min-height:44px;border:1px solid #dce4eb;border-radius:10px;background:#fff;text-decoration:none;color:#243247;font-size:13px;font-weight:650}

.pdh-actions a span{font-size:17px}

.pdh-section-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:sticky;top:0;z-index:15;border-top:1px solid #edf2f7;border-bottom:1px solid #e2e8f0;background:#fff}

.pdh-section-tabs a{display:block;padding:15px 2px;text-align:center;text-decoration:none;color:#475569;font-size:13px;font-weight:650}

.pdh-section-tabs a.is-active{color:#2563eb;box-shadow:inset 0 -2px #2563eb}

.pdh-section{padding:23px 16px 25px;border-bottom:8px solid #f1f5f9;scroll-margin-top:64px}

.pdh-section h2{margin:0 0 17px;font-size:18px;font-weight:750;line-height:1.4}

.pdh-section p{margin:0 0 9px;font-size:14px;line-height:1.65}

.pdh-multiline{white-space:pre-line;overflow-wrap:anywhere}

.pdh-hour-summary p{margin-bottom:7px}

.pdh-hour-summary strong{font-weight:700}

.pdh-hour-details{border-top:1px solid #edf2f7;margin-top:17px;padding-top:12px}

.pdh-hour-details summary{display:flex;justify-content:space-between;cursor:pointer;color:#475569;font-size:13px;font-weight:650;list-style:none}

.pdh-hour-details summary::-webkit-details-marker{display:none}

/* Rotate only the chevron, never the summary text. */

.pdh-hour-days{margin-top:12px}

.pdh-hour-days>div{display:flex;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid #f1f5f9;font-size:13px}

.pdh-hour-days>div span:first-child{color:#64748b}

.pdh-tags{display:flex;gap:7px;flex-wrap:wrap}

.pdh-tags span{padding:7px 11px;border-radius:8px;background:#f1f5f9;font-size:13px;color:#334155}

.pdh-price-pending{margin-top:18px;border-radius:12px;background:#f8fafc;padding:15px;color:#475569;font-size:13px}

.pdh-price-pending p{margin:7px 0 0;font-size:13px}

.pdh-address-line{font-weight:500}

.pdh-parking{color:#2563eb;font-weight:500}

.pdh-map,.pdh-map-fallback{height:215px;margin-top:15px;border-radius:12px;overflow:hidden;background:#ecf2f7}

.pdh-map-fallback{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;color:#64748b}

.pdh-map-fallback span{font-size:30px}

.pdh-map-link{display:block;margin-top:12px;padding:12px;border:1px solid #cbd5e1;border-radius:9px;text-align:center;color:#2563eb;text-decoration:none;font-weight:650;font-size:13px}

.pdh-disclaimer{padding:20px 16px 0;margin:0;color:#94a3b8;font-size:11px;line-height:1.7}

@media(max-width:360px){.pdh-gallery,.pdh-gallery-placeholder{height:200px}.pdh-overview h1{font-size:18px}}

@media(prefers-reduced-motion:reduce){.pdh-gallery-track{transition:none}}



/* v2: sticky combined header */

.pdh-sticky-header{position:sticky;top:0;z-index:80;max-width:480px;margin:0 auto;background:#fff;box-shadow:0 1px 0 #e2e8f0}

.pdh-header-top{height:50px;display:flex;align-items:center;gap:6px;padding: 0px 10px 0px 6px;background:#fff}

.pdh-head-icon{width:34px;height:34px;flex:0 0 34px;border:0;padding:4px;border-radius:9px;background:transparent;color:#1e293b;display:grid;place-items:center;cursor:pointer;text-decoration:none}

.pdh-head-icon svg{width:25px;height:25px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}

.pdh-head-icon:disabled{opacity:.45;cursor:default}

.pdh-head-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:18px;font-weight:700}

.pdh-header-actions{display:flex;gap:1px}

/* Only show section tabs once hospital introduction reaches sticky header. */

.pdh-sticky-header .pdh-section-tabs{display:none;position:absolute;top:100%;left:0;right:0;border-top:1px solid #edf2f7;border-bottom:1px solid #e2e8f0;box-shadow:none}

.pdh-sticky-header.pdh-tabs-visible .pdh-section-tabs{display:grid}

.pdh-sticky-header .pdh-section-tabs a{padding:12px 2px}

.pdh-section{scroll-margin-top:110px}

.pdh-hour-details{margin:0;padding:0;border:0}

.pdh-hour-toggle{align-items:center;justify-content:flex-start!important;gap:6px;color:#17212f!important;font-size:14px!important;font-weight:700!important;padding:0 0 5px}

.pdh-hour-summary-lines{display:flex;flex:0 1 auto;flex-direction:column;gap:5px;min-width:0}

.pdh-hour-chevron{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.8;fill:none;transition:transform .2s}

.pdh-hour-details[open] .pdh-hour-chevron{transform:rotate(180deg)}

.pdh-hour-days{margin:12px 0 14px;border-top:1px solid #edf2f7}

.pdh-hour-days .is-today{color:#2563eb;font-weight:700;background:#f5f9ff}

.pdh-hour-days .is-today span:first-child{color:#2563eb}

.pdh-hour-days em{font-style:normal;margin-left:3px;color:#2563eb}

.pdh-hour-extra{margin-top:8px!important}

.pdh-parking-line{display:flex;align-items:baseline;gap:6px;font-size:13px;line-height:1.6;margin:6px 0 10px}

.pdh-parking-icon,.pdh-parking-line strong{flex-shrink:0;color:#2563eb}

.pdh-parking-note{min-width:0;white-space:normal;overflow-wrap:anywhere;color:#64748b}



/* Hospital regional fees */

.pdh-regional-fees { margin-top:18px; }

.pdh-fee-region { margin:6px 0 12px; font-size:12px; color:#64748b; }

.pdh-fee-item { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid #edf1f5; }

.pdh-fee-item-label { flex:1; min-width:0; font-size:13px; line-height:1.5; color:#1e293b; }

.pdh-fee-item-prices { flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:3px; font-size:13px; line-height:1.5; white-space:nowrap; }

.pdh-fee-item-prices strong { font-size:13px; }

.pdh-fee-item-prices small { font-size:12px; color:#64748b; }

.pdh-fee-more { margin-top:12px; }

.pdh-fee-more > summary { cursor:pointer; list-style:none; border:1px solid #dbe3ec; border-radius:9px; padding:12px; font-size:13px; font-weight:600; text-align:center; }

.pdh-fee-more > summary::-webkit-details-marker { display:none; }

.pdh-fee-more[open] > summary { margin-bottom:5px; }

.pdh-fee-more[open] > summary span { display:inline-block; transform:rotate(180deg); }

.pdh-fee-note { margin:12px 0 0; font-size:11px; line-height:1.6; color:#64748b; }



/* Petdori regional fee UI v2: append below existing hospital-detail.css */

.pdh-fee-description{font-size:11px!important;color:#64748b;margin:0 0 9px!important}

.pdh-regional-fees .pdh-fee-item{align-items:center;min-height:59px}

.pdh-fee-more>summary{display:flex;justify-content:center;align-items:center;gap:6px}

.pdh-fee-more[open]>summary span{transform:rotate(180deg)}

.pdh-fee-category-ui{margin-top:12px}

.pdh-fee-category-input,.pdh-fee-weight-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

.pdh-fee-category-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-bottom:10px}

.pdh-fee-category-tab{display:block;min-width:0;padding:10px 3px;border:1px solid #dbe3ec;border-radius:8px;text-align:center;font-size:12px;font-weight:650;color:#64748b;background:#fff;cursor:pointer}

.pdh-fee-category-input--visit:checked~.pdh-fee-category-tabs .pdh-fee-category-tab--visit,.pdh-fee-category-input--prevent:checked~.pdh-fee-category-tabs .pdh-fee-category-tab--prevent,.pdh-fee-category-input--exam:checked~.pdh-fee-category-tabs .pdh-fee-category-tab--exam{border-color:#2563eb;color:#2563eb;background:#eff6ff}

.pdh-fee-category-panel{display:none}

.pdh-fee-category-input--visit:checked~.pdh-fee-category-panel--visit,.pdh-fee-category-input--prevent:checked~.pdh-fee-category-panel--prevent,.pdh-fee-category-input--exam:checked~.pdh-fee-category-panel--exam{display:block}



/* =========================

   Global Fee Weight Selector

\========================= */



.pdh-fee-global-weight {

    margin: 12px 0 14px;

}



.pdh-fee-global-title {

    display: block;

    margin-bottom: 9px;

    font-size: 13px;

    font-weight: 700;

    color: #1e293b;

}



.pdh-fee-weight-tabs {

    display: flex;

    gap: 6px;

    margin: 0;

}



.pdh-fee-weight-tab {

    display: inline-flex;

    justify-content: center;

    align-items: center;

    min-width: 51px;

    min-height: 34px;

    padding: 6px 12px;

    border: 1px solid #dbe3ec;

    border-radius: 7px;

    background: #fff;

    color: #64748b;

    font-size: 12px;

    cursor: pointer;

}



/* Selected global weight */



.pdh-fee-weight-input--ANITY00006:checked

~ .pdh-fee-global-weight

.pdh-fee-weight-tab--ANITY00006,



.pdh-fee-weight-input--ANITY00007:checked

~ .pdh-fee-global-weight

.pdh-fee-weight-tab--ANITY00007,



.pdh-fee-weight-input--ANITY00008:checked

~ .pdh-fee-global-weight

.pdh-fee-weight-tab--ANITY00008 {

    border-color: #2563eb;

    color: #2563eb;

    background: #eff6ff;

    font-weight: 700;

}



/* =========================

   Weight Price Rows

\========================= */



.pdh-fee-weight-card {

    padding: 12px 0;

    border-bottom: 1px solid #edf1f5;

}



.pdh-fee-group-label {

    display: block;

    margin-bottom: 5px;

    font-size: 13px;

    font-weight: 650;

    color: #1e293b;

}



.pdh-fee-weight-panels {

    min-height: 38px;

}



.pdh-fee-weight-panel {

    display: none;

    justify-content: flex-end;

    align-items: flex-start;

}



/* Global weight controls all category price panels */



.pdh-fee-weight-input--ANITY00006:checked

~ .pdh-fee-category-panel

.pdh-fee-weight-panel--ANITY00006,



.pdh-fee-weight-input--ANITY00007:checked

~ .pdh-fee-category-panel

.pdh-fee-weight-panel--ANITY00007,



.pdh-fee-weight-input--ANITY00008:checked

~ .pdh-fee-category-panel

.pdh-fee-weight-panel--ANITY00008 {

    display: flex;

}



.pdh-fee-weight-unavailable {

    display: block;

    color: #94a3b8;

    font-size: 12px;

    line-height: 1.5;

    text-align: right;

}



.pdh-fee-empty {

    font-size: 12px !important;

    color: #64748b;

}



/* Keyboard focus */



.pdh-fee-weight-input:focus-visible

\+ .pdh-fee-weight-input {

    outline: none;

}



.pdh-fee-category-tab:focus-visible,

.pdh-fee-weight-tab:focus-visible {

    outline: 2px solid #2563eb;

    outline-offset: 2px;

}



/* Radio keyboard focus indication */



.pdh-fee-weight-input--ANITY00006:focus-visible

~ .pdh-fee-global-weight

.pdh-fee-weight-tab--ANITY00006,



.pdh-fee-weight-input--ANITY00007:focus-visible

~ .pdh-fee-global-weight

.pdh-fee-weight-tab--ANITY00007,



.pdh-fee-weight-input--ANITY00008:focus-visible

~ .pdh-fee-global-weight

.pdh-fee-weight-tab--ANITY00008 {

    outline: 2px solid #2563eb;

    outline-offset: 2px;

}


/* Species filter: applies to featured rows and every category panel */
.pdh-fee-species-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.pdh-fee-species-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:12px 0}
.pdh-fee-species-tab{display:block;padding:10px 4px;border:1px solid #dbe3ec;border-radius:8px;background:#fff;color:#64748b;text-align:center;font-size:13px;font-weight:650;cursor:pointer}
.pdh-fee-view{display:none}
.pdh-fee-species--dog:checked~.pdh-fee-view--dog,.pdh-fee-species--cat:checked~.pdh-fee-view--cat{display:block}
.pdh-fee-species--dog:checked~.pdh-fee-species-tabs .pdh-fee-species-tab--dog,.pdh-fee-species--cat:checked~.pdh-fee-species-tabs .pdh-fee-species-tab--cat{border-color:#2563eb;color:#2563eb;background:#eff6ff}
.pdh-regional-fees .pdh-fee-species-note{font-size:11px;line-height:1.6;color:#64748b;margin:2px 0 8px}
.pdh-fee-species--dog:focus-visible~.pdh-fee-species-tabs .pdh-fee-species-tab--dog,.pdh-fee-species--cat:focus-visible~.pdh-fee-species-tabs .pdh-fee-species-tab--cat{outline:2px solid #2563eb;outline-offset:2px}

/* Hospital detail redesign: full-width surfaces with inset readable content */
.pdh-detail{width:100%;max-width:480px;padding:0 0 90px!important;margin:0 auto!important}
.pdh-detail .pdh-hero{padding:0;margin:0;width:100%}
.pdh-detail .pdh-gallery,.pdh-detail .pdh-gallery-placeholder{width:100%;height:240px;border-radius:0}
.pdh-detail .pdh-gallery-prev,.pdh-detail .pdh-gallery-next{display:none!important}
.pdh-gallery-dots{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:8px;align-items:center;justify-content:center;padding:7px 10px;border-radius:30px;background:rgba(15,23,42,.35);z-index:2}
.pdh-gallery-dot{width:8px;height:8px;border:0;border-radius:50%;background:rgba(255,255,255,.5);padding:0;cursor:pointer}
.pdh-gallery-dot.is-active{background:#fff;width:9px;height:9px}
.pdh-gallery-dot:focus-visible{outline:2px solid #fff;outline-offset:3px}
.pdh-detail .pdh-gallery-count{display:none}
.pdh-detail .pdh-overview{padding:8px 16px 12px;border-bottom:8px solid #f1f5f9}
.pdh-overview h1{font-size:19px;margin:0 0 8px}
.pdh-overview-lines{display:flex;flex-direction:column;gap:12px}
.pdh-info-line{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.55;color:#334155;text-decoration:none;min-width:0}
.pdh-info-line>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.pdh-info-symbol{width:18px;flex:0 0 18px;text-align:center;font-size:17px;line-height:1.25;color:#64748b}
.pdh-hours-status{flex:0 0 auto;display:inline-flex;align-items:center;padding:2px 7px;border-radius:5px;background:#f1f5f9;color:#64748b;font-size:11px;font-weight:700;white-space:nowrap}
.pdh-hours-status--open{background:#eaf6ef;color:#059669}
.pdh-hours-status--closed{background:#f1f5f9;color:#64748b}
.pdh-hours-status--break{background:#fff4e5;color:#9a6200}
.pdh-hours-status--unknown{background:#f1f5f9;color:#64748b}
.pdh-hour-toggle>.pdh-hours-status{margin-right:6px}
.pdh-hour-toggle{flex-wrap:wrap}
.pdh-detail .pdh-section{width:100%;margin:0;border-radius:0;padding:23px 16px 25px;border-bottom:8px solid #f1f5f9}
.pdh-detail .pdh-disclaimer{padding:20px 16px 0;margin:0;width:100%}
.pdh-sticky-header .pdh-section-tabs{display:grid!important;position:static;top:auto;left:auto;right:auto;border-top:1px solid #edf2f7;box-shadow:none}
.pdh-section{scroll-margin-top:118px}
@media(max-width:360px){.pdh-detail .pdh-gallery,.pdh-detail .pdh-gallery-placeholder{height:210px}}


/* Hospital overview and compact actions */
.pdh-sticky-header{position:sticky;top:0;z-index:80}
.pdh-detail .pdh-overview{padding:8px 16px 12px;border-bottom:0}
.pdh-detail .pdh-overview h1{margin:0 0 8px;font-size:19px}
.pdh-overview-info{display:flex;flex-direction:column;gap:10px}
.pdh-overview-line{display:flex;align-items:center;gap:9px;min-width:0;min-height:23px;text-decoration:none;color:#334155;font-size:14px;line-height:1.5}
.pdh-overview-line svg{display:block;flex:0 0 18px;width:18px;height:18px;fill:none;stroke:#64748b;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pdh-overview-line>span:nth-child(2){min-width:0;overflow-wrap:anywhere}
.pdh-overview-line:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
/* 4 slots always. Buttons fill each quarter; no extra icon background. */
.pdh-detail .pdh-overview .pdh-quick-menu{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;width:calc(100% + 32px);margin:18px -16px 0;padding:0;border-top:1px solid #edf2f7;border-bottom:1px solid #edf2f7}
.pdh-detail .pdh-overview .pdh-quick-item{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:0;min-height:68px;margin:0;padding:9px 2px;border:0;border-right:1px solid #edf2f7;border-radius:0;background:transparent;color:#334155;text-decoration:none;text-align:center;font-size:12px;font-weight:600;line-height:1.3;cursor:pointer}
.pdh-detail .pdh-overview .pdh-quick-item:last-child{border-right:0}
.pdh-detail .pdh-overview .pdh-quick-icon{display:flex;align-items:center;justify-content:center;flex:0 0 22px;width:22px;height:22px;min-width:22px;min-height:22px;padding:0;border:0;border-radius:0;background:transparent;color:#2563eb}
.pdh-detail .pdh-overview .pdh-quick-icon svg{display:block;width:22px;height:22px;max-width:22px;max-height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pdh-detail .pdh-overview .pdh-quick-item.is-disabled{opacity:.38;cursor:default}
.pdh-detail .pdh-overview a.pdh-quick-item:active{background:#eff6ff}
.pdh-detail .pdh-overview a.pdh-quick-item:focus-visible{outline:2px solid #2563eb;outline-offset:-2px}
/* Section tabs remain between overview and introduction, sticky below 52px header */
.pdh-detail > .pdh-section-tabs{position:sticky!important;top:52px!important;z-index:70;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));height:46px;background:#fff;border-top:1px solid #edf2f7;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 2px rgba(15,23,42,.035)}
.pdh-detail > .pdh-section-tabs a{padding:13px 2px;line-height:20px}
.pdh-detail > .pdh-section-tabs.is-stuck{box-shadow:0 2px 6px rgba(15,23,42,.07)}
.pdh-detail .pdh-section{scroll-margin-top:108px}


/* =========================
   Hospital Medical & Prices
========================= */

.pdh-detail .pdh-subtitle {
    margin: 22px 0 12px;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    color: #1e293b;
}

.pdh-detail .pdh-subtitle:first-of-type {
    margin-top: 14px;
}

.pdh-detail .pdh-tags {
    margin-bottom: 12px;
}

.pdh-hospital-prices {
    margin-top: 30px;
}

.pdh-hospital-price-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid #edf2f7;
    font-size: 13px;
    line-height: 1.5;
}

.pdh-hospital-price-row > span {
    flex: 1;
    min-width: 0;
    overflow-wrap: anywhere;
    color: #334155;
}

.pdh-hospital-price-row > strong {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 700;
    color: #0f172a;
    white-space: nowrap;
}

.pdh-hospital-price-more {
    margin-top: 12px;
}

.pdh-hospital-price-more > summary {
    padding: 12px;
    border: 1px solid #dbe3ec;
    border-radius: 9px;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.pdh-hospital-price-more > summary::-webkit-details-marker {
    display: none;
}

.pdh-hospital-price-more[open] > summary {
    margin-bottom: 6px;
}

.pdh-price-images {
    margin-top: 28px;
}

.pdh-price-image-link {
    display: block;
    margin-top: 12px;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    overflow: hidden;
}

.pdh-price-image-link img {
    display: block;
    width: 100%;
    height: auto;
}

.pdh-detail .pdh-regional-heading {
    margin-top: 32px;
}


/* =========================
   Today Hours
========================= */

.pdh-today-hours {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    line-height: 1.5;
}

.pdh-today-hours strong {
    font-size: 14px;
    font-weight: 700;
    color: #17212f;
}

.pdh-today-hours small {
    font-size: 12px;
    font-weight: 400;
    color: #64748b;
}

.pdh-hour-toggle .pdh-hour-chevron {
    margin-left: auto;
}

/* =========================
   Hospital Price Heading
========================= */

.pdh-price-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 15px;
}

.pdh-detail .pdh-price-heading h2 {
    margin: 0;
    font-size: 18px;
    white-space: nowrap;
}

.pdh-price-image-details {
    position: relative;
    margin: 0;
    min-width: 0;
}

.pdh-price-image-details > summary {
    display: block;
    cursor: pointer;
    font-size: 11px;
    font-weight: 600;
    color: #2563eb;
    white-space: nowrap;
    list-style: none;
}

.pdh-price-image-details > summary::-webkit-details-marker {
    display: none;
}

.pdh-price-image-popup {
    margin-top: 12px;
}

.pdh-price-image-popup a {
    display: block;
    margin: 10px 0;
}

.pdh-price-image-popup img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
}

/* 가격표 이미지 펼침 시 전체 너비 사용 */

.pdh-price-heading {
    flex-wrap: wrap;
}

.pdh-price-image-details[open] {
    flex: 0 0 100%;
    width: 100%;
    order: 2;
}

.pdh-price-image-details[open] > summary {
    text-align: right;
}

.pdh-price-image-popup {
    width: 100%;
}

.pdh-price-image-popup img {
    width: 100%;
    height: auto;
    object-fit: contain;
}


/* =========================
   Hospital Introduction More
========================= */

.pdh-intro-text.is-collapsed {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
}

.pdh-intro-more {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 9px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #2563eb;
    font-size: 13px;
    font-weight: 650;
    cursor: pointer;
}

.pdh-intro-more[hidden] {
    display: none;
}

.pdh-intro-more span {
    display: inline-block;
    transition: transform .2s ease;
}

.pdh-intro-more[aria-expanded="true"] span {
    transform: rotate(180deg);
}


/* Petdori hospital/facility shared detail improvements - 2026-10 */
.pdh-detail .pdh-info-banner{margin:0;padding:12px 16px;background:#eff6ff;border-bottom:1px solid #dbeafe;color:#1d4ed8}
.pdh-detail .pdh-info-banner p{margin:0;font-size:12px;line-height:1.6}
.pdh-detail .pdh-info-banner p+p{margin-top:3px}
.pdh-detail .pdh-hours-notice{margin:0 0 18px;font-size:12px;line-height:1.65;color:#2563eb;background:#eff6ff;border-radius:8px;padding:10px 12px}
.pdh-detail .pdh-hour-extra{white-space:pre-line;margin:8px 0 0!important;padding:0;line-height:1.55}
.pdh-detail .pdh-hour-extra:empty{display:none}
.pdh-detail .pdh-address-copy-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
.pdh-detail .pdh-address-copy-row .pdh-address-line{flex:1;min-width:0;margin:0;overflow-wrap:anywhere}
.pdh-detail .pdh-copy-address{flex:0 0 auto;background:#eff6ff;color:#2563eb;border:1px solid #dbeafe;border-radius:8px;min-height:32px;padding:5px 11px;font-size:12px;font-weight:650;cursor:pointer}
.pdh-detail .pdh-copy-address:focus-visible,.pdh-detail .pdh-map-overlay:focus-visible{outline:2px solid #2563eb;outline-offset:2px}
.pdh-detail .pdh-parking-line{align-items:flex-start;gap:6px}
.pdh-detail .pdh-parking-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 21px;width:21px;height:21px;background:#eff6ff;border-radius:50%;font-size:12px;font-weight:800;line-height:1;color:#2563eb}
.pdh-detail .pdh-map-wrap{position:relative;margin-top:15px;border-radius:12px;overflow:hidden}
.pdh-detail .pdh-map-wrap .pdh-map{margin-top:0;border-radius:0}
.pdh-detail .pdh-map-overlay{position:absolute;right:10px;bottom:10px;z-index:2;display:inline-flex;align-items:center;justify-content:center;padding:8px 11px;border-radius:8px;background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.18);color:#1e293b;text-decoration:none;font-size:12px;font-weight:700}


/* ====================================
   Petdori Price Image Lightbox
   Hospital + Facility
==================================== */

.pd-price-lightbox[hidden] {
    display: none !important;
}

.pd-price-lightbox {
    position: fixed;
    inset: 0;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px;
    background: rgba(15, 23, 42, .88);
    box-sizing: border-box;
}

.pd-price-lightbox,
.pd-price-lightbox * {
    box-sizing: border-box;
}

.pd-price-lightbox-panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 720px;
    max-height: calc(100dvh - 32px);
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
}

.pd-price-lightbox-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 48px;
    padding: 8px 12px 8px 18px;
    border-bottom: 1px solid #e2e8f0;
}

.pd-price-lightbox-count {
    font-size: 13px;
    font-weight: 650;
    color: #334155;
}

.pd-price-lightbox-close {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #334155;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.pd-price-lightbox-content {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 0;
    padding: 12px;
    overflow: auto;
    background: #f8fafc;
}

.pd-price-lightbox-img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: calc(100dvh - 104px);
    height: auto;
    object-fit: contain;
    margin: auto;
    border-radius: 4px;
}

.pd-price-lightbox-prev,
.pd-price-lightbox-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
    display: grid;
    place-items: center;
    width: 34px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: rgba(15, 23, 42, .65);
    color: #fff;
    font-size: 30px;
    cursor: pointer;
}

.pd-price-lightbox-prev {
    left: 10px;
}

.pd-price-lightbox-next {
    right: 10px;
}

.pd-price-lightbox button[hidden] {
    display: none !important;
}

.pd-price-lightbox button:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

@media (max-width: 480px) {
    .pd-price-lightbox {
        padding: 12px;
    }

    .pd-price-lightbox-panel {
        max-height: calc(100dvh - 24px);
    }

    .pd-price-lightbox-img {
        max-height: calc(100dvh - 96px);
    }
}

/* ====================================
   Price Lightbox - Minimal Viewer
   병원 / 시설 공통
==================================== */

.pd-price-lightbox {
    padding: 24px !important;
    background: rgba(15, 23, 42, .88);
}

.pd-price-lightbox-panel {
    position: relative;
    width: auto;
    max-width: min(90vw, 520px);
    max-height: 85dvh;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
}

.pd-price-lightbox-top {
    position: absolute;
    top: -44px;
    right: 0;
    z-index: 5;
    width: auto;
    min-height: 36px;
    padding: 0;
    border: 0;
    background: transparent;
}

.pd-price-lightbox-count {
    display: none !important;
}

.pd-price-lightbox-close {
    width: 36px;
    height: 36px;
    padding: 0;
    background: transparent;
    color: #fff;
    font-size: 30px;
}

.pd-price-lightbox-content {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    max-height: 85dvh;
    padding: 0;
    margin: 0;
    background: transparent;
    overflow: visible;
}

.pd-price-lightbox-img {
    display: block;
    width: auto;
    max-width: 100%;
    max-height: 85dvh;
    height: auto;
    margin: auto;
    border: 0;
    border-radius: 5px;
    box-shadow: none;
    object-fit: contain;
}

.pd-price-lightbox-prev,
.pd-price-lightbox-next {
    width: 30px;
    height: 40px;
    font-size: 26px;
    background: rgba(15, 23, 42, .55);
}

.pd-price-lightbox-prev {
    left: 6px;
}

.pd-price-lightbox-next {
    right: 6px;
}

@media (max-width: 480px) {
    .pd-price-lightbox {
        padding: 16px !important;
    }

    .pd-price-lightbox-panel {
        max-width: 88vw;
        max-height: 78dvh;
    }

    .pd-price-lightbox-content {
        max-height: 78dvh;
    }

    .pd-price-lightbox-img {
        max-height: 78dvh;
    }

    .pd-price-lightbox-top {
        top: -42px;
    }
}

/* 가격표 이미지 좌우 이동 터치 영역 */

.pd-price-lightbox-content {
    position: relative;
}

.pd-price-lightbox-prev,
.pd-price-lightbox-next {
    position: absolute;
    top: 0;
    bottom: 0;
    transform: none;

    width: 15%;
    min-width: 44px;
    height: 100%;

    border: 0;
    border-radius: 0;
    background: transparent;

    color: #fff;
    font-size: 34px;
    font-weight: 400;

    display: flex;
    align-items: center;
    justify-content: center;

    cursor: pointer;
    z-index: 5;
    touch-action: manipulation;
}

.pd-price-lightbox-prev {
    left: 0;
}

.pd-price-lightbox-next {
    right: 0;
}

.pd-price-lightbox-prev:hover,
.pd-price-lightbox-next:hover {
    background: rgba(15, 23, 42, .12);
}

.pd-price-lightbox-prev[hidden],
.pd-price-lightbox-next[hidden] {
    display: none !important;
}

@media (max-width: 480px) {
    .pd-price-lightbox-prev,
    .pd-price-lightbox-next {
        width: 17%;
        font-size: 30px;
    }
}


/* =========================
   Detail Overview V3
   Hospital + Facility
========================= */

.pdh-detail .pdh-overview-v3 {
    padding: 4px 12px 8px;
    border: 0;
    background: #fff;
}

/* 업종 분류 */
.pdh-overview-v3 .pdh-overview-category {
    margin-bottom: 3px;
    color: #1F6AFF;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

/* 병원명 / 업체명 */
.pdh-detail .pdh-overview-v3 h1 {
    margin: 0 0 6px;
    color: #111827;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: -0.5px;
    overflow-wrap: anywhere;
}

/* 리뷰 */
.pdh-overview-v3 .pdh-overview-review {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 21px;
    color: #334155;
    font-size: 13px;
    text-decoration: none;
}

.pdh-overview-v3 .pdh-review-star {
    color: #f59e0b;
    font-size: 16px;
    line-height: 1;
}

.pdh-overview-v3 .pdh-review-count {
    color: #94a3b8;
}

/* 오늘 운영시간 */
.pdh-overview-v3 .pdh-overview-today {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    margin-top: 10px;
    min-height: 29px;
    color: #334155;
    font-size: 13px;
    text-decoration: none;
}

.pdh-overview-v3 .pdh-overview-today svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    fill: none;
    stroke: #64748b;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.pdh-overview-v3 .pdh-overview-today-state {
    font-weight: 700;
    white-space: nowrap;
}

.pdh-overview-v3 .pdh-overview-today-state--open {
    color: #059669;
}

.pdh-overview-v3 .pdh-overview-today-state--closed,
.pdh-overview-v3 .pdh-overview-today-state--unknown {
    color: #64748b;
}

.pdh-overview-v3 .pdh-overview-today-state--break {
    color: #a16207;
}

.pdh-overview-v3 .pdh-overview-today-end {
    color: #64748b;
    white-space: nowrap;
}

.pdh-overview-v3 .pdh-overview-arrow {
    margin-left: auto;
    color: #94a3b8;
    font-size: 22px;
    line-height: 1;
}

/* 정보 구분선 */
.pdh-overview-v3 .pdh-overview-divider {
    height: 1px;
    margin: 12px 0 10px;
    background: #e9edf2;
}

/* 주소 / 홈페이지 */
.pdh-overview-v3 .pdh-overview-detail-line {
    display: flex;
    align-items: flex-start;
    gap: 4px;
    min-width: 0;
    margin-bottom: 6px;
    color: #475569;
    font-size: 15px;
    line-height: 1.55;
    text-decoration: none;
}

.pdh-overview-v3 .pdh-overview-detail-line svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin-top: 1px;
    fill: none;
    stroke: #64748b;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.pdh-overview-v3 .pdh-overview-detail-line > span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.pdh-overview-v3 .pdh-overview-website {
    color: #2563eb;
}

.pdh-overview-v3 .pdh-overview-external {
    font-size: 12px;
}

/* 전화 / 길찾기 / 문의 태그형 카드 */
.pdh-overview-v3 .pdh-overview-actions {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 19px;
}

.pdh-overview-v3 .pdh-overview-action {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-width: 0;
    min-height: 43px;
    padding: 8px 5px;
    border: 1px solid #e2e8f0;
    border-radius: 11px;
    background: #f8fafc;
    color: #334155;
    font-size: 13px;
    font-weight: 650;
    text-decoration: none;
    white-space: nowrap;
}

.pdh-overview-v3 .pdh-overview-action svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.pdh-overview-v3 a.pdh-overview-action:active {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: #2563eb;
}

.pdh-overview-v3 .pdh-overview-action.is-disabled {
    color: #b0bac7;
    background: #f8fafc;
    cursor: default;
    opacity: .7;
}

.pdh-overview-v3 a:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 2px;
}

@media (max-width: 360px) {
    .pdh-detail .pdh-overview-v3 h1 {
        font-size: 20px;
    }

    .pdh-overview-v3 .pdh-overview-actions {
        gap: 6px;
    }

    .pdh-overview-v3 .pdh-overview-action {
        gap: 5px;
        font-size: 12px;
    }
}


/* =========================
   Detail Overview V4
   Inline Hours + 4-Slot Actions
   Hospital / Facility
========================= */

/* 상단 기본정보 */
.pdh-detail .pdh-overview-v3 {
    padding-bottom: 20px;
}

/* 상단 운영시간 전체 */
.pdh-overview-v3 .pdh-overview-hours {
    margin: 0 0 12px;
    padding: 0;
    border: 0;
}

/* 펼치기 버튼 */
.pdh-overview-v3 .pdh-overview-hours-summary {
    display: flex;
    align-items: center;
    gap: 9px;

    min-height: 22px;
    padding: 0;

    list-style: none;
    cursor: pointer;

    color: #334155;
    font-size: 15px;
    line-height: 1.4;
}

.pdh-overview-v3 .pdh-overview-hours-summary::-webkit-details-marker {
    display: none;
}

.pdh-overview-v3 .pdh-overview-hours-summary::marker {
    content: "";
}

/* 시계 아이콘 */
.pdh-overview-v3 .pdh-overview-hours-icon {
    display: block;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;

    fill: none;
    stroke: #64748b;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* 현재 상태 */
.pdh-overview-v3 .pdh-overview-hours-summary
.pdh-overview-today-state {
    font-weight: 500;
    white-space: nowrap;
}

/* 오늘 운영시간 */
.pdh-overview-v3 .pdh-overview-hours-today {
    flex: 1;
    min-width: 0;
    color: #64748b;
    font-size: 14px;
    font-weight: 400;
}

/* 우측 화살표 */
.pdh-overview-v3 .pdh-overview-hours-chevron {
    display: block;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin-left: auto;

    fill: none;
    stroke: #94a3b8;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;

    transition: transform .2s ease;
}

.pdh-overview-v3
.pdh-overview-hours[open]
.pdh-overview-hours-chevron {
    transform: rotate(180deg);
}

/* 펼친 요일별 시간 */
.pdh-overview-v3 .pdh-overview-hours-panel {
    margin: 8px 0 3px 12px;
    padding: 8px 12px;

    background: #f8fafc;
    border: 1px solid #edf2f7;
    border-radius: 10px;
}

.pdh-overview-v3 .pdh-overview-hours-group {
    padding: 4px 0;
    color: #334155;
    font-size: 14px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.pdh-overview-v3 .pdh-overview-hours-group
+ .pdh-overview-hours-group {
    border-top: 1px solid #edf2f7;
}

.pdh-overview-v3 .pdh-overview-hours-extra {
    margin-top: 6px;
    padding-top: 2px;
    border-top: 1px solid #e2e8f0;

    color: #64748b;
    font-size: 13px;
    line-height: 1.4;
}

.pdh-overview-v3 .pdh-overview-hours-empty {
    margin: 0;
    font-size: 12px;
    color: #94a3b8;
}

.pdh-overview-v3 .pdh-overview-hours-notice {
    margin: 10px 0 0;
    color: #94a3b8;
    font-size: 13px;
    line-height: 1.5;
}

/* 홈페이지는 운영시간 아래 */
.pdh-overview-v3 .pdh-overview-website {
    margin-bottom: 0;
}

/* 4칸 레이아웃 / 현재 버튼 3개 */
.pdh-overview-v3 .pdh-overview-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
}

.pdh-overview-v3 .pdh-overview-action {
    min-height: 42px;
    padding: 8px 4px;
    gap: 6px;

    border: 1px solid #e2e8f0;
    border-radius: 10px;

    background: #f8fafc;
    color: #334155;

    font-size: 12px;
    font-weight: 650;
}

/* 빈 4번째 상세 탭 */
.pdh-section-tabs .pdh-section-tab-empty {
    display: block;
    min-width: 0;
    pointer-events: none;
}

.pdh-overview-v3
.pdh-overview-hours-summary:focus-visible {
    outline: 2px solid #2563eb;
    outline-offset: 3px;
    border-radius: 4px;
}
/* 진료시간 화살표를 시간 텍스트 바로 옆으로 */

.pdh-overview-v3 .pdh-overview-hours-today {
    flex: 0 1 auto;
}

.pdh-overview-v3 .pdh-overview-hours-chevron {
    margin-left: 0;
    width: 16px;
    height: 16px;
    flex-basis: 16px;
}