:root {
    --purple: #66358c;
    --orange: #f69b42;
    --ink: #29263b;
    --soft: #f7f4fa
}

.cms-admin,
.cms-login {
    font-family: Montserrat, Arial, sans-serif;
    color: var(--ink);
    margin: 0;
    background: var(--soft)
}

.cms-admin {
    display: flex;
    min-height: 100vh
}

.cms-sidebar {
    width: 230px;
    flex: none;
    background: #40235f;
    color: white;
    padding: 28px 18px
}

.cms-logo {
    display: block;
    font-size: 23px;
    font-weight: 800;
    color: white;
    text-decoration: none;
    margin-bottom: 30px
}

.cms-logo span {
    color: var(--orange)
}

.cms-logo small {
    display: block;
    font-size: 11px;
    letter-spacing: 4px
}

.cms-sidebar nav a,
.cms-sidebar form button {
    display: block;
    color: #f6eefc;
    text-decoration: none;
    background: none;
    border: 0;
    padding: 11px 14px;
    border-radius: 9px;
    width: 100%;
    text-align: left;
    font: inherit;
    cursor: pointer
}

.cms-sidebar nav a:hover,
.cms-sidebar form button:hover {
    background: #6e4890
}

.cms-main {
    flex: 1;
    min-width: 0
}

.cms-main header {
    background: #fff;
    border-bottom: 1px solid #e9e3ee;
    padding: 20px 30px;
    display: flex;
    justify-content: space-between;
    gap: 12px
}

.cms-main main {
    padding: 30px;
    max-width: 1350px;
    margin: auto
}

.cms-main h1 {
    margin: 0 0 22px;
    font-size: 27px
}

.cms-main h2 {
    font-size: 19px;
    margin-top: 30px
}

.cms-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 14px
}

.cms-stats>div,
.cms-columns section {
    background: #fff;
    border: 1px solid #e8e2ed;
    border-radius: 16px;
    padding: 23px;
    box-shadow: 0 5px 22px #42206109
}

.cms-stats strong {
    display: block;
    font-size: 29px;
    color: var(--purple)
}

.cms-stats span {
    font-size: 13px
}

.cms-table-wrap {
    overflow: auto;
    background: white;
    border-radius: 16px;
    border: 1px solid #e8e2ed
}

.cms-admin table {
    border-collapse: collapse;
    width: 100%;
    min-width: 550px
}

.cms-admin th,
.cms-admin td {
    text-align: left;
    padding: 15px;
    border-bottom: 1px solid #eee9f1
}

.cms-admin th {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: #716678
}

.cms-admin td a,
.cms-actions button {
    color: var(--purple)
}

.cms-actions {
    display: flex;
    gap: 14px
}

.cms-actions button {
    border: 0;
    background: none;
    cursor: pointer
}

.cms-heading,
.cms-search {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 20px
}

.cms-button,
.cms-main button[type=submit],
.cms-search button,
.cms-login button {
    display: inline-block;
    background: var(--orange);
    color: #281341;
    border: 0;
    border-radius: 9px;
    padding: 12px 18px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer
}

.cms-form {
    max-width: 700px;
    background: #fff;
    padding: 26px;
    border-radius: 16px;
    display: grid;
    gap: 16px
}

.cms-form label,
.cms-login label {
    display: grid;
    gap: 6px;
    font-weight: 600
}

.cms-form input,
.cms-form select,
.cms-form textarea,
.cms-search input,
.cms-search select,
.cms-login input {
    box-sizing: border-box;
    width: 100%;
    border: 1px solid #d9d0df;
    border-radius: 8px;
    padding: 11px;
    font: inherit
}

.cms-form textarea {
    min-height: 115px
}

.cms-form input[type=checkbox] {
    width: 22px;
    height: 22px
}

.cms-form small,
.cms-errors {
    color: #9d2445
}

.cms-alert,
.cms-errors {
    padding: 14px;
    border-radius: 9px;
    margin-bottom: 18px;
    background: #e9f6ea
}

.cms-errors {
    background: #fbe8ee
}

.cms-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px
}

.cms-login {
    display: grid;
    place-items: center;
    min-height: 100vh
}

.cms-login form {
    width: min(400px, 85vw);
    background: #fff;
    border-radius: 20px;
    padding: 32px;
    display: grid;
    gap: 17px;
    box-shadow: 0 15px 60px #40235f22
}

.cms-login h1 {
    color: var(--purple);
    margin: 0
}

.cms-login p {
    margin: 0
}

.cms-store,
.cms-checkout,
.cms-article {
    padding-top: 55px !important;
    padding-bottom: 70px !important;
}

.cms-store h1 {
    color: var(--purple)
}

.cms-categories {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 22px 0
}

.cms-categories a {
    border: 1px solid #d9cce5;
    border-radius: 24px;
    padding: 7px 14px;
    text-decoration: none;
    color: var(--purple)
}

.cms-product-grid,
.cms-news-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 22px
}

.cms-card {
    border: 1px solid #eee6f2;
    background: white;
    border-radius: 14px;
    padding: 16px;
    overflow: hidden
}

.cms-card img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    border-radius: 9px
}

.cms-card h2 {
    font-size: 18px;
    color: var(--purple)
}

.cms-card>a {
    text-decoration: none
}

.cms-card p {
    font-weight: 700
}

.cms-detail {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 45px
}

.cms-detail-image {
    width: 100%;
    border-radius: 15px
}

.cms-thumbs {
    display: flex;
    gap: 8px;
    overflow: auto
}

.cms-thumbs button {
    border: 0;
    background: none;
    padding: 0;
    cursor: pointer
}

.cms-thumbs img {
    width: 75px;
    height: 75px;
    object-fit: cover
}

.cms-detail form,
.cms-checkout form {
    display: grid;
    gap: 18px;
    max-width: 550px;
    margin-top: 25px
}

.cms-detail label,
.cms-checkout label {
    display: grid;
    gap: 8px
}

.cms-detail input,
.cms-detail select,
.cms-checkout input,
.cms-checkout textarea,
.cms-checkout select {
    font: inherit;
    padding: 12px;
    border: 1px solid #d9d0df;
    border-radius: 8px
}

.cms-price {
    font-size: 24px;
    color: var(--purple)
}

.cms-article {
    max-width: 850px
}

.cms-article img {
    max-width: 100%;
    border-radius: 12px
}

.cms-checkout {
    width: 100%;
    max-width: 1180px
}

.cms-checkout-heading {
    max-width: 720px;
    margin-bottom: 28px
}

