/* =========================
   Cassiopeia – Custom UI
   ========================= */

/* Base */
.page-intro { margin: 0 0 1.25rem; }
.page-intro h1 { margin: 0 0 .25rem; }
.muted { opacity: .78; }

/* Buttons / pills */
.btn {
  display: inline-block;
  padding: .65rem .9rem;
  border-radius: .75rem;
  text-decoration: none;
  border: 1px solid rgba(0,0,0,.15);
}
.btn:hover { text-decoration: underline; }

.pill {
  display: inline-block;
  padding: .25rem .55rem;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  font-size: .85rem;
  line-height: 1.2;
}

/* Cards grid */
.cards-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 992px) {
  .cards-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .cards-grid { grid-template-columns: 1fr; }
}

.card {
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 1rem;
  padding: 1rem;
  background: #fff;
}
.card.compact { padding: .85rem; }
.card-title { margin: 0 0 .5rem; }
.card-title a { text-decoration: none; }
.card-title a:hover { text-decoration: underline; }

.meta { display: flex; flex-wrap: wrap; gap: .4rem; margin: .25rem 0 .5rem; }

.section-cards { margin: 1.25rem 0; }
.section-cards h3 { margin: 0 0 .75rem; }

/* Factsheet */
.factsheet {
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 1rem;
  padding: .9rem;
  margin: 0 0 1rem;
  background: #fff;
}
.facts-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}
@media (max-width: 992px) {
  .facts-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.fact { display: flex; flex-direction: column; gap: .15rem; }
.fact .label { font-size: .8rem; opacity: .7; }
.fact .value { font-weight: 600; }

/* CTA / Backlink */
.cta-row { margin: .75rem 0 1rem; display: flex; gap: .75rem; align-items: center; flex-wrap: wrap; }
.backlink { margin: 0 0 1rem; }

/* =========================
   Cassiopeia footer columns
   ========================= */

/* Cassiopeia footer wrapper (works on Joomla 4/5/6 Cassiopeia) */
.site-footer .grid-child,
.site-footer .container .grid-child,
.site-footer .container-fluid .grid-child {
  /* keep Cassiopeia structure intact */
}

/* Force footer modules into a 3-col grid */
.site-footer .footer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
}
@media (max-width: 992px) {
  .site-footer .footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .site-footer .footer { grid-template-columns: 1fr; }
}

/* Style each footer module */
.footer-col {
  padding: .25rem 0;
}
.footer-col .moduletitle {
  margin: 0 0 .5rem;
  font-size: 1rem;
}
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin: .35rem 0; }
.footer-col a { text-decoration: none; }
.footer-col a:hover { text-decoration: underline; }

.listing { padding-left: 1.1rem; }
.listing li { margin: .35rem 0; }

.listing { list-style: disc; padding-left: 1.1rem; }
.listing li::before { content: none !important; }

/* Kill any injected quote/marker prefixes in listings */
.listing, .listing * { quotes: none !important; }
.listing-item::before,
.listing-item::marker,
.listing a::before,
.listing a::marker,
.listing li::before,
.listing li::marker {
  content: none !important;
}

.listing-item { margin: .35rem 0; }
.listing-item a { text-decoration: none; }
.listing-item a:hover { text-decoration: underline; }

/* === Cards grid (3 naast elkaar) === */
.cards-grid {
  display: grid;
  gap: 1rem;
}

.cards-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 992px) {
  .cards-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 576px) {
  .cards-3 { grid-template-columns: 1fr; }
}

/* === Trip card === */
.trip-card {
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 16px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 6px 18px rgba(0,0,0,.06);
}

.trip-link {
  display: block;
  color: inherit;
  text-decoration: none;
  height: 100%;
}

.trip-thumb {
  aspect-ratio: 16 / 10;
  background: rgba(0,0,0,.04);
}

.trip-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.trip-body {
  padding: 0.9rem 1rem 1rem;
}

.trip-title {
  font-size: 1.05rem;
  line-height: 1.25;
  margin: 0 0 0.35rem 0;
}

.trip-meta {
  font-size: 0.95rem;
  opacity: 0.8;
}

/* hover */
.trip-card:hover {
  transform: translateY(-2px);
  transition: transform .15s ease, box-shadow .15s ease;
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
}

/* Placeholder background */
.trip-thumb {
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg, #ececec, #f6f6f6);
  position: relative;
  overflow: hidden;
}

/* Image styling */
.trip-thumb img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* Wanneer geen intro image bestaat */
.trip-thumb img[src=""] {
  display: none;
}

.trip-thumb {
  aspect-ratio: 16 / 10;
  background: linear-gradient(135deg,#ececec,#f6f6f6);
  position: relative;
  overflow: hidden;
  border-radius: 16px 16px 0 0;
}
.media-block { margin: 1.5rem 0; }

.media-gallery .acf-gallery,
.media-gallery .gallery,
.media-gallery .acfGallery {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 992px) {
  .media-gallery .acf-gallery,
  .media-gallery .gallery,
  .media-gallery .acfGallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 576px) {
  .media-gallery .acf-gallery,
  .media-gallery .gallery,
  .media-gallery .acfGallery {
    grid-template-columns: 1fr;
  }
}

.media-gallery img {
  width: 100%;
  height: 220px;
  object-fit: cover;
  display: block;
  border-radius: 14px;
}

.media-videos iframe,
.media-videos video {
  width: 100%;
  border-radius: 14px;
  overflow: hidden;
  margin-top: 0.75rem;

  
/* === Factsheet premium === */
.factsheet{
  display:grid;
  gap:0.9rem 1.1rem;
  grid-template-columns:repeat(3,minmax(0,1fr));
  margin:1rem 0 1.5rem 0;
}

.fact{
  position:relative;
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  padding:0.85rem 0.95rem 0.9rem;
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.05);
  overflow:hidden;
}

/* subtiel accentbalkje links */
.fact::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:6px;
  background:rgba(0,0,0,.10);
}

/* label */
.fact .label{
  display:flex;
  align-items:center;
  gap:.5rem;
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.04em;
  opacity:.75;
  margin-bottom:.25rem;
}

/* icoon placeholder (wordt per label ingevuld) */
.fact .label::before{
  content:"";
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:rgba(0,0,0,.06);
  font-size:14px;
  line-height:1;
}

/* value */
.fact .value{
  display:block;
  font-weight:700;
  font-size:1rem;
  line-height:1.25;
}

/* Responsive */
@media (max-width: 992px){
  .factsheet{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 576px){
  .factsheet{ grid-template-columns:1fr; }
}