/*
    YELLOW 248, 195, 120
    YELLOW-ORANGE 255, 170, 0
    BLACK 27, 23, 23
    GUD YELLOW rgb(255, 231, 68)

*/

@font-face {
    font-family: "Montserrat";
    src: url(Montserrat-VariableFont_wght.ttf);
      font-display:swap;

}

@font-face {
    font-family: "SpaceMono";
    src: url(SpaceMono-Regular.ttf);
  font-display:swap;

}



@font-face {
    font-family: "dirt";
    src: url(RubikDirt-Regular.ttf);
      font-display:swap;

}

@font-face {
    font-family: "sens";
    src: url(Sansation-Regular.ttf);
      font-display:swap;

}


@font-face {
    font-family: 'M PLUS 1 Code Regular';
    font-style: normal;
    font-weight: normal;
    src: local('M PLUS 1 Code Regular'), url('MPLUS1Code[wght].woff') format('woff');
    font-display:swap;

}

:root {
    --header-height: 55px;
    --page-pad: 16px;
    --red: rgb(246, 71, 64);
    --ink: #333333;
    --dark: #171717;
    --light: #f8f5f5;
    --card:#fff;
    --page:#f5f5f7;
    --gray:#6e6e73;
    --yellow:#5c805f;
    --cardradius:18px; --cardshadow:0 4px 18px rgba(0,0,0,.06);

}

@media (min-width: 768px) {
    :root {
        --header-height: 70px;
        --page-pad: 25px;
    }
}

*,
*::before,
*::after {

    box-sizing: border-box;
}

html {
    scroll-padding-top: var(--header-height);
    scroll-behavior: smooth;
}

body {
    background-color: #333333;
    margin: 0;
    -webkit-text-size-adjust: 100%;
}

img {
    max-width: 100%;
}

h1 {
    font-family: "Montserrat";
    font-weight: 500;
    color: var(--ink);
    font-size: clamp(1.4rem, 4vw, 2rem);
    margin: 0;
}

/* ---------------------------------- TOPBAR */

.TOPBAR {
    position: sticky;
    top: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    height: var(--header-height);
    background-color: #ffffff;
    padding-right: var(--page-pad);
}

.NAV_LEFT {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
    height: 100%;
}

.NAV_RIGHT {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 100%;
}

#LOGO {
    color: var(--red);
    align-self: flex-end;
    height: 100%;
    width: 100px;
    font-size: 1rem;
    padding-left: var(--page-pad);
    padding-right: var(--page-pad);
    margin: 0px;
}

/* nav list: dropdown panel on phones, inline row on desktop */

.NAV_LINKS {
    list-style: none;
    margin: 0;
    padding: 0;
    display: none;
    align-items: center;
}

.NAV_LINKS.open {
    display: flex;
    flex-direction: column;
    position: absolute;
    top: var(--header-height);
    left: 0;
    right: 0;
    background-color: #ffffff;
    padding: 8px var(--page-pad) 16px;
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.18);
}

.NAV_LINKS a {
    display: flex;
    align-items: center;
    height: 48px;
    padding: 0 14px;
    color: var(--gray);
    text-decoration: none;
    font-family: "Montserrat";
    font-weight: 500;
    border-radius: 4px;
    transition: background-color 0.3s ease;
}

.NAV_TOGGLE {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    height: 40px;
    width: 40px;
    padding: 0 9px;
    background: none;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 4px;
    cursor: pointer;
}

.NAV_TOGGLE span {
    display: block;
    height: 2px;
    width: 100%;
    background-color: #121212;
}

@media (min-width: 900px) {
    .NAV_TOGGLE {
        display: none;
    }

    .NAV_LINKS,
    .NAV_LINKS.open {
        display: flex;
        flex-direction: row;
        position: static;
        height: 100%;
        padding: 0;
        box-shadow: none;
        background: none;
    }

    .NAV_LINKS a {
        height: 50px;
        padding: 0 20px;
    }
}