.cms-checkout-heading h1 {
    margin: 6px 0 10px;
    font-size: clamp(2rem, 5vw, 3.4rem);
    line-height: 1.08
}

.cms-checkout-heading p {
    margin: 0;
    line-height: 1.65
}

.cms-checkout-heading>span {
    color: #76518d;
    font-size: .82rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase
}

.cms-checkout-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
    gap: 30px;
    align-items: start
}

.cms-checkout-layout #checkout-form {
    max-width: none;
    min-width: 0;
    margin-top: 0
}

.cms-checkout-section {
    min-width: 0;
    display: grid;
    gap: 16px;
    margin: 0;
    padding: 20px;
    border: 1px solid #e6dce9;
    border-radius: 14px;
    background: #fff
}

.cms-checkout-section legend {
    padding: 0 8px;
    color: #4e2867;
    font-weight: 700
}

.cms-checkout-section legend span {
    display: inline-grid;
    width: 26px;
    height: 26px;
    margin-right: 6px;
    place-items: center;
    border-radius: 50%;
    background: #5c3375;
    color: #fff
}

.cms-checkout-fields {
    display: grid;
    min-width: 0;
    gap: 16px
}

.cms-checkout-fields--two {
    grid-template-columns: repeat(2, minmax(0, 1fr))
}

.cms-checkout-field--wide {
    grid-column: 1/-1
}

.cms-checkout label {
    min-width: 0;
    color: #473b4d;
    font-weight: 600
}

.cms-checkout input,
.cms-checkout textarea,
.cms-checkout select {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    background: #fff;
    color: #33283a
}

.cms-checkout textarea {
    min-height: 112px;
    resize: vertical
}

.cms-checkout-summary {
    position: sticky;
    top: 20px;
    min-width: 0;
    padding: 22px;
    border: 1px solid #dfd1e5;
    border-radius: 16px;
    background: #f8f3fa
}

.cms-checkout-summary h2 {
    margin-top: 0
}

.cms-checkout-totals {
    display: grid;
    gap: 10px;
    margin: 18px 0 0
}

.cms-checkout-totals>div {
    display: flex;
    justify-content: space-between;
    gap: 20px
}

.cms-checkout-totals dd {
    margin: 0;
    font-weight: 700;
    text-align: right
}

.cms-checkout-totals__grand {
    padding-top: 14px;
    border-top: 1px solid #d9c9df;
    color: #4e2867;
    font-size: 18px;
    font-weight: 700;
    align-items: baseline;
    flex-wrap: wrap;
    row-gap: 6px
}

.cms-checkout-totals__grand dd {
    margin-left: auto;
    font-size: 26px;
    line-height: 1.25
}

.cms-shipping-status,
.cms-checkout-alert {
    margin: 0;
    line-height: 1.5
}

.cms-checkout-alert:not(:empty) {
    margin: 16px 0;
    padding: 12px 14px;
    border-radius: 9px;
    background: #fff0f0;
    color: #8b2424
}

.cms-checkout select:disabled,
.cms-checkout button:disabled {
    cursor: not-allowed;
    opacity: .62
}

.cms-checkout #checkout-summary {
    min-width: 0;
    padding: 0;
    background: transparent
}

.cms-checkout-submit {
    grid-column: 1;
    min-height: 50px;
    margin-top: -12px
}

@media(max-width:750px) {
    .cms-admin {
        display: block
    }

    .cms-sidebar {
        box-sizing: border-box;
        width: 100%;
        padding: 15px
    }

    .cms-sidebar nav {
        display: flex;
        overflow: auto
    }

    .cms-sidebar nav a {
        white-space: nowrap;
        width: auto
    }

    .cms-sidebar form {
        position: absolute;
        right: 16px;
        top: 15px
    }

    .cms-main main {
        padding: 18px
    }

    .cms-main header {
        padding: 15px
    }

    .cms-columns,
    .cms-detail {
        grid-template-columns: 1fr
    }

    .cms-search {
        flex-wrap: wrap
    }
}

.cms-thumb {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 8px
}

.cms-image-preview {
    display: block;
    width: min(240px, 100%);
    max-height: 220px;
    object-fit: contain;
    border: 1px solid #e8e2ed;
    border-radius: 10px
}

.cms-categories img {
    width: 22px;
    height: 22px;
    object-fit: cover;
    border-radius: 50%;
    vertical-align: middle;
    margin-right: 6px
}

.form-error {
    display: block;
    color: #a02748;
    font-size: .85rem;
    line-height: 1.4;
    margin: 5px 0
}

.cms-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    opacity: 0 !important
}

.cms-info-section {
    margin: 44px 0;
    padding: 25px;
    border-radius: 16px;
    background: #fff8f1
}

.cms-info-section h2 {
    color: #66358c
}

.cms-info-section ol {
    padding-left: 23px;
    line-height: 1.8
}

.cms-short-description {
    font-size: 1.1rem;
    line-height: 1.6
}

.cms-description {
    line-height: 1.7
}

.cms-price-line {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap
}

.cms-price-line del,
.cms-card del {
    color: #777;
    font-weight: 400
}

.cms-discount-badge {
    display: inline-block;
    background: #fff0dd;
    color: #8b4100;
    border-radius: 30px;
    padding: 5px 10px;
    font-size: .8rem;
    font-weight: 700
}

.cms-review {
    background: white;
    border: 1px solid #ebdeef;
    border-radius: 12px;
    margin: 12px 0;
    padding: 16px
}

.cms-review p {
    white-space: pre-wrap
}

.cms-review small {
    color: #4a6c39
}

.cms-review-form {
    display: grid;
    gap: 12px;
    max-width: 570px
}

.cms-review-form label {
    display: grid;
    gap: 5px
}

.cms-review-form input,
.cms-review-form select,
.cms-review-form textarea {
    border: 1px solid #d9d0df;
    border-radius: 8px;
    padding: 11px;
    max-width: 100%;
    font: inherit
}

.cms-review-form textarea {
    min-height: 120px
}

.cms-list {
    display: grid;
    gap: 12px
}

.cms-list-item,
.cms-panel {
    background: white;
    border: 1px solid #e8e2ed;
    border-radius: 12px;
    padding: 18px
}

.cms-list-item {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    align-items: center
}

.cms-list-item p {
    margin: 6px 0 0
}

.cms-filter {
    display: flex;
    max-width: none;
    flex-wrap: wrap;
    margin-bottom: 20px
}

.cms-filter input,
.cms-filter select {
    flex: 1;
    min-width: 170px
}

