/*
 * Phase 75.2 public website and marketplace compositions.
 * Consumes the Phase 75.1 Luminous Atelier token/component owners.
 */

.mw-public-home,
.mw-explore,
.mw-public-profile,
.mw-public-legal {
    color: var(--mw-text-primary);
}

.mw-public-home *,
.mw-explore *,
.mw-public-profile *,
.mw-public-legal * {
    min-width: 0;
}

.mw-public-kicker {
    margin: 0 0 var(--mw-space-3);
    color: var(--mw-brand-primary);
    font-size: var(--mw-type-caption);
    font-weight: 700;
    letter-spacing: 0.12em;
    line-height: 1.4;
    text-transform: uppercase;
}

[lang="ar"] .mw-public-kicker {
    letter-spacing: 0;
    text-transform: none;
}

.mw-public-display {
    max-width: 47rem;
    margin: 0;
    font-family: var(--mw-font-display);
    font-size: var(--mw-type-display);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.025em;
}

[lang="ar"] .mw-public-display {
    font-family: var(--mw-font-arabic);
    line-height: 1.4;
    letter-spacing: 0;
}

.mw-public-lead {
    max-width: 42rem;
    margin: var(--mw-space-5) 0 0;
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-body-large);
    line-height: var(--mw-leading-body);
}

.mw-public-section-heading {
    max-width: 42rem;
}

.mw-public-section-heading h2 {
    margin: 0;
    font-family: var(--mw-font-display);
    font-size: 2rem;
    font-weight: 700;
    line-height: 1.2;
}

[lang="ar"] .mw-public-section-heading h2 {
    font-family: var(--mw-font-arabic);
    line-height: 1.55;
}

.mw-public-section-heading > p:last-child,
.mw-public-section-heading > div > p:last-child {
    margin: var(--mw-space-2) 0 0;
    color: var(--mw-text-muted);
    line-height: var(--mw-leading-body);
}

.mw-public-section-heading--row {
    display: flex;
    max-width: none;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--mw-space-6);
}

.mw-text-link {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: var(--mw-space-2);
    color: var(--mw-brand-primary);
    font-weight: 700;
    text-decoration: none;
}

.mw-text-link:hover {
    color: var(--mw-brand-primary-hover);
    text-decoration: underline;
    text-underline-offset: 0.25rem;
}

.mw-icon-directional {
    transition: transform var(--mw-motion-fast) var(--mw-ease-standard);
}

[dir="rtl"] .mw-icon-directional {
    transform: scaleX(-1);
}

.mw-media-fallback {
    display: grid;
    width: 100%;
    height: 100%;
    place-content: center;
    gap: var(--mw-space-3);
    color: var(--mw-text-muted);
    background:
        linear-gradient(var(--mw-border-subtle) 1px, transparent 1px),
        linear-gradient(90deg, var(--mw-border-subtle) 1px, transparent 1px),
        var(--mw-surface-subtle);
    background-size: 3rem 3rem;
    text-align: center;
}

.mw-media-fallback [data-lucide] {
    width: 2rem;
    height: 2rem;
    margin-inline: auto;
    stroke-width: 1.25;
}

.mw-public-count,
.mw-filter-count {
    display: inline-grid;
    min-width: 2rem;
    min-height: 2rem;
    place-items: center;
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-pill);
    color: var(--mw-text-secondary);
    background: var(--mw-surface);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

/* Homepage */

.mw-public-home__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(17rem, 0.65fr);
    gap: var(--mw-space-12);
    align-items: stretch;
    padding-block: clamp(3.5rem, 8vw, 7rem);
    border-bottom: 1px solid var(--mw-border-default);
}

.mw-public-home__copy {
    align-self: center;
}

.mw-home-search {
    max-width: 47rem;
    margin-block-start: var(--mw-space-8);
}

.mw-home-search__label,
.mw-explore-search > label {
    display: block;
    margin-block-end: var(--mw-space-2);
    color: var(--mw-text-primary);
    font-size: var(--mw-type-label);
    font-weight: 700;
}

.mw-home-search__row,
.mw-explore-search__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--mw-space-2);
}

.mw-home-search__field,
.mw-explore-search__field {
    display: flex;
    min-height: 3.5rem;
    align-items: center;
}

.mw-home-search__field > [data-lucide="search"],
.mw-explore-search__field > [data-lucide="search"] {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: var(--mw-space-4);
    color: var(--mw-text-muted);
    pointer-events: none;
    transform: translateY(-50%);
}

.mw-home-search__field input,
.mw-explore-search__field input {
    width: 100%;
    min-height: 3.5rem;
    padding: 0 3rem;
    border: 1px solid var(--mw-border-strong);
    border-radius: var(--mw-radius-md);
    color: var(--mw-text-primary);
    background: var(--mw-surface);
    font: inherit;
}

