/* Photograph fit only. Existing components own their frame sizes except country tiles,


   breakpoints, corner shapes, backgrounds and slider layout.


   A complete photograph is scaled proportionally inside its existing frame;


   any remaining space uses the component's existing background. */


main :is(


  .hotel__slider .swiper-slide img,


  .room__slider .swiper-slide img,


  .room-card__image img,


  .room-card__image-wrap.swiper .swiper-slide img,


  .imported-hotel__rooms .room-card__image img,


  .hotel__activities-images img,


  .imported-hotel__photos img,


  .hotel__map img,


  .hotel__cta-photo img,


  .villa-card__img img,


  .catalog-v2 .villa-card__img img,


  .hc-card img,


  .hcat .hc-card__media img,


  .card__image img,


  .guide__item img,


  .str-tile img,


  .pc__tile img,


  .tr-hero > img,


  .tr-hero > picture > img,


  .tr-spec__img img,


  .tr-help__photo img,


  .home-hero__media img,


  .home-hero__swiper .swiper-slide img,


  .hero__image img,


  .promo__bg img,


  .villas__bg img,


  .bj__imgs img,


  .bj-tour__bg img,


  .adv__card--photo img,


  .art-card__img img,


  .article__cover img,


  .article__imgs img,


  .page-hero__bg img,


  .team__photo img,


  .ab-form__right img,


  .abh__bg img,


  .abo__media img,


  .abo__feat--photo img,


  .awards__big img,


  .awards__cell img,


  .vben__card img,


  .feat__img img,


  .plane__img img,


  .ucta__bg img,


  .err404__img img,


  .tg__right img,


  .cta-telegram__image img,


  .blackjet-hero__image,


  .blackjet-experience img,


  .blackjet-offer > a img,


  .cc-hero__art img


) {


  object-fit: contain !important;


  object-position: center !important;


}





/* The existing About photo rules already contain the full photograph and


   position it independently. Keep that positioning, logos, QR images, maps in


   iframes and non-photographic decoration outside this override. */





/* Disable only photo zoom: zooming inside an overflow-hidden card would cut


   off the edges again. Swiper wrapper/slide transforms remain unchanged. */


main :is(


  .pc__tile,


  .str-tile,


  .hc-card,


  .tr-spec__img,


  .art-card__img,


  .villa-card__img,


  .card__image,


  .guide__item


) img {


  transform: none !important;


}





/* Optional generated variants occupy the same card frame as the original img.


   Never change the card's height or aspect ratio to match a generated file. */


main .villa-card__img > .elite-card-photo {


  display: block;


  width: 100%;


  height: 100%;


}





main .villa-card__img > .elite-card-photo > img {


  display: block;


  width: 100% !important;


  height: 100% !important;


}





/* Equal country card frames. Photograph dimensions must never change the


   columns or row height. Contain preserves every edge of the original photo. */


main .pc .pc__grid {


  display: grid !important;


  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;


  grid-auto-rows: auto !important;


  gap: 20px !important;


  align-items: stretch;


}


main .pc .pc__tile {


  position: relative;


  grid-column: auto !important;


  width: 100% !important;


  max-width: 100%;


  min-width: 0;


  height: auto !important;


  aspect-ratio: 4 / 3 !important;


  align-self: stretch;


  box-sizing: border-box;


  overflow: hidden;


  background: #f4eee6;


}


main .pc .pc__tile img {


  position: absolute;


  inset: 0;


  display: block;


  width: 100% !important;


  height: 100% !important;


  object-fit: contain !important;


  object-position: center !important;


}


main .pc .pc__label {


  color: #000 !important;


}


main .pc :is(.pc__label-name, .pc__label-price, .pc__label-trip, .pc__label-meal) {


  color: #000 !important;


}


@media (min-width: 768px) and (max-width: 1023px) {


  main .pc .pc__grid {


    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;


  }


}


@media (max-width: 767px) {


  main .pc .pc__grid {


    grid-template-columns: minmax(0, 1fr) !important;


    gap: 12px !important;


  }


}








/* Reviewed full-frame Turkey card photographs use one ratio at every width.


   Scope to this catalog so the homepage and other countries keep their frames. */


