/* Directory System v0.2 */

:root {
  --ds-primary: #1f6feb;
  --ds-secondary: #f59e0b;
  --ds-primary-dark: #1557bd;
  --ds-text: #172033;
  --ds-muted: #667085;
  --ds-border: #e5e7eb;
  --ds-card-bg: #ffffff;
  --ds-soft-bg: #f8fafc;
  --ds-radius: 18px;
}

.ds-grid {
  display: grid;
  gap: 24px;
}

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

.ds-card {
  background: var(--ds-card-bg);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
  transition: transform .2s ease, box-shadow .2s ease;
}

.ds-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.10);
}

.ds-card-image {
  display: block;
  aspect-ratio: 4 / 3;
  background: var(--ds-soft-bg);
  overflow: hidden;
  text-decoration: none;
}

.ds-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ds-card-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 18px;
  color: var(--ds-muted);
  text-align: center;
  font-weight: 700;
}

.ds-card-body {
  padding: 18px;
}

.ds-card-title {
  margin: 0 0 10px;
  font-size: 20px;
  line-height: 1.3;
}

.ds-card-title a {
  color: var(--ds-text);
  text-decoration: none;
}

.ds-card-title a:hover {
  color: var(--ds-primary);
}

.ds-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.ds-card-meta span {
  font-size: 13px;
  color: var(--ds-primary);
  background: color-mix(in srgb, var(--ds-primary) 10%, transparent);
  padding: 5px 10px;
  border-radius: 999px;
  line-height: 1;
}

.ds-card-excerpt {
  color: var(--ds-muted);
  font-size: 15px;
  line-height: 1.6;
  margin: 0 0 16px;
}

.ds-card-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--ds-primary);
  color: #fff !important;
  text-decoration: none;
  padding: 10px 16px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 14px;
}

.ds-card-button:hover {
  filter: brightness(0.9);
}

.ds-empty {
  grid-column: 1 / -1;
  padding: 24px;
  background: var(--ds-soft-bg);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  text-align: center;
  color: var(--ds-muted);
}

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

@media (max-width: 640px) {
  .ds-grid,
  .ds-grid-2,
  .ds-grid-3,
  .ds-grid-4 {
    grid-template-columns: 1fr;
  }

  .ds-card-body {
    padding: 16px;
  }
}


.ds-card-fields {
  display: grid;
  gap: 8px;
  margin: 0 0 16px;
}

.ds-card-field {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 10px;
  border-radius: 10px;
  background: var(--ds-soft-bg);
  font-size: 14px;
}

.ds-card-field-label {
  color: var(--ds-muted);
  font-weight: 700;
}

.ds-card-field-value {
  color: var(--ds-text);
  font-weight: 700;
  text-align: end;
}


/* Single Item Modules */

.ds-single-full,
.ds-single-header,
.ds-single-layout,
.ds-single-box {
  box-sizing: border-box;
}

.ds-single-header {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  gap: 28px;
  align-items: center;
  margin-bottom: 28px;
}

.ds-single-hero-image {
  border-radius: var(--ds-radius);
  overflow: hidden;
  background: var(--ds-soft-bg);
  box-shadow: 0 14px 40px rgba(15, 23, 42, 0.08);
}

.ds-single-hero-image img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}

.ds-single-tax {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.ds-single-tax span {
  display: inline-flex;
  padding: 7px 12px;
  border-radius: 999px;
  background: var(--ds-soft-bg);
  color: var(--ds-primary);
  font-weight: 700;
  font-size: 13px;
}

.ds-single-title {
  margin: 0 0 12px;
  color: var(--ds-text);
  font-size: clamp(30px, 4vw, 52px);
  line-height: 1.12;
}

.ds-single-excerpt {
  color: var(--ds-muted);
  font-size: 18px;
  line-height: 1.7;
  margin: 0;
}

.ds-single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 28px;
  align-items: start;
}

.ds-single-box {
  background: var(--ds-card-bg);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  padding: 22px;
  margin-bottom: 22px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

.ds-single-box-title {
  margin: 0 0 16px;
  color: var(--ds-text);
  font-size: 22px;
  line-height: 1.25;
}

.ds-single-fields {
  display: grid;
  gap: 10px;
}

.ds-single-field {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 12px 14px;
  background: var(--ds-soft-bg);
  border-radius: 12px;
}

.ds-single-field-label {
  color: var(--ds-muted);
  font-weight: 800;
}

.ds-single-field-value {
  color: var(--ds-text);
  font-weight: 700;
  overflow-wrap: anywhere;
}

.ds-single-content {
  color: var(--ds-text);
  line-height: 1.8;
  font-size: 16px;
}

.ds-single-content p:last-child {
  margin-bottom: 0;
}

.ds-contact-actions {
  display: grid;
  gap: 10px;
}

.ds-contact-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 44px;
  padding: 11px 16px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 800;
  background: var(--ds-primary);
  color: #fff !important;
}

