/* =========================================
   1. CONTAINER & TRACK
   ========================================= */
.itg-container {
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
  padding: 10px 0;
  position: relative;
  width: 100%;
  max-width: 100%;
  /* Ensure controls are visible */
}

/* Fallback for old ID */
#image-ticker {
  overflow: hidden;
  white-space: nowrap;
  box-sizing: border-box;
  padding: 10px 0;
  position: relative;
}

.itg-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.itg-container .ticker-track {
  display: inline-block;
  white-space: nowrap;
  will-change: transform;
  /* Animation is applied via inline style from PHP */
}

/* Paused state */
.itg-container .ticker-track.paused {
  animation-play-state: paused !important;
}

/* =========================================
   2. CONTROLS (Prev/Next/Pause)
   ========================================= */
.itg-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 15px;
    margin-top: 15px;
    pointer-events: auto;
    z-index: 20;
    opacity: 1; /* Always visible */
}

.itg-btn-prev,
.itg-btn-next,
.itg-btn-pause {
    background: #333;
    color: #fff;
    border: none;
    border-radius: 50%;
    width: 40px;
    height: 40px;
    font-size: 20px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, transform 0.2s;
    line-height: 1;
    padding-bottom: 3px;
    position: relative; /* Reset absolute */
    left: auto; /* Reset absolute */
    right: auto; /* Reset absolute */
    top: auto; /* Reset absolute */
    transform: none; /* Reset absolute */
}

.itg-btn-pause {
    width: 48px;
    height: 48px;
    font-size: 22px;
}

.itg-btn-prev:hover,
.itg-btn-next:hover,
.itg-btn-pause:hover {
    background: #555;
    transform: scale(1.1);
}

/* =========================================
   3. TILE STYLES
   ========================================= */
.itg-container .tile {
  display: inline-block;
  width: 300px;
  height: 168px; /* Default, overridden by PHP */
  margin-right: 12px;
  background: #fff;
  border-radius: 6px; /* Default */
  overflow: hidden;
  position: relative;
  cursor: pointer;
  vertical-align: top;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
  transition: all 0.3s ease;
  border: none; /* Default */
}

.itg-container .tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), filter 0.4s ease;
}

/* =========================================
   4. HOVER EFFECTS (Phase 5)
   ========================================= */

/* Zoom Effect - Smoother & slightly more pronounced */
.itg-container .itg-hover-zoom:hover img {
    transform: scale(1.12);
}

/* Lift Effect - move the whole card slightly without scaling its border */
.itg-container .itg-hover-lift:hover,
.itg-container .itg-hover-lift:focus,
.itg-container .itg-hover-lift:focus-visible {
    transform: translateY(-4px);
}

/* Blur Background - Darken for text readability */
.itg-container .itg-hover-blur:hover img {
    filter: blur(4px) brightness(0.7);
    transform: scale(1.05);
}
.itg-container .itg-hover-blur:hover .tile-title {
    opacity: 1; /* Ensure text is visible over blur */
    transform: translateY(0);
}

/* Grayscale to Color - Add pop */
.itg-container .itg-hover-grayscale-color img {
    filter: grayscale(100%);
}
.itg-container .itg-hover-grayscale-color:hover img {
    filter: grayscale(0%);
    transform: scale(1.02); /* Subtle zoom on reveal */
}

/* =========================================
   5. IMAGE FILTERS (Phase 5)
   ========================================= */
/* Sepia - Authentic old photo to restored */
.itg-container .itg-filter-sepia img { 
    filter: sepia(80%) brightness(0.9); 
}
.itg-container .itg-filter-sepia:hover img { 
    filter: sepia(0%) brightness(1.05);
    transform: scale(1.05);
}

/* Vintage - More complex retro feel */
.itg-container .itg-filter-vintage img { 
    filter: contrast(1.1) sepia(0.4) saturate(0.8); 
}
.itg-container .itg-filter-vintage:hover img {
    filter: contrast(1) sepia(0) saturate(1.1) brightness(1.05);
    transform: scale(1.05);
}

/* Contrast - High Drama */
.itg-container .itg-filter-contrast img { 
    filter: contrast(140%) brightness(1.05); 
}
.itg-container .itg-filter-contrast:hover img {
    filter: contrast(100%) brightness(1);
    transform: scale(1.05);
}

