:root {
	--animation-duration: 200ms;

	scroll-behavior: smooth;
	scrollbar-width: thin;
}

@media (prefers-reduced-motion: reduce) {
	:root {
		--animation-duration: 0ms;

		scroll-behavior: auto;
	}
}

.nobr {
	white-space: nowrap;
}

.body {
    display: grid;
    margin: 0;
    padding: 1rem;
    min-inline-size: 20rem;
	min-block-size: 100dvb;
    box-sizing: border-box;
    font-family: system-ui;
}

.main {
    display: grid;
    gap: 3rem;
    container-type: inline-size;
    container-name: main;
    grid-template-areas:
    "header"
    "content"
    "footer";
    grid-template-rows: auto 1fr auto;
}

.header {
    display: flex;
    gap: 1rem;
    align-items: center;
    grid-area: header;
}

.header__heading {
    margin: 0;
}

.contacts {
    display: grid;
    grid-template-areas: 
        "heading"
        "description"
        "map";
    gap: 1rem;
    grid-area: content;
}

.contacts__header {
    grid-area: heading;
    margin: 0;
    
}

.contacts__description {
    grid-area: description;
    text-wrap: balance;
    display: grid;
    gap: 1rem;
}

.contacts__description p {
    margin: 0;
}

.contacts__map {
    grid-area: map;
    width: 100%;
    border: none;
}

.footer {
    grid-area: footer;
    justify-self: center;
}

.error {
    grid-area: content;
    align-self: center;
    justify-self: center;
}

@container main (width >= 640px) {
    .contacts {
        grid-template-areas: 
            "heading heading"
            "description map";
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto 1fr;
        align-items: start;
    }
}