.home{
    max-width: 1920px;
    @media screen and (min-width: 992px) {
        padding-inline: 2rem;
    }
}

.home__top{
    position: relative;
    @media screen and (min-width: 1024px) {
        overflow: hidden;
    }
}
.home__top::after{
    @media screen and (min-width: 1024px) {
        content: "";
        position: absolute;
        z-index: 1;
        inset-inline: 0;
        bottom: 0;
        height: 32%;
        background-image: url("/img/pozadi-center-lg.webp");
        background-position: center bottom;
        background-size: 100% 100%;
        background-repeat: no-repeat;
        -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 65%);
        mask-image: linear-gradient(to bottom, transparent 0%, #000 65%);
        pointer-events: none;
    }
}

.home__top-link{
    position: absolute;
    z-index: 2;
    left: 50%;
    transform: translateX(-50%);
    max-width: 27vw;
    top: 8vw;
}
.home__top-bg{
    @media screen and (min-width: 1024px) {
        display: none;
    }
}
.home__top-bg-lg{
    display: none;
    @media screen and (min-width: 1024px) {
        display: block;
    }
}

.home__main{
    position: relative;
    background-image: url("/img/pozadi-stred-home.webp");
    background-position: center;
    background-size: contain;
    background-repeat: repeat-y;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    grid-template-rows: repeat(4, 1fr);
    column-gap: 1.5rem;
    margin-top: -2.5rem;
    row-gap: 2rem;
    overflow: hidden;
    @media screen and (min-width: 440px) {
        row-gap: 3rem;
    }
    @media screen and (min-width: 576px) {
        grid-template-columns: 1fr 1fr auto 1fr 1fr;
        grid-template-rows: repeat(2, 1fr);
        place-items: center;
        column-gap: 0;
        padding-inline: 2rem;
        row-gap: 4rem;
    }
    @media screen and (min-width: 670px) {
        row-gap: 5rem;
    }
    @media screen and (min-width: 768px) {
        grid-template-columns: 1fr 1fr 1fr auto 1fr 1fr 1fr;
        overflow: visible;
    }
    @media screen and (min-width: 900px) {
        row-gap: 7rem;
    }
    @media screen and (min-width: 1024px) {
        background-image: url("/img/pozadi-center-lg.webp");
    }
    @media screen and (min-width: 1080px) {
        row-gap: 8rem;
    }
    @media screen and (min-width: 1200px) {
        grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(14rem, 18rem) repeat(2, minmax(0, 1fr));
        grid-template-rows: repeat(2, minmax(12rem, 1fr));
        background-size: 100% 100%;
        background-repeat: no-repeat;
        padding-inline: 3.5rem;
        margin-top: -7rem;
        column-gap: 1rem;
        row-gap: clamp(6rem, 8vw, 8rem);
    }
    @media screen and (min-width: 1440px) {
        padding-inline: 5rem;
    }
}
.home__main::before{
    @media screen and (min-width: 1200px) {
        content: "";
        position: absolute;
        z-index: 1;
        inset-block: 0;
        left: 0;
        width: 2.6%;
        background-image: url("/img/pozadi-center-lg.webp");
        background-repeat: no-repeat;
        background-position: right top;
        background-size: 3846.2% 100%;
        transform: scaleX(-1);
        pointer-events: none;
    }
}
.home__main-middle-text{
    grid-column: 2 / 3;
    grid-row: 1 / -1;
    display: flex;
    flex-direction: column;
    text-align: center;
    max-width: 8rem;
    font-size: .65rem;
    z-index: 9999;
    place-self: flex-start;
    small{
        font-size: .75em;
    }
    @media screen and (min-width: 576px) {
        grid-column: 3 / 4;
        max-width: 10rem;
        font-size: .9rem;
    }
    @media screen and (min-width: 768px) {
        grid-column: 4 / 5;
    }
    @media screen and (min-width: 1200px) {
        grid-column: 3 / 4;
        grid-row: 1 / 3;
        width: 100%;
        max-width: 18rem;
        padding-inline: 1rem;
        font-size: clamp(1.15rem, 1.45vw, 1.75rem);
        line-height: 1.25;
        place-self: center;
        gap: .65rem;
    }
    @media screen and (min-width: 1440px) {
        padding-inline: 1.5rem;
    }
}

