
/* Dunzy Single Listing v0.2.0 — Services only.
   Event CSS remains isolated in single-listing.css and is not modified. */

.dunzy-single-service-active #titlebar,
.dunzy-single-service-active .single-listing-page-titlebar {
    display:none!important;
}

.dsl-service {
    background:#fff;
    color:var(--dsl-text);
    min-height:70vh;
}

.dsl-service-hero {
    position:relative;
    min-height:490px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
    background:#242424;
}

.dsl-service-hero.has-cover::before {
    content:"";
    position:absolute;
    inset:0;
    background-image:var(--dsl-service-cover);
    background-size:cover;
    background-position:center;
    transform:scale(1.01);
}

.dsl-service-hero.no-cover {
    background:linear-gradient(135deg,#393939,#151515);
}

.dsl-service-hero__shade {
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,.12) 12%,rgba(0,0,0,.22) 48%,rgba(0,0,0,.84) 100%);
}

.dsl-service-hero__inner {
    position:relative;
    z-index:2;
    padding:34px 0 46px;
    color:#fff;
}

.dsl-service-hero__top {
    position:absolute;
    top:-398px;
    left:0;
    right:0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
}

.dsl-service-badges {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.dsl-service-hero__content {
    display:flex;
    align-items:flex-end;
}

.dsl-service-hero__copy {
    max-width:920px;
}

.dsl-service-hero h1 {
    color:#fff;
    margin:0 0 14px;
    font-size:clamp(38px,5vw,60px);
    line-height:1.04;
    letter-spacing:-.035em;
}

.dsl-service-hero__meta {
    display:flex;
    flex-wrap:wrap;
    gap:10px 18px;
    font-size:14px;
}

.dsl-service-hero__meta span,
.dsl-service-hero__meta a {
    color:rgba(255,255,255,.94);
    display:inline-flex;
    align-items:center;
    gap:8px;
}

.dsl-service-hero__meta a:hover {
    color:#fff;
}

.dsl-service-nav {
    border-bottom:1px solid var(--dsl-line);
    background:#fff;
}

.dsl-service-nav__inner {
    display:flex;
    align-items:center;
    gap:28px;
    min-height:62px;
    overflow-x:auto;
    scrollbar-width:none;
}

.dsl-service-nav__inner::-webkit-scrollbar {
    display:none;
}

.dsl-service-nav a {
    position:relative;
    min-height:62px;
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
    color:#666;
    font-size:14px;
    font-weight:700;
}

.dsl-service-nav a:hover,
.dsl-service-nav a.active {
    color:#171717;
}

.dsl-service-nav a.active::after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:-1px;
    height:3px;
    background:var(--dsl-accent);
    border-radius:3px 3px 0 0;
}

.dsl-service-layout {
    display:grid;
    grid-template-columns:minmax(0,1fr) 360px;
    gap:34px;
    padding-top:38px;
    padding-bottom:70px;
    align-items:start;
}

.dsl-service-content {
    min-width:0;
}

.dsl-service-sidebar {
    min-width:0;
    position:sticky;
    top:24px;
}

/* v0.5.19: Width parity only. The global .dsl-section padding previously
   inset both service detail cards relative to About and Service features.
   Remove only the details section horizontal inset while retaining the heading
   alignment with headings inside primary cards. Do not touch the sidebar. */
.dunzy-single-service-active .dsl-service-content > #service-details.dsl-section {
    padding-left:0;
    padding-right:0;
}
.dunzy-single-service-active #service-details > .dsl-section__head {
    padding-left:28px;
    padding-right:28px;
}
@media (max-width:560px) {
    .dunzy-single-service-active #service-details > .dsl-section__head {
        padding-left:20px;
        padding-right:20px;
    }
}

/* v0.5.18: Services only. Paired details use equal-width cards within the
   existing content column; the desktop pricing/sidebar grid is unchanged. */