main #country-hotels-grid.catalog-v2 > .villa-card[data-country="Турция"] > .villa-card__img {


  position: relative;


  display: block;


  height: auto !important;


  aspect-ratio: 5 / 4 !important;


  flex: 0 0 auto;


  overflow: hidden;


}


main #country-hotels-grid.catalog-v2 > .villa-card[data-country="Турция"] > .villa-card__img > .elite-card-photo {


  position: absolute;


  inset: 0;


  display: block;


  width: 100%;


  height: 100%;


}






































/* Complete photographs: stable frames match reviewed source proportions. */


main #country-hotels-grid.catalog-v2 > .villa-card > .villa-card__img {


  position: relative; display: block; height: auto !important;


  aspect-ratio: 3 / 2 !important; flex: 0 0 auto; overflow: hidden;


}


main #country-hotels-grid.catalog-v2 > .villa-card[data-country="Турция"] > .villa-card__img { aspect-ratio: 5 / 4 !important; }


main #country-hotels-grid.catalog-v2 > .villa-card:is([data-country="Египет"],[data-country="Сейшелы"],[data-country="Бали"],[data-country="Индонезия"]) > .villa-card__img { aspect-ratio: 830 / 604 !important; }


main #country-hotels-grid.catalog-v2 > .villa-card > .villa-card__img > .elite-card-photo { position: absolute; inset: 0; width: 100%; height: 100%; }


main #country-hotels-grid.catalog-v2 > .villa-card > .villa-card__img img {


  display: block; width: 100% !important; height: 100% !important;


  object-fit: fill !important; transform: none !important;


}


/* Image and frame ratios are checked within 0.5%; fill only absorbs rounding. */


main .tr-hero.country-tour-hero {


  height: auto !important; min-height: 0 !important;


  max-height: none !important; aspect-ratio: auto !important;


}


main .tr-hero.country-tour-hero > picture { display: block; height: auto !important; }


main .tr-hero.country-tour-hero > picture > img,


main .tr-hero.country-tour-hero > img {


  display: block; position: static; width: 100% !important; height: auto !important;


  object-fit: contain !important;


}




/* Preserve the established desktop banner height; full-frame images must not

   dictate section height. Mobile retains its dedicated compact composition. */

@media (min-width:768px) {

  main .tr-hero.country-tour-hero { height: min(34.375vw, 660px) !important; min-height: 0 !important; max-height: 660px !important; aspect-ratio: auto !important; }

  main .tr-hero.country-tour-hero > picture,

  main .tr-hero.country-tour-hero > picture > img,

  main .tr-hero.country-tour-hero > img { width:100% !important; height:100% !important; }

}


/* Desktop country banners follow the live site's established cover treatment.
   Full-frame outpainting applies to hotel cards, not banner section sizing. */
@media (min-width:768px) {
  main .tr-hero.country-tour-hero > picture > img,
  main .tr-hero.country-tour-hero > img { object-fit: cover !important; }
}

@media (min-width:768px) {
 main .tr-hero.country-tour-hero > picture > img[src],
 main .tr-hero.country-tour-hero > img[src] { object-fit: cover !important; }
}

/* Art-directed photos participate in the existing grid without a new box. */
main picture.elite-frame-photo { display: contents; }
main source.elite-frame-photo-source { display: none !important; }
/* This reviewed outpaint needs a 0.65% trim of generated outer scenery only. */
main .tr-spec__img img[data-elite-frame-photo][src$="tile-oae-1p455-55c814.webp"] { object-fit: cover !important; }

/* Banner art direction preserves existing frame heights and original fallbacks. */
@media (max-width:767px) {
main .blackjet-hero img[data-elite-frame-photo][src][alt],
main .page-hero__bg img[data-elite-frame-photo][src][alt],
main .villas__bg img[data-elite-frame-photo][src][alt] { object-fit: cover !important; }
}

/* Reviewed desktop banner derivatives; existing frames and mobile sources retained. */
@media (min-width:1600px) {
  main .villas__bg img[data-elite-frame-photo][src*="/villas-banner."] { object-fit: cover !important; object-position: 50% 77% !important; }
  main .page-hero__bg img[data-elite-frame-photo][src*="/hero-slide-1."] { object-fit: cover !important; object-position: 50% 70% !important; }
  main .blackjet-hero img[data-elite-frame-photo][src*="/bj-turkey."] { object-fit: cover !important; object-position: 50% 60% !important; }
  main .blackjet-hero img[data-elite-frame-photo][src*="/bj-maldives."] { object-fit: contain !important; object-position: 50% 50% !important; }
}

