/* /Components/ContactButtons.razor.rz.scp.css */
.contact-buttons[b-k16dg2irhb] {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.contact-buttons--stack[b-k16dg2irhb] {
  flex-direction: column;
  align-items: stretch;
}

.contact-buttons--stack .btn[b-k16dg2irhb] {
  width: 100%;
}

.contact-buttons--grid[b-k16dg2irhb] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-buttons--grid .btn[b-k16dg2irhb] {
  width: 100%;
  padding-inline: 12px;
}

/* An odd number of buttons (a social page left empty in SiteConfig): WhatsApp, the main channel, takes the whole
   first row so no pill is left alone at half width. */
.contact-buttons--grid > .btn:first-child:nth-last-child(odd)[b-k16dg2irhb] {
  grid-column: 1 / -1;
}

/* In fixed-width columns a label may be wider than its button (long translations, large text settings,
   pages that turn the stack into a grid): let it wrap inside the pill instead of spilling over the border. */
.contact-buttons--grid .btn[b-k16dg2irhb],
.contact-buttons--stack .btn[b-k16dg2irhb] {
  min-width: 0;
  white-space: normal;
  text-wrap: balance;
}

.contact-buttons--grid .btn span[b-k16dg2irhb],
.contact-buttons--stack .btn span[b-k16dg2irhb] {
  min-width: 0;
  overflow-wrap: anywhere;
}

@media (max-width: 380px) {
  .contact-buttons--grid[b-k16dg2irhb] {
    grid-template-columns: minmax(0, 1fr);
  }

  .contact-buttons--row .btn[b-k16dg2irhb] {
    flex: 1 1 100%;
  }
}
/* /Components/CtaBanner.razor.rz.scp.css */
.cta-banner[b-9aokjen72k] {
  position: relative;
  overflow: hidden;
}

/* soft warm glow in the corner */
.cta-banner[b-9aokjen72k]::before {
  content: "";
  position: absolute;
  right: -10%;
  top: -40%;
  width: 55%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(194, 96, 31, .28) 0%, rgba(194, 96, 31, 0) 65%);
  pointer-events: none;
}

.cta-banner__inner[b-9aokjen72k] {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);   /* the column never grows past the container (the buttons grid shrinks with it) */
  gap: var(--space-6);
  align-items: center;
}

.cta-banner__title[b-9aokjen72k] {
  margin-bottom: var(--space-3);
}

.cta-banner__text .lead[b-9aokjen72k] {
  margin: 0;
  max-width: 56ch;
}

.cta-banner__actions[b-9aokjen72k] {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

/* The four large contact buttons (WhatsApp, Call, Instagram, TikTok) as a 2 x 2 grid of equal pills: in a row they
   did not fit the right-hand column on desktop and wrapped 3 + 1. One column on very narrow phones. */
.cta-banner__actions[b-9aokjen72k]  .contact-buttons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 420px;
  max-width: 100%;
}

.cta-banner__actions[b-9aokjen72k]  .contact-buttons .btn {
  width: 100%;
  min-width: 0;
  padding-inline: 16px;
  white-space: normal;   /* a longer label (large text settings) wraps inside its pill instead of spilling over it */
}

/* With an odd number of buttons WhatsApp, the first and main one, spans both columns. */
.cta-banner__actions[b-9aokjen72k]  .contact-buttons > .btn:first-child:nth-last-child(odd) {
  grid-column: 1 / -1;
}

.cta-banner__link[b-9aokjen72k] {
  font-size: 1rem;
}

/* Two pills of ~155px ("Позвонить") fit from a 360px screen up; narrower phones stack them. */
@media (max-width: 359px) {
  .cta-banner__actions[b-9aokjen72k]  .contact-buttons {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (min-width: 961px) {
  .cta-banner__inner[b-9aokjen72k] {
    grid-template-columns: 1.1fr 1fr;
    gap: var(--space-8);
  }

  .cta-banner__actions[b-9aokjen72k] {
    justify-self: end;
    align-items: flex-end;
  }
}
/* /Components/DestinationCard.razor.rz.scp.css */
.destination-card__media-link[b-hcyhfo57ab] {
  display: block;
  width: 100%;
  height: 100%;
}

.destination-card .card__title[b-hcyhfo57ab] {
  font-size: 1.3rem;
}

.destination-card .card__text[b-hcyhfo57ab] {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- "Read more": full description, opened in place --------------------- */
.destination-card__more[b-hcyhfo57ab] {
  margin-top: calc(var(--space-2) * -1);
}

.destination-card__toggle[b-hcyhfo57ab] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 44px;
  padding: 6px 0;
  font-size: .9rem;
  font-weight: 600;
  color: var(--c-primary);
  cursor: pointer;
  list-style: none;
  border-radius: var(--r-sm);
  -webkit-tap-highlight-color: transparent;
  transition: color var(--transition);
}

.destination-card__toggle[b-hcyhfo57ab]::-webkit-details-marker {
  display: none;
}

.destination-card__toggle[b-hcyhfo57ab]::marker {
  content: "";
}

.destination-card__toggle:hover[b-hcyhfo57ab] {
  color: var(--c-accent-600);
}

.destination-card__toggle:focus-visible[b-hcyhfo57ab] {
  outline: 3px solid var(--c-accent);
  outline-offset: 2px;
}

.destination-card__toggle[b-hcyhfo57ab]  svg {
  flex-shrink: 0;
  transition: transform var(--transition);
}

.destination-card__toggle-less[b-hcyhfo57ab] {
  display: none;
}

.destination-card__more[open] .destination-card__toggle-more[b-hcyhfo57ab] {
  display: none;
}

.destination-card__more[open] .destination-card__toggle-less[b-hcyhfo57ab] {
  display: inline;
}

.destination-card__more[open] .destination-card__toggle[b-hcyhfo57ab]  svg {
  transform: rotate(180deg);
}

.destination-card__desc[b-hcyhfo57ab] {
  padding-top: var(--space-1);
  font-size: .93rem;
  line-height: 1.65;
  color: var(--c-text-muted);
}

.destination-card__desc p[b-hcyhfo57ab] {
  margin: 0 0 var(--space-3);
  overflow-wrap: break-word;
}

.destination-card__desc p:last-child[b-hcyhfo57ab] {
  margin-bottom: 0;
}

@media (prefers-reduced-motion: reduce) {
  .destination-card__toggle[b-hcyhfo57ab]  svg {
    transition: none;
  }
}
/* /Components/FloatingWhatsApp.razor.rz.scp.css */
.fab[b-wqe1ss51tl] {
  position: fixed;
  right: max(16px, env(safe-area-inset-right, 0px));
  bottom: max(16px, env(safe-area-inset-bottom, 0px));
  z-index: 90;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: var(--c-whatsapp);
  color: #fff;
  box-shadow: 0 8px 24px rgba(14, 122, 62, .35), var(--shadow-md);
  transition: transform var(--transition), opacity var(--transition), visibility var(--transition), background-color var(--transition);
}

.fab:hover[b-wqe1ss51tl] {
  background: var(--c-whatsapp-600);
  transform: translateY(-2px) scale(1.04);
}

.fab:active[b-wqe1ss51tl] {
  transform: scale(.97);
}

.fab:focus-visible[b-wqe1ss51tl] {
  outline: 3px solid var(--c-primary);
  outline-offset: 3px;
}

.fab[b-wqe1ss51tl]  svg {
  width: 30px;
  height: 30px;
}

.fab__pulse[b-wqe1ss51tl] {
  position: absolute;
  inset: 0;
  z-index: -1;
  border-radius: 50%;
  background: var(--c-whatsapp);
  opacity: .5;
  animation: fab-pulse-b-wqe1ss51tl 2.4s ease-out infinite;
  pointer-events: none;
}

@keyframes fab-pulse-b-wqe1ss51tl {
  0% { transform: scale(1); opacity: .5; }
  70% { transform: scale(1.75); opacity: 0; }
  100% { transform: scale(1.75); opacity: 0; }
}

.fab--hidden[b-wqe1ss51tl] {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: scale(.6);
}

@media (min-width: 768px) {
  .fab[b-wqe1ss51tl] {
    right: max(24px, env(safe-area-inset-right, 0px));
    bottom: max(24px, env(safe-area-inset-bottom, 0px));
  }
}

@media (prefers-reduced-motion: reduce) {
  .fab__pulse[b-wqe1ss51tl] {
    animation: none;
    opacity: 0;
  }
}

@media print {
  .fab[b-wqe1ss51tl] {
    display: none;
  }
}
/* /Components/GuideCard.razor.rz.scp.css */
.guide-card .card__body[b-szbpnmd0w7] {
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-5);
}

.guide-card__avatar[b-szbpnmd0w7] {
  width: 96px;
  height: 96px;
  font-size: 2rem;
  margin-bottom: var(--space-2);
  background: linear-gradient(135deg, var(--c-primary-100), var(--c-accent-100));
}

.guide-card__name[b-szbpnmd0w7] {
  font-size: 1.35rem;
}

.guide-card__role[b-szbpnmd0w7] {
  margin: 0;
  font-weight: 600;
  color: var(--c-accent-600);
}

.guide-card__chips[b-szbpnmd0w7] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.guide-card__bio[b-szbpnmd0w7] {
  margin-top: var(--space-2);
}
/* /Components/Icon.razor.rz.scp.css */
.icon[b-68c7vsjllw] {
  display: inline-block;
  flex-shrink: 0;
  vertical-align: middle;
}
/* /Components/LanguageSwitcher.razor.rz.scp.css */
.lang[b-938ovpfiw1] {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  padding: 2px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-full);
  background: var(--c-surface-alt);
}

/* 44px touch targets everywhere (header, mobile menu). */
.lang__btn[b-938ovpfiw1] {
  min-width: 44px;
  min-height: 44px;
  padding: 4px 10px;
  border-radius: var(--r-full);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--c-text-muted);
  transition: background-color var(--transition), color var(--transition);
}

.lang__btn:hover[b-938ovpfiw1] {
  color: var(--c-primary);
}

.lang__btn[aria-pressed="true"][b-938ovpfiw1] {
  background: var(--c-primary);
  color: var(--c-text-inverse);
}

.lang__sep[b-938ovpfiw1] {
  width: 1px;
  height: 16px;
  background: var(--c-border);
}

@media (pointer: coarse) {
  .lang__btn[b-938ovpfiw1] {
    min-width: 46px;
  }
}
/* /Components/Lightbox.razor.rz.scp.css */
.lightbox[b-3v3hkrsrsc] {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(14, 12, 9, .94);
  color: #fff;
  outline: none;
  touch-action: pan-y;
  animation: lightbox-in-b-3v3hkrsrsc .22s ease;
}

@keyframes lightbox-in-b-3v3hkrsrsc {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Column: photo frame + caption. The padding keeps the content clear of the counter and close button at the top
   (they end at 60px) and of the prev/next buttons at the bottom on phones. */
.lightbox__figure[b-3v3hkrsrsc] {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 72px 72px 64px;
}

/* Takes all the height the caption leaves (flex-basis 0, never below 0), so photo + caption can never be taller
   than the figure; the photo is centred in it and scaled down with its proportions (max-width/max-height 100%). */
.lightbox__frame[b-3v3hkrsrsc] {
  position: relative;
  flex: 1 1 0%;
  min-height: 0;
  width: 100%;
}

.lightbox__img[b-3v3hkrsrsc] {
  position: absolute;
  inset: 0;
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  margin: auto;
  object-fit: contain;
  border-radius: var(--r-sm);
  box-shadow: 0 24px 64px rgba(0, 0, 0, .5);
  user-select: none;
  -webkit-user-drag: none;
  animation: lightbox-img-in-b-3v3hkrsrsc .3s ease;
}

@keyframes lightbox-img-in-b-3v3hkrsrsc {
  from { opacity: 0; transform: scale(.985); }
  to { opacity: 1; transform: none; }
}

.lightbox__caption[b-3v3hkrsrsc] {
  flex: 0 0 auto;
  max-width: 72ch;
  font-size: .92rem;
  line-height: 1.5;
  text-align: center;
  color: rgba(255, 255, 255, .82);
  text-wrap: balance;
}

.lightbox__counter[b-3v3hkrsrsc] {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 2;
  padding: 8px 14px;
  border-radius: var(--r-full);
  background: rgba(255, 255, 255, .1);
  font-size: .85rem;
  font-weight: 600;
  letter-spacing: .06em;
  font-variant-numeric: tabular-nums;
  color: rgba(255, 255, 255, .9);
}

.lightbox__close[b-3v3hkrsrsc],
.lightbox__nav[b-3v3hkrsrsc] {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .1);
  color: #fff;
  transition: background-color var(--transition), transform var(--transition);
}

.lightbox__close[b-3v3hkrsrsc] {
  top: 12px;
  right: 12px;
}

.lightbox__nav[b-3v3hkrsrsc] {
  top: 50%;
  width: 52px;
  height: 52px;
  transform: translateY(-50%);
}

.lightbox__nav--prev[b-3v3hkrsrsc] {
  left: 12px;
}

.lightbox__nav--next[b-3v3hkrsrsc] {
  right: 12px;
}

.lightbox__close:hover[b-3v3hkrsrsc],
.lightbox__nav:hover[b-3v3hkrsrsc] {
  background: rgba(255, 255, 255, .24);
}

