/* Variaveis default caso nao sejam fornecidas */
:root {
  --gi-overlay-color: #000;
  --gi-overlay-opacity: 0.6;
  --gi-timeline-thickness: 1px;
  --gi-timeline-dot-size: 30px;
  --gi-title-font: 'Instrument Serif', serif;
  --gi-title-size: 62px;
  --gi-desc-font: sans-serif;
  --gi-desc-size: 16px;
  --gi-btn-bg: rgba(255, 255, 255, 0.1);
  --gi-btn-color: #fff;
  --gi-btn-padding: 10px 20px;
  --gi-btn-radius: 4px;
  --gi-card-width: 248px;
  --gi-card-height: 320px;
  --gi-card-active-height: 410px;
  --gi-nav-color: #fff;
  --gi-nav-opacity: 0.5;
  /* Layout & Positioning */
  --gi-vertical-align: center;
  --gi-horizontal-align: flex-start;
  --gi-timeline-offset-x: 0px;
  --gi-timeline-offset-y: 0px;
  --gi-content-offset-x: 0px;
  --gi-content-offset-y: 0px;
  --gi-carousel-offset-x: 0px;
  --gi-carousel-offset-y: 0px;
  --gi-gap-timeline-content: 50px;
  --gi-gap-content-carousel: 20px;
  --gi-content-anim-duration: 800ms;
}

/* Base Wrapper */
.giira-wrapper {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 600px;
  overflow: hidden;
  font-family: var(--gi-desc-font);
  background: #111;
  color: #fff;
}

/* Background Slideshow */
.giira-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.giira-bg-slide {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  opacity: 0;
  transition: opacity 1.2s ease-in-out;
  will-change: opacity;
}

.giira-bg-slide.active {
  opacity: 1;
  transition: opacity 1.2s ease-in-out;
}

.giira-background-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--gi-overlay-color);
  opacity: var(--gi-overlay-opacity);
  z-index: 1;
}

/* Content Area */
.giira-content-area {
  position: relative;
  z-index: 2;
  display: flex;
  height: 100%;
  align-items: var(--gi-vertical-align);
  justify-content: var(--gi-horizontal-align);
  padding: 0 5%;
}

/* Timeline */
.giira-timeline {
  display: flex;
  align-items: center;
  margin-right: var(--gi-gap-timeline-content);
  position: relative;
  z-index: 3;
  transform: translate(var(--gi-timeline-offset-x), var(--gi-timeline-offset-y));
}

.giira-wrapper.timeline-vertical .giira-timeline {
  flex-direction: column;
  height: 60%;
  justify-content: space-between;
}

.giira-wrapper.timeline-horizontal .giira-timeline {
  position: absolute;
  bottom: 40px;
  left: 5%;
  flex-direction: row;
  width: 30%;
  justify-content: space-between;
}

.giira-timeline-line {
  position: absolute;
  background: rgba(255, 255, 255, 0.2);
}

.giira-wrapper.timeline-vertical .giira-timeline-line {
  top: 0;
  bottom: 0;
  left: 50%;
  width: var(--gi-timeline-thickness);
  transform: translateX(-50%);
}

.giira-wrapper.timeline-horizontal .giira-timeline-line {
  left: 0;
  right: 0;
  top: 50%;
  height: var(--gi-timeline-thickness);
  transform: translateY(-50%);
}

.giira-timeline-dot {
  width: var(--gi-timeline-dot-size);
  height: var(--gi-timeline-dot-size);
  background: var(--gi-overlay-color);
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  cursor: pointer;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  z-index: 2;
}

.giira-timeline-dot.active {
  background: var(--gi-overlay-color);
  border: 1px solid #d4af37;
}

.giira-timeline-dot span {
  position: absolute;
  font-size: calc(var(--gi-timeline-dot-size) * 0.4);
  color: #fff;
  opacity: 0.7;
  transition: opacity 0.3s;
}

.giira-timeline-dot.active span {
  opacity: 1;
}

.giira-wrapper.no-timeline .giira-timeline {
  display: none;
}

