/* reset.css - additional resets and responsive utilities */

/* Box sizing border-box for all elements */
html {
    box-sizing: border-box;
}

*,
*::before,
*::after {
    box-sizing: inherit;
}

/* Remove default margins and paddings */
body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, figcaption, blockquote, dl, dd {
    margin: 0;
    padding: 0;
}

/* Remove list styles */
ul, ol {
    list-style: none;
}

/* Make images easier to work with */
img, picture, video, canvas, svg {
    display: block;
    max-width: 100%;
}

/* Inherit fonts for inputs and buttons */
input, button, textarea, select {
    font: inherit;
}

/* Remove default button styles */
button {
    cursor: pointer;
    border: none;
    background: none;
}

/* Avoid text overflows */
p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}

/* Set core body defaults */
body {
    min-height: 100vh;
    text-rendering: optimizeSpeed;
    line-height: 1.5;
}

/* Remove default link underline and set color */
a {
    text-decoration: none;
    color: inherit;
}

/* Table reset */
table {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
}

/* Responsive utilities */
.hide-mobile {
    display: none;
}

.show-mobile {
    display: block;
}

@media (min-width: 992px) {
    .hide-mobile {
        display: block;
    }
    .hide-desktop {
        display: none;
    }
    .show-mobile {
        display: none;
    }
}

/* Smooth scrolling */
html {
    scroll-behavior: smooth;
}

/* Focus visible for accessibility */
:focus-visible {
    outline: 0.2rem solid #0046C7;
    outline-offset: 0.2rem;
}

/* Print styles */
@media print {
    .header, .footer, .float-buttons, .mobile-bottom-bar, .cookie-bar {
        display: none !important;
    }
    body {
        font-size: 12pt;
        color: #000;
    }
    a {
        text-decoration: underline;
    }
}
