/* Layout, typography, colours and spacing live in editable Elementor controls.
   These low-specificity rules add only small resets, accessibility and filtering. */
:where(.djd-homepage) { color: #171717; background: #fff; overflow-wrap: break-word; }
:where(.djd-homepage) :where(p:last-child) { margin-bottom: 0; }
:where(.djd-homepage) :where(img) { display: block; }
:where(.djd-homepage .djd-city-image) img { aspect-ratio: 4 / 3; object-fit: cover; }
:where(.djd-homepage .djd-product-image) img { aspect-ratio: 4 / 5; object-fit: cover; }
:where(.djd-homepage) :where(a, button, input):focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
:where(.djd-homepage) :where(.djd-cities, .djd-products, .djd-custom, .djd-reviews, .djd-faq) { scroll-margin-top: 100px; }
.elementor .elementor-element.djd-city-card[hidden] { display: none; }
.djd-city-search { --djd-search-text: #171717; --djd-search-bg: #fff; --djd-search-border: #a7a7a7; color: var(--djd-search-text); max-width: 560px; }
.djd-city-search > label { display: block; font-size: 13px; margin-bottom: 8px; font-weight: 600; }
.djd-city-search__field { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 0 16px; border: 1px solid var(--djd-search-border); background: var(--djd-search-bg); }
.djd-city-search__field > svg { flex: 0 0 20px; }
.djd-city-search__field input[type=search] { flex: 1; min-width: 0; width: 100%; min-height: 52px; padding: 12px 0; font: inherit; font-size: 16px; color: inherit; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.djd-city-search__field:focus-within { outline: 2px solid var(--djd-search-text); outline-offset: 3px; }
.djd-city-search__field input[type=search]:focus { outline: 0; }
.djd-city-search__clear { flex: 0 0 auto; min-height: 44px; padding: 4px 8px; border: 0; background: transparent; color: inherit; font: inherit; font-size: 13px; text-decoration: underline; cursor: pointer; }
.djd-city-search__clear[hidden] { display: none; }
.djd-city-search__status { margin: 8px 0 0; font-size: 13px; min-height: 0; }
.djd-city-search__status:empty { display: none; }
@media (prefers-reduced-motion: reduce) { :where(.djd-homepage) * { scroll-behavior: auto; transition-duration: 0s; } }

/* Small effects supplement the native Elementor style controls. */
:where(.djd-homepage .djd-hero-picture) { position: relative; }
:where(.djd-homepage) .djd-hero-caption { position: absolute; inset: auto 0 0; width: 100%; background: linear-gradient(transparent, #0009); border-radius: 0 0 12px 12px; }
:where(.djd-homepage .djd-hero-buttons .elementor-button) { transition: transform .2s, background-color .2s, color .2s; }
:where(.djd-homepage .djd-hero-buttons .elementor-button):is(:hover,:focus-visible) { transform: translateY(-2px); }
:where(.djd-homepage .djd-city-link) .elementor-button { display: block; width: 100%; text-align: left; }
:where(.djd-homepage .djd-city-link) .elementor-button-content-wrapper { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
:where(.djd-homepage .djd-city-link) .elementor-button-text { flex: 1 1 auto; min-width: 0; text-align: left; line-height: 1.5; }
:where(.djd-homepage .djd-city-link) .elementor-button-icon { flex: 0 0 16px; width: 16px; }
:where(.djd-homepage .djd-city-link) .elementor-button-icon svg { width: 16px; height: 16px; }
