/* ==========================================================================
   Lightway — inner pages skin (components)
   Loaded after the theme CSS and manuscript.css on every public page except home.
   Scoped to body.lw-inner; tokens come from .ms-theme (manuscript.css).
   Logical properties only, so RTL (ar) and LTR (en) share one stylesheet.
   Text colours keep >= 4.5:1 on paper/card; no white text on #138CCD.
   ========================================================================== */

.lw-inner,
.lw-footer,
.lw-product {
    --lw-navy: #0E2A3F;
    --lw-text-blue: #0B6FA4;
    --lw-deep: #0A4F78;
    --lw-orange: #F79A22;
    --lw-price: #A85B06;
    --lw-paper: #FBF6EC;
    --lw-card: #FFFDF8;
    --lw-border: #E8DCC6;
    --lw-dash: #E0CFAF;
    --lw-input-border: #D9C7A5;
    --lw-pale-blue: #EAF4FB;
    --lw-pale-blue-2: #EEF6FB;
    --lw-sand: #FEF1DE;
    --lw-ink: #1B2A38;
    --lw-ink-soft: #3E4F5E;
    --lw-muted: #5B6B79;
    --lw-font-ui: 'IBM Plex Sans Arabic', main-font-family, Tahoma, sans-serif;
    --lw-font-display: 'Aref Ruqaa', 'Noto Naskh Arabic', main-font-family, serif;
    --lw-font-num: 'Amiri', 'Noto Naskh Arabic', serif;
    --lw-shadow: 0 22px 40px -36px rgba(27, 42, 56, .7);
}

.lw-inner #app {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.sr-only {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.lw-flip-ltr {
    /* icons drawn for RTL; mirror them in LTR */
}

.lw-inner:not(.rtl) .lw-flip-ltr {
    transform: scaleX(-1);
}

/* --------------------------------------------------------------------------
   Header on inner pages (same partial as home, mockup values for inner pages)
   -------------------------------------------------------------------------- */
.lw-inner .ms-topbar {
    background: var(--lw-navy);
    font-family: var(--lw-font-ui);
}

.lw-inner .ms-topbar__inner {
    min-height: 44px;
}

.lw-inner .ms-topbar__link,
.lw-inner .ms-topbar .btn-transparent,
.lw-inner .ms-topbar .custom-dropdown-toggle {
    color: #D6E3EE !important;
}

.lw-inner .ms-topbar__accent {
    color: #FBC27A;
    font-weight: 600;
}

.lw-inner .ms-header {
    font-family: var(--lw-font-ui);
    border-bottom: 1px solid #E8EEF3;
}

.lw-inner .ms-header__inner {
    min-height: 108px;
}

.lw-inner .ms-cats__toggle {
    height: 50px;
    background: var(--lw-pale-blue);
    color: var(--lw-text-blue);
    font-family: inherit;
}

.lw-inner .ms-cats__toggle svg {
    color: var(--lw-text-blue);
}

.lw-inner .ms-nav__list {
    gap: 6px;
}

.lw-inner .ms-nav__link {
    padding: 10px 18px;
    color: var(--lw-navy);
    font-weight: 500;
}

.lw-inner .ms-nav__link:hover,
.lw-inner .ms-nav__link.is-active {
    color: var(--lw-text-blue);
}

.lw-inner .ms-nav__link.is-active {
    font-weight: 700;
}

.lw-inner .ms-nav__link.is-active::after {
    bottom: -2px;
}

.lw-inner .ms-btn--cta {
    color: var(--lw-navy);
    font-size: 17px;
}

.lw-inner .ms-drawer {
    font-family: var(--lw-font-ui);
}

/* --------------------------------------------------------------------------
   Layout helpers
   -------------------------------------------------------------------------- */
.lw-main {
    flex: 1 0 auto;
}

.lw-page {
    padding-block: 48px 96px;
}

.lw-with-sidebar {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}

.lw-with-sidebar--end {
    grid-template-columns: minmax(0, 1fr) 320px;
}

.lw-stack {
    display: flex;
    flex-direction: column;
    gap: 22px;
    min-width: 0;
}

.lw-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.lw-grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.lw-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */
.lw-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 46px;
    padding: 0 26px;
    border: 1.5px solid transparent;
    border-radius: 999px;
    font-family: inherit;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.lw-inner .lw-btn--dark {
    background: var(--lw-deep);
    color: #fff;
}

.lw-inner .lw-btn--dark:hover {
    background: var(--lw-navy);
    color: #fff;
}

.lw-inner .lw-btn--cta,
.lw-footer .lw-btn--cta {
    background: var(--lw-orange);
    color: var(--lw-ink);
}

.lw-inner .lw-btn--cta:hover,
.lw-footer .lw-btn--cta:hover {
    background: #E0820C;
    color: var(--lw-ink);
}

.lw-inner .lw-btn--outline {
    background: #fff;
    border-color: var(--lw-deep);
    color: var(--lw-deep);
}

.lw-inner .lw-btn--outline:hover {
    background: var(--lw-deep);
    color: #fff;
}

.lw-btn--block {
    display: flex;
    width: 100%;
}

.lw-btn[disabled],
.lw-btn.is-disabled {
    opacity: .55;
    cursor: not-allowed;
}

.lw-btn:focus-visible,
.lw-icon-btn:focus-visible,
.lw-inner a:focus-visible,
.lw-toggle__input:focus-visible + .lw-toggle__track {
    outline: 2px solid var(--lw-orange);
    outline-offset: 2px;
}

.lw-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    padding: 0;
    background: #fff;
    border: 1px solid var(--lw-border);
    border-radius: 50%;
    color: var(--lw-deep);
    cursor: pointer;
}

.lw-inner a.lw-icon-btn:hover,
.lw-icon-btn:hover {
    background: var(--lw-deep);
    color: #fff;
}

/* --------------------------------------------------------------------------
   Page banner
   -------------------------------------------------------------------------- */
.lw-banner {
    position: relative;
    border-bottom: 2px solid var(--lw-orange);
}

.lw-banner__inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 48px;
    padding-block: 48px 44px;
}

.lw-banner__text {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.lw-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
    font-size: 15px;
}

.lw-breadcrumb li + li::before {
    content: "/";
    margin-inline-end: 8px;
    color: var(--lw-muted);
}

.lw-inner .lw-breadcrumb a {
    color: var(--lw-muted);
    text-decoration: none;
}

.lw-inner .lw-breadcrumb a:hover {
    color: var(--lw-deep);
}

.lw-breadcrumb [aria-current="page"] {
    color: var(--lw-price);
    font-weight: 600;
}

.lw-inner .lw-banner__title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 58px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--lw-deep);
}

.lw-banner__star {
    flex-shrink: 0;
    color: var(--lw-orange);
}

.lw-banner__subtitle {
    margin: 0;
    font-size: 18px;
    color: var(--lw-ink-soft);
}

.lw-banner__band {
    height: 24px;
    background-size: 28px 28px;
}

/* Pill search (banner + reused elsewhere) */
.lw-search {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 460px;
    max-width: 100%;
    margin: 0;
    padding: 7px;
    background: #fff;
    border: 1.5px solid var(--ms-blue, #138CCD);
    border-radius: 999px;
}

.lw-search:focus-within {
    box-shadow: 0 0 0 3px rgba(19, 140, 205, .18);
}

.lw-search__icon {
    flex-shrink: 0;
    margin-inline-start: 12px;
    color: var(--lw-muted);
}

.lw-search input {
    flex-grow: 1;
    min-width: 0;
    height: 44px;
    border: 0;
    background: transparent;
    font-family: inherit;
    font-size: 16px;
    color: var(--lw-ink);
    outline: none;
}

.lw-search .lw-btn {
    height: 44px;
}

/* --------------------------------------------------------------------------
   Section heading (inner pages: star + Aref Ruqaa, optional "view all" link)
   -------------------------------------------------------------------------- */
.lw-section {
    margin-bottom: 48px;
}

.lw-section__head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 6px 20px;
    margin-bottom: 24px;
}

.lw-inner .lw-section__title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 40px;
    line-height: 1.3;
    font-weight: 700;
    color: var(--lw-deep);
}

.lw-section__title svg {
    flex-shrink: 0;
    color: var(--lw-orange);
}

.lw-section__hint {
    flex-basis: 100%;
    order: 2;
    margin: 0;
    font-size: 16px;
    color: var(--lw-muted);
}

.lw-inner .lw-section__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--lw-text-blue);
    font-weight: 700;
    text-decoration: none;
}

.lw-swiper .swiper-slide {
    height: auto;
}

.lw-swiper {
    padding: 6px 4px 30px;
}

/* --------------------------------------------------------------------------
   Panel (sidebar blocks, content blocks)
   -------------------------------------------------------------------------- */
.lw-panel {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 22px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 14px;
}

.lw-inner .lw-panel__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 4px;
    padding-bottom: 12px;
    border-bottom: 1px dashed var(--lw-dash);
    font-family: var(--ms-font-body);
    font-size: 18px;
    font-weight: 700;
    color: var(--lw-deep);
}

.lw-panel__title svg {
    flex-shrink: 0;
    color: var(--lw-orange);
}

.lw-panel__extra {
    margin-inline-start: auto;
    font-size: 14px;
    font-weight: 400;
    color: var(--lw-muted);
}

.lw-check {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 16px;
    color: var(--lw-ink);
    cursor: pointer;
}

.lw-check input {
    width: 18px;
    height: 18px;
    margin: 0;
    flex-shrink: 0;
    accent-color: var(--lw-deep);
}

.lw-inner .lw-panel-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 6px 0;
    color: var(--lw-ink);
    font-size: 16px;
    text-decoration: none;
}

.lw-inner .lw-panel-link:hover,
.lw-inner .lw-panel-link.is-active {
    color: var(--lw-deep);
    font-weight: 700;
}

.lw-inner .lw-panel-link--sub {
    padding-inline-start: 16px;
    font-size: 15px;
    color: var(--lw-muted);
}

.lw-panel-group {
    display: block;
    margin-top: 8px;
    padding-top: 6px;
    font-size: 15px;
    font-weight: 700;
    color: var(--lw-deep);
}

.lw-panel-group:first-child {
    margin-top: 0;
    padding-top: 0;
}

.lw-panel-link::after {
    content: "";
    width: 7px;
    height: 7px;
    flex-shrink: 0;
    background: var(--lw-orange);
    transform: rotate(45deg);
}

/* --------------------------------------------------------------------------
   Toolbar + toggle switch + select
   -------------------------------------------------------------------------- */
.lw-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 22px;
    padding: 16px 22px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 14px;
}

.lw-toolbar__group {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 22px;
}

.lw-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--lw-ink);
    cursor: pointer;
    user-select: none;
}

.lw-toggle__input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.lw-toggle__track {
    position: relative;
    flex-shrink: 0;
    width: 42px;
    height: 24px;
    border-radius: 12px;
    background: #C3CFDA;
    transition: background-color .15s ease;
}

.lw-toggle__thumb {
    position: absolute;
    top: 3px;
    inset-inline-start: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 3px rgba(14, 42, 63, .3);
    transition: inset-inline-start .15s ease;
}

.lw-toggle__input:checked + .lw-toggle__track {
    background: var(--lw-deep);
}

.lw-toggle__input:checked + .lw-toggle__track .lw-toggle__thumb {
    inset-inline-start: 21px;
}

.lw-field {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    color: var(--lw-ink-soft);
}

.lw-select,
.lw-input,
.lw-textarea {
    height: 46px;
    padding: 0 14px;
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
    background: #fff;
    font-family: inherit;
    font-size: 15px;
    color: var(--lw-ink);
}

.lw-textarea {
    height: auto;
    min-height: 140px;
    padding: 12px 14px;
}

.lw-select:focus,
.lw-input:focus,
.lw-textarea:focus {
    border-color: var(--ms-blue, #138CCD);
    outline: none;
    box-shadow: 0 0 0 3px rgba(19, 140, 205, .18);
}

.lw-view-switch {
    display: inline-flex;
    gap: 6px;
}

.lw-view-switch__btn {
    margin: 0;
    cursor: pointer;
}

.lw-view-switch input:focus-visible + .lw-view-switch__btn {
    outline: 2px solid var(--lw-orange);
    outline-offset: 2px;
}

.lw-inner .lw-view-switch a,
.lw-view-switch__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    background: #fff;
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
    color: var(--lw-deep);
}

.lw-inner .lw-view-switch a.is-active,
.lw-view-switch input:checked + .lw-view-switch__btn {
    background: var(--lw-deep);
    border-color: var(--lw-deep);
    color: #fff;
}

/* --------------------------------------------------------------------------
   Arch frame
   -------------------------------------------------------------------------- */
.lw-arch {
    display: block;
    height: 190px;
    padding: 6px;
    border: 1.5px solid var(--lw-orange);
    /* 999px collapses to a perfect semicircle for any width */
    border-radius: 999px 999px 6px 6px;
}

.lw-arch__clip {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--ms-blue, #138CCD);
    border-radius: 999px 999px 3px 3px;
    background: #DCEBF6;
}

.lw-arch__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.lw-arch--product {
    height: 230px;
}

.lw-arch--post {
    height: 220px;
}

.lw-arch--hero {
    height: auto;
    aspect-ratio: 16 / 10;
    padding: 10px;
    border-width: 2px;
}

/* --------------------------------------------------------------------------
   Badges, stars, prices
   -------------------------------------------------------------------------- */
.lw-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
    white-space: nowrap;
}

.lw-badge--type {
    background: var(--lw-pale-blue);
    color: var(--lw-text-blue);
}

.lw-badge--done {
    background: var(--lw-deep);
    color: #fff;
}

