/* Single business page parity with the Figma "Individual Business Listing" frame. Loaded on single listing pages only. */
.fp-profile .fp-body{scroll-margin-top:16px}
.fp-profile [id^="fp-"],.fp-profile #reviews,.fp-profile #igta-appointments{scroll-margin-top:72px}
.fp-profile .fp-sections a{min-height:44px;font-family:var(--fp-sans)}
.fp-profile .fp-glance .fp-chips{margin-top:14px}

/* Opening hours in the contact panel */
.fp-profile .fp-hours{border-top:1px solid var(--fp-line);padding-top:16px}
.fp-profile .fp-hours h3{margin:0 0 10px;font-family:var(--fp-sans);font-size:var(--igta-font-size-base);font-weight:700;color:var(--fp-ink)}
.fp-hours__table{width:100%;border-collapse:collapse;font-size:var(--igta-font-size-sm)}
.fp-hours__table th,.fp-hours__table td{padding:6px 0;border-bottom:1px solid var(--fp-line);text-align:left;font-weight:400;vertical-align:top}
.fp-hours__table th{color:var(--fp-ink);font-weight:600;padding-right:12px}
.fp-hours__table td{text-align:right;color:var(--fp-ink)}
.fp-hours__note{margin:10px 0 0;font-size:var(--igta-font-size-sm);color:var(--fp-muted)}

/* Claim / correction links */
.fp-rail__links{list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--fp-line);display:flex;flex-direction:column;gap:2px}
.fp-profile .fp-rail__links li{margin:0}
.fp-rail__links a{display:flex;align-items:center;min-height:44px;font-family:var(--fp-sans);font-size:var(--igta-font-size-sm);font-weight:600;color:var(--fp-wine);text-underline-offset:4px}

@media (max-width:760px){
  .fp-profile .fp-rail{padding:20px}
  .fp-profile .fp-rail .fp-action,.fp-rail__links a{min-height:44px}
  .fp-hours__table th,.fp-hours__table td{padding:8px 0}
}

/* Final layout (FINAL2): the plan-gated "essential" layout used the single-column 880px layout. Every layout now keeps the
   Figma two-column page on desktop (story + sticky contact panel, 1296px content width from .site-main); mobile is one column. */
@media (min-width:761px){
  .fp-profile--essential{max-width:none;margin-left:0;margin-right:0}
  .fp-profile--essential .fp-intro h1{font-size:calc(56px * var(--igta-type-scale))}
  .fp-profile--essential .fp-body{grid-template-columns:minmax(0,1fr) 416px;gap:32px}
  .fp-profile--essential .fp-rail{position:sticky;order:0}
  .fp-profile--essential .fp-main{gap:36px}
}
@media (min-width:761px) and (max-width:1024px){
  .fp-profile--essential .fp-body{grid-template-columns:minmax(0,1fr) 340px}
}
/* breadcrumb: keep the first crumb on the same baseline as the separators */
.fp-breadcrumb ol{align-items:center}
.fp-breadcrumb li::before{display:inline;position:static;float:none;line-height:inherit}
.fp-profile .fp-breadcrumb li{display:block;margin:0;padding:0;line-height:1.4;white-space:normal}
.fp-profile .fp-breadcrumb li>span,.fp-profile .fp-breadcrumb li>a{display:inline;margin:0;padding:0;line-height:inherit}
.fp-actions{align-items:center}
/* native sign-in-to-review link: a proper button */
.fp-profile .community-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border-radius:8px;text-decoration:none;font:600 14px var(--fp-sans)}
/* no photos: nothing to reserve. The wrapper only exists when photos exist; keep the tab row directly under the header block. */
.fp-profile .fp-intro{padding-bottom:24px}
.fp-profile .fp-sections{margin-top:0}
@media (max-width:760px){
  /* mobile order: header, actions, contact panel, story, services, address, reviews */
  .fp-profile--essential .fp-body,.fp-profile .fp-body{display:flex;flex-direction:column}
  .fp-profile .fp-rail{order:-1}
  .fp-profile--essential .fp-rail{order:-1}
}

/* Booking and enquiry live in the story column (the rail stays short enough to stay on screen while sticky). */
.fp-booking,.fp-enquiry{min-width:0}
.fp-profile .fp-booking .igta-booking,.fp-profile .fp-enquiry .igta-enquiry{margin:0}
#igta-booking,#igta-appointments,.igta-enquiry{scroll-margin-top:24px}
@media (max-width:760px){.fp-profile .fp-main,.fp-profile .fp-rail{min-width:0;max-width:100%;width:100%;box-sizing:border-box}}
.fp-booking,.fp-enquiry,.fp-booking .igta-booking{min-width:0;max-width:100%;box-sizing:border-box}

/* Announcements: compact cards, shown only when an administrator has published a current announcement for this business. */
.fp-announcements h2{margin:0 0 14px}
.fp-announce-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.fp-announce{padding:16px 18px;border:1px solid var(--fp-line,var(--igta-color-border));border-left:4px solid var(--fp-wine,var(--igta-color-primary));border-radius:12px;background:var(--igta-color-surface)}
.fp-announce__date{margin:0 0 4px;font:600 var(--igta-font-size-sm)/1.4 var(--fp-sans,var(--igta-font-body));letter-spacing:.02em;color:var(--fp-muted,var(--igta-color-text-muted))}
.fp-announce__title{margin:0;font:600 18px/1.3 var(--fp-sans,var(--igta-font-body));color:var(--fp-ink,var(--igta-color-text))}
.fp-announce__body{margin:8px 0 0;font-size:var(--igta-font-size-ui);line-height:1.55;color:var(--igta-color-text);overflow-wrap:anywhere}
.fp-announce__more{margin:10px 0 0;font-size:var(--igta-font-size-sm)}
.fp-announce__more a{display:inline-flex;align-items:center;min-height:44px;color:var(--fp-wine,var(--igta-color-primary));font-weight:600;text-underline-offset:3px}
.fp-announce__note{margin:10px 0 0;font-size:var(--igta-font-size-sm);color:var(--fp-muted,var(--igta-color-text-muted))}