.mw-home-search__field input:focus,
.mw-explore-search__field input:focus {
    border-color: var(--mw-focus);
    outline: 0;
    box-shadow: 0 0 0 3px var(--mw-focus-ring);
}

.mw-home-search__submit {
    min-height: 3.5rem;
    padding-inline: var(--mw-space-6);
}

.mw-home-search__help {
    margin: var(--mw-space-2) 0 0;
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-public-home__index {
    display: flex;
    flex-direction: column;
    border-radius: var(--mw-radius-lg);
    color: var(--mw-text-inverse);
    background: var(--mw-palette-ink);
}

.mw-public-home__index-head {
    display: flex;
    min-height: 4rem;
    align-items: center;
    justify-content: space-between;
    gap: var(--mw-space-4);
    padding: 0 var(--mw-space-5);
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
    color: rgba(255, 255, 255, 0.76);
    font-size: var(--mw-type-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[lang="ar"] .mw-public-home__index-head {
    letter-spacing: 0;
    text-transform: none;
}

.mw-public-home__index-list {
    display: grid;
    flex: 1;
    margin: 0;
    padding: 0;
    list-style: none;
}

.mw-public-home__index-list li {
    display: grid;
    grid-template-columns: 2.25rem minmax(0, 1fr);
    gap: var(--mw-space-4);
    align-content: center;
    padding: var(--mw-space-5);
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}

.mw-public-home__index-list li:last-child {
    border-bottom: 0;
}

.mw-public-home__index-number {
    color: var(--mw-palette-brass);
    font-size: var(--mw-type-caption);
}

.mw-public-home__index-list div {
    display: grid;
    gap: var(--mw-space-1);
}

.mw-public-home__index-list strong {
    font-size: var(--mw-type-component-title);
}

.mw-public-home__index-list small {
    color: rgba(255, 255, 255, 0.66);
    font-size: var(--mw-type-caption);
    line-height: 1.6;
}

.mw-public-proof {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-bottom: 1px solid var(--mw-border-default);
}

.mw-public-proof > div {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: var(--mw-space-3);
    align-items: center;
    padding: var(--mw-space-6);
    border-inline-end: 1px solid var(--mw-border-default);
}

.mw-public-proof > div:last-child {
    border-inline-end: 0;
}

.mw-public-proof > div > [data-lucide] {
    width: 1.5rem;
    height: 1.5rem;
    color: var(--mw-brand-secondary);
}

.mw-public-proof span {
    display: grid;
    gap: var(--mw-space-1);
}

.mw-public-proof strong {
    font-size: var(--mw-type-secondary);
}

.mw-public-proof small {
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
    line-height: 1.5;
}

.mw-public-process {
    display: grid;
    grid-template-columns: minmax(15rem, 0.65fr) minmax(0, 1.35fr);
    gap: var(--mw-space-12);
    padding-block: var(--mw-space-12);
}

.mw-public-process__steps {
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--mw-border-default);
    list-style: none;
}

.mw-public-process__steps li {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: var(--mw-space-5);
    padding-block: var(--mw-space-5);
    border-bottom: 1px solid var(--mw-border-default);
}

.mw-public-process__steps > li > span {
    color: var(--mw-brand-primary);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

.mw-public-process__steps h3,
.mw-public-process__steps p {
    margin: 0;
}

.mw-public-process__steps h3 {
    font-size: var(--mw-type-component-title);
}

.mw-public-process__steps p {
    margin-block-start: var(--mw-space-2);
    color: var(--mw-text-muted);
    line-height: var(--mw-leading-body);
}

.mw-public-audiences {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-lg);
    background: var(--mw-surface);
}

.mw-public-audiences article {
    padding: var(--mw-space-8);
}

.mw-public-audiences article + article {
    border-inline-start: 1px solid var(--mw-border-default);
    background: var(--mw-surface-subtle);
}

.mw-public-audiences h2 {
    margin: 0;
    font-family: var(--mw-font-display);
    font-size: 1.75rem;
}

[lang="ar"] .mw-public-audiences h2 {
    font-family: var(--mw-font-arabic);
}

.mw-public-audiences article > p:not(.mw-public-kicker) {
    max-width: 34rem;
    margin: var(--mw-space-3) 0 var(--mw-space-4);
    color: var(--mw-text-secondary);
    line-height: var(--mw-leading-body);
}

.mw-public-final-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--mw-space-8);
    margin-block: var(--mw-space-12) var(--mw-space-8);
    padding: var(--mw-space-8);
    border-radius: var(--mw-radius-lg);
    color: var(--mw-text-inverse);
    background: var(--mw-brand-primary);
}

.mw-public-final-cta .mw-public-kicker,
.mw-public-final-cta p {
    color: rgba(255, 255, 255, 0.74);
}

