/* =============================================================
   AskPerTask Detail Pages — apt-detail-pages.css

   Scope:
   • body.hp-template--listing-view-page  — /service/{slug}/
   • body.hp-template--request-view-page  — /request/{slug}/

   Loaded only on these two routes via APT_Detail_Pages.
   All selectors are scoped to the two body classes to prevent
   bleed to any other HivePress page.

   DOM structure (both pages):
     body.hp-template--{page}
       .content-area
         .hp-page.site-main
           .hp-row.hp-listing.hp-listing--view-page     ← page_columns
             .hp-page__content.hp-col-sm-8.hp-col-xs-12 ← main content
             aside.hp-page__sidebar.hp-col-sm-4 [sticky] ← right sidebar
   ============================================================= */

/* ---- Design tokens ---- */
:root {
  --apt-dp-green:        #1FA34A;
  --apt-dp-green-dark:   #168238;
  --apt-dp-green-light:  #EAF7EE;
  --apt-dp-blue:         #2D6CDF;
  --apt-dp-blue-light:   #EAF1FD;
  --apt-dp-text:         #1A1A1A;
  --apt-dp-muted:        #6B7280;
  --apt-dp-muted-light:  #9CA3AF;
  --apt-dp-border:       #E5E7EB;
  --apt-dp-bg:           #F4F5F7;
  --apt-dp-white:        #FFFFFF;
  --apt-dp-radius:       12px;
  --apt-dp-radius-lg:    16px;
  --apt-dp-shadow:       0 2px 12px rgba(16, 24, 40, 0.07);
}

/* ============================================================
   PAGE BACKGROUND
   ============================================================ */

body.hp-template--listing-view-page,
body.hp-template--request-view-page {
  background-color: var(--apt-dp-bg);
}

/* Mobile horizontal-overflow safety net (SERVICES-UX-1A QA, extended to
   Request pages in REQ-FLOW-1H — same .hp-row negative-margin bleed,
   confirmed via REQ-FLOW-1F-BROWSER-QA on the untouched request-view page). */
body.hp-template--listing-view-page,
body.hp-template--request-view-page {
  overflow-x: hidden;
}

/* ExpertHive content-area wrapper */
body.hp-template--listing-view-page .content-area,
body.hp-template--request-view-page .content-area {
  background-color: var(--apt-dp-bg);
}

/* hp-page.site-main — add vertical rhythm */
body.hp-template--listing-view-page .hp-page,
body.hp-template--request-view-page .hp-page {
  background-color: transparent;
  padding-top: 32px;
  padding-bottom: 64px;
}

/* Hide breadcrumb — clutters the detail header */
body.hp-template--listing-view-page .hp-menu--breadcrumb,
body.hp-template--request-view-page .hp-menu--breadcrumb {
  display: none;
}

/* ============================================================
   MAIN CONTENT COLUMN — white card
   ============================================================ */

body.hp-template--listing-view-page .hp-page__content,
body.hp-template--request-view-page .hp-page__content {
  background: var(--apt-dp-white);
  border-radius: var(--apt-dp-radius-lg);
  border: 1px solid var(--apt-dp-border);
  box-shadow: var(--apt-dp-shadow);
  padding: 32px 36px;
  box-sizing: border-box;
}

/* ============================================================
   PAGE TOPBAR (manage / edit menu for listing owner)
   ============================================================ */

body.hp-template--listing-view-page .hp-page__topbar,
body.hp-template--request-view-page .hp-page__topbar {
  padding-bottom: 16px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--apt-dp-border);
}

/* ============================================================
   TITLE — remove oversized dot-matrix decoration, compact
   ============================================================ */

/* Remove the default dot-matrix ::before decoration */
body.hp-template--listing-view-page .hp-listing--view-page .hp-listing__title::before,
body.hp-template--request-view-page .hp-listing--view-page .hp-listing__title::before {
  display: none !important;
}

/* Compact h1 */
body.hp-template--listing-view-page .hp-listing--view-page .hp-listing__title,
body.hp-template--request-view-page .hp-listing--view-page .hp-listing__title {
  padding-top: 0 !important;
  font-size: 1.625rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  line-height: 1.25;
  margin-bottom: 10px;
}

/* Verified checkmark beside the service title — hidden. This is HivePress's
   native per-listing "verified" checkbox, a manual admin toggle unconnected to
   APT's real verification system, so showing it reads as a fake trust signal.
   APT verification (when present) renders on the provider panel via
   apt_get_actor_verification_summary(), never here. Services scope only —
   Requests do not carry this HivePress field. */
body.hp-template--listing-view-page .hp-listing--view-page .hp-listing__verified-badge {
  display: none;
}

/* Type badge injected by apt-detail-pages.js */
.apt-dp-type-badge {
  display: inline-block;
  font-size: 0.6875rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 999px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.apt-dp-type-badge--request {
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
}

.apt-dp-type-badge--listing {
  background: var(--apt-dp-green-light);
  color: var(--apt-dp-green);
}

/* ============================================================
   DETAILS ROW (category link · date)
   ============================================================ */

body.hp-template--listing-view-page .hp-listing__details--primary,
body.hp-template--request-view-page .hp-listing__details--primary {
  margin-bottom: 20px !important;
}

body.hp-template--listing-view-page .hp-listing__details--primary > *,
body.hp-template--request-view-page .hp-listing__details--primary > * {
  font-size: 0.875rem !important;
  color: var(--apt-dp-muted) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

body.hp-template--listing-view-page .hp-listing__details--primary > *::after,
body.hp-template--request-view-page .hp-listing__details--primary > *::after {
  background-color: var(--apt-dp-border) !important;
}

body.hp-template--listing-view-page .hp-listing__details--primary a,
body.hp-template--request-view-page .hp-listing__details--primary a {
  color: var(--apt-dp-muted) !important;
  transition: color 0.15s;
}

body.hp-template--listing-view-page .hp-listing__details--primary a:hover,
body.hp-template--request-view-page .hp-listing__details--primary a:hover {
  color: var(--apt-dp-blue) !important;
}

/* Rating stars (reviews plugin) */
body.hp-template--listing-view-page .hp-listing__rating,
body.hp-template--request-view-page .hp-listing__rating {
  margin-bottom: 16px;
}

/* Location (geolocation plugin) */
body.hp-template--listing-view-page .hp-listing__location,
body.hp-template--request-view-page .hp-listing__location {
  font-size: 0.875rem;
  color: var(--apt-dp-muted);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 6px;
}

body.hp-template--listing-view-page .hp-listing__location a,
body.hp-template--request-view-page .hp-listing__location a {
  color: var(--apt-dp-muted);
  text-decoration: none;
}

body.hp-template--listing-view-page .hp-listing__location a:hover,
body.hp-template--request-view-page .hp-listing__location a:hover {
  color: var(--apt-dp-blue);
}

/* ============================================================
   IMAGE GALLERY
   ============================================================ */

body.hp-template--listing-view-page .hp-listing__images,
body.hp-template--request-view-page .hp-listing__images {
  border-radius: var(--apt-dp-radius);
  overflow: hidden;
  margin-bottom: 28px;
}

/* Cap the main slider height — prevents giant images dominating */
body.hp-template--listing-view-page .hp-listing__images > img,
body.hp-template--listing-view-page .hp-listing__images-slider,
body.hp-template--request-view-page .hp-listing__images > img,
body.hp-template--request-view-page .hp-listing__images-slider {
  max-height: 440px;
  width: 100%;
  object-fit: cover;
  border-radius: var(--apt-dp-radius) !important;
}

/* All images in the gallery */
body.hp-template--listing-view-page .hp-listing__images img,
body.hp-template--request-view-page .hp-listing__images img {
  max-height: 440px;
  object-fit: cover;
}

/* Carousel thumbnail strip */
body.hp-template--listing-view-page .hp-listing__images-carousel .slick-slide img,
body.hp-template--request-view-page .hp-listing__images-carousel .slick-slide img {
  max-height: 80px;
  object-fit: cover;
  border-radius: 6px !important;
  border: 2px solid transparent !important;
  opacity: 0.7;
  transition: border-color 0.2s, opacity 0.2s;
}

body.hp-template--listing-view-page .hp-listing__images-carousel .slick-current img,
body.hp-template--request-view-page .hp-listing__images-carousel .slick-current img {
  border-color: var(--apt-dp-green) !important;
  opacity: 1;
}

/* Carousel arrow buttons */
body.hp-template--listing-view-page .hp-listing__images-carousel .slick-arrow,
body.hp-template--request-view-page .hp-listing__images-carousel .slick-arrow {
  color: var(--apt-dp-muted);
}

body.hp-template--listing-view-page .hp-listing__images-carousel .slick-arrow:hover,
body.hp-template--request-view-page .hp-listing__images-carousel .slick-arrow:hover {
  color: var(--apt-dp-green);
}

/* ============================================================
   DESCRIPTION
   ============================================================ */

body.hp-template--listing-view-page .hp-listing__description,
body.hp-template--request-view-page .hp-listing__description {
  font-size: 0.9375rem;
  line-height: 1.7;
  color: var(--apt-dp-text);
  margin-top: 0;
}

/*
 * Section heading:
 *   request pages — server-rendered by PHP (inject_description_heading, R-2B.2)
 *   service pages — JS-injected by apt-detail-pages.js
 */
.apt-dp-section-heading {
  display: block;
  font-size: 1rem;
  font-weight: 600;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin: 32px 0 10px;
  padding-top: 28px;
  border-top: 1px solid var(--apt-dp-border);
}

/* Description text that follows the heading */
body.hp-template--request-view-page .apt-dp-section-heading + .hp-listing__description,
body.hp-template--listing-view-page .apt-dp-section-heading + .hp-listing__description {
  margin-top: 0;
}

/* ============================================================
   ATTRIBUTES — secondary (shown in content area body)
   ============================================================ */

body.hp-template--listing-view-page .hp-listing__attributes--secondary,
body.hp-template--request-view-page .hp-listing__attributes--secondary {
  border: 1px solid var(--apt-dp-border);
  border-radius: var(--apt-dp-radius);
  padding: 16px 20px;
  margin-bottom: 24px;
  background: #FAFAFA;
}

body.hp-template--listing-view-page .hp-listing__attributes--secondary .hp-listing__attribute,
body.hp-template--request-view-page .hp-listing__attributes--secondary .hp-listing__attribute {
  font-size: 0.9rem;
  padding: 8px 0;
}

/* De-emphasize Availability / Warranty — older HivePress attributes that read as
   noise alongside location on the detail page. Kept (not removed), just visually
   subordinate. Services scope only — no Requests fields affected. */
body.hp-template--listing-view-page .hp-listing__attributes--secondary .hp-listing__attribute--availability,
body.hp-template--listing-view-page .hp-listing__attributes--secondary .hp-listing__attribute--warranty {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted-light);
}

/* ============================================================
   OFFERS SECTION (request page)
   ============================================================ */

body.hp-template--request-view-page .hp-section__title {
  font-size: 1.0625rem !important;
  font-weight: 700;
  color: var(--apt-dp-text);
  padding-top: 24px;
  padding-bottom: 16px;
  border-top: 1px solid var(--apt-dp-border);
  margin-top: 24px;
}

/* ============================================================
   SIDEBAR — spacing wrapper
   ============================================================ */

body.hp-template--listing-view-page .hp-page__sidebar,
body.hp-template--request-view-page .hp-page__sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
  /* Align top when sticky */
  align-self: flex-start;
}