.lw-badge--live {
    background: var(--lw-text-blue);
    color: #fff;
}

.lw-badge--featured {
    background: var(--lw-orange);
    color: var(--lw-ink);
}

.lw-badge--offer {
    background: var(--lw-price);
    color: #fff;
}

.lw-badge--muted {
    background: #E6E1D7;
    color: var(--lw-ink-soft);
}

.lw-stars {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--lw-orange);
    letter-spacing: 1px;
    font-size: 15px;
}

.lw-stars strong {
    color: var(--lw-price);
    letter-spacing: 0;
}

.lw-stars__empty {
    color: var(--lw-dash);
}

.lw-stars--lg {
    font-size: 20px;
    letter-spacing: 2px;
}

.lw-stars--none {
    color: var(--lw-muted);
    font-size: 14px;
    letter-spacing: 0;
}

.lw-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
}

.lw-price--center {
    justify-content: center;
}

.lw-price__real {
    font-family: var(--lw-font-display);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--lw-price);
}

.lw-price__old {
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-price__unit {
    font-size: 13px;
    color: var(--lw-muted);
}

/* --------------------------------------------------------------------------
   Cards (shared)
   -------------------------------------------------------------------------- */
.lw-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 14px;
    color: var(--lw-ink);
    box-shadow: var(--lw-shadow);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.lw-card:hover,
.lw-card:focus-within {
    border-color: #F3C98E;
    box-shadow: 0 28px 44px -32px rgba(10, 79, 120, .55);
    transform: translateY(-3px);
}

.lw-card:hover .lw-arch__img {
    transform: scale(1.04);
}

.lw-inner .lw-card__title,
.ms-theme .lw-product .lw-card__title {
    margin: 0;
    font-family: var(--ms-font-body);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.6;
    text-align: start;
    color: var(--lw-ink);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lw-inner .lw-card__title a,
.ms-theme .lw-product .lw-card__title a {
    color: inherit;
    text-decoration: none;
}

.lw-inner .lw-card:hover .lw-card__title a,
.ms-theme .lw-product:hover .lw-card__title a {
    color: var(--lw-deep);
}

/* Whole card is clickable; secondary links sit above the overlay */
.lw-stretched-link::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: inherit;
}

.lw-above-link {
    position: relative;
    z-index: 2;
}

.lw-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 6px;
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-inner .lw-card__cat,
.ms-theme .lw-product .lw-card__cat {
    color: var(--lw-text-blue);
    font-weight: 600;
    text-decoration: none;
}

.lw-inner .lw-card__muted-link,
.ms-theme .lw-product .lw-card__muted-link {
    color: var(--lw-muted);
    text-decoration: none;
}

.lw-inner .lw-card__cat:hover,
.lw-inner .lw-card__muted-link:hover,
.ms-theme .lw-product .lw-card__cat:hover,
.ms-theme .lw-product .lw-card__muted-link:hover {
    color: var(--lw-deep);
    text-decoration: underline;
}

.lw-course__badges {
    position: absolute;
    z-index: 2;
    top: 24px;
    inset-inline-start: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    max-width: calc(100% - 48px);
}

/* Core custom product badges in the same pill style */
.lw-course__badges .badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.5;
}

.lw-course__badges .badge .size-32 {
    width: 16px !important;
    height: 16px !important;
    margin-inline-end: 4px !important;
    margin-right: 0 !important;
}

/* Course card */
.lw-course__media {
    position: relative;
    padding: 14px 14px 0;
}

.lw-course__progress {
    position: absolute;
    inset-inline: 32px;
    bottom: 14px;
    height: 5px;
    overflow: hidden;
    background: rgba(255, 255, 255, .92);
    border-radius: 5px;
    box-shadow: 0 1px 3px rgba(27, 42, 56, .25);
}

.lw-course__progress span {
    display: block;
    height: 100%;
    background: var(--lw-orange);
}

.lw-course__calendar {
    position: absolute;
    z-index: 2;
    top: 18px;
    inset-inline-end: 18px;
    width: 34px;
    height: 34px;
    box-shadow: 0 6px 14px -8px rgba(27, 42, 56, .6);
}

.lw-course__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 9px;
    padding: 16px 18px 18px;
}

.lw-inner .lw-course__teacher {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 8px;
    font-size: 14px;
    color: var(--lw-muted);
    text-decoration: none;
}

.lw-inner .lw-course__teacher:hover {
    color: var(--lw-deep);
}

.lw-avatar-dot {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--lw-pale-blue);
    color: var(--lw-text-blue);
}

.lw-course .lw-card__title {
    min-height: 3.2em;
}

.lw-course__facts {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px dashed var(--lw-dash);
    font-size: 14px;
    color: var(--lw-ink-soft);
}

.lw-course__facts span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.lw-course__facts svg {
    color: var(--ms-blue, #138CCD);
}

/* List variant */
.lw-course--list {
    flex-direction: row;
}

.lw-course--list .lw-course__media {
    flex: 0 0 280px;
    padding: 14px;
}

.lw-course--list .lw-arch {
    height: 100%;
    min-height: 200px;
}

.lw-course--list .lw-course__body {
    padding: 18px 20px 18px 18px;
}

.lw-course--list .lw-card__title {
    min-height: 0;
}

/* Product card */
.lw-product__media {
    position: relative;
    padding: 14px 14px 0;
}

.lw-product__body {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 8px;
    padding: 16px 18px 20px;
}

.lw-product .lw-card__title {
    min-height: 3.2em;
}

.lw-product__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 10px;
    border-top: 1px dashed var(--lw-dash);
}

.lw-cart-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--lw-orange);
    color: var(--lw-ink);
    cursor: pointer;
    transition: background-color .15s ease;
}

.lw-cart-btn:hover {
    background: #E0820C;
}

.lw-cart-btn:focus-visible {
    outline: 2px solid var(--lw-deep);
    outline-offset: 2px;
}

/* Instructor card (arched top) */
.lw-instructor {
    align-items: center;
    gap: 10px;
    padding: 26px 20px 22px;
    border-radius: 140px 140px 14px 14px;
    text-align: center;
}

.lw-instructor__flag {
    position: absolute;
    z-index: 2;
    top: 18px;
    inset-inline-start: 18px;
}

.lw-ring-avatar {
    position: relative;
    display: block;
    flex-shrink: 0;
    width: 96px;
    height: 96px;
    padding: 5px;
    border: 2px solid var(--lw-orange);
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--lw-card), 0 0 0 5px var(--ms-blue, #138CCD);
}

.lw-ring-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    background: #DCEBF6;
}

.lw-ring-avatar__state {
    position: absolute;
    bottom: -2px;
    inset-inline-end: -2px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 2px solid var(--lw-card);
    border-radius: 50%;
    color: #fff;
}

.lw-ring-avatar__state.is-verified {
    background: var(--lw-deep);
}

.lw-ring-avatar__state.is-offline {
    background: #6B7682;
}

.lw-inner .lw-instructor__name {
    margin: 6px 0 0;
    font-family: var(--ms-font-body);
    font-size: 19px;
    font-weight: 700;
    line-height: 1.5;
}

.lw-inner .lw-instructor__name a {
    color: var(--lw-ink);
    text-decoration: none;
}

.lw-instructor__bio {
    min-height: 22px;
    font-size: 14px;
    color: var(--lw-muted);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lw-instructor__badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}

.lw-instructor .lw-btn {
    margin-top: auto;
}

/* Blog card */
.lw-post {
    display: grid;
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 28px;
    padding: 18px;
    border-radius: 16px;
}

.lw-post__media {
    position: relative;
}

.lw-post__media .lw-course__badges {
    top: 12px;
    inset-inline-start: 12px;
}

.lw-post__body {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding-block: 10px;
    min-width: 0;
}

.lw-post__date {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 600;
    color: var(--lw-price);
}

.lw-inner .lw-post__title {
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 32px;
    line-height: 1.4;
    color: var(--lw-deep);
    text-align: start;
}

.lw-inner .lw-post__title a {
    color: inherit;
    text-decoration: none;
}

.lw-post__excerpt {
    margin: 0;
    font-size: 16px;
    line-height: 1.9;
    color: var(--lw-ink-soft);
    text-align: start;
}

.lw-post__foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px dashed var(--lw-dash);
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-post__foot > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.lw-post--grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
}

.lw-post--grid .lw-post__title {
    font-size: 24px;
}

/* --------------------------------------------------------------------------
   Star medallion
   -------------------------------------------------------------------------- */
