/* Theme styles */

/* Poppins Thin */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 100;
  src: url('/fonts/Poppins-Thin.ttf') format('truetype');
}

/* Poppins Thin Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 100;
  src: url('/fonts/Poppins-ThinItalic.ttf') format('truetype');
}

/* Poppins ExtraLight */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 200;
  src: url('/fonts/Poppins-ExtraLight.ttf') format('truetype');
}

/* Poppins ExtraLight Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 200;
  src: url('/fonts/Poppins-ExtraLightItalic.ttf') format('truetype');
}

/* Poppins Light */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 300;
  src: url('/fonts/Poppins-Light.ttf') format('truetype');
}

/* Poppins Light Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 300;
  src: url('/fonts/Poppins-LightItalic.ttf') format('truetype');
}

/* Poppins Regular */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  src: url('/fonts/Poppins-Regular.ttf') format('truetype');
}

/* Poppins Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 400;
  src: url('/fonts/Poppins-Italic.ttf') format('truetype');
}

/* Poppins Medium */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 500;
  src: url('/fonts/Poppins-Medium.ttf') format('truetype');
}

/* Poppins Medium Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 500;
  src: url('/fonts/Poppins-MediumItalic.ttf') format('truetype');
}

/* Poppins SemiBold */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  src: url('/fonts/Poppins-SemiBold.ttf') format('truetype');
}

/* Poppins SemiBold Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 600;
  src: url('/fonts/Poppins-SemiBoldItalic.ttf') format('truetype');
}

/* Poppins Bold */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  src: url('/fonts/Poppins-Bold.ttf') format('truetype');
}

/* Poppins Bold Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 700;
  src: url('/fonts/Poppins-BoldItalic.ttf') format('truetype');
}

/* Poppins ExtraBold */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  src: url('/fonts/Poppins-ExtraBold.ttf') format('truetype');
}

/* Poppins ExtraBold Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 800;
  src: url('/fonts/Poppins-ExtraBoldItalic.ttf') format('truetype');
}

/* Poppins Black */
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 900;
  src: url('/fonts/Poppins-Black.ttf') format('truetype');
}

/* Poppins Black Italic */
@font-face {
  font-family: 'Poppins';
  font-style: italic;
  font-weight: 900;
  src: url('/fonts/Poppins-BlackItalic.ttf') format('truetype');
}

