/**
 * Template G (NiceHotel) — CMS palette bridge
 * Panel :root sets --primary, --secondary, --dark, --light, --text in app.blade.php
 */

body.cms-active-template-templateG {
  --accent-color: var(--primary);
  --background-color: var(--light);
  --default-color: var(--text);
  --heading-color: var(--dark);
  --surface-color: color-mix(in srgb, var(--light), var(--dark) 14%);
  --contrast-color: var(--secondary);

  --nav-color: color-mix(in srgb, var(--text), var(--dark) 20%);
  --nav-hover-color: var(--primary);
  --nav-mobile-background-color: var(--dark);
  --nav-dropdown-background-color: color-mix(in srgb, var(--dark), var(--primary) 18%);
  --nav-dropdown-color: color-mix(in srgb, var(--secondary), var(--text) 35%);
  --nav-dropdown-hover-color: var(--primary);
}

body.cms-active-template-templateG .light-background {
  --background-color: color-mix(in srgb, var(--light), var(--dark) 6%);
  --default-color: var(--text);
  --heading-color: var(--dark);
  --surface-color: color-mix(in srgb, var(--light), var(--dark) 12%);
  --contrast-color: var(--secondary);
}

body.cms-active-template-templateG .dark-background {
  --background-color: var(--dark);
  --default-color: color-mix(in srgb, var(--secondary) 75%, var(--text));
  --heading-color: var(--secondary);
  --surface-color: color-mix(in srgb, var(--dark), var(--primary) 16%);
  --contrast-color: var(--secondary);
}

body.cms-active-template-templateG .cms-template-g {
  color: var(--default-color);
  background-color: var(--background-color);
}

body.cms-active-template-templateG .cms-template-g h1,
body.cms-active-template-templateG .cms-template-g h2,
body.cms-active-template-templateG .cms-template-g h3,
body.cms-active-template-templateG .cms-template-g h4,
body.cms-active-template-templateG .cms-template-g h5,
body.cms-active-template-templateG .cms-template-g h6 {
  color: var(--heading-color);
}

body.cms-active-template-templateG .cms-template-g .section-title p,
body.cms-active-template-templateG .cms-template-g p {
  color: var(--default-color);
}

/* Blog section (location-cards): each post title uses CMS primary */
body.cms-active-template-templateG .location-cards .location-card .location-details h5 {
  color: var(--primary) !important;
}

/* Blog section: category badge (e.g. "Artificial Intelligence") */
body.cms-active-template-templateG .location-cards .location-card .location-visual .distance-indicator,
body.cms-active-template-templateG .location-cards .location-card .location-visual .distance-indicator span {
  color: var(--primary) !important;
}

body.cms-active-template-templateG .location-cards .location-card .location-visual .distance-indicator i {
  color: var(--primary) !important;
}

/* Mobile nav: panel height follows menu items (theme default stretches to viewport bottom) */
@media (max-width: 1199px) {
  body.cms-active-template-templateG.mobile-nav-active #app .header .navmenu {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    padding: 72px 20px 24px;
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
  }

  body.cms-active-template-templateG.mobile-nav-active .navmenu > ul {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: min(70vh, calc(100dvh - 120px)) !important;
    flex: 0 0 auto !important;
    overflow-x: hidden;
    overflow-y: auto;
  }

  body.cms-active-template-templateG.scrolled.mobile-nav-active #app .header .navmenu {
    padding-top: 60px;
  }
}

body.cms-active-template-templateG .tg-page-header {
  --background-color: var(--dark);
  --heading-color: var(--secondary);
  --default-color: color-mix(in srgb, var(--secondary) 80%, var(--text));
}

body.cms-active-template-templateG .tg-page-header .breadcrumb-item a {
  color: var(--secondary) !important;
}

body.cms-active-template-templateG .tg-page-header .breadcrumb-item.active {
  color: var(--primary) !important;
}

body.cms-active-template-templateG .btn-primary,
body.cms-active-template-templateG .btn-search,
body.cms-active-template-templateG .reserve-btn,
body.cms-active-template-templateG .btn-reserve,
body.cms-active-template-templateG .btn-flash-sale {
  background-color: var(--primary) !important;
  border-color: var(--primary) !important;
  color: var(--secondary) !important;
}

body.cms-active-template-templateG .btn-primary:hover,
body.cms-active-template-templateG .btn-search:hover,
body.cms-active-template-templateG .reserve-btn:hover {
  background-color: color-mix(in srgb, var(--primary), var(--dark) 15%) !important;
  border-color: color-mix(in srgb, var(--primary), var(--dark) 15%) !important;
}

body.cms-active-template-templateG .btn-outline,
body.cms-active-template-templateG .btn-secondary {
  color: var(--secondary) !important;
  border-color: color-mix(in srgb, var(--secondary), transparent 35%) !important;
}