.mw-public-final-cta h2,
.mw-public-final-cta p {
    margin-block-start: 0;
}

.mw-public-final-cta h2 {
    margin-block-end: var(--mw-space-2);
    font-family: var(--mw-font-display);
    font-size: 2rem;
}

[lang="ar"] .mw-public-final-cta h2 {
    font-family: var(--mw-font-arabic);
}

.public-body .mw-public-final-cta .mw-button--primary {
    flex: 0 0 auto;
    /* Intentional inverse CTA; shared button primitives are themselves important. */
    border-color: var(--mw-surface) !important;
    color: var(--mw-text-primary) !important;
    background: var(--mw-surface) !important;
}

/* Explore */

.mw-public-error {
    display: grid;
    min-height: 60vh;
    place-items: center;
    padding-block: var(--mw-space-12);
}

.mw-public-error .mw-ui-state {
    width: min(100%, 42rem);
}

.mw-explore__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--mw-space-8);
    padding-block: var(--mw-space-10) var(--mw-space-6);
    border-bottom: 1px solid var(--mw-border-default);
}

.mw-explore__header h1,
.mw-public-legal__header h1 {
    margin: 0;
    font-family: var(--mw-font-display);
    font-size: var(--mw-type-display);
    line-height: 1.1;
}

[lang="ar"] .mw-explore__header h1,
[lang="ar"] .mw-public-legal__header h1 {
    font-family: var(--mw-font-arabic);
    line-height: 1.45;
}

.mw-explore__header > div:first-child > p:last-child {
    max-width: 44rem;
    margin: var(--mw-space-3) 0 0;
    color: var(--mw-text-secondary);
}

.mw-explore__header-note {
    display: flex;
    max-width: 19rem;
    align-items: flex-start;
    gap: var(--mw-space-2);
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
    line-height: 1.5;
}

.mw-explore__header-note [data-lucide] {
    color: var(--mw-brand-secondary);
}

.mw-explore > .mw-alert {
    margin-block: var(--mw-space-4) 0;
}

.mw-explore-search {
    padding-block: var(--mw-space-6);
}

.mw-explore-search__row {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.mw-explore-search__row > .mw-button {
    min-height: 3.5rem;
}

.mw-search__clear {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-end: var(--mw-space-2);
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: var(--mw-radius-md);
    color: var(--mw-text-muted);
    transform: translateY(-50%);
}

.mw-search__clear:hover {
    color: var(--mw-text-primary);
    background: var(--mw-surface-interactive);
}

.mw-explore__mobile-filter-trigger {
    display: none;
}

.mw-active-filters {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: var(--mw-space-3);
    align-items: start;
    padding-block: 0 var(--mw-space-5);
}

.mw-active-filters__label {
    padding-block: 0.4rem;
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

.mw-active-filters__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mw-space-2);
}

.mw-filter-chip {
    display: inline-flex;
    min-height: 2rem;
    align-items: center;
    gap: var(--mw-space-2);
    padding: 0.35rem var(--mw-space-2);
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-sm);
    color: var(--mw-text-secondary);
    background: var(--mw-surface);
    font-size: var(--mw-type-caption);
    font-weight: 600;
    text-decoration: none;
}

.mw-filter-chip:hover {
    border-color: var(--mw-border-strong);
    color: var(--mw-text-primary);
    background: var(--mw-surface-interactive);
}

.mw-filter-chip [data-lucide] {
    width: 0.875rem;
    height: 0.875rem;
}

