/* ============================================================
   Responsive overrides — mobile-first ascending order.
   Base (mobile) styles live in style.css; this file only holds
   the breakpoint overrides. Edits inside each section should
   stay within that section so the cascade order stays correct.
   ============================================================ */

/* ===========================================================
   ≤ 450px  —  @media (max-width: 450px)
   Phones — narrowest viewports. Touch targets enlarge, multi-column grids collapse to one column.
   =========================================================== */
@media (max-width: 450px) {
    ul.tpath {
        display: none;
    }

	page {
		width: 100%;
        padding: 5px;
	}

	maincats {
		margin: 40px 0 50px;
	}
	maincats a {
		font-size: 0.85rem;
		line-height: 0.9rem;
		padding-top: 60px;
	}

    cakeblock {
        grid-template-columns: auto;
        grid-template-rows: auto;
    }
    cakeblock cb.caketitle {
        grid-column: 1;
        grid-row: 1;
        padding-left: 10px;
    }
    cakeblock prodcode {
        font-size: 18px;
    }
    cakeblock cb.cakepicture {
        width: 100%;
        height: 370px;
        grid-column: 1;
        grid-row: 2;
    }

    cakeblock cb.cakeinfo {
        grid-column: 1;
        grid-row: 3;
        height: max-content;
    }
    cakeblock cb.cakeinfo p {
        font-size: 18px;
        line-height: 20px;
    }
    cakeblock cb.cakeorder {
        grid-column: 1;
        grid-row: 4;
    }
    cakeblock cb.caketitle h1 {
        font-weight: bold;
        text-align: center;
        margin-top: 40px;
    }
    cakeblock cb.caketitle prodcode {
        left: 50%;
        transform: translateX(-50%);
        font-size: 25px;
    }
    ul.ctabshead {
        gap: 5px
    }
    ul.ctabshead li {
        flex: 1;
        font-size: 1.2rem;
        text-align: center;
        padding: 15px 10px;
        background-color: #ddd;
    }
    cakeblock select, cakeblock input {
        font-size: 18px;
    }
    cakeblock label {
        font-size: 15px;
    }
    ul.discounts {
        font-size: 18px;
        line-height: 20px;
    }
    ordermsg {
        font-size: 18px;
        line-height: 20px;
    }
    orderprice {
        font-size: 5rem;
        line-height: 4rem;
    }

    ordline button {
        font-size: 1.3rem;
    }
    ordline input {
        font-size: 25px;
        line-height: 25px;
        width: 45px;
    }
    ordbdown, ordbup {
        flex: 0 0 35px;
        height: 35px;
        border-radius: 20px;
    }
    ordbdown::after, ordbup::after {
        font-size: 1.8rem;
        line-height: 1.8rem;
    }
    searchblock {
        width: 350px;
    }
    modals {
        width: 450px;
    }
    modal {
        width: 100%;
    }
    closebranches a {
        width: calc((100% - (10px * 1)) / 2);
    }
    brinfoblock {
        grid-template-columns: 100%;
        grid-template-rows: auto auto auto;
        height: auto;
    }
    brinfoblock bropeningtimes {
        grid-column: 1;
        grid-row: 2;
        width: 100%;
    }
    brinfoblock brmap,
    brinfoblock brcontact {
        grid-column: 1;
        grid-row: 3;
        width: 100%;
    }
    brinfoblock brmap map {
        width: 100%;
        height: 300px;
    }
    table.orders tr td:nth-child(6) {
        display: none;
    }
    ordd {
        grid-template-columns: auto;
        gap: 10px
    }
    orddrating {
        grid-column: 1;
        grid-row: 3;
    }
    orditems {
        grid-column: 1;
        grid-row: 2;
        margin-bottom: 15px;
    }
    orditems oitm {
        padding: 10px 0px 50px 130px;
        border: none;
        min-height: 130px;
    }
    orditems oitm+oitm {
        margin-top: 10px;
        border-top: 4px solid #f8d0d2;
    }
    orditems oitm img {
        left: 0;
        top: 10px;
        width: 120px;
        height: 120px;
    }
    oitm otitle b {
        position: absolute;
        font-size: 0.8rem;
        padding: 3px 5px;
        transform: translateX(calc(-100% - 10px));
        z-index: 10;
        top: -2px;
        border-radius: 4px 0 0 4px;
    }
    oitm orddi {
        margin: 5px 0px 0 95px;
    }
    oitm orddi[caption]::before {
        left: -95px;
        font-size: 0.8rem;
        font-weight: bold;
    }
    oitm oitmp {
        bottom: 0px;
        left: 130px;
    }
    oitm oitmq {
        bottom: 0px;
        right: 280px;
    }
    [basket] orditems {
        grid-column: 1;
        grid-row: 2;
    }
    [basket] collection {
        grid-column: 1;
        grid-row: 1;
    }
    basketact {
        height: 140px;
    }
    basketact totamt {
        top: 35px;
        left: 0;
        width: 100%;
        text-align: center;
    }
    basketact frmbtn {
        right: 100px;
    }
    alrginf {
        text-align: center;
    }
}