body.cms-active-template-templateG .hotel-hero .hero-subtitle,
body.cms-active-template-templateG .hotel-hero .hero-text h1 {
  color: var(--secondary);
}

body.cms-active-template-templateG .section-badge,
body.cms-active-template-templateG .category-pill,
body.cms-active-template-templateG .offer-badge .discount {
  color: var(--primary);
}

body.cms-active-template-templateG .amenity-icon i,
body.cms-active-template-templateG .highlight-item i,
body.cms-active-template-templateG .event-badge i {
  color: var(--primary);
}

body.cms-active-template-templateG .stat-number {
  color: var(--primary);
}

body.cms-active-template-templateG .tg-map-embed iframe {
  width: 100%;
  min-height: 280px;
  border: 0;
}

body.cms-active-template-templateG #app .main .gallery-showcase.tg-video-showcase--solo .featured-gallery {
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

body.cms-active-template-templateG #app .main .gallery-showcase.tg-video-showcase--solo .main-gallery-item img {
  display: block;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-content-stage {
  display: grid;
  width: 100%;
}

body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-slide-pane {
  grid-area: 1 / 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.35s ease;
}

body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-slide-pane.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop-slide {
  position: absolute;
  inset: 0;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-color: transparent !important;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.35s ease;
}

body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop-slide.is-active {
  opacity: 1;
  visibility: visible;
}

body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--cms-image-overlay);
  pointer-events: none;
}

body.cms-active-template-templateG #app .main .hotel-hero .video-background .video-overlay,
body.cms-active-template-templateG #app .main .offer-cards .special-promotion .promotion-background .promotion-overlay {
  background: var(--cms-image-overlay) !important;
}

body.cms-active-template-templateG .tg-loading {
  color: var(--text);
  padding: 4rem 1rem;
}

body.cms-active-template-templateG .tg-offer-kicker {
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--primary);
}

body.cms-active-template-templateG .tg-offer-primary-wrap {
  margin-bottom: 2rem;
}

body.cms-active-template-templateG .tg-offer-primary:not(.tg-offer-primary--has-bg) .promotion-content {
  position: relative;
  padding: 2.5rem;
  background: color-mix(in srgb, var(--primary), transparent 92%);
  border-radius: 12px;
}

body.cms-active-template-templateG .tg-offer-primary:not(.tg-offer-primary--has-bg) .promo-text h2,
body.cms-active-template-templateG .tg-offer-primary:not(.tg-offer-primary--has-bg) .promo-text p {
  color: var(--dark);
}

/* ── Icons (Bootstrap Icons + Font Awesome from CMS) ── */
body.cms-active-template-templateG .bi::before,
body.cms-active-template-templateG [class^="bi-"]::before,
body.cms-active-template-templateG [class*=" bi-"]::before {
  font-family: bootstrap-icons !important;
}

body.cms-active-template-templateG .amenity-icon i.fas,
body.cms-active-template-templateG .amenity-icon i.far,
body.cms-active-template-templateG .amenity-icon i.fal,
body.cms-active-template-templateG .highlight-item i.fas,
body.cms-active-template-templateG .highlight-item i.far,
body.cms-active-template-templateG .highlight-item i.fal,
body.cms-active-template-templateG .amenity-tag i.fas,
body.cms-active-template-templateG .amenity-tag i.far,
body.cms-active-template-templateG .features-list i.fas,
body.cms-active-template-templateG .features-list i.far,
body.cms-active-template-templateG .social-links i.fas,
body.cms-active-template-templateG .social-links i.far {
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
}

body.cms-active-template-templateG .amenity-icon i.fab,
body.cms-active-template-templateG .highlight-item i.fab,
body.cms-active-template-templateG .amenity-tag i.fab,
body.cms-active-template-templateG .social-links i.fab {
  font-family: "Font Awesome 5 Brands" !important;
  font-weight: 400;
}

body.cms-active-template-templateG .amenity-icon i,
body.cms-active-template-templateG .highlight-item i,
body.cms-active-template-templateG .amenity-tag i {
  font-size: 1.25rem;
  line-height: 1;
}

body.cms-active-template-templateG .header .topbar .social-links a i,
body.cms-active-template-templateG .footer .social-links a i {
  font-size: 1rem;
}

body.cms-active-template-templateG .header .topbar .social-links a i.fab {
  font-family: "Font Awesome 5 Brands" !important;
  font-weight: 400;
  color: var(--primary) !important;
}

body.cms-active-template-templateG .header .topbar .social-links a i.fas,
body.cms-active-template-templateG .header .topbar .social-links a i.far {
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
  color: var(--primary) !important;
}

/* Footer icons & social */
body.cms-active-template-templateG .footer .social-links a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

body.cms-active-template-templateG .footer .social-links a i.fab,
body.cms-active-template-templateG .footer .social-links a i.fas,
body.cms-active-template-templateG .footer .social-links a i.far {
  font-size: 1.05rem;
  line-height: 1;
  color: var(--primary) !important;
}

