/*
 * Light Directory – layout only.
 * No typography/colour styling is applied on purpose; style these classes in your template.
 * The only colours set are the rating stars (filled / empty), as specified.
 */
.ld-items-rows > .ld-item { display: block; }
.ld-items-cols { display: grid; gap: 1rem; grid-template-columns: repeat(var(--ld-cols-mobile, 1), minmax(0, 1fr)); }
@media (min-width: 768px) { .ld-items-cols { grid-template-columns: repeat(var(--ld-cols-tablet, 2), minmax(0, 1fr)); } }
@media (min-width: 992px) { .ld-items-cols { grid-template-columns: repeat(var(--ld-cols-desktop, 3), minmax(0, 1fr)); } }
.ld-item { position: relative; }
.ld-item-stretched-link { position: absolute; inset: 0; z-index: 1; }
.ld-item-linked a:not(.ld-item-stretched-link), .ld-item-linked button, .ld-item-linked input, .ld-item-linked select { position: relative; z-index: 2; }
.ld-field-media img { max-width: 100%; height: auto; }
.ld-star-on { color: #f5b301; }
.ld-star-off { color: #c8c8c8; }
.ld-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.ld-group-row > .ld-group-fields { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; }
/* Item Layout (Directory > Field Groups > Item Layout): columns stack on mobile */
.ld-area-columns { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 768px) {
  .ld-split-50_50 .ld-area-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ld-split-67_33 .ld-area-columns { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .ld-split-33_67 .ld-area-columns { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
  .ld-no-sidebar .ld-area-columns { grid-template-columns: minmax(0, 1fr); }
}
.ld-area-top.ld-has-banner { background-size: cover; background-position: center; background-repeat: no-repeat;
  min-height: var(--ld-banner-min-height, 350px); display: flex; flex-direction: column; justify-content: center; }
.ld-area-top.ld-has-banner-thumb { flex-direction: row; align-items: center; gap: 1.5rem; }
.ld-banner-thumb { flex: 0 0 auto; width: var(--ld-banner-thumb-width, 200px); max-width: 40%; }
.ld-banner-thumb img { display: block; width: 100%; height: auto; }
.ld-banner-content { flex: 1 1 auto; min-width: 0; }
@media (max-width: 575.98px) { .ld-area-top.ld-has-banner-thumb { flex-direction: column; align-items: flex-start; } }
/* Hours (Monday–Sunday): one row per day, day / open / – / close aligned in columns */
.ld-hours { display: grid; grid-template-columns: repeat(4, max-content); column-gap: .75em; align-items: baseline; }
.ld-hours > .ld-type-day, .ld-hours > .ld-type-day > .ld-field-value { display: contents; }
.ld-hours .ld-field-label { grid-column: 1; margin: 0; }
.ld-hours .ld-icon { grid-column: 1; }
.ld-hours .ld-time-open { grid-column: 2; }
.ld-hours .ld-time-sep { grid-column: 3; }
.ld-hours .ld-time-close { grid-column: 4; }
.ld-hours .ld-time-text { grid-column: 2 / span 3; }
