/* Business Directory — header + footer menu link */
.ms-menu-link a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: inherit;
    text-decoration: none;
    font-weight: 500;
}
.ms-menu-link .material-icons { font-size: 18px; }
.ms-menu-link--header {
    padding: 6px 14px;
    display: inline-block;
}
.ms-menu-link--header a {
    color: #253237;
}
.ms-menu-link--header a:hover { color: #80b435; }
.ms-menu-link--footer { margin-top: 12px; }
.ms-menu-link--footer h3 { font-size: 1rem; margin: 0 0 6px; }
.ms-menu-link--footer ul { list-style: none; padding: 0; margin: 0; }
.ms-menu-link--footer a { color: inherit; }
.ms-menu-link--footer a:hover { color: #80b435; }

/* Business Directory — browse page */
.ms-directory {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 24px;
    margin: 24px 0 48px;
}

@media (max-width: 767px) {
    .ms-directory { grid-template-columns: 1fr; }
}

.ms-directory-header { margin-bottom: 8px; }
.ms-directory-header h1 { margin: 0 0 4px; font-weight: 600; }

/* Filters */
.ms-directory__filters {
    background: #f7f7f7;
    border-radius: 8px;
    padding: 16px;
    align-self: start;
    position: sticky;
    top: 96px;
}
.ms-filter-group { margin-bottom: 14px; }
.ms-filter-group label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    color: #253237;
    margin-bottom: 4px;
}
.ms-filter-group input[type="search"],
.ms-filter-group select {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #d8d8d8;
    border-radius: 4px;
    background: #fff;
    font-size: 0.9rem;
}
.ms-filter-checkboxes label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 400;
    margin-bottom: 6px;
}
.ms-filter-actions { margin-top: 8px; display: flex; gap: 8px; align-items: center; }

