/* Variables */
:root {
   box-sizing: border-box;

   --background: #f2f2f2;
   --primary: #F5FFC9;
   --secondary: #B3E5BE;
   --banner: #A86464;
   --accent: #804674;

   /* --background: #f2f2f2;
   --primary: #F5FFC9;
   --secondary: #B3E5BE;
   --banner: #A86464;
   --accent: #804674; */

   --mp-dark-blue: #313e47;
   --mp-white: #FFFFFF;
}

body {
   height: 100vh;
   width: 100vw;
   background: linear-gradient(var(--banner), var(--mp-white));
   font-family: -apple-system, BlinkMacSystemFont, sans-serif;
   font-size: 16px;
   -webkit-font-smoothing: antialiased;
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-content: center;
   margin: 0px;
}

header {
   top: 0px;
   width: 100%;
   background-color: var(--banner);
   /* box-shadow: inset 0px -15px 30px 0px var(--mp-white); */
   font-size: 30px;
   font-weight: bold;
   letter-spacing: .6rem;
   color: var(--mp-white);
   text-align: center;
   align-self: center;
   padding: 10px 30px;
   margin: 0px;
}

main {
   top: 0px;
   width: 100%;
   height: 100%;
   background-color: var(--background);
   align-self: center;
   padding: 10px 40px;
}

footer {
   width: 100%;
   height: fit-content;
   background-color: var(--accent);
   color: var(--mp-white);
   align-self: center;
   padding: 20px 40px;
}

.content {
   width: 100%;
   color: #ffffff;
   font-size: 40px;
   position: relative;
   box-shadow: inset 0 0 0 2px;
}

.sidebar {
   width: 100%;
   color: #ffffff;
   font-size: 40px;
   position: relative;
   box-shadow: inset 0 0 0 2px;
}

form {
   background-color: #fefefe;
   width: 30vw;
   min-width: 500px;
   text-align: center;
   align-self: center;
   box-shadow: 0px 0px 0px 0.5px rgba(50, 50, 93, 0.1),
      0px 2px 5px 0px rgba(50, 50, 93, 0.1), 0px 1px 1.5px 0px rgba(0, 0, 0, 0.07);
   border-radius: 7px;
   margin: auto;
   padding: 40px;
   margin-top: 10%;
}

.hidden {
   display: none;
}

.bold {
   font-weight: bold;
}

.left {
   float: left;
   text-align: left;
}

.right {
   float: right;
   text-align: right;
}

.close {
   color: #aaa;
   float: right;
   font-size: 28px;
   font-weight: bold;
   cursor: pointer;
}

.close:hover,
.close:focus {
   color: black;
}

.modal {
   background-color: rgba(0, 0, 0, 0.4);
   position: fixed;
   z-index: 1000;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   overflow: auto;
   display: none;
}

#cart-container {
   height: fit-content;
   width: 50vw;
   background-color: var(--primary);
   box-shadow: inset 0px 0px 0px 5px var(--secondary);
   display: grid;
   float: left;
   padding: 20px;
   border-radius: 7px;
}

#cart-container div {
   height: 70px;
   border-bottom: 1px dashed rgba(50, 50, 93, 0.2);
   display: inline-block;
   padding: 10px;
   margin-bottom: 10px;
}

#cart-container h3 {
   top: 50%;
   width: 50%;
}

#cart-container p {
   top: 50%;
   width: 30%;
   font-size: 20px;
}

#checkout-preview {
   height: fit-content;
   width: 30vw;
   min-width: 300px;
   position: sticky;
   background-color: var(--primary);
   box-shadow: inset 0px 0px 0px 5px var(--secondary);
   display: block;
   float: right;
   text-align: center;
   padding: 20px;
   border-radius: 7px;
}

#subtotal-label {
   text-align: left;
}

#payment-message {
   color: rgb(105, 115, 134);
   font-size: 16px;
   line-height: 20px;
   padding-top: 12px;
   text-align: center;
}

#payment-form {
   margin-bottom: 24px;
}

#payment-element {
   margin-bottom: 24px;
}

/* Buttons and links */
button {
   /* background: #8D77AB; */
   background: var(--accent);
   font-family: Arial, sans-serif;
   color: var(--mp-white);
   border-radius: 4px;
   border: 0;
   padding: 12px 16px;
   font-size: 16px;
   font-weight: 600;
   cursor: pointer;
   display: block;
   transition: all 0.2s ease;
   box-shadow: 0px 4px 5.5px 0px rgba(0, 0, 0, 0.07);
   width: 100%;
}