.lw-medal {
    --lw-medal-tone: var(--ms-blue, #138CCD);
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-align: center;
}

.lw-medal--orange {
    --lw-medal-tone: var(--lw-orange);
}

.lw-medal__badge {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 84px;
    height: 84px;
}

.lw-medal--sm .lw-medal__badge {
    width: 56px;
    height: 56px;
}

.lw-medal--lg .lw-medal__badge {
    width: 110px;
    height: 110px;
}

.lw-medal__badge svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.lw-medal__shape {
    fill: #F2F8FC;
    fill: color-mix(in srgb, var(--lw-medal-tone) 12%, #FFFFFF);
    stroke: var(--lw-medal-tone);
    stroke-width: 1.5;
}

.lw-medal__disc {
    fill: var(--lw-card, #FFFDF8);
    stroke: var(--lw-medal-tone);
    stroke-width: 1.5;
}

.lw-medal__value {
    position: relative;
    font-family: var(--lw-font-num);
    font-size: 28px;
    line-height: 1;
    color: var(--lw-deep, #0A4F78);
}

.lw-medal--sm .lw-medal__value {
    font-size: 18px;
}

.lw-medal--lg .lw-medal__value {
    font-size: 36px;
}

.lw-medal__label {
    font-size: 15px;
    font-weight: 600;
    color: inherit;
}

/* --------------------------------------------------------------------------
   Review summary
   -------------------------------------------------------------------------- */
.lw-review-summary {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 32px;
    align-items: center;
}

.lw-review-summary__score {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 20px;
    background: var(--lw-paper);
    border-radius: 120px 120px 12px 12px;
}

.lw-review-summary__value {
    font-family: var(--lw-font-num);
    font-size: 56px;
    line-height: 1;
    color: var(--lw-deep);
}

.lw-review-summary__count {
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-review-summary__rows {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lw-review-summary__row {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 15px;
}

.lw-review-summary__label {
    flex: 0 0 120px;
}

.lw-review-summary__bar {
    flex-grow: 1;
    height: 8px;
    overflow: hidden;
    border-radius: 4px;
    background: #EFE5D3;
}

.lw-review-summary__bar span {
    display: block;
    height: 100%;
    background: var(--lw-orange);
}

/* --------------------------------------------------------------------------
   Pagination
   -------------------------------------------------------------------------- */
.lw-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    padding-top: 8px;
}

.lw-inner .lw-pagination__item {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 46px;
    height: 46px;
    padding: 0 6px;
    border: 1px solid var(--lw-input-border);
    border-radius: 999px;
    color: var(--lw-ink);
    font-weight: 600;
    text-decoration: none;
}

.lw-inner a.lw-pagination__item:hover {
    border-color: var(--lw-deep);
    color: var(--lw-deep);
}

.lw-pagination__item.is-active {
    background: var(--lw-deep);
    border-color: var(--lw-deep);
    color: #fff;
    font-weight: 700;
}

.lw-pagination__item.is-disabled {
    opacity: .4;
}

.lw-pagination__item.is-gap {
    border-color: transparent;
}

/* --------------------------------------------------------------------------
   Empty state (wraps the core no-result partial)
   -------------------------------------------------------------------------- */
.lw-empty {
    padding: 40px 24px;
    background: var(--lw-card);
    border: 1px dashed var(--lw-dash);
    border-radius: 14px;
    text-align: center;
}

.lw-empty .no-result {
    margin-top: 0 !important;
}

.lw-empty .no-result-logo img {
    max-width: 220px;
    height: auto;
}

.lw-inner .lw-empty h2 {
    font-family: var(--lw-font-display);
    font-size: 28px;
    color: var(--lw-deep) !important;
}

.lw-empty p {
    color: var(--lw-muted) !important;
}

/* --------------------------------------------------------------------------
   Sidebar → filter drawer
   -------------------------------------------------------------------------- */
.lw-sidebar__panel {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.lw-sidebar__head,
.lw-sidebar__backdrop,
.lw-drawer-opener {
    display: none;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */
.lw-footer {
    position: relative;
    z-index: 2;
    margin-top: auto;
    font-family: var(--ms-font-body, 'Noto Naskh Arabic', serif);
    background: var(--lw-deep);
    color: #C9DDEB;
}

.lw-footer__inner {
    display: flex;
    flex-direction: column;
    gap: 48px;
    padding-block: 56px 36px;
}

.lw-footer__subscribe {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    padding-bottom: 44px;
    border-bottom: 1px solid rgba(201, 221, 235, .2);
}

.lw-footer__subscribe-text {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.lw-footer__subscribe-text p {
    margin: 0;
    font-size: 16px;
}

.lw-footer .lw-footer__title {
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 36px;
    color: #fff;
}

.lw-footer__form {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    width: 520px;
    max-width: 100%;
    margin: 0;
}

.lw-footer__field {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    gap: 6px;
    min-width: 0;
}

.lw-footer__field input {
    height: 54px;
    padding: 0 20px;
    border: 1px solid rgba(255, 255, 255, .25);
    border-radius: 999px;
    background: rgba(255, 255, 255, .07);
    color: #fff;
    font-family: inherit;
    font-size: 16px;
}

.lw-footer__field input::placeholder {
    color: #B5CCDD;
}

.lw-footer__field input:focus {
    border-color: var(--lw-orange);
    outline: none;
}

.lw-footer__field input.is-invalid {
    border-color: #FFB4A8;
}

.lw-footer__error {
    padding-inline-start: 20px;
    font-size: 14px;
    color: #FFD2CA;
}

.lw-footer__form .lw-btn {
    height: 54px;
    padding: 0 30px;
    font-size: 17px;
}

.lw-footer__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .9fr);
    gap: 44px;
}

.lw-footer__col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    font-size: 15px;
}

.lw-footer__logo {
    display: flex;
    padding: 12px 16px;
    background: var(--lw-card);
    border-radius: 16px;
}

.lw-footer__logo img {
    display: block;
    width: auto;
    max-width: 180px;
    max-height: 56px;
    object-fit: contain;
}

.lw-footer__heading {
    color: #fff;
    font-size: 18px;
}

/* Admin rich-text columns: normalise inline colours and spacing */
.lw-footer__rich {
    width: 100%;
    line-height: 2;
}

.lw-footer__rich,
.lw-footer__rich * {
    color: #C9DDEB !important;
    background: transparent !important;
}

.lw-footer__rich p {
    margin: 0;
}

.lw-footer__rich a {
    text-decoration: none;
}

.lw-footer__rich a:hover,
.lw-footer__rich a:hover * {
    color: #fff !important;
}

.lw-footer__links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px 14px;
    line-height: 1.7;
}

.lw-footer__links p:empty,
.lw-footer__links br:only-child {
    display: none;
}

.lw-footer .lw-footer__contact {
    color: #C9DDEB;
    text-decoration: none;
}

.lw-footer .lw-footer__contact:hover {
    color: #fff;
}

.lw-footer__socials {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 6px;
}

.lw-footer__socials a {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(251, 194, 122, .5);
    border-radius: 50%;
}

.lw-footer__socials a:hover {
    background: rgba(251, 194, 122, .15);
}

.lw-footer__socials img {
    width: 18px;
    height: 18px;
    object-fit: contain;
}

.lw-footer__copy {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding-top: 24px;
    border-top: 1px solid rgba(201, 221, 235, .2);
    font-size: 14px;
    text-align: center;
}

.lw-footer__copy svg {
    flex-shrink: 0;
    color: var(--lw-orange);
}

/* --------------------------------------------------------------------------
   Responsive: 1024 / 768 / 390
   -------------------------------------------------------------------------- */
@media (max-width: 1199.98px) {
    .lw-inner .ms-header__inner {
        min-height: 88px;
    }

    .lw-inner .ms-nav__link {
        padding: 8px 10px;
    }

    .lw-with-sidebar {
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 24px;
    }

    .lw-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lw-grid--4 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lw-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lw-inner .lw-banner__title {
        font-size: 48px;
    }
}

@media (max-width: 991.98px) {
    .lw-inner .ms-header__inner {
        min-height: 76px;
    }

    .lw-banner__inner {
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
        padding-block: 36px 32px;
    }

    .lw-search {
        width: 100%;
    }

    .lw-with-sidebar,
    .lw-with-sidebar--end {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Sidebar becomes an off-canvas drawer */
    .lw-drawer-opener {
        display: inline-flex;
    }

    .lw-sidebar {
        position: fixed;
        inset: 0;
        z-index: 1070;
        visibility: hidden;
    }

    .lw-sidebar.is-open {
        visibility: visible;
    }

    .lw-sidebar__backdrop {
        display: block;
        position: absolute;
        inset: 0;
        background: rgba(10, 79, 120, .45);
        opacity: 0;
        transition: opacity .2s ease;
    }

    .lw-sidebar.is-open .lw-sidebar__backdrop {
        opacity: 1;
    }

    .lw-sidebar__panel {
        position: absolute;
        top: 0;
        bottom: 0;
        inset-inline-start: 0;
        width: min(360px, 90vw);
        padding: 18px;
        overflow-y: auto;
        background: var(--lw-paper);
        border-inline-end: 3px solid var(--lw-orange);
        transform: translateX(-100%);
        transition: transform .25s ease;
    }

    .lw-inner.rtl .lw-sidebar__panel {
        transform: translateX(100%);
    }

    .lw-sidebar.is-open .lw-sidebar__panel {
        transform: none;
    }

    .lw-sidebar__head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        font-size: 18px;
        color: var(--lw-deep);
    }

    .lw-footer__subscribe {
        flex-direction: column;
        align-items: stretch;
        gap: 20px;
    }

    .lw-footer__form {
        width: 100%;
    }

    .lw-post {
        grid-template-columns: 220px minmax(0, 1fr);
        gap: 20px;
    }

    .lw-inner .lw-post__title {
        font-size: 26px;
    }
}

@media (max-width: 767.98px) {
    .lw-page {
        padding-block: 28px 64px;
    }

    .lw-grid,
    .lw-grid--4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 14px;
    }

    .lw-toolbar {
        padding: 14px;
    }

    .lw-course--list {
        flex-direction: column;
    }

    .lw-course--list .lw-course__media {
        flex-basis: auto;
        padding: 14px 14px 0;
    }

    .lw-course--list .lw-arch {
        height: 190px;
        min-height: 0;
    }

    .lw-post {
        grid-template-columns: minmax(0, 1fr);
    }

    .lw-review-summary {
        grid-template-columns: minmax(0, 1fr);
        gap: 20px;
    }
}

@media (max-width: 575.98px) {
    .lw-inner .lw-banner__title {
        font-size: 38px;
    }

    .lw-banner__subtitle {
        font-size: 16px;
    }

    .lw-grid,
    .lw-grid--4 {
        grid-template-columns: minmax(0, 1fr);
    }

    .lw-footer__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 32px;
    }

    .lw-footer__form {
        flex-direction: column;
        align-items: stretch;
    }

    .lw-footer__form .lw-btn {
        width: 100%;
    }

    .lw-toolbar__group {
        gap: 12px 16px;
    }

    .lw-card:hover {
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .lw-inner *,
    .lw-inner *::before,
    .lw-inner *::after {
        transition: none !important;
    }
}

/* ==========================================================================
   Item pages (course / bundle / product detail)
   ========================================================================== */
.lw-banner--item .lw-banner__inner {
    padding-block: 40px 36px;
}

.lw-inner .lw-banner__title--item {
    font-size: 52px;
}

.lw-badge--sand {
    align-self: flex-start;
    background: var(--lw-sand);
    color: var(--lw-price);
}

.lw-item-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 24px;
    font-size: 15px;
    color: var(--lw-ink-soft);
}

.lw-item-meta > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.lw-item-meta svg {
    color: var(--lw-text-blue);
}

.lw-inner .lw-item-meta__link {
    color: var(--lw-text-blue);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lw-learning-progress {
    display: flex;
    align-items: center;
    gap: 14px;
    max-width: 560px;
}

.lw-learning-progress__bar {
    flex-grow: 1;
    height: 8px;
    overflow: hidden;
    border-radius: 4px;
    background: #EFE5D3;
}

.lw-learning-progress__bar span {
    display: block;
    height: 100%;
    background: var(--lw-orange);
}

.lw-learning-progress__text {
    font-size: 14px;
    font-weight: 600;
    color: var(--lw-ink-soft);
}

.lw-special-offer {
    margin-bottom: 24px;
}

/* Media frame */
.lw-media {
    position: relative;
}

.lw-arch--hero {
    background: var(--lw-card);
}

.lw-media__play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    padding: 0;
    border: 3px solid #fff;
    border-radius: 50%;
    background: var(--lw-deep);
    color: #fff;
    box-shadow: 0 12px 30px -12px rgba(14, 42, 63, .8);
    transform: translate(-50%, -40%);
    cursor: pointer;
    transition: transform .2s ease, background-color .2s ease;
}

.lw-media__play:hover {
    background: var(--lw-navy);
    transform: translate(-50%, -40%) scale(1.06);
}

.lw-media__play:focus-visible {
    outline: 3px solid var(--lw-orange);
    outline-offset: 3px;
}

/* Pill tabs (Bootstrap tab plugin keeps working through data-toggle="tab") */
.lw-tabs {
    display: flex;
    gap: 6px;
    margin: 0 0 22px;
    padding: 6px;
    list-style: none;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 999px;
}

.lw-tabs .nav-item {
    flex: 1 1 0;
}

.lw-inner .lw-tabs__link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    padding: 0 16px;
    border-radius: 999px;
    color: var(--lw-ink);
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .15s ease, color .15s ease;
}

.lw-inner .lw-tabs__link:hover {
    color: var(--lw-deep);
    background: var(--lw-paper);
}

.lw-inner .lw-tabs__link.active {
    background: var(--lw-deep);
    color: #fff;
}

.lw-tab-content > .tab-pane {
    outline: none;
}

/* Rich text + helpers */
.lw-prose {
    text-align: start;
    font-size: 16px;
    line-height: 2;
    color: var(--lw-ink-soft);
    overflow-wrap: anywhere;
}

.lw-prose img {
    max-width: 100%;
    height: auto;
}

.lw-muted {
    margin: 0;
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-panel--pale {
    background: var(--lw-pale-blue-2);
    border-color: #CFE3F1;
}

.lw-checklist {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lw-checklist li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15px;
    color: var(--lw-ink-soft);
}

.lw-checklist svg {
    flex-shrink: 0;
    margin-top: 3px;
    color: var(--lw-text-blue);
}

.lw-logos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 20px;
}

.lw-logos img {
    max-height: 44px;
    width: auto;
}

/* FAQ */
.lw-faq {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.lw-faq__item {
    background: var(--lw-paper);
    border: 1px solid var(--lw-border);
    border-radius: 12px;
}

.lw-inner .lw-faq__q {
    margin: 0;
    font-family: var(--ms-font-body);
    font-size: 16px;
}

.lw-faq__q button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    padding: 14px 18px;
    background: transparent;
    border: 0;
    color: var(--lw-ink);
    font-family: inherit;
    font-weight: 700;
    text-align: start;
    cursor: pointer;
}

.lw-faq__q button svg {
    flex-shrink: 0;
    color: var(--lw-text-blue);
    transition: transform .2s ease;
}

.lw-faq__q button[aria-expanded="true"] svg {
    transform: rotate(180deg);
}

.lw-faq__a {
    padding: 0 18px 16px;
    font-size: 15px;
    line-height: 1.9;
    color: var(--lw-ink-soft);
}

/* Course content (chapters / sessions / files / lessons / quizzes) - core accordion markup */
.lw-course-page #content .accordion-row {
    margin-top: 12px !important;
    padding: 0 !important;
    overflow: hidden;
    background: var(--lw-card);
    border: 1px solid var(--lw-border) !important;
    border-radius: 14px !important;
}

.lw-course-page #chaptersAccordion > .accordion-row > [role="tab"] {
    padding: 16px 20px;
    background: var(--lw-deep);
    color: #fff;
}

.lw-course-page #chaptersAccordion > .accordion-row > [role="tab"] .text-secondary,
.lw-course-page #chaptersAccordion > .accordion-row > [role="tab"] .text-gray,
.lw-course-page #chaptersAccordion > .accordion-row > [role="tab"] svg {
    color: #fff !important;
}

.lw-course-page #chaptersAccordion > .accordion-row > [role="tab"] .chapter-icon {
    background: var(--lw-orange);
    color: var(--lw-ink);
}

.lw-course-page #chaptersAccordion > .accordion-row > [role="tab"] .chapter-icon svg {
    color: var(--lw-ink) !important;
}

.lw-course-page #content .accordion-row .accordion-row {
    margin: 0 !important;
    border: 0 !important;
    border-top: 1px solid var(--lw-border) !important;
    border-radius: 0 !important;
}

.lw-course-page #content .accordion-row .accordion-row > [role="tab"],
.lw-course-page #content .accordion-content-wrapper > .accordion-row > [role="tab"] {
    padding: 14px 20px;
}

.lw-course-page #content .panel-collapse {
    padding: 4px 20px 16px;
    color: var(--lw-ink-soft);
}

.lw-course-page #content .chapter-content-icon,
.lw-course-page #content .chapter-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--lw-pale-blue);
    color: var(--lw-text-blue);
}

.lw-course-page #content .file-title,
.lw-course-page #content .text-secondary {
    color: var(--lw-ink) !important;
}

.lw-course-page #content .btn-primary,
.lw-course-page #content .btn-sm {
    border-radius: 999px;
}

.lw-course-page #content .btn-primary {
    background: #fff;
    border: 1px solid var(--ms-blue, #138CCD);
    color: var(--lw-text-blue);
}

.lw-course-page #content .btn-primary:hover {
    background: var(--lw-deep);
    border-color: var(--lw-deep);
    color: #fff;
}

.lw-course-page #content .section-title {
    font-family: var(--lw-font-display);
    color: var(--lw-deep);
}

/* Reviews + comments (core markup inside lw panels) */
.lw-review-form .reviews-stars {
    margin-top: 10px;
}

.lw-review-form .reviews-stars .font-14 {
    color: var(--lw-ink-soft) !important;
}

.lw-review-list {
    display: flex;
    flex-direction: column;
}

.lw-inner .lw-reviews .comments-card,
.lw-inner .lw-comments .comments-card {
    margin-top: 18px !important;
    background: var(--lw-paper);
    border: 1px solid var(--lw-border) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}

.lw-inner .lw-comments .section-title,
.lw-inner .lw-reviews .section-title {
    font-family: var(--ms-font-body);
    font-size: 18px;
    font-weight: 700;
    color: var(--lw-deep);
}

.lw-inner .lw-comments .section-title::after,
.lw-inner .lw-reviews .section-title::after {
    display: none;
}

.lw-inner .lw-comments textarea,
.lw-inner .lw-reviews textarea {
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
    background: #fff;
}