/* Toolbar */
.ms-directory__toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
}
.ms-directory__count { color: #666; font-size: 0.9rem; }
.ms-directory__sort { display: flex; align-items: center; gap: 8px; }
.ms-directory__sort label { margin: 0; font-size: 0.85rem; color: #666; }
.ms-directory__sort select {
    padding: 6px 10px;
    border: 1px solid #d8d8d8;
    border-radius: 4px;
    background: #fff;
}

/* Grid */
.ms-directory__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}

/* Card */
.ms-card {
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: box-shadow .2s, transform .2s;
}
.ms-card:hover {
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
    transform: translateY(-2px);
}
.ms-card--featured { border-color: #80b435; box-shadow: 0 0 0 1px #80b435 inset; }

.ms-card__media {
    position: relative;
    display: block;
    aspect-ratio: 16 / 10;
    background: #eef3ef;
    overflow: hidden;
}
.ms-card__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ms-card__media-fallback {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 3rem; font-weight: 700; text-transform: uppercase;
}

.ms-card__badges {
    position: absolute;
    top: 8px;
    left: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.ms-badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 12px;
    font-size: 0.72rem;
    font-weight: 600;
    background: rgba(37, 50, 55, 0.85);
    color: #fff;
}
.ms-badge--featured { background: #f39c12; }
.ms-badge--verified { background: #27ae60; }
.ms-badge--directory { background: #3498db; }
.ms-badge--claim { background: #e67e22; }
.ms-badge--active { background: #253237; }

.ms-card__body { padding: 14px; flex-grow: 1; }
.ms-card__title { font-size: 1.05rem; margin: 0 0 6px; line-height: 1.3; }
.ms-card__title a { color: #253237; text-decoration: none; }
.ms-card__title a:hover { color: #80b435; }

.ms-card__type {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: #666;
    margin-bottom: 4px;
}
.ms-card__type-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }

.ms-card__location {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 0.82rem;
    color: #666;
    margin-bottom: 6px;
}
.ms-card__location .material-icons { font-size: 14px; }

.ms-card__desc {
    font-size: 0.85rem;
    color: #555;
    margin: 8px 0 0;
    line-height: 1.45;
}

.ms-card__categories { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 4px; }
.ms-chip {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 10px;
    font-size: 0.72rem;
    background: #eef3ef;
    color: #253237;
    text-decoration: none;
}
.ms-chip:hover { background: #80b435; color: #fff; }

.ms-card__footer {
    padding: 10px 14px;
    border-top: 1px solid #f2f2f2;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.ms-card__footer .material-icons { font-size: 18px; vertical-align: middle; }

/* Pagination */
.ms-directory__pagination { margin-top: 28px; }
.ms-directory__pagination ul {
    display: flex;
    gap: 4px;
    justify-content: center;
    padding: 0;
    margin: 0;
    list-style: none;
    flex-wrap: wrap;
}
.ms-directory__pagination li a {
    display: inline-block;
    padding: 6px 12px;
    border: 1px solid #d8d8d8;
    border-radius: 4px;
    color: #253237;
    text-decoration: none;
}
.ms-directory__pagination li.active a {
    background: #80b435;
    border-color: #80b435;
    color: #fff;
}
.ms-directory__pagination li a:hover { background: #f0f0f0; }

.ms-directory__empty {
    text-align: center;
    padding: 40px 20px;
    background: #f7f7f7;
    border-radius: 8px;
}

/* Profile page extras (rendered via displayMsSellerProfileExtras hook) */
.ms-profile-extras {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin: 24px 0;
}
@media (max-width: 767px) {
    .ms-profile-extras { grid-template-columns: 1fr; }
}
.ms-profile-box {
    background: #fff;
    border: 1px solid #ececec;
    border-radius: 8px;
    padding: 16px;
}
.ms-profile-box h3 {
    font-size: 1rem;
    font-weight: 600;
    margin: 0 0 10px;
    color: #253237;
}
.ms-hours-list { list-style: none; padding: 0; margin: 0; }
.ms-hours-list li {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 0.88rem;
    border-bottom: 1px solid #f2f2f2;
}
.ms-hours-list li:last-child { border-bottom: 0; }
.ms-hours-list .ms-day { font-weight: 600; color: #253237; }
.ms-hours-list .ms-closed { color: #c0392b; font-style: italic; }
.ms-hours-list .ms-today { background: #eef3ef; margin: 0 -8px; padding: 4px 8px; border-radius: 4px; }

.ms-profile-categories .ms-chip { margin: 2px 2px 2px 0; }

.ms-profile-claim {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, #fff7e6 0%, #ffe8c4 100%);
    border: 1px solid #f39c12;
    padding: 16px 20px;
    border-radius: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.ms-profile-claim__text h3 { margin: 0 0 4px; color: #253237; }
.ms-profile-claim__text p { margin: 0; color: #6b5a30; font-size: 0.9rem; }
.ms-profile-claim .btn { white-space: nowrap; }

/* ---------------------------------------------------------------------------
   The education-consultants page.

   Its own layout rather than the directory grid: this is a considered choice,
   not a browse, so each card carries the things that decide it — where they
   send people, what languages they work in, whether a MARA number has been
   declared, and what they actually do — instead of a name and a thumbnail.
   --------------------------------------------------------------------------- */
.ms-cons {
    max-width: 1180px;
    margin: 0 auto;
    padding: 24px 16px 48px;
}

.ms-cons__hero { margin-bottom: 22px; }

.ms-cons__title {
    margin: 0 0 6px;
    font-size: 1.9rem;
    font-weight: 700;
    color: #253237;
}

.ms-cons__lede {
    margin: 0 0 14px;
    font-size: 1.02rem;
    color: #55635a;
}

/* Said once, plainly, above everything — not repeated beside each number. */
.ms-cons__caveat {
    margin: 0;
    padding: 12px 14px;
    background: #f5f8f4;
    border-left: 3px solid #80b435;
    border-radius: 6px;
    font-size: .88rem;
    line-height: 1.5;
    color: #4d5a4f;
}

.ms-cons__caveat a { margin-left: 4px; font-weight: 600; }

/* Filters ------------------------------------------------------------------ */
.ms-cons__filters {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 12px;
    margin: 22px 0 16px;
    padding: 16px;
    background: #fff;
    border: 1px solid #e4eae5;
    border-radius: 12px;
}

.ms-cons__filter { display: flex; flex-direction: column; gap: 4px; }

.ms-cons__filter--search { flex: 1 1 240px; }

.ms-cons__filters label {
    margin: 0;
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .3px;
    text-transform: uppercase;
    color: #6b7a6d;
}

.ms-cons__filters input[type="search"],
.ms-cons__filters select {
    height: 40px;
    padding: 0 10px;
    background: #fff;
    border: 1px solid #d9e2da;
    border-radius: 8px;
    font-size: .92rem;
    color: #253237;
}

.ms-cons__filters input[type="search"] { width: 100%; }

.ms-cons__check {
    display: flex !important;
    align-items: center;
    gap: 6px;
    height: 40px;
    margin: 0;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: .88rem !important;
    color: #4d5a4f !important;
}

.ms-cons__filter-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}

.ms-cons__clear { font-size: .88rem; }

.ms-cons__count {
    margin: 0 0 14px;
    font-size: .9rem;
    color: #6b7a6d;
}

/* Cards -------------------------------------------------------------------- */
.ms-cons__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));
    gap: 16px;
}

.ms-cons-card {
    display: flex;
    flex-direction: column;
    padding: 18px;
    background: #fff;
    border: 1px solid #e4eae5;
    border-radius: 14px;
    transition: box-shadow .15s ease, transform .15s ease;
}

.ms-cons-card:hover {
    box-shadow: 0 6px 18px rgba(37, 50, 55, .08);
    transform: translateY(-1px);
}

.ms-cons-card__top { display: flex; gap: 12px; align-items: center; }

.ms-cons-card__logo {
    width: 60px;
    height: 60px;
    flex: 0 0 auto;
    object-fit: cover;
    border-radius: 12px;
}

.ms-cons-card__logo--letter {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #eef4ee;
    color: #4e6b3c;
    font-size: 1.6rem;
    font-weight: 700;
    text-transform: uppercase;
}

.ms-cons-card__name {
    margin: 0 0 2px;
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.3;
}

.ms-cons-card__name a { color: #253237; }
.ms-cons-card__name a:hover { color: #80b435; }

.ms-cons-card__where { margin: 0; font-size: .86rem; color: #6b7a6d; }

.ms-cons-card__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 14px 0 0;
    padding: 0;
    list-style: none;
}

.ms-chip {
    padding: 3px 9px;
    background: #f1f5f1;
    border-radius: 20px;
    font-size: .78rem;
    color: #4d5a4f;
}

.ms-chip--dest { background: #eaf2e2; color: #4e6b3c; font-weight: 600; }

/* A claim, deliberately quiet — never styled as a verification badge. */
.ms-cons-card__marn {
    margin: 14px 0 0;
    padding: 9px 11px;
    background: #f7f9f7;
    border-radius: 8px;
    font-size: .84rem;
    color: #4d5a4f;
}

.ms-cons-card__marn strong { color: #253237; }

.ms-cons-card__marn span {
    display: block;
    margin-top: 2px;
    font-size: .76rem;
    color: #7b8a7d;
}

.ms-cons-card__marn--none { color: #7b8a7d; }

.ms-cons-card__offers-title {
    margin: 16px 0 6px;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: #6b7a6d;
}

.ms-cons-card__offers { margin: 0; padding: 0; list-style: none; }

.ms-cons-card__offers li {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    border-top: 1px solid #eef2ef;
    font-size: .88rem;
}

.ms-cons-card__offers em {
    flex: 0 0 auto;
    font-style: normal;
    font-weight: 600;
    color: #253237;
}

.ms-cons-card__cta {
    margin-top: auto;
    padding-top: 16px;
    font-size: .9rem;
    font-weight: 600;
}

.ms-cons__empty,
.ms-cons__back { margin-top: 24px; font-size: .92rem; }

@media (max-width: 767px) {
    .ms-cons__title { font-size: 1.5rem; }
    .ms-cons__grid { grid-template-columns: 1fr; }
    .ms-cons__filter-actions { margin-left: 0; width: 100%; }
}