body.cms-active-template-templateG .footer .social-links a i.fab {
  font-family: "Font Awesome 5 Brands" !important;
  font-weight: 400;
}

body.cms-active-template-templateG .footer .social-links a i.fas,
body.cms-active-template-templateG .footer .social-links a i.far {
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
}

body.cms-active-template-templateG .footer .social-links a:hover i.fab,
body.cms-active-template-templateG .footer .social-links a:hover i.fas,
body.cms-active-template-templateG .footer .social-links a:hover i.far {
  color: var(--secondary) !important;
}

body.cms-active-template-templateG .footer .social-links a i.bi::before {
  font-family: bootstrap-icons !important;
  color: var(--primary) !important;
}

body.cms-active-template-templateG .footer .social-links a:hover i.bi::before {
  color: var(--secondary) !important;
}

body.cms-active-template-templateG .footer .tg-footer-social-img {
  width: 18px;
  height: 18px;
  object-fit: contain;
  display: block;
}

body.cms-active-template-templateG .footer .footer-links ul i.bi {
  color: var(--primary);
  flex-shrink: 0;
  font-size: 0.75rem;
}

body.cms-active-template-templateG .footer .tg-footer-hours-item {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}

body.cms-active-template-templateG .footer .tg-footer-hours-item i.bi {
  color: var(--primary);
  margin-top: 0.15rem;
  flex-shrink: 0;
}

/* Facts / achievements — center on mobile */
body.cms-active-template-templateG .about-home .highlight-stats .tg-fact-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

body.cms-active-template-templateG .about-home .highlight-stats .tg-fact-icon {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg .promotion-background.tg-offer-promotion-bg {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  overflow: hidden;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg .tg-offer-bg-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  background: transparent !important;
}

/* Theme main.css uses cover + fixed heights — override for CMS frames */
body.cms-active-template-templateG #app .main .about-home .visual-section {
  min-height: 0 !important;
  height: auto !important;
  display: block !important;
}

body.cms-active-template-templateG #app .main .about-home .main-image-container {
  flex: none !important;
  height: auto !important;
}

body.cms-active-template-templateG #app .main .about-home .main-image-container .main-image,
body.cms-active-template-templateG #app .main .rooms-showcase .suite-image-wrapper img,
body.cms-active-template-templateG #app .main .rooms-showcase .selection-item .item-image img,
body.cms-active-template-templateG #app .main .gallery-showcase .main-gallery-item img,
body.cms-active-template-templateG #app .main .events-cards .card-image img,
body.cms-active-template-templateG #app .main .offer-cards .offer-image img {
  object-fit: contain !important;
}

body.cms-active-template-templateG #app .main .rooms-showcase .suite-image-wrapper,
body.cms-active-template-templateG #app .main .rooms-showcase .selection-item .item-image {
  height: auto !important;
}

body.cms-active-template-templateG #app .main .rooms-showcase .suite-image-wrapper img,
body.cms-active-template-templateG #app .main .rooms-showcase .selection-item .item-image img {
  height: 100% !important;
}

body.cms-active-template-templateG #app .main .gallery-showcase .main-gallery-item img {
  height: 100% !important;
}

body.cms-active-template-templateG #app .main .events-cards .card-image.tg-cms-media {
  height: auto !important;
}

body.cms-active-template-templateG #app .main .testimonials .tg-cms-media[data-cms-aspect="testimonials.items.image"] {
  border-radius: 50%;
  border: 4px solid color-mix(in srgb, var(--accent-color), transparent 70%);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  margin-bottom: 15px;
  overflow: hidden;
}

body.cms-active-template-templateG #app .main .testimonials .tg-cms-media[data-cms-aspect="testimonials.items.image"] img {
  border: none !important;
  border-radius: 0 !important;
  margin-bottom: 0 !important;
  box-shadow: none !important;
}

body.cms-active-template-templateG #app .main .tg-cms-media:hover img,
body.cms-active-template-templateG #app .main .rooms-showcase .suite-image-wrapper:hover img,
body.cms-active-template-templateG #app .main .rooms-showcase .selection-item .item-image:hover img,
body.cms-active-template-templateG #app .main .location-cards .location-card:hover .location-visual img,
body.cms-active-template-templateG #app .main .gallery-showcase .main-gallery-item:hover img,
body.cms-active-template-templateG #app .main .offer-cards .offer-card:hover .offer-image img,
body.cms-active-template-templateG #app .main .events-cards .event-card:hover .card-image img {
  transform: none !important;
}

body.cms-active-template-templateG #app .main.cms-template-g .tg-cms-media {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  background-color: transparent;
}

body.cms-active-template-templateG #app .main.cms-template-g .tg-cms-media:not(.tg-blog-card-media) > img,
body.cms-active-template-templateG #app .main.cms-template-g .tg-cms-media:not(.tg-blog-card-media) img[data-cms-field] {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center center !important;
  background-color: transparent !important;
  display: block;
}