.lw-inner .lw-comments .btn-primary,
.lw-inner .lw-reviews .btn-primary {
    height: 46px;
    padding: 0 26px;
    border: 0;
    border-radius: 999px;
    background: var(--lw-deep);
    color: #fff;
    font-weight: 700;
}

.lw-inner .lw-comments .avatar,
.lw-inner .lw-reviews .avatar {
    border: 2px solid var(--lw-orange);
}

/* Sidebar buy card */
.lw-item-sidebar {
    position: sticky;
    top: 130px;
}

.lw-buy-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 24px;
    background: var(--lw-card);
    border: 2px solid var(--lw-orange);
    border-radius: 16px;
    box-shadow: 0 30px 50px -38px rgba(14, 42, 63, .7);
}

.lw-buy-card form {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
}

.lw-buy-card__price {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lw-buy-card__amount {
    font-family: var(--lw-font-display);
    font-size: 42px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--lw-price);
}

.lw-buy-card__old {
    font-size: 16px;
    color: var(--lw-muted);
    text-decoration: line-through;
}

.lw-buy-card__tax {
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-buy-card__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lw-buy-card__actions .lw-btn {
    height: auto;
    min-height: 50px;
    padding-block: 10px;
    white-space: normal;
    text-align: center;
    line-height: 1.3;
}

.lw-inner .lw-btn--disabled,
.lw-inner .lw-btn.disabled {
    background: #E6E1D7;
    border-color: #E6E1D7;
    color: var(--lw-ink-soft);
    opacity: 1;
    cursor: not-allowed;
}

.lw-ticket {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    padding: 12px 14px;
    border: 1px solid var(--lw-border);
    border-radius: 12px;
    cursor: pointer;
}

.lw-ticket input {
    margin-top: 5px;
    accent-color: var(--lw-deep);
}

.lw-ticket__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-ticket__text strong {
    font-size: 15px;
    color: var(--lw-ink);
}

.lw-buy-card__guarantee {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0;
    font-size: 14px;
    color: var(--lw-ink-soft);
}

.lw-buy-card__guarantee svg {
    color: var(--lw-text-blue);
}

.lw-buy-card__includes {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-top: 16px;
    border-top: 1px dashed var(--lw-dash);
}

.lw-buy-card__includes strong {
    font-size: 15px;
    color: var(--lw-ink);
}

.lw-buy-card__includes ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lw-buy-card__includes li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--lw-ink-soft);
}

.lw-buy-card__includes svg {
    color: var(--lw-text-blue);
}

.lw-quick-actions {
    display: grid;
    grid-auto-columns: minmax(0, 1fr);
    grid-auto-flow: column;
    gap: 8px;
    padding-top: 16px;
    border-top: 1px dashed var(--lw-dash);
}

.lw-inner .lw-quick-actions__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 6px;
    background: var(--lw-paper);
    border-radius: 12px;
    color: var(--lw-deep);
    font-size: 13px;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
}

.lw-inner .lw-quick-actions__item:hover {
    background: var(--lw-pale-blue);
    color: var(--lw-deep);
}

.lw-quick-actions .favorite-active {
    fill: #E0532F;
    color: #E0532F;
}

.lw-link-btn {
    display: inline-flex;
    align-items: center;
    align-self: center;
    gap: 6px;
    padding: 4px;
    background: transparent;
    border: 0;
    color: var(--lw-muted);
    font-family: inherit;
    font-size: 13px;
    text-decoration: underline;
    cursor: pointer;
}

.lw-link-btn:hover {
    color: var(--lw-deep);
}

/* Specs list */
.lw-specs {
    display: flex;
    flex-direction: column;
    margin: 0;
}

.lw-specs > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px dashed var(--lw-dash);
    font-size: 14px;
}

.lw-specs > div:last-child {
    border-bottom: 0;
}

.lw-specs dt {
    font-weight: 400;
    color: var(--lw-muted);
}

.lw-specs dd {
    margin: 0;
    font-weight: 700;
    color: var(--lw-ink);
    text-align: end;
}

/* Sidebar instructor card */
.lw-instructor--sidebar:hover {
    transform: none;
}

.lw-instructor__actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin-top: 6px;
}

/* Gift / offline cards */
.lw-inner .lw-gift-card {
    flex-direction: row;
    align-items: center;
    color: var(--lw-ink);
    text-decoration: none;
}

.lw-gift-card > span:last-child {
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-gift-card strong {
    font-size: 15px;
    color: var(--lw-ink);
}

.lw-offline-card {
    flex-direction: row;
    align-items: flex-start;
}

.lw-inner .lw-offline-card h3 {
    margin: 0 0 6px;
    font-size: 16px;
    color: var(--lw-deep);
}

.lw-offline-card p {
    margin: 0;
    font-size: 14px;
    color: var(--lw-muted);
}

/* Tags */
.lw-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.lw-inner .lw-tag {
    padding: 4px 14px;
    background: var(--lw-pale-blue);
    border-radius: 999px;
    color: var(--lw-text-blue);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
}

.lw-inner .lw-tag:hover {
    background: var(--lw-deep);
    color: #fff;
}

@media (max-width: 991.98px) {
    .lw-item-sidebar {
        position: static;
    }

    .lw-inner .lw-banner__title--item {
        font-size: 40px;
    }
}

@media (max-width: 575.98px) {
    .lw-inner .lw-banner__title--item {
        font-size: 32px;
    }

    .lw-tabs {
        border-radius: 16px;
    }

    .lw-inner .lw-tabs__link {
        height: 42px;
        padding: 0 8px;
        font-size: 14px;
    }

    .lw-buy-card__amount {
        font-size: 34px;
    }
}

/* ==========================================================================
   People lists (instructors / organizations) + shared bands
   ========================================================================== */
.lw-center {
    display: flex;
    justify-content: center;
    padding-top: 28px;
}

.lw-section--list {
    margin-top: 28px;
    margin-bottom: 0;
}

.lw-band {
    padding-block: 72px;
}

.lw-band--blue {
    background: var(--lw-pale-blue-2);
    border-block: 1px solid #DCEAF4;
}

.lw-band .lw-swiper .swiper-slide {
    height: auto;
}

.lw-band .lw-swiper .lw-card {
    height: 100%;
}

/* Category chips (checkboxes) */
.lw-chips-panel > summary {
    margin-bottom: 0;
    cursor: pointer;
    list-style: none;
}

.lw-chips-panel > summary::-webkit-details-marker {
    display: none;
}

.lw-chips-panel > summary::after {
    content: "+";
    margin-inline-start: auto;
    font-size: 22px;
    line-height: 1;
    color: var(--lw-deep);
}

.lw-chips-panel[open] > summary {
    margin-bottom: 14px;
}

.lw-chips-panel[open] > summary::after {
    content: "\2212";
}

.lw-chips-panel:not([open]) > summary {
    padding-bottom: 0;
    border-bottom: 0;
}

.lw-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.lw-chip {
    position: relative;
    margin: 0;
    cursor: pointer;
}

.lw-chip input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

.lw-chip span {
    display: inline-flex;
    align-items: center;
    height: 38px;
    padding: 0 16px;
    background: #fff;
    border: 1px solid var(--lw-input-border);
    border-radius: 999px;
    font-size: 15px;
    color: var(--lw-ink);
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.lw-chip:hover span {
    border-color: var(--lw-deep);
}

.lw-chip input:checked + span {
    background: var(--lw-deep);
    border-color: var(--lw-deep);
    color: #fff;
}

.lw-chip input:focus-visible + span {
    outline: 2px solid var(--lw-orange);
    outline-offset: 2px;
}

#instructorsList.lw-grid > .lw-card {
    height: 100%;
}

@media (max-width: 767.98px) {
    .lw-band {
        padding-block: 48px;
    }
}

/* ==========================================================================
   Instructor / organization profile
   ========================================================================== */
.lw-profile-hero {
    position: relative;
    background-color: var(--lw-deep);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cg fill='none' stroke-width='1'%3E%3Crect x='28' y='28' width='40' height='40' stroke='rgba(255,255,255,0.08)'/%3E%3Crect x='28' y='28' width='40' height='40' transform='rotate(45 48 48)' stroke='rgba(247,154,34,0.16)'/%3E%3Ccircle cx='48' cy='48' r='10' stroke='rgba(255,255,255,0.08)'/%3E%3Cpath d='M0 48h14M82 48h14M48 0v14M48 82v14' stroke='rgba(255,255,255,0.08)'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 96px 96px;
    color: #DCEAF4;
    border-bottom: 2px solid var(--lw-orange);
}

.lw-profile-hero__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding-block: 40px 36px;
}

.lw-profile-hero__main {
    display: flex;
    align-items: center;
    gap: 28px;
    min-width: 0;
}

.lw-arch-avatar {
    position: relative;
    flex-shrink: 0;
    width: 150px;
    height: 180px;
    padding: 6px;
    border: 2px solid var(--lw-orange);
    border-radius: 999px 999px 10px 10px;
    background: var(--lw-deep);
}

.lw-arch-avatar img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border: 1px solid var(--ms-blue, #138CCD);
    border-radius: 999px 999px 6px 6px;
    background: #EAF4FB;
}

.lw-arch-avatar .lw-ring-avatar__state {
    bottom: 8px;
    inset-inline-end: 8px;
    border-color: var(--lw-deep);
}

.lw-profile-hero__text {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.lw-inner .lw-breadcrumb--dark a,
.lw-breadcrumb--dark li + li::before {
    color: #B9D3E6;
}

.lw-breadcrumb--dark [aria-current="page"] {
    color: #FBC27A;
}

.lw-inner .lw-profile-hero__name {
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 52px;
    line-height: 1.25;
    color: #fff;
}

.lw-profile-hero__headline {
    margin: 0;
    font-size: 16px;
    color: #DCEAF4;
}

.lw-profile-hero__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    font-size: 15px;
}

.lw-profile-hero__meta .lw-stars strong {
    color: #FBC27A;
}

.lw-profile-hero__meta .lw-stars--none {
    color: #DCEAF4;
}

.lw-profile-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.lw-profile-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 6px;
}

/* Follow button: profile.js swaps btn-primary <-> btn-danger */
.lw-inner .lw-follow-btn.btn-primary {
    background: var(--lw-orange);
    border-color: var(--lw-orange);
    color: var(--lw-ink);
}

.lw-inner .lw-follow-btn.btn-primary:hover {
    background: #E0820C;
    border-color: #E0820C;
}

.lw-inner .lw-follow-btn.btn-danger {
    background: transparent;
    border-color: #FBC27A;
    color: #FBC27A;
}

.lw-inner .lw-btn--ghost-light {
    background: transparent;
    border-color: rgba(255, 255, 255, .55);
    color: #fff;
}

.lw-inner .lw-btn--ghost-light:hover {
    background: #fff;
    color: var(--lw-deep);
}

.lw-profile-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    flex-shrink: 0;
    padding: 20px 26px;
    background: var(--lw-card);
    border-radius: 18px;
    color: var(--lw-ink);
    box-shadow: 0 24px 40px -28px rgba(0, 0, 0, .6);
}

.lw-profile-stats .lw-medal__label {
    font-size: 14px;
}

.lw-tabs--wrap {
    flex-wrap: wrap;
    border-radius: 22px;
}

.lw-tabs--wrap .nav-item {
    flex: 1 1 auto;
}

.lw-profile-tabs .tab-pane > .lw-stack,
.lw-profile-tabs .tab-pane > .lw-grid {
    margin-top: 0;
}

.lw-two-col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}

.lw-diamond-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lw-diamond-list li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 15px;
    line-height: 1.7;
    color: var(--lw-ink-soft);
}

.lw-diamond-list li::before {
    content: "";
    flex-shrink: 0;
    width: 8px;
    height: 8px;
    margin-top: 9px;
    background: var(--lw-orange);
    transform: rotate(45deg);
}

.lw-badge-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.lw-badge-tile {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    background: var(--lw-paper);
    border: 1px solid var(--lw-border);
    border-radius: 12px;
}

.lw-badge-tile img {
    flex-shrink: 0;
    border-radius: 50%;
}

