/* ================================================================
   GhanaTRVL — Entity / TSP Page Addon Stylesheet
   entities-addon-v4.css

   Load order: custom-v4.css → entities-addon-v4.css
   Selector: $selectStylesheet = 3 in _entity_body.php

   This file contains ONLY classes that are net-new to entity
   (TSP) pages. It never duplicates or overrides:

     custom-v4.css
       :root tokens, §02 base typography, §03 badge colours,
       §04-05 nav, §06 social share, §07 hero layers and
       .page-hero, §09 eyebrow/sh2/sdesc, §12 .acard family,
       §17 button system (.btn-cta / .btn-o), §18 footer,
       §20 utility helpers (.bg-wh2 etc.)

     result-pages-addon-v4.css
       §22 rp-hero, rp-breadcrumb, rp-statsbar, filter-bar,
       .rcard, .evcard, .tcard, pagination

     article-addon-v4.css
       §23 art-hero, art-prose, art-author-card, art-author-btn,
       Leaflet core overrides (§23-R)

   Section index
   ─────────────────────────────────────────────────────────────
   §25-A  Entity hero — full-bleed one-pager (.ent-hero)
          STATUS: STUB — populates during Gold / Silver build

   §25-B  Closed / ceased-trading notice (.ent-closed-*)
          STATUS: ACTIVE — used by __entity_section_closed.php

   §25-C  Entity about / info widget (.ent-about)
          STATUS: STUB — populates during Starter build

   §25-D  Entity contact row (.ent-contact)
          STATUS: STUB — populates during Starter build

   §25-E  Entity facilities grid (.ent-fac)
          STATUS: STUB — populates during Silver build

   §25-F  Entity description section (.ent-desc)
          STATUS: STUB — populates during Silver build

   §25-G  Entity check-in / check-out (.ent-checkinout)
          STATUS: STUB — populates during Silver build

   §25-H  Entity map (.ent-map)
          STATUS: STUB — populates during Silver build

   §25-I  Entity gallery (.ent-gallery)
          STATUS: STUB — populates during Silver / Gold build

   §25-J  Entity units grid (.ent-units) — rooms, tours, vehicle types
          STATUS: STUB — populates during Gold build

   §25-K  Entity features / AEF section (.ent-features)
          STATUS: STUB — populates during Gold build

   §25-L  Entity places-to-see carousel (.ent-pts)
          STATUS: ACTIVE — used by closed and starter partials

   §25-M  Entity booking buttons (.ent-booking)

   §25-N  Entity donation widget (.ent-donations)
          STATUS: STUB — deferred (module not yet built)

   §25-O  Section bookmarks sticky sub-nav (.ent-section-nav)
          STATUS: ACTIVE — used by _entity_body_gold.php, Gold+ only

   §25-Z  Responsive overrides
          STATUS: ACTIVE — grows as each section is added

   Last updated: 2026-06-11
================================================================ */

/* ================================================================
   §25-A SILVER HERO
   Full-width image band. Fixed height. Gradient overlay.
   Distinct from Starter's __page_title.php "page title block".
================================================================ */

.ent-silver-hero {
  position: relative;
  overflow: hidden;
  height: 420px;
  display: flex;
  align-items: flex-end;
}

@media (max-width: 767px) {
  .ent-silver-hero { height: 300px; }
}

.ent-silver-hero__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
  z-index: 0;
}

/* Gradient: transparent top → brand dark bottom */
.ent-silver-hero__grad {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(35, 15, 66, 0.35) 50%,
    rgba(35, 15, 66, 0.88) 100%
  );
  z-index: 1;
}

/* Atmosphere texture layer — matches custom-v4.css §07 pattern */
.ent-silver-hero__atm {
  position: absolute;
  inset: 0;
  background-image: var(--bg-img-dark-purple);
  background-size: cover;
  opacity: 0.08;
  z-index: 2;
}

.ent-silver-hero__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  padding-bottom: 2rem;
}

.ent-silver-hero__content {
  max-width: 720px;
}

.ent-silver-hero__title {
  font-family: var(--ff-h);
  font-size: clamp(1.6rem, 4vw, 2.8rem);
  font-weight: 800;
  color: #fff;
  letter-spacing: -0.025em;
  line-height: 1.1;
  margin: 0.4rem 0 0.5rem;
}

.ent-silver-hero__location {
  font-family: var(--ff-h);
  font-size: 0.875rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
  margin: 0 0 0.75rem;
}

.ent-silver-hero__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

/* Last update date badge */
.ent-last-update-badge {
  font-family: var(--ff-h);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.7);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

/* Price badge — sits next to last-update badge */
.ent-price-badge {
  font-family: var(--ff-h);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--dv);
  background: var(--ye);
  padding: 4px 10px;
  border-radius: 20px;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

/* ================================================================
   §25-A  GOLD HERO
   .ent-gold-hero          — outer section (replaces .ent-silver-hero)
   .ent-gold-hero__img     — LCP background image
   .ent-gold-hero__grad    — gradient overlay
   .ent-gold-hero__atm     — atmosphere texture
   .ent-gold-hero__inner   — Bootstrap container with vertical layout
   .ent-gold-hero__bottom  — flex row: content left, thumbnails right
   .ent-gold-hero__content — H1, eyebrow, location, footer badges
   .ent-gold-hero__title   — entity name
   .ent-gold-hero__location — city/state line
   .ent-gold-hero__footer  — date badge + price badge row
   .ent-gold-hero__tn-strip — thumbnail strip container (3 images)
   .ent-gold-hero__tn      — single thumbnail anchor
   .ent-gold-hero__tn-badge — +N count overlay on 3rd thumbnail
================================================================ */
 
.ent-gold-hero {
    position: relative;
    overflow: hidden;
    height: clamp(420px, 60vh, 640px);
    height: clamp(420px, 60dvh, 640px);
    display: flex;
    align-items: flex-end;
}