/* Info Panel */
.giira-info {
  flex: 1;
  position: relative;
  height: 300px;
  display: flex;
  align-items: center;
  margin-right: var(--gi-gap-content-carousel);
  transform: translate(var(--gi-content-offset-x), var(--gi-content-offset-y));
}

.giira-wrapper.timeline-horizontal .giira-info {
  margin-bottom: 80px;
}

/* ===========================
   Content Text Animations
   =========================== */

.giira-info-item {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0s 0s;
}

.giira-info-item.active {
  opacity: 1;
  pointer-events: auto;
  transition: opacity 0s 0s;
}

/* Base style for children — INSTANT EXIT (no delay, 0s duration) */
.giira-info-title,
.giira-info-description,
.giira-info-button {
  opacity: 0;
  transition-property: opacity, transform, filter, clip-path;
  transition-duration: 0s;
  transition-delay: 0s;
  transition-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
  will-change: opacity, transform, filter, clip-path;
}

/* SMOOTH ENTRANCE with stagger when parent is active */
.giira-info-item.active .giira-info-title {
  transition-duration: var(--gi-content-anim-duration);
  transition-delay: 0.15s;
}

.giira-info-item.active .giira-info-description {
  transition-duration: var(--gi-content-anim-duration);
  transition-delay: 0.3s;
}

.giira-info-item.active .giira-info-button {
  transition-duration: var(--gi-content-anim-duration);
  transition-delay: 0.45s;
}

/* -- Fade -- */
.giira-wrapper.anim-fade .giira-info-title,
.giira-wrapper.anim-fade .giira-info-description,
.giira-wrapper.anim-fade .giira-info-button {
  transition-property: opacity;
}

.giira-wrapper.anim-fade .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-fade .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-fade .giira-info-item.active .giira-info-button {
  opacity: 1;
}

/* -- Slide Up -- */
.giira-wrapper.anim-slide-up .giira-info-title,
.giira-wrapper.anim-slide-up .giira-info-description,
.giira-wrapper.anim-slide-up .giira-info-button {
  transform: translateY(40px);
  transition-property: opacity, transform;
}

.giira-wrapper.anim-slide-up .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-slide-up .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-slide-up .giira-info-item.active .giira-info-button {
  opacity: 1;
  transform: translateY(0);
}

/* -- Slide Down -- */
.giira-wrapper.anim-slide-down .giira-info-title,
.giira-wrapper.anim-slide-down .giira-info-description,
.giira-wrapper.anim-slide-down .giira-info-button {
  transform: translateY(-40px);
  transition-property: opacity, transform;
}

.giira-wrapper.anim-slide-down .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-slide-down .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-slide-down .giira-info-item.active .giira-info-button {
  opacity: 1;
  transform: translateY(0);
}

/* -- Slide Left -- */
.giira-wrapper.anim-slide-left .giira-info-title,
.giira-wrapper.anim-slide-left .giira-info-description,
.giira-wrapper.anim-slide-left .giira-info-button {
  transform: translateX(40px);
  transition-property: opacity, transform;
}

.giira-wrapper.anim-slide-left .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-slide-left .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-slide-left .giira-info-item.active .giira-info-button {
  opacity: 1;
  transform: translateX(0);
}

/* -- Slide Right -- */
.giira-wrapper.anim-slide-right .giira-info-title,
.giira-wrapper.anim-slide-right .giira-info-description,
.giira-wrapper.anim-slide-right .giira-info-button {
  transform: translateX(-40px);
  transition-property: opacity, transform;
}

.giira-wrapper.anim-slide-right .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-slide-right .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-slide-right .giira-info-item.active .giira-info-button {
  opacity: 1;
  transform: translateX(0);
}

/* -- Zoom In -- */
.giira-wrapper.anim-zoom-in .giira-info-title,
.giira-wrapper.anim-zoom-in .giira-info-description,
.giira-wrapper.anim-zoom-in .giira-info-button {
  transform: scale(0.85);
  transition-property: opacity, transform;
}

.giira-wrapper.anim-zoom-in .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-zoom-in .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-zoom-in .giira-info-item.active .giira-info-button {
  opacity: 1;
  transform: scale(1);
}