.TOPBAR_INTERACT_BUTTON {
    height: 40px;
    width: 40px;
    flex: none;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 4px;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

#SHOPPING_CART {
    height: 28px;
    width: 28px;
}

#SEARCH {
    height: 26px;
    width: 26px;
}


.FIRST_BOX {
    background-color: #f8f8f8;
    min-height: clamp(320px, 75vh, 1000px);
    padding-left: var(--page-pad);
    padding-right: var(--page-pad);
    align-items: center;
    justify-content: center;

}

.FIRST_BOX img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 15px;


}

.SECOND_BOX {
    background-color: var(--page);
    padding: var(--page-pad);
}

.USECASES_BOX {
    background-color: var(--red);
    padding: var(--page-pad);
    height: clamp(320px, 75vh, 1000px);
    justify-items: center;
    display:flexbox;




}

#usecases_title {
    font-family: "sens";
    font-weight: 1000;
    font-size: 3.4em;
    

}

#UseCaseHolder {
    display: grid;
    grid-template-columns: repeat(4, minmax(min(100%, 222px), 1fr));
    gap: 12px;
    width: 100%;
    justify-items: center;
    height: 50%;
    width: 70%;
}

.UseCase {
    width: 100%;
    background-color: var(--light);
    border-radius: 12px;
    aspect-ratio: 238 / 322;
    border-style: solid;
    border-width: 1px;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.UseCaseImage {
    align-content: center;
    justify-self: center;
    height: 55%;
    width: 90%;

}

.UseCaseInfoFrame {
    height: 20%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.UseCaseInfo {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 50%;
    width: 95%;
    padding: 8px 0;
    border-radius: 12px;
    transform: scale(0.97) translateZ(0);
    transition: background-color 0.3s ease, transform 0.3s ease;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;

}


.Title {
    padding-top: 15px;
    padding-bottom: 25px;
}

.Price {
    padding-top: 0px;
    padding-bottom: 10px;
}


#ProductsHolder {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 312px), 1fr));
    gap: 20px;
    width: 100%;
}


.Product {
    width: 100%;
    background-color: #d3d3d3;
    border-radius: 18px;
    aspect-ratio: 312 / 500;
    overflow: hidden;
    transition: transform 0.9s ease, box-shadow 0.9s ease;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;

      box-shadow: 0 6px 12px rgba(0, 0, 0, 0.1);

}

.Product .ProductImage {
    height: 62%;
    cursor: pointer;

}

.Product .ProductImage img {
    cursor: pointer;
    height: 100%;
    width: 100%;
    display: block;
    object-fit: cover;
}



.ProductInfoFrame {
    height: 38%;
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: start;
    background-color: var(--card);

    padding-right: 28px;
    padding-left: 28px;
    padding-top: 20px;
    padding-bottom: 26px;


}

.ProductInfoFrame .ProductName {
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
    font-family: "Montserrat";
    margin: 0;
    margin-bottom:8px
}   

.ProductInfoFrame .ProductPrice {
    font-size: 14px;
    font-weight: 400;
    font-family: "sens";
    margin-top: auto
    
}

.ProductInfoFrame .NewTag {
    font-size:12px;
    color: #b64400;
    font-weight: 600;
    margin-bottom:4px;
    font-family: "Montserrat";
    



}


.dots{
    align-self: center;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:11px;
  gap:7px;
  justify-content:start;
  margin-bottom:16px;
}
.dots .dot{
  height:11px;
  border-radius:50%;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);
}
.ProductTitle {
    display: flex;
    gap: 8px;
    width: 100%;
    align-items: start;
    justify-content: space-between;
}

.ProductDescription {
    display: flex;
    flex-direction: column;
    gap: 50px;
    width: 100%;
}

.ProductInfo .ProductTitle {
    padding-top: 15px;
}

.ProductDescription .ProductTitle {
    align-items: center;
    padding: 0 14px;
}