.mw-active-filters__clear {
    display: inline-flex;
    min-height: 2rem;
    align-items: center;
    padding-inline: var(--mw-space-2);
    color: var(--mw-brand-primary);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

.mw-explore__layout {
    display: grid;
    grid-template-columns: 16.5rem minmax(0, 1fr);
    gap: var(--mw-space-8);
    align-items: start;
    padding-block-end: var(--mw-space-10);
}

.mw-explore-filters__header {
    padding: 0 0 var(--mw-space-4);
}

.mw-explore-filters__header h2 {
    margin: 0;
    font-size: var(--mw-type-section-title);
}

.mw-explore-filters__form fieldset {
    display: grid;
    gap: var(--mw-space-4);
    margin: 0;
    padding: var(--mw-space-5) 0;
    border: 0;
    border-top: 1px solid var(--mw-border-default);
}

.mw-explore-filters__form legend {
    float: none;
    width: auto;
    margin: 0;
    color: var(--mw-text-primary);
    font-size: var(--mw-type-label);
    font-weight: 700;
}

.mw-field {
    display: grid;
    gap: var(--mw-space-2);
}

.mw-field label {
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

.mw-field .mw-select {
    width: 100%;
}

.mw-check-row {
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    gap: var(--mw-space-3);
    align-items: start;
}

.mw-check-row input {
    width: 1.125rem;
    height: 1.125rem;
    margin-block-start: 0.15rem;
    accent-color: var(--mw-brand-primary);
}

.mw-check-row span {
    display: grid;
    gap: var(--mw-space-1);
}

.mw-check-row label {
    color: var(--mw-text-primary);
    font-size: var(--mw-type-secondary);
    font-weight: 700;
}

.mw-check-row small {
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
    line-height: 1.5;
}

.mw-explore-filters__actions {
    display: grid;
    gap: var(--mw-space-2);
    padding-block-start: var(--mw-space-4);
    border-top: 1px solid var(--mw-border-default);
}

.mw-explore-results__header {
    display: flex;
    min-height: 4.5rem;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--mw-space-5);
    margin-block-end: var(--mw-space-4);
    padding-block-end: var(--mw-space-4);
    border-bottom: 1px solid var(--mw-border-default);
}

.mw-explore-results__header h2,
.mw-explore-results__header p {
    margin: 0;
}

.mw-explore-results__header h2 {
    font-size: var(--mw-type-section-title);
}

.mw-explore-results__header > div:first-child > p:last-child {
    margin-block-start: var(--mw-space-1);
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-explore-results__sort {
    display: grid;
    justify-items: end;
    gap: var(--mw-space-1);
    text-align: end;
}

.mw-explore-results__sort span {
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-explore-results__sort strong {
    font-size: var(--mw-type-secondary);
}

.mw-salon-results {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--mw-space-5);
}

.mw-public-salon-card {
    overflow: hidden;
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-lg);
    background: var(--mw-surface);
    transition:
        border-color var(--mw-motion-fast) var(--mw-ease-standard),
        box-shadow var(--mw-motion-fast) var(--mw-ease-standard);
}

.mw-public-salon-card:hover,
.mw-public-salon-card:focus-within {
    border-color: var(--mw-border-strong);
    box-shadow: var(--mw-shadow-surface);
}

.mw-public-salon-card__media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-bottom: 1px solid var(--mw-border-subtle);
    background: var(--mw-surface-subtle);
}

.mw-public-salon-card__media > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--mw-motion-contextual) var(--mw-ease-standard);
}

.mw-public-salon-card:hover .mw-public-salon-card__media > img {
    transform: scale(1.018);
}

.mw-public-salon-card__body {
    display: grid;
    gap: var(--mw-space-4);
    padding: var(--mw-space-5);
}

.mw-public-salon-card__identity {
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    gap: var(--mw-space-3);
    align-items: center;
}

.mw-public-salon-card__logo {
    width: 3.25rem;
    height: 3.25rem;
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-md);
    background: var(--mw-surface);
    object-fit: cover;
}

.mw-public-salon-card__logo--fallback {
    display: grid;
    place-items: center;
    color: var(--mw-text-muted);
    background: var(--mw-surface-subtle);
}

.mw-public-salon-card__identity h3 {
    margin: 0;
    font-size: 1.125rem;
    line-height: 1.35;
}

.mw-public-salon-card__identity h3 a {
    color: var(--mw-text-primary);
    text-decoration: none;
}

.mw-public-salon-card__identity h3 a:hover {
    color: var(--mw-brand-primary);
}

.mw-public-salon-card__trust {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mw-space-3);
    margin-block-start: var(--mw-space-1);
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-public-salon-card__trust > span,
.mw-verified-mark {
    display: inline-flex;
    align-items: center;
    gap: var(--mw-space-1);
}

.mw-public-salon-card__trust [data-lucide="star"],
.mw-public-review__rating [data-lucide="star"],
.mw-rating-summary [data-lucide="star"] {
    color: var(--mw-palette-brass);
}

.mw-verified-mark {
    color: var(--mw-success-foreground);
    font-weight: 700;
}

.mw-public-salon-card__location,
.mw-public-salon-card__description {
    margin: 0;
}

.mw-public-salon-card__location {
    display: flex;
    align-items: flex-start;
    gap: var(--mw-space-2);
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-secondary);
}

.mw-public-salon-card__location [data-lucide] {
    margin-block-start: 0.1rem;
    color: var(--mw-brand-secondary);
}

.mw-public-salon-card__description {
    display: -webkit-box;
    overflow: hidden;
    min-height: 3rem;
    color: var(--mw-text-muted);
    font-size: var(--mw-type-secondary);
    line-height: 1.6;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.mw-public-salon-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mw-space-2) var(--mw-space-4);
    padding-block: var(--mw-space-3);
    border-block: 1px solid var(--mw-border-subtle);
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

.mw-public-salon-card__availability {
    display: grid;
    grid-template-columns: 1.25rem minmax(0, 1fr);
    gap: var(--mw-space-2);
    color: var(--mw-success-foreground);
}

