* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'Space Mono', monospace;
    background-color: white;
    color: black;
}

.container {
    width: 100%;
    position: relative;
}

/* Title */
.title-wrapper {
    text-align: center;
    padding: 53px 0;
}

.site-title {
    font-size: 102px;
    font-weight: 400;
    line-height: normal;
    cursor: pointer;
    display: inline-block;
    min-width: 700px;
    text-align: center;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
}

.site-title .menu-item {
    cursor: pointer;
    display: inline-block;
}

.site-title .menu-item:hover {
    opacity: 0.7;
}

/* Desktop Layout */
.desktop-layout {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 140px;
    padding: 0 40px;
}

.mobile-layout {
    display: none;
}

.image-item {
    text-align: center;
    width: 100%;
}

/* Desktop - Landscape images (wider) */
.desktop-layout .image-item.landscape {
    max-width: 1018px;
}

.desktop-layout .image-item.landscape img {
    width: 100%;
    height: auto;
    max-height: 651px;
    object-fit: cover;
}

/* Desktop - Portrait images (taller) */
.desktop-layout .image-item.portrait {
    max-width: 460px;
}

.desktop-layout .image-item.portrait img {
    width: 100%;
    height: auto;
    max-height: 731px;
    object-fit: cover;
}

.caption {
    font-size: 29px;
    margin-top: 16px;
    line-height: normal;
}

/* Mobile Layout */
@media (max-width: 768px) {
    .desktop-layout {
        display: none;
    }

    .mobile-layout {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 50px;
        padding: 0 33px;
    }

    .title-wrapper {
        padding: 53px 0;
    }

    .site-title {
        font-size: 36px;
        min-width: auto;
        white-space: nowrap;
    }

    /* Mobile - Portrait images (taller, displayed first) */
    .mobile-layout .image-item:nth-child(-n+5) {
        max-width: 328px;
    }

    .mobile-layout .image-item:nth-child(-n+5) img {
        width: 100%;
        height: auto;
        max-height: 521px;
        object-fit: cover;
    }

    /* Mobile - Landscape images (wider, displayed after portrait) */
    .mobile-layout .image-item:nth-child(n+6) {
        max-width: 326px;
    }

    .mobile-layout .image-item:nth-child(n+6) img {
        width: 100%;
        height: auto;
        max-height: 249px;
        object-fit: cover;
    }

    .caption {
        font-size: 24px;
        margin-top: 10px;
    }
}

/* Tablet adjustments */
@media (min-width: 769px) and (max-width: 1400px) {
    .desktop-layout .image-item.landscape,
    .desktop-layout .image-item.portrait {
        max-width: 720px;
    }
}

/* About Page Styles */
.about-text {
    max-width: 1280px;
    padding: 0 128px;
    font-size: 32px;
    line-height: 1.5;
}

.about-text p {
    margin-bottom: 32px;
}

.about-text-mobile {
    padding: 0 27px;
    font-size: 16px;
    line-height: 1.5;
    text-align: justify;
}

.about-text-mobile p {
    margin-bottom: 16px;
}

/* Shop Page Styles */
.prints-header {
    font-size: 51px;
    text-align: center;
    text-decoration: underline;
    text-decoration-skip-ink: none;
    text-underline-position: from-font;
    margin-bottom: 24px;
}

.product {
    text-align: center;
    margin-bottom: 80px;
}

.product-title {
    font-size: 51px;
    font-weight: 400;
    margin-bottom: 40px;
}

.product-image {
    max-width: 944px;
    margin: 0 auto 24px;
}

.product-image img {
    width: 100%;
    height: auto;
    max-height: 571px;
    object-fit: cover;
}

.buy-button {
    background-color: black;
    color: white;
    border: none;
    font-family: 'Space Mono', monospace;
    font-size: 32px;
    padding: 5px 24px;
    cursor: pointer;
    min-width: 113px;
    text-decoration: none;
    display: inline-block;
}

.buy-button:hover {
    opacity: 0.8;
}

/* Mobile Shop Styles */
.prints-header-mobile {
    font-size: 32px;
    text-align: center;
    text-decoration: underline;
    text-decoration-skip-ink: none;
    text-underline-position: from-font;
    margin-bottom: 20px;
}