/* About — 800 × 400 */
body.cms-active-template-templateG #app .main .about-home .visual-section {
  min-height: 0 !important;
  height: auto !important;
  display: block !important;
}

body.cms-active-template-templateG #app .main .about-home .main-image-container {
  flex: none !important;
  border-radius: 24px 0 0 24px;
  overflow: hidden;
}

body.cms-active-template-templateG #app .main .about-home .tg-cms-media--about-image {
  aspect-ratio: 800 / 400;
  max-width: 800px;
}

body.cms-active-template-templateG #app .main .about-home .main-image-container .main-image {
  object-fit: contain !important;
}

body.cms-active-template-templateG #app .main .about-home .tg-cms-media--about-feature-icon {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  aspect-ratio: 1 / 1;
}

/* Menu — 840 × 280 (same frame as blog listing cards) */
body.cms-active-template-templateG #app .main .rooms-showcase .tg-cms-media--menu-item {
  aspect-ratio: 840 / 280;
  width: 100%;
  max-width: none;
}

body.cms-active-template-templateG #app .main .rooms-showcase .suite-image-wrapper {
  margin: 24px 32px;
}

body.cms-active-template-templateG #app .main .rooms-showcase .suite-image-wrapper img {
  height: auto !important;
  object-fit: contain !important;
}

/* Services — 60 × 60 */
body.cms-active-template-templateG #app .main .amenities-cards .tg-cms-media--service-icon {
  width: 60px;
  height: 60px;
  aspect-ratio: 1 / 1;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 25px;
}

body.cms-active-template-templateG #app .main .amenities-cards .amenity-icon.tg-cms-media--service-icon {
  margin-bottom: 25px;
}

/* Offer primary banner — vertical center + responsive (no mobile clip) */
body.cms-active-template-templateG #app .main .offer-cards .special-promotion.tg-offer-primary {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 400px;
  overflow: hidden;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg {
  position: relative;
  min-height: clamp(380px, 42vw, 540px) !important;
  aspect-ratio: auto !important;
  height: auto !important;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary .promotion-content {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  width: 100%;
  height: auto !important;
  min-height: inherit;
  flex: 1 1 auto;
  padding: clamp(2rem, 4vw, 3.125rem);
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary .promotion-content .tg-offer-primary__row {
  width: 100%;
  align-items: center !important;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary .promo-action {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  width: 100%;
  height: 100%;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary .promo-action .btn-flash-sale {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  white-space: normal;
  text-align: center;
  line-height: 1.3;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg .promotion-background {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}

body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg .promotion-background img,
body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg .tg-offer-bg-image {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
}

body.cms-active-template-templateG #app .main .offer-cards .offer-card .tg-cms-media--offer-bg {
  aspect-ratio: 16 / 9;
  width: 100%;
  height: auto !important;
  flex-shrink: 0;
}

body.cms-active-template-templateG #app .main .offer-cards .offer-card .offer-image.tg-cms-media--offer-bg {
  height: auto !important;
}

body.cms-active-template-templateG #app .main .offer-cards .offer-card .offer-image img {
  object-fit: contain !important;
}

@media (max-width: 768px) {
  body.cms-active-template-templateG #app .main .offer-cards .offer-card .offer-image.tg-cms-media--offer-bg {
    height: auto !important;
  }
}

/* Testimonials — 60 × 60 */
body.cms-active-template-templateG #app .main .testimonials .tg-cms-media--testimonial {
  width: 60px;
  height: 60px;
  aspect-ratio: 1 / 1;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 15px;
  border-radius: 50%;
  border: 4px solid color-mix(in srgb, var(--accent-color), transparent 70%);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

body.cms-active-template-templateG #app .main .testimonials .testimonial-header img[data-cms-field] {
  border: none !important;
  border-radius: 0 !important;
  margin-bottom: 0 !important;
  box-shadow: none !important;
}

body.cms-active-template-templateG #app .main .testimonials .testimonial-header > img {
  width: 80px;
  height: 80px;
}

/* Team — 400 × 400 */
body.cms-active-template-templateG .events-cards .tg-team-card-image.tg-cms-media--team-photo {
  height: auto !important;
  aspect-ratio: 1 / 1;
}

body.cms-active-template-templateG .events-cards .tg-team-member-photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background-color: transparent !important;
}

body.cms-active-template-templateG .events-cards .tg-cms-media--team-social {
  width: 32px;
  height: 32px;
  aspect-ratio: 1 / 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Blog cards — 840 × 280 fixed frame */
body.cms-active-template-templateG #app .main .location-cards .location-card .location-visual.tg-blog-card-media {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  aspect-ratio: 840 / 280 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
  flex-shrink: 0;
}

