/*
   Public business profile responsive redesign.
   This stylesheet intentionally scopes every rule to .public-business-profile so
   the refreshed storefront does not alter unrelated PublicMarket pages.
*/

.public-business-profile {
  --profile-shell: min(1280px, calc(100% - 3rem));
  --profile-card-border: #d7e6e2;
  --profile-card-shadow: 0 14px 36px rgba(0, 78, 72, .075);
  --profile-card-shadow-hover: 0 18px 40px rgba(0, 78, 72, .12);
  --profile-soft: #f4faf8;
  --profile-soft-strong: #eaf6f2;
  --profile-ink: #0c514a;
  --profile-muted: #58766f;
}

.public-business-profile main {
  background:
    radial-gradient(circle at 88% 6%, rgba(64, 185, 158, .09), transparent 24rem),
    linear-gradient(180deg, #f6fbf9 0, #fff 34rem);
}

.public-business-profile .container-shell.public-profile-grid,
.public-business-profile .profile-storefront-hero .container-shell {
  width: var(--profile-shell);
}

.public-business-profile .breadcrumbs {
  width: var(--profile-shell);
  margin: .8rem auto .65rem;
  padding-inline: 0;
}

/* Hero -------------------------------------------------------------------- */
.public-business-profile .profile-storefront-hero {
  padding: 0 0 1.05rem;
}

.public-business-profile .profile-hero-card {
  --profile-hero-logo-size: 116px;
  --profile-hero-logo-overlap: 52px;
  overflow: hidden;
  border: 1px solid var(--profile-card-border);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 20px 54px rgba(0, 78, 72, .11);
}

.public-business-profile .profile-hero-media {
  height: clamp(245px, 26vw, 345px);
  background: linear-gradient(135deg, #075d54, #0a7568);
}

.public-business-profile .profile-hero-cover {
  filter: saturate(.97) contrast(1.02);
}

.public-business-profile .profile-hero-media-shade {
  background:
    linear-gradient(180deg, rgba(0, 33, 30, .04) 18%, rgba(0, 33, 30, .12) 50%, rgba(0, 33, 30, .55) 100%),
    linear-gradient(90deg, rgba(0, 48, 43, .08), transparent 55%);
}

.public-business-profile .profile-view-gallery {
  right: 1.15rem;
  top: 1.15rem;
  min-height: 42px;
  padding: .5rem .82rem;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 12px;
  background: rgba(0, 55, 49, .76);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .14);
  font-size: .75rem;
}

.public-business-profile .profile-hero-content {
  padding: 0 clamp(1rem, 2.4vw, 1.7rem) 1.3rem;
  background: linear-gradient(180deg, #fff, #fcfefd);
}

.public-business-profile .profile-hero-heading {
  grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr) auto;
  gap: 1.15rem;
  align-items: end;
}

.public-business-profile .profile-hero-logo {
  border: 0;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 16px 34px rgba(0, 78, 72, .19);
}

.public-business-profile .profile-hero-logo img {
  object-fit: contain;
  padding: 0;
}

.public-business-profile .profile-identity {
  padding-top: calc(var(--profile-hero-logo-overlap) + .6rem);
}

.public-business-profile .profile-identity h1 {
  max-width: 760px;
  color: #074f48;
  font-size: clamp(2.05rem, 3.5vw, 3rem);
  font-weight: 760;
  letter-spacing: -.045em;
}

.public-business-profile .profile-category-row {
  margin-bottom: .45rem;
}

.public-business-profile .profile-category-row a,
.public-business-profile .profile-category-row > span {
  min-height: 28px;
  padding: .28rem .68rem;
  border: 1px solid #cbe4dd;
  color: #0a6258;
  background: #edf8f5;
  font-size: .68rem;
}

.public-business-profile .profile-hero-interest {
  align-self: end;
  padding-top: calc(var(--profile-hero-logo-overlap) + .5rem);
}

.public-business-profile .profile-hero-interest .btn {
  min-height: 42px;
  margin: 0;
  border-radius: 11px;
}

.public-business-profile .profile-hero-details {
  grid-template-columns: minmax(0, 1fr) minmax(480px, 650px);
  gap: 1rem 1.45rem;
  align-items: end;
  margin-top: .9rem;
  padding-top: .95rem;
  border-top: 1px solid #edf2f0;
}

.public-business-profile .profile-summary {
  gap: .35rem .75rem;
  margin: 0;
}

.public-business-profile .profile-summary > :is(span, a) {
  min-height: 30px;
  gap: .35rem;
  font-size: .78rem;
}

.public-business-profile .profile-review-summary { order: 1; }
.public-business-profile .profile-area-summary { order: 2; }
.public-business-profile .profile-open-summary { order: 3; }

.public-business-profile .profile-area-summary,
.public-business-profile .profile-open-summary {
  border-left: 1px solid #dbe7e4;
  padding-left: .75rem;
}

.public-business-profile .profile-open-summary.is-open {
  color: #14825c;
}

.public-business-profile .profile-open-summary i {
  box-shadow: 0 0 0 4px rgba(20, 130, 92, .09);
}

.public-business-profile .business-online-presence {
  margin-top: .55rem;
}

.public-business-profile .business-online-links a {
  min-height: 36px;
  border-color: #d8e6e2;
  border-radius: 999px;
  background: #fff;
}

.public-business-profile .profile-primary-actions {
  max-width: none;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .6rem;
  margin: 0;
}

.public-business-profile .profile-primary-actions.profile-action-count-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-business-profile .profile-primary-actions.profile-action-count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-business-profile .profile-primary-actions.profile-action-count-1 {
  grid-template-columns: 1fr;
}

.public-business-profile .profile-primary-actions .btn {
  min-height: 48px;
  margin: 0;
  border-radius: 11px;
  padding: .62rem .72rem;
  font-size: .76rem;
  font-weight: 850;
  box-shadow: none;
}

.public-business-profile .profile-primary-actions .profile-booking-action {
  color: #281207;
  border-color: #ff6b24;
  background: #ff6b24;
  box-shadow: 0 9px 20px rgba(248, 102, 30, .2);
}

.public-business-profile .profile-primary-actions .profile-booking-action:hover {
  color: #281207;
  border-color: #ff8248;
  background: #ff8248;
}

.public-business-profile .profile-primary-actions .profile-inquiry-action.btn-outline-brand {
  color: #075f56;
}

/* Section navigation ------------------------------------------------------ */
.public-business-profile .profile-storefront-nav {
  top: var(--profile-header-height, 72px);
  border-color: #dae7e3;
  background: rgba(255, 255, 255, .965);
  box-shadow: 0 7px 22px rgba(0, 78, 72, .05);
  backdrop-filter: blur(16px);
}

.public-business-profile .profile-storefront-nav .container-shell {
  width: var(--profile-shell);
  gap: .25rem;
  padding: .42rem 0;
}

.public-business-profile .profile-storefront-nav a {
  min-height: 42px;
  padding: .55rem .88rem;
  border-radius: 10px;
  font-size: .76rem;
  font-weight: 760;
  transition: color .15s ease, background .15s ease;
}

.public-business-profile .profile-storefront-nav a:hover {
  color: #075f56;
  background: #f1f8f6;
}

.public-business-profile .profile-storefront-nav a.is-active,
.public-business-profile .profile-storefront-nav a[aria-current="location"] {
  color: #064f48;
  background: #eaf6f2;
}

.public-business-profile .profile-storefront-nav a.is-active::after,
.public-business-profile .profile-storefront-nav a[aria-current="location"]::after {
  right: .72rem;
  bottom: -.42rem;
  left: .72rem;
  height: 3px;
}

/* Main content ------------------------------------------------------------ */
.public-business-profile .profile-storefront {
  width: var(--profile-shell);
  padding-block: 1.2rem 2.5rem;
}

.public-business-profile .profile-storefront .profile-main {
  gap: 1rem;
}

.public-business-profile .profile-storefront .profile-section,
.public-business-profile .profile-support-grid > * {
  border: 1px solid var(--profile-card-border);
  border-radius: 19px;
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 8px 26px rgba(0, 78, 72, .045);
}

.public-business-profile .profile-storefront .profile-section {
  padding: clamp(1rem, 2.2vw, 1.5rem);
  scroll-margin-top: 138px;
}

.public-business-profile .profile-storefront .section-heading {
  margin-bottom: 1rem;
}

.public-business-profile .profile-storefront .section-heading h2,
.public-business-profile .profile-booking-copy h2 {
  margin: .08rem 0 0;
  color: #07534b;
  font-size: clamp(1.35rem, 2.2vw, 1.72rem);
  letter-spacing: -.035em;
}

.public-business-profile .profile-storefront .section-heading p,
.public-business-profile .profile-booking-copy > p {
  margin: .35rem 0 0;
  color: var(--profile-muted);
  font-size: .82rem;
  line-height: 1.55;
}

.public-business-profile .profile-storefront .eyebrow {
  margin-bottom: .35rem;
  color: #08796c;
  font-size: .69rem;
  letter-spacing: .105em;
}

/* About ------------------------------------------------------------------- */
.public-business-profile .profile-about-layout,
.public-business-profile .profile-about-layout.has-brief-description {
  grid-template-columns: minmax(0, 1.75fr) minmax(300px, .8fr);
  gap: 1.05rem;
  align-items: stretch;
}

.public-business-profile .profile-about-copy {
  max-width: 80ch;
  margin: .2rem 0 0;
  color: #244e48;
  font-size: .92rem;
  line-height: 1.72;
}

.public-business-profile .profile-facts,
.public-business-profile .has-brief-description .profile-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .78rem 1rem;
  align-content: start;
  padding: 1rem 1.05rem;
  border: 1px solid #dce9e5;
  border-radius: 15px;
  background: linear-gradient(145deg, #f8fcfb, #eff8f5);
}

.public-business-profile .profile-facts h3,
.public-business-profile .has-brief-description .profile-facts h3 {
  position: static;
  width: auto;
  height: auto;
  overflow: visible;
  clip-path: none;
  grid-column: 1 / -1;
  margin: 0;
  color: #0a584f;
  font-size: 1rem;
}

.public-business-profile .profile-facts .profile-about-categories {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}

.public-business-profile .profile-facts .profile-about-categories a {
  min-height: 30px;
  padding: .25rem .58rem;
  border-radius: 999px;
  color: #0a655b;
  background: #e6f5f0;
  font-size: .7rem;
  text-decoration: none;
}

/* Products & services ----------------------------------------------------- */
.public-business-profile .profile-catalog-filters {
  grid-template-columns: minmax(210px, 1.55fr) repeat(4, minmax(120px, .85fr)) auto;
  gap: .55rem;
  padding: .8rem;
  margin-bottom: 1rem;
  border: 1px solid #dbe8e4;
  border-radius: 14px;
  background: #f7fbfa;
}

.public-business-profile .profile-storefront .profile-catalog-filters label {
  color: #285f56;
  font-size: .68rem;
}

.public-business-profile .profile-storefront .profile-catalog-filters input,
.public-business-profile .profile-storefront .profile-catalog-filters select,
.public-business-profile .profile-storefront .profile-catalog-filters > .btn {
  min-height: 44px;
  height: 44px;
  border-radius: 10px;
  font-size: .75rem;
}

.public-business-profile .profile-storefront .profile-catalog-filters :is(input, select) {
  border-color: #d1e0dc;
  background: #fff;
}

.public-business-profile .profile-listing-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .78rem;
}

