.c-locked {
    width: 100%;
    height: 100%;

    overflow: hidden;
}

.c-container {
    height: 100%;
    
    position: relative;

    overflow: hidden;
}

/* [COMPONENT] Header */

.c-header--stretched {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-xl);
}

.c-header--columned {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-xl);
}

.c-heading__wrapper--left {
    min-height: 200px;

    grid-column: span 2;
    display: flex;
    align-items: center;

    position: relative;
}

.c-heading__wrapper--center {
    min-height: 200px;

    display: flex;
    align-items: center;
    
    position: relative;
}

.c-heading__highlight-media-wrapper {
    height: 200px;

    display: flex;

    position: absolute;

    z-index: 0;
}

.c-heading__wrapper--center > .c-heading__highlight-media-wrapper {
    transform: translate3d(-50%, -50%, 0px);
    -webkit-transform: translate3d(-50%, -50%, 0px);

    top: 50%;
    left: 50%;
}

.c-heading__highlight-media {
    height: 100%;
}

.c-heading {
    position: relative;

    z-index: 1;
}

.c-heading__wrapper--left > .c-heading {
    padding-left: var(--space-xl);
}

.c-heading--01,
.c-heading--01 * {
    font-size: var(--font-size-xxl);
    font-weight: 400;

    line-height: 1.2;

    text-transform: uppercase;
}

.c-heading--02,
.c-heading--02 * {
    font-size: var(--font-size-xxl);
    font-weight: 400;

    line-height: 1.2;
    
    text-transform: uppercase;
}

.c-heading--03,
.c-heading--03 * {
    font-size: var(--font-size-l);

    line-height: 1.6;

    text-transform: uppercase;
}

.c-heading__line-wrapper {
    display: flex;
    align-items: center;
}

.c-heading__line-wrapper--gtc-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.c-heading__line-wrapper--gc-4 {
    grid-column: 4;
    display: flex;
    align-items: center;
}

/* [COMPONENT] Clamp text */

.c-clamp-text--01 {
    text-overflow: ellipsis;
    
    white-space: nowrap;
    
    overflow: hidden;
}

.c-clamp-text--02 {
    -webkit-box-orient: vertical;

    text-overflow: ellipsis;
    
    line-clamp: 2;
    -webkit-line-clamp: 2;
    
    display: -webkit-box;

    overflow: hidden;
}

/* [COMPONENT] Underline */

.c-underline {
    position: relative;
}

.c-underline::after {
    content: "";

    width: 100%;
    height: 1px;

    background-color: var(--color-01);

    position: absolute;

    left: 0;
    bottom: 0;
}

/* [COMPONENT] Animated text */

.c-anim-text__line-wrapper {
    overflow: hidden;
}

/* [COMPONENT] Link */

.c-link {
    width: max-content;
    
    position: relative;

    transition: var(--transition-01);
    -webkit-transition: var(--transition-01);
}

.c-link:hover {
    color: var(--color-02);
}

/* [COMPONENT] Button */

.c-btn {
    height: 48px;

    background-color: var(--color-01);

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0 var(--space-m);

    position: relative;
    
    cursor: pointer;

    overflow: hidden;

    transition: var(--transition-02);
    -webkit-transition: var(--transition-02);
}

.c-btn:hover {
    background-color: var(--color-02);
}

.c-btn__body-wrapper {
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    transition: var(--transition-02);
    -webkit-transition: var(--transition-02);
}

.c-btn:hover > .c-btn__body-wrapper--primary {
    transform: translateY(-100%) scale(0.8);
    -webkit-transform: translateY(-100%) scale(0.8);
}

.c-btn__body-wrapper--secondary {
    position: absolute;

    transform: translateY(100%) scale(0.8);
    -webkit-transform: translateY(100%) scale(0.8);
}

.c-btn:hover > .c-btn__body-wrapper--secondary {
    transform: translateY(0%) scale(1);
    -webkit-transform: translateY(0%) scale(1);
}

.c-btn__body {
    color: var(--color-03);
}

/* [COMPONENT] Form */

.c-field__wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.c-label {
    width: max-content;

    color: var(--color-02);
    
    font-size: var(--font-size-m);
}

.c-field {
    height: 48px;

    border: 1px solid #f4dac7;

    outline: none;

    background: none;

    color: var(--color-07);

    line-height: 1;

	padding: 0 var(--space-m);

    transition: var(--transition-02);
    -webkit-transition: var(--transition-02);
}

.c-field:focus {
    border-color: var(--color-02);
}

.c-textarea {
    width: 100%;
    min-height: 200px;

    border: 1px solid #f4dac7;

    outline: none;
    
    background-color: transparent;

	padding: var(--space-xs) var(--space-m);

    resize: none;

    transition: var(--transition-02);
    -webkit-transition: var(--transition-02);
}

.c-textarea:focus {
    border-color: var(--color-02);
}

.c-response-message {
    display: none;
}

.c-response-message._active {
    display: block;
}

/* [COMPONENT] Quantity field */

