/* Gludo — business directory module */

:root {
    --icon-category: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 7h7V4H4v3Zm0 13h7v-7H4v7Zm9 0h7v-7h-7v7Zm0-10h7V4h-7v6Z' fill='%23fff'/%3E%3C/svg%3E");
    --icon-filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 6h16M7 12h10M10 18h4' stroke='%23fff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
    --lc-icon-location: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E");
    --lc-icon-phone: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E");
    --lc-icon-whatsapp: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.435 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413z'/%3E%3C/svg%3E");
    --lc-icon-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z'/%3E%3C/svg%3E");
    --lc-icon-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.93 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A8.03 8.03 0 0 1 5.08 16zM8.03 8H5.08a8.03 8.03 0 0 1 4.33-3.56A15.65 15.65 0 0 0 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zm3.45-1.54c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.97 16c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z'/%3E%3C/svg%3E");
    --lc-icon-link: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z'/%3E%3C/svg%3E");
    --lc-icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M19 4h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V10h14v10z'/%3E%3C/svg%3E");
    --lc-icon-map: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM10 5.47l4 1.4v11.66l-4-1.4V5.47zm-5 .99 3-1.01v11.7l-3 1.01V6.46zm14 11.08-3 1.01V6.86l3-1.01v11.69z'/%3E%3C/svg%3E");
    --lc-icon-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z'/%3E%3C/svg%3E");
    /* Social icons — Font Awesome Brands 6 */
    --lc-icon-facebook: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M512%20256C512%20114.6%20397.4%200%20256%200S0%20114.6%200%20256C0%20376%2082.7%20476.8%20194.2%20504.5V334.2H141.4V256h52.8V222.3c0-87.1%2039.4-127.5%20125-127.5c16.2%200%2044.2%203.2%2055.7%206.4V172c-6-.6-16.5-1-29.6-1c-42%200-58.2%2015.9-58.2%2057.2V256h83.6l-14.4%2078.2H287V510.1C413.8%20494.8%20512%20386.9%20512%20256h0z%22%2F%3E%3C%2Fsvg%3E");
    --lc-icon-twitter: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M389.2%2048h70.6L305.6%20224.2%20487%20464H345L233.7%20318.6%20106.5%20464H35.8L200.7%20275.5%2026.8%2048H172.4L272.9%20180.9%20389.2%2048zM364.4%20421.8h39.1L151.1%2088h-42L364.4%20421.8z%22%2F%3E%3C%2Fsvg%3E");
    --lc-icon-linkedin: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20448%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M416%2032H31.9C14.3%2032%200%2046.5%200%2064.3v383.4C0%20465.5%2014.3%20480%2031.9%20480H416c17.6%200%2032-14.5%2032-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4%20416H69V202.2h66.5V416zm-33.2-243c-21.3%200-38.5-17.3-38.5-38.5S80.9%2096%20102.2%2096c21.2%200%2038.5%2017.3%2038.5%2038.5%200%2021.3-17.2%2038.5-38.5%2038.5zm282.1%20243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6%200-39.9%2027-39.9%2054.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8%2030.6-34.5%2062.9-34.5%2067.2%200%2079.7%2044.3%2079.7%20101.9V416z%22%2F%3E%3C%2Fsvg%3E");
    --lc-icon-youtube: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20576%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M549.655%20124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781%2064%20288%2064%20288%2064S117.22%2064%2074.629%2075.486c-23.497%206.322-42.003%2024.947-48.284%2048.597-11.412%2042.867-11.412%20132.305-11.412%20132.305s0%2089.438%2011.412%20132.305c6.281%2023.65%2024.787%2041.5%2048.284%2047.821C117.22%20448%20288%20448%20288%20448s170.78%200%20213.371-11.486c23.497-6.321%2042.003-24.171%2048.284-47.821%2011.412-42.867%2011.412-132.305%2011.412-132.305s0-89.438-11.412-132.305zm-317.51%20213.508V175.185l142.739%2081.205-142.739%2081.201z%22%2F%3E%3C%2Fsvg%3E");
    --lc-icon-instagram: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20448%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M224.1%20141c-63.6%200-114.9%2051.3-114.9%20114.9s51.3%20114.9%20114.9%20114.9S339%20319.5%20339%20255.9%20287.7%20141%20224.1%20141zm0%20189.6c-41.1%200-74.7-33.5-74.7-74.7s33.5-74.7%2074.7-74.7%2074.7%2033.5%2074.7%2074.7-33.6%2074.7-74.7%2074.7zm146.4-194.3c0%2014.9-12%2026.8-26.8%2026.8-14.9%200-26.8-12-26.8-26.8s12-26.8%2026.8-26.8%2026.8%2012%2026.8%2026.8zm76.1%2027.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9%200-35.8%201.7-67.6%209.9-93.9%2036.1s-34.4%2058-36.2%2093.9c-2.1%2037-2.1%20147.9%200%20184.9%201.7%2035.9%209.9%2067.7%2036.2%2093.9s58%2034.4%2093.9%2036.2c37%202.1%20147.9%202.1%20184.9%200%2035.9-1.7%2067.7-9.9%2093.9-36.2%2026.2-26.2%2034.4-58%2036.2-93.9%202.1-37%202.1-147.8%200-184.8zM398.8%20388c-7.8%2019.6-22.9%2034.7-42.6%2042.6-29.5%2011.7-99.5%209-132.1%209s-102.7%202.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7%209-132.1c7.8-19.6%2022.9-34.7%2042.6-42.6%2029.5-11.7%2099.5-9%20132.1-9s102.7-2.6%20132.1%209c19.6%207.8%2034.7%2022.9%2042.6%2042.6%2011.7%2029.5%209%2099.5%209%20132.1s2.7%20102.7-9%20132.1z%22%2F%3E%3C%2Fsvg%3E");
    --lc-icon-snapchat: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M496.926%2C366.6c-3.373-9.176-9.8-14.086-17.112-18.153-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.609-27.341-52.959-45.42a102.889%2C102.889%2C0%2C0%2C1-9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.221%2C10.221%2C0%2C0%2C1%2C2.914-3.038c3.918-2.591%2C7.96-5.22%2C10.7-6.993%2C4.885-3.162%2C8.754-5.667%2C11.246-7.44%2C9.362-6.547%2C15.909-13.5%2C20-21.278a42.371%2C42.371%2C0%2C0%2C0%2C2.1-35.191c-6.2-16.318-21.613-26.449-40.287-26.449a55.543%2C55.543%2C0%2C0%2C0-11.718%2C1.24c-1.029.224-2.059.459-3.063.72.174-11.16-.074-22.94-1.066-34.534-3.522-40.758-17.794-62.123-32.674-79.16A130.167%2C130.167%2C0%2C0%2C0%2C332.1%2C36.443C309.515%2C23.547%2C283.91%2C17%2C256%2C17S202.6%2C23.547%2C180%2C36.443a129.735%2C129.735%2C0%2C0%2C0-33.281%2C26.783c-14.88%2C17.038-29.152%2C38.44-32.673%2C79.161-.992%2C11.594-1.24%2C23.435-1.079%2C34.533-1-.26-2.021-.5-3.051-.719a55.461%2C55.461%2C0%2C0%2C0-11.717-1.24c-18.687%2C0-34.125%2C10.131-40.3%2C26.449a42.423%2C42.423%2C0%2C0%2C0%2C2.046%2C35.228c4.105%2C7.774%2C10.652%2C14.731%2C20.014%2C21.278%2C2.48%2C1.736%2C6.361%2C4.24%2C11.246%2C7.44%2C2.641%2C1.711%2C6.5%2C4.216%2C10.28%2C6.72a11.054%2C11.054%2C0%2C0%2C1%2C3.3%2C3.311c.794%2C1.624.818%2C3.373-.36%2C6.6a102.02%2C102.02%2C0%2C0%2C1-8.94%2C15.785c-12.077%2C17.669-29.363%2C32.648-51.434%2C44.639C32.355%2C348.608%2C20.2%2C352.75%2C15.069%2C366.7c-3.868%2C10.528-1.339%2C22.506%2C8.494%2C32.6a49.137%2C49.137%2C0%2C0%2C0%2C12.4%2C9.387%2C134.337%2C134.337%2C0%2C0%2C0%2C30.342%2C12.139%2C20.024%2C20.024%2C0%2C0%2C1%2C6.126%2C2.741c3.583%2C3.137%2C3.075%2C7.861%2C7.849%2C14.78a34.468%2C34.468%2C0%2C0%2C0%2C8.977%2C9.127c10.019%2C6.919%2C21.278%2C7.353%2C33.207%2C7.811%2C10.776.41%2C22.989.881%2C36.939%2C5.481%2C5.778%2C1.91%2C11.78%2C5.605%2C18.736%2C9.92C194.842%2C480.951%2C217.707%2C495%2C255.973%2C495s61.292-14.123%2C78.118-24.428c6.907-4.24%2C12.872-7.9%2C18.489-9.758%2C13.949-4.613%2C26.163-5.072%2C36.939-5.481%2C11.928-.459%2C23.187-.893%2C33.206-7.812a34.584%2C34.584%2C0%2C0%2C0%2C10.218-11.16c3.434-5.84%2C3.348-9.919%2C6.572-12.771a18.971%2C18.971%2C0%2C0%2C1%2C5.753-2.629A134.893%2C134.893%2C0%2C0%2C0%2C476.02%2C408.71a48.344%2C48.344%2C0%2C0%2C0%2C13.019-10.193l.124-.149C498.389%2C388.5%2C500.708%2C376.867%2C496.926%2C366.6Zm-34.013%2C18.277c-20.745%2C11.458-34.533%2C10.23-45.259%2C17.137-9.114%2C5.865-3.72%2C18.513-10.342%2C23.076-8.134%2C5.617-32.177-.4-63.239%2C9.858-25.618%2C8.469-41.961%2C32.822-88.038%2C32.822s-62.036-24.3-88.076-32.884c-31-10.255-55.092-4.241-63.239-9.858-6.609-4.563-1.24-17.211-10.341-23.076-10.739-6.907-24.527-5.679-45.26-17.075-13.206-7.291-5.716-11.8-1.314-13.937%2C75.143-36.381%2C87.133-92.552%2C87.666-96.719.645-5.046%2C1.364-9.014-4.191-14.148-5.369-4.96-29.189-19.7-35.8-24.316-10.937-7.638-15.748-15.264-12.2-24.638%2C2.48-6.485%2C8.531-8.928%2C14.879-8.928a27.643%2C27.643%2C0%2C0%2C1%2C5.965.67c12%2C2.6%2C23.659%2C8.617%2C30.392%2C10.242a10.749%2C10.749%2C0%2C0%2C0%2C2.48.335c3.6%2C0%2C4.86-1.811%2C4.612-5.927-.768-13.132-2.628-38.725-.558-62.644%2C2.84-32.909%2C13.442-49.215%2C26.04-63.636%2C6.051-6.932%2C34.484-36.976%2C88.857-36.976s82.88%2C29.92%2C88.931%2C36.827c12.611%2C14.421%2C23.225%2C30.727%2C26.04%2C63.636%2C2.071%2C23.919.285%2C49.525-.558%2C62.644-.285%2C4.327%2C1.017%2C5.927%2C4.613%2C5.927a10.648%2C10.648%2C0%2C0%2C0%2C2.48-.335c6.745-1.624%2C18.4-7.638%2C30.4-10.242a27.641%2C27.641%2C0%2C0%2C1%2C5.964-.67c6.386%2C0%2C12.4%2C2.48%2C14.88%2C8.928%2C3.546%2C9.374-1.24%2C17-12.189%2C24.639-6.609%2C4.612-30.429%2C19.343-35.8%2C24.315-5.568%2C5.134-4.836%2C9.1-4.191%2C14.149.533%2C4.228%2C12.511%2C60.4%2C87.666%2C96.718C468.629%2C373.011%2C476.119%2C377.524%2C462.913%2C384.877Z%22%2F%3E%3C%2Fsvg%3E");
    --lc-icon-tiktok: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20448%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M448%2C209.91a210.06%2C210.06%2C0%2C0%2C1-122.77-39.25V349.38A162.55%2C162.55%2C0%2C1%2C1%2C185%2C188.31V278.2a74.62%2C74.62%2C0%2C1%2C0%2C52.23%2C71.18V0l88%2C0a121.18%2C121.18%2C0%2C0%2C0%2C1.86%2C22.17h0A122.18%2C122.18%2C0%2C0%2C0%2C381%2C102.39a121.43%2C121.43%2C0%2C0%2C0%2C67%2C20.14Z%22%2F%3E%3C%2Fsvg%3E");
    --lc-icon-messenger: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20512%20512%22%3E%3Cpath%20fill%3D%22%23000%22%20d%3D%22M256.55%208C116.52%208%208%20110.34%208%20248.57c0%2072.3%2029.71%20134.78%2078.07%20177.94%208.35%207.51%206.63%2011.86%208.05%2058.23A19.92%2019.92%200%200%200%20122%20502.31c52.91-23.3%2053.59-25.14%2062.56-22.7C337.85%20521.8%20504%20423.7%20504%20248.57%20504%20110.34%20396.59%208%20256.55%208zm149.24%20185.13l-73%20115.57a37.37%2037.37%200%200%201-53.91%209.93l-58.08-43.47a15%2015%200%200%200-18%200l-78.37%2059.44c-10.46%207.93-24.16-4.6-17.11-15.67l73-115.57a37.36%2037.36%200%200%201%2053.91-9.93l58.06%2043.46a15%2015%200%200%200%2018%200l78.41-59.38c10.44-7.98%2024.14%204.54%2017.09%2015.62z%22%2F%3E%3C%2Fsvg%3E");
    --hub-search-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Ccircle cx='11' cy='11' r='6.5' stroke='%2364748b' stroke-width='1.8'/%3E%3Cpath d='m16.5 16.5 5 5' stroke='%2364748b' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
}