.ds-contact-btn:hover {
  filter: brightness(0.92);
}

.ds-contact-whatsapp {
  background: #25D366;
}

.ds-contact-email {
  background: var(--ds-text);
}

.ds-map-frame {
  overflow: hidden;
  border-radius: calc(var(--ds-radius) - 4px);
  background: var(--ds-soft-bg);
}

.ds-map-link {
  display: inline-flex;
  margin-top: 12px;
  color: var(--ds-primary);
  font-weight: 800;
  text-decoration: none;
}

.ds-map-link:hover {
  text-decoration: underline;
}

@media (max-width: 980px) {
  .ds-single-header,
  .ds-single-layout {
    grid-template-columns: 1fr;
  }

  .ds-single-sidebar {
    order: -1;
  }
}

@media (max-width: 640px) {
  .ds-single-box {
    padding: 18px;
  }

  .ds-single-field {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}


/* Auto native single layout */

.ds-auto-single-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 24px;
  margin-top: 28px;
  align-items: start;
}

@media (max-width: 980px) {
  .ds-auto-single-layout {
    grid-template-columns: 1fr;
  }

  .ds-auto-single-side {
    order: -1;
  }
}


.ds-agent-box {
  background: var(--ds-soft-bg);
  border-radius: 14px;
  padding: 14px;
  margin-bottom: 14px;
}

.ds-agent-box strong {
  display: block;
  color: var(--ds-text);
  margin-bottom: 6px;
}

.ds-agent-box p {
  margin: 0;
  color: var(--ds-muted);
  line-height: 1.6;
}

.ds-contact-website { background: var(--ds-secondary); }
.ds-contact-waze { background: #33ccff; }
.ds-contact-reviews { background: #4285F4; }
.ds-contact-tripadvisor { background: #00aa6c; }
.ds-contact-ubereats { background: #06c167; }

.ds-single-field-value a {
  color: var(--ds-primary);
  font-weight: 800;
  text-decoration: none;
}

.ds-single-field-value a:hover {
  text-decoration: underline;
}


/* Filters */

.ds-filters {
  background: var(--ds-card-bg);
  border: 1px solid var(--ds-border);
  border-radius: var(--ds-radius);
  padding: 18px;
  margin-bottom: 24px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
}

.ds-filters-horizontal {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  align-items: end;
}

.ds-filters-vertical {
  display: grid;
  gap: 14px;
}

.ds-filter-field {
  display: grid;
  gap: 6px;
}

.ds-filter-field label {
  font-weight: 800;
  color: var(--ds-text);
  font-size: 14px;
}

.ds-filter-field input[type="text"],
.ds-filter-field input[type="number"],
.ds-filter-field select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--ds-border);
  border-radius: 12px;
  padding: 8px 12px;
  background: #fff;
  color: var(--ds-text);
}

.ds-range-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.ds-filter-checkbox {
  align-self: center;
}

.ds-filter-checkbox label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  background: var(--ds-soft-bg);
  border-radius: 12px;
  padding: 8px 12px;
}

.ds-filter-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.ds-filter-submit,
.ds-filter-reset {
  min-height: 42px;
  padding: 10px 18px;
  border-radius: 999px;
  font-weight: 800;
  text-decoration: none;
  border: 0;
  cursor: pointer;
}

.ds-filter-submit {
  background: var(--ds-primary);
  color: #fff;
}

.ds-filter-reset {
  background: var(--ds-soft-bg);
  color: var(--ds-text);
}

.ds-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 26px;
}

.ds-pagination a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--ds-soft-bg);
  color: var(--ds-text);
  text-decoration: none;
  font-weight: 800;
}

.ds-pagination a.is-active {
  background: var(--ds-primary);
  color: #fff;
}