.lw-badge-tile > span {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-badge-tile strong {
    font-size: 15px;
    color: var(--lw-ink);
}

/* Booking tab (core calendar markup) */
.lw-booking .btn-primary {
    border: 0;
    border-radius: 999px;
    background: var(--lw-orange);
    color: var(--lw-ink);
    font-weight: 700;
}

.lw-booking .btn-primary:hover {
    background: #E0820C;
    color: var(--lw-ink);
}

.lw-booking .section-title {
    font-family: var(--ms-font-body);
    color: var(--lw-deep);
}

/* Reservation calendar: navy header (no white text on logo blue), paper days, orange selection with dark text */
.lw-inner .inline-reservation-calender .datepicker-plot-area {
    background-color: var(--lw-deep);
    border-color: var(--lw-border);
    border-radius: 16px;
    font-family: var(--ms-font-body);
    overflow: hidden;
}

.lw-inner .inline-reservation-calender .datepicker-plot-area .datepicker-day-view {
    background-color: var(--lw-card);
}

.lw-inner .inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td span {
    color: var(--lw-ink-soft) !important;
}

.lw-inner .inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td span:hover {
    background-color: var(--lw-pale-blue);
    color: var(--lw-deep) !important;
}

.lw-inner .inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td.selected span {
    background-color: var(--lw-orange);
    color: var(--lw-ink) !important;
}

.lw-inner .inline-reservation-calender .datepicker-plot-area .datepicker-day-view .table-days td.disabled span {
    background-color: #F1EBDF;
    color: #6B7682 !important;
}

@media (max-width: 1199.98px) {
    .lw-profile-hero__inner {
        flex-direction: column;
        align-items: stretch;
    }

    .lw-profile-stats {
        align-self: stretch;
    }
}

@media (max-width: 767.98px) {
    .lw-profile-hero__main {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .lw-profile-hero__meta,
    .lw-profile-hero__badges,
    .lw-profile-hero__actions,
    .lw-breadcrumb--dark ol {
        justify-content: center;
    }

    .lw-inner .lw-profile-hero__name {
        font-size: 38px;
    }

    .lw-profile-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lw-two-col,
    .lw-badge-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ==========================================================================
   Product detail
   ========================================================================== */
.lw-banner--slim .lw-banner__inner {
    padding-block: 18px 16px;
}

.lw-product-top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 40px;
    align-items: start;
    margin-bottom: 40px;
}

/* Gallery */
.lw-gallery {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.lw-gallery__main {
    position: relative;
}

/* neutralise the core fixed heights on the gallery wrappers */
.lw-inner .lw-gallery .product-show-image-card {
    height: auto;
    border-radius: 0;
}

.lw-inner .lw-gallery .product-show-thumbnail-card .thumbnail-card {
    width: auto;
    height: 88px;
}

/* instructor coupon cards (core partial) */
.lw-inner .lw-page .instructor-discount-card {
    margin-top: 0 !important;
    margin-bottom: 22px;
    background: var(--lw-sand);
    border-radius: 14px;
}

.lw-arch--gallery {
    height: auto;
    aspect-ratio: 4 / 5;
    padding: 10px;
    border-width: 2px;
    background: var(--lw-card);
}

.lw-arch--gallery .lw-arch__clip {
    background: #fff;
}

.lw-arch--gallery .lw-arch__img {
    object-fit: contain;
}

.lw-gallery__thumbs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.lw-gallery__thumb {
    position: relative;
    height: 88px;
    padding: 4px;
    overflow: hidden;
    background: var(--lw-card);
    border: 1.5px solid var(--lw-border);
    border-radius: 12px;
    cursor: pointer;
}

.lw-gallery__thumb:hover,
.lw-gallery__thumb:focus-visible {
    border-color: var(--lw-orange);
}

.lw-gallery__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
}

.lw-gallery__play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--lw-deep);
    color: #fff;
    transform: translate(-50%, -50%);
}

/* Info column */
.lw-product-info form {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0;
}

.lw-product-info .lw-badge {
    align-self: flex-start;
}

.lw-inner .lw-product-info__title {
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 48px;
    line-height: 1.3;
    color: var(--lw-deep);
    text-align: start;
}

.lw-price-box {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 22px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 14px;
}

.lw-price-box > div {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lw-price-box__label {
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-price-box__note {
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-price-box__note.is-free {
    color: var(--lw-price);
    font-weight: 700;
}

.lw-price-box__stock {
    align-items: flex-end;
    text-align: end;
}

.lw-price-box__stock strong {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 15px;
}

.lw-price-box__stock .is-ok {
    color: #1E6B3A;
}

.lw-price-box__stock .is-low {
    color: var(--lw-price);
}

.lw-price-box__stock .is-out {
    color: #B42318;
}

/* Selectable specifications (radio pills) */
.lw-product-info .product-show-selectable-specification .font-14 {
    color: var(--lw-ink) !important;
}

.lw-product-info .selectable-specification-item label {
    border-radius: 999px;
}

/* Quantity + actions (classes used by product_show.min.js are kept) */
.lw-product-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.lw-qty {
    display: inline-flex;
    align-items: center;
    height: 50px;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--lw-input-border);
    border-radius: 999px;
}

.lw-qty button {
    width: 44px;
    height: 100%;
    background: transparent;
    border: 0;
    color: var(--lw-deep);
    cursor: pointer;
}

.lw-qty button:hover {
    background: var(--lw-paper);
}

.lw-qty input {
    width: 52px;
    height: 100%;
    border: 0;
    background: transparent;
    font-weight: 700;
    text-align: center;
    color: var(--lw-ink);
    -moz-appearance: textfield;
}

.lw-qty input::-webkit-outer-spin-button,
.lw-qty input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.lw-product-actions__buttons {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    width: 100%;
}

.lw-product-actions__buttons .lw-btn {
    height: auto;
    min-height: 52px;
    padding-block: 10px;
    white-space: normal;
    text-align: center;
}

.lw-product-notes {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lw-product-note {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--lw-pale-blue-2);
    border-radius: 12px;
}

.lw-product-note .icon-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: var(--lw-text-blue);
}

.lw-product-note .ml-5 {
    margin: 0 !important;
}

.lw-product-note .text-dark {
    color: var(--lw-ink) !important;
}

.lw-product-note .text-gray {
    color: var(--lw-muted) !important;
}

.lw-product-note--action {
    background: transparent;
    border: 1px dashed var(--lw-dash);
    cursor: pointer;
}

.lw-product-note--action:hover {
    background: var(--lw-card);
    border-color: var(--lw-orange);
}

/* Tabs content (core partials) */
.lw-product-tabs-wrap {
    margin-top: 8px;
}

.lw-product-tabs > .tab-pane > div {
    margin-top: 0 !important;
    padding: 24px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 14px;
}

.lw-product-tabs .course-description {
    font-size: 16px;
    line-height: 2;
    color: var(--lw-ink-soft);
}

.lw-product-tabs .section-title {
    font-family: var(--lw-font-display);
    color: var(--lw-deep);
}

.lw-product-tabs .product-show-specification-item {
    gap: 16px;
}

.lw-product-tabs .specification-item-name {
    flex: 0 0 200px;
    color: var(--lw-muted);
}

.lw-product-tabs .specification-item-value {
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-product-tabs .course-reviews-box {
    padding: 20px;
    background: var(--lw-paper);
    border-radius: 14px;
}

.lw-product-tabs .reviews-rate {
    font-family: var(--lw-font-num);
    color: var(--lw-deep) !important;
}

.lw-product-tabs .course-progress .progress-bar {
    background: var(--lw-orange);
}

.lw-product-tabs .comments-card {
    background: var(--lw-paper);
    border: 1px solid var(--lw-border) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}

.lw-product-tabs .btn-primary {
    border: 0;
    border-radius: 999px;
    background: var(--lw-deep);
    color: #fff;
    font-weight: 700;
}

.lw-product-tabs textarea {
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
}

@media (max-width: 991.98px) {
    .lw-product-top {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .lw-arch--gallery {
        aspect-ratio: 1 / 1;
    }
}

@media (max-width: 575.98px) {
    .lw-inner .lw-product-info__title {
        font-size: 34px;
    }

    .lw-product-actions__buttons {
        grid-template-columns: minmax(0, 1fr);
    }

    .lw-price-box {
        flex-direction: column;
        align-items: flex-start;
    }

    .lw-price-box__stock {
        align-items: flex-start;
        text-align: start;
    }

    .lw-product-tabs .specification-item-name {
        flex-basis: 110px;
    }
}

/* ==========================================================================
   Auth pages (login / register / forgot / reset / verification) + shared forms
   ========================================================================== */
.lw-auth-bg {
    flex: 1 0 auto;
}

.lw-inner .lw-auth.login-container {
    margin: 0 auto;
    border: 0;
    border-radius: 0;
}

.lw-inner .lw-auth .login-card {
    padding: 36px 40px;
}

.lw-auth {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px;
    align-items: stretch;
    max-width: 1200px;
    margin-inline: auto;
}

.lw-auth-card {
    align-self: start;
    padding: 36px 40px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 18px;
    box-shadow: 0 30px 50px -40px rgba(14, 42, 63, .6);
}

.lw-inner .lw-auth-card__title {
    margin: 0 0 24px;
    font-family: var(--lw-font-display);
    font-size: 40px;
    line-height: 1.35;
    color: var(--lw-deep);
}

.lw-auth-card form {
    margin-top: 0 !important;
}

/* Shared form styling for core fields inside lightway cards */
.lw-auth-card .input-label,
.lw-form .input-label {
    margin-bottom: 6px;
    font-size: 15px;
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-auth-card .form-control,
.lw-form .form-control {
    height: 50px;
    padding: 0 16px;
    background: #fff;
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
    font-family: inherit;
    font-size: 15px;
    color: var(--lw-ink);
    box-shadow: none;
}

.lw-auth-card textarea.form-control,
.lw-form textarea.form-control {
    height: auto;
    min-height: 140px;
    padding-block: 12px;
}

.lw-auth-card .form-control:focus,
.lw-form .form-control:focus {
    border-color: var(--ms-blue, #138CCD);
    box-shadow: 0 0 0 3px rgba(19, 140, 205, .18);
}

.lw-auth-card .form-control.is-invalid,
.lw-form .form-control.is-invalid {
    border-color: #C0362C;
}

.lw-auth-card .invalid-feedback,
.lw-form .invalid-feedback {
    color: #B42318;
}

.lw-auth-card .btn-primary,
.lw-form .btn-primary {
    height: 52px;
    border: 0;
    border-radius: 999px;
    background: var(--lw-orange);
    color: var(--lw-ink);
    font-size: 17px;
    font-weight: 700;
}

.lw-auth-card .btn-primary:hover,
.lw-form .btn-primary:hover {
    background: #E0820C;
    color: var(--lw-ink);
}

.lw-auth-card a:not(.btn):not(.social-login),
.lw-form a:not(.btn) {
    color: var(--lw-text-blue);
    font-weight: 600;
}

.lw-auth-card .text-secondary {
    color: var(--lw-ink-soft) !important;
}

/* Email / phone and account-type switch (core radios) */
.lw-auth-card .wizard-custom-radio {
    gap: 6px;
    padding: 5px;
    background: var(--lw-paper);
    border: 1px solid var(--lw-border);
    border-radius: 999px;
}

.lw-auth-card .wizard-custom-radio-item {
    margin: 0 !important;
}

.lw-auth-card .wizard-custom-radio-item label {
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px 14px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    color: var(--lw-ink-soft) !important;
    font-size: 15px !important;
    font-weight: 700;
    text-align: center;
}

.lw-auth-card .wizard-custom-radio-item input:checked + label {
    background: var(--lw-deep) !important;
    color: #fff !important;
}

.lw-auth-card .social-login {
    border: 1px solid var(--lw-input-border);
    border-radius: 999px;
    background: #fff;
    color: var(--lw-ink);
    font-weight: 600;
}

.lw-auth-card .social-login:hover {
    border-color: var(--lw-deep);
}

.lw-auth-card .badge-circle-gray300 {
    background: var(--lw-paper);
    color: var(--lw-muted) !important;
}

.lw-auth-card .custom-control-label {
    color: var(--lw-ink-soft);
}

.lw-auth-card .custom-control-input:checked ~ .custom-control-label::before {
    background-color: var(--lw-deep);
    border-color: var(--lw-deep);
}

.lw-auth-card .select2-container--default .select2-selection--single {
    height: 50px;
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
}

.lw-auth-card .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 48px;
}

.lw-auth-card .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 48px;
}

/* Navy arched panel */
.ms-lattice-dark {
    background-color: var(--lw-deep);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cg fill='none' stroke-width='1'%3E%3Crect x='28' y='28' width='40' height='40' stroke='rgba(255,255,255,0.08)'/%3E%3Crect x='28' y='28' width='40' height='40' transform='rotate(45 48 48)' stroke='rgba(247,154,34,0.16)'/%3E%3Ccircle cx='48' cy='48' r='10' stroke='rgba(255,255,255,0.08)'/%3E%3Cpath d='M0 48h14M82 48h14M48 0v14M48 82v14' stroke='rgba(255,255,255,0.08)'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 96px 96px;
}

.lw-auth-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    min-height: 520px;
    padding: 56px 40px 44px;
    border-radius: 999px 999px 22px 22px;
    color: #DCEAF4;
    text-align: center;
}

.lw-auth-panel__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 150px;
    height: 180px;
    margin-bottom: 8px;
    padding: 16px;
    background: #fff;
    border: 2px solid var(--lw-orange);
    border-radius: 999px 999px 14px 14px;
}

.lw-auth-panel__logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.lw-auth-panel__verse {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-family: 'Amiri', 'Noto Naskh Arabic', serif;
    font-size: 30px;
    line-height: 1.6;
    color: #FBC27A;
}

.lw-auth-panel__verse svg {
    flex-shrink: 0;
    color: var(--lw-orange);
}

.lw-auth-panel__translation {
    margin: 0;
    font-size: 15px;
    font-style: italic;
    color: #DCEAF4;
}

.lw-auth-panel__ref {
    font-size: 13px;
    color: #B9D3E6;
}

.lw-inner .lw-auth-panel__welcome {
    margin: 10px 0 0;
    font-family: var(--lw-font-display);
    font-size: 40px;
    color: #fff;
}

.lw-auth-panel__hint {
    max-width: 360px;
    margin: 0;
    font-size: 16px;
    line-height: 1.9;
    color: #DCEAF4;
}

@media (max-width: 991.98px) {
    .lw-auth {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
    }

    .lw-auth-panel {
        min-height: 0;
        padding: 48px 28px 32px;
        order: -1;
    }

    .lw-auth-panel__logo {
        width: 110px;
        height: 132px;
    }
}

@media (max-width: 575.98px) {
    .lw-auth-card,
    .lw-inner .lw-auth .login-card {
        padding: 26px 20px;
    }

    .lw-inner .lw-auth-card__title,
    .lw-inner .lw-auth-panel__welcome {
        font-size: 32px;
    }

    .lw-auth-panel__verse {
        font-size: 24px;
    }
}

/* ==========================================================================
   Contact / certificate validation / generic form card
   ========================================================================== */
.lw-map {
    overflow: hidden;
    border: 2px solid var(--lw-orange);
    border-radius: 18px;
}

.lw-map .contact-map {
    height: 320px;
    margin: 0;
}

.lw-contact-cards {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.lw-contact-card {
    align-items: center;
    gap: 8px;
    padding: 36px 24px 26px;
    border-radius: 140px 140px 14px 14px;
    text-align: center;
}

.lw-contact-card:hover {
    transform: none;
}

.lw-contact-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 6px;
    background: var(--lw-sand);
    color: var(--lw-price);
    clip-path: polygon(50% 0, 64% 14%, 85% 15%, 86% 36%, 100% 50%, 86% 64%, 85% 85%, 64% 86%, 50% 100%, 36% 86%, 15% 85%, 14% 64%, 0 50%, 14% 36%, 15% 15%, 36% 14%);
}

.lw-inner .lw-contact-card__title {
    margin: 0;
    font-family: var(--ms-font-body);
    font-size: 19px;
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-contact-card p {
    margin: 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--lw-ink-soft);
    overflow-wrap: anywhere;
}

.lw-form-card {
    padding: 32px 36px;
    background: var(--lw-card);
    border: 2px solid var(--lw-orange);
    border-radius: 18px;
}

.lw-inner .lw-form-card__title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 22px;
    font-family: var(--lw-font-display);
    font-size: 36px;
    line-height: 1.35;
    color: var(--lw-deep);
}