:root {
  --color-accessibility: #0000ff;
  --color-accessibility-lighter: hsl(240, 100%, clamp(0%, calc(50% + 10%), 100%));
  --color-accessibility-darker: hsl(240, 100%, clamp(0%, calc(50% - 10%), 100%));
  --color-accessibility-translucent: rgba(0, 0, 255, var(--translucent-alpha));
  --color-accessibility-watercolor: rgba(0, 0, 255, var(--watercolor-alpha));
  --color-error: #dc3545;
  --color-error-lighter: hsl(354, 70%, clamp(0%, calc(54% + 10%), 100%));
  --color-error-darker: hsl(354, 70%, clamp(0%, calc(54% - 10%), 100%));
  --color-error-translucent: rgba(220, 53, 69, var(--translucent-alpha));
  --color-error-watercolor: rgba(220, 53, 69, var(--watercolor-alpha));
  --color-input: #cccccc;
  --color-input-lighter: hsl(0, 0%, clamp(0%, calc(80% + 10%), 100%));
  --color-input-darker: hsl(0, 0%, clamp(0%, calc(80% - 10%), 100%));
  --color-input-translucent: rgba(204, 204, 204, var(--translucent-alpha));
  --color-input-watercolor: rgba(204, 204, 204, var(--watercolor-alpha));
  --color-input-active: #f04e98;
  --color-input-active-lighter: hsl(333, 84%, clamp(0%, calc(62% + 10%), 100%));
  --color-input-active-darker: hsl(333, 84%, clamp(0%, calc(62% - 10%), 100%));
  --color-input-active-translucent: rgba(240, 78, 152, var(--translucent-alpha));
  --color-input-active-watercolor: rgba(240, 78, 152, var(--watercolor-alpha));
  --color-primary: #f04e98;
  --color-primary-lighter: hsl(333, 84%, clamp(0%, calc(62% + 10%), 100%));
  --color-primary-darker: hsl(333, 84%, clamp(0%, calc(62% - 10%), 100%));
  --color-primary-translucent: rgba(240, 78, 152, var(--translucent-alpha));
  --color-primary-watercolor: rgba(240, 78, 152, var(--watercolor-alpha));
  --color-secondary: #3faf49;
  --color-secondary-lighter: hsl(125, 47%, clamp(0%, calc(47% + 10%), 100%));
  --color-secondary-darker: hsl(125, 47%, clamp(0%, calc(47% - 10%), 100%));
  --color-secondary-translucent: rgba(63, 175, 73, var(--translucent-alpha));
  --color-secondary-watercolor: rgba(63, 175, 73, var(--watercolor-alpha));
  --color-success: #3faf49;
  --color-success-lighter: hsl(125, 47%, clamp(0%, calc(47% + 10%), 100%));
  --color-success-darker: hsl(125, 47%, clamp(0%, calc(47% - 10%), 100%));
  --color-success-translucent: rgba(63, 175, 73, var(--translucent-alpha));
  --color-success-watercolor: rgba(63, 175, 73, var(--watercolor-alpha));
  --color-warning: #ff9400;
  --color-warning-lighter: hsl(35, 100%, clamp(0%, calc(50% + 10%), 100%));
  --color-warning-darker: hsl(35, 100%, clamp(0%, calc(50% - 10%), 100%));
  --color-warning-translucent: rgba(255, 148, 0, var(--translucent-alpha));
  --color-warning-watercolor: rgba(255, 148, 0, var(--watercolor-alpha));
  --color-disabled: #ddd;
  --color-input-placeholder: #666;
  --color-money: #333;
  --background-color: #fff;
  --border-radius: 16px;
  --border-width: 2px;
  --drawer-background: #fff;
  --font-body: "Source Sans Pro", sans-serif;
  --font-header: Poppins, sans-serif;
  --font-navigation: "Source Sans Pro", sans-serif;
  --header-background: rgba(255, 255, 255, 0.8);
  --header-filter: blur(0.5rem);
  --hover-color: rgba(0, 0, 0, 0.08);
  --hover-size: 0.3rem;
  --icon-size: 2.5rem;
  --icon-padding: 0.5rem;
  --input-background: #fff;
  --input-padding: 0.75rem 1.5rem;
  --max-width: 100rem;
  --padding: 1rem;
  --quantity-color: rgba(0, 0, 0, 0.08);
  --shade-color: rgba(0, 0, 0, 0.5);
  --shade-filter: blur(0.5rem);
  --speed: 300ms;
  --speed-loading: calc(var(--speed) * 2);
  --shadow-surface: 0 0 0.5rem rgba(0, 0, 0, 0.15);
  --text-color: #555;
  --text-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.25);
  --translucent-alpha: 0.35;
  --watercolor-alpha: 0.1;
}

* {
  box-sizing: border-box;
}

a {
  color: var(--color-primary);
}

ol, ul {
  padding-inline-start: 2rem; }

body {
  background-color: var(--background-color);
  color: var(--text-color);
  display: flex;
  flex-direction: column;
  font-family: var(--font-body);
  font-size: 1rem;
  height: 100%;
  line-height: 1.5;
  margin: 0;
  min-height: 100%;
  overflow-y: auto;
  padding: 0;
}

blockquote {
  background-color: #eee;
  border-left: 4px solid #ccc;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  line-height: 1.25;
  font-size: 0.9rem;
  font-style: italic;
  margin: 1rem 0;
  padding: 1rem;
}

blockquote *:first-child {
  margin-top: 0;
}

blockquote *:last-child {
  margin-bottom: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-header);
  font-weight: bold;
  line-height: 1.5;
  margin: 0;
}

html {
  margin: 0;
  padding: 0;
  height: 100%;
}