.home-grave{
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 999;
}
.home-grave:nth-child(odd)::after,
.home-grave:nth-child(even):after{
    content: "";
    display: block;
    position: absolute;
    width: 100%;
    top: 80%;
    background-repeat: no-repeat;
    background-size: contain;
    background-position-y: center;
    @media screen and (min-width: 576px) {
        display: none;
    }
    @media screen and (min-width: 1200px) {
        display: none !important;
    }
}
.home-grave:nth-child(odd)::after{
    background-image: url("/img/divider-left.webp");
    height: 15vw;
    left: 4vw;
    background-position-x: left;
}
.home-grave:nth-child(even):after{
    background-image: url("/img/divider-right.webp");
    height: 15vw;
    background-position-x: right;
    right: 4.5vw;
}
.home-grave:nth-child(7){
    @media screen and (min-width: 768px) {
        grid-column: 1 / 3;
        grid-row: 2 / 3;
    }
    @media screen and (min-width: 1200px) {
        grid-column: unset;
        grid-row: unset;
    }
}
.home-grave:nth-child(8){
    @media screen and (min-width: 768px) {
        grid-column: 5 / 8;
        grid-row: 2 / 3;
    }
    @media screen and (min-width: 1200px) {
        grid-column: unset;
        grid-row: unset;
    }
}
@media screen and (min-width: 1200px) {
    .home-grave:nth-child(1) {
        grid-column: 1;
        grid-row: 1;
    }
    .home-grave:nth-child(2) {
        grid-column: 2;
        grid-row: 1;
    }
    .home-grave:nth-child(3) {
        grid-column: 1;
        grid-row: 2;
    }
    .home-grave:nth-child(4) {
        grid-column: 2;
        grid-row: 2;
    }
    .home-grave:nth-child(5) {
        grid-column: 4;
        grid-row: 1;
    }
    .home-grave:nth-child(6) {
        grid-column: 5;
        grid-row: 1;
    }
    .home-grave:nth-child(7) {
        grid-column: 4;
        grid-row: 2;
    }
    .home-grave:nth-child(8) {
        grid-column: 5;
        grid-row: 2;
    }
    .home-grave:nth-child(1),
    .home-grave:nth-child(6) {
        transform: translateY(-2rem);
    }
    .home-grave:nth-child(2),
    .home-grave:nth-child(5) {
        transform: translateY(-.5rem);
    }
    .home-grave:nth-child(3),
    .home-grave:nth-child(8) {
        transform: translateY(.5rem);
    }
    .home-grave:nth-child(4),
    .home-grave:nth-child(7) {
        transform: translateY(2rem);
    }
}
.home-divider{
    display: none;
    @media screen and (min-width: 1200px) {
        display: block;
        position: absolute;
        z-index: 2;
        top: 50%;
        width: 42%;
        height: clamp(7rem, 11vw, 10rem);
        background-repeat: no-repeat;
        background-position: center;
        background-size: 100% auto;
        transform: translateY(-50%);
        pointer-events: none;
    }
}
.home-divider--left{
    @media screen and (min-width: 1200px) {
        left: 1.5%;
        background-image: url("/img/divider-left.webp");
    }
}
.home-divider--right{
    @media screen and (min-width: 1200px) {
        right: 1.5%;
        background-image: url("/img/divider-right.webp");
    }
}
.home-grave__item{
    width: 3rem;
    height: 3rem;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    @media screen and (min-width: 440px) {
        width: 4rem;
        height: 4rem;
    }
    @media screen and (min-width: 576px) {
        width: 5rem;
        height: 5rem;
    }
    @media screen and (min-width: 1000px) {
        width: 6rem;
        height: 6rem;
    }
    @media screen and (min-width: 1440px) {
        height: 8rem;
        width: 8rem;
    }
}
.home-grave:nth-child(1),
.home-grave:nth-child(6) {
    .home-grave__item{
        @media screen and (min-width: 768px) {
            margin-top: -5rem;
        }
        @media screen and (min-width: 1200px) {
            margin-top: 0;
        }
    }
}
.home-grave:nth-child(2),
.home-grave:nth-child(5) {
    .home-grave__item{
        @media screen and (min-width: 768px) {
            margin-top: -2.5rem;
        }
        @media screen and (min-width: 1200px) {
            margin-top: 0;
        }
    }
}
.home-grave:nth-child(odd) {
    padding-left: 1rem;
    @media screen and (min-width: 576px) {
        padding-left: 0;
    }
}
.home-grave:nth-child(even) {
    padding-right: 1rem;
    @media screen and (min-width: 576px) {
        padding-right: 0;
    }
}
.home-grave:nth-child(1)::after,
.home-grave:nth-child(4)::after
{
    @media screen and (min-width: 576px) {
        content: "";
        width: 200%;
        height: 15vw;
        position: absolute;
        display: block;
    }
}
.home-grave:nth-child(1)::after{
    @media screen and (min-width: 576px) {
        left: -1vw;
    }
    @media screen and (min-width: 768px) {
        width: 285%;
    }
}
.home-grave:nth-child(4)::after{
    @media screen and (min-width: 576px) {
        right: -1vw;
    }
    @media screen and (min-width: 768px) {
        display: none;
    }
}
.home-grave:nth-child(6)::after{
    @media screen and (min-width: 768px) {
        content: "";
        width: 285%;
        height: 15vw;
        position: absolute;
        display: block;
        right: 0;
    }
}

.home-grave__img{
    display: block;
}
.home-grave__text{
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
    text-decoration: none;
    font-size: .5rem;
    @media screen and (min-width: 576px) {
        font-size: .75rem;
    }
    @media screen and (min-width: 1200px) {
        font-size: 1rem;
    }
}

.home__bottom{
    margin-top: -2.5rem;
    position: relative;
    @media screen and (min-width: 1024px) {
        overflow: hidden;
    }
}
.home__bottom::before{
    @media screen and (min-width: 1024px) {
        content: "";
        position: absolute;
        z-index: 1;
        inset-block: 0;
        left: 0;
        width: 2.6%;
        background-image: url("/img/bottitulka-home-lg.webp");
        background-repeat: no-repeat;
        background-position: right top;
        background-size: auto 100%;
        transform: scaleX(-1);
        pointer-events: none;
    }
}
.home__bottom-text{
    position: absolute;
    z-index: 2;
    bottom: 0;
    width: 100%;
    display: flex;
    justify-content: space-between;
    color: #fff;
    padding-inline: 1rem;
    font-size: .5rem;
    @media screen and (min-width: 576px) {
        padding-inline: 2rem;
    }
    @media screen and (min-width: 1200px) {
        padding-inline: 3.5rem;
    }
    @media screen and (min-width: 992px) {
        font-size: .75rem;
    }
    a{
        color: inherit;
        text-decoration: none;
        font-size: inherit;
    }
}

.home__bottom-bg{
    @media screen and (min-width: 1024px) {
        display: none;
    }
}
.home__bottom-bg-lg{
    display: none;
    @media screen and (min-width: 1024px) {
        display: block;
    }
}