body.cms-active-template-templateG #app .main .location-cards .location-card .tg-blog-card-image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: transparent !important;
  border: none !important;
  transform: none !important;
}

body.cms-active-template-templateG #app .main .location-cards .location-card:hover .location-visual .tg-blog-card-image {
  transform: none !important;
}

/* Video — 960 × 480 */
body.cms-active-template-templateG #app .main .gallery-showcase .tg-cms-media--video-thumb {
  aspect-ratio: 960 / 480;
  width: 100%;
  max-width: 960px;
  margin-left: auto;
  margin-right: auto;
}

body.cms-active-template-templateG #app .main .gallery-showcase .main-gallery-item.tg-cms-media--video-thumb img,
body.cms-active-template-templateG #app .main .gallery-showcase.tg-video-showcase--solo .main-gallery-item img {
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* Facts icons — 32 × 32 */
body.cms-active-template-templateG #app .main .about-home .tg-cms-media--fact-icon {
  width: 32px;
  height: 32px;
  aspect-ratio: 1 / 1;
  margin-left: auto;
  margin-right: auto;
}

body.cms-active-template-templateG #app .main .offer-cards .offer-card.horizontal-card {
  min-height: 0 !important;
  align-items: flex-start;
}

@media (max-width: 767.98px) {
  body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg,
  body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg .promotion-content,
  body.cms-active-template-templateG #app .main .offer-cards .special-promotion.tg-offer-primary.tg-offer-primary--has-bg {
    min-height: 0 !important;
    height: auto !important;
  }
}

body.cms-active-template-templateG #app .main .about-home .amenities-list .tg-cms-media--about-feature-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  margin-right: 0.35rem;
}

/* Disable theme cover/crop inside CMS fit wrappers */
body.cms-active-template-templateG #app .main.cms-template-g .tg-cms-media img {
  object-fit: contain !important;
}

/* Compact listing cards — fixed media frames + 5-line text clamp */
body.cms-active-template-templateG #app .main.cms-template-g .tg-compact-card-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  overflow: hidden;
  word-break: break-word;
  line-height: 1.5;
  min-height: calc(1.5em * 5);
  max-height: calc(1.5em * 5);
  margin-bottom: 0.75rem;
  flex: 0 0 auto !important;
}

body.cms-active-template-templateG #app .main.cms-template-g .tg-compact-card-title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  word-break: break-word;
  line-height: 1.3;
  min-height: calc(1.3em * 2);
  max-height: calc(1.3em * 2);
  flex-shrink: 0;
}

/* Equal-height card columns */
body.cms-active-template-templateG #app .main .amenities-cards .row > [class*="col-"],
body.cms-active-template-templateG #app .main .location-cards .row > [class*="col-"],
body.cms-active-template-templateG .events-cards .row > [class*="col-"] {
  display: flex;
}

body.cms-active-template-templateG #app .main .amenities-cards .amenity-card,
body.cms-active-template-templateG #app .main .location-cards .location-card {
  width: 100%;
}

/* Menu — listing cards use blog layout (840 × 280 via .location-cards .tg-blog-card-media) */

body.cms-active-template-templateG #app .main .rooms-showcase.location-cards .row > [class*="col-"] {
  display: flex;
}

body.cms-active-template-templateG #app .main .rooms-showcase.location-cards .location-card {
  width: 100%;
}

body.cms-active-template-templateG #app .main .rooms-showcase.location-cards .location-card .tg-blog-card-image[data-cms-field="menu.tabs.items.image"] {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  min-height: 0 !important;
  object-fit: contain !important;
  background: transparent !important;
}

/* Services */
body.cms-active-template-templateG #app .main .amenities-cards .amenity-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 28px 22px;
}

body.cms-active-template-templateG #app .main .amenities-cards .amenity-icon {
  flex-shrink: 0;
}

body.cms-active-template-templateG #app .main .amenities-cards .amenity-content {
  display: flex;
  flex-direction: column;
  flex: 1;
}

body.cms-active-template-templateG #app .main .amenities-cards .amenity-content h4.tg-compact-card-title {
  margin-bottom: 0.75rem;
}

body.cms-active-template-templateG #app .main .amenities-cards .amenity-content > a {
  margin-top: auto;
}

/* Testimonials */
body.cms-active-template-templateG #app .main .testimonials .testimonial-item {
  display: flex;
  flex-direction: column;
  height: 100%;
}

body.cms-active-template-templateG #app .main .testimonials .testimonial-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

body.cms-active-template-templateG #app .main .testimonials .testimonial-footer {
  margin-top: auto;
  flex-shrink: 0;
}

body.cms-active-template-templateG #app .main .testimonials .testimonial-body p.tg-compact-card-desc {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 5 !important;
  line-clamp: 5 !important;
  overflow: hidden !important;
  font-style: normal;
  text-align: center;
  position: static;
  min-height: calc(1.5em * 5) !important;
  max-height: calc(1.5em * 5) !important;
}