.h2_productName {
    font-family: "Montserrat";
    font-weight: 1000;
    color: var(--ink);
    font-size: clamp(0.85rem, 2.2vw, 1rem);
    margin: 0;
    padding-left: 15px;
    text-align: left;
    text-decoration: none;
}

.h2_productName a {
    text-decoration: none;
    color: inherit;

}


.h2_productPrice {
    font-family: "Montserrat";
    font-weight: 1000;
    color: var(--ink);
    font-size: clamp(0.85rem, 2.2vw, 1rem);
    margin: 0;
    padding-right: 15px;
    text-align: right;
    white-space: nowrap;
}

.h2_productDescription {
    display: flex;
    font-family: "Montserrat";
    font-weight: 400;
    color: var(--ink);
    font-size: clamp(0.75rem, 2vw, 1rem);
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
    margin: 0;


}

.ProductDescription .SubTitle {
    padding: 0 15px;
}

.ProductDescription .SubTitle .h2_productDescription {
    justify-content: flex-start;
}



.h2_productCustomizeButton {
    display: flex;
    font-family: "Montserrat";
    font-weight: 400;
    color: var(--light);
    font-size: clamp(0.75rem, 2vw, 1rem);
    width: 100%;
    height: 100%;
    justify-content: center;
    align-items: center;
    margin: 0;
    transition: color 0.3s ease;
    text-decoration: none;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}

.AvailableSizeContainer {
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100%;
    padding-bottom: 5px;
}

.BORDER {
    height: 30px;
    min-width: 55px;
    padding: 0 6px;
    border: 1px solid rgba(18, 18, 18, 0.12);
    border-radius: 4px;
}

.PRODUCT_BUTTON {
    flex: auto;
    height: 30px;
    min-width: 90px;
    background-color: rgba(18, 18, 18, 1);
    border-radius: 4px;
    cursor: pointer;
    margin-left: auto;
    text-decoration: none;

}

/* hover only where a real pointer exists — otherwise phones stick on tap */
@media (hover: hover) {
    .TOPBAR_INTERACT_BUTTON:hover {
        background-color: rgb(241, 241, 237);
        border-color: rgba(18, 18, 18, 0);
    }

    .NAV_LINKS a:hover {
        color: var(--dark);
    }

    .Product:hover {
        transform: scale(1.03);
        z-index: 2;
        box-shadow: 0 12px 24px rgba(0, 0, 0, 0.349);
    }

    .Product:hover .ProductInfo {
        background-color: var(--red);
        transform: scale(1) translateZ(0);
    }

    .PRODUCT_BUTTON:hover .h2_productCustomizeButton {

        color: var(--red);
    }

    .information_text:hover {
        color: var(--red)
    }
}

/* touch devices: show the card's info state permanently, no hover to reveal it */
@media (hover: none) {
    .ProductInfo {
        background-color: var(--red);
        transform: scale(1);
    }
}


.BOTTOM_BOX {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 24px var(--page-pad);
    background-color: var(--dark);
    align-items: start;
}

@media (min-width: 768px) {
    .BOTTOM_BOX {
        grid-template-columns: 1fr 200px 200px;
        gap: 40px;
        padding-right: 80px;
        padding-left: 10px;
        min-height: 120px;
    }
}

.information {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.information h1 {
    color: var(--light);
    margin-bottom: 5px;
}

.information_text {
    font-family: "Montserrat";
    font-weight: 500;
    color: var(--light);
    font-size: 1em;
    padding-left: 15px;
    margin: 0;
    transition: color 0.2s;
}

.information_text a {
    color: inherit;
    text-decoration: none;

}



@media (prefers-reduced-motion: reduce) {
    * {
        transition: none !important;
        scroll-behavior: auto !important;
    }
}

/* design pagee*/



#products_container {
    display: flex;
    align-items: flex-start;
    gap: 35px;
    flex-wrap: wrap;
    height: auto;
    /* not a fixed height */


}