@media (max-width: 767px) {
    .ent-gold-hero {
        height: clamp(280px, 50vh, 400px);
        height: clamp(280px, 50dvh, 400px);
    }
}
 
.ent-gold-hero__img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 40%;
    z-index: 0;
}
 
.ent-gold-hero__grad {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(35, 15, 66, 0.30) 45%,
        rgba(35, 15, 66, 0.92) 100%
    );
    z-index: 1;
}
 
.ent-gold-hero__atm {
    position: absolute;
    inset: 0;
    background-image: var(--bg-img-dark-purple);
    background-size: cover;
    opacity: 0.06;
    z-index: 2;
}
 
.ent-gold-hero__inner {
    position: relative;
    z-index: 3;
    width: 100%;
    padding-bottom: 2rem;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
}
 
/* Bottom row: content left, thumbnail strip right */
.ent-gold-hero__bottom {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1.5rem;
}
 
.ent-gold-hero__content {
    flex: 1;
    max-width: 680px;
}
 
.ent-gold-hero__title {
    font-family: var(--ff-h);
    font-size: clamp(1.75rem, 4.5vw, 3.2rem);
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.025em;
    line-height: 1.1;
    margin: 0.4rem 0 0.5rem;
}
 
.ent-gold-hero__location {
    font-family: var(--ff-h);
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.75);
    margin: 0 0 0.75rem;
}
 
.ent-gold-hero__footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem;
    margin-top: 0.5rem;
}
 
 
/* ── Thumbnail strip ─────────────────────────────────────────── */
 
.ent-gold-hero__tn-strip {
    display: flex;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
    padding-bottom: 2px;
}
 
.ent-gold-hero__tn {
    position: relative;
    display: block;
    width: 110px;
    height: 80px;
    border-radius: 4px;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, 0.55);
    flex-shrink: 0;
    transition: border-color 0.2s ease, transform 0.2s ease;
    text-decoration: none;
}
 
.ent-gold-hero__tn:hover {
    border-color: var(--ye);
    transform: translateY(-2px);
}
 
.ent-gold-hero__tn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
 
/* +N badge on third thumbnail */
.ent-gold-hero__tn-badge {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(35, 15, 66, 0.72);
    color: #fff;
    font-family: var(--ff-h);
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
}
 
/* ================================================================
   §25-B. CLOSED / CEASED-TRADING NOTICE
   ─────────────────────────────────────────────────────────────
   Used by __entity_section_closed.php (account_level_id = 99).

   Design intent: muted purple top accent communicates "inactive"
   without alarming red. Centered card layout within the centred
   col-lg-8 container column. Body text uses --ff-s (Source Serif)
   to soften the message. Max-width on body copy limits line
   length for readability at wide viewport.
================================================================ */

.ent-closed-notice {
  background: #fff;
  border: 1px solid var(--rule);
  border-top: 4px solid var(--mu);
  border-radius: 0 0 8px 8px;
  padding: 2.5rem 2rem;
  text-align: center;
  box-shadow: 0 4px 24px rgba(35,15,66,.07);
}

.ent-closed-icon {
  font-size: 3rem;
  line-height: 1;
  color: var(--mu);
  opacity: .65;
  margin-bottom: 1.25rem;
}

.ent-closed-title {
  font-family: var(--ff-h);
  font-size: clamp(1.2rem, 2.5vw, 1.6rem);
  font-weight: 700;
  letter-spacing: -.015em;
  color: var(--bk);
  margin-bottom: .75rem;
}

.ent-closed-body {
  font-family: var(--ff-s);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--mu);
  max-width: 46ch;
  margin: 0 auto .75rem;
}

.ent-closed-meta {
  font-family: var(--ff-h);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--mu);
  opacity: .75;
  margin-bottom: 0;
}


/* ================================================================
   §25-C. ENTITY ABOUT / INFO WIDGET
   ─────────────────────────────────────────────────────────────
   Used by __entity_section_starter.php and Silver pages.
   Shows entity type, categories, rating, location, address.
================================================================ */

/* SILVER SECTION */

.ent-body-section {
  padding: 2.5rem 0 2rem;
}
 
.ent-intro__meta {
  font-family: var(--ff-h);
}
 
.ent-type-icon {
  color: var(--mv);
}
 
.ent-categories-line {
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--mu);
  text-transform: uppercase;
}
 
.ent-location-line {
  font-family: var(--ff-h);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--bk);
}
 
.ent-flag {
  height: 14px;
  width: auto;
  vertical-align: middle;
  border-radius: 2px;
}
 
.ent-address-line {
  font-size: 0.85rem;
  color: var(--mu);
}
 
.ent-divider {
  border-color: var(--rule);
  margin: 1.25rem 0;
}
 
/* Description — ET HTML; constrained to readable column width */
.ent-description {
  font-family: var(--ff-s);
  font-size: 1rem;
  line-height: 1.8;
  color: var(--bk);
}
 
.ent-description p:last-child { margin-bottom: 0; }
 
/* Block headings within intro/sidebar sections */
.ent-block-heading {
  font-family: var(--ff-h);
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--mv);
  border-left: 4px solid var(--gr);
  padding-left: 0.6rem;
  margin: 0 0 0.75rem;
}
 
/* Capacity list */
.ent-capacity__list li {
  font-family: var(--ff-h);
  font-size: 0.875rem;
  color: var(--bk);
  padding: 0.25rem 0;
}
 
.ent-capacity__list i {
  color: var(--mv);
}
 
/* Check-in / Check-out */
.ent-checkinout__grid {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
 
.ent-checkinout__item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: var(--ff-h);
  font-size: 0.875rem;
}
 
.ent-checkinout__label {
  font-weight: 600;
  color: var(--mu);
  min-width: 90px;
}
 
.ent-checkinout__time {
  font-weight: 700;
  color: var(--bk);
}
 
.ent-checkinout__item i {
  color: var(--mv);
}

/* STARTER SECTION */

