/** color variables */
/** Screen sizes */
/** Mixins */
/**
 * GENERAL STYLES
 */
* {
  font-family: 'Roboto', sans-serif !important;
  box-sizing: border-box;
  padding: 0;
  margin: 0; }

img {
  width: 100%;
  max-width: 100%; }

section {
  margin-top: 16px;
  margin-bottom: 16px;
  padding: 0 16px; }

p,
a,
span {
  letter-spacing: 1px; }

button {
  letter-spacing: 2px; }

#fullscreen {
  position: static;
  margin: 0 auto; }

.inline-link {
  color: #EF233C;
  cursor: pointer; }

.content--wrapper {
  max-width: 1440px;
  margin: 0 auto; }

/** Buttons */
.button {
  outline: none;
  padding: 20px 64px;
  color: #EDF2F4;
  font-size: 16px;
  font-weight: bold;
  text-transform: uppercase;
  cursor: pointer;
  background-color: #EF233C;
  border: 0;
  transition: all 0.12s ease-out; }
  .button:hover {
    background-color: #D90429; }
  .button--large {
    margin-top: 32px; }
  .button--small {
    margin: 0;
    padding: 16px 32px; }
  .button--blue {
    background-color: #8D99AE; }
  .button--image {
    display: block;
    padding: 10px 8px;
    width: 130px;
    border: 3px dashed #2B2D42;
    color: #2B2D42;
    background-color: white;
    text-align: center;
    font-style: italic;
    font-size: 14px; }
    .button--image:hover {
      background-color: #EDF2F4; }
    @media (max-width: 767px) {
      .button--image {
        width: 130px;
        padding: 8px; } }

/** Clear canvas button */
#clear-canvas {
  margin-top: 16px;
  padding: 8px 32px;
  background-color: #2B2D42; }

/* Canvas */
@media (max-width: 767px) {
  .canvas {
    display: block;
    width: 100%; } }

.canvas--viewer {
  width: 99%;
  height: 500px;
  display: inline-block;
  -webkit-transition: width .5s ease;
  -o-transition: width .5s ease;
  transition: width .5s ease; }
  .canvas--viewer canvas {
    width: 100%; }
  .canvas--viewer img {
    max-width: 1000%; }

.canvas--drawing {
  width: 0%;
  height: 500px;
  display: inline-block;
  vertical-align: top;
  -webkit-transition: width .5s ease;
  -o-transition: width .5s ease;
  transition: width .5s ease; }
  .canvas--drawing .canvas-container {
    max-width: 100%;
    max-height: 100%; }
  .canvas--drawing canvas {
    width: 100%;
    max-height: 100%;
    max-width: 100%; }

.canvas--active {
  display: inline-block !important;
  vertical-align: top;
  width: 49%; }
  @media (max-width: 767px) {
    .canvas--active {
      display: block !important;
      width: 100%; } }

#viewer-canvas {
  height: inherit;
  width: 100%; }

/** Customization */
.customization {
  -webkit-transition: height .5s ease;
  -o-transition: height .5s ease;
  transition: height .5s ease;
  overflow: hidden;
  /** General color picker styles */
  /** General select styles */
  /** General slider styles */ }
  @media (max-width: 767px) {
    .customization {
      display: block;
      width: 100%; } }
  .customization input[type="color"] {
    outline: 0;
    padding: 1px 3px;
    background: white;
    border: 1px solid black;
    border-radius: 2px; }
  .customization select {
    padding: 8px;
    margin-top: 8px;
    font-size: 16px;
    border: 1px dashed #2B2D42;
    background-color: white; }
    @media (max-width: 767px) {
      .customization select {
        max-width: 100%; } }
  .customization input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 10px;
    box-shadow: inset 1px 1px 5px rgba(0, 0, 0, 0.4);
    border-radius: 3px;
    outline: none;
    opacity: 0.7;
    -webkit-transition: .2s;
    transition: opacity .2s;
    margin: 16px 0; }
    .customization input[type="range"]:hover {
      opacity: 1; }
    .customization input[type="range"]::-webkit-slider-thumb {
      -webkit-appearance: none;
      appearance: none;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #D90429;
      box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);
      border: 3px solid #EDF2F4;
      cursor: pointer; }
    .customization input[type="range"]::-moz-range-thumb {
      width: 20px;
      height: 20px;
      border-radius: 50%;
      background: #D90429;
      box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);
      border: 3px solid #EDF2F4;
      cursor: pointer; }
  .customization--content {
    margin: 32px 0; }
  .customization--image {
    position: relative;
    overflow: hidden; }
    .customization--image input {
      position: absolute;
      top: 0;
      right: 0;
      height: 40px;
      opacity: 0;
      cursor: pointer; }
  .customization--section {
    display: inline-block;
    vertical-align: top;
    width: 25%;
    float: left; }
    @media (max-width: 767px) {
      .customization--section {
        width: 50%; } }
    .customization--section__inner {
      max-width: 50%; }
      @media (max-width: 767px) {
        .customization--section__inner {
          max-width: 100%;
          padding: 0 8px; } }
      @media (min-width: 768px) and (max-width: 1023px) {
        .customization--section__inner {
          max-width: 90%; } }
    .customization--section .samples {
      display: inline-block;
      width: 45%; }
      .customization--section .samples img {
        width: auto;
        height: auto;
        max-height: 45px; }
    .customization--section h4 {
      font-size: 22px;
      font-weight: bold;
      font-family: 'Playfair Display', serif !important;
      font-style: italic;
      text-transform: uppercase;
      color: #2B2D42;
      font-size: 16px;
      margin-bottom: 16px; }
      @media (max-width: 767px) {
        .customization--section h4 {
          font-size: 16px; } }
      @media (min-width: 768px) and (max-width: 1023px) {
        .customization--section h4 {
          font-size: 18px; } }
      .customization--section h4 input[type="checkbox"] {
        height: 1px;
        width: 1px;
        overflow: hidden;
        clip: rect(1px, 1px, 1px, 1px);
        position: absolute; }
        .customization--section h4 input[type="checkbox"] + label {
          position: relative;
          display: inline-block;
          vertical-align: middle;
          cursor: pointer;
          margin-bottom: 1em;
          line-height: 1.2;
          clear: both;
          padding-left: 1.8em;
          margin-left: 6px; }
          .customization--section h4 input[type="checkbox"] + label:before {
            position: absolute;
            content: " ";
            border: 1px dashed #333;
            background: #EDF2F4;
            width: 16px;
            height: 16px;
            left: 0;
            margin-top: -2px; }
          .customization--section h4 input[type="checkbox"] + label:after {
            position: absolute;
            content: " ";
            width: 16px;
            height: 16px;
            left: 0;
            margin-top: -2px; }
        .customization--section h4 input[type="checkbox"].active + label:before {
          content: " ";
          color: #D90429;
          text-align: center;
          border: 1px dashed #333; }
        .customization--section h4 input[type="checkbox"].active + label:after {
          margin-top: 1px;
          left: 7px;
          width: 3px;
          height: 8px;
          transform: rotate(45deg);
          border: solid #D90429;
          border-width: 0 2px 2px 0; }
    .customization--section p {
      margin: 8px 0; }
  .customization-options > h2 {
    text-align: center;
    margin-bottom: 32px;
    font-size: 22px;
    font-weight: bold;
    font-family: 'Playfair Display', serif !important;
    font-style: italic;
    text-transform: uppercase;
    color: #2B2D42; }
    @media (max-width: 767px) {
      .customization-options > h2 {
        font-size: 16px; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      .customization-options > h2 {
        font-size: 18px; } }

/** Product details */
.product--details {
  margin: 64px 0; }
  @media (max-width: 767px) {
    .product--details {
      margin: 32px 0; } }
  .product--details__section {
    display: inline-block;
    vertical-align: top;
    width: 49%; }
    @media (max-width: 767px) {
      .product--details__section {
        display: block;
        width: 100%; } }
    @media (max-width: 767px) {
      .product--details__section {
        margin-bottom: 32px; } }
  .product--details__attributes--wrapper > div.product--details_sizeAttribute:not(:last-child) {
    border-right: 1px solid #333; }
    @media (max-width: 767px) {
      .product--details__attributes--wrapper > div.product--details_sizeAttribute:not(:last-child) {
        border-right: none; } }
  .product--details__description p {
    margin: 16px 0;
    max-width: 440px; }
  .product--details__title {
    font-size: 22px;
    font-weight: bold;
    font-family: 'Playfair Display', serif !important;
    font-style: italic;
    text-transform: uppercase;
    color: #2B2D42; }
    @media (max-width: 767px) {
      .product--details__title {
        font-size: 16px; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      .product--details__title {
        font-size: 18px; } }
  .product--details__price {
    margin: 16px 0;
    font-size: 22px;
    font-weight: bold;
    font-family: 'Playfair Display', serif !important;
    font-style: italic;
    text-transform: uppercase;
    color: #2B2D42; }
    @media (max-width: 767px) {
      .product--details__price {
        font-size: 16px; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      .product--details__price {
        font-size: 18px; } }
  .product--details_sizeAttribute {
    margin-top: 16px;
    width: 24%;
    display: inline-block;
    vertical-align: top;
    cursor: pointer;
    transition: opacity .12s ease-out; }
    .product--details_sizeAttribute:hover {
      opacity: .75; }
    @media (max-width: 767px) {
      .product--details_sizeAttribute {
        width: 49%; } }
    .product--details_sizeAttribute p {
      padding: 16px; }
    .product--details_sizeAttribute span {
      display: block; }
    .product--details_sizeAttribute p > span:not(:first-child) {
      padding-left: 12px; }

.product--similar {
  text-align: center; }
  .product--similar__title {
    font-size: 22px;
    font-weight: bold;
    font-family: 'Playfair Display', serif !important;
    font-style: italic;
    text-transform: uppercase;
    color: #2B2D42; }
    @media (max-width: 767px) {
      .product--similar__title {
        font-size: 16px; } }
    @media (min-width: 768px) and (max-width: 1023px) {
      .product--similar__title {
        font-size: 18px; } }
  .product--similar__product {
    display: inline-block;
    vertical-align: top; }
    .product--similar__product--thumbnail {
      max-width: 120px; }
      @media (max-width: 767px) {
        .product--similar__product--thumbnail {
          max-width: 90px; } }

/* Engraving tools for the foldable phone. */
[hidden] {
  display: none !important;
}

.engrave .customization--section__inner {
  margin-bottom: 18px;
}

.engrave label {
  display: inline-block;
  min-width: 48px;
}

.engrave input[type="text"],
.engrave select {
  font: inherit;
  padding: 6px 8px;
  border: 1px solid #b8b8b8;
  border-radius: 4px;
  max-width: 100%;
}

.engrave__icons {
  display: grid;
  grid-template-columns: repeat(6, 44px);
  gap: 8px;
  margin: 8px 0;
}

.engrave__icon {
  width: 44px;
  height: 44px;
  padding: 8px;
  border: 1px solid #c9c4bc;
  border-radius: 8px;
  background: #f4f2ee;
  cursor: pointer;
}

.engrave__icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: #5f5952;
}

.engrave__icon:hover,
.engrave__icon:focus-visible {
  border-color: #2b6cb0;
  outline: none;
}

.engrave__hint {
  font-size: 13px;
  color: #5f5952;
}

.engrave__actions {
  display: flex;
  gap: 8px;
}

.js-fold {
  margin-left: 8px;
}

@media (max-width: 600px) {
  .engrave__icons {
    grid-template-columns: repeat(4, 44px);
  }

  .js-fold {
    margin-left: 0;
    margin-top: 8px;
  }
}

/* Engine debug output; the mannequin viewer type logs a harmless shader message. */
#viewerLog {
  display: none;
}