.lightbox__close:focus-visible[b-3v3hkrsrsc],
.lightbox__nav:focus-visible[b-3v3hkrsrsc] {
  outline: 3px solid #fff;
  outline-offset: 2px;
}

.lightbox[b-3v3hkrsrsc]  svg {
  width: 26px;
  height: 26px;
}

.lightbox__nav[b-3v3hkrsrsc]  svg {
  width: 30px;
  height: 30px;
}

/* Phones: prev/next sit side by side at the bottom (16px + 48px), the caption ends 20px above them. */
@media (max-width: 640px) {
  .lightbox__figure[b-3v3hkrsrsc] {
    gap: 12px;
    padding: 68px 12px 84px;
  }

  .lightbox__nav[b-3v3hkrsrsc] {
    top: auto;
    bottom: 16px;
    width: 48px;
    height: 48px;
    transform: none;
  }

  .lightbox__nav--prev[b-3v3hkrsrsc] {
    left: calc(50% - 60px);
  }

  .lightbox__nav--next[b-3v3hkrsrsc] {
    right: calc(50% - 60px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lightbox[b-3v3hkrsrsc],
  .lightbox__img[b-3v3hkrsrsc] {
    animation: none;
  }
}
/* /Components/PageHero.razor.rz.scp.css */
.page-hero__inner[b-hcaq6zrdae] {
  max-width: var(--container);
}

.page-hero__extra[b-hcaq6zrdae] {
  margin-top: var(--space-4);
}

.page-hero__extra:empty[b-hcaq6zrdae] {
  display: none;
}
/* /Components/PhotoCredits.razor.rz.scp.css */
.photo-credits[b-brve65l53f] {
  font-size: .85rem;
  color: var(--c-text-muted);
}

.photo-credits__intro[b-brve65l53f] {
  max-width: 70ch;
  margin-bottom: var(--space-4);
}

.photo-credits__list[b-brve65l53f] {
  list-style: none;
  margin: 0;
  padding: 0;
  columns: 1;
  column-gap: var(--space-5);
}

.photo-credits__item[b-brve65l53f] {
  break-inside: avoid;
  padding: 4px 0;
  line-height: 1.5;
}

.photo-credits__item a[b-brve65l53f] {
  color: var(--c-text);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--transition);
}

.photo-credits__item a:hover[b-brve65l53f] {
  color: var(--c-accent-600);
}

.photo-credits__license[b-brve65l53f] {
  white-space: nowrap;
}

@media (min-width: 601px) {
  .photo-credits__list[b-brve65l53f] {
    columns: 2;
  }
}

@media (min-width: 961px) {
  .photo-credits__list[b-brve65l53f] {
    columns: 3;
  }
}
/* /Components/ReviewCard.razor.rz.scp.css */
.review-card .card__body[b-nqja8mqkzp] {
  gap: var(--space-4);
}

/* Avatar on the left; name, country and the stars stacked beside it. The stars always get their own line, so cards
   side by side look the same whatever the length of the name or country (in a flex row a long country such as
   «Великобритания» pushed them under the avatar on one card and not on the next). */
.review-card__head[b-nqja8mqkzp] {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas:
    "avatar who"
    "avatar rating";
  column-gap: 12px;
  row-gap: 4px;
  align-items: center;
}

.review-card__avatar[b-nqja8mqkzp] {
  grid-area: avatar;
}

.review-card__who[b-nqja8mqkzp] {
  grid-area: who;
  align-self: end;
  min-width: 0;
}

.review-card__head[b-nqja8mqkzp]  .stars {
  grid-area: rating;
  align-self: start;
  justify-self: start;
}

.review-card__name[b-nqja8mqkzp] {
  font-weight: 700;
  line-height: 1.3;
}

.review-card__country[b-nqja8mqkzp] {
  font-size: .85rem;
  color: var(--c-text-muted);
}

.review-card__flag[b-nqja8mqkzp] {
  margin-right: 4px;
}

.review-card__quote[b-nqja8mqkzp] {
  font-size: 1rem;
  padding-top: 22px;
}

.review-card__foot[b-nqja8mqkzp] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: 1px solid var(--c-border);
  font-size: .85rem;
  color: var(--c-text-muted);
}

.review-card__tour[b-nqja8mqkzp] {
  flex-basis: 100%;
  color: var(--c-primary);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.review-card__tour:hover[b-nqja8mqkzp] {
  color: var(--c-accent-600);
}
/* /Components/SectionHeading.razor.rz.scp.css */
.section-heading[b-kks8i10an3] {
  max-width: 720px;
  margin-bottom: clamp(28px, 4vw, 48px);
}

.section-heading--center[b-kks8i10an3] {
  margin-inline: auto;
  text-align: center;
}

.section-heading--left[b-kks8i10an3] {
  text-align: left;
}

.section-heading__title[b-kks8i10an3] {
  margin-bottom: .35em;
}

.section-heading__title:last-child[b-kks8i10an3] {
  margin-bottom: 0;
}

.section-heading__subtitle[b-kks8i10an3] {
  margin: 0;
}
/* /Components/TourCard.razor.rz.scp.css */
.tour-card__media-link[b-3zkqmy89o7] {
  display: block;
  width: 100%;
  height: 100%;
}

.tour-card__popular[b-3zkqmy89o7] {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1;
}

.tour-card .card__title[b-3zkqmy89o7] {
  font-size: 1.25rem;
}

.tour-card .card__text[b-3zkqmy89o7] {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Price + button. In narrow 2- and 3-column cards the longer Russian label ("Подробнее о туре") does not fit
   next to the price, so the row wraps: the button then takes its own line (full width where container queries
   are supported, right-aligned otherwise) instead of being clipped by the card. */
.tour-card .card__footer[b-3zkqmy89o7] {
  flex-wrap: wrap;
  row-gap: 12px;
  container-type: inline-size;
}

.tour-card .card__footer .btn[b-3zkqmy89o7] {
  flex-shrink: 0;
  margin-left: auto;
}

.tour-card .card__price[b-3zkqmy89o7] {
  line-height: 1.2;
}

@container (max-width: 300px) {
  .tour-card .card__footer .btn[b-3zkqmy89o7] {
    flex-grow: 1;
  }
}

@media (max-width: 380px) {
  .tour-card .card__footer[b-3zkqmy89o7] {
    flex-direction: column;
    align-items: stretch;
  }

  .tour-card .card__footer .btn[b-3zkqmy89o7] {
    width: 100%;
    margin-left: 0;
  }
}
/* /Layout/Footer.razor.rz.scp.css */
.footer[b-om14nqtj1h] {
  position: relative;
  margin-top: auto;
  padding-block: clamp(48px, 7vw, 80px) 28px;
  background: var(--c-primary);
  color: rgba(255, 255, 255, .78);
  font-size: .95rem;
}

/* thin accent line on top */
.footer[b-om14nqtj1h]::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--c-accent), var(--c-accent-300));
}

.footer__grid[b-om14nqtj1h] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6) var(--space-5);
}

@media (min-width: 601px) {
  .footer__grid[b-om14nqtj1h] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer__brand[b-om14nqtj1h] {
    grid-column: 1 / -1;
  }
}

@media (min-width: 961px) {
  .footer__grid[b-om14nqtj1h] {
    grid-template-columns: 1.6fr 1fr 1fr 1.3fr;
    gap: var(--space-6) var(--space-7);
  }

  .footer__brand[b-om14nqtj1h] {
    grid-column: auto;
  }
}

/* ---- Brand ------------------------------------------------------------ */
.footer__logo[b-om14nqtj1h] {
  display: inline-flex;
  border-radius: var(--r-sm);
}

.footer__logo img[b-om14nqtj1h] {
  display: block;
  width: auto;
  height: 48px;
}

.footer__tagline[b-om14nqtj1h] {
  max-width: 40ch;
  margin: var(--space-4) 0 var(--space-5);
  line-height: 1.6;
}

.footer__social-label[b-om14nqtj1h] {
  display: block;
  margin-bottom: var(--space-2);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-accent-300);
}

.footer__social-list[b-om14nqtj1h] {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer__social-link[b-om14nqtj1h] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  transition: background-color var(--transition), transform var(--transition);
}

.footer__social-link:hover[b-om14nqtj1h] {
  background: var(--c-accent);
  transform: translateY(-2px);
}

/* ---- Columns ---------------------------------------------------------- */
.footer__heading[b-om14nqtj1h] {
  margin: 0 0 var(--space-3);
  font-family: var(--font-body);
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-accent-300);
}

.footer__links[b-om14nqtj1h] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Every footer link is a 44px touch target (stacked links sit at a 44px pitch). */
.footer__links a[b-om14nqtj1h] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 0;
  line-height: 1.4;
  color: rgba(255, 255, 255, .82);
  transition: color var(--transition);
  overflow-wrap: anywhere;
}

.footer__links a:hover[b-om14nqtj1h] {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.footer__count[b-om14nqtj1h] {
  font-size: .82rem;
  color: rgba(255, 255, 255, .5);
}

/* Icon links keep the icon on the first line when the text wraps (address). */
.footer__links--icons a[b-om14nqtj1h] {
  align-items: flex-start;
  padding-block: 11px;
}

.footer__links--icons[b-om14nqtj1h]  svg {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--c-accent-300);
}

.footer__contacts[b-om14nqtj1h] {
  font-style: normal;
}

/* ---- Bottom bar ------------------------------------------------------- */
.footer__bottom[b-om14nqtj1h] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2) var(--space-5);
  margin-top: clamp(32px, 5vw, 56px);
  padding-top: var(--space-5);
  border-top: 1px solid rgba(255, 255, 255, .14);
  font-size: .85rem;
  color: rgba(255, 255, 255, .6);
}

.footer__bottom p[b-om14nqtj1h] {
  margin: 0;
}

.footer__credits[b-om14nqtj1h] {
  color: rgba(255, 255, 255, .7);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--transition);
}

.footer__credits:hover[b-om14nqtj1h] {
  color: #fff;
}

.footer__made[b-om14nqtj1h] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.footer__made[b-om14nqtj1h]  svg {
  color: var(--c-accent-300);
}

.footer :focus-visible[b-om14nqtj1h] {
  outline-color: #fff;
}

@media (prefers-reduced-motion: reduce) {
  .footer__social-link:hover[b-om14nqtj1h] {
    transform: none;
  }
}
/* /Layout/Header.razor.rz.scp.css */
/* ---- Sticky bar -------------------------------------------------------- */
.header[b-656lfy41bg] {
  position: sticky;
  top: 0;
  z-index: 100;
}

.header__bar[b-656lfy41bg] {
  height: var(--header-h);
  background: rgba(250, 247, 242, .88);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  backdrop-filter: blur(14px) saturate(1.3);
  border-bottom: 1px solid rgba(227, 219, 205, .8);
  box-shadow: 0 6px 24px rgba(61, 45, 25, .06);
}

.header__inner[b-656lfy41bg] {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  height: 100%;
}

.header__logo[b-656lfy41bg] {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  border-radius: var(--r-sm);
}

.header__logo img[b-656lfy41bg] {
  display: block;
  width: auto;
  height: 44px;
}

/* ---- Desktop navigation ------------------------------------------------ */
.header__nav[b-656lfy41bg] {
  display: none;
  align-items: center;
  gap: 2px;
  margin-inline: auto;
}

.header__nav[b-656lfy41bg]  .header__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 8px 13px;
  border-radius: var(--r-full);
  font-size: .95rem;
  font-weight: 600;
  color: var(--c-text);
  white-space: nowrap;
  transition: color var(--transition), background-color var(--transition);
}

.header__nav[b-656lfy41bg]  .header__link:hover {
  color: var(--c-primary);
  background: var(--c-primary-100);
}

.header__nav[b-656lfy41bg]  .header__link.is-active {
  color: var(--c-primary);
}

.header__nav[b-656lfy41bg]  .header__link.is-active::after {
  content: "";
  position: absolute;
  left: 13px;
  right: 13px;
  bottom: 4px;
  height: 2px;
  border-radius: 2px;
  background: var(--c-accent);
}

/* ---- Actions ----------------------------------------------------------- */
.header__actions[b-656lfy41bg] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: auto;
}

.header__lang[b-656lfy41bg] {
  display: none;
}

.header__whatsapp[b-656lfy41bg] {
  display: none;
}

.header__burger[b-656lfy41bg] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--r-full);
  color: var(--c-primary);
  transition: background-color var(--transition);
}

.header__burger:hover[b-656lfy41bg] {
  background: var(--c-primary-100);
}

@media (min-width: 480px) {
  .header__lang[b-656lfy41bg] {
    display: block;
  }
}

@media (min-width: 993px) {
  .header__nav[b-656lfy41bg] {
    display: flex;
  }

  .header__whatsapp[b-656lfy41bg] {
    display: inline-flex;
  }

  .header__burger[b-656lfy41bg] {
    display: none;
  }

  .header__actions[b-656lfy41bg] {
    gap: var(--space-3);
    margin-left: 0;
  }
}

/* Narrow desktops (993–1099px): logo + six links + EN/RU + WhatsApp do not fit in one row (the Russian labels
   are longer), so the links get less padding and the WhatsApp button shows its icon only. The label stays
   in the accessibility tree (visually hidden), so the button keeps its name. */