/* De-emphasize the sidebar map (SERVICES-UX-1A, issue #11). HivePress's native
   geolocation map — precise coordinates, unlike the masked/approximate map on
   Request pages — otherwise sits between the primary CTA and the provider
   panel, interrupting the conversion flow. Pushed to the end of the sidebar
   (flex order only — DOM position and its data are untouched) so the CTA and
   provider trust info read together first. Coordinate masking is a separate,
   larger change; flagged in the SERVICES-UX-1A report, not done here.

   The sidebar's actual widget stack lives one level deeper, inside the sticky
   component's own wrapper (.inner-wrapper-sticky) — that's the real flex
   container `order` needs to apply to. Scoped to listing-view-page only, so
   Request pages' sticky wrapper (block layout) is untouched. */
body.hp-template--listing-view-page .hp-page__sidebar .inner-wrapper-sticky {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

body.hp-template--listing-view-page .hp-page__sidebar .hp-listing__map {
  order: 100;
  border-radius: var(--apt-dp-radius) !important;
  overflow: hidden;
  opacity: 0.9;
}

/* ============================================================
   SIDEBAR — attributes primary (price / budget card)
   ============================================================ */

body.hp-template--request-view-page .hp-listing__attributes--primary {
  background: var(--apt-dp-white) !important;
  border-radius: 14px !important;
  border: 1px solid var(--apt-dp-border) !important;
  box-shadow: var(--apt-dp-shadow) !important;
  padding: 20px 24px !important;
  margin-bottom: 0 !important;
}

/* SVC-SINGLE-3A — top section of the merged conversion sidebar panel
   (price/quote). Square bottom corners so it abuts the actions card
   directly below with no visual seam gap. */
body.hp-template--listing-view-page .hp-listing__attributes--primary {
  background: var(--apt-dp-white) !important;
  border-radius: 14px 14px 0 0 !important;
  border: 1px solid var(--apt-dp-border) !important;
  box-shadow: var(--apt-dp-shadow) !important;
  padding: 20px 24px !important;
  margin-bottom: 0 !important;
}

/* Remove the existing teal left-stripe ::before */
body.hp-template--listing-view-page .hp-listing__attributes--primary::before,
body.hp-template--request-view-page .hp-listing__attributes--primary::before {
  display: none !important;
}

/* Attribute values — price/budget shown large */
body.hp-template--listing-view-page .hp-listing__attributes--primary .hp-listing__attribute,
body.hp-template--request-view-page .hp-listing__attributes--primary .hp-listing__attribute {
  color: var(--apt-dp-text) !important;
  font-size: 1.25rem !important;
  font-weight: 700 !important;
  padding: 0 !important;
  background: transparent !important;
}

body.hp-template--listing-view-page .hp-listing__attributes--primary .hp-listing__attribute:not(:last-child),
body.hp-template--request-view-page .hp-listing__attributes--primary .hp-listing__attribute:not(:last-child) {
  border-bottom: 1px solid var(--apt-dp-border) !important;
  margin-bottom: 8px !important;
  padding-bottom: 8px !important;
}

/* ============================================================
   SIDEBAR — actions card (CTAs + report)
   ============================================================ */

body.hp-template--request-view-page .hp-listing__actions--primary {
  background: var(--apt-dp-white) !important;
  border-radius: 14px !important;
  border: 1px solid var(--apt-dp-border) !important;
  box-shadow: var(--apt-dp-shadow) !important;
  padding: 20px 24px !important;
  margin-bottom: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

/* SVC-SINGLE-3A — middle section of the merged conversion sidebar panel
   (CTAs). Square corners and no own shadow keep it visually subordinate
   to the price card above and provider panel below; the negative
   margin-top cancels the sidebar's flex gap so the three sections abut
   with a single 1px border line, reading as one panel rather than three
   stacked boxes. */
body.hp-template--listing-view-page .hp-listing__actions--primary {
  background: var(--apt-dp-white) !important;
  border-radius: 0 !important;
  border: 1px solid var(--apt-dp-border) !important;
  box-shadow: none !important;
  padding: 20px 24px !important;
  margin: -16px 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
}

/* PRIMARY ACTION BUTTONS — green */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--offer.button,
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--offer,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--offer.button,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--offer {
  display: block !important;
  width: 100% !important;
  height: 52px !important;
  background: var(--apt-dp-green) !important;
  color: var(--apt-dp-white) !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  text-align: center !important;
  line-height: 52px !important;
  padding: 0 16px !important;
  transition: background 0.2s ease !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--offer:hover,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--offer:hover {
  background: var(--apt-dp-green-dark) !important;
  color: var(--apt-dp-white) !important;
}

/* Buy Now submit button (WooCommerce form, from marketplace plugin) */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-form__button,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-form__button {
  display: block !important;
  width: 100% !important;
  height: 52px !important;
  background: var(--apt-dp-green) !important;
  color: var(--apt-dp-white) !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  line-height: 52px !important;
  padding: 0 !important;
  transition: background 0.2s ease !important;
  box-shadow: none !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-form__button:hover,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-form__button:hover {
  background: var(--apt-dp-green-dark) !important;
}

/* SECONDARY ACTION BUTTON — message / send message (blue) */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--message,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--message {
  display: block !important;
  width: 100% !important;
  height: 48px !important;
  background: transparent !important;
  color: var(--apt-dp-blue) !important;
  border: 1.5px solid var(--apt-dp-blue) !important;
  border-radius: 8px !important;
  font-size: 0.9375rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  text-align: center !important;
  line-height: 45px !important;
  padding: 0 16px !important;
  transition: background 0.15s, color 0.15s !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--message:hover,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--message:hover {
  background: var(--apt-dp-blue-light) !important;
}

/* ============================================================
   MESSAGE PROVIDER MODAL — CSS-only polish
   Scoped to body.hp-template--listing-view-page only (single Service
   page, not the Request page, which shares this file's other rules).

   Markup: HivePress's generic Blocks\Modal always renders
   id="message_send_modal_<listing id>" (id isn't static, hence the
   attribute selector) with a .hp-modal__title, and the form always
   carries .hp-form--message-send (HivePress derives hp-form--{slug}
   from the Message_Send form class). One field ("Message", a required
   textarea) plus the theme-default-yellow .button-primary submit —
   same problem/fix already applied to this same modal on the Experts
   (vendor) page (apt-experts-list.css, "SEND MESSAGE MODAL" section)
   and on the Services archive cards (apt-services.css,
   .apt-message-modal) — mirrored here for the one remaining surface.
   Nothing about the recipient/listing hidden fields, validation, or
   submit action is touched — only visual presentation.

   Popup chrome is Fancybox v3 (jquery.fancybox, HivePress's bundled
   lightbox): it wraps .hp-modal in .fancybox-content and appends its
   own close button (.fancybox-close-small) as that wrapper's other
   child (sibling of .hp-modal, confirmed in fancybox's source —
   `smallBtn` is appended to `slide.$content`). :has() is used to scope
   the close-button restyle to only this modal's popup instance, so it
   never touches Fancybox's other use on this page (photo zoom).
   ============================================================ */

body.hp-template--listing-view-page .hp-modal[id^="message_send_modal_"] {
  width: 440px;
  max-width: calc(100vw - 40px);
  border-radius: var(--apt-dp-radius);
  box-shadow: 0 12px 40px rgba(16, 24, 40, 0.18);
  box-sizing: border-box;
}

body.hp-template--listing-view-page .hp-modal[id^="message_send_modal_"] .hp-modal__title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  margin: 0 0 6px;
}

/* Supporting text beneath the title, clarifying who the message reaches */
body.hp-template--listing-view-page .hp-modal[id^="message_send_modal_"] .hp-modal__title::after {
  content: "Send a direct message about this service.";
  display: block;
  margin-top: 6px;
  font-size: 0.8125rem;
  font-weight: 400;
  color: var(--apt-dp-muted);
  line-height: 1.4;
}

body.hp-template--listing-view-page .hp-form--message-send {
  margin: 16px 0 0 !important;
}

body.hp-template--listing-view-page .hp-form--message-send .hp-form__fields {
  padding: 0 !important;
}

body.hp-template--listing-view-page .hp-form--message-send .hp-field__label {
  font-size: 0.625rem !important;
  font-weight: 700 !important;
  color: var(--apt-dp-muted) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  margin-bottom: 8px !important;
}

body.hp-template--listing-view-page .hp-form--message-send .hp-field--textarea {
  border: 1px solid var(--apt-dp-border) !important;
  border-radius: 8px !important;
  background: #F9FAFB !important;
  font-size: 0.875rem !important;
  color: var(--apt-dp-text) !important;
  padding: 12px 14px !important;
  min-height: 120px !important;
  box-sizing: border-box;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.hp-template--listing-view-page .hp-form--message-send .hp-field--textarea:focus {
  outline: none !important;
  border-color: var(--apt-dp-blue) !important;
  background: var(--apt-dp-white) !important;
  box-shadow: 0 0 0 3px var(--apt-dp-blue-light) !important;
}

/* Attachment field's "Select File" trigger — same quiet-neutral treatment
   as the textarea, so it doesn't read as an unstyled legacy control next
   to it. Upload behavior/JS untouched. */
body.hp-template--listing-view-page .hp-form--message-send .hp-field--button {
  border: 1px solid var(--apt-dp-border) !important;
  border-radius: 8px !important;
  background: #F9FAFB !important;
  color: var(--apt-dp-text) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  padding: 9px 16px !important;
  box-shadow: none !important;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

body.hp-template--listing-view-page .hp-form--message-send .hp-field--button:hover {
  border-color: var(--apt-dp-blue) !important;
  background: var(--apt-dp-white) !important;
}

body.hp-template--listing-view-page .hp-form--message-send .hp-form__footer {
  padding: 18px 0 0 !important;
  margin-top: 16px !important;
  border-top: 1px solid var(--apt-dp-border) !important;
}

/* Theme applies an inline box-shadow (matching its default yellow
   .button-primary.alt) directly on the element — confirmed via the
   same mechanism already documented for this modal on the Experts and
   Services-archive pages; !important is scoped narrowly to this one
   button only. */
body.hp-template--listing-view-page .hp-form--message-send .hp-form__button.button-primary {
  width: 100% !important;
  height: 44px !important;
  border-radius: 8px !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  background: var(--apt-dp-blue) !important;
  border-color: var(--apt-dp-blue) !important;
  color: var(--apt-dp-white) !important;
  box-shadow: none !important;
  transition: background-color 0.15s ease;
}

body.hp-template--listing-view-page .hp-form--message-send .hp-form__button.button-primary:hover {
  background: #2459BE !important;
  border-color: #2459BE !important;
  box-shadow: none !important;
}

/* Close button — Fancybox default is a small dark circle sitting flush
   against the corner; this gives it a lighter, modal-native look that
   matches the rest of the V2 UI, scoped to only this modal's popup. */
body.hp-template--listing-view-page .fancybox-content:has(> .hp-modal[id^="message_send_modal_"]) .fancybox-close-small {
  top: 12px !important;
  right: 12px !important;
  width: 32px !important;
  height: 32px !important;
  padding: 0 !important;
  background: var(--apt-dp-white) !important;
  border-radius: 50% !important;
  box-shadow: 0 1px 4px rgba(16, 24, 40, 0.12) !important;
  opacity: 1 !important;
  transition: background-color 0.15s ease;
}

body.hp-template--listing-view-page .fancybox-content:has(> .hp-modal[id^="message_send_modal_"]) .fancybox-close-small svg {
  color: var(--apt-dp-muted) !important;
  stroke: var(--apt-dp-muted) !important;
}

body.hp-template--listing-view-page .fancybox-content:has(> .hp-modal[id^="message_send_modal_"]) .fancybox-close-small:hover {
  background: var(--apt-dp-bg) !important;
}

body.hp-template--listing-view-page .fancybox-content:has(> .hp-modal[id^="message_send_modal_"]) .fancybox-close-small:hover svg {
  color: var(--apt-dp-text) !important;
  stroke: var(--apt-dp-text) !important;
}

/* Fancybox's own theme-level .fancybox-content{padding:2.5rem} (40px) is
   generous at narrow widths — reduced here rather than adding a second
   padding on .hp-modal itself, which would stack on top of it. */
@media (max-width: 480px) {
  body.hp-template--listing-view-page .hp-modal[id^="message_send_modal_"] {
    width: calc(100vw - 24px);
  }

  body.hp-template--listing-view-page .fancybox-content:has(> .hp-modal[id^="message_send_modal_"]) {
    padding: 20px !important;
  }
}

/* Narrow form wrapper (Buy Now) */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-form--narrow,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-form--narrow {
  width: 100% !important;
  margin: 0 !important;
  max-width: none !important;
}

/* REPORT / DELETE links — quiet text action */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--report,
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--delete,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--report,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--delete {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  background: transparent !important;
  color: var(--apt-dp-muted) !important;
  border: none !important;
  font-size: 0.8125rem !important;
  font-weight: 400 !important;
  height: auto !important;
  line-height: 1.5 !important;
  padding: 4px 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
  width: 100% !important;
  text-align: center !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--report:hover,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--report:hover {
  color: #B91C1C !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--delete:hover,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--delete:hover {
  color: #B91C1C !important;
}

/* Review link (write a review) */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--review,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--review {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  background: transparent !important;
  color: var(--apt-dp-muted) !important;
  border: none !important;
  font-size: 0.8125rem !important;
  height: auto !important;
  line-height: 1.5 !important;
  padding: 4px 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  width: 100% !important;
  text-align: center !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--review:hover,
body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--review:hover {
  color: var(--apt-dp-blue) !important;
}

/* Safety note injected by JS */
.apt-dp-safety-note {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  text-align: center;
  padding-top: 4px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.5;
  justify-content: center;
}

.apt-dp-safety-note .hp-icon {
  color: var(--apt-dp-green);
  flex-shrink: 0;
  margin-top: 2px;
}

/* ============================================================
   SIDEBAR — vendor / user profile card
   Both user_view_block and vendor_view_block render
   .hp-vendor.hp-vendor--view-block as the container.
   ============================================================ */

body.hp-template--listing-view-page .hp-vendor--view-block,
body.hp-template--request-view-page .hp-vendor--view-block {
  background: var(--apt-dp-white) !important;
  border-radius: 14px !important;
  border: 1px solid var(--apt-dp-border) !important;
  box-shadow: var(--apt-dp-shadow) !important;
  padding: 20px 24px !important;
  margin-bottom: 0 !important;
}

/* Header (avatar) */
body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__header,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__header {
  margin-bottom: 12px;
}

/* Avatar images (vendor photo or WordPress get_avatar) */
body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__image img,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__image img,
body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__image .avatar,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__image .avatar {
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 2px solid var(--apt-dp-border) !important;
}

/* Name heading */
body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__name,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__name {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--apt-dp-text) !important;
  margin-bottom: 4px !important;
}

body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__name a,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__name a {
  color: var(--apt-dp-text) !important;
  text-decoration: none !important;
}

body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__name a:hover,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__name a:hover {
  color: var(--apt-dp-blue) !important;
}

/* "Member since" registered date */
body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__registered-date,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__registered-date {
  font-size: 0.8125rem !important;
  color: var(--apt-dp-muted) !important;
  display: block !important;
}

/* Verified badge */
body.hp-template--listing-view-page .hp-vendor--view-block .hp-badge--verified,
body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__verified-badge,
body.hp-template--request-view-page .hp-vendor--view-block .hp-badge--verified,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__verified-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-size: 0.75rem !important;
  color: var(--apt-dp-green) !important;
  font-weight: 600 !important;
  margin-top: 4px !important;
}

/* Footer actions (view profile button) */
body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__footer,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__footer {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__actions--primary .button,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__actions--primary .button {
  display: block !important;
  width: 100% !important;
  height: 36px !important;
  background: transparent !important;
  color: var(--apt-dp-blue) !important;
  border: 1.5px solid var(--apt-dp-border) !important;
  border-radius: 8px !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  line-height: 33px !important;
  text-align: center !important;
  box-shadow: none !important;
  transition: border-color 0.15s, background 0.15s !important;
  text-decoration: none !important;
}

body.hp-template--listing-view-page .hp-vendor--view-block .hp-vendor__actions--primary .button:hover,
body.hp-template--request-view-page .hp-vendor--view-block .hp-vendor__actions--primary .button:hover {
  border-color: var(--apt-dp-blue) !important;
  background: var(--apt-dp-blue-light) !important;
}

/* Hide native HP vendor card on request pages — replaced by .apt-rp */
body.hp-template--request-view-page .hp-vendor--view-block {
  display: none !important;
}

/* ============================================================
   RELATED LISTINGS section (page footer)
   ============================================================ */

body.hp-template--listing-view-page .hp-page__footer,
body.hp-template--request-view-page .hp-page__footer {
  margin-top: 48px;
}

body.hp-template--listing-view-page .hp-page__footer .hp-section__title,
body.hp-template--request-view-page .hp-page__footer .hp-section__title {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  margin-bottom: 24px;
}

/* ============================================================
   REQUEST BADGE PILLS
   Injected by APT_Detail_Pages::inject_request_badges().
   Only rendered when hp_request_project_badges terms exist.
   ============================================================ */

body.hp-template--request-view-page .apt-request-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-request-badge {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  line-height: 1.5;
}

/* ============================================================
   REQUEST SUMMARY ROW  (R-2B.4)
   Injected by APT_Detail_Pages::inject_request_summary().
   Chip row placed at _order 15, between the title and images.
   The .hp-listing__details--primary row (HivePress default, _order 20)
   carries the same data and is suppressed here to avoid duplication.
   ============================================================ */

/* Suppress the default HivePress details row — same data now lives in chips. */
body.hp-template--request-view-page .hp-listing__details--primary {
  display: none !important;
}

body.hp-template--request-view-page .apt-req-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}

body.hp-template--request-view-page .apt-req-summary__chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}

/* QUICK-TASK-SINGLE-1A: request type chip. Reuses the same --apt-dp-blue /
   --apt-dp-green tokens as .apt-dp-type-badge above (and the identical
   values used for the /requests/ list badge's --apt-rl-blue / --apt-rl-green)
   so the single page stays visually consistent with both, without
   introducing any new colours. */
body.hp-template--request-view-page .apt-req-summary__chip--quick-task {
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
}

body.hp-template--request-view-page .apt-req-summary__chip--service-request {
  background: var(--apt-dp-green-light);
  color: var(--apt-dp-green);
}

/* PWA-FIX-06: a live Featured campaign only — the map's gold "Featured" treatment (.apt-mpc__featured). */
body.hp-template--request-view-page .apt-req-summary__chip--featured {
  background: #FFF3D6;
  color: #8A5A00;
  border: 1px solid #F5D98C;
  font-weight: 700;
}

body.hp-template--request-view-page .apt-req-summary__chip--category {
  background: var(--apt-dp-green-light);
  color: var(--apt-dp-green-dark);
}

body.hp-template--request-view-page .apt-req-summary__chip--location {
  background: var(--apt-dp-bg);
  color: var(--apt-dp-muted);
  border: 1px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-req-summary__chip--location .hp-icon {
  font-size: 0.6875rem;
}

body.hp-template--request-view-page .apt-req-summary__chip--date {
  background: var(--apt-dp-bg);
  color: var(--apt-dp-muted);
  border: 1px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-req-summary__chip--timing {
  background: #FFF7ED;
  color: #C2410C;
  border: 1px solid #FED7AA;
}

body.hp-template--request-view-page .apt-req-summary__chip--timing .hp-icon {
  font-size: 0.6875rem;
}

/* ============================================================
   TRUST & SAFETY SIDEBAR PANEL  (R-2B.3)
   Injected by APT_Detail_Pages::inject_safety_panel().
   Only rendered on request view pages.
   ============================================================ */

body.hp-template--request-view-page .apt-safety-panel {
  background: var(--apt-dp-white);
  border-radius: 14px;
  border: 1px solid var(--apt-dp-border);
  box-shadow: var(--apt-dp-shadow);
  padding: 18px 20px;
  margin-bottom: 0;
}

body.hp-template--request-view-page .apt-safety-panel__title {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 8px;
}

body.hp-template--request-view-page .apt-safety-panel__body {
  font-size: 0.8125rem;
  line-height: 1.55;
  color: var(--apt-dp-muted);
  margin: 0 0 10px;
}

body.hp-template--request-view-page .apt-safety-panel__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

body.hp-template--request-view-page .apt-safety-panel__list li {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  line-height: 1.45;
  padding-left: 16px;
  position: relative;
}

body.hp-template--request-view-page .apt-safety-panel__list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--apt-dp-green);
  font-weight: 700;
  font-size: 0.75rem;
}

/* APT-SAFETY-REPORT-1C: report link appended below the list above. */
body.hp-template--request-view-page .apt-safety-panel__report-link {
  display: inline-block;
  margin-top: 10px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--apt-dp-muted);
  text-decoration: none;
}

body.hp-template--request-view-page .apt-safety-panel__report-link:hover,
body.hp-template--request-view-page .apt-safety-panel__report-link:focus {
  color: var(--apt-dp-text);
  text-decoration: underline;
}

/* ============================================================
   REQUESTER PROFILE CARD  (R-2C.1)
   Injected by APT_Detail_Pages::inject_requester_profile().
   Only rendered on request view pages at sidebar _order 30.
   ============================================================ */

body.hp-template--request-view-page .apt-rp {
  background: var(--apt-dp-white);
  border: 1px solid var(--apt-dp-border);
  border-radius: 14px;
  box-shadow: var(--apt-dp-shadow);
  padding: 20px 24px;
}

body.hp-template--request-view-page .apt-rp__header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 16px;
}

body.hp-template--request-view-page .apt-rp__avatar {
  flex-shrink: 0;
}

body.hp-template--request-view-page .apt-rp__avatar-img,
body.hp-template--request-view-page .apt-rp__avatar img {
  width: 56px !important;
  height: 56px !important;
  border-radius: 50% !important;
  object-fit: cover;
  display: block;
  border: 2px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-rp__identity {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding-top: 2px;
}

body.hp-template--request-view-page .apt-rp__name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  line-height: 1.3;
}

body.hp-template--request-view-page .apt-rp__location,
body.hp-template--request-view-page .apt-rp__bio {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  line-height: 1.45;
}

/* Badges row — border-bottom separates it from the stats row below */
body.hp-template--request-view-page .apt-rp__badges {
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--apt-dp-border);
}

/* Stats row — top border acts as divider from header / badges */
body.hp-template--request-view-page .apt-rp__stats {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  padding-top: 14px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-rp__stat {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

body.hp-template--request-view-page .apt-rp__stat-label {
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1;
}

body.hp-template--request-view-page .apt-rp__stat-value {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  line-height: 1.3;
}

/* ============================================================
   BUDGET CARD LABEL  (R-2C.3)
   Injected by APT_Detail_Pages::inject_request_badges().
   Appears at the top of the attributes-primary sidebar card.
   ============================================================ */

body.hp-template--request-view-page .apt-budget-label {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  line-height: 1;
}

/* Increase the budget amount display for more visual impact */
body.hp-template--request-view-page .hp-listing__attributes--primary .hp-listing__attribute {
  font-size: 1.5rem !important;
}

/* ============================================================
   PHONE LOCKED STATE  (AUDIT-1A / P0-1)
   Rendered by APT_Request_Phone_Access::locked_state_html() in place
   of the raw phone field for viewers without an eligible plan.
   Deliberately NOT a .hp-listing__attribute so it does not inherit the
   1.5rem budget sizing above — this is a quiet secondary note.
   ============================================================ */

body.hp-template--request-view-page .apt-phone-lock {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--apt-dp-border, #e5e7eb);
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--apt-dp-muted, #6b7280);
}

body.hp-template--request-view-page .apt-phone-lock__icon {
  flex: 0 0 auto;
  font-size: 0.875rem;
  color: var(--apt-dp-muted, #6b7280);
}

body.hp-template--request-view-page .apt-phone-lock__text {
  font-weight: 500;
}

/* ============================================================
   ACTION HELPER COPY  (R-2C.3)
   Injected by APT_Detail_Pages::inject_action_helper().
   Rendered inside the request_actions_primary card at _order 100.
   ============================================================ */

body.hp-template--request-view-page .apt-action-helper {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  text-align: center;
  line-height: 1.55;
  margin: 4px 0 0;
  padding: 0;
}

/* ============================================================
   REQUEST DETAILS BLOCK  (R-2C.5)
   Injected by APT_Detail_Pages::inject_request_details_block().
   Rendered in page_content at _order 65, after the description.
   Shows Type, When needed, and Budget style — real data only.
   ============================================================ */

body.hp-template--request-view-page .apt-req-details {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-req-details__heading {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 14px;
  line-height: 1;
}

body.hp-template--request-view-page .apt-req-details__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 14px 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.hp-template--request-view-page .apt-req-details__item {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

body.hp-template--request-view-page .apt-req-details__label {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted-light);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1;
}

body.hp-template--request-view-page .apt-req-details__value {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--apt-dp-text);
  line-height: 1.3;
  margin: 0;
}

/* ============================================================
   LOCATION / MAP CARD  (R-2C.4)
   Injected by APT_Detail_Pages::inject_location_map_card().
   Only rendered for public (non-owner) visitors on request view pages.
   Card wraps the approximate-coordinate map with a privacy-safe area
   label, a neutral privacy note, and a "View area on map" CTA.
   ============================================================ */

body.hp-template--request-view-page .apt-loc-card {
  background: var(--apt-dp-white);
  border: 1px solid var(--apt-dp-border);
  border-radius: 14px;
  box-shadow: var(--apt-dp-shadow);
  overflow: hidden;
  padding: 0;
}

body.hp-template--request-view-page .apt-loc-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 14px 16px 10px;
}

body.hp-template--request-view-page .apt-loc-card__label {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.07em;
  line-height: 1;
  flex-shrink: 0;
}

body.hp-template--request-view-page .apt-loc-card__area {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--apt-dp-text);
  text-align: right;
}

body.hp-template--request-view-page .apt-loc-card__area .hp-icon {
  color: var(--apt-dp-muted);
  font-size: 0.75rem;
  flex-shrink: 0;
}

/* Map fills card edge-to-edge with a fixed height */
body.hp-template--request-view-page .apt-loc-card .hp-map,
body.hp-template--request-view-page .apt-loc-card__map {
  display: block !important;
  width: 100% !important;
  height: 170px !important;
  min-height: 170px !important;
  border-radius: 0 !important;
  margin: 0 !important;
  box-shadow: none !important;
}

body.hp-template--request-view-page .apt-loc-card__privacy {
  font-size: 0.75rem;
  color: var(--apt-dp-muted);
  line-height: 1.45;
  margin: 0;
  padding: 10px 16px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-loc-card__cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  width: 100%;
  padding: 11px 16px;
  border-top: 1px solid var(--apt-dp-border);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--apt-dp-blue);
  text-decoration: none;
  background: transparent;
  box-sizing: border-box;
  transition: background 0.15s, color 0.15s;
}

body.hp-template--request-view-page .apt-loc-card__cta:hover {
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
  text-decoration: none;
}

body.hp-template--request-view-page .apt-loc-card__cta .hp-icon {
  font-size: 0.8125rem;
}

/* ============================================================
   DEMO HELPER SUGGESTIONS SECTION  (R-2C.7)
   Injected by APT_Detail_Pages::inject_demo_helpers().
   Only rendered on local/dev environments — never on production.
   Gated by is_local_env() in PHP.
   ============================================================ */

body.hp-template--request-view-page .apt-dhs {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--request-view-page .apt-dhs__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

body.hp-template--request-view-page .apt-dhs__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  margin: 0;
  line-height: 1.3;
}

body.hp-template--request-view-page .apt-dhs__demo-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: #FFF7ED;
  color: #C2410C;
  border: 1px solid #FED7AA;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

body.hp-template--request-view-page .apt-dhs__subtitle {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  margin: 0 0 16px;
  line-height: 1.5;
}

body.hp-template--request-view-page .apt-dhs__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

body.hp-template--request-view-page .apt-dhs__card {
  background: var(--apt-dp-white);
  border: 1px solid var(--apt-dp-border);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

body.hp-template--request-view-page .apt-dhs__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--apt-dp-green);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
}

body.hp-template--request-view-page .apt-dhs__body {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
}

body.hp-template--request-view-page .apt-dhs__name {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  line-height: 1.3;
}

body.hp-template--request-view-page .apt-dhs__role {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  line-height: 1.4;
}

body.hp-template--request-view-page .apt-dhs__area {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  color: var(--apt-dp-muted-light);
  margin-top: 2px;
  line-height: 1.4;
}

body.hp-template--request-view-page .apt-dhs__area .hp-icon {
  font-size: 0.625rem;
  flex-shrink: 0;
}

body.hp-template--request-view-page .apt-dhs__skills {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}

body.hp-template--request-view-page .apt-dhs__skill {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 500;
  white-space: nowrap;
}

body.hp-template--request-view-page .apt-dhs__cta {
  display: block;
  text-align: center;
  padding: 7px 12px;
  background: transparent;
  border: 1px solid var(--apt-dp-border);
  border-radius: 8px;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--apt-dp-muted);
  cursor: default;
  margin-top: auto;
  user-select: none;
}

