/* Base tokens */
.dcal-listing { --gap:50px; --radius:12px; --border: rgba(25,25,25,.15); --muted:#6b7280; --muted-bg:#f9fafb; --ink:#111827; }
.dcal-filters { display:flex; flex-wrap:wrap; gap:.75rem 1rem; margin:0 0 1rem; align-items:flex-end;     justify-content: space-between;}
.dcal-filter { display:flex; flex-direction:column; gap:.35rem; min-width:160px; }
.dcal-filter input, .dcal-filter select { padding:.55rem .7rem; border:1px solid var(--border); border-radius:4px; background: transparent;}
.dcal-filter select{
    background-image: linear-gradient(45deg, transparent 50%, green 50%), linear-gradient(135deg, green 50%, transparent 50%)!important;
    background-size: 5px 4px, 4px 4px;
    background-repeat: no-repeat;
    background-position: calc(100% - 14px), calc(100% - 10px);
    -webkit-appearance: none;
    appearance: none;
    padding-right: 25px!important;
    color: black!important;
}
.dcal-filter span{
    font-weight: 500;
}
.dcal-filter--search{
    min-width: 220px;
}
.dcal-filter--search input::placeholder{
    color: rgba(25, 25, 25, .30);
    font-weight: 400!important;
}
.dcal-btn--reset{
    color: black!important;
}
.dcal-actions{ display: flex; }
.dcal-filter-actions { display:flex; gap:.5rem; margin-left:auto; }
.dcal-btn { padding:.3rem .9rem; border:1px solid var(--border); border-radius:4px; background:#fff; cursor:pointer; font:inherit; font-weight: 500!important;}
.dcal-btn--apply { background:#00663A; color:#fff; border-color: transparent; }
.dcal-btn--more { margin:1rem auto 0; display:inline-block; background: #00663A; border-color: #00663a!important; color: white; font-size: 15px; font-weight: 500; border-width: 2px!important;    padding-top: 7px !important; padding-right: 18px !important; padding-bottom: 7px !important; padding-left: 18px !important;}
.dcal-meta-bar { display:flex; justify-content:space-between; align-items:center; margin:.25rem 0 1rem; font-size:14px; color:rgba(0,0,0,0.65) !important; }
.dcal-spinner::after { margin-left: 5px; content:""; width:18px; height:18px; border:2px solid white; border-top-color: #00663A; border-radius:50%; display:inline-block; animation:dcal-spin 1s linear infinite; }
.dcal-spinner--more::after { width:12px; height:12px; position: relative; top: 3px;}
@keyframes dcal-spin { to { transform:rotate(360deg); } }

.dcal-grid { display:grid; grid-template-columns: repeat(auto-fill, minmax(301px, 1fr)); row-gap: var(--gap); column-gap: 25px;}
.dcal-card { border:0px solid var(--border); overflow:hidden; background:#fff; display:flex; flex-direction:column; border-radius: 4px; box-shadow: 0px 1px 4px rgba(17,17,26,0.05), 0px 0px 8px rgba(17,17,26,0.1)}
.dcal-card__image { display:block; overflow: hidden;}
.dcal-card__image img { transition: all .4s; }
.dcal-card:hover .dcal-card__image img { transform:scale(1.05); }
.dcal-card__img { display:block; width:100%; height:273px; object-fit:cover; }
.dcal-card__body { display:grid; gap:.5rem; padding:10px; padding-bottom: 7px; height: calc(100% - 272px);}
.dcal-card__location { display:inline-flex; align-items:center; gap:.4rem; color:#00663A; font-size:13px; max-height: fit-content;}
.dcal-icon--location { display:inline-block; }
.dcal-icon--location path{fill: #00663A}
.dcal-card__title { margin:3px 0 0; font-size:18px; font-weight: 500; line-height:1.3; padding-bottom: 13px;}
.dcal-card__title a:hover {color: #00663A!important; }
.dcal-card__title-link { text-decoration:none; color:inherit; color: #000000!important; text-shadow: none;     font-weight: 570;}
.dcal-card__specs { display:flex; flex-wrap:wrap; gap:.25rem .5rem; align-items:baseline; color: rgba(0,0,0,1) !important;     align-items: end; font-size: 13px;}
.dcal-card__sep { opacity:.6; }
.dcal-card__cta { margin-top:.25rem; display:inline-block; text-decoration:none; background: #00663A; width: fit-content; padding: 5px 9px 5px 9px; color: white;}
.dcal-card__location-text{margin-top: 1px;     font-weight: 450; text-shadow: none!important;}
.dcal-empty { background:var(--muted-bg); padding:1rem; border-radius:8px;     padding-bottom: 1rem!important;}

@media (max-width: 767px) {
    .dcal-filters { gap: 10px;}
    .dcal-filter{min-width: 150px; width: 170px;}
    .dcal-filter--search{min-width: 120px; width: 170px;}
    .dcal-filter-actions{margin-left: 0!important;}
}