/* ===========================================================
   ≥ 500px  —  @media (min-width: 500px)
   Large phones / phablets landscape, very small tablets.
   =========================================================== */
@media (min-width: 500px) {
    split-grid {
        grid-template-columns: 40% auto;
    }
    ul.branch-list {
        grid-area: 1 / 1 / span 1 / span 2;
        margin-bottom: 10px;
    }
    page-footer img.footer-logo {
        width: 200px;
    }
    page-footer footer-links {
        margin-left: 250px;
    }
    footer-social {
        top: 70px;
    }
    ul.branch-list li {
        font-size: 1rem;
        line-height: 1rem;
    }
    split-grid branch-info {
        grid-area: 2 / 1;
        border-radius: 10px 0 0 10px;
        border-right-style: dotted;
    }
    ul.branch-hours {
        grid-area: 2 / 2;
        background-color: rgb(231, 219, 225);
        border-radius: 0 10px 10px 0;
        border: 1px solid var(--color-border-pink);
        border-left: none;
    }
    ordbdown, ordbup {
        flex: 0 0 40px;
    }
    table.orders tr td:nth-child(5) {
        display: table-cell;
    }
}

/* ===========================================================
   ≥ 650px  —  @media (min-width: 650px)
   Tablet portrait. Side-by-side blocks start to appear.
   =========================================================== */
@media (min-width: 650px) {
    nav-left, nav-right {
        display: block;
    }
    a.top-search {
        display: block;
    }
    top-logo {
        position: relative;
        display: block;
        margin: auto;
        width: 100%;
        height: 100px;
        background:
            linear-gradient(
                0deg,
                rgb(236, 215, 226) 0%,
                rgb(251, 235, 243) 50%,
                rgb(243, 196, 220) 100%
            );
        background-color: var(--color-dark-pink);
    }
    top-logo::after {
        position: absolute;
        display: block;
        content: "";
        width: 250px;
        height: 90px;
        left: 10px;
        top: 5px;
        transform: none;
        background-image: url(img/eggless-cake-shop-logo-full.svg);
        background-position: center;
        background-size: contain;
        background-repeat: no-repeat;
        z-index: 99;
        pointer-events: none;
    }
    country-switch {
        width: 175px;
        left: auto;
        right: 65px;
        top: 15px;
        color: var(--color-text);
        border-color: rgb(201, 185, 165);
    }
    mobile-menu {
        display: none;
    }
    top-menu {
        display: flex;
    }
    ul.branch-list li {
        flex: 0 0 25%;
    }
    page-footer footer-links a {
        font-size: 1rem;
        line-height: 1rem;
        margin-right: 0px;
    }
    page-footer>page-wrap {
        padding-bottom: 10px;
        min-height: 120px;
    }
    footer-copy {
        bottom: 10px;
    }
    page-footer footer-links {
        position: relative;
        display: flex;
        flex-direction: row;
    }
    banner-slider {
        aspect-ratio: 10 / 4;
    }
    banner-slide {
        background-image: var(--banner-medium);
    }
    main-cats {
        margin-bottom: 20px;
    }
    main-cats a {
        flex: 1;
        align-content: flex-start;
        padding-top: 60px;
        height: auto;
        padding-bottom: 20px;
        min-height: 80px;
    }
    main-cats a cat-info {
        display: block;
    }
    category-grid a {
        flex: 0 0 calc(24.8% - 3px);
    }
    category-grid.similarcakes a {
        flex: 0 0 calc(19.8% - 3px);
    }
    feat-block {
        padding: 10px;
    }
    a.menu-show-md, a.menu-show-lg, a.menu-show-xl {
        display: none;
    }
    ordbdown, ordbup {
        margin: 0 10px;
    }
    body > page-wrap > h1 {
        margin-top: 20px;
    }
    body > page-wrap > h4 {
        padding: 0 100px;
    }
    table.orders tr td:nth-child(3) {
        display: table-cell;
    }
    ul.tpath {
        margin-top: 35px;
    }
}

/* ===========================================================
   ≥ 800px  —  @media (min-width: 800px)
   Tablet landscape / small laptops. Header chrome shifts to inline.
   =========================================================== */