.lw-form-card__title svg {
    flex-shrink: 0;
    color: var(--lw-orange);
}

.lw-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
}

.lw-form-grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.lw-form-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.lw-form-foot__captcha {
    flex: 1 1 380px;
}

.lw-form-foot__captcha .form-group {
    margin-bottom: 0;
}

.lw-form .captcha-image,
.lw-captcha .captcha-image {
    height: 50px;
    border: 1px dashed var(--ms-blue, #138CCD);
    border-radius: 12px;
    background: #fff;
}

.lw-form #refreshCaptcha {
    color: var(--lw-deep);
}

.lw-captcha {
    display: flex;
    align-items: center;
    gap: 10px;
}

.lw-captcha__input {
    flex: 1 1 auto;
    min-width: 0;
}

.lw-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 20px;
    padding: 14px 18px;
    border-radius: 12px;
    font-weight: 600;
}

.lw-alert--success {
    background: #E6F4EA;
    color: #1E6B3A;
}

/* Certificate validation */
.lw-cert .lw-cert__card {
    border: 2px solid var(--ms-blue, #138CCD);
}

.lw-cert__card form {
    display: flex;
    flex-direction: column;
}

.lw-cert-preview {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 56px 32px 28px;
    background: var(--lw-card);
    border: 1.5px solid var(--lw-orange);
    border-radius: 999px 999px 22px 22px;
    text-align: center;
}

.lw-cert-preview__tag {
    position: absolute;
    top: -12px;
    left: 50%;
    padding: 2px 14px;
    background: var(--lw-paper);
    border: 1px solid var(--lw-dash);
    border-radius: 999px;
    font-size: 13px;
    color: var(--lw-muted);
    transform: translateX(-50%);
    white-space: nowrap;
}

.lw-inner .lw-cert-preview__title {
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 32px;
    color: #1E6B3A;
}

.lw-cert-preview__hint {
    margin: 0;
    font-size: 15px;
    color: var(--lw-muted);
}

.lw-cert-preview__rows {
    width: 100%;
    max-width: 360px;
}

@media (max-width: 991.98px) {
    .lw-contact-cards,
    .lw-form-grid--3 {
        grid-template-columns: minmax(0, 1fr);
    }

    .lw-contact-card {
        border-radius: 90px 90px 14px 14px;
    }
}

@media (max-width: 575.98px) {
    .lw-form-card {
        padding: 24px 18px;
    }

    .lw-inner .lw-form-card__title {
        font-size: 28px;
    }

    .lw-form-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .lw-form-foot .lw-btn {
        width: 100%;
    }
}

/* ==========================================================================
   Blog sidebar, article, admin content pages
   ========================================================================== */
.lw-mini-posts {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lw-mini-post {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.lw-mini-post__img {
    flex-shrink: 0;
    width: 64px;
    height: 64px;
    overflow: hidden;
    border: 1.5px solid var(--lw-orange);
    border-radius: 999px 999px 6px 6px;
    background: #DCEBF6;
}

.lw-mini-post__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lw-mini-post__text {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.lw-inner .lw-mini-post__text a {
    color: var(--lw-ink);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.5;
    text-decoration: none;
}

.lw-inner .lw-mini-post__text a:hover {
    color: var(--lw-deep);
}

.lw-mini-post__text time {
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-link-btn--strong {
    align-self: auto;
    color: var(--lw-text-blue);
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}

.lw-article {
    gap: 24px;
}

.lw-article .lw-arch--hero {
    aspect-ratio: 16 / 9;
}

.lw-article .lw-prose img {
    border-radius: 12px;
}

/* Admin content pages (about, terms, ...) */
.lw-page-content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 48px;
    align-items: start;
    padding: 36px 40px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 18px;
}

.lw-page-content__aside {
    position: sticky;
    top: 140px;
}

.lw-arch--logo {
    height: auto;
    aspect-ratio: 4 / 5;
    padding: 10px;
    border-width: 2px;
}

.lw-arch--logo .lw-arch__clip {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    background: #fff;
}

.lw-arch--logo .lw-arch__img {
    object-fit: contain;
}

.lw-prose--page {
    font-size: 17px;
}

.lw-prose--page h1,
.lw-prose--page h2,
.lw-prose--page h3 {
    margin: 28px 0 12px;
    font-family: var(--lw-font-display);
    line-height: 1.4;
    color: var(--lw-deep);
}

.lw-prose--page h2 {
    font-size: 34px;
}

.lw-prose--page h3 {
    font-size: 26px;
}

.lw-prose--page b,
.lw-prose--page strong {
    color: var(--lw-ink);
}

.lw-prose--page a {
    color: var(--lw-text-blue);
    font-weight: 600;
}

/* Lists in admin content become the mockup's numbered cards */
.lw-prose--page ul,
.lw-prose--page ol {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 16px 0;
    padding: 0;
    list-style: none;
    counter-reset: lw-item;
}

.lw-prose--page li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: #fff;
    border: 1px solid var(--lw-border);
    border-radius: 12px;
    font-weight: 700;
    line-height: 1.6;
    color: var(--lw-ink);
    counter-increment: lw-item;
}

.lw-prose--page li::before {
    content: counter(lw-item);
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--lw-pale-blue);
    color: var(--lw-text-blue);
    font-family: var(--lw-font-num);
    font-size: 15px;
}

@media (max-width: 991.98px) {
    .lw-page-content {
        grid-template-columns: minmax(0, 1fr);
        padding: 26px 22px;
    }

    .lw-page-content__aside {
        position: static;
        order: -1;
        width: 200px;
        margin-inline: auto;
    }
}

@media (max-width: 575.98px) {
    .lw-prose--page ul,
    .lw-prose--page ol {
        grid-template-columns: minmax(0, 1fr);
    }
}

/* ==========================================================================
   Pages without a mockup (search, tags, bundle, upcoming, cart, forums…)
   Core banners are restyled into the Lightway banner: paper + lattice,
   navy Aref Ruqaa title, ms-band strip and orange line at the bottom.
   ========================================================================== */
.lw-inner .site-top-banner,
.lw-inner .cart-banner,
.lw-inner .course-cover-container {
    position: relative;
    height: auto;
    padding: 48px 0 76px;
    background-color: var(--lw-paper);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cg fill='none' stroke-width='1'%3E%3Crect x='28' y='28' width='40' height='40' stroke='rgba(19,140,205,0.16)'/%3E%3Crect x='28' y='28' width='40' height='40' transform='rotate(45 48 48)' stroke='rgba(247,154,34,0.2)'/%3E%3Ccircle cx='48' cy='48' r='10' stroke='rgba(19,140,205,0.16)'/%3E%3Cpath d='M0 48h14M82 48h14M48 0v14M48 82v14' stroke='rgba(19,140,205,0.16)'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 96px 96px;
    border-bottom: 2px solid var(--lw-orange);
}

/* the band strip */
.lw-inner .site-top-banner::after,
.lw-inner .cart-banner::after,
.lw-inner .course-cover-container::after {
    content: "";
    position: absolute;
    inset: auto 0 0 0;
    height: 24px;
    opacity: 1;
    background-color: var(--lw-deep);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28'%3E%3Crect width='28' height='28' fill='%230A4F78'/%3E%3Cpath d='M14 4 L24 14 L14 24 L4 14Z' fill='%23F79A22'/%3E%3Ccircle cx='14' cy='14' r='3.5' fill='%230A4F78'/%3E%3Ccircle cx='0' cy='14' r='2' fill='%236FC0EA'/%3E%3Ccircle cx='28' cy='14' r='2' fill='%236FC0EA'/%3E%3C/svg%3E");
    background-size: 28px 28px;
    background-repeat: repeat-x;
}

.lw-inner .site-top-banner > img,
.lw-inner .course-cover-container .course-cover-img {
    display: none;
}

.lw-inner .course-cover-container .cover-content::after {
    display: none;
}

.lw-inner .site-top-banner .container,
.lw-inner .cart-banner .container {
    height: auto !important;
}

.lw-inner .site-top-banner h1,
.lw-inner .cart-banner h1,
.lw-inner .site-top-banner .text-white,
.lw-inner .cart-banner .text-white {
    color: var(--lw-deep) !important;
}

.lw-inner .site-top-banner h1,
.lw-inner .cart-banner h1 {
    font-family: var(--lw-font-display);
    font-size: 52px !important;
    line-height: 1.3;
    font-weight: 700;
}

.lw-inner .cart-banner .text-white:not(h1),
.lw-inner .site-top-banner .text-white:not(h1) {
    color: var(--lw-ink-soft) !important;
}

.lw-inner .cart-banner a.text-white {
    color: var(--lw-text-blue) !important;
}

.lw-inner .course-count-badge {
    background: var(--lw-sand) !important;
    color: var(--lw-price) !important;
    border-radius: 999px !important;
    font-weight: 700;
}

.lw-inner .search-top-banner .search-input {
    margin-top: 22px !important;
    padding: 7px !important;
    border: 1.5px solid var(--ms-blue, #138CCD);
    border-radius: 999px !important;
    box-shadow: none !important;
}

.lw-inner .search-top-banner .search-input .form-control {
    height: 44px;
    background: transparent;
}

.lw-inner .search-top-banner .search-input .btn-primary,
.lw-inner .site-top-banner .btn-primary {
    height: 44px;
    padding: 0 26px;
    border: 0;
    background: var(--lw-deep);
    color: #fff;
    font-weight: 700;
}

/* course-like pages that still use the core layout (bundle, upcoming course) */
.lw-inner .course-content-section {
    top: 0;
    margin-bottom: 0;
    padding-top: 40px;
    padding-bottom: 72px;
}

.lw-inner .course-body-on-cover,
.lw-inner .course-body-on-cover .text-white,
.lw-inner .course-body-on-cover a {
    color: var(--lw-ink) !important;
}

.lw-inner .course-body-on-cover .course-title {
    font-family: var(--lw-font-display);
    font-size: 44px;
    color: var(--lw-deep) !important;
}

.lw-inner .course-content-sidebar > .rounded-lg.shadow-sm:first-child {
    overflow: hidden;
    background: var(--lw-card);
    border: 2px solid var(--lw-orange);
    border-radius: 16px !important;
}

.lw-inner .course-content-sidebar .btn-primary,
.lw-inner .course-content-body .btn-primary {
    border: 0;
    border-radius: 999px;
    background: var(--lw-deep);
    color: #fff;
    font-weight: 700;
}

.lw-inner .course-content-body .nav-tabs.bg-secondary {
    background: var(--lw-card) !important;
    border: 1px solid var(--lw-border);
    border-radius: 999px !important;
}

.lw-inner .course-content-body .nav-tabs.bg-secondary a {
    color: var(--lw-ink) !important;
    font-weight: 700;
}

.lw-inner .course-content-body .nav-tabs.bg-secondary a.active {
    padding: 8px 20px;
    border-radius: 999px;
    background: var(--lw-deep) !important;
    color: #fff !important;
}

.lw-inner .course-content-body .nav-tabs.bg-secondary a.active::after {
    display: none;
}

/* Generic core content blocks on inner pages */
.lw-inner .section-title {
    font-family: var(--lw-font-display);
    color: var(--lw-deep);
}

.lw-inner .lw-page .rounded-sm.shadow-lg.border,
.lw-inner .container .rounded-sm.shadow-lg.border {
    border-color: var(--lw-border) !important;
    border-radius: 14px !important;
    background: var(--lw-card);
    box-shadow: none !important;
}

.lw-inner .container .btn-primary:not(.lw-btn) {
    border-radius: 999px;
}

/* Cards dropped into core bootstrap grids (search, tags) */
.lw-inner .row > [class*="col-"] > .lw-card {
    height: calc(100% - 20px);
    margin-top: 20px;
}

@media (max-width: 575.98px) {
    .lw-inner .site-top-banner h1,
    .lw-inner .cart-banner h1 {
        font-size: 36px !important;
    }
}

/* ==========================================================================
   Forums (home, topics, posts, search, create topic) + custom forms
   ========================================================================== */
.lw-forum-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    padding: 24px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 18px;
    color: var(--lw-ink);
}

.lw-topic {
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 20px;
}

.lw-topic__icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    padding: 8px;
    background: var(--lw-pale-blue);
    border: 1.5px solid var(--lw-orange);
    border-radius: 999px 999px 8px 8px;
}

.lw-topic__icon img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.lw-topic__icon--sm {
    width: 44px;
    height: 44px;
    padding: 6px;
}

.lw-topic__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.lw-topic__excerpt {
    margin: 0;
    font-size: 15px;
    color: var(--lw-ink-soft);
}

.lw-topic__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 10px;
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-avatars {
    display: inline-flex;
    align-items: center;
}

.lw-avatars img,
.lw-avatars span {
    width: 28px;
    height: 28px;
    margin-inline-start: -8px;
    border: 2px solid var(--lw-card);
    border-radius: 50%;
    object-fit: cover;
}

.lw-avatars img:first-child {
    margin-inline-start: 0;
}

.lw-avatars span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--lw-paper);
    font-size: 11px;
    color: var(--lw-ink-soft);
}