/* Grayscale (Noir) */
.itg-container .itg-filter-grayscale img {
    filter: grayscale(100%) contrast(1.1);
}
.itg-container .itg-filter-grayscale:hover img {
    filter: grayscale(0%) contrast(1);
    transform: scale(1.05);
}

/* Cyberpunk (Neon) */
.itg-container .itg-filter-cyber img {
    filter: contrast(1.2) saturate(1.8) hue-rotate(190deg);
}
.itg-container .itg-filter-cyber:hover img {
    filter: contrast(1) saturate(1) hue-rotate(0deg);
    transform: scale(1.05);
}

/* Warm (Summer) */
.itg-container .itg-filter-warm img {
    filter: sepia(30%) saturate(140%) hue-rotate(-10deg);
}
.itg-container .itg-filter-warm:hover img {
    filter: none;
    transform: scale(1.05);
}

/* Cool (Winter) */
.itg-container .itg-filter-cool img {
    filter: saturate(90%) hue-rotate(180deg) brightness(1.05);
}
.itg-container .itg-filter-cool:hover img {
    filter: none;
    transform: scale(1.05);
}

/* Dreamy (Soft) */
.itg-container .itg-filter-dream img {
    filter: blur(0.5px) brightness(1.1) saturate(80%);
}
.itg-container .itg-filter-dream:hover img {
    filter: none;
    transform: scale(1.05);
}

/* =========================================
   6. CARD STYLES (Phase 5)
   ========================================= */

/* Social Card Style */
.itg-container .itg-card-social {
    border: 1px solid #e1e8ed !important;
    border-radius: 8px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1) !important;
    display: flex !important;
    flex-direction: column;
}

/* Add a fake header for social cards (pseudo-element or requires HTML change? 
   CSS-only is hard without HTML. We'll just style the container to look 'card-like') 
*/
.itg-container .itg-card-social .tile-content {
    padding: 12px !important;
}

/* =========================================
   7. CAPTIONS & OVERLAYS
   ========================================= */
.itg-container .tile-title {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.6) 60%, transparent 100%);
  color: white;
  padding: 12px 15px;
  font-family: Arial, sans-serif;
  font-size: 15px;
  font-weight: bold;
  line-height: 1.3;
  text-align: center;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.itg-container .tile:hover .tile-title,
.itg-container .tile:focus .tile-title,
.itg-container .tile:focus-visible .tile-title {
  opacity: 1;
  transform: translateY(0);
}

:root {
  --itg-scrollbar-width: 0px;
}

.itg-hero {
  position: relative;
  width: 100%;
  max-width: 100%;
  height: var(--itg-hero-height, 100vh);
  overflow: hidden;
  background: #000;
  --itg-hero-transition: 800ms;
}

.itg-hero--breakout {
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

@media (min-width: 768px) {
  .itg-hero--breakout {
    width: calc(100vw - var(--itg-scrollbar-width, 0px));
    max-width: calc(100vw - var(--itg-scrollbar-width, 0px));
    margin-left: calc(50% - ((100vw - var(--itg-scrollbar-width, 0px)) / 2));
    margin-right: calc(50% - ((100vw - var(--itg-scrollbar-width, 0px)) / 2));
  }
}

.itg-hero__viewport {
  position: relative;
  width: 100%;
  height: 100%;
}

.itg-hero__slides {
  width: 100%;
  height: 100%;
}

.itg-hero[data-effect="slide"] .itg-hero__slides {
  display: flex;
  height: 100%;
  transition: transform var(--itg-hero-transition) ease;
  will-change: transform;
}

.itg-hero[data-effect="slide-vertical"] .itg-hero__slides {
  display: flex;
  flex-direction: column;
  height: 100%;
  transition: transform var(--itg-hero-transition) ease;
  will-change: transform;
}

.itg-hero__slide {
  width: 100%;
  height: 100%;
}

.itg-hero__slide.is-clickable {
  cursor: pointer;
}

.itg-hero__slide.is-clickable:focus-visible {
  outline: 3px solid rgba(255,255,255,0.9);
  outline-offset: -6px;
}

.itg-hero[data-effect="slide"] .itg-hero__slide {
  flex: 0 0 100%;
  position: relative;
}

.itg-hero[data-effect="slide-vertical"] .itg-hero__slide {
  flex: 0 0 100%;
  position: relative;
}

.itg-hero:not([data-effect="slide"]):not([data-effect="slide-vertical"]) .itg-hero__slides {
  position: relative;
}

.itg-hero:not([data-effect="slide"]):not([data-effect="slide-vertical"]) .itg-hero__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  transform: translateY(0);
  transition: opacity var(--itg-hero-transition) ease, transform var(--itg-hero-transition) ease;
}