/* Hub search box */
.gludo-search {
    width: 100%;
    margin: 1.5rem 0 2rem;
}

.gludo-searchHero {
    position: relative;
    border-radius: 20px;
    padding: 1.15rem 1.15rem 1rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 250, 252, 0.96) 100%);
    border: 1px solid #e8eef4;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.gludo-searchHero::before {
    content: "";
    position: absolute;
    inset: -2px;
    background:
        radial-gradient(900px 220px at 0% 0%, rgba(14, 165, 233, 0.12) 0%, rgba(14, 165, 233, 0) 60%),
        radial-gradient(700px 260px at 100% 0%, rgba(99, 102, 241, 0.10) 0%, rgba(99, 102, 241, 0) 62%),
        radial-gradient(640px 260px at 15% 100%, rgba(34, 197, 94, 0.06) 0%, rgba(34, 197, 94, 0) 60%);
    pointer-events: none;
}

.gludo-searchHero__head {
    position: relative;
    margin-bottom: 0.75rem;
}

.gludo-searchHero__title {
    margin: 0;
    font-size: clamp(1.125rem, 2.4vw, 1.375rem);
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.01em;
    line-height: 1.25;
}

.gludo-searchHero__subtitle {
    margin: 0.5rem 0 0;
    color: #475569;
    font-size: 0.875rem;
    line-height: 1.55;
}

