/* East Texas Pets companion styles. These intentionally use the FSE theme tokens/classes. */
.etp-submit-shell,
.etp-search-shell,
.etp-dashboard-shell,
.etp-single-listing {
  max-width: var(--wp--style--global--wide-size, 1160px);
  margin: 0 auto;
}

.etp-form-title {
  margin-top: 0;
  margin-bottom: .5rem;
}

.etp-form-lede,
.etp-help,
.etp-single-meta,
.etp-single-location,
.etp-management-card p {
  color: var(--etp-ink-soft, #625a44);
}

.etp-form-section,
.etp-search-form,
.etp-contact-panel,
.etp-listing-story,
.etp-details,
.etp-gallery,
.etp-management-card {
  background: var(--etp-paper-card, #f6f1e3);
  border: 1px solid var(--etp-line, #c7b98f);
  border-radius: 2px;
  box-shadow: var(--etp-shadow-card, 0 1px 2px rgb(31 51 40 / 7%), 0 12px 28px rgb(31 51 40 / 8%));
  padding: clamp(20px, 4vw, 34px);
  margin-top: 1.5rem;
}

.etp-form input[type="text"],
.etp-form input[type="email"],
.etp-form input[type="number"],
.etp-form input[type="search"],
.etp-form input[type="file"],
.etp-form select,
.etp-form textarea,
.etp-rich-editor {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--etp-line, #c7b98f);
  border-radius: 8px;
  background: #fffdf5;
  color: var(--etp-ink, #2b2a22);
  font: inherit;
  padding: .8rem .9rem;
  margin-top: .35rem;
}

.etp-form input[type="file"] {
  background: transparent;
}

.etp-rich-editor {
  min-height: 170px;
  overflow: auto;
}

.etp-rich-editor:empty::before {
  content: attr(data-placeholder);
  color: var(--etp-ink-soft, #625a44);
}

.etp-rich-source {
  position: absolute !important;
  left: -9999px !important;
  height: 1px !important;
  width: 1px !important;
  opacity: 0 !important;
}

.etp-grid {
  display: grid;
  gap: 1rem;
}

.etp-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.etp-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.etp-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.etp-grid-span-3 { grid-column: 1 / -1; }

.etp-choice-grid {
  border: 0;
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
}

.etp-choice-grid legend {
  font-weight: 700;
  margin-bottom: .75rem;
}

.etp-choice-grid label,
.etp-switch-row label {
  align-items: center;
  background: #fffdf5;
  border: 1px solid var(--etp-line-soft, #d8cda8);
  border-radius: 999px;
  display: flex;
  gap: .55rem;
  padding: .55rem .8rem;
}

.etp-switch-row {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-bottom: 1rem;
}

.etp-submit-actions {
  align-items: center;
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

.etp-form button,
.etp-management-card button,
.etp-bm-button,
a.etp-bm-button,
.bm-lc-button.etp-bm-button {
  background: var(--etp-pine, #1f3328) !important;
  border: 1.5px solid var(--etp-pine, #1f3328) !important;
  border-radius: 8px !important;
  color: var(--etp-paper-card, #f6f1e3) !important;
  cursor: pointer;
  display: inline-flex;
  font-weight: 700;
  justify-content: center;
  line-height: 1.2;
  padding: .85rem 1.35rem !important;
  text-decoration: none !important;
}

.etp-bm-button--secondary,
.etp-secondary-link {
  background: transparent !important;
  color: var(--etp-pine, #1f3328) !important;
}

.etp-notice {
  background: var(--etp-paper-card, #f6f1e3);
  border: 1px solid var(--etp-line, #c7b98f);
  border-left: 4px solid var(--etp-rust, #8c3b23);
  padding: 1rem;
  margin: 1rem 0;
}

.etp-notice--success { border-left-color: #238636; }
.etp-notice--error { border-left-color: #b42318; }

.etp-listings-grid--dynamic .etp-pet__photo {
  color: inherit;
  text-decoration: none;
}

.etp-pet__photo img,
.etp-file-card__photo img,
.etp-single-hero__media img,
.etp-gallery img,
.etp-management-card__image img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.etp-file-card__photo {
  overflow: hidden;
  text-decoration: none;
}

.etp-pet__top h3 a,
.etp-file-card h3 a {
  color: inherit;
  text-decoration: none;
}

.etp-results-title {
  margin-top: 2.5rem;
}

.etp-pagination ul {
  display: flex;
  gap: .5rem;
  list-style: none;
  padding-left: 0;
}

.etp-single-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr);
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}

.etp-single-hero__media {
  background: var(--etp-paper-card, #f6f1e3);
  border: 1px solid var(--etp-line, #c7b98f);
  min-height: 380px;
  overflow: hidden;
}

.etp-single-hero__media .etp-pet__photo {
  min-height: 380px;
}

.etp-details dl {
  display: grid;
  grid-template-columns: minmax(160px, 260px) 1fr;
  gap: .75rem 1rem;
}

.etp-details dt {
  color: var(--etp-pine, #1f3328);
  font-weight: 700;
}

.etp-details dd {
  margin: 0;
}

.etp-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}

.etp-gallery h2 {
  grid-column: 1 / -1;
}

.etp-gallery a {
  border: 1px solid var(--etp-line, #c7b98f);
  display: block;
  min-height: 180px;
  overflow: hidden;
}

.etp-management-list {
  display: grid;
  gap: 1rem;
}

.etp-management-card {
  display: grid;
  gap: 1rem;
  grid-template-columns: 180px 1fr;
}

.etp-management-card__image {
  aspect-ratio: 4 / 3;
  overflow: hidden;
}

.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  word-wrap: normal !important;
}

@media (max-width: 980px) {
  .etp-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .etp-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .etp-single-hero { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .etp-grid--2,
  .etp-grid--3,
  .etp-grid--4,
  .etp-choice-grid,
  .etp-management-card,
  .etp-details dl {
    grid-template-columns: 1fr;
  }
}

/* ETP Core 0.2.2 — single-listing polish, borderless shortcode surfaces, horizontal gallery row, and Better Messages contact CTA. */
.etp-file-card,
.etp-pet,
.etp-form-section,
.etp-search-form,
.etp-contact-panel,
.etp-listing-story,
.etp-details,
.etp-gallery,
.etp-management-card,
.etp-note,
.etp-notice,
.etp-single-hero__media,
.etp-pet__photo,
.etp-file-card__photo,
.etp-gallery a {
  border: 0 !important;
}

.etp-single-hero {
  background: var(--etp-rust, #2c6998);
  border-radius: var(--etp-radius-md, 8px);
  padding: clamp(22px, 4vw, 48px);
}

.etp-single-hero__media,
.etp-single-hero__media .etp-pet__photo {
  min-height: min(62vh, 620px);
}

.etp-single-hero__body {
  align-self: center;
}

.etp-single-hero .etp-eyebrow {
  color: #fff;
}

.etp-single-hero h1 {
  color: var(--etp-pine, #072a43);
  font-size: clamp(2.5rem, 6vw, 5.5rem);
  line-height: .98;
  overflow-wrap: anywhere;
}

.etp-single-hero .etp-single-meta,
.etp-single-hero .etp-single-location {
  color: var(--etp-line-soft, #d8d8d8);
}

.etp-listing-story h2 {
  color: #fff;
}

.etp-gallery {
  display: block;
}

.etp-gallery__row {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.etp-gallery__row a {
  aspect-ratio: 4 / 3;
  min-height: 0;
}

.etp-contact-panel--standalone {
  margin-top: clamp(28px, 5vw, 64px);
  padding: clamp(28px, 5vw, 64px);
  text-align: center;
  width: 100%;
}

.etp-contact-panel--standalone .etp-contact-panel__inner {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 1.35rem;
  margin: 0 auto;
  max-width: 860px;
}

.etp-contact-panel--standalone h2 {
  color: var(--etp-pine, #072a43);
  font-size: clamp(2rem, 5vw, 4.25rem);
  line-height: 1;
  margin: 0;
}

.etp-contact-panel--standalone .etp-bm-button,
.etp-contact-panel--standalone a.etp-bm-button,
.etp-contact-panel--standalone .bm-lc-button.etp-bm-button {
  min-width: min(100%, 260px);
}

@media (max-width: 980px) {
  .etp-gallery__row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .etp-gallery__row {
    display: flex;
    overflow-x: auto;
    padding-bottom: .25rem;
    scroll-snap-type: x proximity;
  }

  .etp-gallery__row a {
    flex: 0 0 min(78vw, 260px);
    scroll-snap-align: start;
  }
}

.etp-listing-story {
  background: var(--etp-rust, #2c6998);
  color: var(--etp-line-soft, #d8d8d8);
}

.etp-listing-story p,
.etp-listing-story li {
  color: var(--etp-line-soft, #d8d8d8);
}


/* ETP 0.2.3 / Theme 1.1.3 — full-bleed single listing hero, default About Pet colors, and no shadows. */
:root {
  --etp-shadow-card: none !important;
  --etp-shadow-card-hover: none !important;
}

.etp-single-hero {
  border-radius: 0 !important;
  box-sizing: border-box;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  width: 100vw !important;
}

.etp-single-hero__media,
.etp-single-hero__media img,
.etp-single-hero__media .etp-pet__photo {
  border-radius: 0 !important;
}

.etp-listing-story {
  background: var(--etp-paper-card, #ffffff) !important;
  color: var(--etp-ink, #2b2a22) !important;
}

.etp-listing-story h2 {
  color: var(--etp-pine, #072a43) !important;
}

.etp-listing-story p,
.etp-listing-story li,
.etp-listing-story div {
  color: var(--etp-ink-soft, #5a5a5a) !important;
}

.etp-single-listing,
.etp-single-listing *,
.etp-submit-shell,
.etp-submit-shell *,
.etp-search-shell,
.etp-search-shell *,
.etp-dashboard-shell,
.etp-dashboard-shell *,
.etp-file-card,
.etp-file-card *,
.etp-pet,
.etp-pet *,
.etp-contact-panel,
.etp-contact-panel * {
  box-shadow: none !important;
  text-shadow: none !important;
}

.etp-pet:hover,
.wp-block-button .wp-block-button__link:hover {
  transform: none !important;
}


/* ETP Core 0.2.4 — zero inter-section gaps on single listings, image modal, and universal no-shadow hardening. */
body.single-pet_listing :where(.wp-site-blocks > *, .etp-header, .etp-post-shell, .etp-single-listing-page, .etp-single-listing, .etp-single-hero, .etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.single-pet_listing .etp-post-shell,
body.single-pet_listing .etp-single-listing-page {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

body.single-pet_listing .etp-single-listing {
  max-width: none !important;
  width: 100%;
}

body.single-pet_listing .etp-single-hero,
body.single-pet_listing .etp-listing-story,
body.single-pet_listing .etp-details,
body.single-pet_listing .etp-gallery,
body.single-pet_listing .etp-contact-panel {
  box-sizing: border-box;
}

body.single-pet_listing .etp-listing-story,
body.single-pet_listing .etp-details,
body.single-pet_listing .etp-gallery {
  border-radius: 0 !important;
}

.etp-gallery__item {
  cursor: zoom-in;
}

.etp-lightbox {
  align-items: center;
  background: rgb(0 0 0 / 88%);
  display: none;
  inset: 0;
  justify-content: center;
  padding: clamp(16px, 4vw, 40px);
  position: fixed;
  z-index: 99999;
}

.etp-lightbox[aria-hidden="false"] {
  display: flex;
}

.etp-lightbox__dialog {
  max-height: 92vh;
  max-width: min(1120px, 94vw);
  position: relative;
}

.etp-lightbox__image {
  background: #000;
  display: block;
  height: auto;
  max-height: 88vh;
  max-width: 100%;
  object-fit: contain;
  width: auto;
}

.etp-lightbox__close {
  align-items: center;
  background: #fff !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #0c0c0c !important;
  cursor: pointer;
  display: inline-flex;
  font: 700 24px/1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  height: 44px;
  justify-content: center;
  padding: 0 !important;
  position: absolute;
  right: -14px;
  top: -14px;
  width: 44px;
}

.etp-lightbox__close:focus-visible {
  outline: 3px solid #2c6998;
  outline-offset: 3px;
}

:where(body *) {
  box-shadow: none !important;
  text-shadow: none !important;
}

:where(.etp-pet:hover, .etp-file-card:hover, .wp-block-button .wp-block-button__link:hover, .etp-bm-button:hover) {
  transform: none !important;
}

@media (max-width: 700px) {
  body.single-pet_listing .etp-post-shell,
  body.single-pet_listing .etp-single-listing-page,
  body.single-pet_listing .etp-single-listing,
  body.single-pet_listing .etp-single-hero {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .etp-lightbox__close {
    right: 4px;
    top: 4px;
  }
}


/* Single listing header-to-hero gap hardening. */
body.single-pet_listing :where(.wp-site-blocks > header, .wp-site-blocks > main, .wp-site-blocks > .wp-block-template-part + main, header.etp-header + main) {
  margin-block-start: 0 !important;
}

body.single-pet_listing :where(.etp-header, .etp-header__inner) {
  min-height: 0 !important;
  height: auto !important;
}

body.single-pet_listing .etp-header :where(.wp-block-spacer:empty) {
  display: none !important;
}

html.etp-lightbox-open,
html.etp-lightbox-open body {
  overflow: hidden;
}

/* ETP Core 0.2.5 — tighten single-listing section rhythm and add lightbox navigation. */
body.single-pet_listing .etp-single-listing {
  display: block !important;
}

body.single-pet_listing .etp-single-listing > :where(header, section),
body.single-pet_listing .etp-single-listing :where(.etp-single-hero, .etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) {
  height: auto !important;
  min-height: 0 !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.single-pet_listing .etp-single-listing :where(.etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) {
  padding-block: clamp(28px, 4vw, 48px) !important;
}

body.single-pet_listing .etp-single-listing :where(.etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) > :first-child,
body.single-pet_listing .etp-single-listing :where(.etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) :where(h1, h2, h3, h4, p, ul, ol, dl, figure):first-child {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

body.single-pet_listing .etp-single-listing :where(.etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) > :last-child,
body.single-pet_listing .etp-single-listing :where(.etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) :where(h1, h2, h3, h4, p, ul, ol, dl, figure):last-child {
  margin-block-end: 0 !important;
  margin-bottom: 0 !important;
}

body.single-pet_listing .etp-single-listing :where(.etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) h2 {
  line-height: 1 !important;
  margin-block: 0 clamp(18px, 2.5vw, 28px) !important;
}

body.single-pet_listing .etp-listing-story :where(p, ul, ol) {
  margin-block: 0 1rem !important;
}

body.single-pet_listing .etp-listing-story :where(p, ul, ol):last-child {
  margin-bottom: 0 !important;
}

body.single-pet_listing .etp-details dl {
  margin-block: 0 !important;
}

body.single-pet_listing .etp-gallery h2 + .etp-gallery__row {
  margin-top: 0 !important;
}

.etp-lightbox__prev,
.etp-lightbox__next {
  align-items: center;
  background: rgb(255 255 255 / 94%) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #0c0c0c !important;
  cursor: pointer;
  display: inline-flex;
  font: 700 34px/1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  height: 54px;
  justify-content: center;
  padding: 0 !important;
  position: fixed;
  top: 50%;
  transform: translateY(-50%);
  width: 54px;
  z-index: 2;
}

.etp-lightbox__prev { left: clamp(14px, 3vw, 40px); }
.etp-lightbox__next { right: clamp(14px, 3vw, 40px); }

.etp-lightbox__prev[hidden],
.etp-lightbox__next[hidden] {
  display: none !important;
}

.etp-lightbox__prev:focus-visible,
.etp-lightbox__next:focus-visible {
  outline: 3px solid #2c6998;
  outline-offset: 3px;
}

.etp-lightbox__counter {
  background: rgb(0 0 0 / 62%);
  border-radius: 999px;
  bottom: 14px;
  color: #fff;
  font: 600 13px/1.2 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  left: 50%;
  padding: 8px 12px;
  position: fixed;
  transform: translateX(-50%);
}

@media (max-width: 700px) {
  body.single-pet_listing .etp-single-listing :where(.etp-listing-story, .etp-details, .etp-gallery, .etp-contact-panel) {
    padding-block: 28px !important;
  }

  .etp-lightbox__prev,
  .etp-lightbox__next {
    height: 44px;
    width: 44px;
    font-size: 28px !important;
  }
}


/* ETP Core 0.2.6 — compact single-listing sections and SVG-centered lightbox controls. */
body.single-pet_listing .etp-single-listing {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  row-gap: 0 !important;
}

body.single-pet_listing .etp-single-listing > :where(header, section) {
  flex: 0 0 auto !important;
  margin: 0 !important;
}

body.single-pet_listing .etp-listing-story,
body.single-pet_listing .etp-details,
body.single-pet_listing .etp-gallery,
body.single-pet_listing .etp-contact-panel {
  margin: 0 !important;
  padding-top: clamp(18px, 2.25vw, 30px) !important;
  padding-bottom: clamp(18px, 2.25vw, 30px) !important;
}

body.single-pet_listing .etp-listing-story > h2,
body.single-pet_listing .etp-details > h2,
body.single-pet_listing .etp-gallery > h2,
body.single-pet_listing .etp-contact-panel h2 {
  margin-top: 0 !important;
  margin-bottom: clamp(12px, 1.6vw, 20px) !important;
}

body.single-pet_listing .etp-listing-story__content,
body.single-pet_listing .etp-listing-story__content > :where(p, ul, ol, div, figure),
body.single-pet_listing .etp-details dl,
body.single-pet_listing .etp-gallery__row {
  margin-top: 0 !important;
}

body.single-pet_listing .etp-listing-story__content > :where(p, ul, ol, div, figure):last-child,
body.single-pet_listing .etp-details dl,
body.single-pet_listing .etp-gallery__row {
  margin-bottom: 0 !important;
}

body.single-pet_listing .etp-listing-story__content > p:empty,
body.single-pet_listing .etp-listing-story__content > div:empty,
body.single-pet_listing .etp-listing-story__content .wp-block-spacer {
  display: none !important;
}

body.single-pet_listing .etp-listing-story__content > p:has(> br:only-child) {
  display: none !important;
}

body.single-pet_listing .etp-details dl {
  gap: clamp(8px, 1.2vw, 14px) clamp(20px, 4vw, 48px) !important;
}

body.single-pet_listing .etp-details dt,
body.single-pet_listing .etp-details dd {
  line-height: 1.25 !important;
}

.etp-lightbox__close,
.etp-lightbox__prev,
.etp-lightbox__next {
  align-items: center !important;
  display: inline-grid !important;
  justify-items: center !important;
  place-items: center !important;
  line-height: 1 !important;
  text-align: center !important;
}

.etp-lightbox__close {
  height: 48px !important;
  width: 48px !important;
}

.etp-lightbox__prev,
.etp-lightbox__next {
  height: 56px !important;
  width: 56px !important;
}

.etp-lightbox__icon {
  display: block !important;
  height: 24px !important;
  margin: 0 !important;
  pointer-events: none;
  width: 24px !important;
}

.etp-lightbox__prev .etp-lightbox__icon,
.etp-lightbox__next .etp-lightbox__icon {
  height: 28px !important;
  width: 28px !important;
}

@media (max-width: 700px) {
  body.single-pet_listing .etp-listing-story,
  body.single-pet_listing .etp-details,
  body.single-pet_listing .etp-gallery,
  body.single-pet_listing .etp-contact-panel {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }

  .etp-lightbox__close,
  .etp-lightbox__prev,
  .etp-lightbox__next {
    height: 46px !important;
    width: 46px !important;
  }
}



/* ETP Core 0.2.7 — hero contact CTA and requested featured-image radius. */
:root {
  --etp-sky: var(--wp--preset--color--sky, #8ECEFF);
}

body.single-pet_listing .etp-single-hero__media,
body.single-pet_listing .etp-single-hero__media img,
body.single-pet_listing .etp-single-hero__media .etp-pet__photo {
  border-radius: 8px !important;
}

body.single-pet_listing .etp-single-hero__media {
  overflow: hidden !important;
}

body.single-pet_listing .etp-single-hero__contact {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: clamp(18px, 2.5vw, 30px);
}

body.single-pet_listing .etp-single-hero__contact .etp-bm-button,
body.single-pet_listing .etp-single-hero__contact a.etp-bm-button,
body.single-pet_listing .etp-single-hero__contact .bm-lc-button.etp-bm-button {
  background: var(--etp-rust, #2C6998) !important;
  border-color: var(--etp-rust, #2C6998) !important;
  color: #fff !important;
  min-width: 170px;
}

body.single-pet_listing .etp-single-hero__contact .etp-bm-button:hover,
body.single-pet_listing .etp-single-hero__contact a.etp-bm-button:hover,
body.single-pet_listing .etp-single-hero__contact .bm-lc-button.etp-bm-button:hover {
  background: var(--etp-sky, #8ECEFF) !important;
  border-color: var(--etp-sky, #8ECEFF) !important;
  color: var(--etp-pine-dark, #0C0C0C) !important;
}

/* ETP Core 0.2.8 — listing length limits and Available Pet contact button color treatment. */
body.single-pet_listing .etp-single-hero__contact .etp-bm-button,
body.single-pet_listing .etp-single-hero__contact a.etp-bm-button,
body.single-pet_listing .etp-single-hero__contact .bm-lc-button.etp-bm-button,
body.single-pet_listing .etp-single-hero__contact .bm-pm-button.etp-bm-button {
  background: #fff !important;
  border-color: #fff !important;
  color: var(--etp-pine, #072A43) !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
}

body.single-pet_listing .etp-single-hero__contact .etp-bm-button:hover,
body.single-pet_listing .etp-single-hero__contact a.etp-bm-button:hover,
body.single-pet_listing .etp-single-hero__contact .bm-lc-button.etp-bm-button:hover,
body.single-pet_listing .etp-single-hero__contact .bm-pm-button.etp-bm-button:hover,
body.single-pet_listing .etp-single-hero__contact .etp-bm-button:focus-visible,
body.single-pet_listing .etp-single-hero__contact a.etp-bm-button:focus-visible,
body.single-pet_listing .etp-single-hero__contact .bm-lc-button.etp-bm-button:focus-visible,
body.single-pet_listing .etp-single-hero__contact .bm-pm-button.etp-bm-button:focus-visible {
  background: var(--etp-sky, #8ECEFF) !important;
  border-color: var(--etp-sky, #8ECEFF) !important;
  color: var(--etp-pine, #072A43) !important;
}


/* ETP 0.2.9 / Theme 1.1.9 — center Available Pet contact button text and hide logged-out auth links after login. */
body.single-pet_listing .etp-single-hero__contact {
  justify-content: center !important;
}

body.single-pet_listing .etp-single-hero__contact .etp-bm-button,
body.single-pet_listing .etp-single-hero__contact a.etp-bm-button,
body.single-pet_listing .etp-single-hero__contact .bm-lc-button.etp-bm-button,
body.single-pet_listing .etp-single-hero__contact .bm-pm-button.etp-bm-button,
body.single-pet_listing .etp-single-hero__contact .better-messages-button,
body.single-pet_listing .etp-single-hero__contact .bm-button {
  align-items: center !important;
  display: inline-flex !important;
  gap: 0.5em !important;
  justify-content: center !important;
  line-height: 1.1 !important;
  min-height: 56px !important;
  padding-inline: clamp(28px, 4vw, 56px) !important;
  text-align: center !important;
  vertical-align: middle !important;
  white-space: normal !important;
}

body.single-pet_listing .etp-single-hero__contact .etp-bm-button > *,
body.single-pet_listing .etp-single-hero__contact a.etp-bm-button > *,
body.single-pet_listing .etp-single-hero__contact .bm-lc-button.etp-bm-button > *,
body.single-pet_listing .etp-single-hero__contact .bm-pm-button.etp-bm-button > *,
body.single-pet_listing .etp-single-hero__contact .better-messages-button > *,
body.single-pet_listing .etp-single-hero__contact .bm-button > * {
  margin-inline: auto !important;
  text-align: center !important;
}

body.logged-in .etp-logged-out-only,
body.logged-in .etp-header .wp-block-button:has(a[href*="/join/"]),
body.logged-in .etp-header .wp-block-button:has(a[href*="/login/"]),
body.logged-in .etp-header .wp-block-button:has(a[href*="/sign-in/"]),
body.logged-in .etp-header .wp-block-button:has(a[href*="/register/"]),
body.logged-in .etp-header .wp-block-navigation-item:has(a[href*="/join/"]),
body.logged-in .etp-header .wp-block-navigation-item:has(a[href*="/login/"]),
body.logged-in .etp-header .wp-block-navigation-item:has(a[href*="/sign-in/"]),
body.logged-in .etp-header .wp-block-navigation-item:has(a[href*="/register/"]) {
  display: none !important;
}

/* ETP Core 0.2.10 — remove mobile top spacing above the single listing featured image. */
@media (max-width: 782px) {
  body.single-pet_listing :where(.wp-site-blocks, .wp-site-blocks > .wp-block-template-part, .wp-site-blocks > main, .etp-post-shell, .etp-single-listing-page, .etp-single-listing) {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
    padding-block-start: 0 !important;
    padding-top: 0 !important;
  }

  body.single-pet_listing .etp-single-hero {
    gap: 0 !important;
    margin-block-start: 0 !important;
    margin-top: 0 !important;
    padding-block-start: 0 !important;
    padding-top: 0 !important;
    row-gap: 0 !important;
  }

  body.single-pet_listing .etp-single-hero__media {
    align-self: start !important;
    margin-block-start: 0 !important;
    margin-top: 0 !important;
    padding-block-start: 0 !important;
    padding-top: 0 !important;
  }

  body.single-pet_listing .etp-single-hero__media :where(img, .etp-pet__photo) {
    display: block !important;
    margin-block-start: 0 !important;
    margin-top: 0 !important;
  }
}


/* ETP 0.2.11 / Theme 1.1.11 — restore intentional mobile inner spacing above the featured image.
   Keeps the Available Pet section flush to the header, but gives the image breathing room inside the black section. */
@media (max-width: 782px) {
  body.single-pet_listing .etp-single-hero {
    padding-block-start: clamp(16px, 4vw, 24px) !important;
    padding-top: clamp(16px, 4vw, 24px) !important;
  }

  body.single-pet_listing .etp-single-hero__media {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
  }
}

/* ETP Core 0.2.12 — square dynamic card images and pine/ink card title links. */
.etp-file-card h3 a,
.etp-file-card .wp-block-heading a,
.etp-listings-grid .etp-pet__top h3 a,
.etp-listings-grid .etp-pet h3 a {
  color: var(--etp-pine, #072a43) !important;
  text-decoration: none !important;
}

.etp-file-card h3 a:hover,
.etp-file-card h3 a:focus,
.etp-file-card .wp-block-heading a:hover,
.etp-file-card .wp-block-heading a:focus,
.etp-listings-grid .etp-pet__top h3 a:hover,
.etp-listings-grid .etp-pet__top h3 a:focus,
.etp-listings-grid .etp-pet h3 a:hover,
.etp-listings-grid .etp-pet h3 a:focus {
  color: var(--etp-ink, #2b2a22) !important;
}

.etp-file-card__photo,
.etp-listings-grid .etp-pet__photo {
  aspect-ratio: 1 / 1 !important;
  height: auto !important;
  min-height: 0 !important;
  width: 100% !important;
}

.etp-file-card__photo img,
.etp-listings-grid .etp-pet__photo img {
  aspect-ratio: 1 / 1 !important;
  height: 100% !important;
  object-fit: cover !important;
  width: 100% !important;
}

/* ETP Core 0.2.13 — latest listing card image bottom radius + compact file-number gap. */
.etp-file-card__photo,
.etp-file-card__photo[style] {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  margin-bottom: var(--wp--preset--spacing--20, 0.5rem) !important;
  overflow: hidden !important;
}

.etp-file-card__photo img,
.etp-file-card__photo picture,
.etp-file-card__photo picture img {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.etp-file-card__photo + .etp-file-card__no,
.etp-file-card__photo + p.etp-file-card__no {
  margin-block-start: var(--wp--preset--spacing--20, 0.5rem) !important;
  margin-top: var(--wp--preset--spacing--20, 0.5rem) !important;
}

/* ETP Core 0.2.14 — apply compact image/body treatment to registry listing cards, not only latest file cards. */
.etp-listings-grid .etp-pet.etp-pet--dynamic > .etp-pet__photo,
.etp-listings-grid .etp-pet > a.etp-pet__photo,
.etp-pet.etp-pet--dynamic > .etp-pet__photo,
.etp-pet > a.etp-pet__photo {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
}

.etp-listings-grid .etp-pet.etp-pet--dynamic > .etp-pet__photo > img,
.etp-listings-grid .etp-pet > a.etp-pet__photo > img,
.etp-pet.etp-pet--dynamic > .etp-pet__photo > img,
.etp-pet > a.etp-pet__photo > img,
.etp-pet__photo picture,
.etp-pet__photo picture img {
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.etp-listings-grid .etp-pet.etp-pet--dynamic > .etp-pet__body,
.etp-listings-grid .etp-pet > .etp-pet__body,
.etp-pet.etp-pet--dynamic > .etp-pet__body,
.etp-pet > .etp-pet__body {
  padding-top: var(--wp--preset--spacing--20, 0.5rem) !important;
}

.etp-listings-grid .etp-pet .etp-pet__body > .etp-pet__no,
.etp-pet .etp-pet__body > .etp-pet__no {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}


/* ETP 1.1.20 / Core 0.2.15 — correct target: homepage registry cards only.
   These rules intentionally avoid .etp-file-card so the hero/latest-listing card is not affected. */
section.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet,
.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet,
body.home .etp-listings-grid.etp-listings-grid--dynamic .etp-pet,
body.front-page .etp-listings-grid.etp-listings-grid--dynamic .etp-pet {
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

section.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo,
.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo,
body.home .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo,
body.front-page .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo {
  aspect-ratio: 1 / 1 !important;
  border: 0 !important;
  border-top-left-radius: var(--etp-radius-md, 8px) !important;
  border-top-right-radius: var(--etp-radius-md, 8px) !important;
  border-bottom-left-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
  display: block !important;
  flex: 0 0 auto !important;
  height: auto !important;
  margin: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  width: 100% !important;
}

section.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo > img,
.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo > img,
body.home .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo > img,
body.front-page .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > a.etp-pet__photo > img {
  aspect-ratio: 1 / 1 !important;
  border-radius: 0 !important;
  display: block !important;
  height: 100% !important;
  margin: 0 !important;
  object-fit: cover !important;
  width: 100% !important;
}

section.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body,
.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body,
body.home .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body,
body.front-page .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body {
  padding-top: var(--wp--preset--spacing--20, 0.5rem) !important;
}

section.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body > .etp-pet__no,
.etp-listings .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body > .etp-pet__no,
body.home .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body > .etp-pet__no,
body.front-page .etp-listings-grid.etp-listings-grid--dynamic .etp-pet > .etp-pet__body > .etp-pet__no {
  margin: 0 !important;
}


/* ETP 1.1.20 — restore hero/latest file-card image treatment; the compact bottom-radius change belongs only to the registry grid cards above. */
.etp-file-card__photo,
.etp-file-card__photo[style] {
  border-radius: var(--etp-radius-md, 8px) !important;
  margin-bottom: 16px !important;
  overflow: hidden !important;
}

.etp-file-card__photo img,
.etp-file-card__photo picture,
.etp-file-card__photo picture img {
  border-radius: 0 !important;
}
