﻿@font-face {
    font-family: 'Be Vietnam Pro';
    src: url(fonts/BeVietnamPro-Regular.ttf) format("truetype");
}

@font-face {
    font-family: 'Be Vietnam Pro';
    font-weight: bold;
    src: url(fonts/BeVietnamPro-Bold.ttf) format("truetype");
}

:root {
    --clr-yellow: #FFD435;
    --clr-product-border: black /*#C7D7DB*/;
    --clr-logo-darkblue: #240E39;
    --clr-logo-lightblue: #6189B3;
    --product-corner-radius: 5px;
    --clr-product-title-bk: #598AB7;
    --clr-product-descr-bk: #F7FBFF;
    --main-font: Be Vietnam Pro;
}

/* General stuff */

*,
*::after,
*::before {
    box-sizing: border-box;
}

* {
    margin: 0;
    padding: 0;
    font: inherit;
}

body {
    text-rendering: optimizeSpeed;
    line-height: 1.5;
    font-family: var(--main-font);
    background-image: url('images/manhattan.jpg');
    background-attachment: fixed;
    background-repeat: no-repeat;
    background-size: cover;
}

img, picture, svg {
    max-width: 100%;
    display: block;
}

.container {
    --max-width: 1110px;
    --padding: 1rem;
    width: min( var(--max-width), 100% - (var(--padding) * 2));
    margin-inline: auto;
}

header {
    position: sticky;
    top: 0;
    z-index: 999;
    display: flex;
    background-color: white;
    box-shadow: 0 -6px 10px 5px rgba(0,0,0,0.5);
}

/* Product box */
.product-box {
    font-family: Be Vietnam Pro;
    display: grid;
    grid-template-rows: 25px;
}

.product-title {
    background-color: var(--clr-product-title-bk);
    border-top-left-radius: var(--product-corner-radius);
    border-top-right-radius: var(--product-corner-radius);
    border: 1px solid var(--clr-product-border);
    border-bottom: none;
    font-weight: 600;
    font-size: 14px;
    padding: 2px 12px;
    text-shadow: 1px 1px 2px black;
}

.product-descr {
    background-color: var(--clr-product-descr-bk);
    border-bottom-left-radius: var(--product-corner-radius);
    border-bottom-right-radius: var(--product-corner-radius);
    border: 1px solid var(--clr-product-border);
    padding: 8px 12px;
    line-height: 1.2;
    font-size: 12px;
}

.asp{
    color: white;
}

.prd {
    color: var(--clr-yellow);
}

/* What's New Box*/
.whatsnew-box {
    display: grid;
    font-family: Be Vietnam Pro;
    grid-auto-rows: auto 1fr;
}

.whatsnew-title {
    background-color: var(--clr-product-title-bk);
    border-top-left-radius: var(--product-corner-radius);
    border-top-right-radius: var(--product-corner-radius);
    border-top: 1pt solid white;
    border-right: 1pt solid white;
    border-left: 1pt solid white;
    border-bottom: 1pt solid white;
    font-weight: 600;
    font-size: 14px;
    text-align: left;
    padding: 0 12px;
    text-shadow: 1px 1px 2px black;
}

.whatsnew-descr {
    background-color: var(--clr-logo-lightblue);
    border-bottom-left-radius: var(--product-corner-radius);
    border-bottom-right-radius: var(--product-corner-radius);
    border-right: 1pt solid white;
    border-left: 1pt solid white;
    border-bottom: 1pt solid white;
    color: white;
    line-height: 1.2;
    font-size: 12px;
    padding: 8px 12px;
    display: grid; /* this and following lines are to center text inside the box vertically */
    align-items: center;
}

.date {
    color: black;
    font-family: 'Courier New';
    font-weight: bold;
    background-color: var(--clr-yellow);
    padding: 0 5px;
    text-shadow: none;
    border: 1pt solid black;
}

.newsheader {
    color: white;
}

.title1 {
    grid-area: header;
    background-color: var(--clr-logo-lightblue);
    color: var(--clr-yellow);
    text-align: center;
    font-weight: bold;
    font-size: 1.3rem;
    border-radius: var(--product-corner-radius);
    text-shadow: 1px 1px 2px black;
    text-transform: uppercase;
}

.title1#t1 {
    border: 1px solid var(--clr-product-border);
}

.title1#t2{
    border: 1pt solid white;
}

/* Grid Arrangement*/
#main {
    display: grid;
    grid-template-columns: 3fr 1fr;
}