.gludo-search__shell {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.gludo-search__shell--hero {
    padding: 0.75rem;
    border-color: rgba(148, 163, 184, 0.35);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(8px);
}

.gludo-search__shell:focus-within {
    border-color: #bfdbfe;
    box-shadow: 0 0 0 0.22rem rgba(3, 88, 184, 0.14), 0 4px 14px rgba(15, 23, 42, 0.05);
}

.gludo-search__icon {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f1f5f9;
    flex: 0 0 auto;
}

.gludo-search__icon::before {
    content: "";
    width: 1.15rem;
    height: 1.15rem;
    background-color: #64748b;
    mask-image: var(--hub-search-icon);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-image: var(--hub-search-icon);
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
}

.gludo-search__input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 0.95rem;
    line-height: 1.2;
    padding: 0.65rem 0.15rem;
    color: #0f172a;
}

.gludo-search__input::placeholder {
    color: #94a3b8;
}

.gludo-search__btn {
    flex: 0 0 auto;
    border: 1px solid #024a9c;
    background: #0358b8;
    color: #fff;
    border-radius: 14px;
    padding: 0.65rem 1.1rem;
    font: inherit;
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.2;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease;
}

.gludo-search__btn:hover {
    background: #024a9c;
    border-color: #023b7d;
}

@media (max-width: 575.98px) {
    .gludo-searchHero {
        padding: 0.9rem 0.75rem 0.75rem;
        border-radius: 18px;
    }

    .gludo-searchHero__subtitle {
        font-size: 0.8125rem;
    }

    .gludo-search__shell,
    .gludo-search__shell--hero {
        flex-wrap: wrap;
        padding: 0.55rem;
        border-radius: 16px;
    }

    .gludo-search__icon {
        width: 40px;
        height: 40px;
        border-radius: 13px;
    }

    .gludo-search__btn {
        width: 100%;
        padding: 0.7rem 1rem;
    }
}

.directory-page {
    padding-bottom: 2rem;
}

.directory-page__header h1 {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin-bottom: 0.75rem;
}

.directory-page__intro {
    color: var(--gludo-muted);
    line-height: 1.7;
    max-width: 72ch;
}

.directory-section {
    margin-bottom: 2rem;
}

.directory-countries {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.85rem;
}

.directory-country-card {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 0.75rem;
    align-items: center;
    padding: 1rem;
    color: inherit;
}

.directory-country-card span {
    font-size: 0.85rem;
    color: var(--gludo-muted);
    background: var(--gludo-bg);
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
}

.directory-country-flag {
    border-radius: 2px;
    vertical-align: middle;
}

.directory-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 1.5rem;
}

.directory-layout__title {
    font-size: 1.2rem;
    margin: 0 0 1rem;
}

.directory-list,
.directory-featured {
    display: grid;
    gap: 1rem;
}

.directory-featured {
    margin-bottom: 1.25rem;
}