/* ============================================================
   SERVICE SUMMARY CHIP ROW  (S-5A)
   Injected by APT_Detail_Pages::inject_listing_summary().
   Placed at _order 15, between the h1 title (_order 10) and the
   default HP details row (_order 20, suppressed below).

   Chips shown: category (linked), location (if stored), date listed.
   Any chip is omitted silently when the underlying data is absent.

   The HP vendor block at sidebar _order 30 already renders the
   vendor identity card (avatar, name, member-since, rating). No
   duplicate vendor card is injected here.
   ============================================================ */

/* Suppress the default HivePress category + date row — same data lives in chips. */
body.hp-template--listing-view-page .hp-listing__details--primary {
  display: none !important;
}

/*
 * Suppress the location item rendered by experthive's listing_attributes_secondary
 * block (order 25) — location is already shown in the chip row above.
 * The secondary-attributes loop items (vendor-filled fields) are preserved.
 */
body.hp-template--listing-view-page .hp-listing__attributes--secondary .hp-listing__attribute--location {
  display: none;
}

body.hp-template--listing-view-page .apt-svc-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}

body.hp-template--listing-view-page .apt-svc-summary__chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
  text-decoration: none;
}

body.hp-template--listing-view-page .apt-svc-summary__chip--category {
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
}