.ent-about {
  padding: 0;
}

.ent-about-type {
  font-family: var(--ff-h);
  font-size: .85rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--mv);
}

.ent-about-rating {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px;
}

.ent-about-rating-label {
  font-family: var(--ff-h);
  font-weight: 600;
  color: var(--mu);
}

.star-active {
  color: var(--mv) !important;
}

.ent-about-location {
  font-family: var(--ff-h);
  font-size: .9rem;
  font-weight: 500;
  color: var(--dv);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px;
}

.ent-flag {
  width: 18px;
  height: auto;
  vertical-align: middle;
  border-radius: 2px;
}

.ent-about-address {
  font-family: var(--ff-h);
  font-size: .875rem;
  color: var(--mu);
  display: flex;
  align-items: flex-start;
  gap: 4px;
  line-height: 1.5;
}

.ent-about-address--postal {
  margin-top: .25rem;
}

.ent-about-slogan {
  font-family: var(--ff-s);
  font-size: 1rem;
  font-style: italic;
  color: var(--mu);
  border-left: 3px solid var(--ye);
  padding-left: .75rem;
  margin-top: 1rem;
  margin-bottom: 0;
}

/* Starter description — real social_media_text supplied by ET.
   Shown between hero and about/contact when $blnHasDescription = true. */
.ent-starter-desc {
  font-family: var(--ff-s);
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--dv);
  margin-bottom: 0;
}


/* ================================================================
   §25-D. ENTITY CONTACT BOX
   ─────────────────────────────────────────────────────────────
   Used by __entity_section_starter.php.
   Contains phone and email buttons + last-updated meta.

   .ent-contact-btn and the view-contacts.php fragment (.vc-*)
   classes moved to custom-v4.css (2026-08-26) - no longer
   entity-only, _contributor_body.php uses them too.
================================================================ */

.ent-contact-box {
  background: #fff;
  border: 1px solid var(--rule);
  border-top: 4px solid var(--mv);
  border-radius: 0 0 8px 8px;
  padding: 1.75rem 1.5rem;
  box-shadow: 0 4px 24px rgba(35,15,66,.07);
}

.ent-contact-heading {
  font-family: var(--ff-h);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--mv);
  margin-bottom: 1.25rem;
}

.ent-contact-buttons {
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.ent-contact-updated {
  font-family: var(--ff-h);
  font-size: .75rem;
  font-weight: 500;
  color: var(--mu);
  opacity: .75;
  margin-top: 1.25rem;
  margin-bottom: 0;
}

/* ================================================================
   §25-D  CONTACT BLOCK (Silver additions)
   Panel areas populated via fetch.
================================================================ */

.ent-contact {
  background: var(--wh2);
  border-radius: 10px;
  padding: 1.25rem;
  border: 1px solid var(--rule);
}

.ent-contact__panel {
  /* Empty until populated by fetch */
  font-family: var(--ff-h);
  font-size: 0.875rem;
}
 
.ent-contact__label {
  font-family: var(--ff-h);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--mu);
  margin-bottom: 0.5rem;
}
 
/* Social media icons */
.ent-social-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--dv);
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.9rem;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}
 
.ent-social-icon:hover {
  background: var(--mv);
  color: #fff;
}

 
/* ================================================================
   §25-C  POLICY TEXT BLOCK (Gold+)
================================================================ */

.ent-policy__text {
    font-family: var(--ff-h);
    font-size: 0.875rem;
    line-height: 1.7;
    color: var(--mu);
    background: var(--wh2);
    border-left: 4px solid var(--gr);
    padding: 0.75rem 1rem;
    border-radius: 0 6px 6px 0;
}


 
/* ================================================================
   §25-D  ASSOCIATION MEMBERSHIPS (4a sidebar block)
================================================================ */
 
.ent-assoc__item {
  color: var(--bk);
  text-decoration: none;
  padding: 0.5rem 0.6rem;
  border-radius: 8px;
  border: 1px solid var(--rule);
  background: #fff;
  transition: border-color 0.15s ease;
}
 
.ent-assoc__item:hover {
  border-color: var(--mv);
  color: var(--mv);
}
 
.ent-assoc__logo {
  height: 36px;
  width: auto;
  max-width: 60px;
  object-fit: contain;
  flex-shrink: 0;
}
 
.ent-assoc__icon-fallback {
  color: var(--mv);
  font-size: 1.2rem;
  flex-shrink: 0;
}
 
.ent-assoc__name {
  font-family: var(--ff-h);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.3;
}


/* ================================================================
   §25-D  OPENING HOURS (Silver+ sidebar block)
   Status badge mirrors .ent-price-badge / .ent-last-update-badge
   (hero) sizing exactly — same pill shape, different fill per state.
   Today's row in the weekly grid gets a tinted background.
================================================================ */

/* .ent-hours-status / .ent-hours__* moved to custom-v4.css (2026-08-29) - now shared
   between entity pages and the article page's opening-times widget, not entity-only. */

/* ================================================================
   §25-D  REGISTRATION AND LICENSING (Credentials — sidebar block)
   Same card treatment as .ent-assoc__item for visual consistency
   with the other trust-signal block in the sidebar.
================================================================ */

.ent-credentials__list {
  margin: 0;
}

.ent-credentials__item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.5rem 0.6rem;
  border-radius: 8px;
  border: 1px solid var(--rule);
  background: #fff;
  margin-bottom: 0.5rem;
}

.ent-credentials__item:last-child {
  margin-bottom: 0;
}

.ent-credentials__item i {
  color: var(--mv);
  font-size: 1.1rem;
  flex-shrink: 0;
}

.ent-credentials__label {
  display: block;
  font-family: var(--ff-h);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mu);
}

.ent-credentials__value {
  display: block;
  font-family: var(--ff-h);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--bk);
}