@media (max-width: 1100px) {
  .ds-filters-horizontal {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .ds-filters-horizontal {
    grid-template-columns: 1fr;
  }

  .ds-filter-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .ds-filter-submit,
  .ds-filter-reset {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}


/* Results Engine */
.ds-results-engine{display:grid;gap:34px}.ds-results-section{display:grid;gap:18px}.ds-results-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.ds-results-heading h2{margin:0;color:var(--ds-text);font-size:clamp(24px,3vw,34px);line-height:1.2}.ds-results-heading span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:32px;padding:0 12px;border-radius:999px;background:var(--ds-soft-bg);color:var(--ds-primary);font-weight:800}.ds-results-grid{display:grid;gap:22px}.ds-results-grid-1{grid-template-columns:1fr}.ds-results-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-results-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-results-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ds-result-card{position:relative;background:var(--ds-card-bg);border:1px solid var(--ds-border);border-radius:var(--ds-radius);overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.06)}.ds-result-card-level-a{border-color:color-mix(in srgb,var(--ds-primary) 35%,var(--ds-border))}.ds-result-card-featured{border-color:color-mix(in srgb,var(--ds-secondary) 45%,var(--ds-border))}.ds-result-image{position:relative;display:block;aspect-ratio:4/3;background:var(--ds-soft-bg);overflow:hidden;text-decoration:none}.ds-results-level-b .ds-result-card{display:grid;grid-template-columns:170px minmax(0,1fr)}.ds-results-level-b .ds-result-image{aspect-ratio:auto;min-height:150px}.ds-result-image img{width:100%;height:100%;object-fit:cover}.ds-result-image>span{display:flex;align-items:center;justify-content:center;height:100%;padding:18px;color:var(--ds-muted);text-align:center;font-weight:800}.ds-result-badge{position:absolute;top:12px;inset-inline-start:12px;display:inline-flex;padding:6px 10px;border-radius:999px;background:var(--ds-primary);color:#fff;font-style:normal;font-size:12px;font-weight:900}.ds-result-card-featured .ds-result-badge{background:var(--ds-secondary)}.ds-result-body{padding:16px}.ds-result-meta{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}.ds-result-meta span{display:inline-flex;padding:5px 9px;border-radius:999px;background:var(--ds-soft-bg);color:var(--ds-primary);font-size:12px;font-weight:800}.ds-result-title{margin:0 0 10px;font-size:19px;line-height:1.3}.ds-result-title a{color:var(--ds-text);text-decoration:none}.ds-result-title a:hover{color:var(--ds-primary)}.ds-result-price{margin-bottom:10px;color:var(--ds-text);font-size:20px;font-weight:900}.ds-result-fields{display:flex;flex-wrap:wrap;gap:7px 12px;margin-bottom:14px;color:var(--ds-muted);font-size:13px;line-height:1.45}.ds-result-fields strong{color:var(--ds-text)}.ds-result-actions{display:flex;flex-wrap:wrap;gap:8px}.ds-result-btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 12px;border-radius:999px;text-decoration:none;font-weight:900;font-size:13px;background:var(--ds-soft-bg);color:var(--ds-text)}.ds-result-details{background:var(--ds-primary);color:#fff!important}.ds-result-wa{background:#25D366;color:#fff!important}.ds-result-call{background:var(--ds-text);color:#fff!important}@media(max-width:1100px){.ds-results-grid-4,.ds-results-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.ds-results-grid-2,.ds-results-grid-3,.ds-results-grid-4{grid-template-columns:1fr}.ds-results-level-b .ds-result-card{grid-template-columns:1fr}.ds-results-level-b .ds-result-image{aspect-ratio:4/3}}

/* Modular Single Builder */
.ds-mini-title{margin:0 0 14px;color:var(--ds-text);font-size:clamp(30px,4vw,52px);line-height:1.1}.ds-mini-image{border-radius:var(--ds-radius);overflow:hidden;box-shadow:0 14px 40px rgba(15,23,42,.08);background:var(--ds-soft-bg)}.ds-mini-image img{width:100%;height:auto;display:block}.ds-mini-field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:var(--ds-soft-bg);margin-bottom:10px}.ds-mini-field span{color:var(--ds-muted);font-weight:800}.ds-mini-field strong{color:var(--ds-text);font-weight:900}.ds-mini-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.ds-mini-btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 15px;border-radius:999px;background:var(--ds-primary);color:#fff!important;text-decoration:none;font-weight:900}.ds-mini-btn-website{background:var(--ds-secondary)}.ds-mini-btn-waze{background:#33ccff}.ds-mini-btn-reviews{background:#4285F4}.ds-mini-btn-tripadvisor{background:#00aa6c}.ds-mini-btn-ubereats{background:#06c167}.ds-mini-btn-booking{background:var(--ds-text)}.ds-mini-taxonomies{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.ds-mini-taxonomies span{display:inline-flex;padding:7px 12px;border-radius:999px;background:var(--ds-soft-bg);color:var(--ds-primary);font-weight:800;font-size:13px}.ds-next-prev{display:flex;justify-content:space-between;gap:12px;margin:24px 0}.ds-next-prev a{color:var(--ds-primary);font-weight:900;text-decoration:none}.ds-related-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.ds-related-card{display:block;border:1px solid var(--ds-border);border-radius:14px;overflow:hidden;text-decoration:none;color:var(--ds-text);background:#fff}.ds-related-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.ds-related-card strong{display:block;padding:12px;font-size:15px;line-height:1.35}@media(max-width:980px){.ds-related-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.ds-related-grid{grid-template-columns:1fr}.ds-next-prev{flex-direction:column}.ds-mini-field{align-items:flex-start;flex-direction:column;gap:4px}}