@media (min-width: 993px) and (max-width: 1099.98px) {
  .header__inner[b-656lfy41bg] {
    gap: var(--space-3);
  }

  .header__nav[b-656lfy41bg]  .header__link {
    padding-inline: 9px;
  }

  .header__nav[b-656lfy41bg]  .header__link.is-active::after {
    left: 9px;
    right: 9px;
  }

  .header__actions[b-656lfy41bg] {
    gap: var(--space-2);
  }

  .header__whatsapp[b-656lfy41bg] {
    min-width: 44px;
    padding-inline: 11px;
  }

  .header__whatsapp span[b-656lfy41bg] {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
}

/* ---- Off-canvas menu (≤ 992px) ----------------------------------------- */
.header__backdrop[b-656lfy41bg] {
  position: fixed;
  inset: 0;
  z-index: 105;
  background: var(--c-overlay);
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility 0s linear .3s;
}

.header__backdrop.is-open[b-656lfy41bg] {
  opacity: 1;
  visibility: visible;
  transition: opacity .3s ease;
}

.mobile-menu[b-656lfy41bg] {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 110;
  display: flex;
  flex-direction: column;
  width: min(400px, 90vw);
  padding: 12px 20px max(24px, env(safe-area-inset-bottom, 0px));
  background: var(--c-bg);
  box-shadow: var(--shadow-lg);
  overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(105%);
  visibility: hidden;
  transition: transform .34s cubic-bezier(.2, .65, .3, 1), visibility 0s linear .34s;
}

.mobile-menu.is-open[b-656lfy41bg] {
  transform: none;
  visibility: visible;
  transition: transform .34s cubic-bezier(.2, .65, .3, 1);
}

.mobile-menu__head[b-656lfy41bg] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: calc(var(--header-h) - 12px);
  margin-bottom: var(--space-3);
}

.mobile-menu__logo[b-656lfy41bg] {
  display: inline-flex;
  border-radius: var(--r-sm);
}

.mobile-menu__logo img[b-656lfy41bg] {
  display: block;
  width: auto;
  height: 40px;
}

.mobile-menu__close[b-656lfy41bg] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--r-full);
  color: var(--c-primary);
  background: var(--c-surface-alt);
  transition: background-color var(--transition);
}

.mobile-menu__close:hover[b-656lfy41bg] {
  background: var(--c-border);
}

.mobile-menu__nav[b-656lfy41bg] {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mobile-menu__nav[b-656lfy41bg]  .mobile-menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: 52px;
  padding: 10px 14px;
  border-radius: var(--r-md);
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--c-text);
  transition: background-color var(--transition), color var(--transition);
}

.mobile-menu__nav[b-656lfy41bg]  .mobile-menu__link svg {
  color: var(--c-text-muted);
  transition: transform var(--transition), color var(--transition);
}

.mobile-menu__nav[b-656lfy41bg]  .mobile-menu__link:hover {
  background: var(--c-surface-alt);
}

.mobile-menu__nav[b-656lfy41bg]  .mobile-menu__link:hover svg {
  transform: translateX(3px);
  color: var(--c-accent);
}

.mobile-menu__nav[b-656lfy41bg]  .mobile-menu__link.is-active {
  color: var(--c-primary);
  background: var(--c-primary-100);
}

.mobile-menu__nav[b-656lfy41bg]  .mobile-menu__link.is-active svg {
  color: var(--c-primary);
}

.mobile-menu__lang[b-656lfy41bg] {
  margin-top: var(--space-5);
}

.mobile-menu__contact[b-656lfy41bg] {
  margin-top: var(--space-5);
}

.mobile-menu__footer[b-656lfy41bg] {
  margin-top: auto;
  padding-top: var(--space-6);
  font-size: .92rem;
  color: var(--c-text-muted);
}

.mobile-menu__footer p[b-656lfy41bg] {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 var(--space-2);
}

.mobile-menu__footer[b-656lfy41bg]  svg {
  flex-shrink: 0;
  margin-top: 3px;
  color: var(--c-accent);
}

.mobile-menu__phone a[b-656lfy41bg] {
  font-weight: 600;
  color: var(--c-text);
}

@media (min-width: 993px) {
  .header__backdrop[b-656lfy41bg],
  .mobile-menu[b-656lfy41bg] {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mobile-menu[b-656lfy41bg],
  .header__backdrop[b-656lfy41bg] {
    transition: none;
  }
}
/* /Layout/MainLayout.razor.rz.scp.css */
.site-main[b-vsznv6bxez] {
  display: block;
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100dvh - var(--header-h));
  outline: none;
}
/* /Pages/About.razor.rz.scp.css */
/* About page — page-specific styles (CSS isolation). Uses the tokens from wwwroot/css/app.css.
   Child components (Icon, SiteImg, GuideCard, PhotoCredits, SectionHeading) are reached with ::deep. */

/* ---- Shared icon tiles ----------------------------------------------------- */
.service-card__icon[b-s72ct222ff],
.about-team__guide-icon[b-s72ct222ff] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  border-radius: var(--r-md);
  background: var(--c-primary-100);
  color: var(--c-primary);
}

/* ---- Story ----------------------------------------------------------------- */
.about-story__split[b-s72ct222ff] {
  align-items: center;
}

.about-story__text[b-s72ct222ff]  .section-heading {
  margin-bottom: var(--space-5);
}

.about-story__actions[b-s72ct222ff] {
  margin-top: var(--space-6);
}

.about-story__media[b-s72ct222ff] {
  position: relative;
  margin: 0;
  aspect-ratio: 4 / 3;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--c-surface-alt);
  box-shadow: var(--shadow-md);
}

.about-story__media[b-s72ct222ff]  img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-story__badge[b-s72ct222ff] {
  position: absolute;
  left: var(--space-4);
  bottom: var(--space-4);
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--r-md);
  background: var(--c-surface);
  color: var(--c-text);
  box-shadow: var(--shadow-sm);
}

.about-story__badge-value[b-s72ct222ff] {
  font-family: var(--font-heading);
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1;
  color: var(--c-accent);
}

.about-story__badge-label[b-s72ct222ff] {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}

/* The story photo is a wide group shot: it keeps 4:3 on every screen so nobody is cropped out. */

/* ---- What we do ------------------------------------------------------------ */
.service-card .card__body[b-s72ct222ff] {
  padding: var(--space-5);
}

.service-card__icon[b-s72ct222ff] {
  margin-bottom: var(--space-2);
}

.about-services__cta[b-s72ct222ff] {
  display: flex;
  justify-content: center;
  margin: var(--space-6) 0 0;
}

/* ---- Team ------------------------------------------------------------------ */
/* "Your guide on the trail": one short callout above the guide cards */
.about-team__guide[b-s72ct222ff] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  max-width: 820px;
  margin: 0 auto clamp(32px, 5vw, 56px);
  padding: var(--space-5);
  border-radius: var(--r-lg);
  background: var(--c-surface-alt);
}

.about-team__guide-text[b-s72ct222ff] {
  min-width: 0;
}

.about-team__guide-title[b-s72ct222ff] {
  margin: 0 0 var(--space-2);
  font-size: 1.3rem;
}

.about-team__guide-text p[b-s72ct222ff] {
  margin: 0;
  line-height: 1.6;
  color: var(--c-text-muted);
}

.about-team__item[b-s72ct222ff] {
  height: 100%;
}

@media (min-width: 801px) {
  .about-team__guide[b-s72ct222ff] {
    align-items: center;
    gap: var(--space-5);
    padding: var(--space-5) var(--space-6);
  }
}

/* ---- Photo strip ------------------------------------------------------------ */
.about-photos__grid[b-s72ct222ff] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-3);
}

.about-photos__item[b-s72ct222ff] {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  aspect-ratio: 3 / 4; /* the strip photos are portrait */
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--c-surface-alt);
  box-shadow: var(--shadow-sm);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.about-photos__item:focus-visible[b-s72ct222ff] {
  outline: 3px solid var(--c-accent);
  outline-offset: 3px;
}

.about-photos__item[b-s72ct222ff]  img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2, .65, .3, 1);
}

.about-photos__item:hover[b-s72ct222ff]  img,
.about-photos__item:focus-visible[b-s72ct222ff]  img {
  transform: scale(1.05);
}

/* Stagger the strip like the global grid does */
.about-photos__grid > .reveal:nth-child(2)[b-s72ct222ff] { transition-delay: .08s; }
.about-photos__grid > .reveal:nth-child(3)[b-s72ct222ff] { transition-delay: .16s; }
.about-photos__grid > .reveal:nth-child(4)[b-s72ct222ff] { transition-delay: .24s; }

.about-photos__more[b-s72ct222ff] {
  display: flex;
  justify-content: center;
  margin: var(--space-6) 0 0;
}

.about-photos__credits[b-s72ct222ff] {
  margin-top: var(--space-6);
  padding-top: var(--space-5);
  border-top: 1px solid var(--c-border);
  font-size: .85rem;
}

.about-photos__credits:has(> :empty)[b-s72ct222ff],
.about-photos__credits:not(:has(*))[b-s72ct222ff] {
  display: none;
}

@media (min-width: 760px) {
  .about-photos__grid[b-s72ct222ff] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
  }
}

@media (prefers-reduced-motion: reduce) {
  .about-photos__item[b-s72ct222ff]  img,
  .about-photos__item:hover[b-s72ct222ff]  img {
    transition: none;
    transform: none;
  }
}
/* /Pages/Contact.razor.rz.scp.css */
/* Contact page — page-specific styles (CSS isolation). Tokens and global classes come from wwwroot/css/app.css.
   Mobile-first from 320px: everything is a single column until the breakpoints below. */

/* ---- Hero actions --------------------------------------------------------- */
.contact-hero__actions[b-yw6qojnxpz] {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: var(--space-2);
}

@media (max-width: 400px) {
  .contact-hero__actions .btn[b-yw6qojnxpz] {
    flex: 1 1 100%;
    min-width: 0;
    white-space: normal;
  }
}

/* ---- Company "business card" ------------------------------------------------ */
.contact-company[b-yw6qojnxpz] {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: var(--space-6);
  padding: clamp(16px, 3vw, 24px);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: var(--c-surface);
}

.contact-company__mark[b-yw6qojnxpz] {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
}

.contact-company__text[b-yw6qojnxpz] {
  min-width: 0;
}

.contact-company__label[b-yw6qojnxpz] {
  margin: 0;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--c-accent-600);
}

.contact-company__name[b-yw6qojnxpz] {
  margin: 2px 0 4px;
  font-size: clamp(1.3rem, 3vw, 1.6rem);
  overflow-wrap: anywhere;
}

.contact-company__meta[b-yw6qojnxpz] {
  margin: 0;
  color: var(--c-text-muted);
  line-height: 1.5;
}

@media (max-width: 400px) {
  .contact-company[b-yw6qojnxpz] {
    align-items: flex-start;
  }

  .contact-company__mark[b-yw6qojnxpz] {
    width: 44px;
    height: 44px;
  }
}

/* ---- Contact cards ---------------------------------------------------------- */
.contact-cards__grid[b-yw6qojnxpz] {
  list-style: none;
  margin: 0;
  padding: 0;
}

.contact-card[b-yw6qojnxpz] {
  position: relative;
  align-items: flex-start;
  gap: 6px;
  padding: var(--space-5);
}

.contact-card:focus-within[b-yw6qojnxpz] {
  outline: 3px solid var(--c-accent);
  outline-offset: 2px;
}

.contact-card__icon[b-yw6qojnxpz] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  margin-bottom: var(--space-2);
  border-radius: 50%;
  background: var(--c-primary-100);
  color: var(--c-primary);
  transition: background-color var(--transition), color var(--transition);
}

.contact-card:hover .contact-card__icon[b-yw6qojnxpz],
.contact-card:focus-within .contact-card__icon[b-yw6qojnxpz] {
  background: var(--c-primary);
  color: var(--c-text-inverse);
}

.contact-card--whatsapp:hover .contact-card__icon[b-yw6qojnxpz],
.contact-card--whatsapp:focus-within .contact-card__icon[b-yw6qojnxpz] {
  background: var(--c-whatsapp);
}

.contact-card__title[b-yw6qojnxpz] {
  margin: 0;
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}

.contact-card__value[b-yw6qojnxpz] {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.3;
  color: var(--c-text);
  overflow-wrap: anywhere;
  transition: color var(--transition);
}

/* The whole card is the tap target (stretched link). */
.contact-card__link[b-yw6qojnxpz]::after {
  content: "";
  position: absolute;
  inset: 0;
}

.contact-card__link:hover[b-yw6qojnxpz] {
  color: var(--c-primary-600);
}

.contact-card__link:focus-visible[b-yw6qojnxpz] {
  outline: none;
}

.contact-card__hint[b-yw6qojnxpz] {
  font-size: .9rem;
  color: var(--c-text-muted);
}

/* ---- Social links ------------------------------------------------------------- */
.contact-social[b-yw6qojnxpz] {
  display: grid;
  gap: var(--space-5);
  align-items: center;
  margin-top: clamp(32px, 5vw, 56px);
  padding: clamp(20px, 4vw, 32px);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: var(--c-surface);
}

.contact-social__title[b-yw6qojnxpz] {
  margin: 0 0 var(--space-2);
  font-size: 1.35rem;
}

.contact-social__text p[b-yw6qojnxpz] {
  margin: 0;
  max-width: 56ch;
}

.contact-social__list[b-yw6qojnxpz] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