/* ================================================================
   §25-E  KEY FACILITIES + DISABILITY SUPPORT
   Full-width band below intro row.
   Icon items are TRUSTED SERVER HTML — FA icons with title attributes.
   Tooltip display relies on Bootstrap 5's data-bs-toggle="tooltip"
   if applied, or native browser title behaviour.
================================================================ */
 
.ent-keyfac-section {
  background: var(--wh2);
  padding: 2rem 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}
 
.ent-section-heading {
  font-family: var(--ff-h);
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--dv);
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 3px solid var(--ye);
  display: inline-block;
}
 
.ent-section-heading--centered {
  display: block;
  text-align: center;
  border-bottom: none;
  position: relative;
}
 
.ent-section-heading--centered::after {
  content: '';
  display: block;
  width: 48px;
  height: 3px;
  background: var(--ye);
  margin: 0.4rem auto 0;
  border-radius: 2px;
}
 
.ent-keyfac__icons,
.ent-disability__icons {
  flex-wrap: wrap;
}
 
.ent-keyfac__item i,
.ent-disability__item i {
  font-size: 1.4rem;
  color: var(--mv);
  cursor: default;
}
 
/* Hover reveals title tooltip visually (supplement to native title) */
.ent-keyfac__item,
.ent-disability__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid var(--rule);
  transition: border-color 0.15s ease, background 0.15s ease;
}
 
.ent-keyfac__item:hover,
.ent-disability__item:hover {
  border-color: var(--mv);
  background: var(--wh2);
}

/* ================================================================
   §25-E  KEY FACILITIES + DISABILITY — COMPACT SUMMARY BAND
   Full-bleed dark-violet strip, same brand family as the home page
   .why-band. Single flex row, small icon chips, no headed columns.
================================================================ */

.ent-keyfac-band {
  background: var(--dv);
  padding: 0.85rem 0;
}

.ent-keyfac-band__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.85rem 1.75rem;
}

.ent-keyfac-band__group {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
}

.ent-keyfac-band__label {
  font-family: var(--ff-h);
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.6);
  white-space: nowrap;
}

.ent-keyfac-band__icons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.ent-keyfac-band__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  transition: background 0.15s ease;
}

.ent-keyfac-band__item:hover {
  background: rgba(255, 255, 255, 0.22);
}

.ent-keyfac-band__item i {
  color: var(--wh);
  font-size: 1.05rem;
}

.ent-keyfac-band__divider {
  width: 1px;
  height: 24px;
  background: rgba(255, 255, 255, 0.25);
}

@media (max-width: 575.98px) {
  .ent-keyfac-band__divider {
    display: none;
  }
}

/* ================================================================
   §25-E  DISABILITY SUPPORT — FULL BREAKDOWN (Gold+)
   Fact cards grouped by pillar. Section heading reuses the same
   .eyebrow-mv / .sh2 pattern as the Map section for consistency.
================================================================ */

.ent-facility-group-section {
  padding-top: 1.75rem;
}

.ent-facility-group-section .container {
  border-bottom: 1px solid var(--rule);
  padding-bottom: 1.75rem;
}

.ent-facility-heading {
  font-family: var(--ff-h);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--dv);
  line-height: 1.2;
  margin: 0;
}

.ent-facility-group-card {
  background: #fff;
  border: 1px solid var(--rule);
  border-radius: 10px;
  padding: 1.25rem;
}

.ent-facility-group-card--intro {
  background: #fff;
  border-style: dashed;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.ent-facility-group-card--intro .ent-facility-heading {
  margin-bottom: 0.6rem;
}

.ent-facility-group-card__intro-text {
  font-family: var(--ff-s);
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--mu);
  margin: 0;
}

.ent-facility-group-card__title {
  font-family: var(--ff-h);
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mv);
  border-bottom: 2px solid var(--ye);
  padding-bottom: 0.6rem;
  margin-bottom: 0.75rem;
}

.ent-facility-group-card__facts {
  margin: 0;
}

.ent-facility-fact {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--rule);
}

.ent-facility-fact:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.ent-facility-fact i {
  color: var(--mv);
  font-size: 1.1rem;
  margin-top: 0.15rem;
  flex-shrink: 0;
}

.ent-facility-fact__body {
  display: flex;
  flex-direction: column;
}

.ent-facility-fact__title {
  font-family: var(--ff-h);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--bk);
}

.ent-facility-fact__qty {
  font-weight: 500;
  color: var(--mu);
  margin-left: 0.3rem;
}

.ent-facility-fact__detail {
  font-family: var(--ff-h);
  font-size: 0.78rem;
  color: var(--mu);
}

.ent-facility-fact__text {
  font-family: var(--ff-s);
  font-size: 0.82rem;
  line-height: 1.55;
  color: var(--bk);
  margin-top: 0.15rem;
}

/* ================================================================
   §25-E  DEDICATED SERVICES BLOCK (Silver+)
   Deliberately more prominent than the muted fact-card treatment —
   for content that IS the core offering (Forex services, Travel
   Insurers services), not an ancillary fact.
================================================================ */

.ent-services-section {
  padding: 1.75rem 0;
}

.ent-services-section .container {
  background: var(--wh2);
  border-radius: 12px;
  padding: 1.5rem;
}

.ent-services-tile {
  flex: 0 1 150px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.6rem;
  background: #fff;
  border: 1px solid var(--rule);
  border-top: 3px solid var(--gr);
  border-radius: 10px;
  padding: 1.25rem 1rem;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.ent-services-tile:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(35, 15, 66, 0.08);
}

.ent-services-tile i {
  font-size: 1.7rem;
  color: var(--mv);
}

.ent-services-tile__title {
  font-family: var(--ff-h);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--bk);
}

.ent-services-notes__item {
  padding: 0.85rem 1rem;
  background: #fff;
  border-left: 4px solid var(--ye);
  border-radius: 0 8px 8px 0;
  margin-bottom: 0.75rem;
}

.ent-services-notes__item:last-child {
  margin-bottom: 0;
}