body.cms-active-template-templateG #app .main .testimonials .testimonial-body p.tg-compact-card-desc::before,
body.cms-active-template-templateG #app .main .testimonials .testimonial-body p.tg-compact-card-desc::after {
  display: none;
}

body.cms-active-template-templateG #app .main .testimonials .testimonial-header .tg-cms-media[data-cms-aspect="testimonials.items.image"] {
  width: 60px;
  height: 60px;
  margin-left: auto;
  margin-right: auto;
}

/* Team */
body.cms-active-template-templateG .events-cards .tg-team-row {
  justify-content: center;
}

body.cms-active-template-templateG .events-cards .tg-team-col {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

body.cms-active-template-templateG .events-cards .tg-team-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 260px;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

body.cms-active-template-templateG .events-cards .tg-team-card .card-image {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 1 / 1;
  flex-shrink: 0;
  overflow: hidden;
}

body.cms-active-template-templateG .events-cards .tg-team-card .card-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

body.cms-active-template-templateG .events-cards .tg-team-card .card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 14px 16px 16px;
}

body.cms-active-template-templateG .events-cards .tg-team-card .card-body .tg-team-role {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  flex-shrink: 0;
  font-size: 0.85rem;
  margin-bottom: 0.5rem !important;
}

body.cms-active-template-templateG .events-cards .tg-team-card .card-body .tg-compact-card-desc {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
  line-clamp: 3 !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
  min-height: 0 !important;
  max-height: calc(1.5em * 3) !important;
}

body.cms-active-template-templateG .events-cards .tg-team-card .card-body .tg-team-socials {
  margin-top: auto;
  padding-top: 0.75rem;
  flex-shrink: 0;
}

/* Blog */
body.cms-active-template-templateG #app .main .location-cards .location-card .location-visual img.tg-blog-card-image {
  height: 100% !important;
  min-height: 0 !important;
}

body.cms-active-template-templateG #app .main .location-cards .location-card .location-details {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 18px 20px 20px;
}

body.cms-active-template-templateG #app .main .location-cards .location-card .location-details h5.tg-compact-card-title {
  margin-bottom: 0.75rem;
}

body.cms-active-template-templateG #app .main .location-cards .location-card .location-details p.tg-compact-card-desc {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 5 !important;
  line-clamp: 5 !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
  min-height: calc(1.5em * 5) !important;
  max-height: calc(1.5em * 5) !important;
}

body.cms-active-template-templateG #app .main .location-cards .location-card .location-details .explore-btn {
  margin-top: auto;
  flex-shrink: 0;
}

body.cms-active-template-templateG .events-cards .tg-team-member-name {
  color: var(--secondary) !important;
  font-size: 1.05rem !important;
  margin-bottom: 0.35rem !important;
}

body.cms-active-template-templateG .events-cards .tg-team-social-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid color-mix(in srgb, var(--secondary), transparent 50%);
  border-radius: 6px;
  background: color-mix(in srgb, var(--default-color), transparent 92%);
  transition: 0.3s;
}

body.cms-active-template-templateG .events-cards .tg-team-social-link:hover {
  background: var(--primary);
  border-color: var(--primary);
}

body.cms-active-template-templateG .events-cards .tg-team-social-link i.bi::before,
body.cms-active-template-templateG .events-cards .tg-team-social-link i.fas::before,
body.cms-active-template-templateG .events-cards .tg-team-social-link i.fab::before {
  font-size: 1rem;
  color: var(--primary);
}

body.cms-active-template-templateG .events-cards .tg-team-social-link:hover i::before {
  color: var(--secondary) !important;
}

body.cms-active-template-templateG .events-cards .tg-team-social-link i.fas,
body.cms-active-template-templateG .events-cards .tg-team-social-link i.far {
  font-family: "Font Awesome 5 Free" !important;
  font-weight: 900;
}

body.cms-active-template-templateG .events-cards .tg-team-social-link i.fab {
  font-family: "Font Awesome 5 Brands" !important;
  font-weight: 400;
}

body.cms-active-template-templateG .events-cards .tg-team-social-link .tg-social-icon {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

/* =================================================================
   Responsive — mobile / tablet (CMS dynamic sections)
   Breakpoints: tablet ≤991.98px, mobile ≤767.98px, small ≤575.98px
================================================================= */

body.cms-active-template-templateG #app .main {
  overflow-x: clip;
}

