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

html {
    background-color: #e5e3db;
    background-image: url("assets/horizontal/cm%20tour%20169%20pngs/texture.png"),
                      url("assets/horizontal/cm%20tour%20169%20pngs/background.png"),
                      url("assets/Blank%20texture.png");
    background-blend-mode: multiply, normal, normal;
    background-size: cover, cover, cover;
    background-repeat: no-repeat, no-repeat, no-repeat;
}

body {
    min-width: 800px;
    font-family: 'minion-pro', 'Minion Pro', Georgia, serif;
    color: #524334;
    -webkit-font-smoothing: antialiased;
}

/* Landscape: fills viewport width, maintains 16:9 */
.poster-wrapper {
    position: relative;
    width: 100vw;
    height: 56.25vw;
    min-width: 800px;
    min-height: 450px;
    overflow: hidden;
}

picture {
    display: block;
    width: 100%;
    height: 100%;
}

.poster-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
}

.tour-dates-container {
    position: absolute;
    top: 50%;
    left: 55%;
    width: 37%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 0.7vw;
    z-index: 10;
}

.tour-item {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
        "date city"
        ".    venue";
    column-gap: 0.6vw;
    text-decoration: none;
    color: #524334;
    transition: color 0.2s ease;
}

.tour-item:hover {
    color: #5c2d0e;
}

.tour-item.forthcoming {
    opacity: 0.5;
    cursor: default;
}

.tour-item.indented {
    margin-left: 2vw;
}

.tour-date {
    grid-area: date;
    font-style: italic;
    color: #7a4e2d;
    font-size: 1.2vw;
    align-self: baseline;
}

.tour-location {
    grid-area: city;
    font-family: 'minion-pro-cond', 'minion-pro', Georgia, serif;
    font-weight: 700;
    text-transform: uppercase;
    color: #524334;
    font-size: 1.7vw;
    letter-spacing: 0.02em;
    align-self: baseline;
}

.tour-venue {
    grid-area: venue;
    font-family: 'minion-pro-cond', 'minion-pro', Georgia, serif;
    text-transform: uppercase;
    color: #7a4e2d;
    font-size: 1vw;
    letter-spacing: 0.04em;
}

.socials {
    position: absolute;
    bottom: 4%;
    right: 13%;
    display: flex;
    flex-wrap: nowrap;
    gap: 0.6vw;
    justify-content: flex-end;
    z-index: 10;
}

.socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #524334;
    opacity: 0.75;
    transition: opacity 0.2s ease;
}

.socials a:hover {
    opacity: 1;
}

.socials svg {
    width: 1.8vw;
    height: 1.8vw;
}

/* Portrait: phone only (excludes tablets) */
@media (orientation: portrait) and (max-width: 768px) {
    html {
        background-color: #e5e3db;
        background-image: url("assets/vertical/cm%20916%20pngs/final%20texture%20(have%20this%20over%20everything).png"),
                          url("assets/vertical/cm%20916%20pngs/background.png");
        background-blend-mode: multiply, normal;
        background-size: cover;
        background-repeat: no-repeat;
    }

    body {
        min-width: unset;
    }

    .poster-wrapper {
        width: 100vw;
        height: 100dvh;
        min-width: unset;
        min-height: unset;
    }

    .tour-dates-container {
        top: 59%;
        left: 30%;
        width: 60%;
        transform: none;
        gap: 0.5vw;
    }

    .tour-item {
        column-gap: 1.3vw;
        line-height: 1.1;
    }

    .tour-item.indented {
        margin-left: 3.8vw;
    }

    .tour-date {
        font-size: clamp(9px, 2.5vw, 12px);
    }

    .tour-location {
        font-size: clamp(12px, 3.3vw, 16px);
    }

    .tour-venue {
        font-size: clamp(8px, 2.3vw, 11px);
        letter-spacing: 0.06em;
    }

    .socials {
        bottom: 1.5%;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
        justify-content: center;
        gap: 2vw;
    }

    .socials svg {
        width: 5vw;
        height: 5vw;
    }
}

/* Tall phones (iPhone 12 Pro and up): push tour dates lower to close gap above icons */
@media (orientation: portrait) and (max-width: 768px) and (min-height: 800px) {
    .tour-dates-container {
        top: 60%;
        gap: 1.2vw;
    }
}

/* Tablet portrait (iPad): fill screen, scale text for wider viewport */
@media (orientation: portrait) and (min-width: 769px) {
    html {
        background-image: url("assets/Blank%20texture.png");
        background-size: cover;
        background-repeat: no-repeat;
        background-blend-mode: normal;
    }

    body {
        min-width: unset;
    }

    .poster-wrapper {
        width: 100vw;
        height: 100dvh;
        min-width: unset;
        min-height: unset;
    }

    .poster-img {
        object-fit: contain;
    }

    .tour-dates-container {
        top: 59%;
        left: 40%;
        width: 90%;
        transform: none;
        gap: 1vw;
    }

    .tour-item {
        column-gap: 0.7vw;
        line-height: 1.1;
    }

    .tour-item.indented {
        margin-left: 2vw;
    }

    .tour-date {
        font-size: 1.1vw;
    }

    .tour-location {
        font-size: 2.2vw;
    }

    .tour-venue {
        font-size: 0.9vw;
        letter-spacing: 0.06em;
    }

    .socials {
        bottom: 2%;
        right: auto;
        left: 50%;
        transform: translateX(-50%);
        justify-content: center;
        gap: 1vw;
    }

    .socials svg {
        width: 2.5vw;
        height: 2.5vw;
    }
}