@media (min-width: 801px) {
  .contact-social[b-yw6qojnxpz] {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .contact-social__list[b-yw6qojnxpz] {
    justify-content: flex-end;
  }
}

/* ---- Enquiry: form + map --------------------------------------------------------- */
.contact-enquiry:focus[b-yw6qojnxpz] {
  outline: none;
}

.contact-layout[b-yw6qojnxpz] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
  align-items: start;
}

@media (min-width: 961px) {
  .contact-layout[b-yw6qojnxpz] {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: var(--space-7);
  }
}

.contact-form[b-yw6qojnxpz] {
  padding: clamp(20px, 4vw, 40px);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: var(--c-surface);
  box-shadow: var(--shadow-sm);
}

.contact-form__head[b-yw6qojnxpz] {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--space-2) var(--space-4);
  margin-bottom: var(--space-2);
}

.contact-form__heading[b-yw6qojnxpz] {
  margin: 0;
  font-size: 1.35rem;
}

.contact-form__required[b-yw6qojnxpz] {
  font-size: .82rem;
  color: var(--c-text-muted);
}

.contact-form__group-hint[b-yw6qojnxpz],
.contact-form__group-error[b-yw6qojnxpz] {
  margin: -6px 0 0;
}

.contact-form__actions[b-yw6qojnxpz] {
  margin-top: var(--space-3);
}

/* Labels may wrap instead of pushing the button past the card when there is not enough room. */
.contact-form__actions .btn[b-yw6qojnxpz] {
  flex: 1 1 auto;
  min-width: 0;
  white-space: normal;
}

@media (max-width: 480px) {
  .contact-form__actions .btn[b-yw6qojnxpz] {
    flex-basis: 100%;
    padding-inline: 16px;
  }
}

.contact-form__alert[b-yw6qojnxpz],
.contact-form__status[b-yw6qojnxpz],
.contact-form__note[b-yw6qojnxpz] {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  font-size: .9rem;
  line-height: 1.5;
}

.contact-form__alert[b-yw6qojnxpz]  svg,
.contact-form__status[b-yw6qojnxpz]  svg,
.contact-form__note[b-yw6qojnxpz]  svg {
  flex-shrink: 0;
  margin-top: 2px;
}

.contact-form__alert[b-yw6qojnxpz] {
  padding: 12px 14px;
  border-radius: var(--r-sm);
  background: var(--c-accent-100);
  color: var(--c-accent-600);
  font-weight: 600;
}

.contact-form__status[b-yw6qojnxpz] {
  padding: 12px 14px;
  border-radius: var(--r-sm);
  background: var(--c-primary-100);
  color: var(--c-primary);
}

.contact-form__note[b-yw6qojnxpz] {
  font-size: .85rem;
  color: var(--c-text-muted);
}

.contact-form__note[b-yw6qojnxpz]  svg {
  color: var(--c-primary);
}

/* Map column */
.contact-map[b-yw6qojnxpz] {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
}

.contact-map__title[b-yw6qojnxpz] {
  margin: 0;
  font-size: 1.35rem;
}

.contact-map__frame-wrap[b-yw6qojnxpz] {
  background: var(--c-surface-alt);
  box-shadow: var(--shadow-sm);
}

.contact-map__frame[b-yw6qojnxpz] {
  display: block;
  width: 100%;
  min-height: 360px;
  height: clamp(360px, 45vw, 460px);
  border: 0;
}

.contact-map__address[b-yw6qojnxpz] {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-weight: 600;
  line-height: 1.5;
}

.contact-map__company[b-yw6qojnxpz] {
  display: block;
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--c-text);
}

.contact-map__address[b-yw6qojnxpz]  svg {
  flex-shrink: 0;
  margin-top: 3px;
  color: var(--c-accent);
}

.contact-map__text[b-yw6qojnxpz] {
  margin: 0;
  font-size: .95rem;
  max-width: 56ch;
}

.contact-map__link[b-yw6qojnxpz] {
  align-self: flex-start;
}

/* ---- FAQ accordion ---------------------------------------------------------------- */
.faq[b-yw6qojnxpz] {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  max-width: 860px;
  margin-inline: auto;
}

.faq__item[b-yw6qojnxpz] {
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-surface);
  overflow: hidden;
  transition: box-shadow var(--transition);
}

.faq__item[open][b-yw6qojnxpz] {
  box-shadow: var(--shadow-sm);
}

.faq__summary[b-yw6qojnxpz] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  min-height: 56px;
  padding: 14px 20px;
  list-style: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 1.02rem;
  line-height: 1.4;
  transition: color var(--transition);
}

.faq__summary[b-yw6qojnxpz]::-webkit-details-marker {
  display: none;
}

.faq__summary[b-yw6qojnxpz]::marker {
  content: "";
}

.faq__summary:hover[b-yw6qojnxpz] {
  color: var(--c-primary-600);
}

.faq__summary:focus-visible[b-yw6qojnxpz] {
  outline: 3px solid var(--c-accent);
  outline-offset: -3px;
}

.faq__summary[b-yw6qojnxpz]  svg {
  flex-shrink: 0;
  color: var(--c-accent);
  transition: transform var(--transition);
}

.faq__item[open] .faq__summary[b-yw6qojnxpz]  svg {
  transform: rotate(180deg);
}

.faq__body[b-yw6qojnxpz] {
  padding: 0 20px 20px;
  color: var(--c-text-muted);
  line-height: 1.65;
}

.faq__body p[b-yw6qojnxpz] {
  margin: 0;
}

/* ---- Reduced motion --------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .contact-card__icon[b-yw6qojnxpz],
  .contact-card__value[b-yw6qojnxpz],
  .faq__item[b-yw6qojnxpz],
  .faq__summary[b-yw6qojnxpz],
  .faq__summary[b-yw6qojnxpz]  svg {
    transition: none;
  }
}
/* /Pages/Destinations.razor.rz.scp.css */
/* ==========================================================================
   Destinations page — intro facts card, route overview (trail of stops + the
   three tours), destination grid. Uses the tokens from wwwroot/css/app.css.
   Mobile-first from 320px.
   ========================================================================== */

/* ---- Intro ----------------------------------------------------------------- */
.destinations-intro__grid[b-nzom71cwr2] {
  align-items: start;
}

.destinations-intro__text[b-nzom71cwr2]  .section-heading {
  margin-bottom: var(--space-5);
}

/* "At a glance" card */
.destinations-facts[b-nzom71cwr2] {
  position: relative;
  overflow: hidden;
  padding: clamp(24px, 4vw, 40px);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: var(--c-surface);
  box-shadow: var(--shadow-sm);
}

/* soft warm glow in the corner */
.destinations-facts[b-nzom71cwr2]::before {
  content: "";
  position: absolute;
  top: -45%;
  right: -25%;
  width: 65%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, var(--c-accent-100) 0%, rgba(248, 230, 217, 0) 70%);
  pointer-events: none;
}

.destinations-facts > *[b-nzom71cwr2] {
  position: relative;
}

.destinations-facts__title[b-nzom71cwr2] {
  margin-bottom: var(--space-4);
  font-size: 1.15rem;
}

.destinations-facts__grid[b-nzom71cwr2] {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
  gap: var(--space-2);
  margin-bottom: var(--space-5);
  padding: var(--space-2) 0;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
}

.destinations-facts__grid .stat[b-nzom71cwr2] {
  padding: var(--space-3) var(--space-1);
  text-align: center;
}

.destinations-facts__note[b-nzom71cwr2] {
  margin-bottom: var(--space-5);
  font-size: .95rem;
  color: var(--c-text-muted);
  text-wrap: pretty;
}

/* ---- Route overview -------------------------------------------------------- */
.route-layout[b-nzom71cwr2] {
  display: grid;
  gap: var(--space-6);
}

/* The trail: an ordered list of stops joined by a dashed line */
.route[b-nzom71cwr2] {
  --marker: 40px;
  list-style: none;
  margin: 0;
  padding: 0;
  min-width: 0;
}

.route__stop[b-nzom71cwr2] {
  position: relative;
  display: grid;
  grid-template-columns: var(--marker) minmax(0, 1fr);
  column-gap: var(--space-3);
  padding-bottom: var(--space-4);
}

/* line from this marker down to the next one */
.route__stop[b-nzom71cwr2]::before {
  content: "";
  position: absolute;
  top: calc(var(--marker) + 4px);
  bottom: 4px;
  left: calc(var(--marker) / 2 - 1px);
  width: 2px;
  background: repeating-linear-gradient(to bottom, var(--c-accent-300) 0 7px, transparent 7px 13px);
}

.route__stop:last-child[b-nzom71cwr2] {
  padding-bottom: 0;
}

.route__stop:last-child[b-nzom71cwr2]::before {
  display: none;
}

.route__marker[b-nzom71cwr2] {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--marker);
  height: var(--marker);
  border-radius: 50%;
  background: var(--c-primary);
  color: var(--c-text-inverse);
  box-shadow: 0 0 0 4px var(--c-surface-alt);
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: lining-nums;
}

.route__stop--return .route__marker[b-nzom71cwr2] {
  background: var(--c-primary-600);
}

.route__stop--finish .route__marker[b-nzom71cwr2] {
  background: var(--c-accent-600);
}

.route__body[b-nzom71cwr2] {
  min-width: 0;
}

.route__card[b-nzom71cwr2] {
  padding: clamp(16px, 3vw, 24px);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  background: var(--c-surface);
  box-shadow: var(--shadow-sm);
}

.route__stop--finish .route__card[b-nzom71cwr2] {
  border-color: var(--c-accent-100);
  background: linear-gradient(135deg, var(--c-surface) 0%, var(--c-accent-100) 160%);
}

.route__tag[b-nzom71cwr2] {
  margin: 0 0 4px;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-accent-600);
}

.route__name[b-nzom71cwr2] {
  margin: 0 0 var(--space-2);
  font-size: clamp(1.15rem, 2vw, 1.35rem);
  line-height: 1.25;
}

.route__name a[b-nzom71cwr2],
.route__pass-name a[b-nzom71cwr2] {
  color: inherit;
  text-decoration: none;
}

.route__name a:hover[b-nzom71cwr2],
.route__pass-name a:hover[b-nzom71cwr2] {
  color: var(--c-accent-600);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.route__text[b-nzom71cwr2] {
  margin: 0;
  color: var(--c-text-muted);
  text-wrap: pretty;
}

/* ride between two stops */
.route__leg[b-nzom71cwr2] {
  display: flex;
  align-items: flex-start;
  gap: var(--space-2);
  margin: 0;
  padding: var(--space-3) var(--space-2) 0;
  font-size: .9rem;
  font-weight: 600;
  color: var(--c-primary);
  text-wrap: pretty;
}

.route__leg[b-nzom71cwr2]  svg {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--c-accent-600);
}

/* "Tours: 2 Days · 3 Days" */
.route__tours[b-nzom71cwr2] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-3);
}

.route__tours-label[b-nzom71cwr2] {
  font-size: .8rem;
  font-weight: 600;
  color: var(--c-text-muted);
}

.route__tour-list[b-nzom71cwr2] {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.route__tour[b-nzom71cwr2] {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 4px 12px;
  border-radius: var(--r-full);
  background: var(--c-primary-100);
  color: var(--c-primary);
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  transition: background-color var(--transition), color var(--transition);
}

.route__tour:hover[b-nzom71cwr2] {
  background: var(--c-primary);
  color: var(--c-text-inverse);
}

@media (pointer: coarse) {
  .route__tour[b-nzom71cwr2] {
    min-height: 44px;
    padding-inline: 16px;
  }
}

/* The way back: the two passes side by side */
.route__passes[b-nzom71cwr2] {
  display: grid;
  gap: var(--space-3);
  margin: var(--space-4) 0 0;
  padding: 0;
  list-style: none;
}

.route__pass[b-nzom71cwr2] {
  min-width: 0;
  padding: var(--space-4);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
  background: var(--c-bg);
}

.route__pass-name[b-nzom71cwr2] {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin: 0 0 4px;
  font-size: 1.05rem;
  line-height: 1.3;
}

.route__pass-name[b-nzom71cwr2]  svg {
  flex-shrink: 0;
  color: var(--c-primary);
}

.route__pass-text[b-nzom71cwr2] {
  margin: 0;
  font-size: .95rem;
  color: var(--c-text-muted);
}

/* The three tours (dark card beside the trail) */
.route-variants[b-nzom71cwr2] {
  min-width: 0;
  padding: clamp(20px, 3vw, 28px);
  border-radius: var(--r-lg);
  background: var(--c-primary);
  color: var(--c-text-inverse);
  box-shadow: var(--shadow-md);
}

.route-variants__title[b-nzom71cwr2] {
  margin: 0 0 var(--space-2);
  font-size: 1.3rem;
  color: inherit;
}

.route-variants__text[b-nzom71cwr2] {
  margin: 0 0 var(--space-4);
  font-size: .92rem;
  color: rgba(255, 255, 255, .78);
}

.route-variants__list[b-nzom71cwr2] {
  display: grid;
  margin: 0;
  padding: 0;
  list-style: none;
}

.variant[b-nzom71cwr2] {
  min-width: 0;
  padding: var(--space-4) 0;
  border-top: 1px solid rgba(255, 255, 255, .16);
}

.variant:last-child[b-nzom71cwr2] {
  padding-bottom: 0;
}

.variant__duration[b-nzom71cwr2] {
  background: rgba(255, 255, 255, .12);
  color: var(--c-accent-300);
}

.variant__name[b-nzom71cwr2] {
  margin: var(--space-2) 0 var(--space-2);
  font-size: 1.12rem;
  line-height: 1.3;
  color: inherit;
}

.variant__name a[b-nzom71cwr2] {
  color: inherit;
  text-decoration: none;
}

.variant__name a:hover[b-nzom71cwr2] {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.variant__name a:focus-visible[b-nzom71cwr2],
.variant__foot[b-nzom71cwr2]  a:focus-visible {
  outline-color: #fff;
}

/* "Kyzart → Kilemche jailoo → …" */
.variant__route[b-nzom71cwr2] {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 0;
  margin: 0 0 var(--space-3);
  padding: 0;
  list-style: none;
  font-size: .88rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, .82);
}

.variant__route li + li[b-nzom71cwr2]::before {
  content: "→";
  margin: 0 6px;
  color: var(--c-accent-300);
}

.variant__foot[b-nzom71cwr2] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2) var(--space-3);
}