@media (max-width: 991.98px) {
  body.cms-active-template-templateG #app .main .hotel-hero {
    position: relative;
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    align-items: stretch;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop,
  body.cms-active-template-templateG #app .main .hotel-hero .video-background {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop-slide {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-color: transparent !important;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .video-background video {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-content {
    position: relative;
    z-index: 2;
    display: block;
    min-height: auto !important;
    width: 100%;
  }

  body.cms-active-template-templateG #app .main section.section,
  body.cms-active-template-templateG #app .main .section {
    padding-top: 48px;
    padding-bottom: 48px;
  }

  body.cms-active-template-templateG #app .main .section-title {
    padding-bottom: 36px;
  }

  body.cms-active-template-templateG #app .main .section-title h2 {
    font-size: clamp(1.5rem, 4vw, 2rem);
  }

  body.cms-active-template-templateG #app .main .about-home .row.g-0 > [class*="col-lg-6"]:first-child {
    padding: 2rem 1.5rem;
  }

  body.cms-active-template-templateG #app .main .about-home .visual-section {
    min-height: 0 !important;
    margin-top: 0;
  }

  body.cms-active-template-templateG #app .main .rooms-showcase .featured-suite-container,
  body.cms-active-template-templateG #app .main .rooms-showcase .room-selection-grid {
    margin-bottom: 1rem;
  }

  body.cms-active-template-templateG #app .main .offer-cards .special-promotion.tg-offer-primary {
    justify-content: flex-start !important;
    min-height: 0 !important;
    height: auto !important;
  }

  body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary .promotion-content {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 1.25rem 1rem 0.75rem !important;
  }

  body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary:not(.tg-offer-primary--has-bg) .promotion-content {
    padding: 1.25rem 1rem 0.75rem !important;
  }

  body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary .promotion-content .tg-offer-primary__row {
    --bs-gutter-y: 0.75rem;
    align-items: flex-start !important;
  }

  body.cms-active-template-templateG #app .main .tg-offer-primary .promo-action,
  body.cms-active-template-templateG #app .main .offer-cards .special-promotion .promotion-content .promo-action {
    justify-content: center !important;
    text-align: center !important;
    height: auto !important;
    margin-top: 0.5rem !important;
    margin-bottom: 0 !important;
  }

  body.cms-active-template-templateG #app .main .offer-cards .special-promotion .promotion-content .promo-text p {
    margin-bottom: 0 !important;
  }

  body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg,
  body.cms-active-template-templateG #app .main .offer-cards .tg-offer-primary--has-bg .promotion-content {
    min-height: 0 !important;
    height: auto !important;
    padding-bottom: 0.75rem !important;
  }

  body.cms-active-template-templateG #app .main .tg-offer-primary-wrap {
    margin-bottom: 0 !important;
  }

  body.cms-active-template-templateG #app .main .call-to-action .row.g-5 > [class*="col-lg-7"] {
    margin-top: 0.5rem;
  }
}