/* Events: upcoming and current events only; past events disappear on their own. */
.fp-events h2{margin:0 0 14px}
.fp-event-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.fp-event{display:flex;gap:16px;padding:16px 18px;border:1px solid var(--fp-line,var(--igta-color-border));border-radius:12px;background:var(--igta-color-surface)}
.fp-event__date{flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:64px;border-radius:10px;background:var(--igta-color-primary-tint);color:var(--fp-wine,var(--igta-color-primary));font-family:var(--fp-sans,var(--igta-font-body))}
.fp-event__month{font-size:var(--igta-font-size-sm);font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.fp-event__day{font-size:calc(24px * var(--igta-type-scale));font-weight:700;line-height:1.1}
.fp-event__body{min-width:0}
.fp-event__title{margin:0;font:600 18px/1.3 var(--fp-sans,var(--igta-font-body));color:var(--fp-ink,var(--igta-color-text))}
.fp-event__when{margin:4px 0 0;font-size:var(--igta-font-size-sm);font-weight:600;color:var(--fp-wine,var(--igta-color-primary))}
.fp-event__where,.fp-event__host{margin:2px 0 0;font-size:var(--igta-font-size-sm);color:var(--fp-muted,var(--igta-color-text-muted))}
.fp-event__text{margin:8px 0 0;font-size:var(--igta-font-size-ui);line-height:1.55;color:var(--igta-color-text);overflow-wrap:anywhere}
.fp-event__more{margin:8px 0 0;font-size:var(--igta-font-size-sm)}
.fp-event__more a{display:inline-flex;align-items:center;min-height:44px;color:var(--fp-wine,var(--igta-color-primary));font-weight:600;text-underline-offset:3px}
@media (max-width:480px){.fp-event{flex-direction:column;gap:10px}.fp-event__date{flex-direction:row;gap:8px;width:auto;height:auto;padding:6px 12px;align-self:flex-start}.fp-event__day{font-size:var(--igta-font-size-lg)}}

/* Offers & deals: current offers only; no checkout, no redemption. */
.fp-offers h2{margin:0 0 14px}
.fp-offer-list{display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.fp-offer{display:flex;gap:16px;overflow:hidden;border:1px solid var(--fp-line,var(--igta-color-border));border-radius:12px;background:var(--igta-color-surface)}
.fp-offer__img{flex:none;width:180px;height:auto;max-height:240px;object-fit:cover;background:var(--igta-color-border)}
.fp-offer__body{min-width:0;padding:16px 18px 16px 0}
.fp-offer:not(:has(.fp-offer__img)) .fp-offer__body{padding-left:18px}
.fp-offer__badge{display:inline-block;margin:0 0 6px;padding:3px 10px;border-radius:100px;background:var(--igta-color-primary-tint);color:var(--fp-wine,var(--igta-color-primary));font:700 var(--igta-font-size-sm)/1.5 var(--fp-sans,var(--igta-font-body))}
.fp-offer__title{margin:0;font:600 18px/1.3 var(--fp-sans,var(--igta-font-body));color:var(--fp-ink,var(--igta-color-text))}
.fp-offer__price{margin:4px 0 0;font-size:var(--igta-font-size-base);color:var(--fp-ink,var(--igta-color-text))}
.fp-offer__price s{margin-left:6px;color:var(--fp-muted,var(--igta-color-text-muted))}
.fp-offer__text{margin:8px 0 0;font-size:var(--igta-font-size-ui);line-height:1.55;color:var(--igta-color-text);overflow-wrap:anywhere}
.fp-offer__code,.fp-offer__valid{margin:6px 0 0;font-size:var(--igta-font-size-sm);color:var(--fp-muted,var(--igta-color-text-muted))}
.fp-offer__terms{margin:8px 0 0;font-size:var(--igta-font-size-sm);line-height:1.5;color:var(--fp-muted,var(--igta-color-text-muted));overflow-wrap:anywhere}
.fp-offer__more{margin:8px 0 0;font-size:var(--igta-font-size-sm)}
.fp-offer__more a{display:inline-flex;align-items:center;min-height:44px;color:var(--fp-wine,var(--igta-color-primary));font-weight:600;text-underline-offset:3px}
@media (max-width:560px){.fp-offer{flex-direction:column;gap:0}.fp-offer__img{width:100%;max-height:200px}.fp-offer__body{padding:14px 16px}.fp-offer:not(:has(.fp-offer__img)) .fp-offer__body{padding-left:16px}}

.fp-event__title a{color:inherit;text-decoration:none}
.fp-event__title a:hover{text-decoration:underline;text-underline-offset:3px}
.fp-events__all{margin:10px 0 0}
.fp-events__all a{display:inline-flex;align-items:center;min-height:44px;color:var(--fp-wine,var(--igta-color-primary));font-weight:600;text-underline-offset:3px}

.fp-offer__was{font-size:var(--igta-font-size-sm);color:var(--fp-muted,var(--igta-color-text-muted))}