/* Preserve the original 1920:660 home frame; only generated outer scenery may crop. */
@media (min-width:1600px) {
  main .home-hero__media img[data-elite-frame-photo][src*="/home-banner."] { width:100% !important; height:auto !important; max-height:660px !important; aspect-ratio:1920 / 660 !important; object-fit:cover !important; object-position:50% 50% !important; }
}


/* 2026-10-24: retain the real portrait only. Its intrinsic dimensions set
   the photo card height, rather than filling a mismatched frame with AI logos.
   Native mobile picture sources, CTA styling and all original media survive. */
body.elite-type-standard main :is(.adv__card--photo,.abo__feat--photo):has(
 img:is([src*="/home/adv-manager"],[data-src*="/home/adv-manager"])
){
 display:block!important;height:auto!important;min-height:0!important;
 max-height:none!important;aspect-ratio:auto!important;align-self:start!important;
}
body.elite-type-standard main :is(.adv__card--photo,.abo__feat--photo):has(
 img:is([src*="/home/adv-manager"],[data-src*="/home/adv-manager"])
) picture{
 display:block!important;position:static!important;inset:auto!important;
 width:100%!important;height:auto!important;
}
body.elite-type-standard main :is(.adv__card--photo,.abo__feat--photo)
 img:is([src*="/home/adv-manager"],[data-src*="/home/adv-manager"]){
 position:static!important;inset:auto!important;display:block!important;
 width:100%!important;height:auto!important;max-width:100%!important;
 max-height:none!important;aspect-ratio:auto!important;object-fit:contain!important;
 background:none!important;
}

/* Keep the existing CTA over the photograph while its natural height owns the card. */
body.elite-type-standard main :is(.adv__card--photo,.abo__feat--photo):has(
 img:is([src*="/home/adv-manager"],[data-src*="/home/adv-manager"])
) :is(.adv__btn,.abo__featbtn){
 position:absolute!important;left:50%!important;right:auto!important;
 bottom:12px!important;top:auto!important;transform:translateX(-50%)!important;
 margin:0!important;z-index:2;width:max-content!important;
 max-width:calc(100% - 24px)!important;white-space:nowrap!important;
}

/* Black Jet photo completion 2026-10-27.
   Four separate ImageGen files; original gallery/source assets remain unchanged.
   Both desktop panoramas are3:1. Preserve the existing overlay/text/fonts/CTA. */
@media (min-width:768px) {
  main.blackjet-page .blackjet-hero {
    height:auto !important;
    min-height:530px !important;
    max-height:none !important;
    aspect-ratio:3 / 1 !important;
  }
  /* At768px the centered1049px source strip includes the entire reviewed
     Turkey villa/pool/hammock core; only generated scenery is removed. */
  main.blackjet-page .blackjet-hero img.blackjet-hero__image[data-elite-frame-photo][src*="/bj-turkey."] {
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:50% 50% !important;
  }
}
@media (min-width:1024px) {
  /* New Maldives panorama: crop only the generated right-hand ocean when the
     existing 530px content minimum makes the frame narrower than 3:1. */
  main.blackjet-page .blackjet-hero img.blackjet-hero__image[data-elite-frame-photo][src*="/bj-maldives."] {
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:0% 50% !important;
  }
}
@media (min-width:768px) and (max-width:1023px) {
  /* Keep the complete native original at its own ratio in the narrow desktop
     fallback. No panel, font, padding or content layout changes are needed. */
  main.blackjet-page .blackjet-hero:has(img.blackjet-hero__image[src*="/bj-maldives."]) {
    aspect-ratio:1000 / 700 !important;
  }
}
/* Subject core is inside the central~74%of each1.8:1file.
   Existing1.55:1desktop frames trim only added left/right surroundings.
   Mobile <=767px retains its reviewed portrait hero and native page layout. */