.dunzy-single-service-active #service-details .dsl-service-detail-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:stretch;
    gap:14px;
    width:100%;
    min-width:0;
}
.dunzy-single-service-active #service-details .dsl-service-detail-grid > .dsl-glance-card {
    min-width:0;
    width:100%;
    margin:0;
    box-sizing:border-box;
}
.dunzy-single-service-active #service-details .dsl-service-detail-grid .dsl-glance-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
}
@media (max-width:820px) {
    .dunzy-single-service-active #service-details .dsl-service-detail-grid {
        grid-template-columns:minmax(0,1fr);
        gap:12px;
    }
}

.dsl-service-gallery-section {
    padding-left:0;
    padding-right:0;
}

.dsl-service-feature-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.dsl-service-feature {
    min-height:64px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border:1px solid var(--dsl-line);
    border-radius:13px;
    background:#fff;
}

.dsl-service-feature > span {
    width:32px;
    height:32px;
    flex:0 0 32px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:#f6f6f6;
    color:var(--dsl-accent);
}

.dsl-service-feature strong {
    font-size:14px;
    line-height:1.35;
}

.dsl-service-area-summary {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin-bottom:18px;
}

.dsl-service-area-summary > div {
    display:grid;
    grid-template-columns:38px minmax(0,1fr);
    column-gap:10px;
    row-gap:2px;
    align-items:center;
    padding:15px;
    border:1px solid var(--dsl-line);
    border-radius:13px;
}

.dsl-service-area-summary i {
    grid-row:1 / span 2;
    width:38px;
    height:38px;
    border-radius:11px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f6f6f6;
    color:var(--dsl-accent);
}

.dsl-service-area-summary span {
    color:#8a8a8a;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.05em;
    font-weight:800;
}

.dsl-service-area-summary strong {
    color:#222;
    font-size:13px;
    line-height:1.35;
}

.dsl-service-provider {
    display:grid;
    grid-template-columns:74px minmax(0,1fr);
    gap:16px;
    align-items:start;
}

.dsl-service-provider > img {
    width:74px;
    height:74px;
    border-radius:50%;
    object-fit:cover;
    background:#eee;
}

.dsl-service-provider__name {
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:5px;
}

.dsl-service-provider__name strong {
    font-size:18px;
}

.dsl-service-provider__name span {
    width:20px;
    height:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--dsl-accent);
    color:#fff;
    font-size:10px;
}

.dsl-service-provider__copy p {
    margin:0;
    color:#707070;
    font-size:13px;
    line-height:1.55;
}

.dsl-provider-actions {
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:13px;
}

.dsl-provider-actions a {
    min-height:38px;
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:7px 12px;
    border:1px solid var(--dsl-line);
    border-radius:999px;
    color:#333;
    font-size:12px;
    font-weight:700;
}

.dsl-provider-actions a:hover {
    color:#111;
    border-color:#bbb;
}

.dsl-service-team {
    margin-top:22px;
    padding-top:20px;
    border-top:1px solid var(--dsl-line);
}

