/*
 * "Nearby offers" block of the public menu. Loaded ONLY when geofenced offers are enabled for the restaurant (menu/partials/geofence.blade.php).
 * Uses the menu skins' --mn-* tokens, so classic / modern / stitch all style it. Logical properties only (RTL-safe); 44px minimum targets.
 */
.mn-geo {
    max-width: var(--mn-max, 1100px);
    margin: 28px auto 8px;
    padding-inline: var(--mn-gutter, 16px);
    font-family: var(--mn-font, inherit);
    color: var(--mn-text, #0a0d12);
}
.mn-geo[hidden] { display: none; }
.mn-geo-card {
    background: var(--mn-surface, #fff);
    border: 1px solid var(--mn-border, #e5e7eb);
    border-radius: var(--mn-radius, 12px);
    box-shadow: var(--mn-shadow, none);
    padding: 16px;
    display: grid;
    gap: 14px;
}
.mn-geo-title { margin: 0; font-size: 1.1rem; line-height: 1.3; }
.mn-geo-intro, .mn-geo-honest, .mn-geo-step-text { margin: 0; font-size: 0.92rem; line-height: 1.6; color: var(--mn-text-2, #4a5568); overflow-wrap: anywhere; }
.mn-geo-honest { padding: 10px 12px; border-inline-start: 3px solid var(--mn-primary, #047857); background: var(--mn-surface-2, #f3f4f6); border-radius: var(--mn-radius-sm, 8px); }
.mn-geo-step { display: grid; gap: 8px; padding-top: 12px; border-top: 1px solid var(--mn-border, #e5e7eb); }
.mn-geo-step-title { margin: 0; font-size: 1rem; line-height: 1.3; }
.mn-geo-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.mn-geo-btn {
    min-height: 44px;
    min-width: 44px;
    padding: 10px 18px;
    border-radius: var(--mn-radius-sm, 8px);
    border: 1px solid var(--mn-primary, #047857);
    background: var(--mn-primary, #047857);
    color: var(--mn-on-primary, #fff);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}
.mn-geo-btn.is-secondary { background: transparent; color: var(--mn-primary, #047857); }
.mn-geo-btn[disabled] { opacity: 0.55; cursor: not-allowed; }
.mn-geo-btn:focus-visible, .mn-geo a:focus-visible { outline: 3px solid var(--mn-focus, #1d4ed8); outline-offset: 2px; }
.mn-geo-status { margin: 0; min-height: 1.4em; font-size: 0.92rem; font-weight: 600; }
.mn-geo-note { margin: 0; padding: 10px 12px; border: 1px solid var(--mn-border, #e5e7eb); border-radius: var(--mn-radius-sm, 8px); font-size: 0.9rem; line-height: 1.6; background: var(--mn-surface-2, #f3f4f6); }
.mn-geo-links { margin: 0; font-size: 0.88rem; }
.mn-geo-links a { display: inline-block; min-height: 44px; line-height: 44px; }
.mn-geo [hidden] { display: none !important; }
@media (max-width: 480px) {
    .mn-geo-actions .mn-geo-btn { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .mn-geo * { transition: none !important; animation: none !important; }
}