.directory-featured h3 {
    margin: 0 0 0.5rem;
    font-size: 1rem;
    color: var(--gludo-accent);
}

.directory-list-item {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 1rem;
    padding: 1rem;
}

.directory-list-item--featured {
    border: 1px solid color-mix(in srgb, var(--gludo-accent) 35%, var(--gludo-border));
    background: color-mix(in srgb, var(--gludo-accent) 6%, var(--gludo-surface));
}

.directory-list-item__logo {
    width: 96px;
    height: 96px;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--gludo-border);
}

.directory-list-item__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 0.35rem;
}

.directory-list-item__title {
    font-size: 1.05rem;
    margin: 0 0 0.35rem;
}

.directory-list-item__title a {
    color: var(--gludo-primary-dark);
}

.directory-list-item__meta,
.directory-list-item__address {
    margin: 0 0 0.35rem;
    font-size: 0.88rem;
    color: var(--gludo-muted);
}

.directory-list-item__badge {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--gludo-primary);
    background: rgba(11, 61, 79, 0.08);
    border-radius: 999px;
    padding: 0.2rem 0.55rem;
}

.directory-rating {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin: 0.35rem 0;
}

.directory-rating__track {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    direction: ltr;
    line-height: 1;
    flex-shrink: 0;
}

.directory-rating__empty,
.directory-rating__fill {
    font-size: 0.95rem;
    letter-spacing: 0.04em;
    white-space: nowrap;
}

.directory-rating__empty::before {
    content: "★★★★★";
    color: #d0d5dd;
}

.directory-rating__fill {
    position: absolute;
    inset-block-start: 0;
    inset-inline-start: 0;
    overflow: hidden;
}

.directory-rating__fill::before {
    content: "★★★★★";
    color: #f59e0b;
}

.directory-rating--lg a {
    font-size: 0.85rem;
}

.directory-filters,
.directory-categories {
    padding: 1rem;
    position: sticky;
    top: calc(var(--gludo-header-height) + 1rem);
}

/* Sidebar navigation */
.directory-sidebar {
    padding: 0;
    overflow: hidden;
    position: sticky;
    top: calc(var(--gludo-header-height) + 1rem);
}

.directory-sidebar__head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.1rem;
    background: linear-gradient(135deg, rgba(11, 61, 79, 0.1), rgba(11, 61, 79, 0.03));
    border-bottom: 1px solid var(--gludo-border);
}

.directory-sidebar__head-text {
    min-width: 0;
}

.directory-sidebar__meta {
    margin: 0.2rem 0 0;
    font-size: 0.82rem;
    color: var(--gludo-muted);
}

.directory-sidebar__icon {
    width: 2.1rem;
    height: 2.1rem;
    flex-shrink: 0;
    border-radius: 11px;
    background: linear-gradient(145deg, var(--gludo-primary-light), var(--gludo-primary));
    box-shadow: 0 6px 16px rgba(11, 61, 79, 0.22);
    position: relative;
}

.directory-sidebar__icon::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 1rem;
    height: 1rem;
    background-color: #fff;
    mask-image: var(--icon-category);
    mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    -webkit-mask-image: var(--icon-category);
    -webkit-mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
}

.directory-sidebar--filters .directory-sidebar__icon::after {
    mask-image: var(--icon-filter);
    -webkit-mask-image: var(--icon-filter);
}

.directory-sidebar__title {
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.35;
    color: var(--gludo-primary);
}

.directory-sidebar__body {
    padding: 0.7rem;
}

.directory-sidebar__details {
    margin-top: 0.35rem;
}

.directory-sidebar__toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    margin: 0;
    padding: 0.7rem 0.85rem;
    border: 1px dashed var(--gludo-border);
    border-radius: var(--gludo-radius-sm);
    background: var(--gludo-bg);
    color: var(--gludo-primary);
    font: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
    transition:
        background var(--gludo-transition),
        border-color var(--gludo-transition),
        color var(--gludo-transition);
}

.directory-sidebar__toggle::-webkit-details-marker {
    display: none;
}

.directory-sidebar__toggle::after {
    content: "";
    width: 0.55rem;
    height: 0.55rem;
    border-inline-end: 2px solid currentColor;
    border-block-end: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform var(--gludo-transition);
    margin-top: -0.15rem;
}

html[dir="rtl"] .directory-sidebar__toggle::after {
    transform: rotate(-45deg);
}

.directory-sidebar__details[open] .directory-sidebar__toggle::after {
    transform: rotate(-135deg);
}

html[dir="rtl"] .directory-sidebar__details[open] .directory-sidebar__toggle::after {
    transform: rotate(135deg);
}

.directory-sidebar__toggle:hover {
    background: #fff;
    border-color: var(--gludo-primary);
}

.directory-sidebar__list--more {
    margin-top: 0.35rem;
}

.directory-sidebar__group + .directory-sidebar__group {
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px dashed var(--gludo-border);
}

.directory-sidebar__group-title {
    margin: 0 0 0.55rem;
    padding-inline: 0.35rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--gludo-muted);
}

.directory-sidebar__list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.directory-sidebar__link {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.7rem 0.8rem;
    border-radius: var(--gludo-radius-sm);
    border: 1px solid transparent;
    text-decoration: none;
    color: var(--gludo-text);
    background: transparent;
    transition:
        background var(--gludo-transition),
        border-color var(--gludo-transition),
        color var(--gludo-transition),
        transform var(--gludo-transition),
        box-shadow var(--gludo-transition);
}

.directory-sidebar__link:hover {
    background: var(--gludo-bg);
    border-color: var(--gludo-border);
    color: var(--gludo-primary);
    transform: translateX(calc(var(--sidebar-hover-shift, -2px) * 1));
    box-shadow: var(--gludo-shadow-sm);
}

html[dir="rtl"] .directory-sidebar__link:hover {
    --sidebar-hover-shift: 2px;
}

.directory-sidebar__label {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    line-height: 1.45;
    font-size: 0.9rem;
    font-weight: 500;
}

.directory-sidebar__flag {
    flex-shrink: 0;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}