.cms-empty {
    padding: 35px;
    background: white;
    border-radius: 12px
}

@media(max-width:650px) {
    .cms-list-item {
        display: block
    }

    .cms-info-section {
        padding: 18px
    }
}

/* Product review controls */
.cms-review-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    flex-wrap: wrap
}

.cms-review-heading h2 {
    margin: 0 0 10px
}

.cms-review-summary {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap
}

.cms-rating-stars {
    --star-size: 20px;
    display: inline-block;
    position: relative;
    width: calc(var(--star-size)*5);
    height: var(--star-size);
    vertical-align: middle;
    flex: none
}

.cms-rating-stars__base,
.cms-rating-stars__fill>span {
    display: flex;
    width: calc(var(--star-size)*5);
    height: var(--star-size)
}

.cms-rating-stars__base {
    color: #d5cbd9
}

.cms-rating-stars__fill {
    position: absolute;
    inset: 0 auto 0 0;
    width: calc(var(--rating)/5*100%);
    overflow: hidden;
    color: #ef8d26
}

.cms-star-icon {
    display: block;
    width: var(--star-size);
    height: var(--star-size);
    flex: none;
    fill: currentColor
}

.cms-review-slider {
    max-width: 720px;
    margin: 20px auto 0;
    outline: none
}

.cms-review-slider:focus-visible {
    outline: 3px solid #66358c;
    outline-offset: 5px;
    border-radius: 12px
}

.cms-review-slider .cms-review {
    min-height: 145px;
    margin: 0;
    padding: 24px
}

.cms-review[hidden],
.cms-review-panel[hidden] {
    display: none !important
}

.cms-review-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap
}

.cms-review-controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 18px;
    margin: 15px 0
}

.cms-review-controls button,
.cms-review-panel-heading button {
    border: 1px solid #70428d;
    background: #fff;
    color: #542474;
    border-radius: 9px;
    min-width: 44px;
    min-height: 44px;
    font: inherit;
    font-size: 24px;
    cursor: pointer
}

.cms-review-controls button:disabled {
    opacity: .45;
    cursor: default
}

.cms-review-controls [role=status] {
    min-width: 75px;
    text-align: center;
    font-weight: 700
}

.cms-demo-badge,
.cms-verified-badge {
    display: inline-block;
    margin-top: 10px;
    border-radius: 20px;
    padding: 3px 9px;
    font-size: .78rem;
    font-weight: 700
}

.cms-demo-badge {
    background: #efe6f6;
    color: #512371
}

.cms-verified-badge {
    background: #e6f3e5;
    color: #28622c
}

.cms-review-empty {
    margin: 20px 0;
    padding: 22px;
    border: 1px dashed #bfacc9;
    border-radius: 12px;
    background: white
}

.cms-review-panel {
    max-width: 640px;
    margin-top: 25px;
    padding: 22px;
    border: 1px solid #e8ddeb;
    background: white;
    border-radius: 14px
}

.cms-review-panel-heading {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px
}

.cms-review-panel-heading h3 {
    margin: 0
}

.cms-review-panel-heading button {
    font-size: .9rem;
    padding: 7px 13px
}

.cms-rating-fieldset {
    border: 0;
    padding: 0;
    margin: 0
}

.cms-rating-fieldset legend {
    font-weight: 600;
    margin-bottom: 8px
}

.cms-rating-choice {
    display: flex;
    gap: 4px
}

.cms-rating-option {
    position: relative;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 8px;
    cursor: pointer;
    color: #cbbdd2
}

.cms-rating-option.is-selected,
.cms-rating-option:hover {
    color: #ef8d26
}

.cms-rating-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0
}

.cms-rating-option:focus-within {
    outline: 3px solid #66358c;
    outline-offset: 2px
}

.cms-rating-option .cms-star-icon {
    --star-size: 28px
}

.cms-review-form .form-error {
    margin-top: -8px
}

@media(max-width:600px) {
    .cms-review-slider .cms-review {
        padding: 16px
    }

    .cms-review-heading>.button {
        width: 100%;
        text-align: center
    }

    .cms-review-panel {
        padding: 16px
    }
}

.cms-review-dialog {
    box-sizing: border-box;
    width: min(640px, calc(100vw - 28px));
    max-width: none;
    max-height: min(90vh, 900px);
    overflow: auto;
    margin: auto;
    padding: 24px;
    border: 1px solid #e8ddeb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 24px 90px #24113355;
    color: #29263b
}

.cms-review-dialog::backdrop {
    background: rgba(28, 14, 44, .68);
    backdrop-filter: blur(3px)
}

.cms-review-dialog:not([open]) {
    display: none
}

.cms-review-dialog .cms-review-form {
    max-width: none
}

.cms-review-dialog .cms-review-panel-heading {
    position: sticky;
    top: -24px;
    z-index: 1;
    background: #fff;
    padding: 8px 0 14px
}

@media(max-width:600px) {
    .cms-review-dialog {
        padding: 17px;
        max-height: calc(100dvh - 24px)
    }

    .cms-review-dialog .cms-review-panel-heading {
        top: -17px
    }
}

.cms-related-section {
    margin: 50px 0
}

.cms-related-section h2 {
    color: #66358c;
    margin-bottom: 20px
}

.cms-review-slider {
    max-width: none
}

.cms-review-slider .cms-review {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    min-width: 0;
    min-height: 230px
}

.cms-review-slider {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px
}

.cms-review-slider .cms-review p {
    overflow-wrap: anywhere;
    overflow-y: auto;
    max-height: 8.5em;
    line-height: 1.5;
    min-height: 0
}

.cms-review-controls {
    grid-column: 1/-1;
    margin: 0
}

.cms-review-controls [role=status] {
    min-width: 110px
}

@media(max-width:980px) {
    .cms-review-slider {
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }
}

@media(max-width:650px) {
    .cms-review-slider {
        grid-template-columns: minmax(0, 1fr)
    }

    .cms-review-slider .cms-review {
        min-height: 0
    }
}

.cms-stock-status {
    margin: 0;
    color: #5e337b;
    font-weight: 700
}

.cms-detail button[disabled],
.cms-review-controls button[disabled] {
    opacity: .55;
    cursor: not-allowed
}

.cms-related-section .cms-card {
    height: 100%;
    box-sizing: border-box
}

.local-stock-note {
    margin: 4px 0;
    font-size: .84rem;
    color: #593878
}

.local-stock-warning {
    margin: 7px 0;
    padding: 8px 10px;
    border-radius: 8px;
    background: #fff0e4;
    color: #813a09;
    font-size: .87rem;
    line-height: 1.4
}