.mw-public-salon-card__availability span {
    display: grid;
    gap: var(--mw-space-1);
}

.mw-public-salon-card__availability strong,
.mw-public-salon-card__availability small {
    font-size: var(--mw-type-caption);
}

.mw-public-salon-card__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mw-space-2);
    align-items: center;
}

.mw-public-salon-card__actions > a,
.mw-public-salon-card__actions > form {
    flex: 1 1 auto;
}

.mw-public-salon-card__actions form .mw-button {
    width: 100%;
}

.mw-public-pagination {
    display: flex;
    justify-content: center;
    margin-block-start: var(--mw-space-8);
}

.mw-public-pagination .pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.mw-public-pagination .page-link {
    gap: var(--mw-space-1);
}

/* Public salon profile */

.mw-public-profile__breadcrumb {
    padding-block: var(--mw-space-5);
}

.mw-public-profile__breadcrumb a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: var(--mw-space-2);
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-secondary);
    font-weight: 700;
    text-decoration: none;
}

.mw-public-profile__breadcrumb a:hover {
    color: var(--mw-brand-primary);
}

.mw-public-profile__cover {
    aspect-ratio: 16 / 6;
    overflow: hidden;
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-lg);
    background: var(--mw-surface-subtle);
}

.mw-public-profile__cover > img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mw-public-profile__identity {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--mw-space-6);
    align-items: end;
    padding: var(--mw-space-6) 0;
    border-bottom: 1px solid var(--mw-border-default);
}

.mw-public-profile__identity-main {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: var(--mw-space-5);
    align-items: center;
}

.mw-public-profile__logo {
    width: 5.5rem;
    height: 5.5rem;
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-lg);
    background: var(--mw-surface);
    object-fit: cover;
}

.mw-public-profile__logo--fallback {
    display: grid;
    place-items: center;
    color: var(--mw-text-muted);
    background: var(--mw-surface-subtle);
}

.mw-public-profile__logo--fallback [data-lucide] {
    width: 1.75rem;
    height: 1.75rem;
}

.mw-public-profile__identity h1 {
    margin: 0;
    font-family: var(--mw-font-display);
    font-size: var(--mw-type-display);
    line-height: 1.1;
}

[lang="ar"] .mw-public-profile__identity h1 {
    font-family: var(--mw-font-arabic);
    line-height: 1.45;
}

.mw-public-profile__trust-line {
    display: flex;
    flex-wrap: wrap;
    gap: var(--mw-space-2) var(--mw-space-4);
    margin-block-start: var(--mw-space-2);
    color: var(--mw-text-muted);
    font-size: var(--mw-type-secondary);
}

.mw-public-profile__trust-line > span,
.mw-public-profile__trust-line > a {
    display: inline-flex;
    align-items: center;
    gap: var(--mw-space-1);
    color: inherit;
    text-decoration: none;
}

.mw-public-profile__trust-line > a:hover {
    color: var(--mw-brand-primary);
}

.mw-public-profile__primary-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: var(--mw-space-2);
}

.mw-public-profile__section-nav {
    position: sticky;
    z-index: var(--mw-z-sticky);
    inset-block-start: 0;
    display: flex;
    overflow-x: auto;
    gap: var(--mw-space-6);
    padding-block: var(--mw-space-3);
    border-bottom: 1px solid var(--mw-border-default);
    background: var(--mw-canvas);
    scrollbar-gutter: stable;
}

.mw-public-profile__section-nav a {
    display: inline-flex;
    min-height: 2.75rem;
    flex: 0 0 auto;
    align-items: center;
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-secondary);
    font-weight: 700;
    text-decoration: none;
}

.mw-public-profile__section-nav a:hover {
    color: var(--mw-brand-primary);
}

.mw-public-profile__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 19rem;
    gap: var(--mw-space-10);
    align-items: start;
}

.mw-public-profile__section {
    padding-block: var(--mw-space-10);
    border-bottom: 1px solid var(--mw-border-default);
    scroll-margin-top: 5rem;
}

.mw-public-service-groups {
    display: grid;
    gap: var(--mw-space-8);
    margin-block-start: var(--mw-space-6);
}

.mw-public-service-group > header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--mw-space-4);
    padding-block-end: var(--mw-space-3);
    border-bottom: 1px solid var(--mw-border-strong);
}

.mw-public-service-group > header h3,
.mw-public-service-group > header span {
    margin: 0;
}

.mw-public-service-group > header h3 {
    font-size: var(--mw-type-component-title);
}

.mw-public-service-group > header span {
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-public-service-list {
    display: grid;
}

.mw-public-service {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr) minmax(9rem, auto) auto;
    gap: var(--mw-space-4);
    align-items: center;
    padding-block: var(--mw-space-4);
    border-bottom: 1px solid var(--mw-border-subtle);
}

