/*
 * Copyright (c) 2025. - PatrikMol Solutions Kft.
 */

/* ================================
   Safari / iOS WebKit fixek BS5 mellé
   ================================ */

/* 1) BS5 form-switch: biztos "thumb" a Safari-nak (ne legyen natív switch) */
@supports (-webkit-appearance: none) {
    .form-switch .form-check-input[type="checkbox"]:not([switch]) {
        -webkit-appearance: none;
        appearance: none;
        width: 2.5rem;
        height: 1.4rem;
        border-radius: 1rem;
        border: 1px solid #adb5bd;
        background-color: #dee2e6;
        position: relative;
        outline: none;
        transition: background-color .15s ease, border-color .15s ease;
    }
    .form-switch .form-check-input[type="checkbox"]:not([switch])::before {
        content: "";
        position: absolute;
        top: .1rem;
        left: .1rem;
        width: 1.2rem;
        height: 1.2rem;
        border-radius: 50%;
        background: #fff;
        box-shadow: 0 1px 2px rgba(0,0,0,.2);
        transition: transform .15s ease;
    }
    .form-switch .form-check-input[type="checkbox"]:not([switch]):checked {
        background-color: #0d6efd; /* BS5 primary */
        border-color: #0d6efd;
    }
    .form-switch .form-check-input[type="checkbox"]:not([switch]):checked::before {
        transform: translateX(calc(2.5rem - 1.2rem - .1rem));
    }
}

/* 2) iOS 100vh bug: dinamikus viewport + fallback */
:root {
    --vh-fix: 100vh; /* régi fallback */
}
@supports (height: 100dvh) {
    :root { --vh-fix: 100dvh; } /* iOS16+ és modern böngészők */
}
/* komponenseidnél használd: min-height: var(--vh-fix); */
.min-100vh,
.fullscreen,
.hero,
.offcanvas-full {
    min-height: var(--vh-fix);
}
/* extra fallback nagyon régi iOS-re */
@supports (-webkit-touch-callout: none) {
    .min-100vh, .fullscreen, .hero, .offcanvas-full {
        min-height: -webkit-fill-available;
    }
}

/* 3) Flex gap fallback régi Safarira (14.1- előtt nincs flex-gap) */
.no-flex-gap > * { margin-right: 0; margin-bottom: 0; }
@supports not (gap: 1rem) {
    .flex-gap-rows { display: flex; flex-wrap: wrap; }
    .flex-gap-rows > * { margin-right: var(--gap-x, 1rem); margin-bottom: var(--gap-y, 1rem); }
    .flex-gap-rows > *:last-child { margin-right: 0; }
    /* használat: .flex-gap-rows { --gap-x:1rem; --gap-y:1rem; } */
}

/* 4) iOS input-zoom megelőzése (>=16px font) */
@supports (-webkit-touch-callout: none) {
    input, select, textarea {
        font-size: 16px;
    }
}

/* 5) position: sticky segéd – kerüld az overflow rejtést a sticky felmenőin */
.sticky-safe {
    position: sticky;
    top: 0;
}
/* Adj a felmenőknek lehetőleg overflow: visible-t - CSS-ből ezt csak dokumentáljuk */

/* 6) backdrop-filter duplázás és háttér */
.blur-backdrop {
    background-color: rgba(255,255,255,.6);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

/* 7) :focus-visible fallback régebbi Safarira
   - Új Safariban: ok
   - Régi Safariban: esés vissza :focus-ra, de csak billentyűzetnél ideális – itt minimál fallback. */
:focus { outline: 2px solid rgba(13,110,253,.6); outline-offset: 2px; }
@supports selector(:focus-visible) {
    :focus { outline: none; }
    :focus-visible { outline: 2px solid rgba(13,110,253,.8); outline-offset: 2px; }
}

/* 8) iPhone safe-area insets (notch / home indicator körüli padding) */
.safe-area-pad {
    padding-left: max(1rem, env(safe-area-inset-left));
    padding-right: max(1rem, env(safe-area-inset-right));
    padding-top: max(1rem, env(safe-area-inset-top));
    padding-bottom: max(1rem, env(safe-area-inset-bottom));
}

/* 9) iOS workaround a background-attachment: fixed helyett
   - Rakj egy ::before fix-réteget a szakasz tetejére */
.bg-fixed-ios {
    position: relative;
    overflow: hidden;
}
.bg-fixed-ios::before {
    content: "";
    position: fixed; inset: 0;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    z-index: -1;
    /* állítsd be projektszinten:
       .bg-fixed-ios::before { background-image: url('/assets/images/your.jpg'); } */
}

/* 10) Select / natív nyilak és megjelenés */
@supports (-webkit-appearance: none) {
    select.form-select {
        -webkit-appearance: none;
        appearance: none;
        background-image: var(--bs-form-select-bg-img, none); /* hagyjuk a BS5 defaultot, ha van */
        background-repeat: no-repeat;
        background-position: right .75rem center;
        background-size: 16px 12px;
    }
}