.variant__price[b-nzom71cwr2] {
  font-weight: 700;
  color: var(--c-accent-300);
}

/* ---- Destination grid ------------------------------------------------------ */
.destinations-grid__item[b-nzom71cwr2] {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.destinations-grid__item[b-nzom71cwr2]  .card {
  flex: 1 1 auto;
}

/* A card left alone in the last row (7 places = 3 + 3 + 1, or 2 + 2 + 2 + 1) is centred instead of hanging on the left. */
@media (min-width: 601px) and (max-width: 960px) {
  .destinations-grid > .destinations-grid__item:last-child:nth-child(2n + 1)[b-nzom71cwr2] {
    grid-column: 1 / -1;
    justify-self: center;
    width: calc((100% - 24px) / 2);
  }
}

@media (min-width: 961px) {
  .destinations-grid > .destinations-grid__item:last-child:nth-child(3n + 1)[b-nzom71cwr2] {
    grid-column: 2;
  }
}

/* ---- Wider screens ---------------------------------------------------------- */
@media (min-width: 601px) {
  .route[b-nzom71cwr2] {
    --marker: 46px;
  }

  .route__stop[b-nzom71cwr2] {
    column-gap: var(--space-4);
    padding-bottom: var(--space-5);
  }

  .route__passes[b-nzom71cwr2] {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  }
}

@media (min-width: 1025px) {
  .route-layout[b-nzom71cwr2] {
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: var(--space-7);
    align-items: start;
  }
}

/* The tours card stays in view while the trail scrolls, but only where it fits the screen. */
@media (min-width: 1025px) and (min-height: 940px) {
  .route-variants[b-nzom71cwr2] {
    position: sticky;
    top: calc(var(--header-h) + var(--space-5));
  }
}

@media (forced-colors: active) {
  .route__stop[b-nzom71cwr2]::before {
    background: CanvasText;
  }

  .route__marker[b-nzom71cwr2] {
    border: 2px solid CanvasText;
  }
}
/* /Pages/Gallery.razor.rz.scp.css */
/* Gallery page: category filter, photo grid with hover captions, empty state, credits box.
   Uses the tokens from wwwroot/css/app.css. Mobile-first from 320px. */

/* ---- Toolbar: category chips + live photo count ------------------------- */
.gallery-toolbar[b-n1h265broy] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  margin-bottom: clamp(24px, 4vw, 40px);
}

.gallery-filter[b-n1h265broy] {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  max-width: 900px;
}

.gallery-chip__count[b-n1h265broy] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: var(--r-full);
  background: var(--c-surface-alt);
  color: var(--c-text-muted);
  font-size: .74rem;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  transition: background-color var(--transition), color var(--transition);
}

.chip--active .gallery-chip__count[b-n1h265broy] {
  background: rgba(255, 255, 255, .18);
  color: var(--c-text-inverse);
}

.gallery-toolbar__status[b-n1h265broy] {
  margin: 0;
  font-size: .9rem;
  font-weight: 500;
  color: var(--c-text-muted);
  font-variant-numeric: tabular-nums;
}

/* ---- Photo grid ----------------------------------------------------------
   The client's photos are mostly portrait, so the tiles are close to square.
   Fixed auto rows keep the grid dense. 2 columns on phones, 3 from 600px,
   4 from 961px. The tile shapes are chosen in Gallery.razor (TileClass): every
   5th tile is a 2x2 feature, and the last few tiles may become tall (1x2), 2x2,
   wide (2x1) or a full row so that the grid never ends with empty cells.
   Each shape class applies to one column count only:
   gallery-tile--p-* phones, --t-* tablets, --d-* desktop. */
.gallery-grid[b-n1h265broy] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: clamp(170px, 54vw, 260px);
  grid-auto-flow: dense;
  gap: 10px;
}

@media (max-width: 599.98px) {
  .gallery-grid > .gallery-tile--p-feature[b-n1h265broy] { grid-column: span 2; grid-row: span 2; }
  .gallery-grid > .gallery-tile--p-tall[b-n1h265broy] { grid-row: span 2; }
  .gallery-grid > .gallery-tile--p-wide[b-n1h265broy] { grid-column: span 2; }
}

@media (min-width: 600px) and (max-width: 960.98px) {
  .gallery-grid > .gallery-tile--t-feature[b-n1h265broy] { grid-column: span 2; grid-row: span 2; }
  .gallery-grid > .gallery-tile--t-tall[b-n1h265broy] { grid-row: span 2; }
  .gallery-grid > .gallery-tile--t-wide[b-n1h265broy] { grid-column: span 2; }
  .gallery-grid > .gallery-tile--t-row[b-n1h265broy] { grid-column: span 3; }
}

@media (min-width: 961px) {
  .gallery-grid > .gallery-tile--d-feature[b-n1h265broy] { grid-column: span 2; grid-row: span 2; }
  .gallery-grid > .gallery-tile--d-tall[b-n1h265broy] { grid-row: span 2; }
  .gallery-grid > .gallery-tile--d-wide[b-n1h265broy] { grid-column: span 2; }
  .gallery-grid > .gallery-tile--d-row[b-n1h265broy] { grid-column: span 4; }
}

@media (min-width: 600px) {
  .gallery-grid[b-n1h265broy] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: clamp(190px, 30vw, 280px);
    gap: 16px;
  }
}

@media (min-width: 961px) {
  .gallery-grid[b-n1h265broy] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: clamp(220px, 22vw, 290px);
    gap: 20px;
  }
}

/* Stagger the reveal of the first row or two */
.gallery-grid > .gallery-tile:nth-child(2)[b-n1h265broy] { transition-delay: .06s; }
.gallery-grid > .gallery-tile:nth-child(3)[b-n1h265broy] { transition-delay: .12s; }
.gallery-grid > .gallery-tile:nth-child(4)[b-n1h265broy] { transition-delay: .18s; }
.gallery-grid > .gallery-tile:nth-child(5)[b-n1h265broy] { transition-delay: .24s; }
.gallery-grid > .gallery-tile:nth-child(6)[b-n1h265broy] { transition-delay: .3s; }

/* ---- Tile ---------------------------------------------------------------- */
.gallery-tile[b-n1h265broy] {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--c-surface-alt);
  color: var(--c-text-inverse);
  text-align: left;
  cursor: zoom-in;
  isolation: isolate;
  -webkit-tap-highlight-color: transparent;
}

.gallery-tile:focus-visible[b-n1h265broy] {
  outline: 3px solid var(--c-accent);
  outline-offset: 3px;
}

.gallery-tile[b-n1h265broy]  .gallery-tile__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transition: transform .8s cubic-bezier(.2, .65, .3, 1);
}

.gallery-tile:hover[b-n1h265broy]  .gallery-tile__img,
.gallery-tile:focus-visible[b-n1h265broy]  .gallery-tile__img {
  transform: scale(1.06);
}

.gallery-tile__overlay[b-n1h265broy] {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20, 18, 14, 0) 40%, rgba(20, 18, 14, .78) 100%);
  opacity: 0;
  transition: opacity var(--transition);
  pointer-events: none;
}

.gallery-tile__caption[b-n1h265broy] {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--transition), transform var(--transition);
  pointer-events: none;
}

.gallery-tile__text[b-n1h265broy] {
  min-width: 0;
}

.gallery-tile__category[b-n1h265broy] {
  display: block;
  margin-bottom: 3px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--c-accent-300);
}

.gallery-tile__title[b-n1h265broy] {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  font-size: .92rem;
  font-weight: 600;
  line-height: 1.35;
  text-shadow: 0 1px 8px rgba(0, 0, 0, .45);
}

.gallery-tile__zoom[b-n1h265broy] {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .18);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

.gallery-tile__zoom[b-n1h265broy]  svg {
  width: 18px;
  height: 18px;
}

.gallery-tile:hover .gallery-tile__overlay[b-n1h265broy],
.gallery-tile:focus-visible .gallery-tile__overlay[b-n1h265broy] {
  opacity: 1;
}

.gallery-tile:hover .gallery-tile__caption[b-n1h265broy],
.gallery-tile:focus-visible .gallery-tile__caption[b-n1h265broy] {
  opacity: 1;
  transform: none;
}

/* Touch devices have no hover: keep the caption visible */
@media (hover: none) {
  .gallery-tile__overlay[b-n1h265broy],
  .gallery-tile__caption[b-n1h265broy] {
    opacity: 1;
    transform: none;
  }
}

/* One-column tiles on phones (everything but the full-width feature and wide
   tiles): the caption keeps only the title */
@media (max-width: 599.98px) {
  .gallery-tile__caption[b-n1h265broy] {
    padding: 10px 12px;
  }

  .gallery-tile:not(.gallery-tile--p-feature):not(.gallery-tile--p-wide) .gallery-tile__category[b-n1h265broy],
  .gallery-tile:not(.gallery-tile--p-feature):not(.gallery-tile--p-wide) .gallery-tile__zoom[b-n1h265broy] {
    display: none;
  }

  .gallery-tile:not(.gallery-tile--p-feature):not(.gallery-tile--p-wide) .gallery-tile__title[b-n1h265broy] {
    font-size: .82rem;
  }
}

/* ---- Link below the grid ------------------------------------------------- */
.gallery-more[b-n1h265broy] {
  display: flex;
  justify-content: center;
  margin-top: clamp(24px, 4vw, 40px);
}

.gallery-more .link[b-n1h265broy] {
  font-size: 1rem;
}

/* ---- Empty state --------------------------------------------------------- */
.gallery-empty[b-n1h265broy] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  max-width: 560px;
  margin: 0 auto;
  padding: clamp(32px, 6vw, 56px) 20px;
  border: 1.5px dashed var(--c-border);
  border-radius: var(--r-lg);
  background: var(--c-surface);
  text-align: center;
}

.gallery-empty[b-n1h265broy]  .gallery-empty__icon {
  width: 44px;
  height: 44px;
  color: var(--c-accent);
}

.gallery-empty__title[b-n1h265broy] {
  margin: 0;
}

.gallery-empty__text[b-n1h265broy] {
  margin: 0;
  max-width: 42ch;
  color: var(--c-text-muted);
}

.gallery-empty .btn[b-n1h265broy] {
  margin-top: var(--space-2);
}

/* ---- Photo credits ------------------------------------------------------- */
.gallery-credits__box[b-n1h265broy] {
  padding: clamp(20px, 4vw, 36px);
  border-radius: var(--r-lg);
  background: var(--c-surface);
  box-shadow: var(--shadow-sm);
}

/* ---- Reduced motion ------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
  .gallery-tile:hover[b-n1h265broy]  .gallery-tile__img,
  .gallery-tile:focus-visible[b-n1h265broy]  .gallery-tile__img {
    transform: none;
  }

  .gallery-tile__caption[b-n1h265broy] {
    transform: none;
  }

  .gallery-grid > .gallery-tile[b-n1h265broy] {
    transition-delay: 0s;
  }
}
/* /Pages/Home.razor.rz.scp.css */
/* ==========================================================================
   Home page — page-specific styles (CSS isolation). Uses the tokens from
   wwwroot/css/app.css; shared classes (.hero, .section, .grid, .card, .btn,
   .stats, .check-list, .reveal …) come from there. Mobile-first from 320px.
   ========================================================================== */


/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.home-hero[b-qbab60hc7o] {
  min-height: clamp(560px, 92vh, 840px);
  min-height: clamp(560px, 92svh, 840px);
  padding-block: var(--space-8) var(--space-9);
}

.home-hero__content[b-qbab60hc7o] {
  max-width: 880px;
}

/* Fade-up on load (does not depend on the reveal observer: this is the LCP block) */
.home-hero__inner[b-qbab60hc7o] {
  animation: home-hero-rise-b-qbab60hc7o .9s cubic-bezier(.2, .65, .3, 1) both;
}

@keyframes home-hero-rise-b-qbab60hc7o {
  from {
    opacity: 0;
    transform: translateY(22px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

.home-hero__title[b-qbab60hc7o] {
  margin-bottom: var(--space-4);
  font-size: clamp(2.4rem, 6.2vw, 4.6rem);
}

/* Company name: the first line of the h1 (the brand in the banner, for readers, screen readers and search
   engines), set as a letter-spaced wordmark between two short accent rules. */
.home-hero .home-hero__brand[b-qbab60hc7o] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 2vw, 16px);
  margin: 0 0 var(--space-4);
  font-family: var(--font-body);
  font-size: clamp(.86rem, .76rem + .45vw, 1.1rem);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--c-text-inverse);
}

