/* ============================================================
   tourism-final-polish.css
   Final publish-ready polish layer
   ============================================================ */

:root {
  --final-border: rgba(20, 32, 27, .08);
  --final-border-light: rgba(255, 255, 255, .62);
  --final-shadow: 0 20px 50px rgba(8, 14, 11, .08);
  --final-shadow-lg: 0 32px 80px rgba(8, 14, 11, .12);
  --final-glow: 0 0 0 1px rgba(214,179,122,.20), 0 18px 46px rgba(214,179,122,.14);
}

html {
  scroll-padding-top: 92px;
}

body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

#scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  z-index: 1200;
  background: linear-gradient(90deg, #f0dfbd, #d6b37a, #b68949);
  box-shadow: 0 0 14px rgba(214,179,122,.32);
}

.site-header {
  transition: background .35s ease, box-shadow .35s ease, border-color .35s ease;
}

.site-header.scrolled {
  box-shadow: 0 12px 34px rgba(0,0,0,.12);
}

.site-header .header-inner {
  min-height: 86px;
}

.header-cta {
  box-shadow: 0 14px 34px rgba(182,137,73,.22);
}

.hero__content,
.page-hero__content {
  animation: fadeLift .8s ease both;
}

@keyframes fadeLift {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

.hero__title,
.page-hero h1,
.section-title h2 {
  text-wrap: balance;
}

.hero__subtitle,
.lead,
.section-title p,
.intro__content p,
.service-card p,
.room-card p,
.menu-card p,
.offer-card p,
.page-card p,
.detail-card p,
.contact-form-wrap p,
.info-card p {
  max-width: 68ch;
}

.hero__actions .btn,
.btn-group .btn,
.header-cta,
.mob-nav__cta-btn {
  transition: transform .28s ease, box-shadow .28s ease, filter .28s ease;
}

.hero__actions .btn:hover,
.btn-group .btn:hover,
.header-cta:hover,
.mob-nav__cta-btn:hover {
  transform: translateY(-2px);
}

.intro__img-wrap,
.service-card,
.room-card,
.menu-card,
.offer-card,
.page-card,
.feature-card,
.contact-form-wrap,
.contact-info .info-card,
.info-card,
.testimonial-card,
.gal-item .gal-inner,
.map-container,
.form-card,
.reservation-card {
  border: 1px solid var(--final-border-light) !important;
  box-shadow: var(--final-shadow);
}

.intro__img-wrap:hover,
.service-card:hover,
.room-card:hover,
.menu-card:hover,
.offer-card:hover,
.page-card:hover,
.feature-card:hover,
.testimonial-card:hover,
.gal-item:hover .gal-inner,
.contact-form-wrap:hover,
.contact-info .info-card:hover,
.info-card:hover,
.map-container:hover {
  box-shadow: var(--final-shadow-lg);
}

.intro__img-wrap::before,
.service-card::before,
.room-card::before,
.menu-card::before,
.offer-card::before,
.page-card::before,
.feature-card::before,
.contact-form-wrap::before,
.contact-info .info-card::before,
.info-card::before,
.testimonial-card::before,
.gal-item .gal-inner::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}

.section-title {
  max-width: 820px;
  margin-inline: auto;
}

.section-title .label,
.page-hero .label,
.hero__eyebrow {
  box-shadow: 0 10px 26px rgba(11, 19, 16, .06);
}

.divider,
.section-title .divider {
  opacity: .9;
}

.feature-item,
.info-row,
.info-item,
.direction-step,
.attraction-item,
.menu-item,
.amenity-item,
.facility-item {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.feature-item:hover,
.info-row:hover,
.info-item:hover,
.direction-step:hover,
.attraction-item:hover,
.menu-item:hover,
.amenity-item:hover,
.facility-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(8, 14, 11, .06);
  border-color: rgba(214,179,122,.24);
}

.form-control,
.contact-form-wrap input,
.contact-form-wrap textarea,
.contact-form-wrap select {
  transition: border-color .22s ease, box-shadow .22s ease, background .22s ease;
}

.form-control:hover,
.contact-form-wrap input:hover,
.contact-form-wrap textarea:hover,
.contact-form-wrap select:hover {
  border-color: rgba(214,179,122,.20);
}

.form-control:focus,
.contact-form-wrap input:focus,
.contact-form-wrap textarea:focus,
.contact-form-wrap select:focus {
  background: rgba(255,255,255,.98);
  box-shadow: 0 0 0 4px rgba(214,179,122,.14), var(--final-glow);
}

.gal-btn {
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}

.gal-btn:hover,
.gal-btn.active {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(8,14,11,.08);
}

.gal-img {
  aspect-ratio: 4/3;
  object-fit: cover;
}

.lb-img {
  max-height: 78svh;
  object-fit: contain;
}

.cta-banner {
  box-shadow: var(--final-shadow-lg);
}

.footer-legal__badge,
.footer-bottom-links a,
.footer-col a {
  transition: color .22s ease, transform .22s ease, opacity .22s ease;
}

.footer-legal__badge:hover,
.footer-bottom-links a:hover,
.footer-col a:hover {
  transform: translateY(-1px);
}

.fab-phone,
.back-to-top {
  box-shadow: 0 18px 36px rgba(8,14,11,.14) !important;
}

.fab-phone:hover,
.back-to-top:hover {
  transform: translateY(-3px) scale(1.03);
}

img {
  border-radius: inherit;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

@media (max-width: 991px) {
  .site-header .header-inner {
    min-height: 78px;
  }

  .hero__actions,
  .btn-group {
    justify-content: center;
  }
}

@media (max-width: 768px) {
  html {
    scroll-padding-top: 78px;
  }

  .hero,
  .page-hero {
    min-height: auto;
  }

  .hero__content,
  .page-hero__content {
    padding-bottom: 2rem;
  }

  .section {
    padding-block: clamp(2.4rem, 8vw, 4.4rem);
  }

  .footer-bottom {
    gap: .85rem;
  }
}
