/* ==========================================================================
   Betteschön – custom overrides
   ========================================================================== */

/* --------------------------------------------------------------------------
   Flex helpers
   -------------------------------------------------------------------------- */
.min-w-0 {
    min-width: 0;
}

/* --------------------------------------------------------------------------
   Sticky footer — push the <footer> to the bottom of the viewport when the
   page content is shorter than the screen.
   -------------------------------------------------------------------------- */
html, body {
    height: 100%;
}

body {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body > main {
    flex: 1 0 auto;
}

body > footer {
    flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Betteschön brand gradient (header, hero section)
   -------------------------------------------------------------------------- */
.bg-betteschoen-gradient {
    background: linear-gradient(60deg, rgb(247,149,51), rgb(243,112,85), rgb(239,78,123), rgb(161,102,171), rgb(80,115,184), rgb(16,152,173), rgb(7,179,155), rgb(111,186,130)) !important;
}

.section-header.bg-betteschoen-gradient {
    min-height: 100vh;
}

.navbar-header-gradient {
    background: linear-gradient(60deg, rgb(247,149,51), rgb(243,112,85), rgb(239,78,123), rgb(161,102,171), rgb(80,115,184), rgb(16,152,173), rgb(7,179,155), rgb(111,186,130)) !important;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.footer.bg-dark {
    background-color: #1f2937 !important;
}

.footer .text-gray,
.footer .text-white-50 {
    color: rgba(255, 255, 255, 0.7) !important;
}

.footer h5 {
    color: #fff !important;
    font-weight: 600;
}

.footer a {
    color: #3b82f6 !important;
    text-decoration: underline !important;
    transition: color 0.3s ease;
}

.footer a:hover {
    color: #60a5fa !important;
    text-decoration: none !important;
}

.footer .border-secondary,
.footer hr {
    border-color: rgba(255, 255, 255, 0.2) !important;
}

/* --------------------------------------------------------------------------
   Alerts
   -------------------------------------------------------------------------- */
.alert-info .alert-link {
    color: #1e40af !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

.alert-info .alert-link:hover {
    color: #1e3a8a !important;
    text-decoration: none !important;
}

/* Links (except buttons): no underline on hover */
a:not(.btn):hover {
    text-decoration: none !important;
}

/* --------------------------------------------------------------------------
   Offer type switcher
   -------------------------------------------------------------------------- */
.offer-type-switcher .btn {
    transition: all 0.3s ease;
}

.offer-type-switcher .btn.active {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
    border-color: var(--bs-primary) !important;
}

.offer-type-switcher .btn:not(.active) {
    background-color: #fff;
    color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.offer-type-switcher .btn:not(.active):hover {
    background-color: rgba(var(--bs-primary-rgb), 0.1);
}

/* --------------------------------------------------------------------------
   Offer cards
   -------------------------------------------------------------------------- */
.offer-card {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.offer-card.hidden,
.offer-card.is-overflow {
    display: none;
}

/* --------------------------------------------------------------------------
   SweetAlert2 — keep the "cancel" button visible on hover/focus/active
   -------------------------------------------------------------------------- */
.swal2-actions .btn-gray,
.swal2-actions .btn-gray:hover,
.swal2-actions .btn-gray:focus,
.swal2-actions .btn-gray:active,
.swal2-actions .btn-gray:focus-visible {
    background-color: #e9ecef;
    color: #212529;
    border-color: #e9ecef;
    box-shadow: none;
}

/* --------------------------------------------------------------------------
   Icon shape (circle)
   -------------------------------------------------------------------------- */
.icon-shape.rounded-circle {
    width: 48px;
    height: 48px;
    min-width: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* --------------------------------------------------------------------------
   Sign in/up (light background) links
   -------------------------------------------------------------------------- */
.bg-white a:not(.btn) {
    color: #2563eb !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

.bg-white a:not(.btn):hover {
    color: #1d4ed8 !important;
    text-decoration: none !important;
}

.bg-white a.small {
    font-weight: 500 !important;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
a.btn,
.btn a {
    text-decoration: none !important;
}

.btn:not(.btn-outline-white):hover,
.btn:not(.btn-outline-white):hover a,
a.btn:not(.btn-outline-white):hover {
    color: #fff !important;
    text-decoration: none !important;
}

.btn-outline-white:hover {
    color: #1f2937 !important;
    background-color: #fff !important;
    text-decoration: none !important;
}

/* --------------------------------------------------------------------------
   Mobile navbar
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
    .navbar-collapse {
        background-color: rgba(38, 43, 62, 0.95) !important;
        padding: 1rem;
        margin-top: 1rem;
        border-radius: 0.5rem;
    }

    .navbar-collapse .navbar-nav .nav-link {
        color: #fff !important;
        padding: 0.75rem 1rem;
    }

    .navbar-collapse .navbar-nav .nav-link:hover {
        background-color: rgba(255, 255, 255, 0.1);
        border-radius: 0.25rem;
    }
}
