/* NUCLEAR OPTION: Force everything to 14px regular */
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video,
input,
button,
textarea,
select {
    font-family: "Open Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

/* Force Placeholders */
::placeholder {
    font-family: "Open Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    opacity: 1;
    /* Firefox */
}

:-ms-input-placeholder {
    /* Internet Explorer 10-11 */
    font-family: "Open Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
}

::-ms-input-placeholder {
    /* Microsoft Edge */
    font-family: "Open Sans", sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
}

html {
    background-color: #f3f4f6;
}

body {
    background-color: #f3f4f6;
    margin: 0;
    padding: 0;
    overscroll-behavior-y: none;
    overscroll-behavior-x: auto;
    width: 100%;
    height: 100%;
}

/* Scrollbar hiding */
::-webkit-scrollbar {
    width: 0px !important;
    height: 0px !important;
    display: none !important;
}

::-webkit-scrollbar-track {
    background: transparent !important;
    display: none !important;
}

::-webkit-scrollbar-thumb {
    background: transparent !important;
    display: none !important;
}

html,
body,
#root,
* {
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.no-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.no-scrollbar::-webkit-scrollbar {
    display: none;
}

/* Loader fill-up animation */
@keyframes fill-up {
    0% {
        y: 442.97;
        height: 0;
    }

    100% {
        y: 0;
        height: 442.97;
    }
}

.animate-fill-up {
    animation: fill-up 1.5s ease-in-out infinite;
}

/* Shimmer animation for skeleton loaders */
@keyframes shimmer {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(100%);
    }
}

/* Enable Safe Area Insets for iOS PWA */
.pt-safe {
    padding-top: env(safe-area-inset-top);
}

.pb-safe {
    padding-bottom: env(safe-area-inset-bottom);
}

.pl-safe {
    padding-left: env(safe-area-inset-left);
}

.pr-safe {
    padding-right: env(safe-area-inset-right);
}

/* Hide Google Maps attribution text */
.gm-style-cc,
.gm-style a[href^="https://maps.google.com/maps"],
.gmnoprint a,
.gmnoprint span,
.gm-style-cc+div,
.gm-style .gm-style-cc a,
.gm-style .gmnoprint,
.gm-style-mtc,
div[style*="background-color: rgb(245, 245, 245)"] {
    font-size: 2px !important;
    color: rgba(245, 245, 245, 0.1) !important;
    opacity: 0.05 !important;
    pointer-events: none !important;
}

/* Target all text elements inside Google Maps controls */
.gm-style div,
.gm-style span,
.gm-style a {
    font-size: 2px !important;
    color: rgba(245, 245, 245, 0.1) !important;
}

@keyframes like-heart-pop {
    0% {
        opacity: 0;
        transform: scale(0);
    }

    15% {
        opacity: 1;
        transform: scale(1.2);
    }

    30% {
        opacity: 1;
        transform: scale(0.9);
    }

    45% {
        opacity: 1;
        transform: scale(1);
    }

    80% {
        opacity: 1;
        transform: scale(1);
    }

    100% {
        opacity: 0;
        transform: scale(0);
    }
}


.animate-like-heart {
    animation: like-heart-pop 1000ms ease-in-out forwards;
}

/* Disable image dragging globally */
img {
    -webkit-user-drag: none;
    -khtml-user-drag: none;
    -moz-user-drag: none;
    -o-user-drag: none;
    user-drag: none;
    /* Prevent selection */
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
}

/* --- RESPONSIVE HELPERS (Manual Polyfill) --- */

/* Desktop Only: Visible on lg (1024px) and above */
@media (max-width: 1023px) {
    .desktop-only {
        display: none !important;
    }
}

/* Mobile Only: Visible on md/sm (below 1024px) */
@media (min-width: 1024px) {
    .mobile-only {
        display: none !important;
    }
}