/* Consistent sizing */
*, *::before, *::after {
    box-sizing: border-box;
}

/* Responsive page content */
main, .container {
    width: 100%;
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: 20px;
}

/* Images and videos */
img, video {
    max-width: 100%;
    height: auto;
}

/* Prevent long URLs and words overflowing */
main {
    overflow-wrap: anywhere;
}

/* Responsive typography */
body {
    font-size: 16px;
    line-height: 1.6;
}

h1 {
    font-size: clamp(1.8rem, 4vw, 3rem);
}

h2 {
    font-size: clamp(1.4rem, 3vw, 2.2rem);
}

/* Flexible columns */
.columns {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}

/* Mobile */
@media (max-width: 768px) {
    main, .container {
        padding-inline: 15px;
    }

    .columns {
        grid-template-columns: 1fr;
    }

    nav ul {
        flex-wrap: wrap;
    }
}

/* Small phones */
@media (max-width: 480px) {
    body {
        font-size: 15px;
    }

    main, .container {
        padding-inline: 12px;
    }
}