.dsl-service-team__label {
    display:block;
    margin-bottom:11px;
    color:#777;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.dsl-service-team__members {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

.dsl-team-member {
    display:flex;
    align-items:center;
    gap:8px;
    padding:7px 10px 7px 7px;
    background:#f7f7f7;
    border-radius:999px;
}

.dsl-team-member img {
    width:30px;
    height:30px;
    border-radius:50%;
    object-fit:cover;
}

.dsl-team-member span {
    font-size:12px;
    font-weight:700;
    color:#333;
}

.dsl-service-request .listeo-contact-form {
    margin:0;
}

.dsl-service-request .listeo-contact-form .row {
    margin-left:-7px;
    margin-right:-7px;
}

.dsl-service-request .listeo-contact-form [class*="col-"] {
    padding-left:7px;
    padding-right:7px;
}

.dsl-service-request .listeo-contact-form input,
.dsl-service-request .listeo-contact-form textarea,
.dsl-service-request .listeo-contact-form select {
    border-radius:11px;
}

.dsl-service-request .listeo-cf-submit {
    border-radius:999px!important;
    min-height:46px;
    font-weight:800!important;
}

.dsl-service-booking-card {
    padding:24px;
    box-shadow:var(--dsl-shadow);
}

.dsl-service-booking-card__head {
    padding-bottom:18px;
    border-bottom:1px solid var(--dsl-line);
}

.dsl-service-price {
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:8px;
    margin-top:8px;
}

.dsl-service-price strong {
    font-size:29px;
    line-height:1.05;
    letter-spacing:-.025em;
}

.dsl-service-price span {
    color:#777;
    font-size:12px;
}

.dsl-service-quickfacts {
    margin-top:2px;
}

.dsl-service-quickfacts > div {
    display:grid;
    grid-template-columns:34px minmax(0,1fr);
    gap:10px;
    padding:15px 0;
    border-bottom:1px solid var(--dsl-line);
}

.dsl-service-quickfacts i {
    grid-row:1 / span 2;
    width:34px;
    height:34px;
    border-radius:10px;
    background:#f6f6f6;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--dsl-accent);
}

.dsl-service-quickfacts span {
    display:block;
    color:#8a8a8a;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.05em;
    font-weight:800;
}

.dsl-service-quickfacts strong {
    display:block;
    color:#222;
    font-size:13px;
    line-height:1.4;
}

.dsl-service-booking-widget {
    padding-top:17px;
}

.dsl-service-booking-widget .widget {
    margin:0!important;
}

.dsl-service-booking-widget .boxed-widget,
.dsl-service-booking-widget .lbp-bpw {
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
}

.dsl-service-booking-widget .booking-widget-title-wrap {
    display:none!important;
}

.dsl-service-booking-widget .lbp-bpw__header {
    padding:0 0 13px!important;
}

.dsl-service-booking-widget .lbp-bpw-btn,
.dsl-service-booking-widget .lbp-book-now-btn,
.dsl-service-booking-widget .button.fullwidth,
.dsl-service-booking-widget button[type="submit"] {
    width:100%;
    min-height:48px!important;
    border-radius:999px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    font-size:14px!important;
    font-weight:800!important;
}

.dsl-service-request-button {
    margin-top:18px;
}

.dsl-service-sidebar-actions {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:16px;
}

.dsl-service-sidebar-actions a,
.dsl-service-sidebar-actions button {
    flex:1 1 auto;
    min-width:92px;
    min-height:40px;
    border:1px solid var(--dsl-line);
    background:#fff;
    color:#333;
    border-radius:999px;
    padding:8px 10px;
    font-size:12px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    cursor:pointer;
}

.dsl-service-sidebar-actions a:hover,
.dsl-service-sidebar-actions button:hover {
    border-color:#bbb;
    color:#111;
}

.dsl-service-related-card .dsl-related-card__body > span {
    text-transform:none;
    letter-spacing:0;
    font-size:12px;
}

@media (max-width:1050px) {
    .dsl-service-layout {
        grid-template-columns:minmax(0,1fr) 320px;
        gap:24px;
    }
}

@media (max-width:820px) {
    .dsl-service-hero {
        min-height:390px;
    }

    .dsl-service-hero__inner {
        padding-bottom:28px;
    }

    .dsl-service-hero__top {
        top:-300px;
    }

    .dsl-service-hero h1 {
        font-size:35px;
        margin-bottom:10px;
    }

    .dsl-service-hero__meta {
        font-size:13px;
        gap:7px 12px;
    }

    .dsl-service-layout {
        grid-template-columns:1fr;
        padding-top:24px;
        gap:0;
    }

    .dsl-service-sidebar {
        position:static;
        order:-1;
        margin-bottom:24px;
    }

    .dsl-service-content {
        order:2;
    }

    .dsl-service-booking-card {
        box-shadow:none;
    }
}

@media (max-width:560px) {
    .dsl-service-hero {
        min-height:360px;
    }

    .dsl-service-hero__top {
        top:-276px;
    }

    .dsl-service-hero h1 {
        font-size:31px;
    }

    .dsl-service-hero__meta {
        flex-direction:column;
        align-items:flex-start;
        gap:6px;
    }

    .dsl-service-nav__inner {
        gap:22px;
    }

    .dsl-service-feature-grid,
    .dsl-service-area-summary {
        grid-template-columns:1fr;
    }

    .dsl-service-provider {
        grid-template-columns:58px minmax(0,1fr);
    }

    .dsl-service-provider > img {
        width:58px;
        height:58px;
    }

    .dsl-provider-actions {
        grid-column:1 / -1;
    }

    .dsl-service-booking-card {
        padding:20px;
        border-radius:15px;
    }
}

/* v0.5.25 — Services hours: scoped and display-only. */
.dsl-service-hours__disclosure{border:1px solid #e9e9e9;border-radius:14px;overflow:hidden;background:#fff}
.dsl-service-hours__disclosure summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;font-weight:600;list-style:none}
.dsl-service-hours__disclosure summary::-webkit-details-marker{display:none}
.dsl-service-hours__disclosure summary i{font-size:13px;transition:transform .18s ease}
.dsl-service-hours__disclosure[open] summary i{transform:rotate(180deg)}
.dsl-service-hours__rows{padding:0 18px 8px;border-top:1px solid #f1f1f1}
.dsl-service-hours__row{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid #f2f2f2;font-size:14px}
.dsl-service-hours__row:last-child{border-bottom:0}
.dsl-service-hours__row strong{text-align:right;font-weight:600}
.dsl-service-hours__row strong.is-closed{color:#777}
@media(max-width:480px){.dsl-service-hours__row{font-size:13px}.dsl-service-hours__disclosure summary{padding:14px}}

/* v0.5.29: Services FAQ only. Ensure theme-wide details rules cannot conceal
   answers when their native disclosure is expanded. */
.dunzy-single-service-active #service-faq .dsl-service-faq__item[open] > .dsl-service-faq__answer {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    max-height: none !important;
    padding: 8px 0 12px;
    white-space: normal;
}

/* v0.5.30: Services FAQ only — visible native disclosure affordance.
   Keep the FAQ card, question typography and browser-native details behavior. */
.dunzy-single-service-active #service-faq .dsl-service-faq__item > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    cursor: pointer;
    list-style: none;
}
.dunzy-single-service-active #service-faq .dsl-service-faq__item > summary::-webkit-details-marker { display: none; }
.dunzy-single-service-active #service-faq .dsl-service-faq__question { min-width: 0; }
.dunzy-single-service-active #service-faq .dsl-service-faq__indicator {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    border: 1px solid #e5e5e5;
    border-radius: 50%;
    color: #333;
    font-size: 19px;
    line-height: 1;
    font-weight: 400;
}
.dunzy-single-service-active #service-faq .dsl-service-faq__minus { display: none; }
.dunzy-single-service-active #service-faq .dsl-service-faq__item[open] .dsl-service-faq__plus { display: none; }
.dunzy-single-service-active #service-faq .dsl-service-faq__item[open] .dsl-service-faq__minus { display: inline; }
.dunzy-single-service-active #service-faq .dsl-service-faq__item > summary:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
    border-radius: 3px;
}

/* Stage P3: Services mandatory booking-fee disclosure; existing card geometry retained. */
.dsl-service-fee-disclosure { margin-top:14px; font-size:12px; line-height:1.5; }
.dsl-service-fee-disclosure__row { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
.dsl-service-fee-disclosure__row span { min-width:0; overflow-wrap:anywhere; }
.dsl-service-fee-disclosure__row strong { white-space:nowrap; font-size:13px; }
.dsl-service-fee-disclosure__row small { font-size:11px; color:#777; }
.dsl-service-fee-disclosure p { margin:7px 0 0; font-size:11px; color:#777; }
