/* Apartment presentation only. Existing booking/calendar form styling remains in cssBooking.css. */
.ferienhof-apartment-list-simple { --ferienhof-line: rgba(0,0,0,.12); }
.ferienhof-apartment-card-simple { border-bottom: 1px solid var(--ferienhof-line) !important; background: transparent; }
.ferienhof-apartment-card-simple .ferienhof-apartment-image-wrap { min-height: 360px; }
.ferienhof-apartment-card-simple .ferienhof-apartment-image img { transition: transform .55s ease; }
.ferienhof-apartment-card-simple:hover .ferienhof-apartment-image img { transform: scale(1.025); }
.ferienhof-apartment-title { font-weight: 500; letter-spacing: -.02em; }
.ferienhof-apartment-price strong { font-weight: 500; }
.ferienhof-apartment-price-prefix { text-transform: uppercase; letter-spacing: .08em; }
.ferienhof-apartment-meta-item + .ferienhof-apartment-meta-item::before { content: "·"; margin-right: 1rem; color: currentColor; }


.ferienhof-apartment-slider-shell {
  --ferienhof-slider-soft: #f7f4ee;
  --ferienhof-slider-text: #1d1d1d;
  --ferienhof-slider-accent: #c98978;
  padding-inline: clamp(3rem, 6vw, 6.5rem);
}
.ferienhof-apartment-slider-alloggio { padding: 0 0 3.5rem; }
.ferienhof-apartment-slider-alloggio .swiper-slide { height: auto; }
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-image {
  aspect-ratio: 4 / 3;
  min-height: 0;
  background: #eee;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .7s ease;
}
.ferienhof-apartment-slider-alloggio .swiper-slide:hover .ferienhof-apartment-slide-image img { transform: scale(1.025); }
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-content {
  flex: 1 1 auto;
  width: calc(100% - clamp(1.25rem, 3vw, 3rem));
  margin-top: 0;
  padding: clamp(1.6rem, 2.6vw, 2.75rem);
  background: var(--ferienhof-slider-soft);
  color: var(--ferienhof-slider-text);
  box-shadow: none;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-heading { margin-bottom: 1.25rem; }
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-title {
  margin: 0;
  font-size: clamp(1.55rem, 2vw, 2.15rem);
  font-weight: 400;
  line-height: 1.12;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-price .ferienhof-apartment-price {
  justify-content: flex-start;
  white-space: nowrap;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-price .ferienhof-apartment-price-prefix,
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-price .ferienhof-apartment-price-suffix {
  color: var(--ferienhof-slider-accent) !important;
  text-transform: none;
  letter-spacing: 0;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-price .ferienhof-apartment-price strong {
  color: var(--ferienhof-slider-text);
  font-size: clamp(1.35rem, 1.7vw, 1.9rem) !important;
  font-weight: 400;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-meta {
  color: var(--ferienhof-slider-accent) !important;
  column-gap: .65rem !important;
  row-gap: .2rem !important;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-meta strong { color: inherit !important; font-weight: 400; }
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-meta-item + .ferienhof-apartment-meta-item::before {
  content: "/";
  margin-right: .65rem;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-teaser {
  max-width: 38rem;
  color: rgba(29,29,29,.62);
  font-size: 1rem;
  line-height: 1.75;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-link-wrap { margin-top: clamp(1.75rem, 3vw, 3rem); }
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-link {
  color: var(--ferienhof-slider-text);
  font-size: .78rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.ferienhof-apartment-slider-alloggio .ferienhof-apartment-link:hover { color: var(--ferienhof-slider-accent); }
.ferienhof-apartment-slider-shell > .swiper-button-prev,
.ferienhof-apartment-slider-shell > .swiper-button-next {
  color: #111;
  background: transparent;
  width: 52px;
  height: 72px;
  margin-top: -36px;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
.ferienhof-apartment-slider-shell > .swiper-button-prev { left: .2rem; }
.ferienhof-apartment-slider-shell > .swiper-button-next { right: .2rem; }
.ferienhof-apartment-slider-shell > .swiper-button-prev::after,
.ferienhof-apartment-slider-shell > .swiper-button-next::after {
  content: "";
  width: 24px;
  height: 24px;
  border-top: 1.5px solid currentColor;
  border-right: 1.5px solid currentColor;
}
.ferienhof-apartment-slider-shell > .swiper-button-prev::after { transform: rotate(-135deg); }
.ferienhof-apartment-slider-shell > .swiper-button-next::after { transform: rotate(45deg); }
.ferienhof-apartment-slider-shell > .swiper-button-prev:hover,
.ferienhof-apartment-slider-shell > .swiper-button-next:hover { color: var(--ferienhof-slider-accent); }
.ferienhof-apartment-slider-alloggio .swiper-pagination { bottom: 0; }

/* Detail layout inspired by the visual hierarchy of the Alloggio room detail, while keeping IL Booking's existing functions. */
.ferienhof-apartment-detail-alloggio { --ferienhof-detail-line: rgba(0,0,0,.13); --ferienhof-detail-soft: #f7f5f1; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-grid {
  display: grid;
  grid-template-columns: minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);
  grid-template-rows: repeat(2,minmax(230px,1fr));
  gap: .5rem;
  min-height: clamp(500px,58vw,720px);
}
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-main { grid-column: 1; grid-row: 1 / 3; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb-1 { grid-column: 2 / 4; grid-row: 1; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb-2 { grid-column: 2; grid-row: 2; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb-3 { grid-column: 3; grid-row: 2; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb:nth-of-type(n+5) { display: none; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-grid img { transition: transform .65s ease; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-grid figure:hover img { transform: scale(1.025); }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-main-image img { min-height: 420px; max-height: 720px; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-detail-header { padding-bottom: 2rem; border-bottom: 1px solid var(--ferienhof-detail-line); }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-section { padding-top: .5rem; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-section-title { font-size: 1.55rem; font-weight: 500; letter-spacing: -.015em; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-description-text { font-size: 1.05rem; line-height: 1.8; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-feature-mark { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,.16); border-radius: 50%; flex: 0 0 30px; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-reservation-card { top: 2rem; background: var(--ferienhof-detail-soft); border: 1px solid rgba(0,0,0,.06); }
.ferienhof-apartment-detail-alloggio .ferienhof-season-price-row { transition: background-color .2s ease; }
.ferienhof-apartment-detail-alloggio .ferienhof-season-price-row:hover { background: rgba(0,0,0,.018); }
.ferienhof-apartment-detail-alloggio .ferienhof-season-title { font-size: 1.05rem; }
.ferienhof-apartment-detail-alloggio .ferienhof-season-longstay { border-color: rgba(0,0,0,.14) !important; }
.ferienhof-apartment-detail-alloggio .ferienhof-booking-calendar,
.ferienhof-apartment-detail-alloggio .ferienhof-booking-form { width: 100%; }
.ferienhof-apartment-detail-alloggio .ferienhof-apartment-booking-area { border-top: 1px solid var(--ferienhof-detail-line); }

@media (max-width: 991.98px) {
  .ferienhof-apartment-card-simple .ferienhof-apartment-image-wrap { min-height: 300px; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-grid {
    grid-template-columns: 2fr 1fr;
    grid-template-rows: repeat(2,minmax(220px,1fr));
    min-height: 520px;
  }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-main { grid-column: 1; grid-row: 1 / 3; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb-1 { grid-column: 2; grid-row: 1; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb-2 { grid-column: 2; grid-row: 2; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb-3 { display: none; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-reservation-card { position: static !important; }
}

@media (max-width: 767.98px) {
  .ferienhof-apartment-slider-shell { padding-inline: 2.5rem; }
  .ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-content {
    width: calc(100% - 1rem);
    padding: 1.5rem;
  }
  .ferienhof-apartment-slider-alloggio .ferienhof-apartment-slide-heading { gap: 1rem !important; }
  .ferienhof-apartment-slider-shell > .swiper-button-prev { left: -.35rem; }
  .ferienhof-apartment-slider-shell > .swiper-button-next { right: -.35rem; }
}
@media (max-width: 575.98px) {
  .ferienhof-apartment-card-simple .ferienhof-apartment-image-wrap { min-height: 250px; }
  .ferienhof-apartment-meta-item + .ferienhof-apartment-meta-item::before { margin-right: .65rem; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-grid { display: block; min-height: 0; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-main { height: 360px; }
  .ferienhof-apartment-detail-alloggio .ferienhof-apartment-gallery-thumb { display: none; }
}

.ferienhof-apartment-feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.85rem;
    min-width: 1.85rem;
    height: 1.85rem;
    font-size: 1.55rem;
    line-height: 1;
}
.ferienhof-apartment-feature-icon .icon {
    width: 1.55rem;
    height: 1.55rem;
}

/* Apartment feature icons: keep uploaded/icon-set images aligned with CSS icons. */
.ferienhof-apartment-feature-icon img {
    display: block;
    width: 1.75rem;
    height: 1.75rem;
    object-fit: contain;
}