button:hover {
   filter: contrast(115%);
}

button:disabled {
   opacity: 0.5;
   cursor: default;
}

/* spinner/processing state, errors */
.spinner,
.spinner:before,
.spinner:after {
   border-radius: 50%;
}

.spinner {
   color: #ffffff;
   font-size: 22px;
   text-indent: -99999px;
   margin: 0px auto;
   position: relative;
   width: 20px;
   height: 20px;
   box-shadow: inset 0 0 0 2px;
   -webkit-transform: translateZ(0);
   -ms-transform: translateZ(0);
   transform: translateZ(0);
}

.spinner:before,
.spinner:after {
   position: absolute;
   content: "";
}

.spinner:before {
   width: 10.4px;
   height: 20.4px;
   background: #0055DE;
   border-radius: 20.4px 0 0 20.4px;
   top: -0.2px;
   left: -0.2px;
   -webkit-transform-origin: 10.4px 10.2px;
   transform-origin: 10.4px 10.2px;
   -webkit-animation: loading 2s infinite ease 1.5s;
   animation: loading 2s infinite ease 1.5s;
}

.spinner:after {
   width: 10.4px;
   height: 10.2px;
   background: #0055DE;
   border-radius: 0 10.2px 10.2px 0;
   top: -0.1px;
   left: 10.2px;
   -webkit-transform-origin: 0px 10.2px;
   transform-origin: 0px 10.2px;
   -webkit-animation: loading 2s infinite ease;
   animation: loading 2s infinite ease;
}

/* Payment status page */
#payment-status {
   display: flex;
   justify-content: center;
   align-items: center;
   flex-direction: column;
   row-gap: 30px;
   width: 30vw;
   min-width: 500px;
   min-height: 380px;
   align-self: center;
   box-shadow: 0px 0px 0px 0.5px rgba(50, 50, 93, 0.1),
      0px 2px 5px 0px rgba(50, 50, 93, 0.1), 0px 1px 1.5px 0px rgba(0, 0, 0, 0.07);
   border-radius: 7px;
   padding: 40px;
   opacity: 0;
   animation: fadeInAnimation 1s ease forwards;
}

#status-icon {
   display: flex;
   justify-content: center;
   align-items: center;
   height: 40px;
   width: 40px;
   border-radius: 50%;
}

h2 {
   margin: 0;
   color: #30313D;
   text-align: center;
}

a {
   text-decoration: none;
   font-size: 16px;
   font-weight: 600;
   font-family: Arial, sans-serif;
   display: block;
}

a:hover {
   filter: contrast(120%);
}

#details-table {
   overflow-x: auto;
   width: 100%;
}

table {
   width: 100%;
   font-size: 14px;
   border-collapse: collapse;
}

table tbody tr:first-child td {
   border-top: 1px solid #E6E6E6;
   /* Top border */
   padding-top: 10px;
}

table tbody tr:last-child td {
   border-bottom: 1px solid #E6E6E6;
   /* Bottom border */
}

td {
   padding-bottom: 10px;
}

.TableContent {
   text-align: right;
   color: #6D6E78;
}

.TableLabel {
   font-weight: 600;
   color: #30313D;
}

#view-details {
   color: #0055DE;
}

#retry-button {
   text-align: center;
   background: #0055DE;
   color: #ffffff;
   border-radius: 4px;
   border: 0;
   padding: 12px 16px;
   transition: all 0.2s ease;
   box-shadow: 0px 4px 5.5px 0px rgba(0, 0, 0, 0.07);
   width: 100%;
}

/* #payment-form {
   height: 100%;
   position: fixed;
   z-index: 1;
   top: 0;
   right: 0;
} */

@-webkit-keyframes loading {
   0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
   }

   100% {
      -webkit-transform: rotate(360deg);
      transform: rotate(360deg);
   }
}

@keyframes loading {
   0% {
      -webkit-transform: rotate(0deg);
      transform: rotate(0deg);
   }

   100% {
      -webkit-transform: rotate(360deg);
      transform: rotate(360deg);
   }
}

@keyframes fadeInAnimation {
   to {
      opacity: 1;
   }
}

@media only screen and (max-width: 600px) {

   form,
   #payment-status {
      width: 80vw;
      min-width: initial;
   }
}