/* -- Blur In -- */
.giira-wrapper.anim-blur-in .giira-info-title,
.giira-wrapper.anim-blur-in .giira-info-description,
.giira-wrapper.anim-blur-in .giira-info-button {
  filter: blur(12px);
  transition-property: opacity, filter;
}

.giira-wrapper.anim-blur-in .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-blur-in .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-blur-in .giira-info-item.active .giira-info-button {
  opacity: 1;
  filter: blur(0);
}

/* -- Clip Reveal -- */
.giira-wrapper.anim-clip-reveal .giira-info-title,
.giira-wrapper.anim-clip-reveal .giira-info-description,
.giira-wrapper.anim-clip-reveal .giira-info-button {
  clip-path: inset(0 100% 0 0);
  transition-property: opacity, clip-path;
}

.giira-wrapper.anim-clip-reveal .giira-info-item.active .giira-info-title,
.giira-wrapper.anim-clip-reveal .giira-info-item.active .giira-info-description,
.giira-wrapper.anim-clip-reveal .giira-info-item.active .giira-info-button {
  opacity: 1;
  clip-path: inset(0 0 0 0);
}

/* Info Typography */
.giira-info-title {
  font-family: var(--gi-title-font);
  font-size: var(--gi-title-size);
  font-weight: normal;
  margin: 0 0 15px 0;
  line-height: 1.1;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.giira-info-description {
  font-family: var(--gi-desc-font);
  font-size: var(--gi-desc-size);
  margin: 0 0 30px 0;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.8);
  max-width: 400px;
}

.giira-info-button {
  display: inline-block;
  background: var(--gi-btn-bg) !important;
  color: var(--gi-btn-color) !important;
  padding: var(--gi-btn-padding);
  border-radius: var(--gi-btn-radius);
  text-decoration: none !important;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: background 0.3s, color 0.3s;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.giira-info-button:hover,
.giira-info-button:focus,
.giira-info-button:active {
  background: var(--gi-btn-hover-bg, rgba(255, 255, 255, 0.2)) !important;
  color: var(--gi-btn-hover-color, var(--gi-btn-color)) !important;
}

/* Carousel */
.giira-carousel-container {
  width: 60%;
  max-width: 1000px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  transform: translate(var(--gi-carousel-offset-x), var(--gi-carousel-offset-y));
  -webkit-clip-path: polygon(var(--gi-mask-start, 0px) -100%, 200% -100%, 200% 200%, var(--gi-mask-start, 0px) 200%);
  clip-path: polygon(var(--gi-mask-start, 0px) -100%, 200% -100%, 200% 200%, var(--gi-mask-start, 0px) 200%);
}

.giira-carousel {
  width: 100%;
  overflow: visible !important;
  padding-bottom: 20px;
}

.giira-carousel .swiper-wrapper {
  align-items: center;
  height: var(--gi-card-active-height);
  box-sizing: border-box;
}

.giira-slide {
  width: var(--gi-card-width);
  height: var(--gi-card-height);
  transition: height 0.6s cubic-bezier(0.25, 1, 0.5, 1), transform 0.6s cubic-bezier(0.25, 1, 0.5, 1), opacity 0.6s ease;
  cursor: pointer;
  opacity: 1;
  transform: scale(0.95);
  will-change: height, transform;
}

.swiper-slide-active.giira-slide,
.swiper-slide-duplicate-active.giira-slide {
  height: var(--gi-card-active-height);
  opacity: 1;
  transform: scale(1);
}

/* Oculta instantaneamente os cards que ficam à esquerda do ponto inicial */
.giira-carousel .swiper-slide-prev,
.giira-carousel .swiper-slide-duplicate-prev {
  opacity: 0 !important;
  pointer-events: none;
}

.giira-slide-inner {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}

.giira-slide-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gi-card-overlay-bg, transparent);
  opacity: var(--gi-card-overlay-opacity, 1);
  transition: opacity 0.6s ease, background 0.6s ease;
  pointer-events: none;
  z-index: 1;
}

.swiper-slide-active.giira-slide .giira-slide-inner::after,
.swiper-slide-duplicate-active.giira-slide .giira-slide-inner::after {
  background: var(--gi-card-active-overlay-bg, var(--gi-card-overlay-bg, transparent));
  opacity: var(--gi-card-active-overlay-opacity, var(--gi-card-overlay-opacity, 1));
}

