/**
 * Albi Mall — single entity / Elementor detail templates (dyqane, gastro, argëtim, aktivitet, ngjarje).
 */

:root {
  --albi-entity-max: min(720px, 100%);
  --albi-entity-gutter: clamp(1rem, 4vw, 2rem);
  --albi-entity-gap: clamp(1rem, 2.5vw, 1.75rem);
}

/* Sticky footer: keep footer at bottom of viewport on short pages */
body.albi-entity-detail-page {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

body.albi-entity-detail-page > .elementor-location-header,
body.albi-entity-detail-page > header.elementor-location-header {
  flex: 0 0 auto;
  width: 100%;
}

body.albi-entity-detail-page > .elementor-location-single,
body.albi-entity-detail-page > .elementor.elementor-location-single {
  flex: 1 0 auto;
  width: 100%;
  display: flex;
  flex-direction: column;
}

body.albi-entity-detail-page > .elementor-location-single > .e-con,
body.albi-entity-detail-page > .elementor.elementor-location-single > .e-con {
  flex: 1 0 auto;
  width: 100%;
  max-width: 100%;
}

body.albi-entity-detail-page > .elementor-location-footer,
body.albi-entity-detail-page > footer.elementor-location-footer {
  flex: 0 0 auto;
  width: 100%;
  margin-top: auto;
}

/* Short service pages: fill the middle band so content isn't cramped under the header */
body.albi-entity-page--service > .elementor-location-single,
body.albi-entity-page--service > .elementor.elementor-location-single {
  justify-content: center;
}

body.albi-entity-page--service .elementor-widget-albi_entity_detail,
body.albi-entity-page--service .elementor-widget-albi_entity_detail .elementor-widget-container {
  width: 100%;
}

body.albi-entity-page--service .albi-entity-profile--service {
  width: min(720px, 100%);
  margin-inline: auto;
  padding-block: clamp(2.5rem, 8vh, 5rem) clamp(3rem, 10vh, 6rem);
}

body.albi-entity-page--service .albi-entity-profile--service .albi-entity-profile__intro {
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
  padding-bottom: clamp(1.25rem, 3vw, 1.75rem);
}

body.albi-entity-page--service .albi-entity-profile--service .albi-entity-profile__title {
  letter-spacing: 0.02em;
  text-wrap: balance;
}

body.albi-entity-page--service .albi-entity-profile--service .albi-entity-profile__prose {
  max-width: 40rem;
  margin-inline: auto;
  text-align: center;
}

body.albi-entity-page--service .albi-entity-profile--service .albi-entity-profile__prose p {
  margin: 0;
}

.albi-entity-detail-page .elementor-location-single .elementor-section-wrap,
.albi-entity-detail-page .elementor-location-single .e-con-inner {
  --albi-entity-content-max: var(--albi-entity-max);
}

/* —— Shared blocks —— */
.albi-entity-block {
  width: 100%;
  max-width: var(--albi-entity-max);
  margin-inline: auto;
  box-sizing: border-box;
}

.albi-entity-block--logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(1.25rem, 3.5vw, 2.25rem) var(--albi-entity-gutter);
}

.albi-entity-block--logo .albi-logo-frame--hero {
  --albi-logo-frame-w: min(480px, 92vw);
  --albi-logo-frame-h: min(220px, 42vw);
  --albi-logo-frame-max-w: min(480px, 92vw);
  --albi-logo-frame-max-h: min(220px, 42vw);
}

.albi-entity-block--title {
  padding: 0 var(--albi-entity-gutter);
  text-align: center;
}