.ent-services-notes__label {
  display: block;
  font-family: var(--ff-h);
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mu);
  margin-bottom: 0.25rem;
}

.ent-services-notes__text {
  font-family: var(--ff-s);
  font-size: 0.9rem;
  line-height: 1.6;
  color: var(--bk);
  margin: 0;
}

/* ================================================================
   §25-E  FULL FACILITIES GRID (Gold+)
   .ent-facilities-section — outer wrapper
   .ent-fac-block          — one block (e.g. General facilities)
   .ent-fac-group          — one group within a block
   .ent-fac-group__heading — group sub-heading (multi-group blocks only)
   .ent-fac-grid           — responsive tile grid
   .ent-fac-tile           — single facility: icon + label
================================================================ */


/* ── Block wrapper (full-bleed, alternating backgrounds) ──────── */
 
.ent-fac-block {
    padding: 2.5rem 0;
}
 
.ent-fac-block + .ent-fac-block {
    border-top: 1px solid var(--rule);
}
 
.ent-fac-block--light { background: var(--wh);  }
.ent-fac-block--muted { background: var(--wh2); }
 
 
/* ── Block heading ────────────────────────────────────────────── */
 
.ent-fac-block__heading {
    font-family: var(--ff-h);
    font-size: 0.9rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--dv);
    padding-bottom: 0.4rem;
    border-bottom: 3px solid var(--ye);
    display: inline-block;
    margin-bottom: 1.5rem;
}
 
 
/* ── Column list ──────────────────────────────────────────────── */
 
.ent-fac-list {
    column-count: 3;
    column-gap: 2.5rem;
}
 
@media (max-width: 991px) {
    .ent-fac-list { column-count: 2; }
}
 
@media (max-width: 575px) {
    .ent-fac-list { column-count: 1; }
}
 
 
/* ── Group wrapper (break-inside: avoid keeps heading with items) */
 
.ent-fac-group {
    break-inside: avoid;
    margin-bottom: 1.25rem;
}
 
 
/* ── Group heading — plain small-caps, no background ─────────── */
 
.ent-fac-group__heading {
    font-family: var(--ff-h);
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--mu);
    margin: 0 0 0.5rem;
    padding-bottom: 0.25rem;
    border-bottom: 1px solid var(--rule);
}
 
 
/* ── Individual facility item ─────────────────────────────────── */
 
.ent-fac-item {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.3rem 0;
    break-inside: avoid;
}
 
.ent-fac-item__icon {
    flex-shrink: 0;
    width: 18px;
    text-align: center;
    color: var(--mv);
    font-size: 0.95rem;
    line-height: 1;
}
 
/* Language flag images — same fixed width as icon column */
.ent-fac-item__icon img {
    height: 13px;
    width: auto;
    vertical-align: middle;
    border-radius: 1px;
}
 
.ent-fac-item__label {
    font-family: var(--ff-h);
    font-size: 0.82rem;
    color: var(--bk);
    line-height: 1.35;
}


/* ================================================================
   §25-F. ENTITY DESCRIPTION SECTION
   ─────────────────────────────────────────────────────────────
   Full description rendered from ENT_DESCRIPTION (trusted ET
   HTML). Uses Source Serif 4 prose styling consistent with
   article pages. Silver and above.

   STUB — populated during Silver build.
================================================================ */

/* §25-F stubs go here */


/* ================================================================
   §25-G. ENTITY CHECK-IN / CHECK-OUT
   ─────────────────────────────────────────────────────────────
   Check-in and check-out time display. Hospitality entity type
   only. Displayed in sidebar on Silver; inline on Gold.

   STUB — populated during Silver build.
================================================================ */

/* §25-G stubs go here */


/* ================================================================
   §25-H. ENTITY MAP
   ─────────────────────────────────────────────────────────────
   Used by __entity_section_starter.php and Silver/Gold pages.
   Leaflet map with single entity pin. leaflet.css loaded via
   __head.php (selectStylesheet = 3); leaflet.js via __javascript.php
   when $ShowMap_entity = true.

   .ent-map-pin uses a Font Awesome icon as the Leaflet divIcon,
   avoiding default Leaflet image path issues with local JS loading.
================================================================ */

.ent-map-wrap {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(35,15,66,.10);
  border: 1px solid var(--rule);
}

.ent-map {
  height: 400px;
  width: 100%;
  background: var(--wh);
}

/* Custom Leaflet divIcon pin */
.ent-map-pin {
  background: transparent;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.ent-map-pin .fa-location-dot {
  font-size: 2.25rem;
  color: var(--mv);
  filter: drop-shadow(0 2px 4px rgba(35,15,66,.35));
  line-height: 1;
}

/* Popup content */
.ent-map-popup-name {
  display: block;
  font-family: var(--ff-h);
  font-size: .875rem;
  font-weight: 700;
  color: var(--dv);
  margin-bottom: 2px;
}

.ent-map-popup-city {
  display: block;
  font-family: var(--ff-h);
  font-size: .775rem;
  color: var(--mu);
}


/* ================================================================
   §25-I  GALLERY
   Silver: 4 images in a 2-col mobile / 4-col desktop grid.
   Links trigger GLightbox (class="glightbox").
================================================================ */
 
.ent-gallery-section {
  padding: 2rem 0;
}
 
.ent-gallery__thumb {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 6px;
  transition: opacity 0.2s ease;
}
 
.ent-gallery__item:hover .ent-gallery__thumb {
  opacity: 0.85;
}
 
.ent-gallery__item {
  display: block;
  border-radius: 6px;
  overflow: hidden;
}

/* ================================================================
   §25-J  VIDEOS SECTION (Gold+)
================================================================ */

.ent-videos-section {
    padding: 2.5rem 0;
    border-top: 1px solid var(--rule);
}

.ent-video-item {
    display: block;
    text-decoration: none;
    color: inherit;
}

.ent-video-item:hover .ent-video-thumb__img {
    opacity: 0.85;
}

.ent-video-thumb {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: var(--dv);
}

.ent-video-thumb__img {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    display: block;
    transition: opacity 0.2s ease;
}

.ent-video-thumb__play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 3rem;
    opacity: 0.85;
    transition: opacity 0.2s ease;
}

