/* ARTGALLERY Fioxen Premium Destinations — Style IV v1.0.13
 * Final geometry pass: exact 4-up desktop carousel, visible 18px gutters,
 * equal-height editorial/card composition and no influence from Fioxen's
 * generic carousel controls. Styles I–III remain untouched.
 */
.agpd-root,
.agpd-root * { box-sizing: border-box; }

.agpd-root {
  width: 100%;
  margin: 0;
  padding: 0;
  background: #fff;
}

.agpd-section {
  position: relative;
  width: 100%;
  margin: 0;
  padding: 0;
  background: #fff;
  overflow: hidden;
}

/* Hide any pagination generated by the original widget stack. */
.agpd-style4-carousel .swiper-pagination,
.agpd-style4-carousel .swiper-pagination-bullets,
.agpd-style4-carousel .swiper-pagination-clickable {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}


.agpd-inner {
  --agpd-row-height: 348px;
  width: 100%;
  max-width: 1780px;
  min-height: var(--agpd-row-height);
  margin: 0 auto;
  padding: 0 48px;
  display: grid;
  grid-template-columns: minmax(300px, 326px) minmax(0, 1fr);
  gap: 24px;
  align-items: stretch;
}

/* Editorial column aligns to the exact same left content line as Featured Artists. */
.agpd-editorial {
  width: 100%;
  max-width: 326px;
  min-height: var(--agpd-row-height);
  margin: 0;
  padding: 7px 0 9px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.agpd-eyebrow {
  margin: 0 0 15px;
  color: #c8860d;
  font-family: Quicksand, Arial, sans-serif;
  font-size: 12.5px;
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: .19em;
  text-transform: uppercase;
}

.agpd-heading {
  max-width: 326px;
  margin: 0;
  color: #14181f;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 2.28vw, 44px);
  line-height: 1.04;
  font-weight: 500;
  letter-spacing: -.034em;
  overflow-wrap: normal;
  word-break: normal;
  hyphens: manual;
  /* JS may reduce this one pixel at a time after GTranslate if a translation exceeds 3 lines. */
  max-height: none;
}

.agpd-heading.agpd-heading-fit {
  transition: font-size .16s ease;
}

.agpd-heading::after { display: none !important; }

.agpd-description {
  max-width: 306px;
  margin: 13px 0 0;
  color: #5b6067;
  font-family: Muli, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.45;
  font-weight: 500;
}

.agpd-map-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  gap: 12px;
  min-height: 44px;
  margin-top: 17px;
  padding: 0 21px;
  border: 1px solid var(--e-global-color-primary, #e89a0c);
  border-radius: 6px;
  color: #fff !important;
  background: var(--e-global-color-primary, #e89a0c);
  box-shadow: 0 7px 18px rgba(194,124,12,.11);
  font-family: Quicksand, Arial, sans-serif;
  font-size: 12px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .02em;
  text-decoration: none !important;
  transition: transform .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.agpd-map-button:hover,
.agpd-map-button:focus-visible {
  color: #fff !important;
  background: #c98208;
  border-color: #c98208;
  box-shadow: 0 9px 22px rgba(194,124,12,.17);
  transform: translateY(-1px);
}

.agpd-map-button-arrow {
  font-size: 17px;
  line-height: 1;
  transform: translateY(-.5px);
}

.agpd-city-proof {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 28px;
  margin-top: 18px;
}

.agpd-city-proof-images { display: flex; align-items: center; padding-left: 2px; }

.agpd-city-proof-images > span {
  position: relative;
  display: block;
  width: 26px;
  height: 26px;
  margin-left: -7px;
  border: 2px solid #fff;
  border-radius: 50%;
  overflow: hidden;
  background: #f3f3f3;
  box-shadow: 0 2px 7px rgba(0,0,0,.10);
}

.agpd-city-proof-images > span:first-child { margin-left: 0; }
.agpd-city-proof-images img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }

.agpd-city-proof-text {
  color: #6c7178;
  font-family: Muli, Arial, sans-serif;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 600;
  white-space: nowrap;
}

/* Carousel column shares exactly the same row height as the editorial panel. */
.agpd-carousel-column {
  min-width: 0;
  width: 100%;
  height: var(--agpd-row-height);
  margin: 0;
  overflow: hidden;
}

.agpd-carousel-shell {
  position: relative;
  width: 100%;
  height: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* Remove the Fioxen global “peek at neighbouring slide” margins/padding. */
.agpd-carousel-shell .swiper-content-inner {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.agpd-swiper {
  width: 100% !important;
  max-width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.agpd-swiper .swiper-wrapper { height: 100%; align-items: stretch; }

.agpd-swiper .swiper-slide {
  height: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  overflow: hidden !important;
}

.agpd-swiper .swiper-slide > .item,
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item,
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content {
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
}

/* Real Fioxen Style III card, only fitted to the premium geometry. */
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content {
  margin: 0 !important;
  border: 1px solid rgba(18, 22, 30, 0.08);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(20,24,31,.055);
  transition: box-shadow .26s ease, border-color .26s ease;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-image {
  position: relative;
  width: 100%;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-image::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(12, 16, 24, 0.76) 0%, rgba(12, 16, 24, 0.58) 18%, rgba(12, 16, 24, 0.34) 34%, rgba(12, 16, 24, 0.14) 46%, rgba(12, 16, 24, 0.03) 56%, rgba(12, 16, 24, 0.00) 62%);
  pointer-events: none;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--agpd-focus-x, 50%) var(--agpd-focus-y, 34%);
  transform: none !important;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-content {
  z-index: 2;
  left: 18px;
  right: 18px;
  padding: 16px 16px;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-content .subtitle {
  padding-left: 25px;
  font-size: 14px;
  line-height: 1.25;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-content .subtitle::before { width: 16px; }

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-content .title {
  max-width: calc(100% - 78px);
  font-size: 20px;
  line-height: 1.17;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Preserve the exact Fioxen orange. Only typography/size is quieted slightly. */
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .number-listings {
  width: 48px;
  height: 48px;
  right: 9px !important;
  line-height: 48px;
  margin-top: -24px;
  font-size: 18px !important;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content:hover .banner-image img,
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content:focus .banner-image img,
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content.banner-active .banner-image img {
  transform: none !important;
}

.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content:hover,
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content:focus-within,
.agpd-style4-carousel.gsc-listings-banner-group.style-3 .listings-banner-item-content.banner-active {
  border-color: rgba(232, 154, 12, 0.34);
  box-shadow: 0 8px 22px rgba(20,24,31,.09);
}

.agpd-style4-carousel .swiper-nav-next,
.agpd-style4-carousel .swiper-nav-prev { display: none !important; }

/* Elementor editor fallback before Gavias/Swiper finishes re-initialising. */
.elementor-editor-active .agpd-swiper:not(.swiper-initialized) { height: calc(100% - 0px) !important; }
.elementor-editor-active .agpd-swiper:not(.swiper-initialized) .swiper-wrapper {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  height: 100%;
  transform: none !important;
}
.elementor-editor-active .agpd-swiper:not(.swiper-initialized) .swiper-slide {
  width: auto !important;
  height: 100% !important;
}

@media (max-width: 1439px) {
  .agpd-inner {
    --agpd-row-height: 330px;
    padding-left: 42px;
    padding-right: 42px;
    grid-template-columns: minmax(285px, 305px) minmax(0, 1fr);
    gap: 20px;
  }
  .agpd-editorial { max-width: 305px; }
  .agpd-heading { max-width: 305px; font-size: clamp(36px, 2.48vw, 42px); }
}

@media (max-width: 1199px) {
  .agpd-inner {
    --agpd-row-height: 320px;
    padding-left: 34px;
    padding-right: 34px;
    grid-template-columns: minmax(270px, 290px) minmax(0, 1fr);
    gap: 18px;
  }
  .agpd-heading { font-size: 38px; }
}

@media (max-width: 1023px) {
  .agpd-inner {
    display: block;
    width: 100%;
    max-width: 960px;
    min-height: 0;
    padding-left: 18px;
    padding-right: 18px;
  }
  .agpd-editorial {
    max-width: 700px;
    min-height: 0;
    padding: 16px 0 16px;
    display: block;
  }
  .agpd-heading { max-width: 620px; font-size: 40px; }
  .agpd-description { max-width: 540px; }
  .agpd-carousel-column { height: 360px; }
  .agpd-city-proof { margin-top: 17px; }
}

@media (max-width: 767px) {
  .agpd-inner { width: 100%; max-width: 680px; padding-left: 10px; padding-right: 10px; }
  .agpd-editorial { padding: 14px 0 14px; }
  .agpd-eyebrow { margin-bottom: 10px; font-size: 10.5px; }
  .agpd-heading { font-size: clamp(32px, 9.4vw, 39px); }
  .agpd-description { margin-top: 11px; font-size: 13.5px; }
  .agpd-map-button { min-height: 42px; margin-top: 14px; padding: 0 17px; }
  .agpd-city-proof { margin-top: 15px; }
  .agpd-city-proof-images > span { width: 25px; height: 25px; }
  .agpd-city-proof-text { font-size: 11.5px; }
  .agpd-carousel-column { height: 405px; }
  .agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-content {
    left: 22px;
    right: 22px;
    padding: 16px 16px;
  }
  .agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-content .subtitle { font-size: 15px; }
  .agpd-style4-carousel.gsc-listings-banner-group.style-3 .banner-content .title { font-size: 21px; }
}

@media (prefers-reduced-motion: reduce) {
  .agpd-map-button { transition: none !important; }
}