.itg-hero:not([data-effect="slide"]):not([data-effect="slide-vertical"]) .itg-hero__slide.is-active {
  opacity: 1;
  pointer-events: auto;
}

.itg-hero[data-effect="fade-up"] .itg-hero__slide { transform: translateY(16px); }
.itg-hero[data-effect="fade-up"] .itg-hero__slide.is-active { transform: translateY(0); }

.itg-hero[data-effect="fade-down"] .itg-hero__slide { transform: translateY(-16px); }
.itg-hero[data-effect="fade-down"] .itg-hero__slide.is-active { transform: translateY(0); }

.itg-hero__slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: scale(1);
  transition: transform calc(var(--itg-hero-transition) * 1.5) ease, filter var(--itg-hero-transition) ease;
}

.itg-hero[data-effect="zoom"] .itg-hero__slide.is-active img {
  transform: scale(1.06);
}

.itg-hero[data-effect="blur"] .itg-hero__slide img {
  filter: blur(14px) brightness(0.9);
  transform: scale(1.04);
}
.itg-hero[data-effect="blur"] .itg-hero__slide.is-active img {
  filter: blur(0) brightness(1);
  transform: scale(1);
}

.itg-hero[data-effect="zoom-blur"] .itg-hero__slide img {
  filter: blur(10px) brightness(0.9);
  transform: scale(1.06);
}
.itg-hero[data-effect="zoom-blur"] .itg-hero__slide.is-active img {
  filter: blur(0) brightness(1);
  transform: scale(1.1);
}

@keyframes itg-hero-kenburns {
  0% { transform: scale(1.12) translate(-2%, -2%); }
  100% { transform: scale(1.06) translate(2%, 2%); }
}

.itg-hero[data-effect="kenburns"] .itg-hero__slide img {
  transform: scale(1.06);
}
.itg-hero[data-effect="kenburns"] .itg-hero__slide.is-active img {
  animation: itg-hero-kenburns 12s ease-in-out both;
}

.itg-hero__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 48px;
  height: 48px;
  border: none;
  border-radius: 50%;
  background: rgba(0,0,0,0.45);
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, transform 0.2s ease;
}

.itg-hero__arrow:hover {
  background: rgba(0,0,0,0.65);
  transform: translateY(-50%) scale(1.05);
}

.itg-hero__arrow:focus-visible {
  outline: 2px solid rgba(255,255,255,0.9);
  outline-offset: 3px;
}

.itg-hero__arrow--prev { left: 16px; }
.itg-hero__arrow--next { right: 16px; }

.itg-hero .itg-hero__toggle {
  z-index: 5;
  -webkit-appearance: none;
  appearance: none;
  border-style: solid;
  border-width: var(--itg-hero-toggle-border-width, var(--itg-hero-overlay-panel-custom-border-width, var(--itg-hero-overlay-panel-border-width, 0)));
  border-color: var(--itg-hero-toggle-border-color, var(--itg-hero-overlay-panel-custom-border-color, var(--itg-hero-overlay-panel-border-color, transparent)));
  border-radius: var(--itg-hero-toggle-radius, var(--itg-hero-overlay-panel-radius, 14px));
  background: var(--itg-hero-toggle-bg, var(--itg-hero-overlay-panel-custom-bg, var(--itg-hero-overlay-panel-bg, rgba(0,0,0,0.45))));
  background-color: var(--itg-hero-toggle-bg, var(--itg-hero-overlay-panel-custom-bg, var(--itg-hero-overlay-panel-bg, rgba(0,0,0,0.45))));
  color: var(--itg-hero-toggle-color, #fff);
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  padding: 10px 14px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--itg-hero-toggle-font, var(--itg-hero-font, inherit));
  backdrop-filter: var(--itg-hero-toggle-backdrop, blur(2px));
  box-shadow: none;
  -webkit-tap-highlight-color: transparent;
}