.ent-video-item:hover .ent-video-thumb__play {
    opacity: 1;
}

.ent-video-thumb__dur {
    position: absolute;
    bottom: 0.4rem;
    right: 0.5rem;
    font-family: var(--ff-h);
    font-size: 0.72rem;
    font-weight: 700;
    color: #fff;
    background: rgba(0,0,0,0.65);
    padding: 2px 6px;
    border-radius: 3px;
}

.ent-video-meta__title {
    font-family: var(--ff-h);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--bk);
    margin: 0;
    line-height: 1.4;
}

/* ================================================================
   §25-J. ROOMS / UNITS SECTION
   ─────────────────────────────────────────────────────────────
   Room type cards for hospitality entities. Each card shows
   room type image, name, category, bed type, capacity, size,
   and rate. GLightbox used for room detail overlays.
   Gold and above, hospitality entity type only.
   Used by: __entity_section_units.php
================================================================ */
 
/* ── Section wrapper ──────────────────────────────────────────── */
 
.ent-units-section {
    padding: 3rem 0;
    background: var(--wh);
    border-top: 1px solid var(--rule);
}
 
/* Intro text — sits in col-lg-8 beside the col-lg-4 heading (see
   __entity_section_units.php), so the column itself governs width,
   no custom max-width needed here. */
.ent-units-intro {
    font-family: var(--ff-s);
    font-size: 0.95rem;
    line-height: 1.8;
    color: var(--bk);
}
 
.ent-units-intro p:last-child { margin-bottom: 0; }
 
 
/* ── Room card — image with overlay ──────────────────────────── */
 
.ent-unit-card {
    display: block;
    position: relative;
    border: none;
    padding: 0;
    background: transparent;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    text-align: left;
    box-shadow: 0 2px 10px rgba(35, 15, 66, 0.1);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}
 
.ent-unit-card:hover {
    box-shadow: 0 6px 24px rgba(35, 15, 66, 0.2);
    transform: translateY(-3px);
}
 
.ent-unit-card:focus-visible {
    outline: 3px solid var(--ye);
    outline-offset: 2px;
}
 
 
/* ── Image ────────────────────────────────────────────────────── */
 
.ent-unit-card__img-wrap {
    aspect-ratio: 4 / 3;
    overflow: hidden;
}
 
.ent-unit-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.4s ease;
}
 
.ent-unit-card:hover .ent-unit-card__img {
    transform: scale(1.06);
}
 
 
/* ── Overlay ──────────────────────────────────────────────────── */
 
.ent-unit-card__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 2.5rem 1.1rem 1.1rem;
    background: linear-gradient(
        to bottom,
        transparent 0%,
        rgba(35, 15, 66, 0.5) 30%,
        rgba(35, 15, 66, 0.92) 100%
    );
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}
 
.ent-unit-card__title {
    font-family: var(--ff-h);
    font-size: 1rem;
    font-weight: 700;
    color: #fff;
    margin: 0;
    line-height: 1.25;
    text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
 
/* Specs row — price, capacity, size */
.ent-unit-card__specs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 0.85rem;
    margin-top: 0.2rem;
}
 
.ent-unit-card__spec {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-family: var(--ff-h);
    font-size: 0.78rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.9);
}
 
.ent-unit-card__spec i {
    color: var(--ye);
    font-size: 0.7rem;
}
 
/* "View details" CTA text */
.ent-unit-card__cta {
    font-family: var(--ff-h);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ye);
    margin-top: 0.3rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}
 
 
/* ── Room modal ───────────────────────────────────────────────── */
 
.ent-unit-modal .modal-header {
    border-bottom: 1px solid var(--rule);
    padding: 1rem 1.5rem;
}
 
.ent-unit-modal .modal-title {
    font-family: var(--ff-h);
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--dv);
}
 
.ent-unit-modal__body {
    padding: 1.5rem;
}
 
 
/* Main image in modal */
.ent-unit-modal__main-img-wrap {
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 0.75rem;
}
 
.ent-unit-modal__main-img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center;
    display: block;
}
 
 
/* Gallery thumbnail strip in modal */
.ent-unit-modal__gal-strip {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
}
 
.ent-unit-modal__gal-tn {
    display: block;
    width: 72px;
    height: 52px;
    border-radius: 4px;
    overflow: hidden;
    border: 2px solid var(--rule);
    flex-shrink: 0;
    transition: border-color 0.15s ease;
    text-decoration: none;
}
 
.ent-unit-modal__gal-tn:hover {
    border-color: var(--mv);
}
 
.ent-unit-modal__gal-tn img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
}
 
 
/* Summary heading in modal */
.ent-unit-modal__summary-heading {
    font-family: var(--ff-h);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--mu);
    padding-bottom: 0.4rem;
    border-bottom: 2px solid var(--ye);
    display: inline-block;
    margin-bottom: 1rem;
}
 
 
/* Spec list in modal */
.ent-unit-modal__spec-list {
    margin-bottom: 1.25rem;
}
 
.ent-unit-modal__spec-list li {
    font-family: var(--ff-h);
    font-size: 0.875rem;
    color: var(--bk);
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--rule);
    display: flex;
    align-items: center;
}
 
.ent-unit-modal__spec-list li:last-child {
    border-bottom: none;
}
 
.ent-unit-modal__spec-list i {
    color: var(--mv);
}
 
 
/* Description block in modal */
.ent-unit-modal__desc {
    margin-top: 1rem;
}
 
.ent-unit-modal__desc-text {
    font-family: var(--ff-s);
    font-size: 0.875rem;
    line-height: 1.75;
    color: var(--bk);
}
 