.c-product__quantity {
    height: 48px;

    border-top: 1px solid #f4dac7;
    border-bottom: 1px solid #f4dac7;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.c-product__quantity-field {
    width: calc(100% - (2 * 48px));
    min-width: 48px;
    height: 100%;

    border: none;
    border-radius: 0;

    background: none;

    outline: none;

    line-height: 1;

    text-align: center;

    padding: 0;

    margin: 0;

    caret-color: transparent;
    
    appearance: textfield;
    -moz-appearance: textfield;
    -webkit-appearance: none;
}

.c-product__quantity-field::-webkit-outer-spin-button,
.c-product__quantity-field::-webkit-inner-spin-button {
    margin: 0;

    appearance: none;
    -webkit-appearance: none;
}

.c-product__quantity-btn {
    width: 48px;
    height: 48px;

    background-color: var(--color-02);

    display: flex;
    align-items: center;
    justify-content: center;

    transition: var(--transition-01);
    -webkit-transition: var(--transition-01);
}

.c-product__quantity-btn:hover {
    background-color: var(--color-01);
}

.c-product__quantity-btn-bars {
    width: 16px;
    height: 16px;

    display: flex;
    align-items: center;
    justify-content: center;

    position: relative;
}

.c-product__quantity-btn-bars > .c-product__quantity-btn-bar {
    background-color: var(--color-03);
}

.c-product__quantity-btn--min > .c-product__quantity-btn-bars > .c-product__quantity-btn-bar:first-child {
    width: 100%;
    height: 2px;
}

.c-product__quantity-btn--max > .c-product__quantity-btn-bars > .c-product__quantity-btn-bar:first-child {
    width: 100%;
    height: 2px;
}

.c-product__quantity-btn--max > .c-product__quantity-btn-bars > .c-product__quantity-btn-bar:last-child {
    width: 2px;
    height: 100%;

    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);

    position: absolute;

    top: 50%;
    left: 50%;
}

/* [COMPONENT] Text circle */

.c-text-circle {
    width: 160px;
    height: 160px;

    position: relative;
}

.c-text-circle__icon {
    width: 48px;

    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);

    position: absolute;

    top: 50%;
    left: 50%;
}

.c-text-circle__icon--rotated {
    transform: translate(-50%, -50%) rotate(-45deg);
    -webkit-transform: translate(-50%, -50%) rotate(-45deg);
}

.c-text-circle__media {
    width: 100%;
    height: 100%;
    
    animation: reverse-spinner 12s linear infinite;
}

/* [COMPONENT] Products catalog */

.c-products__wrapper {
    position: relative;
}

.c-products {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    row-gap: var(--space-xl);
}

.c-product__wrapper {
    display: flex;
    flex-direction: column;
    gap: var(--space-m);

    padding: 0 calc(var(--space-xl) / 2);

    overflow: hidden;
}

.c-product {
    width: 100%;

    display: flex;
    flex-direction: column;
    gap: var(--space-m);
}

.c-product__main {
    /* height: calc(100% - var(--space-m) - 48px); */

    display: flex;
    flex-direction: column;
    gap: var(--space-m);
}

.c-product__media-wrapper {
    width: 100%;

    aspect-ratio: 3 / 4;

    background-color: var(--color-01);

    display: flex;

    overflow: hidden;
}

.c-product__media {
    width: 100%;

    transition: transform var(--transition-03);
    -webkit-transition: transform var(--transition-03);
}

.c-product__media-wrapper:hover > .c-product__media {
    transform: scale(1.2);
    -webkit-transform: scale(1.2);
}

.c-product__body {
    display: flex;
    flex-direction: column;
    gap: var(--space-s);
}

.c-product__name {
    line-height: 1;
}

.c-product__info {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-m);
}

.c-product__volumes {
    display: flex;
    align-items: center;
    gap: var(--space-s);
}

.c-product__volume {
    font-size: var(--font-size-s);

    line-height: 1;
}

.c-product__price {
    font-size: var(--font-size-s);

    line-height: 1;
}

@media (max-width: 1280px) {
    /* [COMPONENT] Products catalog */

    .c-product__info {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-s);
    }
}

@media (max-width: 1024px) {
    /* [COMPONENT] Header */

    .c-heading__line-wrapper--gc-4 {
        grid-column: 3 / span 2;
    }

    /* [COMPONENT] Products catalog */

    .c-products {
        grid-template-columns: repeat(2, 1fr);
        row-gap: var(--space-xl);
    }
}

@media (max-width: 768px) {
    /* [COMPONENT] Header */

    .c-header--stretched {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .c-heading__wrapper--left {
        min-height: 120px;
    }

    .c-heading__wrapper--center {
        min-height: 120px;
    }

    .c-heading__highlight-media-wrapper {
        height: 120px;
    }

    .c-heading__line-wrapper--gtc-3 {
        display: flex;
    }

    .c-heading__line-wrapper--gc-4 {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-xl);
    }

    /* [COMPONENT] Products catalog */

    .c-product__wrapper:hover > .c-product > .c-product__media-wrapper,
    .c-product__wrapper:hover > .c-product > .c-product__main > .c-product__media-wrapper {
        padding: unset;
    }
}

@media (max-width: 480px) {
    /* [COMPONENT] Header */

    .c-heading__line-wrapper--gc-4 {
        display: flex;
    }

    /* [COMPONENT] Text circle */

    .c-text-circle {
        width: 120px;
        height: 120px;
    }

    .c-text-circle__icon {
        width: 36px;
    }
}