.public-business-profile .profile-listing-card {
  overflow: hidden;
  border: 1px solid #dce8e4;
  border-radius: 15px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0, 78, 72, .04);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.public-business-profile .profile-listing-card:hover,
.public-business-profile .profile-listing-card:focus-within {
  transform: translateY(-3px);
  border-color: #bcd9d1;
  box-shadow: var(--profile-card-shadow-hover);
}

.public-business-profile .profile-listing-media {
  aspect-ratio: 16 / 9;
  background: #edf5f3;
}

.public-business-profile .profile-listing-body {
  min-height: 188px;
  padding: .78rem .82rem .86rem;
}

.public-business-profile .profile-listing-card h3 {
  margin: .32rem 0 .28rem;
  font-size: .96rem;
}

.public-business-profile .profile-listing-card p {
  font-size: .75rem;
  line-height: 1.48;
}

.public-business-profile .profile-listing-footer a {
  color: #08796c;
  font-weight: 850;
}

/* Appointment feature ---------------------------------------------------- */
.public-business-profile .profile-booking-section {
  overflow: hidden;
  border-color: #cce7df !important;
  background: linear-gradient(135deg, #f5fcf9 0%, #eef9f5 68%, #e5f6f0 100%) !important;
}

.public-business-profile .profile-booking-experience {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 180px;
  gap: 1.4rem;
  align-items: center;
}

.public-business-profile .profile-booking-copy {
  min-width: 0;
}

.public-business-profile .profile-booking-copy > p {
  max-width: 760px;
}

.public-business-profile .profile-booking-benefits {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .9rem;
}

.public-business-profile .profile-booking-benefits span {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 32px;
  padding: .32rem .62rem;
  border: 1px solid #cee5df;
  border-radius: 999px;
  color: #36665e;
  background: rgba(255, 255, 255, .78);
  font-size: .7rem;
  font-weight: 730;
}

.public-business-profile .profile-booking-benefits span::before {
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: #118b77;
  content: "✓";
  font-size: .58rem;
  font-weight: 900;
}

.public-business-profile .profile-booking-copy .btn {
  min-height: 44px;
  margin-top: 1rem;
  border-radius: 10px;
  padding-inline: 1.1rem;
}

.public-business-profile .profile-booking-visual {
  width: 150px;
  height: 150px;
  display: grid;
  place-items: center;
  justify-self: end;
  border: 1px solid #c9e8de;
  border-radius: 50%;
  color: #0f9a83;
  background: rgba(255, 255, 255, .62);
  box-shadow: inset 0 0 0 16px rgba(230, 248, 242, .72);
}

.public-business-profile .profile-booking-visual svg {
  width: 84px;
  height: 84px;
  fill: none;
  stroke: currentColor;
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Reviews ---------------------------------------------------------------- */
.public-business-profile .profile-review-summary-card {
  min-width: 285px;
  min-height: 76px;
  border-radius: 16px;
  background: linear-gradient(135deg, #f9fcfb, #edf8f5);
}

.public-business-profile .profile-storefront .profile-review-grid {
  gap: .9rem;
}

.public-business-profile .profile-review-card {
  border-radius: 15px;
  box-shadow: 0 5px 16px rgba(0, 78, 72, .04);
}

.public-business-profile .profile-feedback-action {
  border-radius: 15px;
  background: linear-gradient(135deg, #e8f7f2, #f6fbf9);
}

/* Gallery ---------------------------------------------------------------- */
.public-business-profile .profile-gallery-card,
.public-business-profile .profile-gallery-more-card {
  border-radius: 16px;
}

.public-business-profile .profile-gallery-showcase {
  gap: .78rem;
}

/* Location --------------------------------------------------------------- */
.public-business-profile .profile-location-card,
.public-business-profile .profile-surface-card,
.public-business-profile .profile-map-card {
  border-color: #d9e6e2;
  border-radius: 15px;
}

.public-business-profile .profile-location-card-featured {
  background: linear-gradient(145deg, #f7fbfa, #eff8f5);
}

.public-business-profile .profile-map-card {
  overflow: hidden;
  box-shadow: 0 5px 16px rgba(0, 78, 72, .045);
}

.public-business-profile .profile-map-card .public-business-map,
.public-business-profile .profile-map-card .public-map-canvas {
  min-height: 330px;
}

.public-business-profile .profile-heading-action {
  min-height: 40px;
  margin: 0;
  border-radius: 10px;
}

/* Inquiry ---------------------------------------------------------------- */
.public-business-profile .profile-inquiry-section {
  background: linear-gradient(180deg, #fff 0%, #fbfefd 100%) !important;
}

.public-business-profile .profile-inquiry-layout {
  gap: 1.05rem;
}

.public-business-profile .profile-inquiry-section .inquiry-form,
.public-business-profile .profile-inquiry-help-card,
.public-business-profile .profile-inquiry-trust-card {
  border-radius: 15px;
}

.public-business-profile .profile-inquiry-section .inquiry-form {
  padding: 1rem;
  border: 1px solid #dbe8e4;
  background: #fbfefd;
}

.public-business-profile .profile-request-panel {
  border-radius: 13px;
  background: linear-gradient(145deg, #f5faf8, #eef7f4);
}

.public-business-profile .profile-inquiry-section .inquiry-form :is(input, select, textarea) {
  border-radius: 11px;
  background: #fff;
}

.public-business-profile .profile-inquiry-help-card,
.public-business-profile .profile-inquiry-trust-card {
  box-shadow: 0 6px 18px rgba(0, 78, 72, .04);
}

/* Feedback control ------------------------------------------------------- */
.public-business-profile .platform-feedback-floating {
  right: calc(16px + env(safe-area-inset-right));
  bottom: calc(16px + env(safe-area-inset-bottom));
  transform: scale(.9);
  transform-origin: bottom right;
}

/* Tablet ----------------------------------------------------------------- */
@media (max-width: 1180px) {
  .public-business-profile {
    --profile-shell: min(100% - 2rem, 1120px);
  }

  .public-business-profile .profile-hero-details {
    grid-template-columns: minmax(0, 1fr);
  }

  .public-business-profile .profile-primary-actions {
    max-width: 820px;
  }

  .public-business-profile .profile-catalog-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .public-business-profile .profile-catalog-filters label:first-of-type {
    grid-column: span 2;
  }

  .public-business-profile .profile-storefront .profile-catalog-filters > .btn {
    width: 100%;
  }

  .public-business-profile .profile-listing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .public-business-profile .profile-hero-heading {
    grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr);
  }

  .public-business-profile .profile-hero-interest {
    grid-column: 2;
    padding-top: .2rem;
  }

  .public-business-profile .profile-hero-interest > .d-flex {
    justify-content: flex-start;
  }

  .public-business-profile .profile-about-layout,
  .public-business-profile .profile-about-layout.has-brief-description {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-facts,
  .public-business-profile .has-brief-description .profile-facts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .public-business-profile .profile-facts h3,
  .public-business-profile .profile-facts .profile-about-categories,
  .public-business-profile .profile-facts > a {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-business-profile .profile-booking-experience {
    grid-template-columns: minmax(0, 1fr) 130px;
  }

  .public-business-profile .profile-booking-visual {
    width: 120px;
    height: 120px;
  }

  .public-business-profile .profile-booking-visual svg {
    width: 70px;
    height: 70px;
  }
}

/* Mobile ----------------------------------------------------------------- */
@media (max-width: 767px) {
  .public-business-profile {
    --profile-shell: calc(100% - 1rem);
  }

  .public-business-profile main {
    background: linear-gradient(180deg, #f4faf8 0, #fff 25rem);
  }

  .public-business-profile .breadcrumbs {
    display: none;
  }

  .public-business-profile .profile-storefront-hero {
    padding-top: .55rem;
  }

  .public-business-profile .profile-hero-card {
    --profile-hero-logo-size: 78px;
    --profile-hero-logo-overlap: 34px;
    border-radius: 17px;
  }

  .public-business-profile .profile-hero-media {
    height: clamp(165px, 48vw, 205px);
  }

  .public-business-profile .profile-view-gallery {
    right: .65rem;
    top: .65rem;
    min-height: 35px;
    padding: .38rem .55rem;
  }

  .public-business-profile .profile-view-gallery span {
    font-size: .65rem;
  }

  .public-business-profile .profile-hero-content {
    padding: 0 .82rem .9rem;
  }

  .public-business-profile .profile-hero-heading {
    grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr);
    gap: .72rem;
  }

  .public-business-profile .profile-hero-logo {
    border-width: 0;
    border-radius: 18px;
  }

  .public-business-profile .profile-identity {
    padding-top: calc(var(--profile-hero-logo-overlap) + .38rem);
  }

  .public-business-profile .profile-identity h1 {
    font-size: clamp(1.55rem, 7vw, 1.95rem);
  }

  .public-business-profile .profile-category-row a,
  .public-business-profile .profile-category-row > span {
    min-height: 23px;
    padding: .18rem .45rem;
    font-size: .6rem;
  }

  .public-business-profile .profile-hero-interest {
    grid-column: 1 / -1;
    padding-top: .45rem;
  }

  .public-business-profile .profile-hero-interest .btn {
    min-width: 78px;
    min-height: 38px;
    padding: .42rem .65rem;
    font-size: .68rem;
  }

  .public-business-profile .profile-hero-details {
    gap: .7rem;
    margin-top: .65rem;
    padding-top: .75rem;
  }

  .public-business-profile .profile-summary {
    gap: .28rem .52rem;
  }

  .public-business-profile .profile-summary > :is(span, a) {
    min-height: 25px;
    font-size: .69rem;
  }

  .public-business-profile .profile-area-summary,
  .public-business-profile .profile-open-summary {
    border-left: 0;
    padding-left: 0;
  }

  .public-business-profile .business-online-presence {
    margin-top: .3rem;
  }

  .public-business-profile .profile-primary-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .4rem;
  }

  .public-business-profile .profile-primary-actions.profile-action-count-4 .profile-booking-action {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-primary-actions.profile-action-count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .public-business-profile .profile-primary-actions.profile-action-count-3 .profile-booking-action {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-primary-actions.profile-action-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-business-profile .profile-primary-actions.profile-action-count-2 .profile-booking-action {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-primary-actions .btn {
    min-height: 43px;
    gap: .28rem;
    padding: .48rem .32rem;
    border-radius: 10px;
    font-size: .64rem;
  }

  .public-business-profile .profile-primary-actions .profile-booking-action {
    min-height: 46px;
    font-size: .72rem;
  }

  .public-business-profile .profile-primary-actions svg {
    width: 16px;
    height: 16px;
  }

  .public-business-profile .profile-storefront-nav .container-shell {
    width: 100%;
    gap: .15rem;
    padding: .34rem .5rem;
    scroll-padding-inline: .5rem;
  }

  .public-business-profile .profile-storefront-nav a {
    min-height: 39px;
    padding: .45rem .67rem;
    font-size: .7rem;
  }

  .public-business-profile .profile-storefront-nav a.is-active::after,
  .public-business-profile .profile-storefront-nav a[aria-current="location"]::after {
    right: .58rem;
    left: .58rem;
    bottom: -.35rem;
  }

  .public-business-profile .profile-storefront {
    padding-block: .75rem 1.8rem;
  }

  .public-business-profile .profile-storefront .profile-main {
    gap: .72rem;
  }

  .public-business-profile .profile-storefront .profile-section {
    padding: .95rem .85rem;
    border-radius: 15px;
    scroll-margin-top: 118px;
  }

  .public-business-profile .profile-storefront .section-heading {
    gap: .35rem;
  }

  .public-business-profile .profile-storefront .section-heading h2,
  .public-business-profile .profile-booking-copy h2 {
    font-size: 1.35rem;
  }

  .public-business-profile .profile-about-copy {
    font-size: .84rem;
    line-height: 1.63;
  }

  .public-business-profile .profile-facts,
  .public-business-profile .has-brief-description .profile-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    padding: .85rem;
  }

  .public-business-profile .profile-catalog-filters,
  .public-business-profile .profile-catalog-filters label:first-of-type {
    grid-template-columns: 1fr;
    grid-column: auto;
  }

  .public-business-profile .profile-catalog-filters {
    padding: .7rem;
  }

  .public-business-profile .profile-listing-grid {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-listing-card {
    grid-template-columns: 104px minmax(0, 1fr);
    grid-template-rows: auto;
  }

  .public-business-profile .profile-listing-media {
    height: 100%;
    min-height: 145px;
    aspect-ratio: auto;
    border-right: 1px solid #e2ece9;
    border-bottom: 0;
  }

  .public-business-profile .profile-listing-body {
    min-height: 145px;
    padding: .7rem;
  }

  .public-business-profile .profile-listing-card p {
    -webkit-line-clamp: 2;
    font-size: .7rem;
  }

  .public-business-profile .profile-booking-experience {
    grid-template-columns: 1fr;
    gap: .9rem;
  }

  .public-business-profile .profile-booking-benefits {
    gap: .35rem;
    margin-top: .75rem;
  }

  .public-business-profile .profile-booking-benefits span {
    min-height: 29px;
    padding: .28rem .5rem;
    font-size: .64rem;
  }

  .public-business-profile .profile-booking-copy .btn {
    width: 100%;
  }

  .public-business-profile .profile-booking-visual {
    display: none;
  }

  .public-business-profile .profile-review-summary-card {
    width: 100%;
    min-width: 0;
  }

  .public-business-profile .profile-storefront .profile-review-grid {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-map-card .public-business-map,
  .public-business-profile .profile-map-card .public-map-canvas {
    min-height: 230px;
  }

  .public-business-profile .profile-inquiry-section .inquiry-form {
    padding: .82rem;
  }

  .public-business-profile .platform-feedback-floating {
    right: calc(10px + env(safe-area-inset-right));
    bottom: calc(10px + env(safe-area-inset-bottom));
    transform: scale(.84);
  }
}

@media (max-width: 420px) {
  .public-business-profile .profile-hero-card {
    --profile-hero-logo-size: 72px;
  }

  .public-business-profile .profile-primary-actions .btn {
    flex-direction: column;
    gap: .18rem;
    font-size: .6rem;
  }

  .public-business-profile .profile-primary-actions .profile-booking-action {
    flex-direction: row;
    font-size: .7rem;
  }

  .public-business-profile .profile-facts,
  .public-business-profile .has-brief-description .profile-facts {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-listing-card {
    grid-template-columns: 92px minmax(0, 1fr);
  }

  .public-business-profile .profile-listing-media,
  .public-business-profile .profile-listing-body {
    min-height: 132px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .public-business-profile .profile-listing-card,
  .public-business-profile .profile-storefront-nav a {
    transition: none;
  }

  .public-business-profile .profile-listing-card:hover,
  .public-business-profile .profile-listing-card:focus-within {
    transform: none;
  }
}

/* Compact customer profile when the business has not supplied media. */
.public-business-profile .profile-no-cover .profile-hero-media {
  height: clamp(88px, 10vw, 132px);
}
.public-business-profile .profile-hero-logo-fallback {
  display: grid;
  place-items: center;
  background: #e3f2ee;
  color: #075d54;
  font-size: 2.4rem;
  font-weight: 750;
}
.public-business-profile .profile-share-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-top: .5rem;
}
.public-business-profile .profile-share-actions[hidden] { display: none; }
.public-business-profile .profile-share-actions [role="status"] { flex-basis: 100%; }
.public-business-profile .platform-feedback-floating { display: none; }

/* -------------------------------------------------------------------------
   v3.33 visual refinement
   Mirrors the approved responsive profile mockup while retaining the existing
   dynamic profile data and interaction behavior.
   ------------------------------------------------------------------------- */
.public-business-profile {
  --profile-shell: min(1320px, calc(100% - 3.25rem));
  --profile-deep: #045a52;
  --profile-brand: #087f71;
  --profile-accent: #ff6a20;
  --profile-line: #d9e8e4;
  --profile-surface: #ffffff;
  --profile-surface-soft: #f6fbf9;
  --profile-text: #153f3a;
  --profile-muted-2: #5f7c76;
}

.public-business-profile main {
  background:
    radial-gradient(circle at 91% 7%, rgba(57, 183, 154, .11), transparent 27rem),
    linear-gradient(180deg, #f5fbf9 0, #ffffff 39rem);
}

.public-business-profile .breadcrumbs {
  margin-top: 1rem;
  margin-bottom: .8rem;
  font-size: .78rem;
}

.public-business-profile .profile-storefront-hero {
  padding-bottom: 1rem;
}

.public-business-profile .profile-hero-card {
  --profile-hero-logo-size: 124px;
  --profile-hero-logo-overlap: 58px;
  border-radius: 22px;
  border-color: #cfe1dc;
  box-shadow: 0 20px 56px rgba(2, 82, 73, .12);
}

.public-business-profile .profile-hero-media {
  position: relative;
  height: clamp(270px, 25vw, 350px);
  isolation: isolate;
}

.public-business-profile .profile-hero-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.public-business-profile .profile-hero-media-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 37, 34, .73) 0%, rgba(0, 37, 34, .42) 36%, rgba(0, 37, 34, .05) 72%),
    linear-gradient(180deg, rgba(0, 28, 25, .02) 28%, rgba(0, 28, 25, .22) 100%);
  pointer-events: none;
}

.public-business-profile .profile-cover-copy {
  position: absolute;
  z-index: 2;
  left: clamp(1.25rem, 3vw, 2.25rem);
  bottom: clamp(1.25rem, 3vw, 2rem);
  width: min(520px, 58%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .32rem;
  color: #fff;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .2);
}

.public-business-profile .profile-cover-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: .25rem .62rem;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 999px;
  background: rgba(2, 82, 73, .56);
  backdrop-filter: blur(8px);
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.public-business-profile .profile-cover-copy > strong {
  max-width: 16ch;
  font-size: clamp(1.85rem, 3vw, 2.75rem);
  line-height: 1.03;
  letter-spacing: -.045em;
}

.public-business-profile .profile-cover-subtitle {
  max-width: 44ch;
  font-size: .82rem;
  font-weight: 650;
  line-height: 1.45;
}

.public-business-profile .profile-cover-location {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin-top: .25rem;
  padding: .28rem .65rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .3);
  backdrop-filter: blur(8px);
  font-size: .67rem;
  font-weight: 760;
}

.public-business-profile .profile-view-gallery {
  z-index: 3;
  top: auto;
  right: 1.15rem;
  bottom: 1.15rem;
  min-height: 44px;
  padding: .56rem .82rem;
  border-radius: 12px;
  background: rgba(0, 48, 43, .84);
  backdrop-filter: blur(10px);
}

.public-business-profile .profile-hero-content {
  padding: 0 clamp(1.1rem, 2.6vw, 1.85rem) 1.35rem;
}

.public-business-profile .profile-hero-heading {
  align-items: end;
  grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr) auto;
  gap: 1rem 1.25rem;
}

.public-business-profile .profile-hero-logo {
  width: var(--profile-hero-logo-size);
  height: var(--profile-hero-logo-size);
  overflow: hidden;
  margin-top: calc(var(--profile-hero-logo-overlap) * -1);
  border: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 16px 36px rgba(0, 76, 68, .18);
}

.public-business-profile .profile-hero-logo img {
  width: 100%;
  height: 100%;
  padding: 0;
  border-radius: 50%;
  object-fit: contain;
}

.public-business-profile .profile-hero-logo-fallback {
  border-radius: 50%;
}

.public-business-profile .profile-identity {
  min-width: 0;
  padding-top: 1rem;
}

.public-business-profile .profile-identity h1 {
  margin: .3rem 0 .2rem;
  font-size: clamp(2rem, 3.2vw, 3.1rem);
  line-height: 1;
}

.public-business-profile .profile-category-row {
  gap: .35rem;
}

.public-business-profile .profile-category-row a,
.public-business-profile .profile-category-row > span {
  border-radius: 999px;
}

.public-business-profile .profile-identity > .d-flex {
  gap: .35rem !important;
  margin-top: .45rem;
}

.public-business-profile .profile-identity > .d-flex .badge {
  border: 1px solid #dce8e4;
  color: #3c625b !important;
  background: #f7fbfa !important;
  font-size: .65rem;
  font-weight: 700;
}

.public-business-profile .profile-hero-interest {
  min-width: 235px;
  padding-top: .9rem;
  align-self: end;
}

.public-business-profile .profile-hero-interest > .d-flex {
  justify-content: flex-end;
  margin: 0 !important;
  gap: .45rem !important;
}

.public-business-profile .profile-hero-interest details,
.public-business-profile .profile-hero-interest form {
  margin: 0;
}

.public-business-profile .profile-hero-interest .btn,
.public-business-profile .profile-share-actions .btn {
  min-height: 40px;
  padding: .48rem .8rem;
  border-radius: 10px;
  font-size: .72rem;
  font-weight: 800;
}

.public-business-profile .profile-share-actions {
  justify-content: flex-end;
  margin-top: .45rem;
}

.public-business-profile .profile-hero-details {
  grid-template-columns: minmax(0, 1fr) minmax(560px, 660px);
  gap: 1rem 1.5rem;
  margin-top: .8rem;
  padding-top: .9rem;
}

.public-business-profile .profile-summary {
  align-items: center;
  gap: .32rem .62rem;
}

.public-business-profile .profile-review-summary,
.public-business-profile .profile-area-summary,
.public-business-profile .profile-open-summary {
  white-space: nowrap;
}

.public-business-profile .profile-open-summary {
  order: 2;
}

.public-business-profile .profile-area-summary {
  order: 3;
}

.public-business-profile .profile-primary-actions {
  grid-template-columns: 1.45fr repeat(3, minmax(0, 1fr));
  gap: .55rem;
}

.public-business-profile .profile-primary-actions.profile-action-count-3 {
  grid-template-columns: 1.35fr repeat(2, minmax(0, 1fr));
}

.public-business-profile .profile-primary-actions.profile-action-count-2 {
  grid-template-columns: 1.25fr 1fr;
}

.public-business-profile .profile-primary-actions .btn {
  min-height: 50px;
  border-radius: 11px;
  font-size: .75rem;
}

.public-business-profile .profile-primary-actions .profile-booking-action {
  color: #fff;
  font-size: .78rem;
  background: linear-gradient(135deg, #ff711f, #ff5f18);
  border-color: #ff671c;
  box-shadow: 0 9px 22px rgba(255, 101, 28, .24);
}

.public-business-profile .profile-primary-actions .profile-booking-action:hover {
  color: #fff;
}

.public-business-profile .profile-storefront-nav {
  top: var(--profile-header-height, 72px);
}

.public-business-profile .profile-storefront-nav .container-shell {
  gap: .5rem;
}

.public-business-profile .profile-storefront-nav a {
  padding-inline: .95rem;
  border-radius: 10px;
}

.public-business-profile .profile-storefront {
  padding-top: 1rem;
}

.public-business-profile .profile-storefront .profile-main {
  gap: 1rem;
}

.public-business-profile .profile-storefront .profile-section {
  border-radius: 18px;
  box-shadow: 0 8px 24px rgba(3, 86, 76, .05);
}

.public-business-profile .profile-about-layout,
.public-business-profile .profile-about-layout.has-brief-description,
.public-business-profile .profile-about-layout.has-long-description {
  grid-template-columns: minmax(0, 1.75fr) minmax(305px, .8fr);
  gap: 1.1rem;
  align-items: stretch;
}

.public-business-profile .profile-about-primary {
  min-width: 0;
}

.public-business-profile .profile-about-heading {
  display: flex;
  align-items: flex-start;
  gap: .72rem;
}

.public-business-profile .profile-section-icon {
  width: 39px;
  height: 39px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid #cfe6df;
  border-radius: 12px;
  color: #087d70;
  background: #eaf7f3;
}

.public-business-profile .profile-section-icon svg,
.public-business-profile .profile-about-highlight-icon svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-business-profile .profile-about-copy {
  max-width: 78ch;
  margin-top: .2rem;
  font-size: .9rem;
  line-height: 1.72;
}

.public-business-profile .profile-about-highlights {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .65rem;
  margin-top: 1.15rem;
}

.public-business-profile .profile-about-highlight {
  min-width: 0;
  min-height: 88px;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: .05rem .55rem;
  align-items: center;
  padding: .7rem;
  border: 1px solid #deebe7;
  border-radius: 13px;
  color: var(--profile-text);
  background: #fbfefd;
  text-decoration: none;
}

.public-business-profile a.profile-about-highlight:hover {
  border-color: #bcded5;
  color: #075e55;
  background: #f3faf7;
}

.public-business-profile .profile-about-highlight-icon {
  grid-row: 1 / 3;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #087c70;
  background: #e9f7f2;
}

.public-business-profile .profile-about-highlight strong {
  min-width: 0;
  overflow: hidden;
  font-size: .82rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.public-business-profile .profile-about-highlight small {
  min-width: 0;
  overflow: hidden;
  color: #66817b;
  font-size: .64rem;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.public-business-profile .profile-facts,
.public-business-profile .has-brief-description .profile-facts,
.public-business-profile .has-long-description .profile-facts {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: 1rem 1.05rem;
  border: 1px solid #d9e9e4;
  border-radius: 16px;
  background: linear-gradient(145deg, #f8fcfb, #eff8f5);
}

.public-business-profile .profile-facts-heading {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding-bottom: .2rem;
}

.public-business-profile .profile-facts h3,
.public-business-profile .has-brief-description .profile-facts h3,
.public-business-profile .has-long-description .profile-facts h3 {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip-path: none;
  color: #07564e;
  font-size: .95rem;
}

.public-business-profile .profile-facts-heading .profile-section-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

.public-business-profile .profile-fact-row {
  margin: 0;
  padding-top: .65rem;
  border-top: 1px solid rgba(16, 107, 95, .09);
}

.public-business-profile .profile-fact-row > span:first-child {
  display: block;
  margin-bottom: .2rem;
  color: #6a837e;
  font-size: .66rem;
  font-weight: 740;
}

.public-business-profile .profile-fact-row strong {
  color: #224f49;
  font-size: .78rem;
}

.public-business-profile .profile-facts .profile-about-categories {
  display: block;
}

.public-business-profile .profile-facts .profile-about-categories > div {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
}

.public-business-profile .profile-facts .profile-about-categories a {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  padding: .24rem .55rem;
}

.public-business-profile .profile-fact-status {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.public-business-profile .profile-fact-status i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #9aaba7;
}

.public-business-profile .profile-fact-status.is-open i { background: #169764; }
.public-business-profile .profile-fact-status.is-closed i { background: #d74747; }

.public-business-profile .profile-fact-reviews {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  margin-top: auto;
  padding-top: .7rem;
  border-top: 1px solid rgba(16, 107, 95, .09);
  color: #087569;
  font-size: .72rem;
  font-weight: 800;
  text-decoration: none;
}

.public-business-profile .profile-catalog-filters {
  border-radius: 13px;
  background: #f5faf8;
}

.public-business-profile .profile-listing-card {
  border-radius: 14px;
}

.public-business-profile .profile-listing-media {
  background: linear-gradient(135deg, #fff7e8, #f8eed9);
}

.public-business-profile .profile-listing-body {
  padding: .8rem .82rem .9rem;
}

.public-business-profile .profile-booking-section {
  background:
    radial-gradient(circle at 94% 50%, rgba(26, 170, 142, .11), transparent 14rem),
    linear-gradient(135deg, #f3fbf8, #eaf8f3) !important;
}

.public-business-profile .profile-review-summary-card,
.public-business-profile .profile-feedback-action,
.public-business-profile .profile-location-card,
.public-business-profile .profile-surface-card,
.public-business-profile .profile-map-card,
.public-business-profile .profile-inquiry-section .inquiry-form,
.public-business-profile .profile-inquiry-help-card,
.public-business-profile .profile-inquiry-trust-card {
  border-radius: 14px;
}

/* Tablet layout: preserve the desktop hierarchy while reducing density. */
@media (max-width: 1180px) and (min-width: 768px) {
  .public-business-profile {
    --profile-shell: min(100% - 2rem, 1080px);
  }

  .public-business-profile .profile-hero-media {
    height: clamp(245px, 32vw, 315px);
  }

  .public-business-profile .profile-cover-copy {
    width: min(470px, 61%);
  }

  .public-business-profile .profile-hero-heading {
    grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr);
  }

  .public-business-profile .profile-hero-interest {
    grid-column: 2;
    min-width: 0;
    padding-top: .25rem;
  }

  .public-business-profile .profile-hero-interest > .d-flex,
  .public-business-profile .profile-share-actions {
    justify-content: flex-start;
  }

  .public-business-profile .profile-hero-details {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-primary-actions {
    max-width: 100%;
  }

  .public-business-profile .profile-about-layout,
  .public-business-profile .profile-about-layout.has-brief-description,
  .public-business-profile .profile-about-layout.has-long-description {
    grid-template-columns: minmax(0, 1.45fr) minmax(270px, .75fr);
  }

  .public-business-profile .profile-about-highlights {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-business-profile .profile-listing-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Mobile layout: one-handed actions, horizontal section tabs, and a circular
   profile identity that overlaps the cover like the approved mockup. */
@media (max-width: 767px) {
  .public-business-profile {
    --profile-shell: calc(100% - 1rem);
  }

  .public-business-profile .profile-storefront-hero {
    padding-top: .5rem;
  }

  .public-business-profile .profile-hero-card {
    --profile-hero-logo-size: 82px;
    --profile-hero-logo-overlap: 36px;
    border-radius: 16px;
  }

  .public-business-profile .profile-hero-media {
    height: clamp(175px, 54vw, 220px);
  }

  .public-business-profile .profile-cover-copy {
    left: .85rem;
    right: 5.7rem;
    bottom: .75rem;
    width: auto;
    gap: .2rem;
  }

  .public-business-profile .profile-cover-eyebrow,
  .public-business-profile .profile-cover-location {
    display: none;
  }

  .public-business-profile .profile-cover-copy > strong {
    max-width: 100%;
    font-size: 1.3rem;
  }

  .public-business-profile .profile-cover-subtitle {
    max-width: 100%;
    overflow: hidden;
    font-size: .65rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .public-business-profile .profile-view-gallery {
    right: .6rem;
    bottom: .6rem;
    min-height: 36px;
    max-width: 94px;
    padding: .34rem .48rem;
    gap: .3rem;
  }

  .public-business-profile .profile-view-gallery span {
    overflow: hidden;
    font-size: .6rem;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .public-business-profile .profile-hero-content {
    padding: 0 .78rem .85rem;
  }

  .public-business-profile .profile-hero-heading {
    grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr);
    gap: .65rem;
    align-items: start;
  }

  .public-business-profile .profile-hero-logo {
    margin-top: calc(var(--profile-hero-logo-overlap) * -1);
    border-width: 0;
  }

  .public-business-profile .profile-hero-logo img {
    padding: 0;
  }

  .public-business-profile .profile-identity {
    padding-top: .65rem;
  }

  .public-business-profile .profile-identity h1 {
    margin-top: .2rem;
    font-size: clamp(1.45rem, 7vw, 1.85rem);
  }

  .public-business-profile .profile-category-row {
    margin-bottom: .15rem;
  }

  .public-business-profile .profile-category-row a,
  .public-business-profile .profile-category-row > span {
    min-height: 22px;
    padding: .17rem .43rem;
    font-size: .57rem;
  }

  .public-business-profile .profile-identity > .d-flex {
    display: none !important;
  }

  .public-business-profile .profile-hero-interest {
    grid-column: 1 / -1;
    padding-top: .4rem;
  }

  .public-business-profile .profile-hero-interest > .d-flex,
  .public-business-profile .profile-share-actions {
    justify-content: flex-start;
  }

  .public-business-profile .profile-hero-interest .btn,
  .public-business-profile .profile-share-actions .btn {
    min-height: 34px;
    padding: .34rem .6rem;
    font-size: .62rem;
  }

  .public-business-profile .profile-hero-details {
    margin-top: .5rem;
    padding-top: .6rem;
  }

  .public-business-profile .profile-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .2rem .45rem;
  }

  .public-business-profile .profile-summary > :is(span, a) {
    min-height: 23px;
    font-size: .64rem;
  }

  .public-business-profile .profile-open-summary,
  .public-business-profile .profile-area-summary {
    border-left: 0;
    padding-left: 0;
  }

  .public-business-profile .profile-primary-actions,
  .public-business-profile .profile-primary-actions.profile-action-count-4,
  .public-business-profile .profile-primary-actions.profile-action-count-3,
  .public-business-profile .profile-primary-actions.profile-action-count-2 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .public-business-profile .profile-primary-actions .profile-booking-action {
    grid-column: 1 / -1;
    min-height: 45px;
  }

  .public-business-profile .profile-primary-actions .btn {
    min-height: 42px;
    padding: .42rem .25rem;
    font-size: .61rem;
  }

  .public-business-profile .profile-storefront-nav .container-shell {
    width: 100%;
    gap: .15rem;
    padding: .3rem .5rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }

  .public-business-profile .profile-storefront-nav .container-shell::-webkit-scrollbar {
    display: none;
  }

  .public-business-profile .profile-storefront-nav a {
    flex: 0 0 auto;
    min-height: 38px;
    padding: .42rem .62rem;
    font-size: .66rem;
  }

  .public-business-profile .profile-about-layout,
  .public-business-profile .profile-about-layout.has-brief-description,
  .public-business-profile .profile-about-layout.has-long-description {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-about-heading {
    gap: .55rem;
  }

  .public-business-profile .profile-section-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
  }

  .public-business-profile .profile-about-highlights {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
    margin-top: .9rem;
  }

  .public-business-profile .profile-about-highlight {
    min-height: 72px;
    grid-template-columns: 30px minmax(0, 1fr);
    padding: .55rem;
    gap: 0 .42rem;
  }

  .public-business-profile .profile-about-highlight-icon {
    width: 30px;
    height: 30px;
  }

  .public-business-profile .profile-about-highlight-icon svg {
    width: 17px;
    height: 17px;
  }

  .public-business-profile .profile-facts,
  .public-business-profile .has-brief-description .profile-facts,
  .public-business-profile .has-long-description .profile-facts {
    padding: .8rem;
  }

  .public-business-profile .profile-catalog-filters {
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
  }

  .public-business-profile .profile-catalog-filters label:first-of-type {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-storefront .profile-catalog-filters > .btn {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-listing-card {
    grid-template-columns: 106px minmax(0, 1fr);
  }
}

@media (max-width: 430px) {
  .public-business-profile .profile-cover-copy {
    right: 5.2rem;
  }

  .public-business-profile .profile-primary-actions,
  .public-business-profile .profile-primary-actions.profile-action-count-4,
  .public-business-profile .profile-primary-actions.profile-action-count-3,
  .public-business-profile .profile-primary-actions.profile-action-count-2 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .public-business-profile .profile-about-highlights {
    grid-template-columns: 1fr 1fr;
  }

  .public-business-profile .profile-about-highlight strong {
    font-size: .74rem;
  }

  .public-business-profile .profile-about-highlight small {
    font-size: .58rem;
  }

  .public-business-profile .profile-catalog-filters {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-catalog-filters label:first-of-type,
  .public-business-profile .profile-storefront .profile-catalog-filters > .btn {
    grid-column: auto;
  }
}

/* Correct the base hero overlap so only the heading row, not the circular
   profile photo itself, moves upward into the cover. */
.public-business-profile .profile-hero-logo {
  margin-top: 0;
}

.public-business-profile .profile-identity {
  padding-top: calc(var(--profile-hero-logo-overlap) + .85rem);
}

.public-business-profile .profile-hero-interest {
  padding-top: calc(var(--profile-hero-logo-overlap) + .75rem);
}

@media (max-width: 1180px) and (min-width: 768px) {
  .public-business-profile .profile-hero-interest {
    padding-top: .25rem;
  }
}

@media (max-width: 767px) {
  .public-business-profile .profile-hero-logo {
    margin-top: 0;
  }

  .public-business-profile .profile-identity {
    padding-top: calc(var(--profile-hero-logo-overlap) + .42rem);
  }

  .public-business-profile .profile-hero-interest {
    padding-top: .35rem;
  }
}

/* -------------------------------------------------------------------------
   Approved mockup fidelity pass (2026-10-03)
   Matches the supplied desktop/tablet/mobile storefront composition while
   preserving PublicMarket's dynamic content, accessibility, and interactions.
   ------------------------------------------------------------------------- */
.public-business-profile {
  --profile-shell: min(1260px, calc(100% - 2.5rem));
  --profile-deep: #005f56;
  --profile-brand: #078979;
  --profile-accent: #ff671c;
  --profile-line: #d8e8e4;
  --profile-soft: #f5faf8;
  --profile-copy: #173f3a;
  --profile-muted-copy: #5e7772;
}

.public-business-profile main {
  background:
    radial-gradient(circle at 92% 4%, rgba(82, 193, 165, .09), transparent 24rem),
    linear-gradient(180deg, #f6fbfa 0, #ffffff 42rem);
}

/* Breadcrumb + Share / Save / Follow row --------------------------------- */
.public-business-profile .breadcrumbs {
  width: var(--profile-shell);
  margin: .8rem auto .7rem;
  padding-block: .5rem;
}

.public-business-profile .profile-utility-row {
  width: var(--profile-shell);
  min-height: 40px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin: -3.35rem auto .7rem;
  position: relative;
  z-index: 4;
  pointer-events: none;
}

.public-business-profile .profile-utility-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .5rem;
  pointer-events: auto;
}

.public-business-profile .profile-utility-row .btn,
.public-business-profile .profile-utility-row summary.btn {
  min-height: 38px;
  margin: 0;
  padding: .42rem .76rem;
  border-radius: 9px;
  border-color: #c8ddda;
  background: #fff;
  color: #075d55;
  box-shadow: 0 2px 7px rgba(8, 84, 75, .035);
  font-size: .72rem;
  font-weight: 790;
}

.public-business-profile .profile-utility-row .btn:hover,
.public-business-profile .profile-utility-row summary.btn:hover {
  border-color: #98c9c1;
  background: #f6fbf9;
}

.public-business-profile .profile-share-button {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
}

.public-business-profile .profile-share-button svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-business-profile .profile-utility-interest > .d-flex {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: .5rem !important;
  margin: 0 !important;
}

.public-business-profile .profile-utility-interest :is(form, details) {
  margin: 0;
}

.public-business-profile .profile-utility-interest details {
  position: relative;
}

.public-business-profile .profile-utility-interest details > p,
.public-business-profile .profile-utility-interest details > a {
  position: absolute;
  z-index: 20;
  right: 0;
  width: 250px;
  margin-top: .35rem;
  padding: .7rem;
  border: 1px solid var(--profile-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(6, 83, 74, .14);
}

.public-business-profile .profile-utility-interest details > a {
  position: static;
  display: inline;
  width: auto;
  padding: 0;
  border: 0;
  box-shadow: none;
}

/* Storefront hero --------------------------------------------------------- */
.public-business-profile .profile-storefront-hero {
  padding: 0;
}

.public-business-profile .profile-storefront-hero .container-shell {
  width: var(--profile-shell);
}

.public-business-profile .profile-hero-card {
  --profile-hero-logo-size: 118px;
  --profile-hero-logo-overlap: 44px;
  overflow: hidden;
  border: 1px solid #cfe2de;
  border-bottom-color: #d6e6e2;
  border-radius: 18px 18px 0 0;
  background: #fff;
  box-shadow: 0 14px 38px rgba(4, 82, 73, .10);
}

.public-business-profile .profile-hero-media {
  height: clamp(230px, 21vw, 295px);
  position: relative;
  isolation: isolate;
  background: #0b7166;
}

.public-business-profile .profile-hero-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  filter: saturate(.98) contrast(1.02);
}

.public-business-profile .profile-hero-media-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 32, 29, .76) 0%, rgba(0, 32, 29, .48) 28%, rgba(0, 32, 29, .10) 58%, rgba(0, 32, 29, 0) 76%),
    linear-gradient(180deg, rgba(0, 25, 23, .03) 42%, rgba(0, 25, 23, .16) 100%);
  pointer-events: none;
}

.public-business-profile .profile-cover-copy {
  position: absolute;
  z-index: 2;
  left: 2.35rem;
  bottom: 2rem;
  width: min(470px, 50%);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .3rem;
  color: #fff;
  text-shadow: 0 2px 15px rgba(0, 0, 0, .27);
}

.public-business-profile .profile-cover-copy > strong {
  max-width: 15ch;
  font-size: clamp(2rem, 3vw, 2.85rem);
  font-weight: 820;
  line-height: 1.03;
  letter-spacing: -.045em;
}

.public-business-profile .profile-cover-subtitle {
  max-width: 44ch;
  font-size: .86rem;
  font-weight: 680;
  line-height: 1.42;
}

.public-business-profile .profile-cover-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  margin-top: .18rem;
  padding: .3rem .66rem;
  border: 1px solid rgba(255, 255, 255, .42);
  border-radius: 9px;
  background: rgba(0, 55, 49, .42);
  backdrop-filter: blur(7px);
  font-size: .68rem;
  font-weight: 720;
}

.public-business-profile .profile-view-gallery {
  z-index: 3;
  right: 1.2rem;
  bottom: 1.15rem;
  top: auto;
  min-height: 55px;
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .55rem .8rem;
  border: 1px solid rgba(255, 255, 255, .58);
  border-radius: 11px;
  background: rgba(0, 40, 37, .82);
  color: #fff;
  text-decoration: none;
  backdrop-filter: blur(8px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .17);
}

.public-business-profile .profile-view-gallery svg {
  width: 23px;
  height: 23px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}

.public-business-profile .profile-view-gallery > span {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .05rem;
  line-height: 1.15;
}

.public-business-profile .profile-view-gallery strong {
  font-size: .72rem;
  font-weight: 840;
}

.public-business-profile .profile-view-gallery small {
  color: rgba(255,255,255,.92);
  font-size: .64rem;
  font-weight: 650;
}

.public-business-profile .profile-hero-content {
  padding: 0 1.45rem 1rem;
  background: #fff;
}

.public-business-profile .profile-hero-heading {
  display: grid;
  grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr) minmax(360px, 420px);
  gap: 1rem 1.15rem;
  align-items: center;
  margin-top: calc(var(--profile-hero-logo-overlap) * -1);
}

.public-business-profile .profile-hero-logo {
  width: var(--profile-hero-logo-size);
  height: var(--profile-hero-logo-size);
  display: grid;
  place-items: center;
  overflow: hidden;
  margin: 0;
  border: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 10px 28px rgba(1, 84, 75, .17);
}

.public-business-profile .profile-hero-logo img {
  width: 100%;
  height: 100%;
  padding: 0;
  object-fit: contain;
  border-radius: 50%;
}

.public-business-profile .profile-identity {
  min-width: 0;
  align-self: end;
  padding: calc(var(--profile-hero-logo-overlap) + .55rem) 0 .05rem;
}

.public-business-profile .profile-category-row {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin: 0 0 .25rem;
}

.public-business-profile .profile-category-row a,
.public-business-profile .profile-category-row > span {
  min-height: 25px;
  display: inline-flex;
  align-items: center;
  padding: .22rem .6rem;
  border: 1px solid #cae7e0;
  border-radius: 999px;
  color: #07695f;
  background: #eaf8f4;
  font-size: .64rem;
  font-weight: 760;
  text-decoration: none;
}

.public-business-profile .profile-identity h1 {
  margin: .05rem 0 .18rem;
  color: #07584f;
  font-size: clamp(2rem, 3vw, 2.65rem);
  font-weight: 820;
  line-height: 1.04;
  letter-spacing: -.045em;
}

.public-business-profile .profile-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .22rem .72rem;
  margin: 0;
  color: #405f5a;
}

.public-business-profile .profile-summary > :is(span, a) {
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: inherit;
  font-size: .74rem;
  text-decoration: none;
}

.public-business-profile .profile-review-summary strong {
  color: #9d6f00;
  font-size: .78rem;
}

.public-business-profile .profile-star-icon {
  color: #ffb000;
  fill: currentColor;
  stroke: currentColor;
}

.public-business-profile .profile-area-summary {
  position: relative;
  padding-left: .75rem;
  border-left: 1px solid #cfdedb;
}

.public-business-profile .profile-area-summary .profile-summary-icon {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: #0a675e;
  stroke-width: 1.8;
}

.public-business-profile .profile-open-summary {
  flex-basis: 100%;
  min-height: 22px !important;
  gap: .4rem !important;
  color: #4d6964;
}

.public-business-profile .profile-open-summary i,
.public-business-profile .profile-rail-status i {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #9aaba7;
}

.public-business-profile .profile-open-summary.is-open strong,
.public-business-profile .profile-rail-status.is-open {
  color: #068454;
}

.public-business-profile .profile-open-summary.is-open i,
.public-business-profile .profile-rail-status.is-open i {
  background: #0e9e66;
}

.public-business-profile .profile-open-summary.is-closed strong,
.public-business-profile .profile-rail-status.is-closed {
  color: #d83333;
}

.public-business-profile .profile-open-summary.is-closed i,
.public-business-profile .profile-rail-status.is-closed i {
  background: #db3434;
}

.public-business-profile .profile-open-summary > span {
  color: #405f5a;
}

.public-business-profile .profile-action-cluster {
  align-self: end;
  display: grid;
  gap: .55rem;
  padding-top: calc(var(--profile-hero-logo-overlap) + .55rem);
}

.public-business-profile .profile-action-cluster .btn {
  min-height: 43px;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  padding: .52rem .68rem;
  border-radius: 9px;
  font-size: .72rem;
  font-weight: 800;
  box-shadow: none;
}

.public-business-profile .profile-action-cluster .btn svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-business-profile .profile-action-cluster .profile-booking-action {
  min-height: 48px;
  color: #fff;
  border-color: #ff671c;
  background: linear-gradient(135deg, #ff711f, #ff5f17);
  box-shadow: 0 7px 17px rgba(255, 103, 28, .20);
  font-size: .77rem;
}

.public-business-profile .profile-action-cluster .profile-booking-action:hover {
  color: #fff;
  border-color: #ff7b38;
  background: #ff7430;
}

.public-business-profile .profile-secondary-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .48rem;
}

.public-business-profile .profile-secondary-actions .btn {
  border-color: #b9d9d2;
  color: #075f56;
  background: #fff;
}

.public-business-profile .profile-secondary-actions .btn:hover {
  border-color: #78b9ae;
  background: #f2faf7;
}

.public-business-profile .profile-mobile-share {
  display: none !important;
}

/* Tabs visually complete the hero card while remaining sticky on scroll. */
.public-business-profile .profile-storefront-nav {
  top: var(--profile-header-height, 72px);
  z-index: 28;
  margin: 0 0 1rem;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}

.public-business-profile .profile-storefront-nav .container-shell {
  width: var(--profile-shell);
  min-height: 53px;
  display: flex;
  align-items: stretch;
  gap: .8rem;
  margin: 0 auto;
  padding: 0 1.15rem;
  overflow-x: auto;
  border: 1px solid #cfe2de;
  border-top: 0;
  border-radius: 0 0 18px 18px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 12px 28px rgba(4, 82, 73, .07);
  scrollbar-width: none;
}

.public-business-profile .profile-storefront-nav .container-shell::-webkit-scrollbar {
  display: none;
}

.public-business-profile .profile-storefront-nav a {
  min-height: 52px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  position: relative;
  padding: .55rem .45rem;
  border-radius: 0;
  color: #375f59;
  background: transparent;
  font-size: .72rem;
  font-weight: 760;
  text-decoration: none;
  white-space: nowrap;
}

.public-business-profile .profile-storefront-nav a:hover,
.public-business-profile .profile-storefront-nav a.is-active,
.public-business-profile .profile-storefront-nav a[aria-current="location"] {
  color: #064f48;
  background: transparent;
}

.public-business-profile .profile-storefront-nav a.is-active::after,
.public-business-profile .profile-storefront-nav a[aria-current="location"]::after {
  right: .2rem;
  bottom: 0;
  left: .2rem;
  height: 3px;
  border-radius: 99px 99px 0 0;
  background: #ff671c;
}

/* Desktop content composition -------------------------------------------- */
.public-business-profile .profile-storefront {
  width: var(--profile-shell);
  padding: 0 0 2.5rem;
}

.public-business-profile .profile-storefront .profile-main {
  display: grid;
  grid-template-columns: minmax(0, 2.08fr) minmax(310px, .92fr);
  gap: 1rem;
  align-items: start;
}

.public-business-profile .profile-storefront .profile-section {
  min-width: 0;
  padding: 1.15rem 1.2rem;
  border: 1px solid var(--profile-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(5, 82, 73, .045);
  scroll-margin-top: 142px;
}

.public-business-profile #about,
.public-business-profile #offerings {
  grid-column: 1;
}

.public-business-profile .profile-overview-rail {
  grid-column: 2;
  grid-row: 1 / span 3;
  display: grid;
  gap: .9rem;
  align-content: start;
}

.public-business-profile :is(#appointments, #reviews, #gallery, #location, #inquiry),
.public-business-profile .profile-support-grid {
  grid-column: 1 / -1;
}

.public-business-profile .profile-rail-card {
  padding: 1rem 1.05rem;
  border: 1px solid var(--profile-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(5, 82, 73, .045);
}

.public-business-profile .profile-rail-heading {
  display: flex;
  align-items: center;
  gap: .62rem;
  margin-bottom: .7rem;
}

.public-business-profile .profile-rail-heading .profile-section-icon {
  width: 37px;
  height: 37px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid #cae6df;
  border-radius: 10px;
  color: #087d70;
  background: #eaf8f4;
}

.public-business-profile .profile-rail-heading .profile-section-icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-business-profile .profile-rail-heading h2 {
  margin: 0;
  color: #07564e;
  font-size: .98rem;
  font-weight: 810;
  letter-spacing: -.018em;
}

.public-business-profile .profile-rail-row {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: .65rem;
  align-items: start;
  padding: .52rem 0;
  border-top: 1px solid #edf3f1;
}

.public-business-profile .profile-rail-row:first-of-type {
  border-top: 0;
}

.public-business-profile .profile-rail-row > span:first-child {
  color: #617b75;
  font-size: .66rem;
  font-weight: 700;
}

.public-business-profile .profile-rail-row strong,
.public-business-profile .profile-rail-row small {
  font-size: .7rem;
  line-height: 1.35;
}

.public-business-profile .profile-rail-category-row > div {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem;
}

.public-business-profile .profile-rail-category-row a {
  min-height: 27px;
  display: inline-flex;
  align-items: center;
  padding: .22rem .55rem;
  border-radius: 999px;
  color: #08685f;
  background: #e9f8f4;
  font-size: .64rem;
  font-weight: 760;
  text-decoration: none;
}

.public-business-profile .profile-rail-value-with-icon {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: #274d47;
}

.public-business-profile .profile-rail-value-with-icon svg {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  fill: none;
  stroke: #0a675e;
  stroke-width: 1.8;
}

.public-business-profile .profile-rail-status-row > div,
.public-business-profile .profile-rail-rating-row > div {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .18rem .35rem;
}

.public-business-profile .profile-rail-status {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
}

.public-business-profile .profile-rail-status-row small {
  flex-basis: 100%;
  color: #596f6a;
}

.public-business-profile .profile-rail-rating {
  color: #7d5b00;
}

.public-business-profile .profile-rail-rating > span {
  color: #ffb000;
}

.public-business-profile .profile-rail-rating-row a {
  flex-basis: 100%;
  margin-top: .08rem;
  color: #08766a;
  font-size: .64rem;
  font-weight: 790;
}

.public-business-profile .profile-hours-list {
  display: grid;
  gap: .25rem;
}

.public-business-profile .profile-hours-list p {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .75rem;
  margin: 0;
  color: #3f5e59;
  font-size: .68rem;
  line-height: 1.35;
}

.public-business-profile .profile-hours-list p.is-today {
  color: #075f56;
  font-weight: 760;
}

.public-business-profile .profile-hours-list strong {
  font-size: inherit;
  font-weight: 620;
}

.public-business-profile .profile-rail-empty {
  margin: 0;
  color: #607a74;
  font-size: .72rem;
}

.public-business-profile .profile-contact-list {
  display: grid;
  gap: .45rem;
}

.public-business-profile .profile-contact-list a {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: .48rem;
  color: #05766a;
  font-size: .68rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.public-business-profile .profile-contact-list svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-business-profile .profile-contact-information .business-online-presence {
  margin-top: .75rem;
  padding-top: .7rem;
  border-top: 1px solid #edf3f1;
}

.public-business-profile .profile-contact-information .business-online-label {
  color: #617b75;
  font-size: .62rem;
  font-weight: 740;
}

.public-business-profile .profile-contact-information .business-online-links {
  gap: .35rem;
  margin-top: .4rem;
}

.public-business-profile .profile-contact-information .business-online-links a {
  min-height: 31px;
  padding: .3rem .5rem;
  border-radius: 999px;
  font-size: .62rem;
}

/* About card -------------------------------------------------------------- */
.public-business-profile .profile-about-layout,
.public-business-profile .profile-about-layout.has-brief-description,
.public-business-profile .profile-about-layout.has-long-description {
  display: block;
}

.public-business-profile .profile-about-heading {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: .55rem !important;
}

.public-business-profile .profile-about-heading .profile-section-icon {
  width: 38px;
  height: 38px;
  border-radius: 10px;
}

.public-business-profile .profile-about-heading h2 {
  margin: 0 !important;
  color: #07564e;
  font-size: 1.08rem !important;
  font-weight: 820;
}

.public-business-profile .profile-about-copy {
  max-width: 76ch;
  margin: 0 0 .85rem;
  color: #35544f;
  font-size: .8rem;
  line-height: 1.62;
}

.public-business-profile .profile-about-highlights {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
  margin: .8rem 0 0;
}

.public-business-profile .profile-about-highlight {
  min-width: 0;
  min-height: 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: .26rem;
  padding: .1rem .25rem 0;
  border: 0;
  border-radius: 0;
  color: #154940;
  background: transparent;
  text-align: center;
  text-decoration: none;
}

.public-business-profile a.profile-about-highlight:hover {
  border: 0;
  color: #075f56;
  background: transparent;
}

.public-business-profile .profile-about-highlight-icon {
  width: 37px;
  height: 37px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid #cae7e0;
  border-radius: 50%;
  color: #087d70;
  background: #eaf8f4;
}

.public-business-profile .profile-about-highlight-icon svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.public-business-profile .profile-about-highlight strong {
  max-width: 100%;
  overflow: hidden;
  color: #154940;
  font-size: .68rem;
  font-weight: 790;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.public-business-profile .profile-about-highlight small {
  max-width: 100%;
  overflow: hidden;
  color: #6a817c;
  font-size: .57rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Products & services ----------------------------------------------------- */
.public-business-profile #offerings .section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: .8rem;
  margin-bottom: .72rem;
}

.public-business-profile #offerings .section-heading .eyebrow {
  display: none;
}

.public-business-profile #offerings .section-heading h2 {
  margin: 0;
  color: #07564e;
  font-size: 1.07rem;
}

.public-business-profile #offerings .section-heading p {
  margin: .1rem 0 0;
  font-size: .68rem;
}

.public-business-profile .profile-section-count {
  color: #5d7872;
  font-size: .6rem;
  font-weight: 700;
  white-space: nowrap;
}

.public-business-profile .profile-catalog-filters {
  display: grid;
  grid-template-columns: minmax(190px, 1.6fr) repeat(3, minmax(120px, 1fr)) 78px;
  gap: .5rem;
  padding: 0;
  margin: 0 0 .8rem;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.public-business-profile .profile-catalog-filters label {
  margin: 0;
}

.public-business-profile .profile-storefront .profile-catalog-filters :is(input, select),
.public-business-profile .profile-storefront .profile-catalog-filters > .btn {
  width: 100%;
  min-height: 40px;
  height: 40px;
  margin: 0;
  border-radius: 8px;
  font-size: .65rem;
}

.public-business-profile .profile-storefront .profile-catalog-filters :is(input, select) {
  border: 1px solid #cfdeda;
  background: #fff;
}

.public-business-profile .profile-storefront .profile-catalog-filters > .btn {
  color: #fff;
  border-color: #078274;
  background: #078274;
  font-weight: 780;
}

.public-business-profile .profile-listing-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .55rem;
}

.public-business-profile .profile-listing-card {
  border-radius: 10px;
  box-shadow: none;
}

.public-business-profile .profile-listing-media {
  aspect-ratio: 16 / 9;
}

.public-business-profile .profile-listing-body {
  min-height: 150px;
  padding: .58rem .62rem .68rem;
}

.public-business-profile .profile-listing-card h3 {
  margin: .25rem 0 .18rem;
  font-size: .76rem;
}

.public-business-profile .profile-listing-card p {
  font-size: .62rem;
  line-height: 1.45;
}

/* Medium / tablet --------------------------------------------------------- */
@media (max-width: 1080px) {
  .public-business-profile {
    --profile-shell: min(100% - 1.5rem, 980px);
  }

  .public-business-profile .profile-utility-row {
    margin-top: -3.25rem;
  }

  .public-business-profile .profile-hero-media {
    height: clamp(220px, 29vw, 280px);
  }

  .public-business-profile .profile-hero-heading {
    grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr);
    align-items: start;
  }

  .public-business-profile .profile-action-cluster {
    grid-column: 1 / -1;
    padding-top: .15rem;
    display: grid;
    grid-template-columns: minmax(210px, 1.25fr) minmax(0, 2fr);
    align-items: stretch;
  }

  .public-business-profile .profile-action-cluster .profile-booking-action {
    min-height: 45px;
  }

  .public-business-profile .profile-secondary-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .public-business-profile .profile-storefront .profile-main {
    grid-template-columns: 1fr;
  }

  .public-business-profile #about,
  .public-business-profile #offerings,
  .public-business-profile .profile-overview-rail,
  .public-business-profile :is(#appointments, #reviews, #gallery, #location, #inquiry),
  .public-business-profile .profile-support-grid {
    grid-column: 1;
  }

  .public-business-profile .profile-overview-rail {
    grid-row: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-business-profile .profile-business-details {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-about-highlights {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .public-business-profile .profile-listing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* Phone ------------------------------------------------------------------- */
@media (max-width: 767px) {
  .public-business-profile {
    --profile-shell: calc(100% - .85rem);
  }

  .public-business-profile .breadcrumbs,
  .public-business-profile .profile-utility-row {
    display: none;
  }

  .public-business-profile .profile-storefront-hero {
    padding-top: .45rem;
  }

  .public-business-profile .profile-hero-card {
    --profile-hero-logo-size: 75px;
    --profile-hero-logo-overlap: 28px;
    border-radius: 14px 14px 0 0;
  }

  .public-business-profile .profile-hero-media {
    height: clamp(155px, 47vw, 190px);
  }

  .public-business-profile .profile-cover-copy {
    left: .8rem;
    right: 5.6rem;
    bottom: .65rem;
    width: auto;
    gap: .12rem;
  }

  .public-business-profile .profile-cover-copy > strong {
    max-width: 17ch;
    font-size: 1.08rem;
    line-height: 1.04;
  }

  .public-business-profile .profile-cover-subtitle {
    max-width: 100%;
    overflow: hidden;
    font-size: .55rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .public-business-profile .profile-cover-badge {
    display: none;
  }

  .public-business-profile .profile-view-gallery {
    right: .55rem;
    bottom: .55rem;
    min-height: 37px;
    max-width: 92px;
    gap: .3rem;
    padding: .35rem .45rem;
    border-radius: 8px;
  }

  .public-business-profile .profile-view-gallery svg {
    width: 17px;
    height: 17px;
  }

  .public-business-profile .profile-view-gallery strong {
    font-size: .57rem;
  }

  .public-business-profile .profile-view-gallery small {
    display: none;
  }

  .public-business-profile .profile-hero-content {
    padding: 0 .7rem .68rem;
  }

  .public-business-profile .profile-hero-heading {
    grid-template-columns: var(--profile-hero-logo-size) minmax(0, 1fr);
    gap: .55rem;
    margin-top: calc(var(--profile-hero-logo-overlap) * -1);
  }

  .public-business-profile .profile-hero-logo {
    border-width: 0;
  }

  .public-business-profile .profile-hero-logo img {
    padding: 0;
  }

  .public-business-profile .profile-identity {
    align-self: end;
    padding: calc(var(--profile-hero-logo-overlap) + .28rem) 0 0;
  }

  .public-business-profile .profile-category-row {
    margin-bottom: .1rem;
  }

  .public-business-profile .profile-category-row a,
  .public-business-profile .profile-category-row > span {
    min-height: 20px;
    padding: .14rem .38rem;
    font-size: .49rem;
  }

  .public-business-profile .profile-identity h1 {
    margin: .08rem 0 .12rem;
    font-size: 1.22rem;
  }

  .public-business-profile .profile-summary {
    gap: .12rem .36rem;
  }

  .public-business-profile .profile-summary > :is(span, a) {
    min-height: 19px;
    font-size: .52rem;
  }

  .public-business-profile .profile-summary-icon,
  .public-business-profile .profile-area-summary .profile-summary-icon {
    width: 12px;
    height: 12px;
  }

  .public-business-profile .profile-area-summary {
    padding-left: .4rem;
  }

  .public-business-profile .profile-open-summary {
    gap: .25rem !important;
  }

  .public-business-profile .profile-open-summary i {
    width: 7px;
    height: 7px;
  }

  .public-business-profile .profile-action-cluster {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr;
    gap: .38rem;
    padding-top: .5rem;
  }

  .public-business-profile .profile-action-cluster .profile-booking-action {
    min-height: 41px;
    font-size: .63rem;
  }

  .public-business-profile .profile-secondary-actions {
    grid-template-columns: repeat(auto-fit, minmax(58px, 1fr));
    gap: .33rem;
  }

  .public-business-profile .profile-secondary-actions .btn {
    min-height: 43px;
    flex-direction: column;
    gap: .14rem;
    padding: .32rem .14rem;
    font-size: .5rem;
    line-height: 1.05;
  }

  .public-business-profile .profile-secondary-actions .btn svg {
    width: 15px;
    height: 15px;
  }

  .public-business-profile .profile-mobile-share {
    display: inline-flex !important;
  }

  .public-business-profile .profile-storefront-nav {
    top: var(--profile-header-height, 64px);
    margin-bottom: .6rem;
  }

  .public-business-profile .profile-storefront-nav .container-shell {
    width: var(--profile-shell);
    min-height: 43px;
    gap: .55rem;
    padding: 0 .55rem;
    border-radius: 0 0 14px 14px;
  }

  .public-business-profile .profile-storefront-nav a {
    min-height: 42px;
    padding: .35rem .18rem;
    font-size: .55rem;
  }

  .public-business-profile .profile-storefront {
    padding-bottom: 1.6rem;
  }

  .public-business-profile .profile-storefront .profile-main {
    gap: .65rem;
  }

  .public-business-profile .profile-storefront .profile-section,
  .public-business-profile .profile-rail-card {
    padding: .82rem;
    border-radius: 11px;
  }

  .public-business-profile .profile-overview-rail {
    grid-template-columns: 1fr;
    gap: .65rem;
  }

  .public-business-profile .profile-about-heading {
    gap: .48rem;
    margin-bottom: .42rem !important;
  }

  .public-business-profile .profile-about-heading .profile-section-icon {
    width: 31px;
    height: 31px;
  }

  .public-business-profile .profile-about-heading .profile-section-icon svg {
    width: 16px;
    height: 16px;
  }

  .public-business-profile .profile-about-heading h2 {
    font-size: .82rem !important;
  }

  .public-business-profile .profile-about-copy {
    display: -webkit-box;
    margin-bottom: .58rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    font-size: .63rem;
    line-height: 1.55;
  }

  .public-business-profile .profile-about-highlights {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .18rem;
    margin-top: .55rem;
  }

  .public-business-profile .profile-about-highlight {
    min-height: 58px;
    gap: .18rem;
    padding: 0 .08rem;
  }

  .public-business-profile .profile-about-highlight-icon {
    width: 29px;
    height: 29px;
  }

  .public-business-profile .profile-about-highlight-icon svg {
    width: 14px;
    height: 14px;
  }

  .public-business-profile .profile-about-highlight strong {
    font-size: .49rem;
  }

  .public-business-profile .profile-about-highlight small {
    display: none;
  }

  .public-business-profile .profile-rail-heading {
    margin-bottom: .45rem;
  }

  .public-business-profile .profile-rail-heading .profile-section-icon {
    width: 31px;
    height: 31px;
  }

  .public-business-profile .profile-rail-heading h2 {
    font-size: .8rem;
  }

  .public-business-profile .profile-catalog-filters {
    grid-template-columns: 1fr 1fr;
    gap: .38rem;
  }

  .public-business-profile .profile-catalog-filters label:first-of-type {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-storefront .profile-catalog-filters > .btn {
    grid-column: 1 / -1;
  }

  .public-business-profile .profile-listing-grid {
    grid-template-columns: 1fr;
  }

  .public-business-profile .profile-listing-card {
    grid-template-columns: 92px minmax(0, 1fr);
  }

  .public-business-profile .profile-listing-media,
  .public-business-profile .profile-listing-body {
    min-height: 124px;
  }
}

@media (max-width: 430px) {
  .public-business-profile .profile-secondary-actions {
    grid-template-columns: repeat(auto-fit, minmax(58px, 1fr));
  }

  .public-business-profile .profile-secondary-actions .btn span:not(.visually-hidden) {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .public-business-profile .profile-cover-copy {
    right: 5.1rem;
  }
}

.public-business-profile .profile-rail-trust > .d-flex {
  gap: .3rem !important;
  margin-top: .35rem;
}

.public-business-profile .profile-rail-trust .badge {
  border: 1px solid #dce9e5;
  border-radius: 999px;
  color: #47665f !important;
  background: #f7fbfa !important;
  font-size: .58rem;
  font-weight: 700;
}

.public-business-profile .profile-owner-bar + .profile-utility-row {
  margin-top: .7rem;
}

.public-business-profile .profile-open-summary {
  border-left: 0;
  padding-left: 0;
}

.public-business-profile .profile-no-cover .profile-hero-media {
  height: clamp(190px, 19vw, 245px);
}

@media (max-width: 767px) {
  .public-business-profile .profile-no-cover .profile-hero-media {
    height: 150px;
  }
}

/* Keep unavailable gallery media compact and preserve the thumbnail geometry. */
.public-business-profile .profile-photo-unavailable { position: relative; background: var(--pm-primary-soft); }
.public-business-profile .profile-photo-unavailable::after {
  content: "Photo unavailable";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--pm-text-muted);
  font-size: .875rem;
  pointer-events: none;
}