.directory-sidebar__count {
    flex-shrink: 0;
    min-width: 2.1rem;
    padding: 0.18rem 0.55rem;
    border-radius: 999px;
    background: var(--gludo-bg);
    color: var(--gludo-primary);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.4;
    text-align: center;
    transition:
        background var(--gludo-transition),
        color var(--gludo-transition);
}

.directory-sidebar__link:hover .directory-sidebar__count {
    background: var(--gludo-primary);
    color: #fff;
}

.directory-filters__title,
.directory-categories h2 {
    font-size: 1rem;
    margin: 0 0 0.85rem;
}

.directory-filters__group + .directory-filters__group {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid var(--gludo-border);
}

.directory-filters__group h3 {
    font-size: 0.92rem;
    margin: 0 0 0.55rem;
}

.directory-filters__group ul,
.directory-categories ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.directory-filters__group li + li,
.directory-categories li + li {
    margin-top: 0.45rem;
}

.directory-filters__group a,
.directory-categories a {
    display: flex;
    justify-content: space-between;
    gap: 0.75rem;
    font-size: 0.9rem;
    color: var(--gludo-text);
}

.directory-filters__group a span:last-child,
.directory-categories a span:last-child {
    color: var(--gludo-muted);
}

.directory-explore {
    margin-top: 2rem;
}

.directory-explore__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 0.65rem;
}

.directory-explore__item {
    padding: 0.85rem 1rem;
    color: inherit;
    font-size: 0.9rem;
}

.directory-empty {
    color: var(--gludo-muted);
}

/* Show page */
.directory-show-header {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 1rem;
    padding: 1.25rem;
    margin-bottom: 1rem;
}

.directory-show-header__logo img {
    width: 96px;
    height: 96px;
    object-fit: contain;
    border-radius: 12px;
    border: 1px solid var(--gludo-border);
    background: #fff;
    padding: 0.35rem;
}

.directory-show-header h1 {
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    margin: 0 0 0.5rem;
}

.directory-show-content,
.directory-show-ai,
.directory-show-gallery {
    padding: 1.25rem;
    margin-bottom: 1rem;
}

.directory-show-content__body,
.directory-show-extra,
.directory-show-ai__body {
    line-height: 1.7;
}

.directory-show-extra {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--gludo-border);
}

.directory-show-extra h2 {
    font-size: 1.1rem;
    margin: 0 0 0.65rem;
}

.directory-show-ai__meta {
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: var(--gludo-muted);
}

/* Legacy-style listing contact block (ported from gludo.org directory_listing.tpl) */

.listing-contact-shell {
    padding: 1rem 1.15rem 1.15rem;
    margin-bottom: 1rem;
    border-radius: 14px;
    border: 1px solid #e8eef4;
    background: #fff;
}

.listing-contact-heading {
    font-size: 1.35rem;
    color: #0f172a;
    margin: 0 0 1rem;
    border: 0;
}

.listing-contact-layout {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
}

