@font-face {
    font-family: 'Nimbus Sans Novus D OT';
    src: url('NimbusSansNovusDOT-SemBol.woff2') format('woff2'),
        url('NimbusSansNovusDOT-SemBol.woff') format('woff');
    font-weight: bold;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Wedding Text';
    src: url('WeddingText.woff2') format('woff2'),
        url('WeddingText.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

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

body {
    font-family: 'Nimbus Sans Novus D OT', sans-serif;
    font-size: 14px;
    background: #fff;
    color: #000;
    min-height: 100vh;
    display: flex;
    align-items: center;
}

main {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    padding: 0 12%;
}

.col {
    display: flex;
    align-items: center;
}

.col-left {
    justify-content: flex-start;
}

.col-center {
    justify-content: center;
}

.col-right {
    justify-content: flex-end;
}

.wordmark {
    font-family: 'Wedding Text', serif;
    font-size: 72px;
    line-height: 1;
    letter-spacing: 9.2px;
}

.info {
    line-height: 16px;
}

.label {
    display: inline-block;
    width: 4em;
}

.address {
    margin-top: 0.75em;
}

.info a {
    color: inherit;
    text-decoration: none;
}

.info a:hover {
    text-decoration: underline;
}

@media (max-width: 1100px) {
    body {
        align-items: stretch;
        height: 100dvh;
        min-height: unset;
        overflow: hidden;
    }

    main {
        grid-template-columns: 1fr;
        grid-template-rows: 1fr 1fr 1fr;
        height: 100%;
        padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
    }

    .col {
        justify-content: center;
        align-items: center;
    }

    .col-right {
        justify-content: center;
    }
}
