/*
 * CF Homes 2.9.29 – gemeinsames Kartendesign
 * Einheitliche Grundoptik fuer eigene CF-Homes-Kacheln. Modulspezifische
 * Inhalte/Badges/Statusfunktionen bleiben bewusst erhalten.
 */
:root{
  --cfh-card-accent:#087f9a;
  --cfh-card-cyan:#0b9fc0;
  --cfh-card-navy:#0d2747;
  --cfh-card-muted:#5d7084;
  --cfh-card-border:#d9e5ea;
  --cfh-card-media:#dff6f8;
  --cfh-card-radius:8px;
  --cfh-card-shadow:0 4px 13px rgba(12,47,70,.09);
  --cfh-card-shadow-hover:0 7px 19px rgba(12,47,70,.12);
}

/* Gemeinsamer Kartenrahmen */
.cf-home-card,
.cf-travel-card,
.cfr-widget .cfr-card,
.cf-act .cf-act-card,
.cfv-wrap .cfv-card{
  border:1px solid var(--cfh-card-border)!important;
  border-radius:var(--cfh-card-radius)!important;
  background:#fff!important;
  box-shadow:var(--cfh-card-shadow)!important;
  overflow:hidden!important;
  transform:none!important;
  transition:box-shadow .18s ease!important;
}
.cf-home-card:hover,
.cf-travel-card:hover,
.cf-travel-card:focus-within,
.cfr-widget .cfr-card:hover,
.cfr-widget .cfr-card:focus-within,
.cf-act .cf-act-card:hover,
.cfv-wrap .cfv-card:hover,
.cfv-wrap .cfv-card:focus-within{
  transform:none!important;
  box-shadow:var(--cfh-card-shadow-hover)!important;
}

/* Einheitliches Medienformat */
.cf-home-card-image,
.cf-travel-card .cf-card-visual,
.cfr-widget .cfr-hero,
.cf-act .cf-act-card-media,
.cfv-wrap .cfv-visual{
  position:relative!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1.62 / 1!important;
  overflow:hidden!important;
  flex:0 0 auto!important;
}
/* Wichtig: Bildquelle/Fallback niemals global ueberschreiben.
 * Module duerfen background-image, Standardbilder und eigene Platzhalter selbst setzen. */
.cf-home-card-image img,
.cf-travel-card .cf-card-visual img,
.cfr-widget .cfr-hero>img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  transform:none!important;
  transition:none!important;
}

/* Ruhiger, identischer Inhaltsbereich */
.cf-home-card-body,
.cf-travel-card .cf-card-body,
.cfr-widget .cfr-body,
.cf-act .cf-act-card-body,
.cfv-wrap .cfv-body{
  background:#fff!important;
  color:var(--cfh-card-navy)!important;
  text-align:left!important;
}
.cf-home-card-body h3,
.cf-travel-card .cf-card-body h3,
.cfr-widget .cfr-hero-title h3,
.cf-act .cf-act-card-body strong,
.cfv-wrap .cfv-title{
  color:var(--cfh-card-accent)!important;
  font-family:inherit!important;
  font-weight:800!important;
  letter-spacing:0!important;
  overflow-wrap:anywhere!important;
}
.cf-home-card-body p,
.cf-travel-card .cf-card-body p,
.cfr-widget .cfr-body p,
.cf-act .cf-act-card-description,
.cfv-wrap .cfv-meta{
  color:var(--cfh-card-muted)!important;
}

/* Startseite / Reiseziele / Aktivitäten: gleicher kompakter Infobereich */
.cf-home-card-body,
.cf-travel-card .cf-card-body,
.cf-act .cf-act-card-body{
  min-height:104px!important;
}
.cf-home-card-body h3,
.cf-travel-card .cf-card-body h3,
.cf-act .cf-act-card-body strong{
  font-size:1.02rem!important;
  line-height:1.2!important;
  margin-top:0!important;
}
.cf-home-card-body p,
.cf-travel-card .cf-card-body p,
.cf-act .cf-act-card-description{
  font-size:.79rem!important;
  line-height:1.38!important;
}