main {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.article-card__image-container {
  background-color: transparent;
  border: 1px solid #dddddd;
}

.drawer__content {
  background-color: #fff;
}

.drawer__title {
  color: #f04e98;
}

.badge.badge--limited-edition {
  background-color: #c00;
  color: #fff;
  fill: #fff;
}

.badge.badge--new {
  background-color: #ffa500;
  color: #fff;
  fill: #fff;
}

.badge.badge--percent-off {
  background-color: #3faf49;
  color: #fff;
  fill: #fff;
}

.badge.badge--sold-out {
  background-color: #f04e4e;
  color: #fff;
  fill: #fff;
}

.badge.badge--sugar-free {
  background-color: #c00;
  color: #fff;
  fill: #fff;
}

.product-card__image-container {
  aspect-ratio: 1;
  background-color: #f8f8f8;
  border: 0 solid;
}

.button {
  --_hue: 10;
  --_accent-color-dark: hsl(var(--_hue) 100% 40%);
  --_accent-color-light: hsl(var(--_hue) 100% 60%);
  --_accent-color: var(--_accent-color-light);
  --_background-color-dark: #000;
  --_background-color-light: #fff;
  --_background-color: var(--_background-color-light);
  --_border-color-dark: var(--_background-color-dark);
  --_border-color-light: hsl(var(--_hue) 14% 89%);
  --_border-color: var(--_border-color-light);
  --_border-width: 1px;
  --_box-shadow-color-dark: hsl(10 3% 15% / 8%);
  --_box-shadow-color-light: hsl(10 40% 2% / 8%);
  --_box-shadow-color: var(--_box-shadow-color-light);
  --_box-shadow-default: 0 3px 5px -2px var(--_box-shadow-color), 0 8px 16px -5px var(--_box-shadow-color);
  --_font-size: 1.1rem;
  --_highlight-color-dark: hsl(var(--_hue) 10% 71% / 8%);
  --_highlight-color-light: hsl(var(--_hue) 10% 5% / 8%);
  --_highlight-color: var(--_highlight-color-light);
  --_highlight-size: 0;
  --_icon-color: var(--_accent-color);
  --_icon-size: 2ch;
  --_ink-shadow-color-dark: hsl(var(--_hue) 11% 15%);
  --_ink-shadow-color-light: var(--_border-color-light);
  --_ink-shadow-color: var(--_ink-shadow-color-light);
  --_ink-shadow: 0 1px 2px var(--_ink-shadow-color);
  --_padding-block: .75ch;
  --_padding-inline: 1.5ch;
  --_size: 1.5rem;
  --_text-color-light: hsl(var(--_hue) 10% 30%);
  --_text-color-dark: hsl(var(--_hue) 5% 95%);
  --_text-color: var(--_text-color-light);
  --_transition-property: box-shadow, outline-offset, transform;
  align-items: center;
  background: var(--_background-color);
  border: var(--_border-width) solid var(--_border-color);
  border-radius: clamp(0px,var(--border-radius),12px);
  box-shadow: var(--_box-shadow-default),0 0 0 var(--_highlight-size) var(--_highlight-color);
  color: var(--_text-color);
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: var(--_font-size, 1rem);
  font-weight: 700;
  fill: var(--_accent-color);
  gap: 1ch;
  justify-content: center;
  letter-spacing: inherit;
  line-height: 1.5;
  padding-block: var(--_padding-block);
  padding-inline: var(--_padding-inline);
  position: relative;
  text-align: center;
  text-decoration: none;
  text-shadow: var(--_ink-shadow);
  touch-action: manipulation;
  transition-duration: var(--speed);
  transition-property: var(--_transition-property);
  -webkit-user-select: none;
  user-select: none;
}

.button:active {
  transform: scale(0.98);
}

.button:disabled {
  --_background-color: #eee;
  --_border-color: #eee;
  --_text-color: #bbb;
  box-shadow: none;
  cursor: not-allowed;
  fill: #bbb;
  text-shadow: none;
}

.button:not(:active):focus-visible {
  outline-offset: 4px;
}

.button:not(:active):is(:focus,:hover) {
  --_highlight-size: 0.3rem;
}

.button--primary:not(:disabled) {
  --_box-shadow-color: var(--color-primary-translucent);
  --_highlight-color: var(--color-primary-translucent);
  --_ink-shadow-color: var(--color-primary-darker);
  background-color: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
  fill: #fff;
}

.button--secondary:not(:disabled) {
  --_box-shadow-color: var(--color-secondary-translucent);
  --_highlight-color: var(--color-secondary-translucent);
  --_ink-shadow-color: var(--color-secondary-darker);
  background-color: var(--color-secondary);
  border-color: var(--color-secondary);
  color: #fff;
  fill: #fff;
}

.header {
  backdrop-filter: var(--header-filter);
  background-color: var(--header-background);
  box-shadow: var(--shadow-surface);
  fill: var(--text-color);
  position: static;
  top: 0;
  transition-duration: var(--speed);
  transition-property: background-color;
  width: 100%;
  z-index: 100;
}

.header:hover {
  background-color: #fff;
}

.header__container {
  align-items: center;
  display: flex;
  justify-content: center;
  padding-bottom: 0.5rem;
  padding-top: 0.5rem;
}

.icon {
  display: block;
  max-height: 100%;
  pointer-events: none;
  width: 100%;
}

.icon-button {
  align-items: center;
  background: none;
  border: none;
  border-radius: var(--border-radius);
  cursor: pointer;
  display: flex;
  fill: var(--text-color, #000);
  flex-shrink: 0;
  height: var(--icon-size);
  justify-content: center;
  padding: var(--icon-padding);
  position: relative;
  transition-duration: var(--speed);
  transition-property: background-color,fill,opacity,transform;
  width: var(--icon-size);
}

.icon-button:not(:disabled):active {
  background-color: var(--color-primary-translucent);
  fill: var(--color-primary);
}

.icon-button:disabled {
  opacity: 0.25;
  cursor: not-allowed;
}

.icon-button:not(:active, :disabled):hover {
  background-color: var(--hover-color);
  fill: var(--color-primary);
}

.logo {
  align-items: center;
  border-radius: var(--border-radius);
  display: flex;
  justify-content: center;
  max-width: 200px;
  padding: 0.25rem;
  text-decoration: none;
  transition-duration: var(--speed);
  transition-property: background-color;
}

.logo svg {
  width: 100%;
}

.logo:active {
  background-color: var(--color-primary-translucent);
}

.logo:not(:active):hover {
  background-color: var(--hover-color);
}

.wrapper {
  margin: 0 auto;
  max-width: var(--max-width);
  padding-left: var(--padding);
  padding-right: var(--padding);
}

/*


  Specific styles


 */


.banner {
  align-items: center;
  background-color: var(--color-primary);
  background-image: url('spiral-pink.svg');
  background-position: center;
  background-repeat: no-repeat;
  background-size: 250% auto;
  display: flex;
  flex: 3 0 auto;
  justify-content: center;
  overflow: hidden;
  padding: 1rem 0;
  position: relative;
  text-align: center;
  text-shadow: 0 2px 0.5rem rgba(0, 0, 0, 0.25);
}

.banner:before {
  background: inherit;
  bottom: 0;
  content: "";
  filter: blur(15px);
  left: 0;
  -webkit-mask-image: radial-gradient(circle at center, black 0%, transparent 75%, transparent 100%);
  mask-image: radial-gradient(circle at center, black 0%, transparent 75%, transparent 100%);
  position: absolute;
  right: 0;
  top: 0;
}

.banner > .wrapper {
  position: relative;
  z-index: 1;
}

.banner__content {
  display: grid;
  grid-template-columns: 40% 60%;
  grid-template-rows: repeat(3, auto);
}

.banner__image {
  grid-column: 1 / 1;
  grid-row: 1 / 5;
  margin-right: 2rem;
}

.banner__image img {
  display: block;
  height: auto;
  max-height: 100%;
  max-width: 100%;
  transition-duration: var(--speed);
  transition-property: transform;
  width: 100%;
}

.banner__text {
  color: #ffffff;
  display: flex;
  font-size: 1.75rem;
  font-weight: bold;
  grid-column: 2;
  grid-row: 2;
  justify-content: center;
  margin: 0 auto;
  max-width: none;
  padding: 0;
  text-shadow: none;
}

.banner__text-graphic {
  align-items: center;
  display: flex;
  grid-column: 2;
  grid-row: 1;
  justify-content: center;
  margin-top: 2rem;
  min-width: 100px;
}

.banner__text-graphic img {
  display: block;
  height: auto;
  max-height: 100%;
  max-width: 100%;
}

.card__value {
  color: var(--color-secondary);
  font-family: var(--font-header);
  font-size: 5rem;
  font-weight: bold;
  line-height: 1.25;
}

.countdown {
  align-items: center;
  background-color: var(--color-secondary);
  color: #fff;
  display: flex;
  flex: 1 0 auto;
  justify-content: center;
  overflow-y: auto;
  padding-bottom: 2rem;
  padding-top: 2rem;
}

.countdown .h2 {
  background-color: var(--color-secondary);
  font-size: 2rem;
  font-weight: bold;
  text-align: center;
  text-shadow: 0 2px 0.5rem rgba(0 0 0 / 25%);
}

.countdown .wrapper {
  flex-basis: 100%;
}

.countdown__card {
  background: #fff;
  border-radius: 4px;
  box-shadow: rgba(0, 0, 0, 35%) 5px 5px 6px;
  flex: 1 1 50%;
  text-align: center;
  transition-duration: 0.5s;
  transition-property: background, box-shadow;
  transition-timing-function: linear;
}

.countdown__cards {
  align-items: center;
  display: flex;
  flex: 100% 1 1;
  gap: 2rem;
  justify-content: center;
  margin: 0.5rem auto 0 auto;
  max-width: 650px;
}

.countdown__clock {
  align-items: center;
  display: block;
}

.countdown__group {
  background-color: transparent;
  border-radius: var(--border-radius);
  box-shadow: none;
  display: flex;
  flex-direction: column;
  flex: 0 0 25%;
}

.countdown__pair {
  border-radius: 4px;
  display: flex;
  flex: 1;
  gap: 0.5rem;
  justify-content: center;

  transition-property: background, box-shadow;
  transition-duration: 0.5s;
  transition-timing-function: linear;
}

.countdown__text {
  flex: 100% 1 1;
  font-family: var(--font-header);
  font-weight: bold;
  margin-top: 0.5rem;
  text-align: center;
  text-shadow: none;
}

.dynamic-panel {
  align-items: center;
  display: flex;
  flex-direction: column;
  grid-column: 2;
  grid-row: 3;
  justify-content: center;
  margin-top: 2rem;
}

.dynamic-panel .button {
  font-size: 1.25rem;
}

@media screen and (max-width: 1400px) {
  .countdown {
    padding: 1rem 0;
  }
}

@media screen and (max-width: 1000px) {
  .banner__text {
    font-size: 1.5rem;
  }

  .card__value {
    font-size: 4rem;
  }

  .countdown__cards {
    gap: 1rem;
    max-width: 550px;
  }

  .countdown__pair {
    gap: 0.25rem;
  }
}

@media screen and (max-width: 800px) {
  .banner {
    background-size: auto 115%;
  }

  .banner__content {
    align-items: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .banner__image {
    margin: 0;
    max-width: 400px;
  }

  .banner__text {
    font-size: 1.1rem;
    margin: 0;
    max-width: none;
  }

  .banner__text-graphic {
    margin: 0;
    min-width: 100%;
  }

  .countdown {
    padding: 0.5rem 0;
  }

  .dynamic-panel {
    margin: 1rem 0;
    order: 1;
  }

  .logo {
    max-width: 115px;
  }
}

@media screen and (max-width: 650px) {
  .banner__text {
    font-size: 1.2rem;
  }

  .card__value {
    font-size: 3rem;
  }

  .countdown__card {
    background: none;
    box-shadow: none;
  }

  .countdown__cards {
    gap: 0.5rem;
    max-width: min(400px, 90%);
  }

  .countdown__clock > .h2 {
    font-size: 1.5rem;
  }

  .countdown__pair {
    background: #fff;
    box-shadow: rgba(0, 0, 0, 35%) 5px 5px 6px;
    gap: 0;
  }
}

@media screen and (max-width: 500px) {
  .banner__image {
    max-width: clamp(150px, min(75%, 400px), 400px);
  }

  .banner__text {
    font-size: 1rem;
  }

  .countdown {
    justify-content: center;
    align-items: center;
  }

  .dynamic-panel {
    margin: 0.5rem;
  }
}

@media screen and (max-width: 400px) {
  .card__value {
    font-size: 2rem;
  }

  .countdown__text {
    font-size: 0.8rem;
  }
}