#products {
    display: grid;
    background-color: rgba(255, 255, 255, 0.5);
    padding: 20px 20px;
    border-left: 1pt solid black;
    border-right: 1pt solid black;
    grid-gap: 20px;
    grid-template-columns: 1fr 1fr 1fr;
    grid-auto-rows: auto 1fr 1fr 1fr 1fr; /* PP first row (title) is automatic and the rest are all equal in height. */
    grid-template-areas:
        "header header header"
        "product1 product2 product3"
        "product4 product5 product6"
        "product7 product8 product9"
        "product10 product11 product12"
}

#whatsnew {
    display: grid;
    padding: 20px 20px;
    border-right: 1pt solid black;
    background-color: var(--clr-logo-lightblue);
    background-image: url('images/pentamino_seamless_1867x1867.webp');
    background-size: 1000px;
    grid-gap: 20px;
    grid-auto-rows: min-content min-content min-content min-content;
    grid-template-areas:
        "header"
        "whatsnew1"
        "whatsnew2"
        "whatsnew3"
}


.hamburger-menu {
    display: none;
}

/* Navigation */
#slogan {
    font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;
    font-style: italic;
    text-transform: uppercase;
    font-size: 0.8rem;
}

header div.container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

header ul li {
    display: inline;
    font-family: var(--main-font);
    padding: 0 5px;
    font-size: 0.7rem;
    text-transform: uppercase;
}

header ul li a {
    text-decoration: none;
    color: var(--clr-logo-darkblue);
}

header ul li a:hover {
    color: var(--clr-logo-lightblue);
}

div.product-box a {
    text-decoration: none;
}

div.product-box a:hover span {
    color: white;
}

div.whatsnew-box a {
    text-decoration: none;
}

div.whatsnew-box a:hover div.whatsnew-title {
    background-color: var(--clr-yellow);
    transition: background-color 0.3s;
}


/* Counters Section */
.counters {
    display: grid;
    padding: 20px 20px;
    background-color: var(--clr-product-descr-bk);
    grid-gap: 20px;
    grid-template-columns: 1fr 1fr 1fr;
    border: 1pt solid black;
    background-size: 1000px;
}

.counter {
    color: var(--clr-logo-darkblue);
    text-align: center;
    text-transform: uppercase;
    font-size: 12px;
    background-color: var(--clr-yellow);
    padding: 10px 0 5px 0;
    border-radius: var(--product-corner-radius);
    border: 1pt solid black;
    font-weight: bold;
}

div.counter label {
    font-size: 40px;
    font-weight: bold;
    font-family: Courier New, Courier, monospace;
    color: white;
    text-shadow: 1px 1px 3px black;
}

/* Footer */
.footer {
    display: grid;
    background-color: black;
    grid-gap: 20px;
    font-size: 12px;
    color: white;
    grid-template-columns: 1fr 1fr 1fr;
    border-left: 1px solid gray;
    border-right: 1px solid gray;
    border-bottom: 1px solid gray
}

.footer .footer-column {
    padding: 20px 20px;
    display: grid;
    text-align: center;
    align-content: center;
}

.footer .footer-column img {
    display: inline;
    vertical-align: middle;
    margin: 0 0 0 3px;
}

.footer a {
    text-decoration: none;
    color: white;
}

/* About Page */
#about {
    display: grid;
    background-color: rgba(255, 255, 255, 0.5);
    padding: 20px 20px;
    border-left: 1pt solid black;
    border-right: 1pt solid black;
    grid-gap: 20px;
    grid-template-columns: 1fr;
    grid-auto-rows: auto 1fr;
}

#about #about-body {
    border: 1px solid black;
    border-radius: var(--product-corner-radius);
    background-color: white;
    padding: 20px;
    display: grid;
    grid-gap: 10px;
    font-family: var(--main-font);
    font-size: 14px;
}


#client-table {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
}

/* Contact Page */
.contact-table {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: 1fr 1fr 1fr 1fr 1fr;
    grid-gap: 20px;
    align-items: center;
}

.contact-left img {
    width: 3rem;
}

.contact-right a
{
    text-decoration: none;
    color: inherit;
}

/* What's New Page */
#about-body h1 {
    font-size: 18px;
    font-weight: bold;
    color: white;
    padding: 0 0 0 10px;
    background-color: var(--clr-logo-lightblue);
    text-shadow: 1px 1px 2px black;
    border-radius: var(--product-corner-radius);
}

#about-body p {
    padding: 10px 0;
}

#about-body b {
    font-weight: bold;
}

#about-body hr {
    display: none;
}

#about-body ul {
    text-transform: none;
    padding: 0px 20px;
    font-size: inherit;
    display: flow;
}