/* Field Icons */
.ds-single-field{grid-template-columns:42px 170px minmax(0,1fr)}.ds-single-field-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;background:#fff;font-size:20px;box-shadow:0 4px 12px rgba(15,23,42,.06)}.ds-field-style-icon_card{grid-template-columns:42px minmax(0,1fr);align-items:start}.ds-field-style-icon_card .ds-single-field-label{grid-column:2;color:var(--ds-muted);font-size:13px}.ds-field-style-icon_card .ds-single-field-value{grid-column:2;font-size:18px}.ds-field-style-pill{display:inline-flex;grid-template-columns:none;width:auto;margin:0 8px 8px 0;border-radius:999px;padding:8px 13px}.ds-field-style-pill .ds-single-field-icon{width:auto;height:auto;background:transparent;box-shadow:none;margin-inline-end:4px}.ds-field-style-pill .ds-single-field-label{margin-inline-end:4px}.ds-mini-field{gap:10px}.ds-mini-field-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:#fff;font-size:18px;box-shadow:0 4px 12px rgba(15,23,42,.06);flex:0 0 auto}.ds-result-fields em{font-style:normal;margin-inline-end:3px}@media(max-width:640px){.ds-single-field{grid-template-columns:42px minmax(0,1fr)}.ds-single-field-value{grid-column:2}.ds-single-field-label{grid-column:2}}

/* Field display controls */
.ds-single-field:not(:has(.ds-single-field-icon)){grid-template-columns:170px minmax(0,1fr)}.ds-single-field:not(:has(.ds-single-field-label)){grid-template-columns:42px minmax(0,1fr)}.ds-single-field:not(:has(.ds-single-field-icon)):not(:has(.ds-single-field-label)){grid-template-columns:1fr}.ds-field-style-pill:not(:has(.ds-single-field-label)){gap:4px}.ds-result-fields span{display:inline-flex;align-items:center;gap:4px}.ds-result-fields em{display:inline-flex;align-items:center;justify-content:center}