.itg-hero .itg-hero__toggle.is-floating {
  position: absolute;
  top: 16px;
  right: 16px;
}

.itg-hero .itg-hero__toggle:hover {
  background: var(--itg-hero-toggle-bg, var(--itg-hero-overlay-panel-custom-bg, var(--itg-hero-overlay-panel-bg, rgba(0,0,0,0.45)))) !important;
  background-color: var(--itg-hero-toggle-bg, var(--itg-hero-overlay-panel-custom-bg, var(--itg-hero-overlay-panel-bg, rgba(0,0,0,0.45)))) !important;
  border-color: var(--itg-hero-toggle-border-color, var(--itg-hero-overlay-panel-custom-border-color, var(--itg-hero-overlay-panel-border-color, transparent))) !important;
  color: var(--itg-hero-toggle-color, #fff) !important;
  box-shadow: none !important;
  filter: brightness(1.05);
  transform: translateY(-1px);
}

.itg-hero .itg-hero__toggle:active,
.itg-hero .itg-hero__toggle:focus {
  background: var(--itg-hero-toggle-bg, var(--itg-hero-overlay-panel-custom-bg, var(--itg-hero-overlay-panel-bg, rgba(0,0,0,0.45)))) !important;
  background-color: var(--itg-hero-toggle-bg, var(--itg-hero-overlay-panel-custom-bg, var(--itg-hero-overlay-panel-bg, rgba(0,0,0,0.45)))) !important;
  border-color: var(--itg-hero-toggle-border-color, var(--itg-hero-overlay-panel-custom-border-color, var(--itg-hero-overlay-panel-border-color, transparent))) !important;
  color: var(--itg-hero-toggle-color, #fff) !important;
  box-shadow: none !important;
  outline: none;
  filter: none;
}

.itg-hero .itg-hero__toggle:focus-visible {
  outline: 2px solid rgba(255,255,255,0.9);
  outline-offset: 3px;
}

.itg-hero--paused .itg-hero__slide.is-active img {
  animation-play-state: paused !important;
}

.itg-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  pointer-events: auto;
}

.itg-hero[data-overlay-y="top"] .itg-hero__slide:not([data-overlay-y]) .itg-hero__overlay { align-items: flex-start; }
.itg-hero[data-overlay-y="center"] .itg-hero__slide:not([data-overlay-y]) .itg-hero__overlay { align-items: center; }
.itg-hero[data-overlay-y="bottom"] .itg-hero__slide:not([data-overlay-y]) .itg-hero__overlay { align-items: flex-end; }

.itg-hero[data-overlay-x="left"] .itg-hero__slide:not([data-overlay-x]) .itg-hero__overlay { justify-content: flex-start; }
.itg-hero[data-overlay-x="center"] .itg-hero__slide:not([data-overlay-x]) .itg-hero__overlay { justify-content: center; }
.itg-hero[data-overlay-x="right"] .itg-hero__slide:not([data-overlay-x]) .itg-hero__overlay { justify-content: flex-end; }

.itg-hero__slide[data-overlay-y="top"] .itg-hero__overlay { align-items: flex-start; }
.itg-hero__slide[data-overlay-y="center"] .itg-hero__overlay { align-items: center; }
.itg-hero__slide[data-overlay-y="bottom"] .itg-hero__overlay { align-items: flex-end; }

.itg-hero__slide[data-overlay-x="left"] .itg-hero__overlay { justify-content: flex-start; }
.itg-hero__slide[data-overlay-x="center"] .itg-hero__overlay { justify-content: center; }
.itg-hero__slide[data-overlay-x="right"] .itg-hero__overlay { justify-content: flex-end; }

.itg-hero__slide[data-overlay-x="left"] .itg-hero__overlay-inner {
  margin-left: clamp(16px, 6vw, 72px);
}
.itg-hero__slide[data-overlay-x="center"] .itg-hero__overlay-inner {
  margin-left: auto;
  margin-right: auto;
}
.itg-hero__slide[data-overlay-x="right"] .itg-hero__overlay-inner {
  margin-right: clamp(16px, 6vw, 72px);
}

.itg-hero__overlay-inner {
  pointer-events: auto;
  max-width: min(720px, 92vw);
  margin: 16px;
  padding: 18px 18px 16px;
  color: #fff;
  background: var(--itg-hero-overlay-panel-custom-bg, var(--itg-hero-overlay-panel-bg, linear-gradient(90deg, rgba(0,0,0,0.55), rgba(0,0,0,0.22))));
  border: var(--itg-hero-overlay-panel-custom-border-width, var(--itg-hero-overlay-panel-border-width, 0)) solid var(--itg-hero-overlay-panel-custom-border-color, var(--itg-hero-overlay-panel-border-color, transparent));
  border-radius: var(--itg-hero-overlay-panel-radius, 14px);
  backdrop-filter: blur(2px);
  font-family: var(--itg-hero-font, inherit);
}

.itg-hero[data-text-color="dark"] .itg-hero__overlay-inner {
  color: #111;
}
.itg-hero__slide[data-text-color="dark"] .itg-hero__overlay-inner {
  color: #111;
}

.itg-hero[data-overlay-bg="none"] .itg-hero__overlay-inner,
.itg-hero__slide[data-overlay-bg="none"] .itg-hero__overlay-inner {
  --itg-hero-overlay-panel-bg: transparent;
  backdrop-filter: none;
}

.itg-hero[data-text-color="light"][data-overlay-bg="soft"] .itg-hero__overlay-inner,
.itg-hero__slide[data-text-color="light"][data-overlay-bg="soft"] .itg-hero__overlay-inner {
  --itg-hero-overlay-panel-bg: linear-gradient(90deg, rgba(0,0,0,0.55), rgba(0,0,0,0.22));
}
.itg-hero[data-text-color="light"][data-overlay-bg="strong"] .itg-hero__overlay-inner,
.itg-hero__slide[data-text-color="light"][data-overlay-bg="strong"] .itg-hero__overlay-inner {
  --itg-hero-overlay-panel-bg: linear-gradient(90deg, rgba(0,0,0,0.78), rgba(0,0,0,0.35));
}

.itg-hero[data-text-color="dark"][data-overlay-bg="soft"] .itg-hero__overlay-inner,
.itg-hero__slide[data-text-color="dark"][data-overlay-bg="soft"] .itg-hero__overlay-inner {
  --itg-hero-overlay-panel-bg: linear-gradient(90deg, rgba(255,255,255,0.78), rgba(255,255,255,0.35));
}
.itg-hero[data-text-color="dark"][data-overlay-bg="strong"] .itg-hero__overlay-inner,
.itg-hero__slide[data-text-color="dark"][data-overlay-bg="strong"] .itg-hero__overlay-inner {
  --itg-hero-overlay-panel-bg: linear-gradient(90deg, rgba(255,255,255,0.92), rgba(255,255,255,0.55));
}

.itg-hero[data-overlay-bg="none"][data-text-color="light"] .itg-hero__title,
.itg-hero[data-overlay-bg="none"][data-text-color="light"] .itg-hero__subtitle,
.itg-hero__slide[data-overlay-bg="none"][data-text-color="light"] .itg-hero__title,
.itg-hero__slide[data-overlay-bg="none"][data-text-color="light"] .itg-hero__subtitle {
  text-shadow: 0 2px 18px rgba(0,0,0,0.55);
}

.itg-hero[data-overlay-x="left"] .itg-hero__slide:not([data-overlay-x]) .itg-hero__overlay-inner {
  margin-left: clamp(16px, 6vw, 72px);
}
.itg-hero[data-overlay-x="center"] .itg-hero__slide:not([data-overlay-x]) .itg-hero__overlay-inner {
  margin-left: auto;
  margin-right: auto;
}
.itg-hero[data-overlay-x="right"] .itg-hero__slide:not([data-overlay-x]) .itg-hero__overlay-inner {
  margin-right: clamp(16px, 6vw, 72px);
}

.itg-hero[data-text-align="left"] .itg-hero__slide:not([data-text-align]) .itg-hero__overlay-inner { text-align: left; }
.itg-hero[data-text-align="center"] .itg-hero__slide:not([data-text-align]) .itg-hero__overlay-inner { text-align: center; }
.itg-hero[data-text-align="right"] .itg-hero__slide:not([data-text-align]) .itg-hero__overlay-inner { text-align: right; }

.itg-hero__slide[data-text-align="left"] .itg-hero__overlay-inner { text-align: left; }
.itg-hero__slide[data-text-align="center"] .itg-hero__overlay-inner { text-align: center; }
.itg-hero__slide[data-text-align="right"] .itg-hero__overlay-inner { text-align: right; }

.itg-hero__title {
  display: block;
  width: fit-content;
  max-width: 100%;
  font-size: var(--itg-hero-title-size, clamp(24px, 3.6vw, 54px));
  line-height: 1.05;
  font-weight: var(--itg-hero-title-weight, 800);
  letter-spacing: -0.02em;
  margin: 0 0 10px;
  color: var(--itg-hero-title-color, inherit);
  background: var(--itg-hero-title-bg, transparent);
  border-style: solid;
  border-width: var(--itg-hero-title-border-width, 0);
  border-color: var(--itg-hero-title-border-color, transparent);
  border-radius: 10px;
  padding: var(--itg-hero-title-box-padding, 0);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.itg-hero__subtitle {
  display: block;
  width: fit-content;
  max-width: 100%;
  font-size: var(--itg-hero-subtitle-size, clamp(14px, 1.6vw, 20px));
  line-height: 1.45;
  opacity: 0.95;
  margin: 0 0 14px;
  color: var(--itg-hero-subtitle-color, inherit);
  background: var(--itg-hero-subtitle-bg, transparent);
  border-style: solid;
  border-width: var(--itg-hero-subtitle-border-width, 0);
  border-color: var(--itg-hero-subtitle-border-color, transparent);
  border-radius: 10px;
  padding: var(--itg-hero-subtitle-box-padding, 0);
  box-decoration-break: clone;
  -webkit-box-decoration-break: clone;
}

.itg-hero__btn-wrap {
  margin-top: 4px;
}

.itg-hero[data-text-align="center"] .itg-hero__slide:not([data-text-align]) .itg-hero__title,
.itg-hero[data-text-align="center"] .itg-hero__slide:not([data-text-align]) .itg-hero__subtitle,
.itg-hero__slide[data-text-align="center"] .itg-hero__title,
.itg-hero__slide[data-text-align="center"] .itg-hero__subtitle {
  margin-left: auto;
  margin-right: auto;
}

.itg-hero[data-text-align="right"] .itg-hero__slide:not([data-text-align]) .itg-hero__title,
.itg-hero[data-text-align="right"] .itg-hero__slide:not([data-text-align]) .itg-hero__subtitle,
.itg-hero__slide[data-text-align="right"] .itg-hero__title,
.itg-hero__slide[data-text-align="right"] .itg-hero__subtitle {
  margin-left: auto;
  margin-right: 0;
}

.itg-hero[data-btn-align="left"] .itg-hero__slide:not([data-btn-align]) .itg-hero__btn-wrap { text-align: left; }
.itg-hero[data-btn-align="center"] .itg-hero__slide:not([data-btn-align]) .itg-hero__btn-wrap { text-align: center; }
.itg-hero[data-btn-align="right"] .itg-hero__slide:not([data-btn-align]) .itg-hero__btn-wrap { text-align: right; }

.itg-hero__slide[data-btn-align="left"] .itg-hero__btn-wrap { text-align: left; }
.itg-hero__slide[data-btn-align="center"] .itg-hero__btn-wrap { text-align: center; }
.itg-hero__slide[data-btn-align="right"] .itg-hero__btn-wrap { text-align: right; }

.itg-hero__btn {
  --itg-hero-btn-bg-default: rgba(255,255,255,0.92);
  --itg-hero-btn-color-default: #111;
  --itg-hero-btn-border-color-default: transparent;
  --itg-hero-btn-hover-filter: brightness(1.05);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: var(--itg-hero-btn-py, 12px) var(--itg-hero-btn-px, 16px);
  border-radius: var(--itg-hero-btn-radius, 999px);
  text-decoration: none;
  font-weight: 700;
  font-size: var(--itg-hero-btn-font, 16px);
  background: var(--itg-hero-btn-bg, var(--itg-hero-btn-bg-default));
  color: var(--itg-hero-btn-color, var(--itg-hero-btn-color-default));
  border: var(--itg-hero-btn-border-width, 2px) solid var(--itg-hero-btn-border-color, var(--itg-hero-btn-border-color-default));
  transition: transform 0.2s ease, filter 0.2s ease, background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  pointer-events: auto;
  position: relative;
  z-index: 6;
  touch-action: manipulation;
}

.itg-hero[data-btn-style="outline-light"] .itg-hero__btn {
  --itg-hero-btn-bg-default: rgba(255,255,255,0.08);
  --itg-hero-btn-color-default: #fff;
  --itg-hero-btn-border-color-default: rgba(255,255,255,0.7);
}

.itg-hero__slide[data-btn-style="outline-light"] .itg-hero__btn {
  --itg-hero-btn-bg-default: rgba(255,255,255,0.08);
  --itg-hero-btn-color-default: #fff;
  --itg-hero-btn-border-color-default: rgba(255,255,255,0.7);
}

.itg-hero[data-text-color="dark"][data-btn-style="outline-light"] .itg-hero__btn,
.itg-hero__slide[data-text-color="dark"][data-btn-style="outline-light"] .itg-hero__btn {
  --itg-hero-btn-bg-default: rgba(0,0,0,0.04);
  --itg-hero-btn-color-default: #111;
  --itg-hero-btn-border-color-default: rgba(0,0,0,0.55);
}

.itg-hero[data-btn-style="outline-light"] .itg-hero__btn:hover {
  --itg-hero-btn-hover-filter: brightness(1.12);
}

.itg-hero__slide[data-btn-style="outline-light"] .itg-hero__btn:hover {
  --itg-hero-btn-hover-filter: brightness(1.12);
}
.itg-hero[data-text-color="dark"][data-btn-style="outline-light"] .itg-hero__btn:hover,
.itg-hero__slide[data-text-color="dark"][data-btn-style="outline-light"] .itg-hero__btn:hover {
  --itg-hero-btn-hover-filter: brightness(0.98);
}

.itg-hero__btn:hover,
.itg-hero__btn:focus-visible {
  transform: translateY(-1px);
  background: var(--itg-hero-btn-hover-bg, var(--itg-hero-btn-bg, var(--itg-hero-btn-bg-default)));
  filter: var(--itg-hero-btn-hover-filter, brightness(1.05));
}

.itg-hero__btn:focus-visible {
  outline: 2px solid rgba(255,255,255,0.9);
  outline-offset: 2px;
}

.itg-hero__dots {
  padding-left: 16px;
  padding-right: 16px;
}

.itg-hero__dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  z-index: 5;
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  pointer-events: auto;
}

.itg-hero__controls {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  z-index: 5;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: auto;
}

.itg-hero__dot {
  appearance: none;
  -webkit-appearance: none;
  padding: 0;
  margin: 0;
  width: 12px;
  height: 12px;
  min-width: 10px;
  min-height: 10px;
  flex: 0 0 10px;
  border-radius: 999px;
  border: var(--itg-hero-dot-border-width, 0) solid var(--itg-hero-dot-border-color, transparent);
  box-sizing: border-box;
  background: rgba(255,255,255,0.6);
  cursor: pointer;
  box-shadow: none;
  outline: none;
  line-height: 0;
  font-size: 0;
  transition: transform 0.2s ease, background 0.2s ease;
}

.itg-hero__toggle {
  flex: 0 0 auto;
}

.itg-hero__dot:hover {
  background: rgba(255,255,255,0.78);
}

.itg-hero__dot.is-active {
  background: rgba(255,255,255,0.95);
  transform: scale(1.25);
}

.itg-hero__dot:focus-visible {
  outline: 2px solid rgba(255,255,255,0.95);
  outline-offset: 4px;
}

@media (max-width: 1024px) and (min-width: 768px) {
  .itg-hero {
    height: min(var(--itg-hero-tablet-height, var(--itg-hero-height, 100vh)), 100svh);
  }
}

@media (max-width: 767px) {
  .itg-hero {
    height: min(var(--itg-hero-mobile-height, 72vh), 100svh);
  }
}

@media (prefers-reduced-motion: reduce) {
  .itg-hero__slides,
  .itg-hero__slide,
  .itg-hero__slide img {
    transition: none !important;
  }
  .itg-hero__slide img {
    animation: none !important;
  }
  .itg-hero__btn,
  .itg-hero__arrow,
  .itg-container .tile,
  .itg-container .tile img,
  .itg-container .tile-title {
    transition: none !important;
  }
}