.product-mobile {
    text-align: center;
    margin-bottom: 60px;
}

.product-title-mobile {
    font-size: 24px;
    font-weight: 400;
    margin-bottom: 30px;
}

.product-image-mobile {
    max-width: 318px;
    margin: 0 auto 20px;
}

.product-image-mobile img {
    width: 100%;
    height: auto;
    max-height: 192px;
    object-fit: cover;
}

.buy-button-mobile {
    background-color: black;
    color: white;
    border: none;
    font-family: 'Space Mono', monospace;
    font-size: 24px;
    padding: 4px 20px;
    cursor: pointer;
    min-width: 69px;
    text-decoration: none;
    display: inline-block;
}

.buy-button-mobile:hover {
    opacity: 0.8;
}

/* Mobile styles for about and shop */
@media (max-width: 768px) {
    .about-page .desktop-layout,
    .shop-page .desktop-layout {
        display: none;
    }

    .about-page .mobile-layout,
    .shop-page .mobile-layout {
        display: block;
    }
}

@media (min-width: 769px) {
    .about-page .mobile-layout,
    .shop-page .mobile-layout {
        display: none;
    }

    .about-page .desktop-layout,
    .shop-page .desktop-layout {
        display: flex;
    }
}

/* Footer Styles */
.site-footer {
    text-align: center;
    padding: 32px 16px;
    margin-top: 80px;
    font-family: 'Space Mono', monospace;
    font-size: 11px;
}

.site-footer p {
    margin: 0;
}

.footer-link {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

.footer-link:hover {
    opacity: 0.7;
}

@media (max-width: 768px) {
    .site-footer {
        padding: 30px 20px;
        margin-top: 60px;
        font-size: 12px;
    }
}

/* Contact Page Styles */
.contact-form-wrapper {
    max-width: 600px;
    margin: 0 auto;
    padding: 0 40px;
}

.form-title {
    font-size: 51px;
    font-weight: 400;
    text-align: center;
    margin-bottom: 48px;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.form-group label {
    font-size: 24px;
    font-weight: 400;
}

.form-group input,
.form-group textarea {
    font-family: 'Space Mono', monospace;
    font-size: 18px;
    padding: 12px;
    border: 1px solid black;
    background-color: white;
    color: black;
}

.form-group input:focus,
.form-group textarea:focus {
    outline: 2px solid black;
    outline-offset: 2px;
}

.submit-button {
    background-color: black;
    color: white;
    border: none;
    font-family: 'Space Mono', monospace;
    font-size: 24px;
    padding: 12px 32px;
    cursor: pointer;
    align-self: center;
    margin-top: 16px;
}

.submit-button:hover {
    opacity: 0.8;
}

/* Mobile Contact Styles */
.contact-form-wrapper-mobile {
    padding: 0 27px;
}

.form-title-mobile {
    font-size: 32px;
    font-weight: 400;
    text-align: center;
    margin-bottom: 32px;
}

.contact-form-mobile {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.form-group-mobile {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.form-group-mobile label {
    font-size: 16px;
    font-weight: 400;
}

.form-group-mobile input,
.form-group-mobile textarea {
    font-family: 'Space Mono', monospace;
    font-size: 14px;
    padding: 10px;
    border: 1px solid black;
    background-color: white;
    color: black;
}

.form-group-mobile input:focus,
.form-group-mobile textarea:focus {
    outline: 2px solid black;
    outline-offset: 2px;
}

.submit-button-mobile {
    background-color: black;
    color: white;
    border: none;
    font-family: 'Space Mono', monospace;
    font-size: 18px;
    padding: 10px 24px;
    cursor: pointer;
    align-self: center;
    margin-top: 12px;
}

.submit-button-mobile:hover {
    opacity: 0.8;
}

/* Contact page layout visibility */
@media (max-width: 768px) {
    .contact-page .desktop-layout {
        display: none;
    }

    .contact-page .mobile-layout {
        display: block;
    }
}

@media (min-width: 769px) {
    .contact-page .mobile-layout {
        display: none;
    }

    .contact-page .desktop-layout {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
}