.home-hero__brand[b-qbab60hc7o]::before,
.home-hero__brand[b-qbab60hc7o]::after {
  content: "";
  flex: 0 0 clamp(18px, 6vw, 44px);
  height: 2px;
  border-radius: var(--r-full);
  background: var(--c-accent-300);
}

/* Cancels the trailing letter-spacing so the name sits optically centred between the rules */
.home-hero__brand-name[b-qbab60hc7o] {
  min-width: 0;
  margin-inline-end: -.24em;
}

.home-hero__headline[b-qbab60hc7o] {
  display: block;
}

.home-hero__tagline[b-qbab60hc7o] {
  max-width: 660px;
  margin-inline: auto;
  margin-bottom: var(--space-6);
  font-size: clamp(1.05rem, .85rem + .9vw, 1.3rem);
}

.home-hero__actions[b-qbab60hc7o] {
  gap: 12px;
}

.home-hero__actions .btn[b-qbab60hc7o] {
  min-width: 168px;
}

.home-hero__trust[b-qbab60hc7o] {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: var(--space-6) 0 0;
  padding: 8px 16px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: var(--r-full);
  background: rgba(20, 18, 14, .35);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  font-size: .88rem;
  font-weight: 600;
  color: rgba(255, 255, 255, .94);
  text-shadow: none;
}

.home-hero__trust[b-qbab60hc7o]  .home-hero__trust-icon {
  flex: none;
  color: var(--c-accent-300);
}

.home-hero__scroll[b-qbab60hc7o] {
  position: absolute;
  left: 50%;
  bottom: 22px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border: 1.5px solid rgba(255, 255, 255, .6);
  border-radius: 50%;
  color: var(--c-text-inverse);
  background: rgba(20, 18, 14, .2);
  transform: translateX(-50%);
  animation: home-hero-bob-b-qbab60hc7o 2.6s ease-in-out infinite;
  transition: background-color var(--transition), border-color var(--transition);
}

.home-hero__scroll:hover[b-qbab60hc7o] {
  background: rgba(255, 255, 255, .18);
  border-color: #fff;
}

.home-hero__scroll:focus-visible[b-qbab60hc7o] {
  outline-color: #fff;
}

@keyframes home-hero-bob-b-qbab60hc7o {
  0%,
  100% {
    transform: translate(-50%, 0);
  }

  50% {
    transform: translate(-50%, 7px);
  }
}

@media (max-height: 620px) {
  .home-hero__scroll[b-qbab60hc7o] {
    display: none;
  }
}

@media (max-width: 400px) {
  .home-hero__actions .btn[b-qbab60hc7o] {
    width: 100%;
    min-width: 0;
  }
}


/* --------------------------------------------------------------------------
   Shared: card wrappers (so .reveal can sit on cards rendered by components)
   and "view all" rows
   -------------------------------------------------------------------------- */
.home-card[b-qbab60hc7o] {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.home-card[b-qbab60hc7o]  > .card {
  flex: 1 1 auto;
}

.home-more[b-qbab60hc7o] {
  display: flex;
  justify-content: center;
  margin-top: clamp(28px, 4vw, 44px);
}


/* --------------------------------------------------------------------------
   Destinations strip: horizontal scroll-snap on phones, grid from 601px
   -------------------------------------------------------------------------- */
.home-destinations__grid[b-qbab60hc7o] {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: min(80%, 320px);
  gap: 16px;
  margin-inline: -16px;
  padding: 6px 16px 16px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scroll-padding-inline: 16px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  scrollbar-color: var(--c-border) transparent;
}

.home-destinations__grid > *[b-qbab60hc7o] {
  scroll-snap-align: start;
}

.home-destinations__hint[b-qbab60hc7o] {
  margin: var(--space-2) 0 0;
  font-size: .85rem;
  text-align: center;
}

@media (min-width: 601px) {
  .home-destinations__grid[b-qbab60hc7o] {
    grid-auto-flow: row;
    grid-auto-columns: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-inline: 0;
    padding: 0;
    overflow: visible;
    scroll-snap-type: none;
  }

  .home-destinations__hint[b-qbab60hc7o] {
    display: none;
  }
}

@media (min-width: 961px) {
  .home-destinations__grid[b-qbab60hc7o] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* --------------------------------------------------------------------------
   Why ride with us
   -------------------------------------------------------------------------- */
.home-advantage[b-qbab60hc7o] {
  height: 100%;
  padding: var(--space-5);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  transition:
    box-shadow var(--transition),
    border-color var(--transition),
    transform var(--transition);
}

.home-advantage:hover[b-qbab60hc7o] {
  border-color: transparent;
  box-shadow: var(--shadow-md);
  transform: translateY(-3px);
}

.home-advantage__icon[b-qbab60hc7o] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  margin-bottom: var(--space-4);
  border-radius: 16px;
  background: var(--c-primary-100);
  color: var(--c-primary);
  transition: background-color var(--transition), color var(--transition);
}

.home-advantage:hover .home-advantage__icon[b-qbab60hc7o] {
  background: var(--c-primary);
  color: var(--c-text-inverse);
}

.home-advantage__title[b-qbab60hc7o] {
  margin-bottom: var(--space-2);
  font-size: 1.2rem;
}

.home-advantage__text[b-qbab60hc7o] {
  margin: 0;
  font-size: .95rem;
  color: var(--c-text-muted);
}

@media (min-width: 601px) {
  .home-advantage[b-qbab60hc7o] {
    padding: var(--space-6);
  }
}


/* --------------------------------------------------------------------------
   Photo mosaic (8 images; click opens the Lightbox). Most of the client's photos
   are portrait, so every tile is a tall one (two grid rows); the first tile is
   the large one and the third (the landscape photo in Home.razor's list) the
   wide one. Each layout below fills a clean rectangle with 8 tiles:
   phones 2 columns, tablets 3, desktops 4.
   -------------------------------------------------------------------------- */
.home-mosaic[b-qbab60hc7o] {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: clamp(72px, 21vw, 120px);
  grid-auto-flow: dense;
  gap: 10px;
}

.home-mosaic__item[b-qbab60hc7o] {
  grid-row: span 2;
}

.home-mosaic__item:nth-child(1)[b-qbab60hc7o] {
  grid-column: 1 / -1;
  grid-row: span 3;
}

.home-mosaic__item:nth-child(3)[b-qbab60hc7o] {
  grid-column: 1 / -1;
}

.home-mosaic__item[b-qbab60hc7o] {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: var(--r-md);
  background: var(--c-surface-alt);
  cursor: zoom-in;
  text-align: left;
}

.home-mosaic__item[b-qbab60hc7o]  img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2, .65, .3, 1);
}

.home-mosaic__item:hover[b-qbab60hc7o]  img,
.home-mosaic__item:focus-visible[b-qbab60hc7o]  img {
  transform: scale(1.05);
}

.home-mosaic__item:focus-visible[b-qbab60hc7o] {
  outline: 3px solid var(--c-accent);
  outline-offset: 3px;
}

.home-mosaic__caption[b-qbab60hc7o] {
  position: absolute;
  inset: auto 0 0 0;
  padding: 32px 14px 12px;
  background: linear-gradient(180deg, rgba(20, 18, 14, 0) 0%, rgba(20, 18, 14, .72) 100%);
  color: var(--c-text-inverse);
  font-size: .85rem;
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity var(--transition), transform var(--transition);
}

.home-mosaic__zoom[b-qbab60hc7o] {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(20, 18, 14, .55);
  color: var(--c-text-inverse);
  opacity: 0;
  transition: opacity var(--transition);
}

.home-mosaic__item:hover .home-mosaic__caption[b-qbab60hc7o],
.home-mosaic__item:focus-visible .home-mosaic__caption[b-qbab60hc7o] {
  opacity: 1;
  transform: none;
}

.home-mosaic__item:hover .home-mosaic__zoom[b-qbab60hc7o],
.home-mosaic__item:focus-visible .home-mosaic__zoom[b-qbab60hc7o] {
  opacity: 1;
}

@media (hover: none) {
  .home-mosaic__zoom[b-qbab60hc7o] {
    opacity: .9;
  }
}

/* Stagger the reveal of the tiles */
.home-mosaic > .reveal:nth-child(2)[b-qbab60hc7o] { transition-delay: .06s; }
.home-mosaic > .reveal:nth-child(3)[b-qbab60hc7o] { transition-delay: .12s; }
.home-mosaic > .reveal:nth-child(4)[b-qbab60hc7o] { transition-delay: .18s; }
.home-mosaic > .reveal:nth-child(5)[b-qbab60hc7o] { transition-delay: .24s; }
.home-mosaic > .reveal:nth-child(6)[b-qbab60hc7o] { transition-delay: .3s; }
.home-mosaic > .reveal:nth-child(7)[b-qbab60hc7o] { transition-delay: .36s; }
.home-mosaic > .reveal:nth-child(8)[b-qbab60hc7o] { transition-delay: .42s; }

/* Tablets: 1 2 4 / 3 3 5 / 6 7 8 */
@media (min-width: 601px) {
  .home-mosaic[b-qbab60hc7o] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: clamp(110px, 15vw, 145px);
    gap: 14px;
  }

  .home-mosaic__item:nth-child(1)[b-qbab60hc7o] {
    grid-column: auto;
    grid-row: span 2;
  }

  .home-mosaic__item:nth-child(3)[b-qbab60hc7o] {
    grid-column: span 2;
  }
}

/* Desktops: the large tile on the left, 2 and 4 beside it, the wide tile under them, 5–8 in the bottom row */
@media (min-width: 961px) {
  .home-mosaic[b-qbab60hc7o] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 150px;
    gap: 16px;
  }

  .home-mosaic__item:nth-child(1)[b-qbab60hc7o] {
    grid-column: 1 / 3;
    grid-row: 1 / 5;
  }

  .home-mosaic__item:nth-child(3)[b-qbab60hc7o] {
    grid-column: 3 / 5;
    grid-row: 3 / 5;
  }
}


/* --------------------------------------------------------------------------
   About teaser
   -------------------------------------------------------------------------- */
.home-about__title[b-qbab60hc7o] {
  margin-bottom: var(--space-4);
}

.home-about__points[b-qbab60hc7o] {
  margin-block: var(--space-5);
}

.home-about__media[b-qbab60hc7o] {
  position: relative;
  margin-bottom: 22px; /* room for the overhanging badge on phones */
}

.home-about__photo[b-qbab60hc7o] {
  aspect-ratio: 4 / 3;
  background: var(--c-surface-alt);
  box-shadow: var(--shadow-lg);
}

.home-about__photo[b-qbab60hc7o]  img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-about__since[b-qbab60hc7o] {
  position: absolute;
  left: 16px;
  bottom: -22px;
  display: flex;
  flex-direction: column;
  padding: 14px 20px;
  border-radius: var(--r-md);
  background: var(--c-surface);
  box-shadow: var(--shadow-md);
}

.home-about__since-value[b-qbab60hc7o] {
  font-family: var(--font-heading);
  font-size: 2rem;
  font-weight: 700;
  line-height: 1;
  color: var(--c-accent);
}

.home-about__since-label[b-qbab60hc7o] {
  margin-top: 4px;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}

@media (min-width: 801px) {
  .home-about__media[b-qbab60hc7o] {
    order: -1;
    margin-bottom: 0;
  }

  .home-about__since[b-qbab60hc7o] {
    left: -20px;
    bottom: 28px;
  }
}


/* --------------------------------------------------------------------------
   Contact block
   -------------------------------------------------------------------------- */
.home-contact__split[b-qbab60hc7o] {
  align-items: start;
}

.home-contact__intro[b-qbab60hc7o]  .section-heading {
  margin-bottom: var(--space-5);
}

.home-contact__note[b-qbab60hc7o] {
  margin-top: var(--space-4);
  font-size: .95rem;
}

.home-contact__card[b-qbab60hc7o] {
  padding: var(--space-5);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}

.home-contact__card-title[b-qbab60hc7o] {
  margin-bottom: var(--space-4);
  font-size: 1.25rem;
}

.home-contact__list[b-qbab60hc7o] {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  margin: 0 0 var(--space-5);
  padding: 0;
  list-style: none;
}

.home-contact__item[b-qbab60hc7o] {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
}

.home-contact__item > div[b-qbab60hc7o] {
  min-width: 0;
}

.home-contact__icon[b-qbab60hc7o] {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--c-primary-100);
  color: var(--c-primary);
}

.home-contact__label[b-qbab60hc7o] {
  display: block;
  margin-bottom: 2px;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}