.local-cart-line {
    align-items: start
}

.local-cart-line p {
    overflow-wrap: anywhere
}

/* CMS navigation */
.cms-admin .cms-sidebar {
    box-sizing: border-box;
    position: sticky;
    top: 0;
    display: flex;
    flex-direction: column;
    width: 260px;
    height: 100vh;
    overflow-y: auto;
    padding: 26px 16px;
    background: linear-gradient(165deg, #40235f 0%, #321b4d 100%)
}

.cms-admin .cms-logo {
    margin: 0 0 28px 10px;
    line-height: 1.15
}

.cms-admin .cms-sidebar nav {
    display: block;
    flex: 1;
    min-height: 0
}

.cms-admin .cms-sidebar nav a,
.cms-admin .cms-sidebar nav summary,
.cms-admin .cms-sidebar form button {
    box-sizing: border-box;
    width: 100%;
    min-height: 44px;
    padding: 11px 13px;
    color: #f6eefc;
    border-radius: 10px;
    font: inherit;
    text-align: left
}

.cms-admin .cms-sidebar nav a {
    display: flex;
    align-items: center;
    white-space: normal
}

.cms-admin .cms-sidebar nav a:hover,
.cms-admin .cms-sidebar nav summary:hover,
.cms-admin .cms-sidebar form button:hover {
    background: #6e4890
}

.cms-admin .cms-sidebar nav a:focus-visible,
.cms-admin .cms-sidebar nav summary:focus-visible,
.cms-admin .cms-sidebar form button:focus-visible,
.cms-admin .cms-logo:focus-visible {
    outline: 3px solid var(--orange);
    outline-offset: 2px
}

.cms-admin .cms-nav-dashboard {
    font-weight: 700;
    margin-bottom: 12px
}

.cms-admin .cms-nav-group {
    margin: 5px 0
}

.cms-admin .cms-nav-group summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    cursor: pointer;
    font-weight: 700;
    list-style: none
}

.cms-admin .cms-nav-group summary::-webkit-details-marker {
    display: none
}

.cms-admin .cms-nav-group summary::after {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    flex: none;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform .18s ease
}

.cms-admin .cms-nav-group[open] summary::after {
    transform: rotate(225deg)
}

.cms-admin .cms-nav-group.is-active>summary {
    color: #ffbc77
}

.cms-admin .cms-nav-submenu {
    padding: 2px 0 8px 13px;
    margin-left: 12px;
    border-left: 1px solid #8b68a2
}

.cms-admin .cms-nav-submenu a {
    font-size: .92rem;
    line-height: 1.35
}

.cms-admin .cms-sidebar nav a.is-active {
    background: #f69b42;
    color: #281341;
    font-weight: 800;
    box-shadow: 0 3px 12px #1b09252b
}

.cms-admin .cms-sidebar nav a.is-active:hover {
    background: #ffb268
}

.cms-admin .cms-sidebar form {
    margin-top: 22px;
    padding-top: 12px;
    border-top: 1px solid #70518a
}

.cms-admin .cms-sidebar form button {
    min-height: 44px
}

@media(max-width:750px) {
    .cms-admin .cms-sidebar {
        position: static;
        width: 100%;
        height: auto;
        max-height: none;
        overflow: visible;
        padding: 16px
    }

    .cms-admin .cms-logo {
        margin: 0 0 14px 4px;
        font-size: 21px
    }

    .cms-admin .cms-sidebar nav {
        display: block;
        max-height: min(55vh, 470px);
        overflow-y: auto;
        overscroll-behavior: contain;
        padding-right: 4px
    }

    .cms-admin .cms-sidebar nav a {
        width: 100%;
        white-space: normal
    }

    .cms-admin .cms-sidebar form {
        position: static;
        margin-top: 8px;
        padding-top: 8px
    }
}

@media(prefers-reduced-motion:reduce) {
    .cms-admin .cms-nav-group summary::after {
        transition: none
    }
}

/* CMS forms and pagination */
.cms-editor-page {
    max-width: 1120px;
    margin: 0 auto
}

.cms-editor-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px
}

.cms-editor-heading h1 {
    margin: 5px 0 7px;
    font-size: clamp(1.65rem, 3vw, 2.15rem);
    line-height: 1.18;
    color: #2f1745
}

.cms-editor-heading p {
    max-width: 720px;
    margin: 0;
    color: #6e6576;
    line-height: 1.55
}

.cms-back-link {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    color: var(--purple);
    font-weight: 700;
    text-decoration: none
}

.cms-back-link:hover {
    text-decoration: underline
}

.cms-back-link:focus-visible,
.cms-button:focus-visible,
.cms-pagination a:focus-visible {
    outline: 3px solid #e78b20;
    outline-offset: 3px
}

.cms-eyebrow {
    margin: 8px 0 0 !important;
    color: #a4510a !important;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase
}

.cms-record-badge {
    flex: none;
    padding: 8px 12px;
    border: 1px solid #ded3e6;
    border-radius: 999px;
    background: #fff;
    color: #6a4c7e;
    font-size: .82rem;
    font-weight: 700
}

.cms-editor-form {
    max-width: none;
    padding: 0;
    background: transparent;
    border-radius: 0;
    gap: 18px
}

.cms-form-card {
    overflow: hidden;
    background: #fff;
    border: 1px solid #e7dfec;
    border-radius: 20px;
    box-shadow: 0 12px 35px rgba(64, 35, 95, .07)
}

.cms-form-card__heading {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    padding: 22px 26px;
    border-bottom: 1px solid #eee8f2;
    background: linear-gradient(135deg, #fff 0%, #fbf7fd 100%)
}

.cms-form-card__heading h2 {
    margin: 0 0 5px;
    color: #3d2057;
    font-size: 1.12rem
}

.cms-form-card__heading p {
    margin: 0;
    color: #786e7e;
    font-size: .88rem
}

.cms-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px 24px;
    padding: 26px
}

.cms-field {
    display: grid;
    align-content: start;
    gap: 8px;
    min-width: 0;
    color: #3d3543;
    font-weight: 600
}

.cms-field--wide,
.cms-field--toggle {
    grid-column: 1/-1
}

.cms-field__label {
    font-size: .9rem
}

.cms-required {
    color: #c53e5c;
    font-weight: 800
}

.cms-field input:not([type=checkbox]),
.cms-field select,
.cms-field textarea {
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid #d7cedd;
    border-radius: 11px;
    background: #fff;
    color: var(--ink);
    font: inherit;
    font-weight: 400;
    line-height: 1.45;
    transition: border-color .15s, box-shadow .15s, background .15s
}