.product_ImageGroup {
    padding-top: 15px;
    display: flex;
    width: calc(50% - 18px);
    min-width: 600px;
    justify-content: center;

}

.product_infoGroup {
    width: calc(45% - 18px);
    height: 100%;
    min-height: 300px;
    order: 2;

}

/* design page end */

.product_ImageGroup .ProductImage {
    max-width: 450px;
    max-height: 450px;
    align-items: center;
    justify-content: center;
    padding-right: 7px;

}

.product_ImageGroup .ProductImage img {
    
    border-radius: 12px;
    object-fit:cover;
}


.previewableImageRow {
    width: 120px;
    height: inherit;
    display: grid;
    grid-template-rows: 1fr 1fr 1fr;
    row-gap: 5px;
}

.productPreviewableImage {
    background-color: bisque;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    cursor: pointer;
}

.productPreviewableImage img {
    height: 100%;
    width: 100%;
    display: block;
    object-fit: cover;
    border-radius: 10px;
    margin: 0;
    
}


.selectionBorderClass {
    border-color: var(--dark);
    border-width: 2px;
    border-style: solid;

}

.TitleText {
    font-weight: 10;
    font-style: italic;
    font-size: 2em;
    margin: 0;
    font-family: "dirt";
}

.PriceText {
    font-family: "M PLUS 1 Code Regular";
    font-weight: 5600;
    font-style:normal;
    font-size: 1.3em;
    margin: 0;
}

.InteractionContainer {
    padding-top: 25px;
    
    display: flex;
    height: 310px;

}
/* --- 404 back btn */

.CD_EMPTY_L {
    display: inline-block;
    padding-top: (var(--page-pad));
    border-radius: var(--cart-radius);
    background: var(--dark);
    color: #fff;
    font-size: .85rem;
    font-weight: 700;
    text-decoration: none;
    transition: background-color .13s;
    font-family: "Montserrat";
}
.CD_EMPTY_L:hover { background: var(--red); }

/* faq */



.accordion {
  background-color: #eee;
  color: #444;
  cursor: pointer;
  padding: 18px;
  width: 50%;
  border: none;
  text-align: left;
  outline: none;
  font-size: 15px;
  transition: 0.4s;
  font-family: "Montserrat";
  font-weight: 1000;
}

.active, .accordion:hover {
  background-color: #ccc;
}

.panel {
  padding: 0 18px;
  background-color: var(--card);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.2s ease-out;
    font-family: "Montserrat";
width: 50%;

}
.colo2r {
display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;

}



/* =====================================================================
   PHONES (narrower than 768px). Everything below only applies there,
   so the desktop layout above is untouched.
   ===================================================================== */
@media (max-width: 767px) {

    /* Home: let the box be as tall as the picture, instead of 75% of the
       screen with the picture floating in it. */
    .FIRST_BOX {
        min-height: 0;
        padding-top: var(--page-pad);
        padding-bottom: var(--page-pad);
    }
    .FIRST_BOX > img {
        height: auto;
    }

    /* Product page: picture and text stacked, both full width.
       min-width: 600px was forcing the page wider than the phone. */
    .product_ImageGroup,
    .product_infoGroup {
        width: 100%;
        min-width: 0;
    }

    /* Big photo on top, the small ones in a row under it. */
    .product_ImageGroup {
        flex-direction: column;
        gap: 8px;
    }
    .product_ImageGroup .ProductImage {
        max-width: none;
        max-height: none;
        padding-right: 0;
    }
    .product_ImageGroup .ProductImage img {
        width: 100%;
        height: auto !important;   /* the HTML sets height: 100% inline */
        aspect-ratio: 1 / 1;
    }
    .previewableImageRow {
        width: 100%;
        grid-template-rows: none;
        grid-auto-flow: column;
        grid-auto-columns: 1fr;
        column-gap: 8px;
    }

    #products_container {
        gap: 20px;
        padding-top: 20px !important;   /* the HTML sets 50px inline */
    }
}