/* GLightbox z-index override — ensures overlay sits above Bootstrap modal */
.glightbox-container {
    z-index: 9999 !important;
}

/* ================================================================
   §25-K. ENTITY FEATURES / AEF SECTION
   ─────────────────────────────────────────────────────────────
   Used by: __entity_section_bars_restaurants.php
            __entity_section_experiences.php
================================================================ */
 
 
/* ── Section wrapper ──────────────────────────────────────────── */
 
.ent-aef-section {
    padding: 3rem 0;
    background: var(--wh);
    border-top: 1px solid var(--rule);
}
 
/* Alternate background for experiences section */
.ent-aef-section--alt {
    background: var(--wh2);
}
 
 
/* ── Individual feature card ──────────────────────────────────── */
 
.ent-aef-card {
    border: 1px solid var(--rule);
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 2rem;
    background: #fff;
    box-shadow: 0 2px 8px rgba(35, 15, 66, 0.06);
    transition: box-shadow 0.2s ease;
}
 
.ent-aef-card:hover {
    box-shadow: 0 4px 16px rgba(35, 15, 66, 0.12);
}
 
.ent-aef-card:last-child {
    margin-bottom: 0;
}
 
 
/* ── Image column ─────────────────────────────────────────────── */
 
.ent-aef-card__img-wrap {
    height: 100%;
    min-height: 240px;
    overflow: hidden;
}
 
.ent-aef-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform 0.35s ease;
}
 
.ent-aef-card:hover .ent-aef-card__img {
    transform: scale(1.03);
}
 
 
/* ── Text column ──────────────────────────────────────────────── */
 
.ent-aef-card__body {
    padding: 1.75rem 2rem;
    display: flex;
    flex-direction: column;
    height: 100%;
}
 
/* Type icon + title — primary card heading */
.ent-aef-card__type {
    font-family: var(--ff-h);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--dv);
    margin-bottom: 0.75rem;
    display: flex;
    align-items: center;
}
 
.ent-aef-card__type i {
    color: var(--mv);
    font-size: 1rem;
}
 
/* Blurp — short summary lead paragraph */
.ent-aef-card__blurp {
    font-family: var(--ff-h);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--mu);
    margin-bottom: 0.75rem;
    line-height: 1.5;
}
 
/* Full description body text */
.ent-aef-card__text {
    font-family: var(--ff-s);
    font-size: 0.9rem;
    line-height: 1.75;
    color: var(--bk);
    flex: 1;
    margin-bottom: 1.25rem;
}
 
.ent-aef-card__text br + br {
    display: block;
    content: '';
    margin-top: 0.25rem;
}
 
 
/* ── Card footer — badge + button row ────────────────────────── */
 
.ent-aef-card__footer {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 1rem;
    border-top: 1px solid var(--rule);
}
 
/* "Open to all" badge */
.ent-aef-badge {
    display: inline-flex;
    align-items: center;
    font-family: var(--ff-h);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--mv);
    background: rgba(107, 68, 181, 0.08);
    border: 1px solid rgba(107, 68, 181, 0.2);
    padding: 4px 10px;
    border-radius: 20px;
}

/* ================================================================
   §25-L. ENTITY PLACES-TO-SEE CAROUSEL
   ─────────────────────────────────────────────────────────────
   Nearby articles displayed as a Bootstrap grid of .acard cards
   (custom-v4.css §12). The only entity-specific addition is the
   distance indicator row shown above the card title.

   Distance icon logic (PHP in partial):
     < 1 km    → fa-person-hiking  (walking)
     1–2 km    → fa-person-hiking  (walking)
     2–8 km    → fa-person-biking  (cycling)
     ≥ 8 km    → fa-car-side       (driving)

   Used by: __entity_section_closed.php
            __entity_section_starter.php (next build)
================================================================ */

.ent-pts-distance {
  display: flex;
  align-items: center;
  gap: 3px;
  font-family: var(--ff-h);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .04em;
  color: var(--mu);
  margin-bottom: 8px;
}

.ent-pts-distance span {
  margin-left: 1px;
}

/* ── Alternative entity cards ───────────────────────────────────────── */

/* "Full profile" badge — shown on Silver/Gold alternatives only.
   Positioned bottom-left of card image to stay out of the focal area. */
.ent-alt-card {
  position: relative;
}

.ent-alt-badge {
  position: absolute;
  bottom: .5rem;
  left: .5rem;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  background: var(--gr);
  color: #fff;
  font-family: var(--ff-h);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  padding: .2rem .5rem;
  border-radius: 4px;
  line-height: 1.4;
  pointer-events: none;
}

/* City + distance meta row below card title */
.ent-alt-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: var(--ff-h);
  font-size: .8rem;
  color: var(--mu);
  margin-bottom: 4px;
  gap: .5rem;
}

.ent-alt-distance {
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}

/* ================================================================
   §25-M. BOOKING BUTTONS — ALL VARIANTS
   ─────────────────────────────────────────────────────────────
   §25-M1  BOOKING BUTTONS — GOLD VARIANTS
   Primary: full-width, prominent.
   Secondary: compact, logo or icon only.
================================================================ */

.ent-booking-btn--primary {
    width: 100%;
    justify-content: center;
 /*   padding: 0.6rem 1rem; */
    font-weight: 700;
    font-size: 0.9rem;
    border-radius: 8px;  
    color: #fff;
    border: none;
    text-decoration: none;
    transition: background 0.15s ease;
}

.ent-booking-btn--primary .ent-booking-logo:hover {
  border: 1px solid var(--rule);
  border-color: var(--mv);
  color: var(--mv);
}

.ent-booking-btn--primary .ent-booking-logo {
    width: 100%;
    max-width: 250px;
    background: var(--wh);
    border-radius: 6px;
   /* filter: brightness(0) invert(1); */
}

.ent-booking-btn--secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.3rem 0.6rem;
    border-radius: 6px;
    border: 1px solid var(--rule);
    background: #fff;
    text-decoration: none;
    transition: border-color 0.15s ease;
    font-size: 0.8rem;
    color: var(--bk);
}