.mw-public-service > img,
.mw-public-service__media {
    width: 7rem;
    aspect-ratio: 9 / 7;
    border-radius: var(--mw-radius-md);
    object-fit: cover;
}

.mw-public-service__copy > span {
    color: var(--mw-brand-primary);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

.mw-public-service__copy h4,
.mw-public-service__copy p {
    margin: 0;
}

.mw-public-service__copy h4 {
    margin-block-start: var(--mw-space-1);
    font-size: var(--mw-type-component-title);
}

.mw-public-service__copy p {
    display: -webkit-box;
    overflow: hidden;
    margin-block-start: var(--mw-space-2);
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
    line-height: 1.55;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.mw-public-service__facts {
    display: flex;
    gap: var(--mw-space-4);
}

.mw-public-service__facts span {
    display: grid;
    gap: var(--mw-space-1);
}

.mw-public-service__facts small {
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-public-service__facts strong {
    font-size: var(--mw-type-secondary);
    white-space: nowrap;
}

.mw-public-service__actions {
    display: grid;
    justify-items: stretch;
}

.mw-public-service__actions .mw-text-link {
    justify-content: center;
    min-height: 2.25rem;
    font-size: var(--mw-type-caption);
}

.mw-public-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--mw-space-3);
    margin-block-start: var(--mw-space-6);
}

.mw-public-gallery figure {
    aspect-ratio: 4 / 3;
    overflow: hidden;
    margin: 0;
    border: 1px solid var(--mw-border-subtle);
    border-radius: var(--mw-radius-md);
    background: var(--mw-surface-subtle);
}

.mw-public-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mw-rating-summary {
    display: grid;
    grid-template-columns: auto auto;
    gap: 0 var(--mw-space-2);
    align-items: center;
}

.mw-rating-summary strong {
    font-size: 2rem;
}

.mw-rating-summary span {
    grid-column: 1 / -1;
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-public-review-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--mw-space-4);
    margin-block-start: var(--mw-space-6);
}

.mw-public-review {
    padding: var(--mw-space-5);
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-md);
    background: var(--mw-surface);
}

.mw-public-review > header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--mw-space-4);
}

.mw-public-review > header > div:first-child {
    display: grid;
    gap: var(--mw-space-1);
}

.mw-public-review > header span {
    display: inline-flex;
    align-items: center;
    gap: var(--mw-space-1);
    color: var(--mw-success-foreground);
    font-size: var(--mw-type-caption);
}

.mw-public-review__rating {
    display: inline-flex;
    align-items: center;
    gap: var(--mw-space-1);
}

.mw-public-review > time {
    display: block;
    margin-block-start: var(--mw-space-3);
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-public-review > p {
    margin: var(--mw-space-4) 0 0;
    line-height: var(--mw-leading-body);
    overflow-wrap: anywhere;
}

.mw-public-review__reply {
    margin-block-start: var(--mw-space-4);
    padding: var(--mw-space-4);
    border-inline-start: 2px solid var(--mw-brand-secondary);
    background: var(--mw-surface-subtle);
}

.mw-public-review__reply p {
    margin: var(--mw-space-2) 0;
    overflow-wrap: anywhere;
}

.mw-public-review__reply time {
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
}

.mw-public-profile__aside {
    position: sticky;
    inset-block-start: 5.5rem;
    margin-block-start: var(--mw-space-10);
    border-top: 1px solid var(--mw-border-strong);
}

.mw-public-profile__aside section {
    padding-block: var(--mw-space-5);
    border-bottom: 1px solid var(--mw-border-default);
}

.mw-public-profile__aside h2 {
    display: flex;
    align-items: center;
    gap: var(--mw-space-2);
    margin: 0;
    font-size: var(--mw-type-component-title);
}

.mw-public-profile__aside p {
    margin: var(--mw-space-3) 0 0;
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-secondary);
    line-height: var(--mw-leading-body);
    overflow-wrap: anywhere;
}

.mw-public-hours {
    display: grid;
    gap: var(--mw-space-2);
    margin: var(--mw-space-4) 0 0;
}

.mw-public-hours > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--mw-space-3);
}

.mw-public-hours dt,
.mw-public-hours dd {
    margin: 0;
    font-size: var(--mw-type-caption);
}

.mw-public-hours dt {
    color: var(--mw-text-secondary);
}

.mw-public-hours dd {
    color: var(--mw-text-primary);
    font-weight: 700;
    text-align: end;
}

.mw-public-contact {
    display: grid;
    gap: var(--mw-space-2);
    margin-block-start: var(--mw-space-4);
}

.mw-public-contact a {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: var(--mw-space-2);
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-secondary);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.mw-public-contact a:hover {
    color: var(--mw-brand-primary);
}