a.giira-slide {
  display: block;
  text-decoration: none;
}

.giira-slide-img {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform 0.8s cubic-bezier(0.25, 1, 0.5, 1);
  will-change: transform;
}

.giira-slide:hover .giira-slide-img {
  transform: scale(1.05);
}

.giira-slide-label {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  padding: 30px 20px 20px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0) 100%);
  color: #fff;
  font-family: var(--gi-title-font);
  font-size: calc(var(--gi-title-size) * 0.4);
  box-sizing: border-box;
  z-index: 2;
}

/* Navigation Arrows */
.giira-nav {
  display: flex;
  gap: 10px;
  margin-top: 20px;
  justify-content: flex-start;
  position: relative;
  z-index: 5;
}

.giira-wrapper.no-nav .giira-nav {
  display: none;
}

.giira-nav button {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  color: var(--gi-nav-color) !important;
  opacity: var(--gi-nav-opacity);
  width: 40px;
  height: 40px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  backdrop-filter: blur(5px);
  outline: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

.giira-wrapper.nav-format-circle .giira-nav button {
  border-radius: 50%;
}

.giira-wrapper.nav-format-square .giira-nav button {
  border-radius: 4px;
}

.giira-wrapper.nav-format-plain .giira-nav button {
  border: none;
  background: transparent;
  width: auto;
  height: auto;
  padding: 10px;
}

.giira-wrapper.nav-format-plain .giira-nav button svg {
  width: 30px;
  height: 30px;
}

.giira-nav button:hover,
.giira-nav button:focus,
.giira-nav button:active {
  opacity: 1 !important;
  background: rgba(255, 255, 255, 0.1) !important;
  color: var(--gi-nav-color) !important;
  outline: none !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent !important;
}

.giira-nav button svg {
  width: 20px;
  height: 20px;
  fill: currentColor !important;
}

.giira-nav button svg path {
  fill: currentColor !important;
}

/* Responsive adjustments */
@media (max-width: 992px) {
  .giira-content-area {
    flex-direction: column;
    padding-top: 50px;
    align-items: center;
    justify-content: center;
  }

  .giira-timeline {
    display: none !important;
  }

  .giira-info {
    width: 100%;
    height: 200px;
    text-align: left;
    margin-bottom: 20px;
    margin-right: 0;
    transform: none !important;
    /* Reset offset for mobile */
  }

  .giira-info-item {
    width: 100%;
    left: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 0 30px;
    margin-top: 30px;
  }

  .giira-info-description {
    margin: 0 0 20px 0;
    text-align: left;
  }

  .giira-carousel-container {
    width: 100%;
    max-width: 100%;
    transform: translateY(-25px) !important;
    -webkit-clip-path: none !important;
    clip-path: none !important;
    /* Adjust offset for mobile */
  }

  .giira-carousel {
    overflow: hidden !important;
    /* Avoid horizontal scrolling */
    padding-bottom: 0;
  }

  .giira-slide {
    width: 140px;
    height: 100px;
  }

  .swiper-slide-active.giira-slide,
  .swiper-slide-duplicate-active.giira-slide {
    height: 120px;
  }

  .giira-slide-label {
    display: none !important;
  }

  .giira-nav {
    position: absolute;
    top: 50%;
    left: 0;
    width: 100%;
    justify-content: space-between;
    transform: translateY(-50%);
    pointer-events: none;
    margin-top: 0;
    z-index: 10;
  }

  .giira-nav button {
    pointer-events: auto;
    background: transparent !important;
    color: var(--gi-nav-color, #000) !important;
    border: none !important;
    margin: 0 10px;
    transform: scale(1.5);
  }
}

@media (max-width: 576px) {
  .giira-slide {
    width: 95px;
    height: 70px;
  }

  .swiper-slide-active.giira-slide,
  .swiper-slide-duplicate-active.giira-slide {
    height: 85px;
  }

  .giira-info-title {
    font-size: calc(var(--gi-title-size) * 0.7);
  }

  .giira-info-description {
    font-size: calc(var(--gi-desc-size) * 0.9);
  }
}