.cms-field textarea {
    resize: vertical;
    min-height: 116px
}

.cms-field input:hover,
.cms-field select:hover,
.cms-field textarea:hover {
    border-color: #af9abc
}

.cms-field input:focus,
.cms-field select:focus,
.cms-field textarea:focus {
    outline: 0;
    border-color: #76499a;
    box-shadow: 0 0 0 4px rgba(102, 53, 140, .12)
}

.cms-field [aria-invalid=true] {
    border-color: #bd3556 !important;
    background: #fffafb !important;
    box-shadow: 0 0 0 3px rgba(189, 53, 86, .1)
}

.cms-field__help {
    color: #7b7181 !important;
    font-size: .78rem !important;
    font-weight: 400;
    line-height: 1.5
}

.cms-field__success {
    color: #267342 !important;
    font-size: .8rem !important
}

.cms-file-input {
    padding: 8px !important;
    background: #fcfafd !important
}

.cms-file-input::file-selector-button {
    margin-right: 12px;
    padding: 8px 12px;
    border: 0;
    border-radius: 8px;
    background: #eee4f5;
    color: #512c6c;
    font: inherit;
    font-weight: 700;
    cursor: pointer
}

.cms-current-image {
    display: flex;
    align-items: center;
    gap: 16px;
    width: max-content;
    max-width: 100%;
    padding: 10px;
    border: 1px solid #e6ddea;
    border-radius: 13px;
    background: #faf7fc;
    color: #706578;
    font-size: .78rem
}

.cms-current-image .cms-image-preview {
    width: 110px;
    height: 90px;
    object-fit: contain;
    margin: 0;
    background: #fff
}

.cms-field--toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 18px;
    border: 1px solid #e6ddea;
    border-radius: 14px;
    background: #faf7fc
}

.cms-field--toggle>div {
    display: grid;
    gap: 4px
}

.cms-field--toggle small {
    color: #766c7c;
    font-weight: 400
}

.cms-switch {
    display: flex !important;
    grid-template-columns: none !important;
    align-items: center;
    gap: 10px !important;
    min-height: 44px;
    cursor: pointer;
    white-space: nowrap
}

.cms-switch input[type=checkbox] {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0
}

.cms-switch__track {
    position: relative;
    width: 46px;
    height: 26px;
    border-radius: 999px;
    background: #c9bdcf;
    transition: background .15s
}

.cms-switch__track::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 5px #2c16344a;
    transition: transform .15s
}

.cms-switch input:checked+.cms-switch__track {
    background: var(--purple)
}

.cms-switch input:checked+.cms-switch__track::after {
    transform: translateX(20px)
}

.cms-switch input:focus-visible+.cms-switch__track {
    outline: 3px solid var(--orange);
    outline-offset: 3px
}

.cms-form-note {
    margin: 0 26px 26px;
    padding: 16px 18px;
    border-left: 4px solid var(--orange);
    border-radius: 0 12px 12px 0;
    background: #fff7ed;
    color: #5c3b23
}

.cms-form-note strong {
    display: block;
    margin-bottom: 5px
}

.cms-form-note p {
    margin: 0;
    line-height: 1.55
}

.cms-form-actions {
    position: sticky;
    z-index: 5;
    bottom: 14px;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid #e4dbe9;
    border-radius: 15px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 12px 35px rgba(47, 23, 69, .13);
    backdrop-filter: blur(8px)
}

.cms-button--secondary {
    background: #fff !important;
    color: #5d386f !important;
    border: 1px solid #cdbdd7 !important
}

.cms-button--secondary:hover {
    background: #f7f0fa !important
}

.cms-form:not(.cms-filter):not(.cms-editor-form) {
    margin-top: 22px;
    border: 1px solid #e7dfec;
    box-shadow: 0 10px 30px rgba(64, 35, 95, .06)
}

.cms-panel {
    border-radius: 16px;
    box-shadow: 0 8px 25px rgba(64, 35, 95, .05)
}

.cms-table-wrap {
    box-shadow: 0 8px 28px rgba(64, 35, 95, .05)
}

.cms-admin thead {
    background: #fbf8fc
}

.cms-admin tbody tr {
    transition: background .15s
}

.cms-admin tbody tr:hover {
    background: #fdfafd
}

.cms-admin tbody tr:last-child td {
    border-bottom: 0
}

.cms-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 20px;
    padding: 14px 16px;
    border: 1px solid #e5dce9;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 24px rgba(64, 35, 95, .05)
}

.cms-pagination__summary {
    margin: 0;
    color: #746b79;
    font-size: .85rem
}

.cms-pagination__links {
    display: flex;
    align-items: center;
    gap: 6px
}

.cms-pagination__button,
.cms-pagination__page {
    box-sizing: border-box;
    display: grid;
    place-items: center;
    min-width: 40px;
    min-height: 40px;
    padding: 7px 11px;
    border: 1px solid #ded3e5;
    border-radius: 9px;
    background: #fff;
    color: #583271;
    text-decoration: none;
    font-size: .85rem;
    font-weight: 700
}

.cms-pagination__button:hover,
.cms-pagination__page:hover {
    border-color: #8d69a5;
    background: #f7effb
}

.cms-pagination__page.is-active {
    border-color: var(--purple);
    background: var(--purple);
    color: #fff
}

.cms-pagination__button.is-disabled {
    color: #aaa1ad;
    background: #f7f5f8;
    cursor: not-allowed
}

.cms-pagination__ellipsis {
    padding: 0 3px;
    color: #8b818f
}

.cms-pagination__mobile-status {
    display: none;
    color: #655c6a;
    font-size: .84rem;
    font-weight: 700
}

@media(max-width:750px) {
    .cms-editor-heading {
        align-items: flex-start;
        margin-bottom: 18px
    }

    .cms-record-badge {
        display: none
    }

    .cms-form-grid {
        grid-template-columns: 1fr;
        padding: 18px;
        gap: 18px
    }

    .cms-field--wide,
    .cms-field--toggle {
        grid-column: auto
    }

    .cms-form-card__heading {
        padding: 18px
    }

    .cms-field--toggle {
        align-items: flex-start
    }

    .cms-form-note {
        margin: 0 18px 18px
    }

    .cms-form-actions {
        position: static;
        display: grid;
        grid-template-columns: 1fr 1fr;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        backdrop-filter: none
    }

    .cms-form-actions .cms-button {
        text-align: center
    }

    .cms-pagination {
        align-items: stretch;
        padding: 12px
    }

    .cms-pagination__summary,
    .cms-pagination__page,
    .cms-pagination__ellipsis {
        display: none
    }

    .cms-pagination__links {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px
    }

    .cms-pagination__button {
        display: grid;
        width: 100%
    }

    .cms-pagination__mobile-status {
        display: block;
        align-self: center;
        text-align: center
    }
}

