/* Scoped public profile/standalone components; catalogue cards keep their layout. */
.public-profile-tabs { margin:28px 0 32px; min-width:0; font-size:16px; line-height:1.5; }
.public-profile-tabs [hidden] { display:none !important; }
.public-profile-tabs__list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; border-bottom:1px solid #e3e5e7; }
.public-profile-tabs__list [role="tab"] { display:flex; align-items:center; justify-content:center; gap:6px; min-width:0; min-height:44px; padding:12px 3px; border:0; border-bottom:2px solid transparent; background:transparent; color:#777d85; font:500 14px/1.5 var(--font-family); cursor:pointer; }
.public-profile-tabs__list [aria-selected="true"] { color:#202329; border-bottom-color:var(--accent); }
.public-profile-tabs__panel { padding-top:16px; min-width:0; }
.public-profile-tabs__panel:focus-visible,.public-profile-tabs__list button:focus-visible,.public-profile-photos__item:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.public-booking-service { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:16px; padding:18px 0; border-bottom:1px solid var(--border); min-width:0; }
.public-booking-service__body { min-width:0; }
.public-booking-service:not(.public-booking-service--single) > .public-booking-service__body { grid-column:1/-1; }
.public-booking-service h3 { margin:0; font-size:16px; line-height:1.5; font-weight:700; overflow-wrap:anywhere; }
.public-booking-service p { color:var(--text-secondary); font-size:13px; line-height:1.5; margin:4px 0; overflow-wrap:anywhere; }
.public-booking-service__choices { display:grid; grid-column:1/-1; gap:12px; min-width:0; }
.public-booking-service__choice { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:16px; min-width:0; }
.public-booking-service--single .public-booking-service__choices,.public-booking-service--single .public-booking-service__choice { display:contents; }
.public-booking-service__choice > div { min-width:0; }
.public-booking-service__price { display:block; font-size:15px; font-weight:600; line-height:1.5; white-space:nowrap; }
.public-booking-service__action,.gb-page .public-booking-service__action { min-height:38px; min-width:0; padding:8px 12px; border:1px solid #dedfe2; border-radius:11px; background:#fff; color:#31343a; box-shadow:none; text-align:center; font-size:13px; font-weight:500; line-height:1.35; white-space:normal; }
.public-booking-service__action[aria-disabled="true"] { opacity:.55; cursor:not-allowed; }
.public-booking-status { color:var(--text-secondary); font-size:13px; line-height:1.6; margin:8px 0 16px; overflow-wrap:anywhere; }
.public-google-reviews { display:block; width:fit-content; max-width:100%; border:1px solid var(--border); border-radius:10px; padding:12px 14px; color:var(--text-primary); font-size:13px; font-weight:500; line-height:1.4; overflow-wrap:anywhere; }
.public-profile-photos { display:flex; gap:10px; width:100%; max-width:540px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; }
.public-profile-photos::-webkit-scrollbar { display:none; }
.public-profile-photos__item { flex:0 0 calc(33.333333% - 6.666667px); min-width:0; padding:0; aspect-ratio:4/5; border:0; border-radius:12px; overflow:hidden; background:#f1f2f3; font-weight:500; cursor:pointer; scroll-snap-align:start; }
.public-profile-photos__item img { display:block; width:100%; height:100%; object-fit:cover; }
.public-visit-reviews { margin:20px 0 0; }
.public-visit-reviews h2 { font-size:18px; margin:0 0 12px; }
.public-visit-review { padding:16px; margin:12px 0; max-width:580px; border:0; border-radius:16px; background:#fff; box-shadow:0 3px 18px #3341550d; }
.public-visit-review > div:first-child > strong { display:inline-flex; align-items:center; padding:4px 8px; border-radius:7px; background:#f5f0e5; color:#8b7449; font-size:13px; }
.public-visit-review > div { display:flex; gap:12px; justify-content:space-between; }
.public-visit-review time { color:var(--text-secondary); font-size:12px; }
.public-visit-review p { white-space:pre-wrap; overflow-wrap:anywhere; margin-top:8px; font-size:14px; line-height:1.6; }
.public-visit-review > div:has(p) { display:block; padding:12px; margin-top:12px; border:0; border-radius:10px; background:#f5f6f8; }
.public-visit-reviews > .btn { margin-top:16px; min-height:44px; }
.catalog-card-detail .public-detail-actions { display:flex; flex-wrap:nowrap; align-items:center; gap:10px; max-width:480px; }
.catalog-card-detail .public-detail-actions > [data-detail-action] { display:inline-flex; align-items:center; justify-content:center; gap:8px; height:44px; min-height:44px; min-width:44px; max-width:100%; margin:0; padding:11px 12px; font-size:14px; line-height:1.4; white-space:nowrap; overflow-wrap:normal; }
.catalog-card-detail .public-detail-actions > [data-detail-action="contacts"],.catalog-card-detail .public-detail-actions > [data-detail-action="booking"] { flex:1 1 0; min-width:0; width:auto; padding-inline:8px; }
.catalog-card-detail .public-detail-actions > [data-detail-action="contacts"] svg { display:none; }
.catalog-card-detail .public-detail-actions > [data-detail-action="share"],.catalog-card-detail .public-detail-actions > [data-publication-report-action] { flex:0 0 44px; width:44px; height:44px; min-height:44px; padding:10px; }
.catalog-card-detail .public-detail-actions svg { width:21px; height:21px; flex:0 0 21px; }
@media(max-width:768px) {
  .public-profile-tabs { margin-top:24px; }
  .catalog-card-detail .public-detail-actions { max-width:none; gap:8px; }
  .public-profile-tabs__list { gap:12px; }
  .public-booking-service { grid-template-columns:minmax(0,1fr) auto; gap:9px; }
  .public-booking-service--single .public-booking-service__body { grid-column:1; grid-row:1; }
  .public-booking-service--single .public-booking-service__price { grid-column:1; grid-row:2; margin-top:-4px; }
  .public-booking-service--single .public-booking-service__action { grid-column:2; grid-row:1/3; }
  .public-booking-service__choice { grid-template-columns:minmax(0,1fr) auto; gap:9px; }
  .public-booking-service__choice > .public-booking-service__details { grid-column:1; grid-row:1; }
  .public-booking-service__choice > .public-booking-service__price { grid-column:1; grid-row:2; margin-top:-4px; }
  .public-booking-service__choice > .public-booking-service__action { grid-column:2; grid-row:1/3; }
  .public-booking-service__price { font-size:14px; font-weight:500; }
}
@media(max-width:374px) {
  .catalog-card-detail .public-detail-actions { gap:7px; }
  .catalog-card-detail .public-detail-actions > [data-detail-action] { font-size:13px; }
  .catalog-card-detail .public-detail-actions > [data-detail-action="contacts"],.catalog-card-detail .public-detail-actions > [data-detail-action="booking"] { padding-inline:4px; }
  .public-profile-tabs__list [role="tab"] { font-size:13px; gap:4px; }
}

#guest-login { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; padding:10px; }
#guest-login svg { width:22px; height:22px; }

.public-visit-review__attribution { display:block; color:var(--text-secondary); font-size:12px; line-height:1.5; margin-top:6px; }
.public-visit-rating { color:#8b7449; font-size:14px; font-weight:600; }