.home-contact__value[b-qbab60hc7o] {
  display: block;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.home-contact__value a[b-qbab60hc7o] {
  transition: color var(--transition);
}

.home-contact__value a:hover[b-qbab60hc7o] {
  color: var(--c-accent-600);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-contact__map[b-qbab60hc7o] {
  width: 100%;
}

.home-contact__map[b-qbab60hc7o]  .home-contact__ext {
  width: 16px;
  height: 16px;
  opacity: .7;
}

@media (min-width: 601px) {
  .home-contact__card[b-qbab60hc7o] {
    padding: var(--space-6);
  }

  .home-contact__map[b-qbab60hc7o] {
    width: auto;
  }
}


/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .home-hero__inner[b-qbab60hc7o] {
    animation: none;
  }

  .home-hero__scroll[b-qbab60hc7o] {
    animation: none;
  }

  .home-advantage:hover[b-qbab60hc7o] {
    transform: none;
  }

  .home-mosaic__item:hover[b-qbab60hc7o]  img,
  .home-mosaic__item:focus-visible[b-qbab60hc7o]  img {
    transform: none;
  }

  .home-mosaic__caption[b-qbab60hc7o] {
    transform: none;
  }
}
/* /Pages/NotFound.razor.rz.scp.css */
.notfound[b-za7efy3dby] {
  position: relative;
  overflow: hidden;
  min-height: calc(100vh - var(--header-h));
  min-height: calc(100dvh - var(--header-h));
  display: flex;
  align-items: center;
  background:
    radial-gradient(60% 50% at 50% 0%, var(--c-accent-100) 0%, rgba(248, 230, 217, 0) 70%),
    var(--c-bg);
}

.notfound__inner[b-za7efy3dby] {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 720px;
}

.notfound__code[b-za7efy3dby] {
  font-family: var(--font-heading);
  font-size: clamp(6rem, 22vw, 11rem);
  font-weight: 700;
  line-height: .95;
  letter-spacing: -.04em;
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-600) 45%, var(--c-accent) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  margin-bottom: var(--space-3);
}

.notfound__title[b-za7efy3dby] {
  margin-bottom: var(--space-3);
}

.notfound__text[b-za7efy3dby] {
  max-width: 52ch;
  margin-bottom: var(--space-6);
}

.notfound__actions[b-za7efy3dby] {
  margin-bottom: var(--space-7);
}

.notfound__contact[b-za7efy3dby] {
  margin-bottom: var(--space-4);
  font-size: .95rem;
}

.notfound[b-za7efy3dby]  .contact-buttons {
  justify-content: center;
}
/* /Pages/TourDetail.razor.rz.scp.css */
/* Single tour page (/tours/{slug}). Mobile-first from 320px; tokens from wwwroot/css/app.css. */

/* ---- Hero extras ------------------------------------------------------------ */
/* Breadcrumb colours on the photo and their 44px touch targets come from the global .page-hero .breadcrumbs rules. */
.tour-hero__top[b-38a0mfo1uv] {
  margin-bottom: var(--space-4);
}

.tour-hero__badges[b-38a0mfo1uv] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

/* The destination badge is a link: full 44px tap target. */
.tour-hero__badge[b-38a0mfo1uv] {
  min-height: 44px;
  padding-inline: 16px;
  text-decoration: none;
  transition: background-color var(--transition), color var(--transition);
}

.tour-hero__badge:hover[b-38a0mfo1uv] {
  background: var(--c-accent-600);
  color: var(--c-text-inverse);
}

.tour-hero__badge:focus-visible[b-38a0mfo1uv] {
  outline: 3px solid var(--c-text-inverse);
  outline-offset: 2px;
}

.tour-hero__facts[b-38a0mfo1uv] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 22px;
  font-size: .95rem;
  font-weight: 600;
  color: rgba(255, 255, 255, .92);
  text-shadow: 0 1px 10px rgba(0, 0, 0, .35);
}

.tour-hero__facts li[b-38a0mfo1uv] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 28px;
}

.tour-hero__facts[b-38a0mfo1uv]  svg {
  color: var(--c-accent-300);
}

.tour-hero__price[b-38a0mfo1uv] {
  font-size: 1.05rem;
  font-weight: 700;
}

.tour-hero__price small[b-38a0mfo1uv] {
  font-size: .8rem;
  font-weight: 500;
  color: rgba(255, 255, 255, .75);
}

/* ---- Two-column layout ------------------------------------------------------ */
.tour-layout[b-38a0mfo1uv] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-7);
}

.tour-main[b-38a0mfo1uv] {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: clamp(40px, 6vw, 64px);
}

.tour-aside[b-38a0mfo1uv] {
  min-width: 0;
}

@media (min-width: 992px) {
  .tour-layout[b-38a0mfo1uv] {
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: var(--space-8);
    align-items: start;
  }

  .tour-main[b-38a0mfo1uv] {
    grid-column: 1;
    grid-row: 1;
  }

  /* Short viewports (the card is taller than the screen): the card scrolls with the page until its bottom,
     with the contact buttons, comes into view, then stays pinned to the viewport bottom. The booking actions
     are never stuck below the fold, as they would be in a top-pinned card taller than the screen. */
  .tour-aside[b-38a0mfo1uv] {
    grid-column: 2;
    grid-row: 1;
    align-self: end;
    position: sticky;
    top: auto;
    bottom: var(--space-4);
    z-index: 1;
  }
}

/* Tall viewports (the whole card fits under the header): classic top-pinned card. The height cap is only a
   safety net for unusually long content or large text settings: the actions stay reachable inside the card. */
@media (min-width: 992px) and (min-height: 51.25em) {
  .tour-aside[b-38a0mfo1uv] {
    align-self: start;
    top: calc(var(--header-h) + var(--space-4));
    bottom: auto;
  }

  .tour-booking[b-38a0mfo1uv] {
    max-height: calc(100vh - var(--header-h) - 2 * var(--space-4));
    max-height: calc(100dvh - var(--header-h) - 2 * var(--space-4));
    overflow-y: auto;
    scrollbar-width: thin;
  }

  .tour-booking > *[b-38a0mfo1uv] {
    flex-shrink: 0;
  }
}

@media (min-width: 1200px) {
  .tour-layout[b-38a0mfo1uv] {
    gap: var(--space-9);
  }
}

/* ---- Booking card ----------------------------------------------------------- */
.tour-booking[b-38a0mfo1uv] {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-5);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

@media (min-width: 480px) {
  .tour-booking[b-38a0mfo1uv] {
    padding: var(--space-6);
  }
}

/* Desktop column (380px): a denser card, so it fits under the header on common laptop screens. */
@media (min-width: 992px) {
  .tour-booking[b-38a0mfo1uv] {
    gap: 14px;
    padding: var(--space-5);
  }
}

.tour-booking__title[b-38a0mfo1uv] {
  margin: 0;
  font-size: clamp(1.4rem, 2vw, 1.65rem);
}

.tour-booking__lead[b-38a0mfo1uv] {
  margin: 0;
  font-size: .95rem;
  line-height: 1.55;
  color: var(--c-text-muted);
}

.tour-booking__price[b-38a0mfo1uv] {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  padding-top: var(--space-2);
}

.tour-booking__amount[b-38a0mfo1uv] {
  font-family: var(--font-heading);
  font-size: 2.1rem;
  font-weight: 700;
  line-height: 1;
  color: var(--c-accent);
}

.tour-booking__per[b-38a0mfo1uv] {
  font-size: .9rem;
  font-weight: 500;
  color: var(--c-text-muted);
}

/* "Price on request": the same accent headline, a size smaller so the words stay on one line in the card,
   with the hint on its own line where "per person" would be. */
.tour-booking__price--request .tour-booking__amount[b-38a0mfo1uv] {
  font-size: clamp(1.55rem, 5.2vw, 1.8rem);
  line-height: 1.15;
}

.tour-booking__hint[b-38a0mfo1uv] {
  flex-basis: 100%;
  font-size: .9rem;
  font-weight: 500;
  line-height: 1.45;
  color: var(--c-text-muted);
}

@media (min-width: 992px) {
  .tour-booking__price--request .tour-booking__amount[b-38a0mfo1uv] {
    font-size: 1.7rem;
  }
}

.tour-facts[b-38a0mfo1uv] {
  margin: 0;
  display: flex;
  flex-direction: column;
}

.tour-facts__row[b-38a0mfo1uv] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-3);
  padding-block: 10px;
  border-top: 1px solid var(--c-border);
}

.tour-facts__row:last-child[b-38a0mfo1uv] {
  border-bottom: 1px solid var(--c-border);
}

@media (min-width: 992px) {
  .tour-facts__row[b-38a0mfo1uv] {
    padding-block: 8px;
  }
}

.tour-facts dt[b-38a0mfo1uv] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  font-size: .9rem;
  color: var(--c-text-muted);
}

.tour-facts dt[b-38a0mfo1uv]  svg {
  color: var(--c-primary);
}

.tour-facts dd[b-38a0mfo1uv] {
  margin: 0;
  min-width: 0;
  font-weight: 600;
  text-align: right;
  overflow-wrap: anywhere;
}

.tour-booking__actions[b-38a0mfo1uv] {
  padding-top: var(--space-2);
}

@media (min-width: 992px) {
  .tour-booking__actions[b-38a0mfo1uv] {
    padding-top: 2px;
  }
}

/* Contact buttons (WhatsApp, Call, Instagram, TikTok) flow into rows of equal-width pills: 2 x 2 on phones and in the
   desktop column, 4 in a row on tablets. A button is never narrower than its one-line label, so a longer label
   (a long translation, large text settings) takes a row of its own instead of spilling over the pill; on the
   narrowest screens the buttons stack. The label only wraps when it is wider than the whole card. */
.tour-booking__actions[b-38a0mfo1uv]  .contact-buttons--stack {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
}

.tour-booking__actions[b-38a0mfo1uv]  .contact-buttons--stack .btn {
  flex: 1 1 8rem;
  width: auto;
  min-width: fit-content;
  padding-inline: 14px;
  white-space: normal;
}

.tour-booking__note[b-38a0mfo1uv] {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  font-size: .88rem;
  font-weight: 500;
  color: var(--c-text-muted);
}

.tour-booking__note[b-38a0mfo1uv]  svg {
  color: var(--c-primary);
}

/* ---- Content blocks --------------------------------------------------------- */
.tour-block__title[b-38a0mfo1uv] {
  margin: 0 0 var(--space-5);
}

.tour-description[b-38a0mfo1uv] {
  max-width: 70ch;
  font-size: 1.05rem;
  line-height: 1.7;
}

.tour-highlights[b-38a0mfo1uv] {
  gap: 14px;
  max-width: 70ch;
}

.tour-highlights li[b-38a0mfo1uv] {
  font-size: 1.02rem;
}

.tour-highlights[b-38a0mfo1uv]  .icon-list__icon {
  fill: var(--c-accent-100);
}

/* ---- Itinerary timeline ----------------------------------------------------- */
.timeline[b-38a0mfo1uv] {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}

.timeline[b-38a0mfo1uv]::before {
  content: "";
  position: absolute;
  left: 21px;
  top: 12px;
  bottom: 12px;
  width: 2px;
  background: linear-gradient(180deg, var(--c-primary-100) 0%, var(--c-border) 50%, var(--c-primary-100) 100%);
}

.timeline__item[b-38a0mfo1uv] {
  position: relative;
  padding-left: 64px;
  padding-bottom: var(--space-6);
}

.timeline__item:last-child[b-38a0mfo1uv] {
  padding-bottom: 0;
}

.timeline__marker[b-38a0mfo1uv] {
  position: absolute;
  left: 0;
  top: 0;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--c-primary);
  color: var(--c-text-inverse);
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  box-shadow: 0 0 0 5px var(--c-bg), var(--shadow-sm);
}

.timeline__body[b-38a0mfo1uv] {
  min-width: 0;
  padding-top: 4px;
}

.timeline__day[b-38a0mfo1uv] {
  display: block;
  margin-bottom: 4px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--c-accent-600);
}

.timeline__title[b-38a0mfo1uv] {
  margin: 0 0 var(--space-3);
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  overflow-wrap: anywhere;
}

.timeline__text[b-38a0mfo1uv] {
  max-width: 70ch;
  line-height: 1.7;
  color: var(--c-text);
}

.timeline__text p[b-38a0mfo1uv] {
  margin: 0;
}

.timeline__text p + p[b-38a0mfo1uv] {
  margin-top: var(--space-3);
}

/* Clock times in the day text ("09:30", "18:00–19:00"): a quiet pill that makes the schedule easy to scan. */
.timeline__time[b-38a0mfo1uv] {
  display: inline-block;
  padding: 0 .3em;
  border-radius: 5px;
  background: var(--c-primary-100);
  color: var(--c-primary);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  line-height: 1.55;
  white-space: nowrap;
}

@media (min-width: 600px) {
  .timeline[b-38a0mfo1uv]::before {
    left: 25px;
  }

  .timeline__item[b-38a0mfo1uv] {
    padding-left: 78px;
  }

  .timeline__marker[b-38a0mfo1uv] {
    width: 52px;
    height: 52px;
    font-size: 1.35rem;
  }
}

/* ---- Included / not included ------------------------------------------------ */
.tour-inclusions[b-38a0mfo1uv] {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-6);
}

.tour-inclusions__col[b-38a0mfo1uv] {
  min-width: 0;
  padding: var(--space-5);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--r-md);
}

.tour-inclusions__title[b-38a0mfo1uv] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 var(--space-4);
  font-size: 1.1rem;
}

.tour-inclusions__title[b-38a0mfo1uv]  svg {
  color: var(--c-primary);
}

.tour-inclusions__title--no[b-38a0mfo1uv]  svg {
  color: var(--c-text-muted);
}

@media (min-width: 700px) {
  .tour-inclusions[b-38a0mfo1uv] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-5);
  }
}

/* ---- Gallery ---------------------------------------------------------------- */
.tour-gallery__hint[b-38a0mfo1uv] {
  margin: calc(-1 * var(--space-3)) 0 var(--space-4);
  font-size: .95rem;
}

.tour-gallery[b-38a0mfo1uv] {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-flow: dense;
  gap: 10px;
}

.tour-gallery__cell[b-38a0mfo1uv] {
  min-width: 0;
}