@media(max-width:430px) {
    .cms-field--toggle {
        display: grid;
        gap: 14px
    }

    .cms-form-actions {
        grid-template-columns: 1fr
    }

    .cms-pagination {
        display: grid
    }
}

@media(prefers-reduced-motion:reduce) {

    .cms-field input,
    .cms-field select,
    .cms-field textarea,
    .cms-switch__track,
    .cms-switch__track::after,
    .cms-admin tbody tr {
        transition: none
    }
}

/* Storefront package pricing */
.cms-package-selector {
    min-width: 0;
    margin: 24px 0 0;
    padding: 0;
    border: 0
}

.cms-package-selector>legend {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    width: 100%;
    margin-bottom: 12px;
    color: #392244
}

.cms-package-selector>legend span {
    font-size: 1.05rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .06em
}

.cms-package-selector>legend small {
    color: #7a6c7d;
    font-size: .78rem
}

.cms-package-list {
    display: grid;
    gap: 11px
}

.cms-package-card {
    position: relative;
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px !important;
    min-width: 0;
    padding: 17px 16px !important;
    border: 1.5px solid #e5d6c8;
    border-radius: 14px;
    background: #fffaf4;
    box-shadow: 0 3px 12px rgba(91, 49, 20, .05);
    cursor: pointer;
    transition: border-color .18s, box-shadow .18s, transform .18s
}

.cms-package-card:hover {
    border-color: #e78b20;
    transform: translateY(-1px)
}

.cms-package-card.is-selected {
    border: 2px solid #ed8e19;
    background: #fff7eb;
    box-shadow: 0 8px 25px rgba(231, 139, 32, .16)
}

.cms-package-card.is-disabled {
    opacity: .5;
    cursor: not-allowed;
    transform: none
}

.cms-package-card>input {
    position: absolute;
    width: 1px !important;
    height: 1px !important;
    opacity: 0
}

.cms-package-card>input:focus-visible~.cms-package-radio {
    outline: 3px solid #66358c;
    outline-offset: 3px
}

.cms-package-radio {
    box-sizing: border-box;
    width: 20px;
    height: 20px;
    border: 2px solid #d2b699;
    border-radius: 50%;
    background: #fff;
    box-shadow: inset 0 0 0 4px #fff
}

.cms-package-card.is-selected .cms-package-radio {
    border-color: #ed8e19;
    background: #ed8e19
}

.cms-package-card__main {
    display: grid;
    gap: 3px;
    min-width: 0
}

.cms-package-card__main strong {
    font-size: 1rem;
    color: #38243e
}

.cms-package-card__main small {
    color: #7a685a;
    font-size: .78rem;
    font-weight: 500
}

.cms-package-card__price {
    color: #422451;
    font-size: 1.08rem;
    font-weight: 800;
    white-space: nowrap
}

.cms-package-card__details {
    display: none;
    grid-column: 2/-1;
    gap: 6px;
    padding-top: 12px;
    border-top: 1px solid #ead7c2;
    color: #5e4a3f;
    font-size: .83rem;
    font-weight: 500;
    line-height: 1.5
}

.cms-package-card.is-selected .cms-package-card__details {
    display: grid
}

.cms-package-card__details strong {
    color: #a04b07;
    font-size: .92rem
}

.cms-package-card__details b {
    color: #512c6c
}

.cms-package-badge {
    position: absolute;
    top: -10px;
    right: 14px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #ed8e19;
    color: #fff;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
    box-shadow: 0 4px 12px rgba(194, 98, 7, .24)
}

.cms-package-summary {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 16px;
    margin: 14px 0 0;
    padding: 16px 18px;
    border: 1px solid #e1d5e8;
    border-radius: 13px;
    background: linear-gradient(135deg, #faf5fd, #fffaf4)
}

.cms-package-summary>span {
    color: #75677d;
    font-size: .76rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em
}

.cms-package-summary>strong {
    color: #5b2e77;
    text-align: right
}

.cms-package-summary>p {
    grid-column: 1/-1;
    margin: 0;
    color: #5c5061;
    line-height: 1.45
}

.cms-package-summary p b {
    color: #442253
}

.cms-package-summary .cms-package-shipping {
    margin-top: 5px;
    padding-top: 9px;
    border-top: 1px dashed #d8c8df;
    color: #74440e;
    font-size: .8rem
}

.local-package-quantity {
    display: inline-block;
    margin: 4px 0;
    padding: 5px 9px;
    border-radius: 8px;
    background: #f6edf9;
    color: #603879;
    font-size: .8rem;
    font-weight: 700
}

#checkout-summary {
    display: grid;
    gap: 12px
}

.cms-checkout-line {
    display: grid;
    grid-template-columns: 1fr auto;
    min-width: 0;
    gap: 4px 16px;
    padding: 13px 0;
    border-bottom: 1px solid #e6dce9
}

.cms-checkout-line>span {
    text-align: right;
    white-space: nowrap
}

.cms-checkout-line>strong,
.cms-checkout-line>small {
    min-width: 0;
    overflow-wrap: anywhere
}

.cms-checkout-line>small {
    grid-column: 1/-1
}

.cms-checkout-bonus {
    padding: 10px 12px;
    border-radius: 9px;
    background: #fff3e3;
    color: #78420e;
    line-height: 1.5
}

.cms-checkout-included {
    padding: 11px 13px;
    border: 1px solid #efbe78;
    border-radius: 10px;
    background: #fff8ee;
    color: #78420e;
    font-weight: 700
}

.cms-checkout-total {
    display: block;
    margin-top: 4px;
    color: #4e2867;
    font-size: 1.12rem;
    text-align: right
}

@media(max-width:980px) {
    .cms-checkout-layout {
        grid-template-columns: minmax(0, 1fr)
    }

    .cms-checkout-summary {
        position: static
    }

    .cms-checkout-submit {
        grid-column: 1;
        width: 100%;
        margin-top: -12px
    }
}