.albi-entity-block--title h1,
.albi-entity-block--title h2,
.albi-entity-block--title h3,
.albi-entity-block--title .albi-shop-title,
.albi-entity-block--title .albi-gastro-title,
.albi-entity-block--title .albi-argetim-title {
  margin: 0;
  font-size: clamp(1.65rem, 4vw, 2.35rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--albi-heading-color, #212121);
}

.albi-entity-block--subtitle {
  padding: 0 var(--albi-entity-gutter);
  text-align: center;
}

.albi-entity-block--subtitle .albi-gastro-subtitle {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--albi-text-color, #212121) 50%, transparent);
}

.albi-entity-block--description,
.albi-entity-block--content {
  padding: clamp(0.5rem, 1.5vw, 1rem) var(--albi-entity-gutter) 0;
}

.albi-entity-prose,
.albi-entity-block--description .albi-shop-description,
.albi-entity-block--description .albi-gastro-description,
.albi-entity-block--description .albi-argetim-description {
  font-size: clamp(0.95rem, 1.65vw, 1.05rem);
  line-height: 1.68;
  color: color-mix(in srgb, var(--albi-text-color, #212121) 82%, transparent);
  text-align: left;
  max-width: 62ch;
  margin-inline: auto;
}

.albi-entity-prose p,
.albi-entity-block--description p {
  margin: 0 0 1em;
}

.albi-entity-prose p:last-child,
.albi-entity-block--description p:last-child {
  margin-bottom: 0;
}

.albi-entity-block--meta {
  padding: clamp(1rem, 2.5vw, 1.5rem) var(--albi-entity-gutter) 0;
}

.albi-entity-detail-page .albi-shop-categories,
.albi-entity-detail-page .albi-argetim-categories {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.45rem 0.55rem;
  max-width: var(--albi-entity-max);
  margin-inline: auto;
}

.albi-entity-detail-page .albi-shop-categories.albi-categories-tags,
.albi-entity-detail-page .albi-argetim-categories.albi-categories-tags {
  gap: 0.45rem 0.55rem;
}

.albi-entity-detail-page .albi-category-item {
  display: inline-flex;
  align-items: stretch;
  justify-content: center;
  margin: 0 !important;
}

.albi-entity-detail-page .albi-category-link {
  width: auto;
  min-width: min(100%, 12rem);
}

.albi-entity-block--location,
.albi-entity-block--hours,
.albi-entity-block--contact {
  padding: clamp(0.85rem, 2vw, 1.15rem) var(--albi-entity-gutter) 0;
  max-width: var(--albi-entity-max);
  margin-inline: auto;
}

.albi-entity-detail-page .albi-shop-location,
.albi-entity-detail-page .albi-argetim-location,
.albi-entity-detail-page .albi-gastro-contact,
.albi-entity-detail-page .albi-shop-contact,
.albi-entity-detail-page .albi-argetim-contact,
.albi-entity-detail-page .albi-shop-hours,
.albi-entity-detail-page .albi-argetim-hours {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.65rem 1rem;
  font-size: 0.88rem;
  line-height: 1.45;
  color: color-mix(in srgb, var(--albi-text-color, #212121) 75%, transparent);
}

.albi-entity-detail-page .albi-contact-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  text-align: center;
}

.albi-entity-detail-page .albi-contact-link {
  color: var(--albi-chip-muted, color-mix(in srgb, var(--albi-text-color, #212121) 62%, transparent));
  text-decoration: none;
  transition: color 0.32s var(--albi-ed-ease, cubic-bezier(0.22, 1, 0.36, 1)), opacity 0.32s var(--albi-ed-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.albi-entity-detail-page .albi-contact-link:hover {
  color: var(--albi-heading-color, var(--albi-text-color, #212121));
  opacity: 1;
}

.albi-entity-detail-page .albi-contact-icon {
  color: inherit;
  opacity: 0.72;
  transition: opacity 0.32s var(--albi-ed-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.albi-entity-detail-page .albi-contact-item:hover .albi-contact-icon {
  opacity: 1;
}

.albi-entity-detail-page .albi-location-icon,
.albi-entity-detail-page .albi-location-icon i,
.albi-entity-detail-page .albi-location-icon svg {
  color: inherit;
  opacity: 0.72;
  transition: opacity 0.32s var(--albi-ed-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.albi-entity-detail-page .albi-shop-location:hover .albi-location-icon,
.albi-entity-detail-page .albi-argetim-location:hover .albi-location-icon {
  opacity: 1;
}

.albi-entity-block--cover {
  width: 100%;
  max-width: min(960px, 100%);
  margin-inline: auto;
  padding: clamp(0.75rem, 2vw, 1.25rem) var(--albi-entity-gutter);
}

.albi-entity-block--cover .albi-gastro-cover {
  overflow: hidden;
  border-radius: clamp(10px, 1.5vw, 16px);
}

.albi-entity-block--cover .albi-gastro-cover img {
  display: block;
  width: 100%;
  height: clamp(200px, 36vh, 420px);
  object-fit: cover;
  object-position: center;
}

.albi-entity-block--map {
  width: 100%;
  max-width: min(960px, 100%);
  margin-inline: auto;
  padding: clamp(1rem, 2.5vw, 1.75rem) var(--albi-entity-gutter);
}

.albi-entity-block--map .albi-shop-map,
.albi-entity-block--map .albi-argetim-map,
.albi-entity-block--map .albi-gastro-map {
  overflow: hidden;
  border-radius: clamp(10px, 1.5vw, 16px);
  border: 1px solid color-mix(in srgb, var(--albi-text-color, #212121) 10%, transparent);
}

.albi-entity-block--gallery {
  width: 100%;
  max-width: min(960px, 100%);
  margin-inline: auto;
  padding: clamp(1rem, 2.5vw, 1.75rem) var(--albi-entity-gutter);
}

.albi-entity-block--gallery .albi-crm-lbg__grid {
  display: grid;
  gap: clamp(0.65rem, 1.5vw, 1rem);
}

.albi-entity-block--gallery .albi-crm-lbg__tile {
  overflow: hidden;
  border-radius: clamp(8px, 1vw, 12px);
  border: 1px solid color-mix(in srgb, var(--albi-text-color, #212121) 10%, transparent) !important;
  padding: 0 !important;
  min-width: 0 !important;
  background: color-mix(in srgb, var(--albi-text-color, #212121) 4%, var(--albi-background-color, #fff)) !important;
}

body.albi-crm-site-styled .albi-entity-block--gallery .albi-crm-lbg__tile,
body.albi-crm-site-styled .albi-entity-block--gallery .albi-crm-lbg__tile:hover,
body.albi-crm-site-styled .albi-entity-block--gallery .albi-crm-lbg__tile:focus {
  padding: 0 !important;
  min-width: 0 !important;
  background: color-mix(in srgb, var(--albi-text-color, #212121) 4%, var(--albi-background-color, #fff)) !important;
  color: inherit !important;
}

.albi-entity-block--gallery .albi-crm-lbg__tile img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Ngjarje / post single — prose from theme content */
.albi-entity-page--post .entry-content,
.albi-entity-page--post .elementor-widget-theme-post-content .elementor-widget-container {
  max-width: var(--albi-entity-max);
  margin-inline: auto;
  padding-inline: var(--albi-entity-gutter);
}

/* —— Activity single —— */
.albi-entity-block--activity {
  max-width: min(820px, 100%);
  padding: var(--albi-entity-gutter);
}

.albi-entity-detail-page .albi-activity-card.albi-entity-activity {
  display: grid;
  gap: var(--albi-entity-gap);
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
}

.albi-entity-detail-page .albi-activity-card.albi-entity-activity:hover {
  transform: none;
  box-shadow: none;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-image {
  border-radius: clamp(12px, 2vw, 18px);
  overflow: hidden;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-image img {
  width: 100%;
  height: clamp(220px, 42vh, 480px);
  object-fit: cover;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-title {
  margin: 0;
  font-size: clamp(1.5rem, 3.5vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-title a {
  color: inherit;
  text-decoration: none;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.65rem;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-meta > span {
  cursor: default;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-meta i {
  color: inherit;
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-excerpt {
  margin-top: 1rem;
  font-size: clamp(0.95rem, 1.65vw, 1.05rem);
  line-height: 1.68;
  color: color-mix(in srgb, var(--albi-text-color, #212121) 82%, transparent);
}

.albi-entity-detail-page .albi-entity-activity .albi-activity-actions {
  margin-top: 1.25rem;
}

.albi-entity-detail-page .albi-entity-activity .albi-read-more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--albi-chip-muted, color-mix(in srgb, var(--albi-text-color, #212121) 62%, transparent));
  transition: color 0.32s var(--albi-ed-ease, cubic-bezier(0.22, 1, 0.36, 1)), opacity 0.32s var(--albi-ed-ease, cubic-bezier(0.22, 1, 0.36, 1));
}

.albi-entity-detail-page .albi-entity-activity .albi-read-more:hover {
  color: var(--albi-heading-color, var(--albi-text-color, #212121));
  opacity: 1;
}

.albi-entity-block--empty {
  padding: 1rem var(--albi-entity-gutter);
  text-align: center;
  color: color-mix(in srgb, var(--albi-text-color, #212121) 55%, transparent);
  font-size: 0.9rem;
}

/* Elementor widget containers on detail pages */
.albi-entity-detail-page [class*="elementor-widget-albi_"] .elementor-widget-container {
  max-width: none;
}

@media (max-width: 767px) {
  .albi-entity-block--logo .albi-logo-frame--hero {
    --albi-logo-frame-w: min(340px, 88vw);
    --albi-logo-frame-h: min(160px, 38vw);
    --albi-logo-frame-max-w: min(340px, 88vw);
    --albi-logo-frame-max-h: min(160px, 38vw);
  }
}