.mw-public-profile__booking-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--mw-space-8);
    margin-block: var(--mw-space-10) var(--mw-space-8);
    padding: var(--mw-space-8);
    border: 1px solid var(--mw-border-default);
    border-radius: var(--mw-radius-lg);
    background: var(--mw-surface-subtle);
}

.mw-public-profile__booking-cta h2,
.mw-public-profile__booking-cta p {
    margin-block-start: 0;
}

.mw-public-profile__booking-cta h2 {
    margin-block-end: var(--mw-space-2);
    font-family: var(--mw-font-display);
    font-size: 2rem;
}

[lang="ar"] .mw-public-profile__booking-cta h2 {
    font-family: var(--mw-font-arabic);
}

.mw-public-profile__booking-cta > div > p:last-child {
    max-width: 42rem;
    margin-block-end: 0;
    color: var(--mw-text-muted);
}

/* Privacy */

.mw-public-legal {
    max-width: 64rem;
    margin-inline: auto;
    padding-block: var(--mw-space-10) var(--mw-space-12);
}

.mw-public-legal__header {
    max-width: 46rem;
    padding-block-end: var(--mw-space-8);
    border-bottom: 1px solid var(--mw-border-strong);
}

.mw-public-legal__header > p:last-child {
    margin: var(--mw-space-4) 0 0;
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-body-large);
    line-height: var(--mw-leading-body);
}

.mw-public-legal__body {
    display: grid;
    grid-template-columns: 13rem minmax(0, 1fr);
    gap: var(--mw-space-10);
    padding-block-start: var(--mw-space-8);
}

.mw-public-legal__index {
    position: sticky;
    inset-block-start: var(--mw-space-5);
    display: grid;
    align-self: start;
    gap: var(--mw-space-2);
}

.mw-public-legal__index > span {
    margin-block-end: var(--mw-space-2);
    color: var(--mw-text-muted);
    font-size: var(--mw-type-caption);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

[lang="ar"] .mw-public-legal__index > span {
    letter-spacing: 0;
    text-transform: none;
}

.mw-public-legal__index a {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-secondary);
    text-decoration: none;
}

.mw-public-legal__index a:hover {
    color: var(--mw-brand-primary);
}

.mw-public-legal__content {
    display: grid;
}

.mw-public-legal__content section {
    display: grid;
    grid-template-columns: 3rem minmax(0, 1fr);
    gap: var(--mw-space-4);
    padding-block: var(--mw-space-6);
    border-bottom: 1px solid var(--mw-border-default);
    scroll-margin-top: var(--mw-space-6);
}

.mw-public-legal__number {
    color: var(--mw-brand-primary);
    font-size: var(--mw-type-caption);
    font-weight: 700;
}

.mw-public-legal__content h2,
.mw-public-legal__content p {
    margin: 0;
}

.mw-public-legal__content h2 {
    font-size: var(--mw-type-section-title);
}

.mw-public-legal__content p {
    max-width: 46rem;
    margin-block-start: var(--mw-space-3);
    color: var(--mw-text-secondary);
    font-size: var(--mw-type-body-large);
    line-height: 1.75;
}

@media (min-width: 62rem) {
    .mw-explore-filters.offcanvas {
        position: sticky;
        inset-block-start: var(--mw-space-5);
        display: block;
        /* Desktop deliberately neutralizes Bootstrap's hidden offcanvas state. */
        visibility: visible !important;
        width: auto;
        height: auto;
        max-height: calc(100dvh - 2.5rem);
        overflow-y: auto;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
        /* Bootstrap owns mobile motion; the desktop rail must remain static. */
        transform: none !important;
        scrollbar-gutter: stable;
    }

    .mw-explore-filters .offcanvas-header {
        display: block;
    }

    .mw-explore-filters .offcanvas-header .mw-icon-button {
        display: none;
    }

    .mw-explore-filters .offcanvas-body {
        overflow: visible;
        padding: 0;
    }
}