@media (max-width: 767.98px) {
  body.cms-active-template-templateG #app .main section.section,
  body.cms-active-template-templateG #app .main .section {
    padding-top: 40px;
    padding-bottom: 40px;
  }

  body.cms-active-template-templateG #app .main .section-title h2 {
    font-size: clamp(1.35rem, 5vw, 1.75rem);
  }

  body.cms-active-template-templateG #app .main .section-title p {
    font-size: 0.95rem;
  }

  body.cms-active-template-templateG #app .main .hotel-hero.dark-background.section {
    --background-color: var(--light);
    --default-color: var(--text);
    --heading-color: var(--dark);
    --surface-color: color-mix(in srgb, var(--light), var(--dark) 12%);
    --contrast-color: var(--secondary);
  }

  body.cms-active-template-templateG #app .main .hotel-hero.section {
    display: flex;
    flex-direction: column;
    padding-top: 0;
    padding-bottom: 2.5rem;
    background-color: var(--light);
    overflow: visible;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop,
  body.cms-active-template-templateG #app .main .hotel-hero .video-background {
    position: relative;
    top: auto;
    right: auto;
    bottom: auto;
    left: auto;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    min-height: 0;
    flex-shrink: 0;
    order: -1;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-media-backdrop-overlay,
  body.cms-active-template-templateG #app .main .hotel-hero .video-background .video-overlay {
    display: none;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .video-background video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-content {
    position: relative;
    z-index: 1;
    min-height: auto !important;
    padding: 1.5rem 0 0;
    width: 100%;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-subtitle,
  body.cms-active-template-templateG #app .main .hotel-hero .hero-text h1,
  body.cms-active-template-templateG #app .main .hotel-hero .hero-eyebrow {
    color: var(--dark);
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-actions .btn.btn-outline {
    border-color: var(--primary);
    color: var(--primary);
  }

  body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-slide-pane {
    min-height: auto;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .tg-hero-slide-pane .hero-actions {
    margin-top: 1rem;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-text h1 {
    font-size: clamp(1.75rem, 7vw, 2.5rem);
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-actions .btn {
    width: 100%;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .booking-card {
    padding: 1.25rem;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .booking-form .btn-search {
    margin-top: 0.25rem;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hotel-highlights .highlight-item {
    padding: 0.75rem 0.5rem;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hotel-highlights .highlight-item i {
    font-size: 1.5rem;
  }

  body.cms-active-template-templateG #app .main .about-home .content-wrapper {
    text-align: center;
    padding: 2rem 1.25rem !important;
  }

  body.cms-active-template-templateG #app .main .about-home .highlight-stats {
    justify-content: center;
  }

  body.cms-active-template-templateG #app .main .about-home .amenities-list {
    justify-content: center;
  }

  body.cms-active-template-templateG #app .main .about-home .cta-group .btn-primary {
    width: 100%;
    max-width: 280px;
    justify-content: center;
  }

  body.cms-active-template-templateG #app .main .about-home .visual-section {
    min-height: 0 !important;
  }

  body.cms-active-template-templateG #app .main .rooms-showcase .nav-pills {
    flex-direction: column;
    align-items: stretch !important;
    gap: 0.5rem !important;
  }

  body.cms-active-template-templateG #app .main .rooms-showcase .nav-pills .nav-item,
  body.cms-active-template-templateG #app .main .rooms-showcase .nav-pills .nav-link {
    width: 100%;
    text-align: center;
  }

  body.cms-active-template-templateG #app .main .amenities-cards .amenity-card {
    text-align: center;
  }

  body.cms-active-template-templateG #app .main .amenities-cards .amenity-icon {
    margin-left: auto;
    margin-right: auto;
  }

  body.cms-active-template-templateG #app .main .tg-offer-primary .promotion-content {
    flex: 0 0 auto !important;
    padding: 1.25rem 1rem 0.75rem !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }

  body.cms-active-template-templateG #app .main .tg-offer-primary .promo-text {
    text-align: center;
  }

  body.cms-active-template-templateG #app .main .tg-offer-primary .promo-action {
    justify-content: center !important;
    height: auto !important;
    margin-top: 0.5rem !important;
  }

  body.cms-active-template-templateG #app .main .tg-offer-primary .btn-flash-sale {
    display: inline-flex !important;
    width: 100%;
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
  }

  body.cms-active-template-templateG #app .main .offer-cards .offer-card.horizontal-card {
    flex-direction: column;
  }

  body.cms-active-template-templateG #app .main .gallery-showcase .row {
    row-gap: 1rem;
  }

  body.cms-active-template-templateG #app .main .call-to-action .features-list li {
    word-break: break-word;
  }

  body.cms-active-template-templateG #app .main .call-to-action .booking-card {
    padding: 1.25rem;
  }

  body.cms-active-template-templateG #app .main .tg-map-embed iframe {
    min-height: 220px;
  }

  body.cms-active-template-templateG .header .topbar .contact-info {
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem 1rem;
    font-size: 13px;
  }

  body.cms-active-template-templateG .header .topbar .contact-info i.ms-4 {
    margin-left: 0 !important;
  }

  body.cms-active-template-templateG .header .branding .logo img {
    max-height: 48px;
    width: auto;
  }

  /* Footer — center columns on tablet/mobile */
  body.cms-active-template-templateG .footer .footer-top .row > [class*="col-"] {
    text-align: center;
  }

  body.cms-active-template-templateG .footer .footer-about .logo {
    justify-content: center;
  }

  body.cms-active-template-templateG .footer h4::after {
    left: 50%;
    transform: translateX(-50%);
  }

  body.cms-active-template-templateG .footer .footer-links ul li {
    justify-content: center;
  }

  body.cms-active-template-templateG .footer .tg-footer-hours-item {
    justify-content: center;
    text-align: left;
    max-width: 280px;
    margin-left: auto;
    margin-right: auto;
  }

  body.cms-active-template-templateG .footer .social-links {
    justify-content: center;
  }

  body.cms-active-template-templateG .about-home .highlight-stats > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }

  body.cms-active-template-templateG .events-cards .tg-team-card-image.tg-cms-media--team-photo {
    height: auto !important;
  }

  body.cms-active-template-templateG .events-cards .tg-team-socials {
    justify-content: center;
  }

  body.cms-active-template-templateG .events-cards .card-body {
    text-align: center;
  }
}

@media (max-width: 575.98px) {
  body.cms-active-template-templateG #app .main section.section,
  body.cms-active-template-templateG #app .main .section {
    padding-top: 32px;
    padding-bottom: 32px;
  }

  body.cms-active-template-templateG #app .main .hotel-hero .hero-content {
    min-height: auto;
    padding: 1.25rem 0 0;
  }

  body.cms-active-template-templateG #app .main .about-home .highlight-stats .stat-item {
    margin-bottom: 1rem;
  }

  body.cms-active-template-templateG #app .main .tg-page-header {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }

  body.cms-active-template-templateG #app .main .tg-page-header h1 {
    font-size: clamp(1.5rem, 6vw, 2rem);
  }

  body.cms-active-template-templateG .events-cards .tg-team-card-image.tg-cms-media--team-photo {
    height: auto !important;
  }
}