.ent-booking-btn--secondary:hover {
    border-color: var(--mv);
    color: var(--mv);
}

.ent-booking-logo--sm {
    height: 30px;
    width: auto;
}

/* ================================================================
§25-M2  BOOKING BUTTONS — SILVER VARIANTS
Primary: full-width, prominent.
Secondary: compact, logo or icon only.
================================================================ */

.ent-booking-btn {
  font-family: var(--ff-h);
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--bk);
  text-decoration: none;
  transition: border-color 0.15s ease;
}
 
.ent-booking-btn:hover {
  border-color: var(--mv);
  color: var(--mv);
}
 
.ent-booking-silver-logo {
  height: 75px;
  width: auto;
  background: #fff;
  border-radius: 6px;
}

/* ================================================================
   §25-N. ENTITY DONATION WIDGET
   ─────────────────────────────────────────────────────────────
   Donation CTA block routing via goto_click (roi_click_type_id
   = 15, reserved). Deferred — ITF module not yet built.

   STUB — populated when ITF donation module is built.
================================================================ */

/* §25-N stubs go here */


/* ================================================================
   §25-O. SECTION BOOKMARKS STICKY SUB-NAV
   ─────────────────────────────────────────────────────────────
   Used by: _entity_body_gold.php (§1b), Gold+ only.

   A page-local jump nav, separate from the main site menu (kept
   as-is, deliberately, for predictability across the site). Sticky
   directly beneath .navbar-main (sticky-top, 70px tall) — top offset
   here is NOT a Bootstrap utility value, .sticky-top hardcodes top:0,
   so this needs its own rule to sit below the main nav instead of
   underneath it.

   Active-link highlighting is Bootstrap's native ScrollSpy (see
   __javascript.php) — no custom scroll-tracking JS. ScrollSpy just
   needs anchor tags with matching href="#id" inside the target
   container; it doesn't require a specific link class name, so
   .ent-section-nav__link works fine alongside its own .active toggle.
================================================================ */

.ent-section-nav {
  position: sticky;
  top: 70px;
  z-index: 1020;
  background: var(--wh);
  border-bottom: 1px solid var(--rule);
}

.ent-section-nav__scroll {
  display: flex;
  gap: 0.5rem;
  overflow-x: auto;
  white-space: nowrap;
  padding: 0.6rem 0;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.ent-section-nav__scroll::-webkit-scrollbar {
  display: none;
}

.ent-section-nav__link {
  flex-shrink: 0;
  font-family: var(--ff-h);
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--mu);
  text-decoration: none;
  padding: 0.4rem 0.9rem;
  border-radius: 999px;
  transition: background 0.15s ease, color 0.15s ease;
}

.ent-section-nav__link:hover {
  color: var(--dv);
  background: var(--wh2);
}

.ent-section-nav__link.active {
  color: #fff;
  background: var(--mv);
}

/* Anchor-jump offset for every bookmark target — without this, a clicked
   link scrolls the section's heading directly under the two stacked
   sticky bars (main nav 70px + this sub-nav ~28px) instead of into view.
   Applies to native anchor jumps and ScrollSpy alike, CSS-only, no JS. */
#ent-intro,
#ent-units,
#ent-bars-restaurants,
#ent-experiences,
#ent-map,
#ent-gallery {
  scroll-margin-top: 110px;
}


/* ================================================================
   §25-Z. RESPONSIVE OVERRIDES
   ─────────────────────────────────────────────────────────────
   Mobile-first overrides for all entity page sections.
   Grow this section as each partial section is added.
================================================================ */

@media (max-width: 1199px) {
 
  .ent-gold-hero__tn {
      width: 90px;
      height: 65px;
  }

}


/* ── Contact box — full width on small screens ── */
@media (max-width: 991px) {

  .ent-silver-hero {
    height: 340px;
  }
 
  .ent-contact {
    margin-top: 0;
  }

  .ent-contact-box {
    margin-top: 0;
  }

  .ent-gold-hero__title {
    font-size: clamp(1.5rem, 5vw, 2.2rem);
  }

  .ent-gold-hero__tn {
      width: 80px;
      height: 58px;
  }

}


@media (max-width: 767px) {
 
  .ent-aef-card__img-wrap {
      min-height: 200px;
      height: 200px;
  }

  .ent-aef-card__body {
      padding: 1.25rem;
  }

  .ent-aef-card__type {
      font-size: 1rem;
  }

  /* On mobile, image always stacks above text regardless of flex-row-reverse */
  .flex-row-reverse {
      flex-direction: column !important;
  }

  .ent-unit-card__title {
    font-size: 0.9rem;
  }

  .ent-unit-card__spec {
      font-size: 0.72rem;
  }

  .ent-unit-modal__body {
      padding: 1rem;
  }

}

@media (max-width: 575px) {

  /* ── Closed notice — full padding on small screens ── */
  .ent-closed-notice {
    padding: 2rem 1.25rem;
  }

  .ent-closed-icon {
    font-size: 2.25rem;
  }

  .ent-contact-box {
    padding: 1.5rem 1.25rem;
  }

  .ent-silver-hero {
    height: 260px;
    align-items: flex-end;
  }
 
  .ent-silver-hero__title {
    font-size: 1.5rem;
  }
 
  .ent-keyfac__item,
  .ent-disability__item {
    width: 40px;
    height: 40px;
  }
 
  .ent-keyfac__item i,
  .ent-disability__item i {
    font-size: 1.2rem;
  }
 
  .ent-gallery-section .row-cols-2 {
    /* 2 columns maintained on mobile — no override needed */
  }

  .ent-fac-tile__label {
    font-size: 0.78rem;
  }

  .ent-booking-btn--primary {
      font-size: 0.85rem;
  }

/* ── Map — reduced height on mobile ── */
  .ent-map {
    height: 280px;
  }

}