@media (max-width: 61.998rem) {
    .mw-public-home__hero {
        grid-template-columns: minmax(0, 1fr) minmax(15rem, 0.72fr);
        gap: var(--mw-space-8);
    }

    .mw-explore__layout {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-explore__mobile-filter-trigger {
        display: inline-flex;
    }

    .mw-explore-filters {
        width: min(24rem, calc(100vw - 1.25rem));
        max-width: none;
        border-radius: 0;
    }

    .mw-explore-filters__header {
        display: flex;
        padding: var(--mw-space-5);
    }

    .mw-explore-filters .offcanvas-body {
        padding: 0 var(--mw-space-5) var(--mw-space-6);
    }

    .mw-explore-filters__actions {
        position: sticky;
        inset-block-end: 0;
        padding-block: var(--mw-space-4);
        background: var(--mw-surface);
    }

    .mw-public-profile__content {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
    }

    .mw-public-profile__aside {
        position: static;
        margin-block-start: 0;
    }

    .mw-public-service {
        grid-template-columns: 6.5rem minmax(0, 1fr) auto;
    }

    .mw-public-service > img,
    .mw-public-service__media {
        width: 6.5rem;
    }

    .mw-public-service__facts {
        grid-column: 2;
    }

    .mw-public-service__actions {
        grid-column: 3;
        grid-row: 1 / span 2;
    }
}

@media (max-width: 47.998rem) {
    .mw-public-home__hero,
    .mw-public-process {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-public-home__hero {
        gap: var(--mw-space-8);
        padding-block: var(--mw-space-10);
    }

    .mw-public-home__index {
        min-height: auto;
    }

    .mw-public-proof {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-public-proof > div {
        border-inline-end: 0;
        border-bottom: 1px solid var(--mw-border-default);
        padding-inline: 0;
    }

    .mw-public-proof > div:last-child {
        border-bottom: 0;
    }

    .mw-public-process {
        gap: var(--mw-space-6);
        padding-block: var(--mw-space-10);
    }

    .mw-public-audiences {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-public-audiences article {
        padding: var(--mw-space-6);
    }

    .mw-public-audiences article + article {
        border-block-start: 1px solid var(--mw-border-default);
        border-inline-start: 0;
    }

    .mw-public-final-cta,
    .mw-public-profile__booking-cta {
        align-items: stretch;
        flex-direction: column;
        padding: var(--mw-space-6);
    }

    .mw-public-final-cta .mw-button,
    .mw-public-profile__booking-cta .mw-button {
        width: 100%;
    }

    .mw-explore__header {
        align-items: flex-start;
        flex-direction: column;
        gap: var(--mw-space-4);
        padding-block-start: var(--mw-space-8);
    }

    .mw-explore__header-note {
        max-width: none;
    }

    .mw-explore-search__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mw-explore-search__field {
        grid-column: 1 / -1;
    }

    .mw-explore-search__row > .mw-button {
        width: 100%;
    }

    .mw-active-filters {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-salon-results {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-public-salon-card__actions > a,
    .mw-public-salon-card__actions > form {
        flex-basis: calc(50% - var(--mw-space-2));
    }

    .mw-public-profile__cover {
        aspect-ratio: 16 / 10;
    }

    .mw-public-profile__identity {
        grid-template-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .mw-public-profile__identity-main {
        grid-template-columns: 4.5rem minmax(0, 1fr);
        gap: var(--mw-space-3);
    }

    .mw-public-profile__logo {
        width: 4.5rem;
        height: 4.5rem;
    }

    .mw-public-profile__identity h1 {
        font-size: 2rem;
    }

    .mw-public-profile__primary-actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mw-public-profile__primary-actions .mw-button,
    .mw-public-profile__primary-actions form {
        width: 100%;
    }

    .mw-public-section-heading--row {
        align-items: flex-start;
    }

    .mw-public-service {
        grid-template-columns: 5.5rem minmax(0, 1fr);
        gap: var(--mw-space-3);
    }

    .mw-public-service > img,
    .mw-public-service__media {
        width: 5.5rem;
    }

    .mw-public-service__facts,
    .mw-public-service__actions {
        grid-column: 1 / -1;
    }

    .mw-public-service__actions {
        grid-row: auto;
        grid-template-columns: minmax(0, 1fr);
        align-items: center;
        gap: var(--mw-space-1);
    }

    .mw-public-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mw-public-review-list {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-public-legal {
        padding-block-start: var(--mw-space-8);
    }

    .mw-public-legal__body {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--mw-space-4);
    }

    .mw-public-legal__index {
        position: static;
        display: flex;
        overflow-x: auto;
        align-items: center;
        gap: var(--mw-space-4);
        padding-block-end: var(--mw-space-2);
        scrollbar-gutter: stable;
    }

    .mw-public-legal__index > span,
    .mw-public-legal__index a {
        flex: 0 0 auto;
    }
}

@media (max-width: 23.998rem) {
    .mw-home-search__row {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-home-search__submit {
        width: 100%;
    }

    .mw-public-profile__primary-actions {
        grid-template-columns: minmax(0, 1fr);
    }

    .mw-public-salon-card__actions > a,
    .mw-public-salon-card__actions > form {
        flex-basis: 100%;
    }

    .mw-public-gallery {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (prefers-reduced-motion: reduce) {
    .mw-public-salon-card__media > img,
    .mw-icon-directional {
        transition: none;
    }

    .mw-public-salon-card:hover .mw-public-salon-card__media > img {
        transform: none;
    }
}

@media (forced-colors: active) {
    .mw-public-home__index,
    .mw-public-final-cta {
        border: 1px solid CanvasText;
    }

    .mw-media-fallback {
        background: Canvas;
    }
}