#about-body ul li {
    padding: 3px 0px;
    list-style-type: square;
}

a[name*="a"] {
    scroll-margin-top: 110px;
}


@media screen and (max-width: 900px) {
    #main {
        display: grid;
        grid-template-columns: 1fr;
    }

    #whatsnew {
        display: grid;
        padding: 20px 20px;
        border-top: 1pt solid black;
        border-left: 1pt solid black;
        grid-gap: 20px;
        grid-template-areas:
            "header header header"
            "whatsnew1 whatsnew2 whatsnew3"
    }

    h2#slogan {
        display: none;
    }

    #client-table {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 500px) {

    #main {
        display: grid;
        grid-template-columns: 1fr;
    }

    #whatsnew {
        display: grid;
        padding: 20px 20px;
        grid-gap: 20px;
        grid-template-columns: 1fr;
        grid-template-rows: unset;
        grid-auto-rows: unset;
        grid-template-areas:
            "header";
    }

    #products {
        display: grid;
        padding: 20px 20px;
        grid-gap: 20px;
        grid-template-columns: 1fr;
        grid-template-rows: unset;
        grid-auto-rows: unset;
        grid-template-areas:
            "header";
    }

    h2#slogan {
        display: none;
    }

    /* Make menu vertical and hide it to the right of the screen */
    header ul li {
        display: block;
    }

    /* Hamburger parameters */
    :root {
        --bar-width: 45px;
        --bar-height: 6px;
        --hamburger-gap: 4px;
        --clr-foreground: var(--clr-logo-darkblue);
        --hamburger-margin: 8px;
        --animation-timing: 200ms ease-in-out;
        --hamburger-height: calc(var(--bar-height) * 3 + var(--hamburger-gap) * 2);
    }

    nav {
        background-color: var(--clr-logo-darkblue);
        display: block;
        position: fixed;
        height: 100vh;
        left: 100%;
        top: 0;
        width: 220px;
        padding-top: 5rem;
        padding-left: 18px;
        padding-right: 18px;
        transition: transform .5s ease-in-out;
        transform: translateX(0px);
    }

    nav ul li {
        font-size: 1.0rem;
        line-height: 2.5;
        border-top: 1px solid white;
    }

    nav ul li:last-child {
        border-bottom: 1px solid white;
    }

    nav ul li a {
        color: white;
    }

    ul li a:hover {
        color: var(--clr-yellow);
        text-shadow: none;
    }

    /* from here down -- Hamburger menu */
    .hamburger-menu {
        display: block;
    }

    .hamburger-menu {
        --x-width: calc(var(--hamburger-height) * 1.4142); /* tan 45 */
        display: flex;
        flex-direction: column;
        gap: var(--hamburger-gap);
        width: max-content;
        top: var(--hamburger-margin);
        left: var(--hamburger-margin);
        z-index: 3;
        cursor: pointer;
        transform: translateX(0px);
    }

    .hamburger-menu:has(input:checked) {
        --clr-foreground: white;
        --clr-background: #333;
    }

    .hamburger-menu::before,
    .hamburger-menu input,
    .hamburger-menu::after {
        content: "";
        width: var(--bar-width);
        height: var(--bar-height);
        background-color: var(--clr-foreground);
        border-radius: 9999px;
        transform-origin: left center;
        transition: opacity var(--animation-timing), width var(--animation-timing), rotate var(--animation-timing), translate var(--animation-timing), background-color var(--animation-timing);
    }

    .hamburger-menu input {
        appearance: none;
        padding: 0;
        margin: 0;
        outline: none;
        pointer-events: none;
    }

    .hamburger-menu:has(input:checked)::before {
        rotate: 45deg;
        width: var(--x-width);
        translate: 0 calc( var(--bar-height) / -2);
    }

    .hamburger-menu:has(input:checked)::after {
        rotate: -45deg;
        width: var(--x-width);
        translate: 0 calc( var(--bar-height) / 2);
    }

    .hamburger-menu input:checked {
        opacity: 0;
        width: 0;
    }

    .hamburger-menu:has(input:checked) ~ nav {
        transform: translateX(-220px);
    }

    /* This is to prevent small logo movements during hamburger animation */
    #logo {
        width: 70vw;
    }

    .counters {
        grid-template-columns: 1fr;
    }

    .footer {
        grid-template-rows: auto 1fr auto;
        grid-template-columns: 1fr;
    }

    .footer .footer-column {
        padding: 5px 0 5px 0;
    }

    #client-table {
        grid-template-columns: 1fr;
    }
}