@media(max-width:650px) {
    .cms-checkout-fields--two {
        grid-template-columns: 1fr
    }

    .cms-checkout {
        padding-top: 32px !important;
        padding-bottom: 48px !important
    }

    .cms-checkout-heading {
        margin-bottom: 22px
    }

    .cms-checkout-layout,
    .cms-checkout-layout #checkout-form {
        gap: 16px
    }

    .cms-checkout-section,
    .cms-checkout-summary {
        padding: 16px;
        border-radius: 12px
    }

    .cms-checkout-section legend {
        max-width: calc(100vw - 62px);
        padding: 0 5px;
        line-height: 1.35
    }

    .cms-checkout-section legend span {
        width: 24px;
        height: 24px
    }

    .cms-checkout-fields {
        gap: 13px
    }

    .cms-checkout-totals>div {
        gap: 12px
    }

    .cms-checkout-totals dt {
        min-width: 0
    }

    .cms-checkout-totals dd {
        flex: 0 0 auto;
        white-space: nowrap
    }

    .cms-package-selector>legend {
        display: grid;
        gap: 3px
    }

    .cms-package-card {
        grid-template-columns: auto minmax(0, 1fr);
        padding: 16px 14px !important
    }

    .cms-package-card__price {
        grid-column: 2;
        margin-top: 2px
    }

    .cms-package-card__details {
        grid-column: 1/-1
    }

    .cms-package-badge {
        right: 9px
    }

    .cms-package-summary {
        grid-template-columns: 1fr
    }

    .cms-package-summary>strong {
        text-align: left
    }

    .cms-checkout-line {
        grid-template-columns: 1fr
    }

    .cms-checkout-line>span {
        text-align: left;
        white-space: normal
    }

    .cms-checkout-total {
        text-align: left
    }
}

@media(max-width:380px) {
    .cms-checkout-section,
    .cms-checkout-summary {
        padding: 14px
    }

    .cms-checkout input,
    .cms-checkout textarea,
    .cms-checkout select {
        padding: 11px 10px
    }

    .cms-checkout-totals__grand {
        font-size: 16px
    }

    .cms-checkout-totals__grand dd {
        font-size: 22px
    }
}

@media(prefers-reduced-motion:reduce) {
    .cms-package-card {
        transition: none
    }
}

/* Bundle variant choices */
.cms-package-card {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 0 !important;
    align-items: stretch
}

.cms-package-card__choice {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 0;
    cursor: pointer
}

.cms-package-card>input:focus-visible+.cms-package-card__choice .cms-package-radio {
    outline: 3px solid #66358c;
    outline-offset: 3px
}

.cms-package-card__details {
    grid-column: 1;
    cursor: default
}

.cms-bundle-options {
    display: grid;
    gap: 12px;
    margin-top: 8px;
    padding-top: 12px;
    border-top: 1px dashed #e1c9b2
}

.cms-bundle-glasses-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px
}

.cms-bundle-glasses-grid label {
    display: grid !important;
    gap: 5px !important;
    color: #533b5f;
    font-size: .78rem;
    font-weight: 700
}

.cms-bundle-glasses-control {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    gap: 9px
}

.cms-bundle-glasses-control img {
    width: 54px;
    height: 54px;
    object-fit: cover;
    border: 1px solid #eadfd4;
    border-radius: 9px;
    background: #f5f1f6
}

.cms-bundle-glasses-grid select,
.cms-bundle-accessory select {
    width: 100%;
    min-width: 0;
    border: 1px solid #dbc8e2;
    border-radius: 9px;
    background: #fff;
    padding: 9px 10px;
    color: #35283b;
    font: inherit
}

.cms-bundle-accessory {
    display: grid !important;
    grid-template-columns: 48px minmax(0, 1fr) minmax(110px, .75fr);
    align-items: center;
    gap: 10px !important;
    padding: 9px;
    border: 1px solid #eadfd4;
    border-radius: 11px;
    background: #fff
}

.cms-bundle-accessory img {
    width: 48px;
    height: 48px;
    object-fit: cover;
    border-radius: 8px;
    background: #f5f1f6
}

.cms-bundle-accessory span {
    display: grid;
    gap: 2px;
    color: #3c2945;
    font-weight: 800
}

.cms-bundle-accessory small {
    color: #806e88;
    font-size: .72rem;
    font-weight: 600
}

.cms-bundle-included {
    margin: 0;
    padding: 9px 11px;
    border-radius: 9px;
    background: #f5edf8;
    color: #613b74;
    font-weight: 700
}

.cms-package-choices {
    grid-column: 1/-1;
    margin: 2px 0;
    color: #5f4b68;
    font-size: .82rem
}

@media(max-width:650px) {
    .cms-package-card__choice {
        grid-template-columns: auto minmax(0, 1fr)
    }

    .cms-package-card__choice .cms-package-card__price {
        grid-column: 2
    }

    .cms-bundle-glasses-grid {
        grid-template-columns: 1fr
    }

    .cms-bundle-accessory {
        grid-template-columns: 44px minmax(0, 1fr)
    }

    .cms-bundle-accessory select {
        grid-column: 1/-1
    }
}

/* Order confirmation and tracking */
.order-page {
    max-width: 980px;
    padding-top: 56px;
    padding-bottom: 72px
}

.order-page__header,
.order-success__hero {
    max-width: 700px;
    margin: 0 auto 28px;
    text-align: center
}

.order-page__header h1,
.order-success__hero h1 {
    margin: 8px 0 10px;
    color: #3d2449;
    font-size: clamp(2rem, 5vw, 3.2rem)
}

.order-page__header p,
.order-success__hero p {
    margin: 0;
    color: #706576;
    line-height: 1.65
}

.order-page__eyebrow {
    color: #965219;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase
}

.order-success__icon {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: #66358c;
    color: #fff;
    font-size: 1.75rem;
    font-weight: 800
}

.order-track-form,
.order-result,
.order-empty {
    border: 1px solid #e5dce9;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 14px 38px rgba(64, 35, 95, .08)
}

.order-track-form {
    max-width: 720px;
    margin: 0 auto 28px;
    padding: 22px
}

.order-track-form>label {
    display: block;
    margin-bottom: 8px;
    color: #4c3657;
    font-weight: 800
}

.order-track-form__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px
}

.order-track-form input {
    min-width: 0;
    padding: 13px 15px;
    border: 1px solid #cfc1d7;
    border-radius: 10px;
    color: #33283a;
    font: inherit;
    text-transform: uppercase
}

.order-track-form input:focus {
    border-color: #66358c;
    outline: 3px solid rgba(102, 53, 140, .15)
}