@media (min-width: 800px) {
    ul.branch-list li {
        flex: 0 0 50%;
    }
    split-grid {
        grid-template-columns: auto 200px 300px;
    }
    ul.branch-list {
        grid-area: 1 / 1;
    }
    split-grid branch-info {
        grid-area: 1 / 2;
        margin-top: 0px;
    }
    ul.branch-hours {
        grid-area: 1 / 3;
        margin-top: 0px;
    }
    category-grid a {
        flex: 0 0 calc(19.8% - 3px);
    }
    category-grid.similarcakes a {
        flex: 0 0 calc(16.5% - 3px);
    }
    feat-block feat-col h2 {
        font-size: 40px;
        line-height: 40px;
        margin-bottom: 20px;
    }
    feat-block feat-col h4 {
        font-size: 20px;
        line-height: 23px;
    }
    a.menu-show-md {
        display: block;
    }
    cakeblock {
        grid-template-columns: minmax(0, 1fr) 450px;
    }
    cakeblock cb.caketitle {
        grid-area: 1 / 1 / 1 / span 2;
    }
    cakeblock cb.cakepicture {
        grid-area: 2 / 1;
    }
    cakeblock cb.cakeorder {
        grid-area: 2 / 2;
    }
    cakeblock cb.cakeinfo {
        grid-area: 3 / 1 / 3 / span 2;
    }
    ul.ctabshead {
        flex-wrap: nowrap;
    }
    ul.ctabshead li {
        flex: 1;
    }
    table.orders tr td:nth-child(6) {
        display: table-cell;
    }
}

/* ===========================================================
   ≥ 1050px  —  @media (min-width: 1050px)
   Standard laptops. Multi-column hero / basket layouts kick in.
   =========================================================== */
@media (min-width: 1050px) {
    banner-slider {
        aspect-ratio: 13 / 4;
    }
    banner-slide {
        background-image: var(--banner-long);
    }
    ul.branch-list li {
        flex: 0 0 30%;
    }
    main-cats a::before {
        left: 35px;
        top: 10px;
    }
    main-cats a {
        text-align: left;
        padding-left: 70px;
        padding-top: 10px;
        font-size: 1.1rem;
        line-height: 1.1rem;
    }
    main-cats a cat-info {
        text-align: left;
        max-width: 100%;
    }
    main-cats a::after {
        transform: none;
        left: auto;
        right: 5px;
    }
    category-grid a {
        flex: 0 0 calc(16.5% - 3px);
    }
    category-grid.similarcakes a {
        flex: 0 0 calc(14.1% - 3px);
    }
    feat-block {
        padding: 20px;
    }
    review-list {
        margin-bottom: 20px;
    }
    a.menu-show-lg {
        display: block;
    }
}

/* ===========================================================
   ≥ 1350px  —  @media (min-width: 1350px)
   Larger desktops. Padding and font-sizes scale up a notch.
   =========================================================== */
@media (min-width: 1350px) {
    split-grid {
        width: 1300px;
        margin: auto;
    }
    page-wrap {
        width: 1300px;
        margin: auto;
    }
    page-wrap:has(banner-slider) {
        width: 100%;
    background:
        linear-gradient(
            0deg,
            rgb(255, 255, 255) 0%,
            rgb(240, 196, 205) 70%,
            rgb(234, 216, 225) 100%
        );
        background-color: rgb(234, 216, 225);
    }
    banner-slider {
        width: 1300px;
        margin: auto;
        border-radius: 10px;
        overflow: hidden;
        border: 1px solid #ffffff;
    }
    main-cats {
        width: 1310px;
        margin: auto;
    }
    page-title {
        width: 1300px;
        margin: auto;
        margin-bottom: 10px;
    }
    ul.branch-list li {
        flex: 0 0 20%;
    }
    top-basket {
        right: calc(50% - 645px);
    }
    country-switch {
        right: calc(50% - 585px);
    }
    top-menu {
        right: calc(50% - 650px);
    }
    top-logo::after {
        left: calc(50% - 645px);
    }
    a.top-search {
        right: calc(50% - 395px);
    }
    a.menu-show-xl {
        display: block;
    }
}

/* ===========================================================
   ≥ 1500px  —  @media only screen and (min-width: 1500px)
   Wide desktops. Category grid widens, hero artwork breathes.
   =========================================================== */
@media only screen and (min-width: 1500px) {
	page {
		width: 1400px;
	}

	maincats a {
		padding-top: 100px;
	}
	maincats a::before {
		width: 80px;
		height: 80px;
	}

    closebranches a {
        width: calc((100% - (10px * 5)) / 6);
    }
    ordd {
        grid-template-columns: 450px auto;
    }
}

/* ===========================================================
   ≥ 2000px  —  @media only screen and (min-width: 2000px)
   Ultra-wide / 4K. Hard cap on grid expansion so cards don’t become enormous.
   =========================================================== */
@media only screen and (min-width: 2000px) {
	page {
		width: 1900px;
	}
	maincats a {
		padding-top: 100px;
	}
	maincats a::before {
		width: 80px;
		height: 80px;
	}

    closebranches a {
        width: calc((100% - (10px * 6)) / 7);
    }
    ordd {
        grid-template-columns: 450px auto 450px;
    }
    orddrating{
        grid-column: 3;
        grid-row: 1;
    }
    orditems {
        grid-column: 2;
        grid-row: 1;
    }
}