/* v1.4 Frontend Engine */
.ds-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:14px 16px;background:var(--ds-card-bg);border:1px solid var(--ds-border);border-radius:var(--ds-radius);box-shadow:0 8px 24px rgba(15,23,42,.05)}
.ds-results-toolbar-title strong{font-size:18px;color:var(--ds-text)}
.ds-sort-form label{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--ds-muted)}
.ds-sort-form select{min-height:40px;border:1px solid var(--ds-border);border-radius:999px;padding:6px 14px;background:#fff;color:var(--ds-text);font-weight:800}
.ds-filters-booking{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:end;padding:14px;border-radius:999px}
.ds-filters-booking .ds-filter-field{gap:4px}
.ds-filters-booking .ds-filter-field label{font-size:12px;padding-inline:4px}
.ds-filters-booking input[type="text"],.ds-filters-booking input[type="number"],.ds-filters-booking select{border-radius:999px}
.ds-filters-booking .ds-filter-actions{align-self:end}
.ds-filters-booking .ds-filter-submit{min-width:120px}
.ds-filters-booking .ds-filter-reset{display:none}
@media(max-width:1100px){.ds-filters-booking{grid-template-columns:repeat(2,minmax(0,1fr));border-radius:var(--ds-radius)}.ds-filters-booking .ds-filter-reset{display:inline-flex}}
@media(max-width:640px){.ds-results-toolbar{flex-direction:column;align-items:stretch}.ds-sort-form label{justify-content:space-between}.ds-filters-booking{grid-template-columns:1fr}}

/* v1.5 Index Sections */
.ds-banner-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0}.ds-banner-count-1{grid-template-columns:1fr}.ds-banner-count-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-banner-slot{display:block;border-radius:var(--ds-radius);overflow:hidden;background:var(--ds-soft-bg);box-shadow:0 10px 30px rgba(15,23,42,.06)}.ds-banner-slot img{display:block;width:100%;aspect-ratio:16/6;object-fit:cover}.ds-strip{margin:32px 0}.ds-strip-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.ds-strip-heading h2{margin:0;color:var(--ds-text);font-size:clamp(22px,3vw,32px)}.ds-strip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ds-strip-card{display:grid;gap:8px;padding:18px;border:1px solid var(--ds-border);border-radius:var(--ds-radius);background:var(--ds-card-bg);box-shadow:0 10px 30px rgba(15,23,42,.06);text-decoration:none}.ds-strip-card strong{color:var(--ds-text);font-size:18px}.ds-strip-card span{color:var(--ds-muted);line-height:1.6}.ds-video-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.ds-video-card{background:var(--ds-card-bg);border:1px solid var(--ds-border);border-radius:var(--ds-radius);overflow:hidden;box-shadow:0 10px 30px rgba(15,23,42,.06)}.ds-video-card iframe{width:100%;aspect-ratio:9/16;min-height:260px;border:0;display:block;background:#000}.ds-video-card strong{display:block;padding:12px;color:var(--ds-text)}.ds-bottom-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:36px 0;padding:28px;border-radius:var(--ds-radius);background:var(--ds-text);color:#fff}.ds-bottom-cta h2{margin:0 0 8px;color:#fff}.ds-bottom-cta p{margin:0;color:rgba(255,255,255,.78)}.ds-bottom-cta-actions{display:flex;gap:10px;flex-wrap:wrap}.ds-bottom-cta a{display:inline-flex;padding:11px 18px;border-radius:999px;font-weight:900;text-decoration:none}.ds-cta-primary{background:var(--ds-primary);color:#fff!important}.ds-cta-secondary{background:#fff;color:var(--ds-text)!important}@media(max-width:980px){.ds-banner-slots,.ds-strip-grid,.ds-video-row{grid-template-columns:1fr 1fr}.ds-bottom-cta{flex-direction:column;align-items:flex-start}}@media(max-width:640px){.ds-banner-slots,.ds-strip-grid,.ds-video-row{grid-template-columns:1fr}.ds-bottom-cta-actions{width:100%}.ds-bottom-cta a{width:100%;justify-content:center}}

/* v1.6 Media Engine */
.ds-gallery-grid{display:grid;gap:12px}.ds-gallery-cols-1{grid-template-columns:1fr}.ds-gallery-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.ds-gallery-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.ds-gallery-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.ds-gallery-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.ds-gallery-item{display:block;border-radius:14px;overflow:hidden;background:var(--ds-soft-bg);text-decoration:none}.ds-gallery-item img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .25s ease}.ds-gallery-item:hover img{transform:scale(1.03)}.ds-item-logo{display:inline-flex;align-items:center;justify-content:center;padding:12px;border:1px solid var(--ds-border);border-radius:var(--ds-radius);background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.06)}.ds-item-logo img{max-width:180px;height:auto;display:block}.ds-item-video iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:14px;background:#000}.ds-floor-plan{display:block;border-radius:14px;overflow:hidden}.ds-floor-plan img{display:block;width:100%;height:auto}@media(max-width:980px){.ds-gallery-cols-4,.ds-gallery-cols-5{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.ds-gallery-grid{grid-template-columns:1fr!important}}