.listing-contact-layout--map {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.listing-contact-layout__col {
    min-width: 0;
}

.listing-contact-stack {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.listing-contact-card {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    padding: 16px 18px;
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
}

.listing-contact-card--map {
    padding-bottom: 14px;
    height: 100%;
}

.listing-contact-card__title {
    font-size: 15px;
    font-weight: 800;
    color: #0f172a;
    margin: 0 0 10px;
    display: flex;
    align-items: center;
    gap: 10px;
    line-height: 1.3;
}

.listing-contact-card__icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: #e8f1fb;
    color: #0358b8;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    line-height: 0;
    --lc-mask: var(--lc-icon-location);
}

.listing-contact-card__icon::before {
    content: "";
    display: block;
    width: 15px;
    height: 15px;
    background-color: currentColor;
    mask-image: var(--lc-mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: var(--lc-mask);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.listing-contact-card__icon--location { --lc-mask: var(--lc-icon-location); }
.listing-contact-card__icon--phone { --lc-mask: var(--lc-icon-phone); }
.listing-contact-card__icon--whatsapp {
    --lc-mask: var(--lc-icon-whatsapp);
    color: #128c7e;
}
.listing-contact-card__icon--clock { --lc-mask: var(--lc-icon-clock); }
.listing-contact-card__icon--globe { --lc-mask: var(--lc-icon-globe); }
.listing-contact-card__icon--link { --lc-mask: var(--lc-icon-link); }
.listing-contact-card__icon--calendar { --lc-mask: var(--lc-icon-calendar); }
.listing-contact-card__icon--map { --lc-mask: var(--lc-icon-map); }

.listing-contact-card__body {
    font-size: 14px;
    line-height: 1.65;
    color: #334155;
}

.listing-contact-card__body p {
    margin: 0.35em 0;
}

.listing-contact-muted {
    color: #64748b;
    font-size: 13px;
}

.listing-contact-phone-link,
.listing-contact-website-link {
    color: #0358b8;
    font-weight: 700;
    font-size: 15px;
    text-decoration: none;
    word-break: break-word;
}

.listing-contact-phone-link--whatsapp {
    color: #128c7e;
}

.listing-contact-phone-link:hover,
.listing-contact-website-link:hover {
    text-decoration: underline;
}

.listing-contact-website-link {
    font-size: 14px;
    font-weight: 600;
}

.listing-contact-hours-line {
    margin: 0;
    font-weight: 600;
}

.listing-contact-hours-label {
    color: #64748b;
    font-weight: 600;
    font-size: 13px;
}

.listing-contact-hours-sep {
    color: #94a3b8;
    margin: 0 0.35rem;
}

.listing-contact-website-wrap {
    margin: 0;
    word-break: break-word;
}

.listing-contact-social {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.listing-contact-social__link {
    display: flex;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    align-items: center;
    justify-content: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    line-height: 0;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    color: var(--social-color, #334155);
    text-decoration: none;
    --lc-mask: var(--lc-icon-link);
}

.listing-contact-social__link::before {
    content: "";
    display: block;
    width: 22px;
    height: 22px;
    background-color: currentColor;
    mask-image: var(--lc-mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: var(--lc-mask);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.listing-contact-social__link--facebook { --lc-mask: var(--lc-icon-facebook); }
.listing-contact-social__link--twitter { --lc-mask: var(--lc-icon-twitter); }
.listing-contact-social__link--linkedin { --lc-mask: var(--lc-icon-linkedin); }
.listing-contact-social__link--youtube { --lc-mask: var(--lc-icon-youtube); }
.listing-contact-social__link--instagram { --lc-mask: var(--lc-icon-instagram); }
.listing-contact-social__link--snapchat { --lc-mask: var(--lc-icon-snapchat); }
.listing-contact-social__link--tiktok { --lc-mask: var(--lc-icon-tiktok); }
.listing-contact-social__link--messenger { --lc-mask: var(--lc-icon-messenger); }

.listing-contact-social__link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.1);
}

.listing-contact-day-chips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.listing-contact-chip {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #e2e8f0;
    font-size: 13px;
    font-weight: 600;
    color: #334155;
}

.listing-contact-map-frame {
    margin-top: 4px;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid #e2e8f0;
    line-height: 0;
    background: #e5e7eb;
    min-height: 280px;
}

.listing-contact-map-frame iframe {
    display: block;
    width: 100%;
    vertical-align: middle;
}

.listing-contact-map-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 280px;
    padding: 1rem;
    color: #0358b8;
    font-weight: 700;
    text-decoration: none;
}

.listing-contact-report {
    text-align: end;
    padding-top: 12px;
    margin-top: 4px;
}

.listing-contact-report-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    color: #ca8a04;
    text-decoration: none;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
}

.listing-contact-report-link:hover {
    color: #a16207;
}

.listing-contact-report-link__icon {
    display: inline-block;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    background-color: currentColor;
    mask-image: var(--lc-icon-info);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: var(--lc-icon-info);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.listing-contact-inline-icon {
    display: inline-block;
    width: 14px;
    height: 14px;
    vertical-align: -2px;
    margin-inline-end: 0.25rem;
    background-color: #64748b;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.listing-contact-inline-icon--location {
    mask-image: var(--lc-icon-location);
    -webkit-mask-image: var(--lc-icon-location);
}

.directory-show-branches-legacy,
.directory-show-download {
    padding: 1.25rem;
    margin-bottom: 1rem;
}

.directory-show-branches-legacy h3,
.directory-show-branches-legacy h4 {
    margin: 0 0 0.5rem;
}

.directory-show-branch-legacy {
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--gludo-border);
}

.directory-show-branch-legacy:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}

.directory-show-branch-legacy p {
    margin: 0;
    color: var(--gludo-muted);
    line-height: 1.6;
}

.directory-show-download h2 {
    font-size: 1.15rem;
    margin: 0 0 0.5rem;
}

.directory-show-download p {
    margin: 0;
    line-height: 1.65;
}

.directory-show-gallery__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.directory-show-gallery__item {
    display: block;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--gludo-border);
    aspect-ratio: 4 / 3;
    background: #eef2f6;
}

.directory-show-gallery__item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 991px) {
    .directory-layout {
        grid-template-columns: 1fr;
    }

    .directory-filters,
    .directory-categories,
    .directory-sidebar {
        position: static;
    }

    .listing-contact-layout--map {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .listing-contact-shell {
        padding-inline: 1rem;
    }

    .listing-contact-layout,
    .listing-contact-layout--map {
        grid-template-columns: 1fr;
    }

    .directory-list-item,
    .directory-show-header {
        grid-template-columns: 72px 1fr;
    }

    .directory-list-item__logo,
    .directory-show-header__logo img {
        width: 72px;
        height: 72px;
    }
}

/* Directory show — page-specific (.ev shared core lives in style.css) */
.page-directory-show .site-main {
    padding-top: var(--gludo-header-height);
    padding-bottom: 0;
    background: #f4f6f8;
}

.ev-profile {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    color: #fff;
    background: linear-gradient(135deg, var(--navy, #0e2c3f) 0%, var(--navy-deep, #0a2230) 100%);
}

.ev-profile::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .5;
    background: radial-gradient(120% 140% at 88% -10%, rgba(47, 143, 134, .5), transparent 55%);
}

.ev-profile__inner {
    padding-block: clamp(28px, 5vw, 52px);
    display: flex;
    align-items: center;
    gap: clamp(18px, 3vw, 32px);
    flex-wrap: wrap;
}

.ev-profile__logo {
    flex: none;
    inline-size: clamp(82px, 12vw, 116px);
    aspect-ratio: 1;
    background: #fff;
    border-radius: 20px;
    padding: 10px;
    box-shadow: 0 14px 34px rgba(8, 28, 40, .35);
}

.ev-profile__logo img {
    inline-size: 100%;
    block-size: 100%;
    object-fit: contain;
    border-radius: 11px;
}

.ev-profile__main {
    flex: 1 1 280px;
    min-inline-size: 0;
}

.ev-profile__eyebrow {
    display: flex;
    align-items: center;
    gap: .55em;
    color: #a9c2cf;
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .02em;
    margin: 0;
}

.ev-profile__eyebrow .dot {
    inline-size: 4px;
    block-size: 4px;
    border-radius: 50%;
    background: currentColor;
    opacity: .6;
}

.ev-profile__title {
    color: #fff;
    font-weight: 800;
    font-size: clamp(1.45rem, 1rem + 2.3vw, 2.4rem);
    margin-block: .35em .55em;
    text-wrap: balance;
}

.ev-profile__rating {
    display: inline-flex;
    align-items: center;
    gap: .55em;
    color: #eaf2f6;
    font-size: .92rem;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 999px;
    padding: .4em .9em;
    font-weight: 500;
    text-decoration: none;
}

.ev-profile__rating:hover {
    text-decoration: none;
    background: rgba(255, 255, 255, .18);
    color: #eaf2f6;
}

.ev-profile__rating b {
    font-weight: 800;
    color: #fff;
}

.ev-profile__rating .directory-rating {
    margin: 0;
}

.ev-profile__rating .directory-rating__empty::before {
    color: rgba(255, 255, 255, .35);
}

.ev-profile__rating .directory-rating__fill::before {
    color: #ef8a1e;
}

.ev-sec {
    padding: clamp(20px, 2.4vw, 28px);
}

.ev-sec__title {
    font-size: clamp(1.15rem, 1rem + .7vw, 1.45rem);
    color: var(--ink, #10242f);
    position: relative;
    padding-inline-start: .7em;
    margin-block-end: .7em;
}

.ev-sec__title::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    inset-block: .18em;
    inline-size: 4px;
    border-radius: 4px;
    background: var(--amber, #ef8a1e);
}

.ev-map__frame {
    position: relative;
    aspect-ratio: 16 / 9;
    border-radius: var(--radius-sm, 11px);
    overflow: hidden;
    border: 1px solid var(--border, #e5eaef);
    background: var(--surface-2, #f8fafb);
    margin-block: .4em 1em;
}

.ev-map__frame iframe {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    border: 0;
}

.ev-msg .ev-btn {
    margin-block-start: .4em;
}

@media (min-width: 1000px) {
    .ev-contact {
        position: sticky;
        top: calc(var(--gludo-header-height) + 24px);
    }
}

.ev-contact {
    background: var(--surface, #fff);
    border: 1px solid var(--border, #e5eaef);
    border-radius: var(--radius, 16px);
    box-shadow: var(--shadow-lift, 0 18px 44px rgba(16, 36, 47, .14));
    overflow: hidden;
}

.ev-contact__head {
    padding: 1.15em 1.3em;
    color: #fff;
    background: linear-gradient(135deg, #0e2c3f, #0a2230);
}

.ev-contact__head h2 {
    font-size: 1.05rem;
    font-weight: 700;
    color: #fff;
    margin: 0;
}

.ev-contact__head p {
    color: #9fb6c4;
    font-size: .84rem;
    margin-block-start: .15em;
    margin-block-end: 0;
}

.ev-contact__body {
    padding: 1.25em 1.3em;
    display: flex;
    flex-direction: column;
    gap: 1.1em;
}

.ev-contact__actions {
    display: flex;
    flex-direction: column;
    gap: .55em;
}

.ev-rows {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: .95em;
}

.ev-rows li {
    display: flex;
    align-items: flex-start;
    gap: .7em;
    font-size: .92rem;
    color: var(--ink, #10242f);
}

.ev-rows .ev-ic {
    color: var(--teal, #2f8f86);
    margin-block-start: .18em;
}

.ev-rows a {
    color: var(--ink, #10242f);
    font-weight: 600;
    display: block;
}

.ev-rows a:hover {
    color: var(--teal, #2f8f86);
}

.ev-rows small {
    display: block;
    color: var(--muted, #5d6f7b);
    font-weight: 400;
    font-size: .82rem;
    margin-block-start: .1em;
}

.ev-divider {
    block-size: 1px;
    background: var(--border, #e5eaef);
    margin-block: .1em;
}

.ev-field-label {
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--muted, #5d6f7b);
    text-transform: uppercase;
    margin-block-end: .55em;
}

.ev-days {
    display: flex;
    flex-wrap: wrap;
    gap: .4em;
}

.ev-days span {
    font-size: .8rem;
    font-weight: 600;
    color: var(--ink, #10242f);
    background: var(--surface-2, #f8fafb);
    border: 1px solid var(--border, #e5eaef);
    border-radius: 8px;
    padding: .32em .7em;
}

.ev-soc {
    display: flex;
    gap: .5em;
    flex-wrap: wrap;
}

.ev-soc a {
    inline-size: 40px;
    block-size: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--surface-2, #f8fafb);
    border: 1px solid var(--border, #e5eaef);
    color: #0e2c3f;
    transition: .16s ease;
    text-decoration: none;
}

.ev-soc a::before {
    content: "";
    display: block;
    inline-size: 1.15em;
    block-size: 1.15em;
    background-color: currentColor;
    mask-image: var(--lc-mask);
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
    -webkit-mask-image: var(--lc-mask);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
}

.ev-soc a:hover {
    background: #0e2c3f;
    color: #fff;
    border-color: #0e2c3f;
    text-decoration: none;
}

.ev-soc a.ev-soc__link--facebook { --lc-mask: var(--lc-icon-facebook); }
.ev-soc a.ev-soc__link--twitter { --lc-mask: var(--lc-icon-twitter); }
.ev-soc a.ev-soc__link--linkedin { --lc-mask: var(--lc-icon-linkedin); }
.ev-soc a.ev-soc__link--youtube { --lc-mask: var(--lc-icon-youtube); }
.ev-soc a.ev-soc__link--instagram { --lc-mask: var(--lc-icon-instagram); }
.ev-soc a.ev-soc__link--snapchat { --lc-mask: var(--lc-icon-snapchat); }
.ev-soc a.ev-soc__link--tiktok { --lc-mask: var(--lc-icon-tiktok); }
.ev-soc a.ev-soc__link--messenger { --lc-mask: var(--lc-icon-messenger); }

.ev-contact .engagement-favourite {
    display: contents;
}

.ev-contact .engagement-favourite__btn .ev-ic {
    stroke: #ef8a1e;
}

.ev-contact .engagement-favourite__ack {
    font-size: .82rem;
    color: #2f8f86;
    text-align: center;
}

.ev-contact .engagement-favourite__ack:empty {
    display: none;
}

.ev-report {
    display: inline-flex;
    align-items: center;
    gap: .4em;
    font-size: .82rem;
    color: #a45a07;
    font-weight: 600;
    text-decoration: none;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
    font-family: inherit;
}

.ev-report:hover {
    text-decoration: underline;
}

.ev-report .ev-ic {
    inline-size: 1em;
    block-size: 1em;
}

.ev-report-dialog {
    position: relative;
    border: 0;
    border-radius: 1rem;
    padding: 0;
    inline-size: min(34rem, calc(100vw - 2rem));
    box-shadow: 0 1.25rem 3rem rgba(15, 23, 42, .18);
}

.ev-report-dialog::backdrop {
    background: rgba(15, 23, 42, .45);
}

.ev-report-dialog__close {
    position: absolute;
    inset-block-start: .75rem;
    inset-inline-end: .75rem;
    z-index: 2;
    border: 0;
    background: transparent;
    font-size: 1.5rem;
    line-height: 1;
    color: #64748b;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    inline-size: 2rem;
    block-size: 2rem;
    border-radius: 0.5rem;
}

.ev-report-dialog__close:hover {
    background: #f1f5f9;
    color: #0f172a;
}

.ev-report-dialog__body {
    position: relative;
    padding: 1.5rem;
}

.ev-report-dialog__title {
    margin: 0 0 .5rem;
    font-size: 1.15rem;
}

.ev-report-dialog__intro {
    margin: 0 0 1rem;
    color: #64748b;
    font-size: .92rem;
}

.ev-report-dialog__intro a {
    color: #0b6e4f;
    font-weight: 600;
    text-decoration: none;
}

.ev-report-dialog__intro a:hover {
    text-decoration: underline;
}

.ev-contact-credits {
    display: flex;
    align-items: center;
    gap: .875rem;
    margin: 0 0 1rem;
    padding: .75rem 1rem;
    background: #fff8f0;
    border: 1px solid #fde4c8;
    border-radius: .75rem;
}

.ev-contact-credits__badge {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-inline-size: 3rem;
    block-size: 3rem;
    padding-inline: .4rem;
    border-radius: 999px;
    background: var(--amber, #ef8a1e);
    color: #fff;
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1;
    box-shadow: 0 2px 8px rgba(239, 138, 30, .35);
}

.ev-contact-credits__text {
    margin: 0;
    color: #64748b;
    font-size: .92rem;
    line-height: 1.5;
}

.ev-contact-credits__label {
    display: block;
    color: #0f172a;
    font-weight: 700;
    font-size: .98rem;
}

.ev-contact-credits__text a {
    color: #0b6e4f;
    font-weight: 600;
    text-decoration: none;
}

.ev-contact-credits__text a:hover {
    text-decoration: underline;
}

.ev-report-dialog .engagement-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin: 0;
}

.ev-report-dialog .engagement-form__field {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.45rem;
    width: 100%;
}

.ev-report-dialog .engagement-form__label {
    display: block;
    width: 100%;
    font-size: 0.9rem;
    font-weight: 600;
    color: #1e293b;
}

.ev-report-dialog .engagement-form__control {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.75rem 0.875rem;
    border: 1px solid #cbd5e1;
    border-radius: 0.625rem;
    font: inherit;
    line-height: 1.5;
    background: #fff;
    color: #0f172a;
}

.ev-report-dialog .engagement-form__control:focus {
    outline: 0;
    border-color: #ef8a1e;
    box-shadow: 0 0 0 3px rgba(239, 138, 30, 0.16);
}

.ev-report-dialog textarea.engagement-form__control {
    min-height: 9rem;
    resize: vertical;
}

.ev-report-dialog .engagement-form__hint {
    display: block;
    width: 100%;
    margin: 0;
    font-size: 0.82rem;
    color: #64748b;
}

.ev-report-dialog .engagement-form__actions {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    flex-wrap: wrap;
    margin-top: 0.25rem;
}

.ev-ai-review__trigger,
.ev-empty .ev-ai-review__trigger {
    display: inline;
    margin-inline-start: .25rem;
    padding: 0;
    border: 0;
    background: none;
    color: #a45a07;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    text-decoration: underline;
}

.ev-ai-review__meta {
    margin-block-start: .75rem;
}

.ev-actionbar {
    display: none;
}

@media (max-width: 999px) {
    .ev-actionbar {
        position: fixed;
        inset-inline: 0;
        inset-block-end: 0;
        z-index: 40;
        display: flex;
        gap: .5em;
        padding: .55em .7em calc(.55em + env(safe-area-inset-bottom));
        background: rgba(255, 255, 255, .96);
        backdrop-filter: blur(8px);
        border-block-start: 1px solid var(--border, #e5eaef);
        box-shadow: 0 -8px 24px rgba(16, 36, 47, .1);
    }

    body.page-directory-show {
        padding-block-end: calc(66px + env(safe-area-inset-bottom));
    }
}

.ev-actionbar__btn {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45em;
    font: inherit;
    font-weight: 700;
    font-size: .92rem;
    padding: .7em .4em;
    border-radius: 12px;
    border: 1.5px solid var(--border-strong, #d4dde4);
    background: var(--surface, #fff);
    color: var(--ink, #10242f);
    text-decoration: none;
}

.ev-actionbar__btn:hover {
    text-decoration: none;
}

.ev-actionbar__btn .ev-ic {
    inline-size: 1.15em;
    block-size: 1.15em;
}

.ev-actionbar__btn--call {
    background: #ef8a1e;
    color: #fff;
    border-color: transparent;
    box-shadow: 0 6px 14px rgba(239, 138, 30, .32);
}

/* Vanilla gallery lightbox */
.ev-lightbox[hidden] {
    display: none !important;
}

.ev-lightbox {
    position: fixed;
    inset: 0;
    z-index: 2000;
}

.ev-lightbox__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(8, 28, 40, .88);
}

.ev-lightbox__dialog {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100%;
    padding: 1.5rem;
}

.ev-lightbox__figure {
    margin: 0;
    max-width: min(960px, 100%);
    width: 100%;
}

.ev-lightbox__img {
    width: 100%;
    max-height: calc(100vh - 120px);
    object-fit: contain;
    border-radius: 12px;
    background: #0a2230;
}

.ev-lightbox__caption {
    color: #eaf2f6;
    text-align: center;
    margin-block-start: .75em;
    font-size: .9rem;
}

.ev-lightbox__close,
.ev-lightbox__nav {
    position: fixed;
    border: 0;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    cursor: pointer;
    border-radius: 999px;
    font-size: 1.75rem;
    line-height: 1;
    width: 44px;
    height: 44px;
}

.ev-lightbox__close {
    inset-block-start: 1rem;
    inset-inline-end: 1rem;
}

.ev-lightbox__nav {
    inset-block-start: 50%;
    transform: translateY(-50%);
}

.ev-lightbox__nav--prev {
    inset-inline-start: .75rem;
}

.ev-lightbox__nav--next {
    inset-inline-end: .75rem;
}

.ev-lightbox__nav[hidden] {
    display: none;
}

body.ev-lightbox-open {
    overflow: hidden;
}