.order-track-form button,
.order-button {
    display: inline-block;
    padding: 13px 20px;
    border: 1px solid #66358c;
    border-radius: 10px;
    background: #66358c;
    color: #fff;
    font: inherit;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
    cursor: pointer
}

.order-result {
    overflow: hidden
}

.order-result__summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    background: #e8e0eb
}

.order-result__summary>div {
    display: grid;
    gap: 5px;
    padding: 19px 22px;
    background: #faf8fb
}

.order-result__summary span,
.order-item__quantity span,
.order-item__price span {
    color: #7b7080;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase
}

.order-result__summary strong {
    color: #392943
}

.order-progress {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    margin: 0;
    padding: 28px 24px;
    list-style: none
}

.order-progress li {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 8px;
    color: #948a99;
    font-size: .78rem;
    text-align: center
}

.order-progress li::before {
    position: absolute;
    z-index: 0;
    top: 16px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: #e1d8e5;
    content: ''
}

.order-progress li:first-child::before {
    display: none
}

.order-progress li>span {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 2px solid #d7cddd;
    border-radius: 50%;
    background: #fff;
    font-weight: 800
}

.order-progress li.is-complete,
.order-progress li.is-active {
    color: #59326f
}

.order-progress li.is-complete::before,
.order-progress li.is-active::before {
    background: #8a5aa3
}

.order-progress li.is-complete>span,
.order-progress li.is-active>span {
    border-color: #66358c;
    background: #66358c;
    color: #fff
}

.order-progress li.is-active>span {
    box-shadow: 0 0 0 5px rgba(102, 53, 140, .13)
}

.order-details {
    padding: 26px
}

.order-details__heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 8px
}

.order-details__heading span {
    color: #8a7e90;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase
}

.order-details__heading h2 {
    margin: 4px 0 0;
    color: #3d2948;
    font-size: 1.35rem
}

.order-items {
    border-top: 1px solid #e9e2ec
}

.order-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 90px 150px;
    align-items: center;
    gap: 18px;
    padding: 18px 0;
    border-bottom: 1px solid #e9e2ec
}

.order-item__main h3 {
    margin: 0 0 5px;
    color: #37273f;
    font-size: 1rem
}

.order-item__main p {
    margin: 0 0 8px;
    color: #75697a;
    font-size: .86rem
}

.order-item__quantity,
.order-item__price {
    display: grid;
    gap: 5px
}

.order-item__price {
    text-align: right
}

.order-chip {
    display: inline-block;
    margin: 2px 5px 0 0;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f1e8f5;
    color: #633779;
    font-size: .7rem;
    font-weight: 800
}

.order-chip--included {
    background: #fff0dc;
    color: #8a5117
}

.order-item__bonus {
    grid-column: 1/-1;
    margin: -4px 0 0;
    padding: 10px 12px;
    border-radius: 9px;
    background: #fff7ec;
    color: #77502a;
    font-size: .82rem
}

.order-total {
    width: min(100%, 390px);
    margin: 20px 0 0 auto
}

.order-total>div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 7px 0
}

.order-total dt,
.order-total dd {
    margin: 0
}

.order-total__grand {
    margin-top: 8px;
    padding-top: 14px !important;
    border-top: 2px solid #ded3e4;
    color: #4f2c64;
    font-size: 1.12rem;
    font-weight: 800
}

.order-payment-note,
.order-cancelled {
    margin: 24px 26px 0;
    padding: 13px 15px;
    border-radius: 10px;
    background: #fff6e9;
    color: #70461c
}

.order-cancelled {
    background: #fff0f0;
    color: #873939
}

.order-empty {
    max-width: 720px;
    margin: 0 auto;
    padding: 28px;
    text-align: center
}

.order-empty h2 {
    margin: 0 0 8px;
    color: #3f2b49
}

.order-empty p {
    margin: 0;
    color: #756b7a
}

.order-success__actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 0 26px 28px
}

.order-button--secondary {
    background: #fff;
    color: #633779
}

.cms-order-items {
    display: grid;
    gap: 10px
}

.cms-order-item {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px 16px;
    padding: 12px;
    border: 1px solid #e6dce9;
    border-radius: 10px;
    background: #fcfafc
}

.cms-order-item div {
    display: grid;
    gap: 4px
}

.cms-order-item span,
.cms-order-item small {
    color: #756a7a;
    font-size: .82rem
}

.cms-order-item>p {
    grid-column: 1/-1;
    margin: 4px 0 0;
    color: #744817;
    font-size: .82rem
}

.cms-order-total {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 2px solid #e0d6e5;
    color: #4f2c64
}

@media(max-width:700px) {
    .order-page {
        padding-top: 36px;
        padding-bottom: 50px
    }

    .order-result__summary {
        grid-template-columns: 1fr
    }

    .order-progress {
        grid-template-columns: 1fr;
        gap: 13px;
        padding: 22px
    }

    .order-progress li {
        grid-template-columns: 34px 1fr;
        justify-items: start;
        align-items: center;
        text-align: left
    }

    .order-progress li::before {
        top: -14px;
        left: 16px;
        width: 2px;
        height: 28px
    }

    .order-item {
        grid-template-columns: 1fr auto;
        gap: 12px
    }

    .order-item__quantity {
        grid-column: 1
    }

    .order-item__price {
        grid-column: 2;
        text-align: right
    }
}

@media(max-width:520px) {
    .order-track-form__controls,
    .order-success__actions {
        grid-template-columns: 1fr;
        display: grid
    }

    .order-details {
        padding: 20px
    }

    .order-payment-note,
    .order-cancelled {
        margin: 20px 20px 0
    }

    .order-details__heading {
        align-items: flex-start
    }

    .order-success__actions {
        padding: 0 20px 22px
    }
}

.cms-badge{display:inline-block;border-radius:20px;padding:5px 10px;background:#f8eaf0;color:#914a65;font-size:12px;line-height:1.4;margin:2px}.cms-admin [hidden]{display:none!important}.cms-admin .select2-container{max-width:100%}.cms-admin .select2-selection--multiple{border-color:#dfd5da;border-radius:10px;min-height:46px}.cms-admin .swal2-popup{border-radius:20px}.cms-admin .swal2-input,.cms-admin .swal2-select{max-width:90%}.cms-admin .cms-form-card{margin-bottom:24px}.cms-admin [data-courier-edit]{display:flex;flex-wrap:wrap;gap:8px}.cms-admin [data-courier-edit] input[type=number]{width:80px}.cms-admin [data-courier-edit] input[type=file]{max-width:200px}.cms-admin .cms-table-wrap{overflow-x:auto}