.tour-gallery__item[b-38a0mfo1uv] {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 4 / 3;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--c-surface-alt);
  color: inherit;
  cursor: zoom-in;
}

.tour-gallery__item[b-38a0mfo1uv]  img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2, .65, .3, 1);
}

.tour-gallery__item:hover[b-38a0mfo1uv]  img,
.tour-gallery__item:focus-visible[b-38a0mfo1uv]  img {
  transform: scale(1.05);
}

.tour-gallery__item:focus-visible[b-38a0mfo1uv] {
  outline: 3px solid var(--c-accent);
  outline-offset: 3px;
}

.tour-gallery__zoom[b-38a0mfo1uv] {
  position: absolute;
  right: 10px;
  bottom: 10px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(20, 18, 14, .62);
  color: var(--c-text-inverse);
  opacity: 0;
  transform: translateY(4px);
  transition: opacity var(--transition), transform var(--transition);
  pointer-events: none;
}

.tour-gallery__item:hover .tour-gallery__zoom[b-38a0mfo1uv],
.tour-gallery__item:focus-visible .tour-gallery__zoom[b-38a0mfo1uv] {
  opacity: 1;
  transform: none;
}

@media (hover: none) {
  .tour-gallery__zoom[b-38a0mfo1uv] {
    opacity: 1;
    transform: none;
  }
}

@media (min-width: 600px) {
  .tour-gallery[b-38a0mfo1uv] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }

  .tour-gallery__cell:first-child[b-38a0mfo1uv] {
    grid-column: span 2;
    grid-row: span 2;
  }
}

.tour-credits[b-38a0mfo1uv] {
  margin-top: var(--space-4);
  font-size: .8rem;
}

/* ---- Reviews / related cards ------------------------------------------------ */
.tour-grid-item[b-38a0mfo1uv] {
  display: grid;
  min-width: 0;
}

/* One or two related tours: cards keep the width of a three-column card and sit in the middle of the row. */
@media (min-width: 961px) {
  .tour-related__grid--n1[b-38a0mfo1uv],
  .tour-related__grid--n2[b-38a0mfo1uv] {
    justify-content: center;
  }

  .tour-related__grid--n1[b-38a0mfo1uv] {
    grid-template-columns: minmax(0, calc((100% - 48px) / 3));
  }

  .tour-related__grid--n2[b-38a0mfo1uv] {
    grid-template-columns: repeat(2, minmax(0, calc((100% - 48px) / 3)));
  }
}

/* ---- Mobile booking bar ----------------------------------------------------- */
/* Last child of .tour-page: sticks to the viewport bottom while the tour is on screen and
   settles above the footer at the end, so it never covers the footer. */
.tour-bar[b-38a0mfo1uv] {
  position: sticky;
  bottom: 0;
  z-index: 95;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  min-height: 76px;
  padding: 14px 16px;
  padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  background: rgba(250, 247, 242, .94);
  -webkit-backdrop-filter: blur(14px) saturate(1.3);
  backdrop-filter: blur(14px) saturate(1.3);
  border-top: 1px solid var(--c-border);
  box-shadow: 0 -8px 24px rgba(61, 45, 25, .12);
}

.tour-bar__price[b-38a0mfo1uv] {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.2;
}

.tour-bar__amount[b-38a0mfo1uv] {
  font-family: var(--font-heading);
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--c-accent);
  white-space: nowrap;
}

.tour-bar__per[b-38a0mfo1uv] {
  font-size: .75rem;
  font-weight: 500;
  color: var(--c-text-muted);
}

.tour-bar__btn[b-38a0mfo1uv] {
  flex-shrink: 0;
  min-height: 48px;
}

@media (min-width: 992px) {
  .tour-bar[b-38a0mfo1uv] {
    display: none;
  }
}

/* ---- Unknown slug ----------------------------------------------------------- */
.tour-missing[b-38a0mfo1uv] {
  background:
    radial-gradient(60% 50% at 50% 0%, var(--c-accent-100) 0%, rgba(248, 230, 217, 0) 70%),
    var(--c-bg);
}

.tour-missing__inner[b-38a0mfo1uv] {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 720px;
  margin-inline: auto;
  text-align: center;
}

.tour-missing__title[b-38a0mfo1uv] {
  margin-bottom: var(--space-3);
}

.tour-missing__text[b-38a0mfo1uv] {
  max-width: 54ch;
  margin-bottom: var(--space-6);
}

.tour-missing__actions[b-38a0mfo1uv] {
  margin-bottom: var(--space-7);
}

.tour-missing__contact[b-38a0mfo1uv] {
  margin-bottom: var(--space-4);
  font-size: .95rem;
}

.tour-missing__inner[b-38a0mfo1uv]  .contact-buttons {
  justify-content: center;
}

.tour-missing__popular[b-38a0mfo1uv] {
  margin-top: var(--space-9);
}

/* ---- Motion & print --------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .tour-gallery__item:hover[b-38a0mfo1uv]  img,
  .tour-gallery__item:focus-visible[b-38a0mfo1uv]  img {
    transform: none;
  }

  .tour-gallery__zoom[b-38a0mfo1uv] {
    transform: none;
  }
}

@media print {
  .tour-bar[b-38a0mfo1uv],
  .tour-gallery__zoom[b-38a0mfo1uv] {
    display: none !important;
  }

  .tour-aside[b-38a0mfo1uv] {
    position: static;
    align-self: auto;
  }

  .tour-booking[b-38a0mfo1uv] {
    max-height: none;
    overflow: visible;
  }
}
/* /Pages/Tours.razor.rz.scp.css */
/* ==========================================================================
   Tours catalogue (/tours) — page-specific styles. Global classes live in app.css.
   ========================================================================== */

/* ---- Hero: extra bottom room so the overlapping toolbar never touches the subtitle ---- */
.tours-hero[b-3koeane8ws]  .page-hero {
  padding-bottom: calc(56px + var(--space-6));
}

@media (min-width: 768px) {
  .tours-hero[b-3koeane8ws]  .page-hero {
    padding-bottom: calc(56px + var(--space-7));
  }
}

/* ---- Catalogue section: the filter toolbar overlaps the bottom of the hero ---- */
.tours-catalog[b-3koeane8ws] {
  padding-top: 0;
}

.tours-toolbar[b-3koeane8ws] {
  position: relative;
  z-index: 1;
  display: grid;
  gap: var(--space-5);
  margin-top: calc(-1 * var(--space-6));
  padding: var(--space-5) var(--space-4);
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}

@media (min-width: 768px) {
  .tours-toolbar[b-3koeane8ws] {
    margin-top: calc(-1 * var(--space-7));
    padding: var(--space-6);
  }
}

.tours-toolbar__head[b-3koeane8ws] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
}

.tours-toolbar__title[b-3koeane8ws] {
  margin: 0;
  font-size: clamp(1.3rem, 2.4vw, 1.6rem);
}

/* ---- The filter groups: stacked on phones, side by side from 768px ---- */
.tours-toolbar__filters[b-3koeane8ws] {
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
  min-width: 0;
}

@media (min-width: 768px) {
  .tours-toolbar__filters[b-3koeane8ws] {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: var(--space-5) var(--space-7);
  }
}

/* ---- One filter group: label + chips ---- */
.tours-filter[b-3koeane8ws] {
  display: grid;
  gap: var(--space-3);
  min-width: 0;
}

.tours-filter__label[b-3koeane8ws] {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}

.tours-chips[b-3koeane8ws] {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.tours-chip__count[b-3koeane8ws] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: var(--r-full);
  background: var(--c-primary-100);
  color: var(--c-primary);
  font-size: .74rem;
  font-weight: 700;
  line-height: 1;
}

/* Trip-length chips on phones: no icons, and the chips share the row like a segmented control
   ("All · 2 days · 3 days · 4 days" fits on one line from 320px). */
@media (max-width: 480px) {
  .tours-chips--lengths .chip[b-3koeane8ws] {
    flex: 1 1 auto;
    padding-inline: 10px;
  }

  .tours-chips--lengths[b-3koeane8ws]  svg {
    display: none;
  }
}

.chip[aria-pressed="true"] .tours-chip__count[b-3koeane8ws] {
  background: rgba(255, 255, 255, .2);
  color: var(--c-text-inverse);
}

/* The active destination from ?destination=: a pressed chip with a small "x" that clears it */
.tours-chip--removable[b-3koeane8ws] {
  max-width: 100%;
  text-align: left;
}

.tours-chip__remove[b-3koeane8ws] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-inline-end: -6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .2);
}

.tours-chip__remove[b-3koeane8ws]  svg {
  width: 14px;
  height: 14px;
}

.tours-filter__hint[b-3koeane8ws] {
  margin: 0;
  padding-top: var(--space-4);
  border-top: 1px solid var(--c-border);
  font-size: .85rem;
  line-height: 1.55;
}

/* ---- Results row: count + reset + destination intro ---- */
.tours-results[b-3koeane8ws] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-2) var(--space-4);
  margin-block: var(--space-6) var(--space-5);
}

.tours-results__count[b-3koeane8ws] {
  margin: 0;
  font-weight: 600;
}

.tours-results__reset[b-3koeane8ws] {
  min-height: 44px;
  padding: 0 var(--space-2);
  border: 0;
  background: none;
  cursor: pointer;
}

.tours-results__intro[b-3koeane8ws] {
  flex-basis: 100%;
  max-width: 70ch;
  margin: 0;
  font-size: .95rem;
  line-height: 1.55;
}

.tours-results__intro p[b-3koeane8ws] {
  margin: 0;
}

.tours-results__intro p + p[b-3koeane8ws] {
  margin-top: var(--space-3);
}

/* ---- Tour grid ---- */
.tours-grid__item[b-3koeane8ws] {
  display: flex;
  flex-direction: column;
}

.tours-grid__item[b-3koeane8ws]  .card {
  flex: 1 1 auto;
}

/* ---- Empty state ---- */
.tours-empty[b-3koeane8ws] {
  display: grid;
  justify-items: center;
  gap: var(--space-3);
  max-width: 600px;
  margin-inline: auto;
  padding: var(--space-7) var(--space-4);
  text-align: center;
  background: var(--c-surface-alt);
  border-radius: var(--r-lg);
}

.tours-empty__icon[b-3koeane8ws] {
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: var(--c-accent-100);
  color: var(--c-accent);
}

.tours-empty__title[b-3koeane8ws] {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.8rem);
}

.tours-empty__text[b-3koeane8ws] {
  max-width: 52ch;
  margin: 0 0 var(--space-2);
}

.tours-empty--request[b-3koeane8ws] {
  max-width: 680px;
  background: linear-gradient(180deg, var(--c-accent-100), var(--c-surface-alt));
}

.tours-empty__actions[b-3koeane8ws] {
  justify-content: center;
}

@media (max-width: 480px) {
  .tours-empty__actions[b-3koeane8ws] {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }

  .tours-empty__actions .btn[b-3koeane8ws] {
    justify-content: center;
  }
}

/* ---- Suggestions under the empty state ---- */
.tours-suggestions[b-3koeane8ws] {
  margin-top: var(--space-8);
}

.tours-suggestions__title[b-3koeane8ws] {
  margin: 0 0 var(--space-5);
  font-size: clamp(1.25rem, 2.6vw, 1.6rem);
  text-align: center;
}

/* ---- "How booking works" steps ---- */
.tours-steps[b-3koeane8ws] {
  display: grid;
  gap: var(--space-5);
  margin: 0;
  padding: 0;
  list-style: none;
}

@media (min-width: 801px) {
  .tours-steps[b-3koeane8ws] {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.tours-step[b-3koeane8ws] {
  position: relative;
  display: grid;
  align-content: start;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-5) var(--space-5);
  background: var(--c-surface);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
}

/* dashed connector between the steps on wide screens */
@media (min-width: 801px) {
  .tours-step + .tours-step[b-3koeane8ws]::before {
    content: "";
    position: absolute;
    top: calc(var(--space-6) + 28px);
    left: calc(-1 * var(--space-5));
    width: var(--space-5);
    border-top: 2px dashed var(--c-border);
  }
}

.tours-step__num[b-3koeane8ws] {
  position: absolute;
  top: var(--space-4);
  right: var(--space-5);
  font-family: var(--font-heading);
  font-size: 2.4rem;
  font-weight: 700;
  line-height: 1;
  color: var(--c-border);
}

.tours-step__icon[b-3koeane8ws] {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: var(--r-md);
  background: var(--c-primary-100);
  color: var(--c-primary);
}

.tours-step__icon[b-3koeane8ws]  svg {
  width: 26px;
  height: 26px;
}

.tours-step__icon--whatsapp[b-3koeane8ws] {
  background: rgba(37, 211, 102, .16);
  color: #128C4A;
}

.tours-step__title[b-3koeane8ws] {
  margin: 0;
  font-size: 1.25rem;
}

.tours-step__text[b-3koeane8ws] {
  margin: 0;
  color: var(--c-text-muted);
  line-height: 1.6;
}

.tours-step .btn[b-3koeane8ws],
.tours-step .link[b-3koeane8ws] {
  justify-self: start;
  margin-top: var(--space-2);
}

/* stagger the reveal of the three steps (app.css only staggers .grid children) */
.tours-steps > .reveal:nth-child(2)[b-3koeane8ws] {
  transition-delay: .1s;
}

.tours-steps > .reveal:nth-child(3)[b-3koeane8ws] {
  transition-delay: .2s;
}