.lw-forum-rows {
    display: flex;
    flex-direction: column;
}

.lw-forum-row {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, .7fr) minmax(0, 1.2fr);
    gap: 16px;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px dashed var(--lw-dash);
}

.lw-forum-row:last-child {
    border-bottom: 0;
}

.lw-forum-row__main {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.lw-inner .lw-forum-row__title {
    color: var(--lw-ink);
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
}

.lw-inner .lw-forum-row__title:hover {
    color: var(--lw-deep);
}

.lw-forum-row__desc {
    margin: 2px 0 0;
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-forum-row__counts {
    display: flex;
    gap: 16px;
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-forum-row__counts strong {
    display: block;
    font-family: var(--lw-font-num);
    font-size: 20px;
    color: var(--lw-deep);
}

.lw-forum-row__last {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-forum-row__last img {
    width: 38px;
    height: 38px;
    flex-shrink: 0;
    border: 2px solid var(--lw-orange);
    border-radius: 50%;
    object-fit: cover;
}

.lw-forum-row__last div {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.lw-inner .lw-forum-row__last a {
    overflow: hidden;
    color: var(--lw-text-blue);
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
    text-decoration: none;
}

.lw-recommended {
    align-items: center;
    gap: 10px;
    padding: 24px 18px;
    border-radius: 120px 120px 14px 14px;
    text-align: center;
}

.lw-recommended:hover {
    transform: none;
}

.lw-inner .lw-recommended__title {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-recommended__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
    text-align: start;
}

.lw-inner .lw-recommended__list a {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--lw-ink-soft);
    font-size: 14px;
    text-decoration: none;
}

.lw-recommended__list a::before {
    content: "";
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    background: var(--lw-orange);
    transform: rotate(45deg);
}

.lw-inner .lw-recommended__list a:hover {
    color: var(--lw-deep);
}

.lw-cta-band {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px 32px;
    padding: 36px 40px;
    border-radius: 18px;
    color: #DCEAF4;
}

.lw-inner .lw-cta-band__title {
    margin: 0 0 8px;
    font-family: var(--lw-font-display);
    font-size: 34px;
    line-height: 1.35;
    color: #fff;
}

.lw-cta-band__text p {
    margin: 0;
    font-size: 15px;
}

.lw-cta-band__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* Forum subpages (core markup): title band, filter bar, cards */
.lw-inner .topics-title-section {
    margin-top: 32px !important;
    background-color: var(--lw-deep) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cg fill='none' stroke-width='1'%3E%3Crect x='28' y='28' width='40' height='40' stroke='rgba(255,255,255,0.08)'/%3E%3Crect x='28' y='28' width='40' height='40' transform='rotate(45 48 48)' stroke='rgba(247,154,34,0.16)'/%3E%3Ccircle cx='48' cy='48' r='10' stroke='rgba(255,255,255,0.08)'/%3E%3Cpath d='M0 48h14M82 48h14M48 0v14M48 82v14' stroke='rgba(255,255,255,0.08)'/%3E%3C/g%3E%3C/svg%3E") !important;
    background-size: 96px 96px !important;
    border-bottom: 3px solid var(--lw-orange);
    border-radius: 18px !important;
}

.lw-inner .topics-title-section h1 {
    font-family: var(--lw-font-display);
    font-size: 44px !important;
    line-height: 1.35;
}

.lw-inner .topics-title-section .breadcrumb-item,
.lw-inner .topics-title-section .breadcrumb-item a {
    color: #DCEAF4 !important;
}

.lw-inner .topics-title-section .breadcrumb-item.font-weight-bold {
    color: #FBC27A !important;
}

.lw-inner .topics-filters-section,
.lw-inner .topics-lists .topic-card,
.lw-inner .topic-posts-card,
.lw-inner .forum-post-card,
.lw-inner .reply-login-close-card {
    background: var(--lw-card) !important;
    border: 1px solid var(--lw-border) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}

.lw-inner .topics-filters-section .text-primary {
    color: var(--lw-text-blue) !important;
}

.lw-inner .input-search-topic {
    height: 46px;
    border: 1px solid var(--lw-input-border);
    border-radius: 999px;
}

.lw-inner .btn-search-topic,
.lw-inner .btn-create-topic {
    border: 0;
    border-radius: 999px !important;
    background: var(--lw-deep) !important;
    color: #fff !important;
}

.lw-inner .container > section.border.rounded-lg {
    background: var(--lw-card);
    border-color: var(--lw-border) !important;
    border-radius: 16px !important;
}

/* Custom forms (/forms/{url}) */
.lw-custom-form {
    max-width: 920px;
    margin-inline: auto;
}

.lw-custom-form img.img-fluid {
    max-height: 260px;
    border-radius: 16px;
}

.lw-inner .lw-custom-form h3 {
    font-family: var(--lw-font-display);
    font-size: 34px !important;
    color: var(--lw-deep);
    text-align: center;
}

.lw-custom-form .forms-body-welcome-message {
    font-size: 16px !important;
    line-height: 1.9;
    color: var(--lw-ink-soft) !important;
}

.lw-custom-form .btn-danger {
    height: 52px;
    padding: 0 24px;
    border: 1.5px solid #C0362C;
    border-radius: 999px;
    background: transparent;
    color: #B42318;
    font-weight: 700;
}

.lw-custom-form .btn-primary {
    padding: 0 30px;
}

.lw-custom-form .input-group-text {
    border: 0;
    border-radius: 12px;
    background: var(--lw-deep);
}

@media (max-width: 991.98px) {
    .lw-forum-row {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

    .lw-forum-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .lw-cta-band {
        padding: 28px 20px;
    }

    .lw-inner .lw-cta-band__title {
        font-size: 26px;
    }

    .lw-inner .topics-title-section h1 {
        font-size: 32px !important;
    }
}

/* ==========================================================================
   Instructor finder (/instructor-finder) — map hero, chip filters, result cards
   ========================================================================== */
.lw-finder-hero {
    position: relative;
    border-bottom: 2px solid var(--lw-orange);
}

.lw-finder-hero.has-map {
    min-height: 460px;
    background: #DCEBF6;
}

.lw-inner .lw-finder-hero__map {
    position: absolute;
    inset: 0 0 24px 0;
    width: 100%;
    height: auto !important;
    z-index: 0;
}

.lw-finder-hero__inner {
    position: relative;
    z-index: 2;
    display: flex;
    padding-block: 32px 60px;
    pointer-events: none;
}

.lw-finder-hero:not(.has-map) .lw-finder-hero__inner {
    padding-block: 48px 44px;
}

.lw-finder-search {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 470px;
    max-width: 100%;
    padding: 28px 30px;
    background: var(--lw-card);
    border: 1px solid var(--lw-border);
    border-radius: 18px;
    box-shadow: 0 30px 50px -30px rgba(14, 42, 63, .55);
    pointer-events: auto;
}

.lw-finder-hero:not(.has-map) .lw-finder-search {
    width: 100%;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.lw-inner .lw-finder-search__title {
    font-size: 48px;
}

.lw-finder-search__hint {
    margin: 0;
    font-size: 16px;
    line-height: 1.8;
    color: var(--lw-ink-soft);
}

.lw-search--block {
    width: 100%;
}

.lw-finder-hero .lw-banner__band {
    position: absolute;
    inset: auto 0 0 0;
    z-index: 1;
}

/* Leaflet controls + map popup (markup built in instructor-finder.min.js) */
.lw-finder .leaflet-bar a {
    color: var(--lw-deep);
}

.lw-finder .map-instructor-card-popup .leaflet-popup-content-wrapper {
    padding: 0;
    background: var(--lw-card);
    border: 2px solid var(--lw-orange);
    border-radius: 16px;
    box-shadow: 0 24px 40px -24px rgba(14, 42, 63, .6);
}

.lw-finder .map-instructor-card-popup .leaflet-popup-content {
    margin: 0;
    font-family: var(--ms-font-body);
}

.lw-finder .map-instructor-card-popup .leaflet-popup-tip {
    background: var(--lw-orange);
}

.lw-finder .map-instructor-card-avatar {
    border: 2px solid var(--lw-orange);
    box-shadow: 0 0 0 3px var(--lw-card), 0 0 0 4px var(--ms-blue, #138CCD);
}

.lw-finder .map-instructor-card h4 {
    color: var(--lw-ink);
}

.lw-finder .map-instructor-card .text-primary {
    color: var(--lw-price) !important;
    font-family: var(--lw-font-display);
}

.lw-finder .map-instructor-card .btn-primary {
    height: 40px;
    border: 0;
    border-radius: 999px;
    background: var(--lw-deep);
    font-weight: 700;
    line-height: 40px;
    padding: 0;
}

.lw-finder .marker-pin {
    border: 3px solid var(--lw-orange) !important;
    box-shadow: 0 6px 14px -6px rgba(14, 42, 63, .7);
}

/* Sidebar */
.lw-inner .lw-sidebar__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 4px;
    font-family: var(--lw-font-display);
    font-size: 32px;
    color: var(--lw-deep);
}

.lw-sidebar__title svg {
    color: var(--lw-orange);
}

.lw-select--block {
    width: 100%;
}

.lw-select-stack {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lw-chips--days .lw-chip span {
    height: 34px;
    padding: 0 12px;
    font-size: 14px;
}

.lw-chips--days .lw-chip input:checked + span {
    background: var(--lw-pale-blue);
    border-color: var(--ms-blue, #138CCD);
    color: var(--lw-text-blue);
}

.lw-range-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--lw-ink);
}

/* wRunner range sliders */
.lw-range {
    padding: 6px 4px 0;
}

.lw-inner .lw-range .wrunner__path {
    height: 6px;
    background: #EFE5D3;
    border-radius: 6px;
}

.lw-inner .lw-range .wrunner__path-passed {
    background: var(--lw-orange);
}

.lw-inner .lw-range .wrunner__handle {
    width: 22px;
    height: 22px;
    background: #fff;
    border: 3px solid var(--lw-deep);
    box-shadow: none;
}

.lw-inner .lw-range .wrunner__value-note,
.lw-inner .lw-range .wrunner__value-note * {
    background: transparent;
    color: var(--lw-muted);
    font-family: inherit;
    font-size: 13px;
    box-shadow: none;
}

/* Results bar */
.lw-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.lw-results-bar__count {
    font-size: 16px;
    font-weight: 700;
    color: var(--lw-ink);
}

button.lw-view-switch__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    background: #fff;
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
    color: var(--lw-deep);
    cursor: pointer;
}

button.lw-view-switch__btn.is-active {
    background: var(--lw-deep);
    border-color: var(--lw-deep);
    color: #fff;
}

/* Result card (list layout) */
.lw-finder-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.lw-finder-card {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr) 210px;
    gap: 24px;
    align-items: stretch;
    padding: 22px;
    border-radius: 16px;
}

.lw-finder-card__media {
    position: relative;
}

.lw-arch--avatar {
    height: 180px;
    padding: 6px;
    border-width: 2px;
}

.lw-arch--avatar .lw-arch__clip {
    background: #DCEBF6;
}

.lw-finder-card__media .lw-ring-avatar__state {
    bottom: 10px;
    inset-inline-end: 10px;
}

.lw-finder-card__body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.lw-finder-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.lw-inner .lw-finder-card__name {
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 30px;
    line-height: 1.3;
}

.lw-inner .lw-finder-card__name a {
    color: var(--lw-deep);
    text-decoration: none;
}

.lw-finder-card__bio {
    font-size: 15px;
    color: var(--lw-muted);
}

.lw-finder-card__about {
    margin: 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--lw-ink-soft);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lw-finder-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    margin-top: auto;
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-finder-card__meta > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.lw-finder-card__meta svg {
    color: var(--ms-blue, #138CCD);
}

.lw-finder-card__badges img {
    border-radius: 50%;
}

.lw-finder-card__side {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding-inline-start: 22px;
    border-inline-start: 1px dashed var(--lw-dash);
    text-align: center;
}

.lw-finder-card__price {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    margin-bottom: 6px;
}

.lw-finder-card__price .lw-price__real {
    font-size: 34px;
}

.lw-finder-card__na {
    font-size: 14px;
    font-weight: 700;
    color: #B42318;
}

.lw-finder-card:hover .lw-arch__img {
    transform: none;
}

/* Grid layout toggled from the results bar */
.lw-finder-list.is-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.lw-finder-list.is-grid .lw-finder-card {
    grid-template-columns: minmax(0, 1fr);
    text-align: center;
}

.lw-finder-list.is-grid .lw-finder-card__media {
    width: 150px;
    margin-inline: auto;
}

.lw-finder-list.is-grid .lw-finder-card__head,
.lw-finder-list.is-grid .lw-tags,
.lw-finder-list.is-grid .lw-finder-card__meta {
    justify-content: center;
}

.lw-finder-list.is-grid .lw-finder-card__side {
    padding: 14px 0 0;
    border-inline-start: 0;
    border-top: 1px dashed var(--lw-dash);
}

/* Compact 6-column instructor cards (top sellers) */
.lw-grid--6 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}

.lw-grid--6 .lw-instructor {
    padding: 18px 12px 16px;
    border-radius: 120px 120px 14px 14px;
}

.lw-grid--6 .lw-ring-avatar {
    width: 76px;
    height: 76px;
}

.lw-grid--6 .lw-instructor__name {
    font-size: 16px;
}

.lw-grid--6 .lw-instructor__bio {
    font-size: 13px;
}

.lw-grid--6 .lw-instructor__badges {
    display: none;
}

.lw-grid--6 .lw-price__real {
    font-size: 22px;
}

.lw-grid--6 .lw-btn {
    height: 42px;
    padding: 0 12px;
    font-size: 14px;
    white-space: normal;
    line-height: 1.2;
}

@media (max-width: 1199.98px) {
    .lw-finder-card {
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .lw-finder-card__side {
        grid-column: 1 / -1;
        flex-direction: row;
        flex-wrap: wrap;
        padding: 14px 0 0;
        border-inline-start: 0;
        border-top: 1px dashed var(--lw-dash);
    }

    .lw-finder-card__side .lw-btn {
        flex: 1 1 160px;
        width: auto;
    }

    .lw-arch--avatar {
        height: 150px;
    }

    .lw-grid--6 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .lw-finder-hero.has-map {
        min-height: 0;
    }

    .lw-inner .lw-finder-hero__map {
        position: relative;
        inset: auto;
        height: 300px !important;
    }

    .lw-finder-hero__inner {
        margin-top: -60px;
        padding-block: 0 48px;
    }

    .lw-finder-search {
        width: 100%;
    }

    .lw-finder-list.is-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 575.98px) {
    .lw-finder-card {
        grid-template-columns: minmax(0, 1fr);
        text-align: center;
    }

    .lw-finder-card__media {
        width: 130px;
        margin-inline: auto;
    }

    .lw-finder-card__head,
    .lw-finder-card .lw-tags,
    .lw-finder-card__meta {
        justify-content: center;
    }

    .lw-inner .lw-finder-search__title {
        font-size: 36px;
    }

    .lw-grid--6 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ==========================================================================
   One-stop checkout (cart/payment) — recipient per item, gateways, summary
   ========================================================================== */
.lw-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 28px;
    align-items: start;
}

.lw-checkout__main {
    display: flex;
    flex-direction: column;
    gap: 24px;
    min-width: 0;
}

.lw-checkout__aside {
    position: sticky;
    top: 24px;
}

.lw-co-step {
    padding: 26px;
    gap: 18px;
}

.lw-inner .lw-co-step__title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    font-family: var(--lw-font-display);
    font-size: 28px;
    color: var(--lw-deep);
}

.lw-co-step__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--lw-deep);
    color: #fff;
    font-family: var(--lw-font-ui);
    font-size: 17px;
    font-weight: 700;
}

.lw-co-step__hint {
    margin: -8px 0 0;
    font-size: 15px;
    line-height: 1.8;
    color: var(--lw-muted);
}

/* Items */
.lw-co-items {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.lw-co-item {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 18px;
    background: #fff;
    border: 1px solid var(--lw-border);
    border-radius: 16px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.lw-co-item.is-gift {
    border-color: var(--lw-orange);
    box-shadow: 0 18px 30px -26px rgba(168, 91, 6, .8);
}

.lw-co-item__head {
    display: flex;
    align-items: center;
    gap: 16px;
}

.lw-co-item__thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 92px;
    height: 70px;
    overflow: hidden;
    border-radius: 46px 46px 10px 10px;
    background: var(--lw-pale-blue);
    color: var(--lw-deep);
}

.lw-co-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.lw-co-item__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
    flex: 1;
}

.lw-inner .lw-co-item__title {
    margin: 0;
    font-family: var(--lw-font-ui);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
}

.lw-inner .lw-co-item__title a {
    color: var(--lw-ink);
    text-decoration: none;
}

.lw-inner .lw-co-item__title a:hover {
    color: var(--lw-text-blue);
}

.lw-co-item__price {
    font-family: var(--lw-font-num);
    font-size: 20px;
    font-weight: 700;
    color: var(--lw-price);
}

.lw-co-item__badge,
.lw-co-summary__gift {
    display: none;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--lw-sand);
    color: var(--lw-price);
    font-size: 13px;
    font-style: normal;
    font-weight: 700;
    white-space: nowrap;
}

.lw-co-item.is-gift .lw-co-item__badge,
.lw-co-summary__items li.is-gift .lw-co-summary__gift {
    display: inline-flex;
}

.lw-co-item__note {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-size: 14px;
    color: var(--lw-text-blue);
}

/* For me / As a gift segmented choice */
.lw-co-choice {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin: 0;
    padding: 0;
    border: 0;
}

.lw-co-choice__opt {
    position: relative;
    margin: 0;
    cursor: pointer;
}

.lw-co-choice__opt input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.lw-co-choice__opt span {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 48px;
    padding: 0 12px;
    border: 1.5px solid var(--lw-input-border);
    border-radius: 12px;
    background: var(--lw-card);
    font-size: 15px;
    font-weight: 700;
    color: var(--lw-ink-soft);
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

.lw-co-choice__opt:hover span {
    border-color: var(--lw-deep);
}

.lw-co-choice__opt input:checked + span {
    background: var(--lw-deep);
    border-color: var(--lw-deep);
    color: #fff;
}

.lw-co-choice__opt input[value="other"]:checked + span {
    background: var(--lw-orange);
    border-color: var(--lw-orange);
    color: var(--lw-ink);
}

.lw-co-choice__opt input:focus-visible + span {
    outline: 2px solid var(--lw-orange);
    outline-offset: 2px;
}

.lw-co-choice__opt.is-locked {
    cursor: not-allowed;
}

.lw-co-choice__opt input:disabled + span {
    opacity: .5;
    text-decoration: line-through;
}

/* Gift recipient panel */
.lw-co-gift {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 18px;
    background: var(--lw-sand);
    border: 1.5px dashed var(--lw-orange);
    border-radius: 14px;
    animation: lwCoReveal .2s ease;
}

.lw-co-gift[hidden] {
    display: none;
}

@keyframes lwCoReveal {
    from { opacity: 0; transform: translateY(-4px); }
    to { opacity: 1; transform: none; }
}

.lw-co-gift__head {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.lw-co-gift__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--lw-orange);
    color: var(--lw-ink);
}

.lw-co-gift__head strong {
    display: block;
    font-size: 16px;
    color: var(--lw-ink);
}

.lw-co-gift__head p {
    margin: 2px 0 0;
    font-size: 14px;
    line-height: 1.7;
    color: var(--lw-ink-soft);
}

.lw-co-gift__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.lw-co-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.lw-co-field--wide {
    grid-column: 1 / -1;
}

.lw-co-field label {
    margin: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-co-field .lw-input {
    width: 100%;
}

.lw-co-field .lw-input.is-invalid {
    border-color: #B42318;
    box-shadow: 0 0 0 3px rgba(180, 35, 24, .12);
}

.lw-co-field__hint {
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-co-field__error {
    font-size: 13px;
    font-weight: 700;
    color: #B42318;
}

.lw-co-field__error:empty {
    display: none;
}

.lw-co-password {
    display: flex;
    gap: 8px;
}

.lw-co-password .lw-input {
    flex: 1;
    min-width: 0;
}

.lw-co-password__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    padding: 0;
    background: #fff;
    border: 1px solid var(--lw-input-border);
    border-radius: 12px;
    color: var(--lw-deep);
    cursor: pointer;
}

.lw-co-password__btn[aria-pressed="true"] {
    background: var(--lw-pale-blue);
}

.lw-co-password__btn:focus-visible {
    outline: 2px solid var(--lw-orange);
    outline-offset: 2px;
}

.lw-inner .lw-co-password__gen {
    flex-shrink: 0;
    padding: 0 16px;
    font-size: 14px;
}

/* Payment methods */
.lw-co-gateways {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 14px;
}

.lw-co-gateway {
    position: relative;
    margin: 0;
    cursor: pointer;
}

.lw-co-gateway input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.lw-co-gateway__box {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 150px;
    padding: 20px 14px;
    background: #fff;
    border: 1.5px solid var(--lw-border);
    border-radius: 16px;
    text-align: center;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.lw-co-gateway:hover .lw-co-gateway__box {
    border-color: var(--lw-deep);
}

.lw-co-gateway input:checked + .lw-co-gateway__box {
    border-color: var(--lw-deep);
    box-shadow: 0 0 0 3px rgba(10, 79, 120, .15);
}

.lw-co-gateway input:focus-visible + .lw-co-gateway__box {
    outline: 2px solid var(--lw-orange);
    outline-offset: 2px;
}

.lw-co-gateway__box img {
    max-width: 96px;
    height: 48px;
    object-fit: contain;
}

.lw-co-gateway__wallet {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    border-radius: 50%;
    background: var(--lw-pale-blue);
    color: var(--lw-deep);
}

.lw-co-gateway__name {
    font-size: 14px;
    color: var(--lw-ink-soft);
}

.lw-co-gateway__name strong {
    color: var(--lw-ink);
}

.lw-co-gateway__balance {
    font-family: var(--lw-font-num);
    font-size: 20px;
    font-weight: 700;
    color: var(--lw-price);
}

.lw-co-gateway__low {
    font-size: 13px;
    font-weight: 700;
    color: #B42318;
}

.lw-co-gateway__check {
    position: absolute;
    top: 10px;
    inset-inline-end: 10px;
    color: var(--lw-deep);
    opacity: 0;
    transition: opacity .15s ease;
}

.lw-co-gateway input:checked + .lw-co-gateway__box .lw-co-gateway__check {
    opacity: 1;
}

.lw-co-gateway.is-disabled {
    cursor: not-allowed;
}

.lw-co-gateway.is-disabled .lw-co-gateway__box {
    background: var(--lw-paper);
    border-style: dashed;
}

.lw-inner .lw-co-topup {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    align-self: flex-start;
    font-size: 14px;
    font-weight: 700;
    color: var(--lw-text-blue);
    text-decoration: underline;
}

.lw-co-disabled {
    padding: 14px 16px;
    border: 1px dashed var(--lw-dash);
    border-radius: 12px;
    font-size: 14px;
    color: var(--lw-muted);
}

.lw-co-disabled p {
    margin: 0 0 10px;
}

.lw-co-disabled__list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.lw-co-disabled__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    background: var(--lw-paper);
    border-radius: 10px;
    opacity: .7;
}

/* Summary */
.lw-co-summary {
    gap: 16px;
    box-shadow: var(--lw-shadow);
}

.lw-inner .lw-co-summary__title {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding-bottom: 12px;
    border-bottom: 1px dashed var(--lw-dash);
    font-family: var(--lw-font-ui);
    font-size: 18px;
    font-weight: 700;
    color: var(--lw-deep);
}

.lw-co-summary__title svg {
    background: var(--lw-deep);
}

.lw-co-summary__items {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lw-co-summary__items li {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
    color: var(--lw-ink-soft);
}

.lw-co-summary__name {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.lw-co-summary__items li > span:last-child {
    flex-shrink: 0;
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-co-summary__gift {
    padding: 2px 8px;
    font-size: 12px;
}

.lw-co-summary__totals {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0;
    padding-top: 14px;
    border-top: 1px dashed var(--lw-dash);
}

.lw-co-summary__totals > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 15px;
    color: var(--lw-ink-soft);
}

.lw-co-summary__totals dt {
    font-weight: 400;
}

.lw-co-summary__totals dd {
    margin: 0;
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-co-summary__totals .is-discount dd {
    color: #067647;
}

.lw-co-summary__totals .is-total {
    align-items: baseline;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid var(--lw-border);
}

.lw-co-summary__totals .is-total dt {
    font-size: 17px;
    font-weight: 700;
    color: var(--lw-ink);
}

.lw-co-summary__totals .is-total dd {
    font-family: var(--lw-font-num);
    font-size: 30px;
    color: var(--lw-price);
}

.lw-co-summary__cashback {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 10px 12px;
    background: #ECFDF3;
    border-radius: 10px;
    font-size: 13px;
    color: #067647;
}

.lw-co-alert {
    padding: 12px 14px;
    background: #FEF3F2;
    border: 1px solid #FDA29B;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.6;
    color: #B42318;
}

.lw-co-alert[hidden] {
    display: none;
}

.lw-inner .lw-co-pay {
    height: 54px;
    font-size: 17px;
}

.lw-co-pay.is-busy {
    cursor: progress;
}

.lw-co-summary__secure {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 0;
    font-size: 13px;
    color: var(--lw-muted);
}

.lw-co-razorpay {
    margin-top: 20px;
}

@media (max-width: 991.98px) {
    .lw-checkout {
        grid-template-columns: minmax(0, 1fr);
    }

    .lw-checkout__aside {
        position: static;
    }
}

@media (max-width: 575.98px) {
    .lw-co-step {
        padding: 18px;
    }

    .lw-inner .lw-co-step__title {
        font-size: 24px;
    }

    .lw-co-item {
        padding: 14px;
    }

    .lw-co-item__head {
        flex-wrap: wrap;
    }

    .lw-co-item__thumb {
        width: 72px;
        height: 56px;
    }

    .lw-co-gift__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .lw-co-password {
        flex-wrap: wrap;
    }

    .lw-co-password .lw-input {
        flex-basis: calc(100% - 54px);
    }

    .lw-inner .lw-co-password__gen {
        flex: 1 1 100%;
    }

    .lw-co-gateways {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lw-co-gateway__box {
        min-height: 130px;
    }
}