/* Compact homepage shell shared visually with the animal category pages. */
.home-page__fit{
    margin: 2vw 2vw 0;
}
.home-page__fit > .row{
    min-height: calc(100vh - 2vw);
    flex-direction: column;
    flex-wrap: nowrap;
}
.home-page__top{
    position: relative;
    display: block;
}
.home-page__logo{
    position: absolute;
    z-index: 2;
    left: 50%;
    bottom: clamp(.75rem, 2vw, 2rem);
    width: 25%;
    transform: translateX(-50%);
}
.home-scene{
    position: relative;
    z-index: 2;
    flex-grow: 1;
    aspect-ratio: 2559 / 1382;
    overflow: hidden;
    background: url("/img/stredtitulka.webp") center / 100% 100% no-repeat;
}
.home-scene__grave{
    position: absolute;
    z-index: 3;
    width: 11%;
    aspect-ratio: 1;
    color: #fff;
    text-align: center;
    text-decoration: none;
    transform: translate(-50%, -50%);
}
.home-scene__grave img{
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.home-scene__grave span{
    position: absolute;
    left: 50%;
    top: 50%;
    font-size: clamp(.45rem, .85vw, 1rem);
    transform: translate(-50%, -50%);
}
.home-scene__grave--1{ left: 17%; top: 27%; }
.home-scene__grave--2{ left: 31%; top: 34%; }
.home-scene__grave--3{ left: 16%; top: 68%; }
.home-scene__grave--4{ left: 30%; top: 74%; }
.home-scene__grave--5{ left: 70%; top: 35%; }
.home-scene__grave--6{ left: 83%; top: 28%; }
.home-scene__grave--7{ left: 69%; top: 75%; }
.home-scene__grave--8{ left: 84%; top: 69%; }
.home-scene__message{
    position: absolute;
    z-index: 3;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 18%;
    color: #2c4937;
    font-size: clamp(.55rem, 1.1vw, 1.3rem);
    line-height: 1.35;
    text-align: center;
    transform: translateX(-50%);
}
.home-scene__headline,
.home-scene__prompt{
    position: absolute;
    right: 0;
    left: 0;
    transform: translateY(1cm);
}
.home-scene__headline{
    top: 24%;
}
.home-scene__prompt{
    top: 65%;
    display: flex;
    flex-direction: column;
    font-size: .72em;
}
.home-page__bottom{
    position: relative;
    z-index: 4;
}

/* Shared stone navigation from the approved design concept. */
.memorial-nav{
    position: relative;
    z-index: 8;
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: space-between;
    width: 86%;
    margin: clamp(-1.5rem, -2vw, -.75rem) auto clamp(-.45rem, -.6vw, -.2rem);
    padding: clamp(.4rem, .65vw, .7rem) clamp(.75rem, 2vw, 2rem);
    border: 1px solid rgba(30, 35, 25, .82);
    border-radius: .35rem;
    background:
        linear-gradient(rgba(29, 34, 25, .76), rgba(45, 48, 36, .9)),
        url("/img/pozadimale.webp") center / 110px auto;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, .14),
        inset 0 -2px 5px rgba(0, 0, 0, .42),
        0 3px 8px rgba(0, 0, 0, .35);
}
.memorial-nav::before,
.memorial-nav::after{
    content: "";
    position: absolute;
    right: 1%;
    left: 1%;
    height: 4px;
    pointer-events: none;
    background: repeating-linear-gradient(90deg, #58703c 0 8%, #83915c 8% 13%, #36472c 13% 20%);
    opacity: .78;
}
.memorial-nav::before{ top: -3px; }
.memorial-nav::after{ bottom: -3px; }
.memorial-nav__links{
    display: flex;
    align-items: center;
    gap: clamp(.7rem, 2.3vw, 2.5rem);
}
.memorial-nav__links a{
    color: #e6a535;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.62rem, 1.15vw, 1.05rem);
    text-decoration: none;
    text-shadow: 0 1px 2px #000;
    white-space: nowrap;
}
.memorial-nav__links a:hover,
.memorial-nav__links a.is-active{
    color: #ffd06b;
    text-decoration: underline;
    text-underline-offset: .18em;
}
.memorial-search{
    display: flex;
    flex: 0 1 22rem;
    justify-content: flex-end;
    min-width: 10rem;
    margin-left: clamp(.75rem, 2vw, 2rem);
}
.memorial-search input{
    width: min(100%, 18rem);
    min-width: 0;
    padding: clamp(.3rem, .55vw, .55rem) .8rem;
    border: 1px solid #8d7546;
    border-radius: .5rem 0 0 .5rem;
    outline: 0;
    background: rgba(250, 244, 211, .94);
    color: #3e4936;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.62rem, 1vw, .9rem);
    box-shadow: inset 0 1px 4px rgba(55, 48, 31, .2);
}
.memorial-search input:focus{
    border-color: #d79620;
    box-shadow: inset 0 1px 4px rgba(55, 48, 31, .2), 0 0 0 2px rgba(226, 165, 53, .2);
}
.memorial-search button{
    flex: 0 0 auto;
    padding: 0 clamp(.6rem, .85vw, .85rem);
    border: 1px solid #72501b;
    border-left: 0;
    border-radius: 0 .5rem .5rem 0;
    background: linear-gradient(#efbb4e, #c98619);
    color: #2e2b20;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .35);
}
.memorial-search button:hover{
    background: linear-gradient(#f7c967, #d59627);
}

/* Tombstone placement mirrors the approved concept: four on each side. */
.home-scene__grave{ width: 10.5%; }
.home-scene__grave--1{ left: 12%; top: 23%; }
.home-scene__grave--2{ left: 23%; top: 38%; }
.home-scene__grave--3{ left: 12%; top: 60%; }
.home-scene__grave--4{ left: 23%; top: 77%; }
.home-scene__grave--5{ left: 77%; top: 38%; }
.home-scene__grave--6{ left: 88%; top: 23%; }
.home-scene__grave--7{ left: 77%; top: 77%; }
.home-scene__grave--8{ left: 88%; top: 60%; }

/* Memorial listing uses the same arch, landscape and central clearing. */
.listing-page .home-page__fit > .row{
    min-height: calc(100vh - 2vw);
    flex-direction: column;
    flex-wrap: nowrap;
}
.listing-scene{
    position: relative;
    z-index: 2;
    display: block;
    flex-grow: 1;
    width: 100%;
    min-height: clamp(34rem, 54vw, 48rem);
    aspect-ratio: 2559 / 1382;
    overflow: hidden;
    background: url("/img/stredtitulka.webp") center / 100% 100% no-repeat;
}
.listing-scene__heading.pagination-nadpis{
    position: absolute;
    z-index: 6;
    top: clamp(1.3rem, 3vw, 3rem);
    left: 50%;
    width: 42%;
    margin: 0;
    color: #354c3a;
    font-size: clamp(.7rem, 1.2vw, 1.1rem);
    text-shadow: 0 1px 1px rgba(255, 255, 255, .85);
    transform: translateX(-50%);
}
.listing-scene__heading .pagination-numbers{
    margin-top: .25rem;
}
.listing-scene__scroll.scroll-area{
    position: absolute;
    inset: clamp(4.25rem, 8vw, 7rem) 7% 5%;
    display: block;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    background: none;
}
.listing-scene__graves.graves-container{
    display: grid;
    grid-template-columns: minmax(0, 29%) minmax(0, 29%);
    justify-content: space-between;
    align-content: center;
    width: 100%;
    min-height: 100%;
    gap: clamp(.5rem, 2vw, 2rem) 34%;
}
.listing-scene__graves .grave-modal-trigger{
    display: block;
    min-width: 0;
}
.listing-scene__graves .grave-item,
.listing-scene__graves .grave-modal-trigger:nth-child(-n+2) .grave-item,
.listing-scene__graves .grave-modal-trigger:nth-child(n+3) .grave-item{
    transform: none;
}
.listing-scene__graves .list{
    width: min(100%, 15rem);
    aspect-ratio: 1;
    margin: 0 auto;
    padding: clamp(2.2rem, 4vw, 4.6rem);
}
.listing-scene__message.overlay-text-center-zvire{
    z-index: 5;
    top: 51%;
    width: 16%;
    color: #294533;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.58rem, 1vw, 1rem);
    text-shadow: 0 1px 1px rgba(255, 255, 255, .9);
}
.listing-scene__empty{
    grid-column: 1 / -1;
    align-self: center;
    color: #294533;
    font-family: Georgia, "Times New Roman", serif;
    font-style: italic;
    text-align: center;
}

@media screen and (max-width: 767px){
    .memorial-nav{
        width: 94%;
        flex-wrap: wrap;
        gap: .45rem;
        margin-top: -.4rem;
        padding: .55rem .65rem;
    }
    .memorial-nav__links{
        justify-content: center;
        width: 100%;
        gap: .6rem 1rem;
    }
    .memorial-search{
        flex-basis: 100%;
        justify-content: center;
        margin-left: 0;
    }
    .memorial-search input{ width: 100%; }
    .home-scene__grave{ width: 14%; }
    .home-scene__grave--1,
    .home-scene__grave--3{ left: 10%; }
    .home-scene__grave--2,
    .home-scene__grave--4{ left: 24%; }
    .home-scene__grave--5,
    .home-scene__grave--7{ left: 76%; }
    .home-scene__grave--6,
    .home-scene__grave--8{ left: 90%; }
    .listing-scene{
        min-height: 36rem;
        aspect-ratio: auto;
    }
    .listing-scene__heading.pagination-nadpis{ width: 66%; }
    .listing-scene__scroll.scroll-area{ inset-inline: 4%; }
    .listing-scene__graves.graves-container{
        grid-template-columns: 36% 36%;
        gap: 2rem 28%;
    }
    .listing-scene__message.overlay-text-center-zvire{ width: 20%; }
}

/* Homepage implementation uses the approved concept artwork as its exact canvas. */
.concept-home-page{
    width: min(calc(100% - 2rem), 1536px);
    margin: 1rem auto 0;
}
.concept-home{
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 2;
}
.concept-home-page--home{
    min-height: calc(100vh - 1rem);
    background: transparent;
}
.concept-home-page--home .concept-home__art{
    height: auto;
    object-fit: contain;
}
.concept-home__art{
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
}
/* The homepage artwork is the single source for the arch and side pillars. */
.concept-home { container-type: inline-size; }
.concept-home__scene {
    position: absolute;
    inset: 20.3125cqw 0 0;
    overflow: hidden;
    clip-path: inset(0 5.729167%);
}
.concept-home .concept-home__scene > .concept-home__art {
    position: absolute;
    inset: auto;
    top: -43.820225%;
    left: 0;
    width: 100%;
    height: 143.820225%;
    object-fit: fill;
}
.concept-home__shared-gate {
    position: absolute;
    z-index: 2;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(to bottom, #000 0 34%, transparent 36%);
    mask-image: linear-gradient(to bottom, #000 0 34%, transparent 36%);
}
.concept-home__shared-pillars {
    position: absolute;
    z-index: 2;
    inset: 22.666667cqw 0 0;
    pointer-events: none;
    border-style: solid;
    border-width: 0 5.729167cqw;
    border-image-source: url('/img/design/design-home-ranked-rows.webp');
    border-image-slice: 348 88 0;
    border-image-width: 0 1;
    border-image-repeat: stretch;
}
.concept-home__header-controls {
    position: absolute;
    z-index: 10;
    top: 0;
    left: 0;
    width: 100%;
    aspect-ratio: 3 / 2;
    pointer-events: none;
}
.concept-home__header-controls .concept-home__search { pointer-events: auto; }
.concept-home__nav{
    position: absolute;
    z-index: 10;
    inset: 0;
    pointer-events: none;
}
.concept-home__nav a{
    position: absolute;
    top: 20.6%;
    height: 5.4%;
    border-radius: .25rem;
    pointer-events: auto;
}
.concept-home__nav a:focus-visible,
.concept-home__category:focus-visible{
    outline: 3px solid #f0b84d;
    outline-offset: 2px;
}
.concept-home__nav-home{ left: 24.3%; width: 4.3%; }
.concept-home__nav-memories{ left: 29.9%; width: 6.6%; }
.concept-home__nav-add{ left: 37.5%; width: 9.9%; }
.concept-home__nav-about{ left: 47.5%; width: 6.8%; }
.concept-home__search{
    position: absolute;
    z-index: 11;
    top: 21.05%;
    left: 59%;
    display: flex;
    width: 16%;
    height: 3.8%;
}
.concept-home__search input{
    min-width: 0;
    width: 86%;
    padding: 0 5%;
    border: 1px solid #8d7546;
    border-radius: .45rem 0 0 .45rem;
    outline: 0;
    background: #f3e9bd;
    color: #4c4736;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.42rem, 1vw, .95rem);
    box-shadow: inset 0 1px 4px rgba(55, 48, 31, .22);
}
.concept-home__search input:focus{
    box-shadow: inset 0 1px 4px rgba(55, 48, 31, .22), 0 0 0 2px rgba(239, 184, 77, .65);
}
.concept-home__search button{
    display: grid;
    flex: 1;
    place-items: center;
    padding: 0;
    border: 1px solid #72501b;
    border-left: 0;
    border-radius: 0 .45rem .45rem 0;
    background: linear-gradient(#efbb4e, #c98619);
    color: #29271f;
    font-size: clamp(.42rem, 1.1vw, 1rem);
}
.concept-home__categories{
    position: absolute;
    z-index: 3;
    inset: 0;
    pointer-events: none;
}
.concept-home__category{
    position: absolute;
    display: block;
    border-radius: 45% 45% 12% 12%;
    pointer-events: auto;
}
.concept-home__category--1{ left: 16.5%; top: 41.8%; width: 6.4%; height: 12%; }
.concept-home__category--2{ left: 19.3%; top: 54.1%; width: 6%; height: 10.2%; }
.concept-home__category--3{ left: 16.5%; top: 65.2%; width: 6.3%; height: 10.2%; }
.concept-home__category--4{ left: 17.4%; top: 76.5%; width: 7%; height: 12.8%; }
.concept-home__category--5{ left: 76.8%; top: 41.8%; width: 6.4%; height: 12%; }
.concept-home__category--6{ left: 74.9%; top: 54.1%; width: 6.2%; height: 10.2%; }
.concept-home__category--7{ left: 76.7%; top: 65.2%; width: 6.2%; height: 10.2%; }
.concept-home__category--8{ left: 74%; top: 76.5%; width: 7%; height: 12.8%; }

@media screen and (max-width: 575px){
    .concept-home-page{
        width: 100%;
        margin-top: 0;
    }
    .concept-home__nav a:focus-visible,
    .concept-home__category:focus-visible{
        outline-width: 2px;
        outline-offset: 0;
    }
}

/* About page shares the same canvas and keeps its content in the grassy clearing. */
.concept-about{
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}
.concept-about__content{
    position: absolute;
    z-index: 5;
    top: 36%;
    right: 24%;
    bottom: 8%;
    left: 24%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-sizing: border-box;
    padding-block: clamp(.35rem, 1vw, .8rem);
    overflow-y: auto;
    color: #294533;
    font-family: Georgia, "Times New Roman", serif;
    text-align: center;
    text-shadow: 0 1px 1px rgba(255, 255, 255, .95);
}
.concept-error__content{
    justify-content: center;
    gap: clamp(.75rem, 2vw, 1.5rem);
}
.concept-error__code{
    margin: 0;
    color: #a86712;
    font-size: clamp(2.5rem, 7vw, 6rem);
    line-height: 1;
}
.concept-error__home{
    display: inline-block;
    padding: .75rem 1.25rem;
    border: 1px solid #385f42;
    border-radius: .5rem;
    background: #385f42;
    color: #fff;
    font-size: clamp(.9rem, 1.2vw, 1.1rem);
    text-decoration: none;
    text-shadow: none;
}
.concept-error__home:hover,
.concept-error__home:focus-visible{
    background: #294533;
    color: #fff;
    outline: 2px solid #a86712;
    outline-offset: 3px;
}
.concept-about__intro h1{
    margin: 0 0 .55rem;
    color: #a86712;
    font-size: clamp(1.1rem, 2.2vw, 2.1rem);
    font-style: italic;
}
.concept-about__intro p{
    max-width: 42rem;
    margin: 0;
    font-size: clamp(.65rem, 1.05vw, 1rem);
    line-height: 1.55;
}
.concept-about__numbers{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: min(100%, 38rem);
    margin: clamp(.8rem, 2vw, 1.7rem) auto;
    border-block: 1px solid rgba(70, 100, 69, .4);
}
.concept-about__numbers div{
    display: flex;
    flex-direction: column;
    padding: clamp(.45rem, 1vw, .85rem);
}
.concept-about__numbers div + div{
    border-left: 1px solid rgba(70, 100, 69, .4);
}
.concept-about__numbers strong{
    color: #a86712;
    font-size: clamp(1.15rem, 2.4vw, 2.25rem);
    line-height: 1;
}
.concept-about__numbers span{
    margin-top: .3rem;
    font-size: clamp(.55rem, .85vw, .82rem);
    font-style: italic;
}
.concept-about__contact h2{
    margin: 0 0 .25rem;
    font-size: clamp(.8rem, 1.3vw, 1.2rem);
}
.concept-about__rules{
    max-width: 42rem;
    font-size: clamp(.55rem, .82vw, .78rem);
    line-height: 1.35;
    text-align: left;
}
.concept-about__rules h2{
    margin: 0 0 .3rem;
    color: #a86712;
    font-size: clamp(.8rem, 1.3vw, 1.2rem);
    text-align: center;
}
.concept-about__rules p{
    margin: .35rem 0;
}
.concept-about__rules ul{
    margin: .3rem 0 .45rem;
    padding-left: 1.2rem;
}
.concept-about__rules li + li{
    margin-top: .18rem;
}
.concept-about__contact{
    margin-top: clamp(.55rem, 1vw, .9rem);
}
.concept-about__contact p{
    margin: 0 0 .25rem;
    font-size: clamp(.58rem, .9vw, .85rem);
}
.concept-about__contact a{
    color: #b56f0a;
    font-size: clamp(.7rem, 1.15vw, 1.05rem);
    font-weight: 700;
}

@media screen and (max-width: 575px){
    .concept-about{
        min-height: 42rem;
        aspect-ratio: auto;
    }
    .concept-about .concept-home__art{
        position: absolute;
        inset: 0;
    }
    .concept-about__content{
        top: 32%;
        right: 12%;
        bottom: 5%;
        left: 12%;
    }
    .concept-about__numbers{
        grid-template-columns: 1fr;
        width: 80%;
    }
    .concept-about__numbers div + div{
        border-top: 1px solid rgba(70, 100, 69, .4);
        border-left: 0;
    }
}

/* About text stays in the page flow so no nested scrollbar is needed. */
.concept-about-page .concept-about:not(.concept-error){
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    padding-top: 24%;
    padding-bottom: 5%;
}
.concept-about-page .concept-about:not(.concept-error) .concept-about__content{
    position: relative;
    inset: auto;
    width: 60%;
    margin-inline: auto;
    overflow: visible;
}
.concept-about-page .concept-about__numbers{
    width: 76%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: clamp(.3rem, .5vw, .5rem) auto;
    flex-shrink: 0;
}
.concept-about-page .concept-about__numbers div{
    flex-direction: row;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: center;
    gap: .1rem .25rem;
    padding: clamp(.2rem, .35vw, .35rem);
    min-width: 0;
    overflow-wrap: anywhere;
}
.concept-about-page .concept-about__numbers strong{
    font-size: clamp(.8rem, 1.1vw, 1.05rem);
}
.concept-about-page .concept-about__numbers span{
    margin: 0;
    font-size: clamp(.55rem, .7vw, .68rem);
}
.concept-about-page .concept-about__numbers div + div{
    border-top: 0;
    border-left: 1px solid rgba(70, 100, 69, .4);
}
@media screen and (max-width: 575px){
    .concept-about-page .concept-about:not(.concept-error){
        padding-top: 26%;
        padding-bottom: 8%;
    }
    .concept-about-page .concept-about:not(.concept-error) .concept-about__content{
        width: 76%;
    }
    .concept-about-page .concept-about__intro p,
    .concept-about-page .concept-about__rules,
    .concept-about-page .concept-about__contact p{
        font-size: .8rem;
    }
    .concept-about-page .concept-about__numbers span{
        font-size: .6rem;
    }
}

/* Listing canvas shares the exact homepage artwork proportions and controls. */
.concept-listing.stred{
    position: relative;
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 3 / 2;
    overflow: hidden;
    background: none;
}
.concept-listing__art{
    position: absolute;
    z-index: 0;
    inset: 0;
}
.meadow-transition{
    position: absolute;
    z-index: 4;
    top: 30%;
    right: 5.729167%;
    bottom: 0;
    left: 5.729167%;
    overflow: hidden;
    pointer-events: none;
}
.concept-listing__meadow-current{
    position: absolute;
    z-index: 1;
    top: 30%;
    right: 5%;
    bottom: 5%;
    left: 5%;
    overflow: hidden;
    pointer-events: none;
}
.concept-listing__meadow-current img{
    position: absolute;
    top: -46.1538%;
    left: -5.5556%;
    width: 111.1111%;
    height: 153.8462%;
    object-fit: fill;
}
.meadow-transition__scene{
    position: absolute;
    inset: 0;
    will-change: transform;
}
.meadow-transition.is-moving .meadow-transition__scene{
    transition: transform .48s cubic-bezier(.45,.05,.2,1);
}
.meadow-transition__art,
.meadow-transition__graves{
    position: absolute !important;
    right: auto !important;
    bottom: auto !important;
}
.meadow-transition__art{
    object-fit: fill;
}
.concept-listing__heading.pagination-nadpis{
    position: absolute;
    z-index: 6;
    top: calc(27.2% - 5px);
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: clamp(.45rem, 1.2vw, 1.1rem);
    width: 62%;
    margin: 0;
    color: #304735;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.6rem, 1.15vw, 1.05rem);
    text-shadow: 0 1px 1px rgba(255, 255, 255, .95);
    transform: translateX(-50%);
}
.concept-listing__heading .pagination-numbers{
    flex: 0 0 auto;
    gap: clamp(.25rem, .65vw, .65rem);
    margin-top: 0;
    font-size: clamp(.62rem, 1.2vw, 1.12rem);
    white-space: nowrap;
}
.concept-listing__heading .category-name{
    position: relative;
    top: 10px;
    color: #263f2d;
    flex: 0 1 auto;
    font-size: clamp(.78rem, 1.4vw, 1.32rem);
    font-style: normal;
    font-weight: 700;
    letter-spacing: .025em;
    line-height: 1.1;
    text-shadow:
        0 1px 0 rgba(255, 255, 255, .98),
        0 2px 4px rgba(62, 82, 57, .22);
}
.concept-listing__heading .img-menu{
    width: clamp(.35rem, .7vw, .7rem);
    height: clamp(.35rem, .7vw, .7rem);
}
.concept-listing__scroll.scroll-area{
    position: absolute;
    z-index: 4;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    overflow: visible;
    background: none;
}
.concept-listing__graves.graves-container{
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    transition: opacity .28s ease, transform .42s ease;
}
.concept-listing__grave{
    position: absolute;
    display: block;
    width: 12%;
    aspect-ratio: 1;
    text-decoration: none;
    left: var(--grave-x);
    top: var(--grave-y);
    transform: translate(-50%, -50%) rotate(var(--grave-r));
    transition: filter .25s ease, transform .25s ease;
}
.concept-listing--design-1 .concept-listing__grave{
    width: 11.25%;
}
.concept-listing__graves.concept-listing--design-1 .concept-listing__grave{
    width: 11.25%;
}
.concept-listing__graves.concept-listing--design-2 .concept-listing__grave,
.concept-listing__graves.concept-listing--design-3 .concept-listing__grave{
    width: 12%;
}
.concept-listing__grave:hover,
.concept-listing__grave:focus-visible{
    filter: drop-shadow(0 .35rem .35rem rgba(31, 48, 29, .34));
    transform: translate(-50%, -53%) rotate(0deg) scale(1.04);
}
.concept-listing__grave .grave-item,
.concept-listing__grave:nth-child(-n+2) .grave-item,
.concept-listing__grave:nth-child(n+3) .grave-item{
    width: 100%;
    height: 100%;
    transform: none;
}
.concept-listing__grave .list{
    width: 100%;
    height: 100%;
    padding: clamp(1.5rem, 3.6vw, 4rem);
}
.concept-listing__grave .grave--new{
    position: relative;
    padding: 0;
    background-position: center;
    background-size: contain;
}
.concept-listing__grave .grave--new:not(.grave--new-wide){
    transform: translateY(-5px) scale(.96);
}
.concept-listing__grave .grave--new .pet-thumb{
    position: absolute;
    top: 14%;
    left: 35%;
    width: 30%;
    height: 34%;
    border: 1px solid rgba(210, 205, 192, .75);
    border-radius: 50%;
    object-fit: cover;
    box-shadow: inset 0 0 .25rem rgba(28, 32, 28, .45);
}
/* Silhouettes need room inside the oval, including on the smallest grave. */
.concept-listing__grave .grave--new .pet-thumb[src*="/img/placeholders/"]{
    object-fit: contain;
    object-position: center;
    box-sizing: border-box;
    padding: clamp(2px, .35vw, 5px);
    background: #fff;
}
.concept-listing__grave .grave--new .grave-name-zvire,
.concept-listing__grave .grave--new .grave-dates-zvire{
    left: 50%;
    width: 48%;
    bottom: auto;
    color: #454640;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.34rem, .62vw, .66rem);
    line-height: 1;
    text-shadow: 0 1px rgba(255, 255, 255, .65);
    transform: translateX(-50%);
}
.concept-listing__grave .grave--new .grave-name-zvire{
    top: 51%;
    font-size: clamp(.4rem, .76vw, .78rem);
}
.concept-listing__grave .grave--new .grave-dates-zvire{
    top: calc(60.5% - 2px);
}
.concept-listing__grave .grave--new-wide{
    width: 150%;
    height: 150%;
    margin: -25%;
}
.concept-listing__grave .grave--new-wide .pet-thumb{
    top: 27%;
    left: 19%;
    width: 26%;
    height: 35%;
}
.concept-listing__grave .grave--new-wide .grave-name-zvire,
.concept-listing__grave .grave--new-wide .grave-dates-zvire{
    left: 67%;
    width: 39%;
}
.concept-listing__grave .grave--new-wide .grave-name-zvire{
    top: 37%;
}
.concept-listing__grave .grave--new-wide .grave-dates-zvire{
    top: 46%;
}
.concept-listing__empty{
    position: absolute;
    top: 53%;
    left: 50%;
    width: 34%;
    color: #294533;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.55rem, 1vw, .95rem);
    font-style: italic;
    text-align: center;
    transform: translate(-50%, -50%);
}
.concept-listing__category-nav{
    position: absolute;
    z-index: 8;
    top: 65%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .05rem;
    width: 3.6%;
    aspect-ratio: 1;
    padding: .2%;
    color: #f3e5b7;
    background:
        radial-gradient(circle at 38% 30%, rgba(102, 111, 91, .96), rgba(37, 48, 38, .98) 72%);
    border: clamp(1px, .1vw, 2px) solid rgba(192, 174, 125, .82);
    border-radius: 50%;
    box-shadow:
        0 .18rem .35rem rgba(20, 30, 22, .42),
        inset 0 0 0 1px rgba(255, 255, 255, .1);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(.26rem, .42vw, .48rem);
    text-align: center;
    text-decoration: none;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .9);
    transform: translateY(-50%);
    transition: color .2s ease, transform .2s ease;
}
.concept-listing--design-2 .concept-listing__category-nav{
    top: 63.8%;
}
.concept-listing--design-1 .concept-listing__category-nav{
    top: 66.2%;
}
.concept-listing--design-3 .concept-listing__category-nav{
    top: 65%;
}
.concept-listing__category-nav i{
    font-size: clamp(.64rem, 1.2vw, 1.35rem);
    filter: drop-shadow(0 2px 1px rgba(0, 0, 0, .55));
}
.concept-listing__category-nav--left{ left: 5.7%; }
.concept-listing__category-nav--right{ right: 5.7%; }
.concept-listing__category-nav:hover,
.concept-listing__category-nav:focus-visible{
    color: #fff3c8;
    border-color: #e2c36f;
    box-shadow: 0 .28rem .5rem rgba(20, 30, 22, .55), inset 0 0 0 1px rgba(255, 255, 255, .14);
    transform: translateY(-50%) scale(1.12);
}
.concept-listing__meadow-nav{
    position:absolute;
    z-index:8;
    left:50%;
    display:grid;
    place-items:center;
    width:clamp(1.35rem,2.3vw,2.5rem);
    aspect-ratio:1;
    color:#f3e5b7;
    background:rgba(48,67,48,.88);
    border:clamp(1px,.1vw,2px) solid rgba(217,193,123,.9);
    border-radius:50%;
    box-shadow:0 .18rem .35rem rgba(20,30,22,.42);
    font-size:clamp(.65rem,1.05vw,1.1rem);
    text-decoration:none;
    transform:translateX(-50%);
    transition:color .2s ease,transform .2s ease,background .2s ease;
}
.concept-listing__meadow-nav--up{ top:44%; }
.concept-listing__meadow-nav--down{ top:88%; }
.concept-listing__meadow-nav:hover,
.concept-listing__meadow-nav:focus-visible{
    color:#fff7d7;
    background:rgba(38,55,39,.98);
    transform:translateX(-50%) scale(1.12);
}

@media screen and (max-width: 575px){
    .concept-listing__heading.pagination-nadpis{
        top: calc(27.4% - 5px);
        gap: .25rem;
        width: 70%;
    }
    .concept-listing__grave{ width: 15%; }
    .concept-listing--design-1 .concept-listing__grave{ width: 14.25%; }
    .concept-listing__graves.concept-listing--design-1 .concept-listing__grave{ width: 14.25%; }
    .concept-listing__graves.concept-listing--design-2 .concept-listing__grave,
    .concept-listing__graves.concept-listing--design-3 .concept-listing__grave{ width: 15%; }
    .concept-listing__category-nav{ width: 5%; }
    .concept-listing__category-nav--left{ left: 4.5%; }
    .concept-listing__category-nav--right{ right: 4.5%; }
}

/* Form page uses the same approved canvas, with the live form in its clearing. */
.concept-form{
    position: relative;
    display: block;
    width: 100%;
    aspect-ratio: 3 / 2;
    overflow: hidden;
}
.concept-form__content{
    position: absolute;
    z-index: 5;
    top: 33%;
    right: 18%;
    bottom: 4%;
    left: 18%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.concept-form .form-page__panel{
    width: min(100%, 48rem);
    min-height: 0;
    transform: none;
}
.concept-form .form-page__panel .middle-text{
    margin-bottom: .35rem;
    font-size: clamp(.72rem, .95vw, .95rem);
}
.concept-form .form-page__table{
    width: min(100%, 42rem);
}
.concept-form .form-page__table input:not([type="submit"]):not([type="file"]),
.concept-form .form-page__table select,
.concept-form .form-page__table textarea,
.concept-form .form-page__table input[type="file"]{
    max-width: none;
}
.concept-form .alert{
    margin: .25rem 0;
    padding: .4rem .65rem;
    font-size: .75rem;
}

@media screen and (max-width: 575px){
    .concept-form{
        min-height: 72rem;
        aspect-ratio: auto;
    }
    .concept-form .concept-home__art{
        position: absolute;
        inset: 0;
    }
    .concept-form__content{
        top: 31%;
        right: 8%;
        bottom: 3%;
        left: 8%;
        align-items: flex-start;
    }
    .concept-form .form-page__panel{
        padding: 0;
    }
}

/* Complete oval on a pedestal, fitted inside the grass of each parcel. */
.concept-listing .concept-listing__grave.concept-listing__grave--oval {
    width: 15%;
    aspect-ratio: 5 / 4;
    transform: translate(-50%, -50%);
}
.concept-listing__grave--oval:hover,
.concept-listing__grave--oval:focus-visible {
    transform: translate(-50%, -50%);
}
.concept-listing__grave .grave--new.grave--oval {
    transform: none;
    background-size: 100% 100%;
}
.concept-listing__grave .grave--oval .pet-thumb {
    top: 8%; left: 7.6%; width: 84.4%; height: 67%;
    border: 0;
}
.concept-listing__grave .grave--oval .grave-name-zvire,
.concept-listing__grave .grave--oval .grave-dates-zvire {
    left: 50%; width: 68%; margin: 0;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.concept-listing__grave .grave--oval .grave-name-zvire { top: 80%; font-size: clamp(.3rem, .9vw, .95rem); }
.concept-listing__grave .grave--oval .grave-dates-zvire { top: 86%; font-size: clamp(.23rem, .56vw, .6rem); }

@media screen and (max-width: 575px) {
    .concept-form__content { top: 24cqw; }
    .concept-about__content { top: 24cqw; }
}

/* Desktop scenes reach the bottom of the viewport without adding page height. */
@media screen and (min-width: 992px) {
    .concept-home-page {
        width: min(calc(100% - 2rem), 1536px, calc((100dvh - 1rem) * 1.5));
    }
    .concept-home-page > .concept-home:is(.concept-home, .concept-about, .concept-form, .concept-listing) {
        height: calc(100dvh - 1rem);
        min-height: 0;
        aspect-ratio: auto;
        box-sizing: border-box;
        overflow: hidden;
    }
    .concept-home__scene {
        bottom: -1%;
    }
    .concept-home .concept-home__scene > .concept-home__art {
        top: -20.3125cqw;
        height: calc(100% + 20.3125cqw);
    }
    .concept-home-page--home .concept-home__art {
        height: 101%;
        object-fit: fill;
    }
    .concept-home-page--home .concept-home__header-controls {
        height: 101%;
        aspect-ratio: auto;
    }
    .concept-home-page--home .concept-home__categories {
        bottom: -1%;
    }
}