body.hp-template--listing-view-page .apt-svc-summary__chip--category:hover {
  background: var(--apt-dp-blue);
  color: var(--apt-dp-white);
  text-decoration: none;
}

body.hp-template--listing-view-page .apt-svc-summary__chip--location {
  background: var(--apt-dp-bg);
  color: var(--apt-dp-muted);
  border: 1px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .apt-svc-summary__chip--location .hp-icon {
  font-size: 0.6875rem;
}

body.hp-template--listing-view-page .apt-svc-summary__chip--date {
  background: var(--apt-dp-bg);
  color: var(--apt-dp-muted);
  border: 1px solid var(--apt-dp-border);
}

/* ============================================================
   SERVICE DETAIL — price card label  (S-7A)
   Repurposes the HP theme ::before stripe (hidden at line ~350)
   as an inline "PRICE" label inside the attributes-primary card.
   Must appear AFTER the combined display:none rule above so the
   cascade gives listing pages display:block while request pages
   keep display:none from the earlier combined rule.
   All HP theme stripe properties (absolute position, teal bg,
   3px width, pill radius) are explicitly reset.
   ============================================================ */

body.hp-template--listing-view-page .hp-page__sidebar .hp-listing__attributes--primary::before {
  display: block !important;
  content: 'Price';
  position: static;
  background: transparent;
  width: auto;
  height: auto;
  top: auto;
  left: auto;
  bottom: auto;
  border-radius: 0;
  z-index: auto;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  line-height: 1;
}

/* ============================================================
   SERVICE DETAIL — reviews section heading  (S-7A)
   Matches the request-page offers section heading pattern.
   ============================================================ */

body.hp-template--listing-view-page .hp-section__title {
  font-size: 1.0625rem !important;
  font-weight: 700;
  color: var(--apt-dp-text);
  padding-top: 24px;
  padding-bottom: 16px;
  border-top: 1px solid var(--apt-dp-border);
  margin-top: 24px;
}

/* ============================================================
   PROVIDER PANEL  (SVC-SINGLE-1A)
   Injected by APT_Detail_Pages::inject_provider_panel().
   Replaces the default HivePress listing_vendor (vendor_view_block)
   on service detail pages with a connected APT panel.
   Scoped exclusively to listing pages — never bleeds elsewhere.
   ============================================================ */

/* SVC-SINGLE-3A — bottom section of the merged conversion sidebar panel
   (provider summary / trust signals / availability). Square top corners
   so it abuts the actions card directly above; the shadow on this card
   plus the price card's shadow above give the whole stack a soft
   enclosing edge without doubling up at the internal seams. */
body.hp-template--listing-view-page .apt-pp {
  background: var(--apt-dp-white);
  border: 1px solid var(--apt-dp-border);
  border-radius: 0 0 14px 14px;
  box-shadow: var(--apt-dp-shadow);
  padding: 20px 24px;
  margin: -16px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

body.hp-template--listing-view-page .apt-pp::before {
  content: 'Provider';
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1;
  margin-bottom: -4px;
}

/* Header row: avatar + identity */
body.hp-template--listing-view-page .apt-pp__header {
  display: flex;
  align-items: center;
  gap: 12px;
}

body.hp-template--listing-view-page .apt-pp__avatar {
  flex-shrink: 0;
}

body.hp-template--listing-view-page .apt-pp__avatar-img,
body.hp-template--listing-view-page .apt-pp__avatar img {
  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;
  object-fit: cover;
  display: block;
  border: 2px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .apt-pp__identity {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

body.hp-template--listing-view-page .apt-pp__name {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  text-decoration: none;
  line-height: 1.3;
  word-break: break-word;
  display: block;
}

body.hp-template--listing-view-page .apt-pp__name:hover {
  color: var(--apt-dp-blue);
  text-decoration: none;
}

body.hp-template--listing-view-page .apt-pp__biz {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: 5px;
}

/* Role chips */
body.hp-template--listing-view-page .apt-pp__roles {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

body.hp-template--listing-view-page .apt-pp__role-chip {
  display: inline-flex;
  align-items: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.5;
  white-space: nowrap;
}

body.hp-template--listing-view-page .apt-pp__role-chip--helper {
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
}

body.hp-template--listing-view-page .apt-pp__role-chip--pro {
  background: var(--apt-dp-green-light);
  color: var(--apt-dp-green-dark);
}

/* Headline */
body.hp-template--listing-view-page .apt-pp__headline {
  font-size: 0.875rem;
  color: var(--apt-dp-text);
  line-height: 1.5;
  margin: 0;
  font-style: italic;
}

/* Location */
body.hp-template--listing-view-page .apt-pp__location {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  margin: 0;
  line-height: 1.4;
}

body.hp-template--listing-view-page .apt-pp__location .fa-map-marker-alt {
  color: var(--apt-dp-muted-light);
  font-size: 0.75rem;
  flex-shrink: 0;
}

/* Rating */
body.hp-template--listing-view-page .apt-pp__rating {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.875rem;
}

body.hp-template--listing-view-page .apt-pp__rating .fa-star {
  color: #F59E0B;
  font-size: 0.8125rem;
}

body.hp-template--listing-view-page .apt-pp__rating-value {
  font-weight: 700;
  color: var(--apt-dp-text);
}

body.hp-template--listing-view-page .apt-pp__rating-count {
  color: var(--apt-dp-muted);
  font-size: 0.8125rem;
}

body.hp-template--listing-view-page .apt-pp__new-provider {
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  margin: 0;
  line-height: 1.4;
}

/* Verification icons row */
body.hp-template--listing-view-page .apt-pp__verify {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 10px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .apt-pp__verify-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 9px;
  background: var(--apt-dp-green-light);
  color: var(--apt-dp-green-dark);
  border-radius: 999px;
  font-size: 0.6875rem;
  font-weight: 600;
  white-space: nowrap;
  cursor: default;
}

body.hp-template--listing-view-page .apt-pp__verify-item i {
  font-size: 0.6875rem;
  flex-shrink: 0;
}

/* On narrow panels, hide the text label — keep icon only */
body.hp-template--listing-view-page .apt-pp__verify-item-label {
  display: none;
}

/* Call / Website / Request a quote actions.
   BUSINESS-PROFILE-SERVICES-LAUNCH-CLOSURE-1A: reuses the exact class names
   (.hp-vendor__action--call/--website/--request) the Vendor profile Action
   Panel already uses (apt-profile.css), scoped here to the Service detail
   provider panel since apt-profile.css's rules are scoped to
   body.hp-template--vendor-view-page only. */
body.hp-template--listing-view-page .apt-pp__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 12px 0;
}

body.hp-template--listing-view-page .apt-pp__actions .hp-vendor__action {
  display: block;
  width: 100%;
  text-align: center;
  padding: 9px 16px;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  text-decoration: none;
  box-sizing: border-box;
  transition: border-color 0.15s, background 0.15s;
  line-height: 1.4;
  border: 1.5px solid var(--apt-dp-border);
  background: transparent;
  color: var(--apt-dp-blue);
}

body.hp-template--listing-view-page .apt-pp__actions .hp-vendor__action:hover {
  border-color: var(--apt-dp-blue);
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue);
}

body.hp-template--listing-view-page .apt-pp__actions .hp-vendor__action--request {
  background: var(--apt-dp-blue);
  border-color: var(--apt-dp-blue);
  color: #fff;
}

body.hp-template--listing-view-page .apt-pp__actions .hp-vendor__action--request:hover {
  opacity: 0.92;
  color: #fff;
}

/* Footer: view profile CTA */
body.hp-template--listing-view-page .apt-pp__footer {
  padding-top: 12px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .apt-pp__profile-cta {
  display: block;
  width: 100%;
  text-align: center;
  padding: 9px 16px;
  background: transparent;
  border: 1.5px solid var(--apt-dp-border);
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--apt-dp-blue);
  text-decoration: none;
  box-sizing: border-box;
  transition: border-color 0.15s, background 0.15s;
  line-height: 1.4;
}

body.hp-template--listing-view-page .apt-pp__profile-cta:hover {
  border-color: var(--apt-dp-blue);
  background: var(--apt-dp-blue-light);
  text-decoration: none;
  color: var(--apt-dp-blue);
}

/* Safety note — SVC-SINGLE-3A: hidden here to avoid a second, duplicate
   safety message. The .apt-dp-safety-note already shown in the actions
   card above (closer to the CTAs) is the single safety note kept in the
   conversion sidebar. */
body.hp-template--listing-view-page .apt-pp__safety {
  display: none;
}

/* Sectors / areas covered (SVC-SINGLE-2A) */
body.hp-template--listing-view-page .apt-pp__sectors {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

body.hp-template--listing-view-page .apt-pp__sector-chip {
  display: inline-block;
  padding: 2px 9px;
  background: var(--apt-dp-bg);
  border: 1px solid var(--apt-dp-border);
  border-radius: 999px;
  font-size: 0.75rem;
  color: var(--apt-dp-muted);
  line-height: 1.5;
}

/* Emergency available (SVC-SINGLE-2A) */
body.hp-template--listing-view-page .apt-pp__emergency {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  color: #D97706;
  font-weight: 600;
  margin: 0;
  line-height: 1.4;
}

body.hp-template--listing-view-page .apt-pp__emergency .fa-bolt {
  font-size: 0.75rem;
  flex-shrink: 0;
}

/* Starting price / quote required (SVC-SINGLE-2A).
   SVC-SINGLE-3A: softened to a muted secondary line — the dedicated
   price card at the top of the panel is the primary price source. This
   line stays visible (it can be the only price/quote signal when the
   listing itself has no price set) but no longer competes with it. */
body.hp-template--listing-view-page .apt-pp__price {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--apt-dp-muted);
  margin: 0;
  line-height: 1.4;
}

body.hp-template--listing-view-page .apt-pp__price .fa-tag {
  color: var(--apt-dp-muted-light);
  font-size: 0.75rem;
  flex-shrink: 0;
}

/* Response time (SVC-SINGLE-2A) */
body.hp-template--listing-view-page .apt-pp__response {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  margin: 0;
  line-height: 1.4;
}

body.hp-template--listing-view-page .apt-pp__response .fa-clock {
  color: var(--apt-dp-muted-light);
  font-size: 0.75rem;
  flex-shrink: 0;
}

/* ============================================================
   RELATED LISTINGS CARDS  (SERVICES-UX-1A → SVC-RELATED-CARD-1A)

   The footer "Related Listings" section renders the stock HivePress
   listing_view_block card — the same template the /services/ archive
   uses, but apt-services.css never loads here and the archive's
   enhance_service_card() block filter is scoped to the archive only.
   On top of that, several rules elsewhere in THIS file that are meant
   for the main listing view (sidebar buy panel, "Service details"
   facts box, suppressed category/date row) also match this card because
   they were only scoped to the body class, not away from .hp-page__footer:

     • .hp-listing__details--primary { display:none !important }   → hid the provider + category entirely
     • .hp-listing__attribute--location { display:none }           → hid the location
     • .hp-listing__attributes--secondary { border/bg/::before }   → wrapped the notice/warranty in a "SERVICE DETAILS" box
     • .hp-listing__attributes--primary / --actions--primary { white card !important } → floated the price + actions in their own boxes

   This block re-scopes those inside .hp-page__footer and rebuilds the
   card as one clean horizontal service card (image · details · price rail)
   matching the archive card system. Real data only — every field shown
   is one HivePress already output; nothing injected here.
   The real listing image (vs. the vendor logo experthive swaps in) is
   restored in PHP — APT_Detail_Pages::restore_related_listing_image().
   ============================================================ */

body.hp-template--listing-view-page .hp-page__footer .hp-section__title {
  font-size: 1.0625rem !important;
  font-weight: 700;
  color: var(--apt-dp-text);
  padding-top: 24px;
  padding-bottom: 16px;
  border-top: 1px solid var(--apt-dp-border);
  margin-top: 24px;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listings {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* HivePress forces every related item to a full 12-col row. Let the cards
   wrap into a compact left-aligned set instead — one card no longer
   stretches edge-to-edge across the whole page (the "huge empty middle"),
   and 2-3 related listings pack side by side like the archive grid. */
body.hp-template--listing-view-page .hp-page__footer .hp-listings .hp-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listings .hp-grid__item {
  flex: 1 1 420px;
  max-width: 760px;
  min-width: 0;
}

/* ---- Card shell ------------------------------------------------------ */
/* padding:0 resets ExpertHive's own `.hp-listing--view-block {
   padding: 2rem 1.75rem 2rem 2rem }` — the source of the big empty
   inset. The card is edge-to-edge; each column carries its own padding. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing--view-block {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  background: var(--apt-dp-white);
  border: 1px solid var(--apt-dp-border);
  border-radius: var(--apt-dp-radius-lg);
  box-shadow: var(--apt-dp-shadow);
  overflow: hidden;
  padding: 0;
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing--view-block:hover {
  border-color: #D1D5DB;
  box-shadow: 0 4px 18px rgba(16, 24, 40, 0.10);
}

/* ---- Media column -------------------------------------------------- */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__header {
  flex: 0 0 176px;
  min-width: 176px;
  align-self: stretch;
  overflow: hidden;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__image,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__image a {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 150px;
}

/* Override experthive's global border-radius:50% on listing images. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border-radius: 0 !important;
}

/* ---- Main content column ------------------------------------------ */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__content {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  padding: 15px 18px;
}

/* Un-hide the provider + category row (suppressed for the MAIN listing
   only) and lay it out as a compact eyebrow above the title. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__content .hp-listing__details--primary {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  margin: 0 !important;
  order: 1;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__details--primary > *::after {
  display: none !important;
}

/* Category chip — same blue pill language as the archive card eyebrow. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__categories a,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__category a {
  display: inline-block;
  padding: 2px 9px;
  background: var(--apt-dp-blue-light);
  color: var(--apt-dp-blue) !important;
  border-radius: 100px;
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  line-height: 1.6;
  text-decoration: none;
}

/* Provider strip — avatar + linked vendor name, one adjacent unit (see
   APT_Services_Archive::restore_service_card_image(), which now also fires
   here on the "Related Services" carousel). Bolder/darker than the muted
   category/date meta beside it so the provider reads as an identity —
   PROVIDER-DETAILS-VISUAL-PARITY-1A. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__vendor {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
}

body.hp-template--listing-view-page .hp-page__footer .apt-vendor-avatar {
  display: inline-flex;
  flex-shrink: 0;
  line-height: 0;
}

body.hp-template--listing-view-page .hp-page__footer .apt-vendor-avatar img {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  border: 1.5px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .hp-page__footer .apt-provider-strip__name {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--apt-dp-text);
}

body.hp-template--listing-view-page .hp-page__footer .apt-provider-strip__name a {
  color: var(--apt-dp-text) !important;
  text-decoration: none;
}

body.hp-template--listing-view-page .hp-page__footer .apt-provider-strip__name a:hover {
  color: var(--apt-dp-blue) !important;
  text-decoration: underline;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  margin: 0;
  line-height: 1.35;
  order: 2;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__title a {
  color: var(--apt-dp-text);
  text-decoration: none;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__title a:hover {
  color: var(--apt-dp-blue);
}

/* Fake-checkmark / misplaced-testimonial fixes, same as the archive cards. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__verified-badge,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--quick-highlight {
  display: none !important;
}

/* Reset the "SERVICE DETAILS" facts-box treatment (main-listing only) and
   render the attributes as a plain inline meta line. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__attributes--secondary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 14px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  order: 3;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__attributes--secondary::before {
  content: none !important;
  display: none !important;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__attributes--secondary .hp-listing__attribute {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  padding: 0;
  border: 0;
  margin: 0;
}

/* Un-hide location (hidden for the MAIN listing, where it lives in a chip row). */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__attributes--secondary .hp-listing__attribute--location {
  display: inline-flex;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--location a {
  color: var(--apt-dp-muted);
  text-decoration: none;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--location a:hover {
  color: var(--apt-dp-blue);
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--location i {
  color: var(--apt-dp-muted-light);
  font-size: 0.75rem;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--availability,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--warranty {
  font-size: 0.75rem;
  color: var(--apt-dp-muted-light);
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--availability i,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__attribute--warranty i {
  display: none;
}

/* ---- Price + actions rail ---------------------------------------- */
/* margin:0 cancels ExpertHive's `.hp-listing--view-block .hp-listing__footer
   { margin: 2rem -2rem -2rem }` — those negative bleed margins assumed the
   card's own 2rem padding (which we've zeroed) and otherwise drag the rail
   outside the card, clipping the price and Message label. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer {
  flex: 0 0 auto;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  gap: 8px;
  min-width: 168px;
  margin: 0 !important;
  padding: 15px 16px;
  border-left: 1px solid var(--apt-dp-border);
  background: #FAFAFA;
}

/* Same ExpertHive negative-margin reset for the other two card columns. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__header,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__content {
  margin: 0 !important;
}

/* Neutralise the sidebar buy-panel box treatment leaking in from
   .hp-listing__attributes--primary / .hp-listing__actions--primary. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__attributes--primary,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__actions--primary {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__attributes--primary .hp-listing__attribute {
  font-size: 1.375rem !important;
  font-weight: 700 !important;
  color: var(--apt-dp-green-dark) !important;
  letter-spacing: -0.01em;
  line-height: 1.15 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  white-space: nowrap;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__actions--primary {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}

/* Save + Message: one consistent full-width outline-button treatment. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .apt-favorite-toggle,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__action--message {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  width: 100% !important;
  height: auto !important;
  padding: 9px 12px !important;
  background: var(--apt-dp-white) !important;
  border: 1px solid var(--apt-dp-border) !important;
  border-radius: 8px !important;
  color: var(--apt-dp-muted) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  text-align: center !important;
  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .apt-favorite-toggle:hover,
body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__action--message:hover {
  border-color: var(--apt-dp-blue) !important;
  color: var(--apt-dp-blue) !important;
  background: var(--apt-dp-blue-light) !important;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .apt-favorite-toggle.is-favorited {
  background: #FEF1F3 !important;
  border-color: #E893A3 !important;
  color: #C0264A !important;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .apt-favorite-toggle__label {
  display: inline !important;
}

/* The message action ships as a bare icon link; give it a visible label. */
body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__action--message i {
  font-size: 0.8125rem;
  color: inherit;
}

body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__action--message::after {
  content: 'Message';
}

/* ---- Responsive: stack under ~768px ----------------------------- */
/* Matches ExpertHive's own 47.99em rule that hides
   .hp-listing--view-block .hp-listing__header theme-wide. */
@media (max-width: 768px) {
  body.hp-template--listing-view-page .hp-page__footer .hp-listing--view-block {
    flex-direction: column;
  }

  body.hp-template--listing-view-page .hp-page__footer .hp-listing__header {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    height: 156px;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
  }

  body.hp-template--listing-view-page .hp-page__footer .hp-listing__image,
  body.hp-template--listing-view-page .hp-page__footer .hp-listing__image a {
    min-height: 0;
  }

  /* A related listing can itself be a featured/multi-image carousel card —
     same min-content overflow risk as the archive grid, guarded the same way. */
  body.hp-template--listing-view-page .hp-page__footer .hp-listings,
  body.hp-template--listing-view-page .hp-page__footer .hp-row,
  body.hp-template--listing-view-page .hp-page__footer .hp-grid__item,
  body.hp-template--listing-view-page .hp-page__footer .hp-listing--view-block {
    min-width: 0;
    max-width: 100%;
  }

  body.hp-template--listing-view-page .hp-page__footer .hp-listing__content {
    justify-content: flex-start;
    padding: 14px 16px;
  }

  body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 12px;
    border-left: 0;
    border-top: 1px solid var(--apt-dp-border);
  }

  body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__actions--primary {
    flex-direction: row !important;
    align-items: center;
    flex: 0 1 auto;
    justify-content: flex-end;
    gap: 8px;
  }

  body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .apt-favorite-toggle,
  body.hp-template--listing-view-page .hp-page__footer .hp-listing__footer .hp-listing__action--message {
    width: auto !important;
    flex: 0 1 auto;
  }
}

/* ============================================================
   MOBILE / RESPONSIVE
   ============================================================ */

@media (max-width: 768px) {
  /* Overflow safety net (Services scope only — see SERVICES-UX-1A report).
     A gallery/carousel image can contribute a wide min-content constraint
     through the row/column chain; min-width:0 lets each level shrink to
     the actual viewport instead of growing to fit that intrinsic width. */
  body.hp-template--listing-view-page .hp-row.hp-listing--view-page,
  body.hp-template--listing-view-page .hp-page__content,
  body.hp-template--listing-view-page .hp-page__sidebar,
  body.hp-template--request-view-page .hp-row.hp-listing--view-page,
  body.hp-template--request-view-page .hp-page__content,
  body.hp-template--request-view-page .hp-page__sidebar {
    min-width: 0;
    max-width: 100%;
  }

  /* Content column full-width card: reduced padding */
  body.hp-template--listing-view-page .hp-page__content,
  body.hp-template--request-view-page .hp-page__content {
    padding: 20px 16px !important;
    border-radius: 12px;
  }

  /* Smaller title */
  body.hp-template--listing-view-page .hp-listing--view-page .hp-listing__title,
  body.hp-template--request-view-page .hp-listing--view-page .hp-listing__title {
    font-size: 1.375rem;
  }

  /* Cap image height lower on mobile */
  body.hp-template--listing-view-page .hp-listing__images img,
  body.hp-template--request-view-page .hp-listing__images img {
    max-height: 280px;
  }

  /* Sidebar stacks below content on mobile (hp-col-xs-12 already handles width) */
  body.hp-template--listing-view-page .hp-page__sidebar,
  body.hp-template--request-view-page .hp-page__sidebar {
    padding-top: 0;
  }

  /* Full-width CTA tap targets on mobile */
  body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--offer,
  body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--offer,
  body.hp-template--listing-view-page .hp-listing__actions--primary .hp-form__button,
  body.hp-template--request-view-page .hp-listing__actions--primary .hp-form__button,
  body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--message,
  body.hp-template--request-view-page .hp-listing__actions--primary .hp-listing__action--message {
    width: 100% !important;
    min-height: 44px !important;
  }

  /* Sidebar cards reduced padding */
  body.hp-template--listing-view-page .hp-listing__attributes--primary,
  body.hp-template--listing-view-page .hp-listing__actions--primary,
  body.hp-template--listing-view-page .hp-vendor--view-block,
  body.hp-template--request-view-page .hp-listing__attributes--primary,
  body.hp-template--request-view-page .hp-listing__actions--primary,
  body.hp-template--request-view-page .hp-vendor--view-block {
    padding: 16px !important;
    border-radius: 12px !important;
  }

  /* Requester profile card — compact on mobile */
  body.hp-template--request-view-page .apt-rp {
    padding: 16px !important;
    border-radius: 12px !important;
  }

  /* Demo helper suggestions — 2-column grid on mobile */
  body.hp-template--request-view-page .apt-dhs__grid {
    grid-template-columns: 1fr 1fr;
  }

  /* Allow long category chip names to wrap on mobile — prevents horizontal overflow */
  body.hp-template--request-view-page .apt-req-summary__chip--category {
    white-space: normal;
  }

  /* Provider panel — compact padding on mobile */
  body.hp-template--listing-view-page .apt-pp {
    padding: 16px !important;
    border-radius: 12px !important;
  }

  /* Show the verify label text on wider mobile (landscape / tablet) */
  body.hp-template--listing-view-page .apt-pp__verify-item-label {
    display: inline;
  }

  /* SVC-SINGLE-3A — re-apply the merged-panel corner radii on mobile.
     The "Sidebar cards reduced padding" rule above resets all four
     corners uniformly; restate the per-section radius here (scaled to
     the mobile 12px token) so the stack still reads as one panel. */
  body.hp-template--listing-view-page .hp-listing__attributes--primary {
    border-radius: 12px 12px 0 0 !important;
  }

  body.hp-template--listing-view-page .hp-listing__actions--primary {
    border-radius: 0 !important;
  }

  body.hp-template--listing-view-page .apt-pp {
    border-radius: 0 0 12px 12px !important;
  }
}

/* =============================================================
   SINGLE SERVICE CONVERSION VISUAL FOUNDATION — SVC-4B

   CSS-only visual polish layer for /service/{slug}/ pages.
   Additive only — sits on top of the rules above, no rule above
   is removed or restructured. No new markup required.

   Scope discipline:
   • Every selector below is prefixed with
     body.hp-template--listing-view-page — nothing here targets
     body.hp-template--request-view-page, /services/ archive cards,
     /vendor/ profiles, or dashboard pages.
   • A few classes styled earlier in this file (.apt-dp-safety-note,
     .apt-dp-section-heading) are shared/unscoped because the same JS
     injects them on both listing and request pages. Where this
     section polishes those classes further, the new rules are
     explicitly re-scoped to body.hp-template--listing-view-page so
     the request-page appearance is left exactly as it was.
   ============================================================= */

/* ---- Main content card: stronger, more premium presentation ---- */
body.hp-template--listing-view-page .hp-page__content {
  border-radius: 20px;
  box-shadow: 0 4px 24px rgba(16, 24, 40, 0.08);
}

/* ---- Title area rhythm ---- */
body.hp-template--listing-view-page .apt-dp-type-badge--listing {
  box-shadow: 0 1px 2px rgba(16, 24, 40, 0.04);
}

body.hp-template--listing-view-page .hp-listing--view-page .hp-listing__title {
  letter-spacing: -0.01em;
}

body.hp-template--listing-view-page .apt-svc-summary {
  margin-bottom: 24px;
}

/* ---- Image / gallery: larger, more confident media block ---- */
body.hp-template--listing-view-page .hp-listing__images {
  border-radius: var(--apt-dp-radius-lg) !important;
  border: 1px solid var(--apt-dp-border);
  margin-bottom: 32px;
}

body.hp-template--listing-view-page .hp-listing__images > img,
body.hp-template--listing-view-page .hp-listing__images-slider {
  max-height: 480px;
  border-radius: calc(var(--apt-dp-radius-lg) - 1px) !important;
}

body.hp-template--listing-view-page .hp-listing__images img {
  max-height: 480px;
}

body.hp-template--listing-view-page .hp-listing__images-carousel {
  margin-top: 10px;
}

/* ---- Details / attributes box: less "raw template", more a clean facts card ---- */
body.hp-template--listing-view-page .hp-listing__attributes--secondary {
  position: relative;
  background: var(--apt-dp-white);
  border-radius: var(--apt-dp-radius);
  padding: 20px 22px 16px;
}

body.hp-template--listing-view-page .hp-listing__attributes--secondary::before {
  content: 'Service details';
  display: block;
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 10px;
  line-height: 1;
}

body.hp-template--listing-view-page .hp-listing__attributes--secondary .hp-listing__attribute {
  padding: 7px 0;
  border-bottom: 1px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .hp-listing__attributes--secondary .hp-listing__attribute:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

/* ---- Description / reviews section rhythm ---- */
body.hp-template--listing-view-page .apt-dp-section-heading {
  margin-top: 36px;
}

body.hp-template--listing-view-page .hp-section__title {
  letter-spacing: -0.005em;
}

/* ---- Sidebar conversion panel: extra elevation so it reads as the
        premium "buy" column against the content card ---- */
body.hp-template--listing-view-page .hp-listing__attributes--primary {
  box-shadow: 0 6px 20px rgba(16, 24, 40, 0.09) !important;
}

body.hp-template--listing-view-page .apt-pp {
  box-shadow: 0 6px 20px rgba(16, 24, 40, 0.09);
}

/* ---- Price: the single most important number on the page ---- */
body.hp-template--listing-view-page .hp-listing__attributes--primary .hp-listing__attribute {
  font-size: 1.75rem !important;
  color: var(--apt-dp-green-dark) !important;
  letter-spacing: -0.01em;
}

/* ---- Buy Now / primary offer button: firmer premium CTA feel.
        Colour, text and click behaviour are untouched — this only
        adds elevation + a subtle press/hover motion. ---- */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--offer,
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-form__button {
  box-shadow: 0 2px 6px rgba(31, 163, 74, 0.25) !important;
  transition: background 0.2s ease, box-shadow 0.2s ease, transform 0.1s ease !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--offer:hover,
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-form__button:hover {
  box-shadow: 0 4px 12px rgba(31, 163, 74, 0.3) !important;
  transform: translateY(-1px);
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--offer:active,
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-form__button:active {
  transform: translateY(0);
  box-shadow: 0 1px 4px rgba(31, 163, 74, 0.25) !important;
}

/* ---- Message Provider: clearly secondary, still confident ---- */
body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--message {
  transition: background 0.15s, color 0.15s, border-color 0.15s !important;
}

body.hp-template--listing-view-page .hp-listing__actions--primary .hp-listing__action--message:hover {
  border-color: var(--apt-dp-blue) !important;
}

/* ---- Safety note: trustworthy card, not loose text.
        Re-scoped to listing pages only — the shared, unscoped base
        rule earlier in this file still governs the request-page
        appearance untouched. ---- */
body.hp-template--listing-view-page .apt-dp-safety-note {
  background: var(--apt-dp-green-light);
  border: 1px solid #CFEBD8;
  border-radius: 10px;
  padding: 10px 14px;
  margin-top: 10px;
  text-align: left;
}

body.hp-template--listing-view-page .apt-dp-safety-note .hp-icon {
  margin-top: 1px;
}

/* ---- Provider card: modern provider summary presentation ---- */
body.hp-template--listing-view-page .apt-pp__avatar-img,
body.hp-template--listing-view-page .apt-pp__avatar img {
  border-color: var(--apt-dp-green-light) !important;
  box-shadow: 0 0 0 1px var(--apt-dp-border);
}

body.hp-template--listing-view-page .apt-pp__name {
  letter-spacing: -0.005em;
}

body.hp-template--listing-view-page .apt-pp__profile-cta {
  transition: border-color 0.15s, background 0.15s, transform 0.1s ease;
}

body.hp-template--listing-view-page .apt-pp__profile-cta:hover {
  transform: translateY(-1px);
}

/* ---- Mobile: keep the image confident but not overwhelming, tighten
        vertical rhythm now that the desktop card is more premium ---- */
@media (max-width: 768px) {
  body.hp-template--listing-view-page .hp-listing__images {
    margin-bottom: 20px;
  }

  body.hp-template--listing-view-page .hp-listing__images > img,
  body.hp-template--listing-view-page .hp-listing__images-slider,
  body.hp-template--listing-view-page .hp-listing__images img {
    max-height: 240px;
  }

  body.hp-template--listing-view-page .hp-page__content {
    border-radius: 14px;
  }

  body.hp-template--listing-view-page .hp-listing__attributes--primary .hp-listing__attribute {
    font-size: 1.375rem !important;
  }

  body.hp-template--listing-view-page .hp-listing__attributes--secondary {
    padding: 16px 16px 12px;
  }
}

/* =============================================================
   SINGLE SERVICE TRUST & CONVERSION BLOCKS — SVC-4C

   Styles for the two content blocks injected by
   APT_Detail_Pages::inject_service_coverage() and
   ::inject_multi_quote_cta() (see class-apt-detail-pages.php).
   Additive only — no existing rule above is changed.

   Scope: body.hp-template--listing-view-page only. Neither class
   is ever injected on request_view_page (both filters are only
   registered against hivepress/v1/templates/listing_view_page), so
   no request-page rule needs protecting here.
   ============================================================= */

/* ---- Areas covered (page_content, after the description) ---- */
body.hp-template--listing-view-page .apt-svc-coverage {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .apt-svc-coverage__heading {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 14px;
  line-height: 1;
}

body.hp-template--listing-view-page .apt-svc-coverage__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

body.hp-template--listing-view-page .apt-svc-coverage__chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 14px;
  background: var(--apt-dp-bg);
  border: 1px solid var(--apt-dp-border);
  border-radius: 999px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--apt-dp-text);
  line-height: 1.4;
}

/* ---- Booking details: duration/service area/cancellation/requirements
   (page_content, after Specialties) — BOOKING-SERVICE-OPERATIONAL-FIELDS-1A ---- */
body.hp-template--listing-view-page .apt-svc-operational {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--apt-dp-border);
}

body.hp-template--listing-view-page .apt-svc-operational__heading {
  font-size: 0.6875rem;
  font-weight: 700;
  color: var(--apt-dp-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 0 14px;
  line-height: 1;
}

body.hp-template--listing-view-page .apt-svc-operational__row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 10px 0;
  border-bottom: 1px solid var(--apt-dp-border);
  font-size: 0.875rem;
}

body.hp-template--listing-view-page .apt-svc-operational__row:last-child {
  border-bottom: none;
}

body.hp-template--listing-view-page .apt-svc-operational__label {
  color: var(--apt-dp-muted);
  flex-shrink: 0;
}

body.hp-template--listing-view-page .apt-svc-operational__value {
  color: var(--apt-dp-text);
  text-align: right;
  word-break: break-word;
}

@media (max-width: 480px) {
  body.hp-template--listing-view-page .apt-svc-operational__row {
    flex-direction: column;
    gap: 4px;
  }

  body.hp-template--listing-view-page .apt-svc-operational__value {
    text-align: left;
  }
}

/* ---- Footer conversion CTA + trust strip (page_footer, below related listings) ---- */
body.hp-template--listing-view-page .apt-svc-footer-cta {
  margin-top: 28px;
}

body.hp-template--listing-view-page .apt-svc-footer-cta__card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  background: var(--apt-dp-white);
  border: 1px solid var(--apt-dp-border);
  border-radius: var(--apt-dp-radius-lg);
  box-shadow: var(--apt-dp-shadow);
  padding: 24px 28px;
}

body.hp-template--listing-view-page .apt-svc-footer-cta__body {
  min-width: 0;
}

body.hp-template--listing-view-page .apt-svc-footer-cta__title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--apt-dp-text);
  margin: 0 0 4px;
  line-height: 1.3;
}

body.hp-template--listing-view-page .apt-svc-footer-cta__text {
  font-size: 0.875rem;
  color: var(--apt-dp-muted);
  margin: 0;
  line-height: 1.5;
}

body.hp-template--listing-view-page .apt-svc-footer-cta__button {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  padding: 0 22px;
  background: var(--apt-dp-green);
  color: var(--apt-dp-white);
  border-radius: 8px;
  font-size: 0.9375rem;
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease;
}

body.hp-template--listing-view-page .apt-svc-footer-cta__button:hover {
  background: var(--apt-dp-green-dark);
  color: var(--apt-dp-white);
  text-decoration: none;
}

body.hp-template--listing-view-page .apt-svc-trust-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  list-style: none;
  margin: 16px 0 0;
  padding: 0;
}

body.hp-template--listing-view-page .apt-svc-trust-strip li {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 0.8125rem;
  color: var(--apt-dp-muted);
  line-height: 1.4;
}

body.hp-template--listing-view-page .apt-svc-trust-strip .hp-icon {
  color: var(--apt-dp-green);
  font-size: 0.75rem;
  flex-shrink: 0;
}

@media (max-width: 768px) {
  body.hp-template--listing-view-page .apt-svc-footer-cta__card {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    padding: 20px;
    gap: 14px;
  }

  body.hp-template--listing-view-page .apt-svc-footer-cta__button {
    width: 100%;
  }

  body.hp-template--listing-view-page .apt-svc-trust-strip {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }
}

/* ADAPTIVE-REQUEST-INTELLIGENCE-1A: "Job details" (structured answers) on the request page. */
.apt-job-details {
    margin: 20px 0;
    padding: 16px 20px;
    background: #fff;
    border: 1px solid #E5E7EB;
    border-radius: 12px;
}

.apt-job-details__title {
    margin: 0 0 10px;
    font-size: 1.125rem;
    font-weight: 700;
}

.apt-job-details__list {
    display: grid;
    gap: 8px 24px;
    margin: 0;
}

.apt-job-details__row dt {
    font-size: 0.8125rem;
    color: #4B5563;
}

.apt-job-details__row dd {
    margin: 0;
    font-weight: 600;
    color: #1A1A1A;
}

@media (min-width: 768px) {
    .apt-job-details__list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* LAUNCH-BLOCKERS-CLOSURE-1A: between the mobile breakpoint and the 1280px
   container + 2 x 16px row bleed, the .hp-page container is edge-to-edge and
   the .hp-row -16px margins overflowed the viewport by 16px (seen at 1280). */
@media (min-width: 769px) and (max-width: 1311px) {
  body.hp-template--listing-view-page .hp-page,
  body.hp-template--request-view-page .hp-page {
    padding-left: 16px;
    padding-right: 16px;
  }
}