main.blackjet-page .blackjet-experience img[data-elite-frame-photo][src] {
  object-fit:cover !important;
  object-position:50% 50% !important;
}

/* Complete hotel and room photographs keep their own proportions. */
main.hotel .hotel__swiper,
main.room .room__swiper {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
}

main.hotel .hotel__slider .swiper-slide,
main.room .room__slider .swiper-slide,
main.hotel .room-card__image-wrap.swiper .swiper-slide {
  height: auto !important;
  min-height: 0 !important;
  align-self: flex-start;
}

main.hotel .hotel__slider .swiper-wrapper,
main.room .room__slider .swiper-wrapper,
main.hotel .room-card__image.swiper-wrapper {
  align-items: flex-start;
  min-height: 0 !important;
  /* The existing Swiper instance owns its active-slide height and transform. */
}

main.hotel .hotel__slider .swiper-slide img,
main.room .room__slider .swiper-slide img,
main.hotel .room-card__image img,
main.hotel .room-card__image-wrap.swiper .swiper-slide img {
  display: block;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: contain !important;
}

/* Room copy must not stretch the photograph to the text column's height. */
main.hotel .room-card__image-wrap,
main.hotel .room-card__image:not(.swiper-wrapper) {
  height: auto !important;
  min-height: 0 !important;
  align-self: start;
  aspect-ratio: auto !important;
}

main.hotel .room-card__image.swiper-wrapper {
  height: auto;
  align-self: start;
  aspect-ratio: auto !important;
}

main.hotel .room-card__image:not(.swiper-wrapper) {
  align-items: flex-start;
}

/* A genuinely square/portrait original remains complete and compact. The image
   owns this smaller frame; no enlarged landscape contain-box is created. */
main.hotel .hotel__slider .swiper-slide img[data-elite-photo-shape="compact"],
main.room .room__slider .swiper-slide img[data-elite-photo-shape="compact"],
main.hotel .room-card__image img[data-elite-photo-shape="compact"],
main.hotel .room-card__image-wrap.swiper .swiper-slide img[data-elite-photo-shape="compact"] {
  width: auto !important;
  max-width: 100% !important;
  max-height: 680px !important;
  max-height: min(75vh, 680px) !important;
  max-height: min(75svh, 680px) !important;
  margin-inline: auto;
}

/* Explicit width prevents aspect-ratio and the content minimum from widening the hero. */
@media(min-width:768px){main.blackjet-page .blackjet-hero{width:100%!important;min-width:0!important}}
/* The existing help illustration shares the form's rounded frame on wide rows. */
@media (min-width:901px) {
  body.elite-type-standard main .tr-help__photo > img[src*="/images/turcia/help."] {
    display:block;
    object-fit:cover!important;
    object-position:50% 50%!important;
  }
}
/* Once stacked, keep the complete illustration in a frame with its native ratio. */
@media (max-width:900px) {
  body.elite-type-standard main .tr-help__photo:has(> img[src*="/images/turcia/help."]) {
    min-height:0!important;
    height:auto!important;
    aspect-ratio:850 / 600!important;
    align-self:start;
  }
  body.elite-type-standard main .tr-help__photo > img[src*="/images/turcia/help."] {
    display:block;
    height:auto!important;
    object-fit:contain!important;
  }
}

/* User-supplied manager portraits retain the existing help and request frames. */
body.elite-type-standard main .tr-help__photo > img[data-manager-photo] {
  display:block;
  object-fit:contain!important;
  object-position:center!important;
}
@media (max-width:900px) {
  body.elite-type-standard main .tr-help__photo:has(> img[data-manager-photo][data-manager-frame="legacy-help"]) {
    min-height:0!important;
    height:auto!important;
    aspect-ratio:850 / 600!important;
    align-self:start;
  }
  body.elite-type-standard main .tr-help__photo > img[data-manager-photo][data-manager-frame="legacy-help"] {
    display:block;
    height:auto!important;
    object-fit:contain!important;
  }
}
main.blackjet-page--maldives .blackjet-request__visual:has(> img[data-manager-photo]) {
  background:#f1ebe3;
}
main.blackjet-page--maldives .blackjet-request__plane[data-manager-photo] {
  object-fit:contain!important;
  object-position:center!important;
}