/* Einheitliche runde Weiter-Pfeile dort, wo die Karte wirklich klickbar ist. */
.cf-home-card-arrow,
.cf-travel-card .cf-card-cta,
.cf-act .cf-act-card-arrow,
.cfv-wrap .cfv-more{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  min-height:30px!important;
  border:1.7px solid var(--cfh-card-cyan)!important;
  border-radius:50%!important;
  background:#fff!important;
  color:var(--cfh-card-cyan)!important;
  box-shadow:none!important;
  transform:none!important;
}
.cf-home-card-link:hover .cf-home-card-arrow,
.cf-home-card-link:focus .cf-home-card-arrow,
.cf-travel-card .cf-card-link:hover .cf-card-cta,
.cf-travel-card .cf-card-link:focus .cf-card-cta,
.cf-act .cf-act-card:hover .cf-act-card-arrow,
.cfv-wrap .cfv-more:hover,
.cfv-wrap .cfv-more:focus{
  background:var(--cfh-card-cyan)!important;
  border-color:var(--cfh-card-cyan)!important;
  color:#fff!important;
}

/* Veranstaltungen: dieselbe grosse Bild-/Illustrationsflaeche wie die anderen Karten. */
.cfv-wrap .cfv-visual{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.cfv-wrap .cfv-event-icon-shell{
  width:auto!important;
  height:auto!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.cfv-wrap .cfv-event-illustration{
  width:54px!important;
  height:54px!important;
}
.cfv-wrap .cfv-body{
  min-height:118px!important;
  padding:13px 13px 14px!important;
}
.cfv-wrap .cfv-title{
  margin:0 40px 8px 0!important;
  font-size:1.02rem!important;
  line-height:1.2!important;
}
.cfv-wrap .cfv-meta{
  font-size:.8rem!important;
  line-height:1.34!important;
}
.cfv-wrap .cfv-more{
  right:11px!important;
  bottom:13px!important;
}

/* Restaurants: Grundform identisch, redaktionelle Extras bleiben komplett erhalten. */
.cfr-widget .cfr-grid{gap:14px!important}
.cfr-widget .cfr-body{
  padding:13px 13px 14px!important;
  min-height:128px!important;
}
.cfr-widget .cfr-hero-title h3{
  margin:0 0 5px!important;
  font-size:1.08rem!important;
  line-height:1.2!important;
}
.cfr-widget .cfr-hero-title p,
.cfr-widget .cfr-description,
.cfr-widget .cfr-source-cuisine,
.cfr-widget .cfr-notes,
.cfr-widget .cfr-address-block p{
  color:var(--cfh-card-muted)!important;
}
.cfr-widget .cfr-cuisine-title,
.cfr-widget .cfr-links a,
.cfr-widget .cfr-map-buttons a{
  color:var(--cfh-card-accent)!important;
}
.cfr-widget .cfr-tags span{
  background:#e9f8fc!important;
  border:1px solid #ccecf4!important;
  color:var(--cfh-card-accent)!important;
}
.cfr-widget .cfr-address-block{border-color:var(--cfh-card-border)!important}

/* Reiseziele: Zusatz-Navigationsbuttons bleiben, aber passen farblich zum System. */
.cf-travel-card .cf-card-map-actions a{
  border-color:#cfe8ef!important;
  color:var(--cfh-card-accent)!important;
  background:#fff!important;
}
.cf-travel-card .cf-type-badge{
  background:#e9f8fc!important;
  border-color:#ccecf4!important;
  color:var(--cfh-card-accent)!important;
}

/* Kein Hochspringen oder Bildverschieben bei Hover in irgendeinem CF-Homes-Kartentyp. */
.cf-home-card *,
.cf-travel-card *,
.cfr-widget .cfr-card *,
.cf-act .cf-act-card *,
.cfv-wrap .cfv-card *{
  transform-origin:center!important;
}
.cf-home-card img:hover,
.cf-travel-card img:hover,
.cfr-widget .cfr-card img:hover,
.cf-act .cf-act-card:hover .cf-act-card-media{
  transform:none!important;
}

@media(max-width:600px){
  .cf-home-card-image,
  .cf-travel-card .cf-card-visual,
  .cfr-widget .cfr-hero,
  .cf-act .cf-act-card-media,
  .cfv-wrap .cfv-visual{
    aspect-ratio:1.55 / 1!important;
  }
  .cf-home-card-body,
  .cf-travel-card .cf-card-body,
  .cf-act .cf-act-card-body,
  .cfv-wrap .cfv-body{
    min-height:92px!important;
  }
  .cf-home-card-body h3,
  .cf-travel-card .cf-card-body h3,
  .cf-act .cf-act-card-body strong,
  .cfv-wrap .cfv-title{
    font-size:.94rem!important;
  }
  .cf-home-card-body p,
  .cf-travel-card .cf-card-body p,
  .cf-act .cf-act-card-description,
  .cfv-wrap .cfv-meta{
    font-size:.74rem!important;
  }
  .cfv-wrap .cfv-event-illustration{width:46px!important;height:46px!important}
  .cfr-widget .cfr-body{padding:11px 11px 12px!important}
}