/* v1.7 Gallery Carousel + Lightbox */
.ds-gallery-grid .ds-gallery-item{border:0;padding:0;cursor:pointer;width:100%;text-align:inherit}
.ds-gallery-carousel{position:relative;overflow:hidden;border-radius:var(--ds-radius);background:var(--ds-soft-bg)}
.ds-gallery-track{position:relative;aspect-ratio:16/9;background:var(--ds-soft-bg)}
.ds-gallery-slide{position:absolute;inset:0;width:100%;height:100%;border:0;padding:0;background:transparent;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease}
.ds-gallery-slide.is-active{opacity:1;pointer-events:auto}
.ds-gallery-slide img{width:100%;height:100%;object-fit:cover;display:block}
.ds-gallery-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ds-text);font-size:34px;line-height:1;cursor:pointer;box-shadow:0 8px 24px rgba(15,23,42,.18)}
.ds-gallery-prev{left:14px}.ds-gallery-next{right:14px}
.ds-gallery-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;justify-content:center;gap:7px;z-index:4}
.ds-gallery-dots button{width:9px;height:9px;border:0;border-radius:999px;background:rgba(255,255,255,.65);cursor:pointer;padding:0}
.ds-gallery-dots button.is-active{width:24px;background:#fff}
body.ds-lightbox-open{overflow:hidden}
.ds-lightbox{position:fixed;inset:0;z-index:999999;background:rgba(10,15,25,.92);display:flex;align-items:center;justify-content:center;padding:36px}
.ds-lightbox-img{max-width:min(1100px,92vw);max-height:86vh;object-fit:contain;border-radius:14px;box-shadow:0 18px 60px rgba(0,0,0,.35)}
.ds-lightbox-close,.ds-lightbox-arrow{position:absolute;border:0;border-radius:999px;background:rgba(255,255,255,.92);color:#111827;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.ds-lightbox-close{top:22px;right:22px;width:46px;height:46px;font-size:34px;line-height:1}
.ds-lightbox-arrow{top:50%;transform:translateY(-50%);width:54px;height:54px;font-size:42px;line-height:1}
.ds-lightbox-prev{left:24px}.ds-lightbox-next{right:24px}
@media(max-width:640px){.ds-gallery-track{aspect-ratio:4/3}.ds-gallery-nav{width:38px;height:38px;font-size:28px}.ds-lightbox{padding:16px}.ds-lightbox-arrow{width:42px;height:42px;font-size:34px}.ds-lightbox-prev{left:10px}.ds-lightbox-next{right:10px}.ds-lightbox-close{top:10px;right:10px}}

/* v1.8 Archive Engine */
.ds-archive-page{display:grid;gap:24px}
.ds-archive-hero{
    position:relative;
    overflow:hidden;
    border-radius:24px;
    padding:48px 36px;
    background:linear-gradient(135deg,var(--ds-primary),var(--ds-dark,#111827));
    color:#fff;
    box-shadow:0 18px 60px rgba(15,23,42,.18)
}
.ds-archive-hero-inner{max-width:860px}
.ds-archive-breadcrumbs{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:13px;
    font-weight:700;
    opacity:.85;
    margin-bottom:14px
}
.ds-archive-title{
    margin:0;
    color:#fff;
    font-size:clamp(34px,5vw,56px);
    line-height:1.05;
    letter-spacing:-0.03em
}
.ds-archive-intro{
    margin-top:16px;
    font-size:17px;
    line-height:1.8;
    color:rgba(255,255,255,.9)
}
.ds-archive-description{
    background:#fff;
    border:1px solid var(--ds-border);
    border-radius:20px;
    padding:24px;
    box-shadow:0 10px 30px rgba(15,23,42,.05)
}
.ds-empty-state{
    padding:60px 24px;
    text-align:center;
    border-radius:24px;
    border:2px dashed var(--ds-border);
    background:#fff
}
.ds-empty-state h3{
    margin:0 0 12px;
    font-size:30px;
    color:var(--ds-text)
}
.ds-empty-state p{
    margin:0 auto;
    max-width:620px;
    color:var(--ds-muted);
    line-height:1.8
}
.ds-archive-type-category{
    background:linear-gradient(135deg,#1f6feb,#111827)
}
.ds-archive-type-location{
    background:linear-gradient(135deg,#059669,#0f172a)
}
.ds-archive-type-feature{
    background:linear-gradient(135deg,#7c3aed,#111827)
}
.ds-archive-type-tag{
    background:linear-gradient(135deg,#ea580c,#111827)
}
@media(max-width:768px){
    .ds-archive-hero{
        padding:34px 22px;
        border-radius:18px
    }
    .ds-archive-title{
        font-size:38px
    }
}

/* v1.9 Taxonomy Meta */
.ds-archive-subtitle{
    margin:12px 0 0;
    font-size:20px;
    font-weight:700;
    color:rgba(255,255,255,.92)
}
.ds-archive-bottom-text{
    background:#fff;
    border:1px solid var(--ds-border);
    border-radius:20px;
    padding:26px;
    box-shadow:0 10px 30px rgba(15,23,42,.05);
    color:var(--ds-text);
    line-height:1.85
}
.ds-archive-bottom-text p:last-child{
    margin-bottom:0
}
.ds-taxonomy-cta{
    margin-top:0
}
