/* ==========================================================================
   RMYS Public Styles
   Brand: Midnight Navy + Colorado Red + Sun Gold.
   Typography: Montserrat (headings) + Open Sans (body).
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@600;700;800&family=Open+Sans:wght@400;500;600&family=Inter:wght@400;500;600;700;800&display=swap');

/* No horizontal overflow on the page (full-bleed sections use 100vw which
   would otherwise create a phantom scrollbar). */
html,
body {
    overflow-x: hidden;
}

/* Elementor widgets use Inter for both headings and body text. */
.rmys-featured,
.rmys-sports-grid,
.rmys-featured-blog {
    --rmys-font-heading: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --rmys-font-body: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-family: var(--rmys-font-body);
}

:root {
    /* Brand palette — from Brand Guidelines.docx */
    --rmys-navy: #0F2A44;
    --rmys-navy-light: #2F5D8C;
    --rmys-red: #C62828;
    --rmys-red-hover: #A51D1D;
    --rmys-gold: #F4B400;
    --rmys-gold-hover: #D49E00;
    --rmys-green: #2E8B57;
    --rmys-white: #FFFFFF;
    --rmys-gray-50: #F5F5F5;
    --rmys-gray-100: #F5F5F5;
    --rmys-gray-200: #E0E0E0;
    --rmys-gray-300: #E0E0E0;
    --rmys-gray-500: #6C757D;
    --rmys-gray-700: #333333;
    --rmys-gray-900: #212529;
    --rmys-radius: 8px;
    --rmys-radius-lg: 12px;
    --rmys-shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.06);
    --rmys-shadow-md: 0 4px 12px rgba(0,0,0,.1);
    --rmys-transition: 150ms ease;
    --rmys-font-heading: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --rmys-font-body: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --rmys-max-width: 1200px;
}

/* ==========================================================================
   Elementor Header — keep nav + Sign In on one line, no overflow
   ========================================================================== */

.elementor-location-header .elementor-button-text,
.elementor-location-header .elementor-heading-title {
    white-space: nowrap;
}

/* Right group must reserve space for the Sign In button instead of shrinking
   to 0 and pushing the button past the viewport edge. */
.elementor-location-header .elementor-element-rmysh030 {
    flex-shrink: 0;
}

/* ==========================================================================
   Base / Buttons
   ========================================================================== */

.rmys-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 24px;
    border: none;
    border-radius: var(--rmys-radius);
    font-family: var(--rmys-font-heading);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--rmys-transition), transform var(--rmys-transition);
    text-decoration: none;
    line-height: 1.4;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    box-sizing: border-box;
}

.rmys-btn--primary {
    background: var(--rmys-red);
    color: var(--rmys-white);
}

.rmys-btn--primary:hover {
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    transform: translateY(-1px);
}

/* ==========================================================================
   Homepage Search Form  —  [rmys_search_form]
   Each field is its own rounded pill, gold Search button.
   ========================================================================== */

.rmys-search-form {
    max-width: 740px;
    margin: 0 auto;
}

.rmys-search-form__fields {
    display: flex;
    align-items: center;
    background: var(--rmys-white);
    border-radius: 16px;
    padding: 10px;
    box-shadow: var(--rmys-shadow-md);
    gap: 10px;
}

.rmys-search-form__field {
    flex: 1;
    position: relative;
}

/* Remove the old divider lines */
.rmys-search-form__field + .rmys-search-form__field::before {
    display: none;
}

.rmys-search-form__field--submit {
    flex: 0 0 auto;
}

/* Search button — gold per Figma */
.rmys-search-form__field--submit .rmys-btn {
    border-radius: 12px;
    padding: 14px 32px;
    font-size: 15px;
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.rmys-search-form__field--submit .rmys-btn:hover {
    background: var(--rmys-gold-hover);
    color: var(--rmys-navy);
}

/* Each input/select gets its own pill container */
.rmys-search-form select,
.rmys-search-form input[type="text"] {
    width: 100%;
    border: 2px solid var(--rmys-gray-200);
    background: var(--rmys-white);
    padding: 12px 18px;
    border-radius: 12px;
    font-family: var(--rmys-font-body);
    font-size: 15px;
    color: var(--rmys-navy);
    outline: none;
    appearance: none;
    -webkit-appearance: none;
    transition: border-color var(--rmys-transition);
    box-sizing: border-box;
}

.rmys-search-form select:focus,
.rmys-search-form input[type="text"]:focus {
    border-color: var(--rmys-gold);
}

.rmys-search-form select {
    cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%230F2A44' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 16px center;
    padding-right: 36px;
}

.rmys-search-form input::placeholder {
    color: var(--rmys-gray-500);
}

/* Mobile: stack */
@media (max-width: 640px) {
    .rmys-search-form__fields {
        flex-direction: column;
        gap: 10px;
    }

    .rmys-search-form__field {
        width: 100%;
    }

    .rmys-search-form__field--submit {
        width: 100%;
    }

    .rmys-search-form__field--submit .rmys-btn {
        width: 100%;
        justify-content: center;
    }
}

/* ==========================================================================
   Search Chips  —  quick-filter pills under [rmys_search_form]
   Canned searches (not tags); each is a link that applies existing filters.
   ========================================================================== */

.rmys-search-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 740px;
    margin: 16px auto 0;
}

.rmys-search-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border-radius: 999px;
    border: 1px solid var(--rmys-gray-200);
    background: var(--rmys-white);
    color: var(--rmys-navy);
    font-family: var(--rmys-font-body);
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: border-color var(--rmys-transition), background-color var(--rmys-transition), box-shadow var(--rmys-transition);
}

.rmys-search-chip:hover,
.rmys-search-chip:focus-visible {
    border-color: var(--rmys-gold);
    box-shadow: var(--rmys-shadow-sm, 0 2px 6px rgba(0, 0, 0, .08));
    outline: none;
}

/* Selected: chip whose filter matches the current search */
.rmys-search-chip.is-active {
    background: var(--rmys-navy);
    border-color: var(--rmys-navy);
    color: var(--rmys-white);
}

.rmys-search-chip__icon {
    font-size: 16px;
    line-height: 1;
}

@media (max-width: 640px) {
    .rmys-search-chips {
        /* Scroll the row sideways instead of wrapping into a tall block. */
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
    }

    .rmys-search-chips::-webkit-scrollbar {
        display: none;
    }

    .rmys-search-chip {
        flex: 0 0 auto;
    }
}

/* ==========================================================================
   Listings Page
   ========================================================================== */

/* — Page-level header — sits above the grid layout */

.rmys-listings-wrap {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 32px;
    font-family: var(--rmys-font-body);
}

.rmys-listings__header {
    padding: 28px 0 20px;
    border-bottom: 1px solid var(--rmys-gray-200);
    margin-bottom: 24px;
}

.rmys-listings__title {
    font-family: var(--rmys-font-heading);
    font-size: 26px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0 0 4px;
}

.rmys-listings__count {
    font-size: 14px;
    color: var(--rmys-gray-500);
    font-weight: 500;
}

/* — Three-column grid layout — */

.rmys-listings {
    display: grid;
    grid-template-columns: 220px 1fr 240px;
    grid-template-areas: "sidebar content map";
    gap: 20px;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 32px 60px;
    font-family: var(--rmys-font-body);
}

.rmys-listings__sidebar { grid-area: sidebar; }
.rmys-listings__content { grid-area: content; }
.rmys-listings__map     { grid-area: map; }

/* — Sidebar filters — card container */

.rmys-filters {
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 24px 20px;
    background: var(--rmys-white);
}

.rmys-filters__title {
    font-family: var(--rmys-font-heading);
    font-size: 16px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0 0 20px 0;
}

.rmys-filters__group {
    margin-bottom: 18px;
}

.rmys-filters__group:last-of-type {
    margin-bottom: 0;
}

.rmys-filters__group label {
    display: block;
    font-family: var(--rmys-font-heading);
    font-size: 13px;
    font-weight: 600;
    color: var(--rmys-gray-700);
    margin-bottom: 6px;
}

.rmys-filters__group select,
.rmys-filters__group input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 8px;
    font-family: var(--rmys-font-body);
    font-size: 14px;
    color: var(--rmys-gray-900);
    background: var(--rmys-gray-50);
    transition: border-color var(--rmys-transition);
}

.rmys-filters__group select:focus,
.rmys-filters__group input:focus {
    outline: none;
    border-color: var(--rmys-navy);
    background: var(--rmys-white);
}

.rmys-filters__submit {
    width: 100%;
    margin-top: 8px;
    justify-content: center;
}

/* — Card grid — */

.rmys-listings__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* — Map placeholder — */

.rmys-listings__map-placeholder {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    min-height: 420px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--rmys-gray-500);
    position: sticky;
    top: 100px;
}

.rmys-listings__map-icon {
    width: 56px;
    height: 56px;
    margin-bottom: 10px;
}

.rmys-listings__map-placeholder span {
    font-family: var(--rmys-font-heading);
    font-weight: 600;
    font-size: 15px;
    color: var(--rmys-gray-700);
}

.rmys-listings__map-placeholder small {
    font-size: 13px;
    margin-top: 4px;
    color: var(--rmys-gray-500);
}

/* — Empty state — */

.rmys-listings__empty {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    color: var(--rmys-gray-500);
    font-size: 15px;
}

/* — Pagination — */

.rmys-pagination {
    margin-top: 30px;
    display: flex;
    justify-content: center;
    gap: 4px;
}

.rmys-pagination a,
.rmys-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    color: var(--rmys-gray-700);
    text-decoration: none;
    transition: background var(--rmys-transition);
}

.rmys-pagination a:hover {
    background: var(--rmys-gray-100);
}

.rmys-pagination .current {
    background: var(--rmys-navy);
    color: var(--rmys-white);
}

/* Responsive: listings */
@media (max-width: 1280px) {
    .rmys-listings {
        grid-template-columns: 200px 1fr 220px;
        gap: 16px;
    }
}

@media (max-width: 1024px) {
    .rmys-listings-wrap {
        padding: 0 24px;
    }
    .rmys-listings {
        grid-template-columns: 220px 1fr;
        grid-template-areas:
            "sidebar content"
            "sidebar content";
        padding: 0 24px 40px;
    }
    .rmys-listings__map { display: none; }
    .rmys-listings__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .rmys-listings-wrap {
        padding: 0 16px;
    }
    .rmys-listings {
        grid-template-columns: 1fr;
        grid-template-areas:
            "sidebar"
            "content";
        padding: 0 16px 40px;
    }
    .rmys-listings__grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
    .rmys-listings__grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Program Card
   ========================================================================== */

.rmys-card {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    overflow: hidden;
    transition: box-shadow var(--rmys-transition), transform var(--rmys-transition);
}

.rmys-card:hover {
    box-shadow: var(--rmys-shadow-md);
    transform: translateY(-2px);
}

.rmys-card__link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.rmys-card__image {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 10;
    background: var(--rmys-gray-100);
    overflow: hidden;
}

.rmys-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rmys-card__img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rmys-gray-200);
    font-size: 48px;
}

.rmys-card__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    font-family: var(--rmys-font-heading);
    font-size: 12px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 50px;
    letter-spacing: 0.2px;
    z-index: 2;
}

.rmys-card__badge svg {
    width: 12px;
    height: 12px;
    fill: var(--rmys-navy);
}

.rmys-card__body {
    padding: 14px 16px 18px;
}

.rmys-card__title {
    font-family: var(--rmys-font-heading);
    font-size: 15px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0 0 2px;
    line-height: 1.3;
}

.rmys-card__org {
    font-size: 13px;
    color: var(--rmys-gray-500);
    margin: 0 0 10px;
}

.rmys-card__tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 6px;
}

.rmys-card__tag {
    display: inline-block;
    padding: 3px 12px;
    background: var(--rmys-gray-100);
    border: none;
    border-radius: 50px;
    font-size: 12px;
    color: var(--rmys-gray-700);
    font-weight: 500;
}

.rmys-card__skill {
    font-size: 12px;
    color: var(--rmys-gray-500);
    margin: 0 0 8px;
}

.rmys-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-top: 10px;
    margin-top: 10px;
    margin-bottom: 8px;
    border-top: 1px solid var(--rmys-gray-200);
}

.rmys-card__location {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    color: var(--rmys-gray-500);
}

.rmys-card__location svg {
    flex-shrink: 0;
    color: var(--rmys-red);
}

.rmys-card__distance {
    font-size: 12px;
    color: var(--rmys-gray-500);
    font-weight: 500;
}

.rmys-card__price {
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0;
}

.rmys-card__price-unit {
    font-family: var(--rmys-font-body);
    font-size: 13px;
    font-weight: 400;
    color: var(--rmys-gray-500);
    margin-left: 2px;
}

/* ==========================================================================
   Featured Programs Section  —  [rmys_featured_programs]
   ========================================================================== */

/* Full-bleed: break out of any boxed Elementor section so cards have proper room. */
.rmys-featured {
    padding: 40px 20px;
    font-family: var(--rmys-font-body);
    box-sizing: border-box;
}

.rmys-featured__inner {
    max-width: 1336px;
    margin: 0 auto;
}

.rmys-featured__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}

.rmys-featured__title {
    font-family: var(--rmys-font-heading);
    font-size: 22px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin: 0;
}

.rmys-featured__view-all {
    font-family: var(--rmys-font-heading);
    font-size: 14px;
    font-weight: 600;
    color: var(--rmys-red);
    text-decoration: none;
    transition: color var(--rmys-transition);
}

.rmys-featured__view-all:hover {
    color: var(--rmys-gold);
}

.rmys-featured__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

@media (max-width: 1024px) {
    .rmys-featured__grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 480px) {
    .rmys-featured__grid { grid-template-columns: 1fr !important; }
}

/* ==========================================================================
   Single Program Detail
   ========================================================================== */

.rmys-single {
    max-width: var(--rmys-max-width);
    margin: 0 auto;
    padding: 20px 20px 60px;
    font-family: var(--rmys-font-body);
}

.rmys-single__back {
    margin-bottom: 16px;
}

.rmys-single__back a {
    font-size: 14px;
    color: var(--rmys-gray-500);
    text-decoration: none;
    transition: color var(--rmys-transition);
}

.rmys-single__back a:hover {
    color: var(--rmys-navy);
}

.rmys-single__layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 32px;
    align-items: start;
}

/* — Hero image — */

.rmys-single__hero {
    position: relative;
    border-radius: var(--rmys-radius-lg);
    overflow: hidden;
    background: var(--rmys-gray-100);
    aspect-ratio: 16 / 8;
    margin-bottom: 20px;
}

.rmys-single__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rmys-single__image-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 72px;
    color: var(--rmys-gray-200);
}

.rmys-single__hero .rmys-card__badge {
    top: 14px;
    left: 14px;
    font-size: 12px;
    padding: 5px 14px;
}

/* — Title & org — */

.rmys-single__title {
    font-family: var(--rmys-font-heading);
    font-size: 26px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0 0 4px;
    line-height: 1.25;
}

.rmys-single__org {
    font-size: 14px;
    color: var(--rmys-gray-500);
    margin: 0 0 24px;
}

/* — Stats row — */

.rmys-single__stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius);
    margin-bottom: 32px;
    overflow: hidden;
}

.rmys-single__stat {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 16px;
    border-right: 1px solid var(--rmys-gray-200);
}

.rmys-single__stat:last-child {
    border-right: none;
}

.rmys-single__stat-icon {
    color: var(--rmys-navy);
    margin-bottom: 6px;
}

.rmys-single__stat small {
    font-size: 12px;
    color: var(--rmys-gray-500);
    margin-bottom: 2px;
}

.rmys-single__stat strong {
    font-family: var(--rmys-font-heading);
    font-size: 14px;
    color: var(--rmys-gray-900);
}

/* — Content sections — */

.rmys-single__section {
    margin-bottom: 32px;
}

.rmys-single__section h2 {
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin: 0 0 12px;
}

.rmys-single__content {
    font-size: 15px;
    line-height: 1.65;
    color: var(--rmys-gray-700);
}

.rmys-single__schedule {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    background: var(--rmys-gray-50);
    border-radius: var(--rmys-radius);
    font-size: 14px;
    color: var(--rmys-gray-700);
}

.rmys-single__schedule svg {
    color: var(--rmys-navy);
    flex-shrink: 0;
}

.rmys-single__location-info {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 24px;
    font-size: 14px;
    color: var(--rmys-gray-700);
}

.rmys-single__location-info svg {
    color: var(--rmys-red);
    flex-shrink: 0;
    margin-top: 2px;
}

.rmys-single__map,
.rmys-single__map-embed,
.rmys-single__map-placeholder {
    width: 100%;
    height: 280px;
    background: var(--rmys-gray-100);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rmys-gray-500);
    font-size: 14px;
}

/* — Sidebar — */

.rmys-single__sidebar {
    position: sticky;
    top: 100px;
}

.rmys-single__sidebar-card {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 24px;
    margin-bottom: 16px;
}

.rmys-single__price-block {
    margin-bottom: 16px;
}

.rmys-single__price {
    font-family: var(--rmys-font-heading);
    font-size: 28px;
    font-weight: 700;
    color: var(--rmys-gray-900);
}

.rmys-single__price-suffix {
    font-size: 14px;
    font-weight: 400;
    color: var(--rmys-gray-500);
    margin-left: 4px;
}

/* Register button — full-width, centered text + icon */
.rmys-single__register {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px 24px;
    font-size: 16px;
    border-radius: var(--rmys-radius);
    text-align: center;
    box-sizing: border-box;
}

.rmys-single__register-note {
    text-align: center;
    font-size: 12px;
    color: var(--rmys-gray-500);
    margin: 10px 0 20px;
    line-height: 1.4;
}

.rmys-single__sidebar-meta {
    list-style: none;
    margin: 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--rmys-gray-200);
}

.rmys-single__sidebar-meta li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
    font-size: 14px;
    color: var(--rmys-gray-700);
}

.rmys-single__sidebar-meta svg {
    color: var(--rmys-navy);
    flex-shrink: 0;
}

/* — About the Organization box — */

.rmys-single__about-org h3 {
    font-family: var(--rmys-font-heading);
    font-size: 15px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin: 0 0 8px;
}

.rmys-single__about-org p {
    font-size: 14px;
    color: var(--rmys-gray-700);
    margin: 0 0 6px;
}

.rmys-single__about-org small {
    font-size: 12px;
    color: var(--rmys-gray-500);
}

/* Responsive: single program */
@media (max-width: 768px) {
    .rmys-single__layout {
        grid-template-columns: 1fr;
    }

    .rmys-single__sidebar {
        position: static;
        order: -1;
    }

    .rmys-single__stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .rmys-single__stat:nth-child(2) {
        border-right: none;
    }
}

/* ==========================================================================
   Organization Socials (sidebar)
   ========================================================================== */

.rmys-socials {
    list-style: none;
    margin: 14px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--rmys-gray-200);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.rmys-socials li {
    margin: 0;
}

.rmys-socials a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--rmys-gray-50);
    color: var(--rmys-navy);
    transition: background var(--rmys-transition), color var(--rmys-transition), transform var(--rmys-transition);
}

.rmys-socials a:hover,
.rmys-socials a:focus-visible {
    background: var(--rmys-navy);
    color: var(--rmys-white);
    transform: translateY(-1px);
}

/* ==========================================================================
   Parent Reviews — list, summary, and submit form
   ========================================================================== */

.rmys-reviews__head {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 12px 18px;
    margin-bottom: 16px;
}

.rmys-reviews__head h2 {
    margin: 0;
}

.rmys-reviews__summary {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--rmys-gray-700);
}

.rmys-reviews__avg {
    font-family: var(--rmys-font-heading);
    font-size: 22px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    line-height: 1;
}

.rmys-stars {
    display: inline-flex;
    align-items: center;
    color: var(--rmys-gold);
}

.rmys-stars .rmys-star {
    flex-shrink: 0;
}

.rmys-stars .rmys-star--empty {
    color: var(--rmys-gray-300);
}

.rmys-reviews__count {
    color: var(--rmys-gray-500);
}

.rmys-reviews__list {
    list-style: none;
    margin: 0 0 28px;
    padding: 0;
    display: grid;
    gap: 16px;
}

.rmys-review {
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius);
    padding: 18px;
    background: var(--rmys-white);
}

.rmys-review__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.rmys-review__title {
    font-family: var(--rmys-font-heading);
    font-size: 16px;
    color: var(--rmys-gray-900);
    margin: 0;
    font-weight: 700;
}

.rmys-review__body {
    margin: 0 0 10px;
    color: var(--rmys-gray-700);
    line-height: 1.6;
    font-size: 15px;
    white-space: pre-wrap;
}

.rmys-review__meta {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--rmys-gray-500);
}

.rmys-review__meta strong {
    color: var(--rmys-gray-700);
}

.rmys-reviews__empty {
    background: var(--rmys-gray-50);
    border-radius: var(--rmys-radius);
    padding: 16px;
    color: var(--rmys-gray-500);
    margin: 0 0 24px;
    font-size: 14px;
}

/* — Submit form — */

.rmys-review-form {
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 22px;
    background: var(--rmys-white);
}

.rmys-review-form__title {
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    color: var(--rmys-gray-900);
    margin: 0 0 4px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.rmys-review-form__sub {
    color: var(--rmys-gray-500);
    font-size: 14px;
    margin: 0 0 16px;
}

.rmys-review-form__row {
    margin-bottom: 14px;
}

.rmys-review-form__row label {
    display: block;
    font-weight: 600;
    font-size: 14px;
    margin-bottom: 6px;
    color: var(--rmys-gray-700);
}

.rmys-review-form__row input[type="text"],
.rmys-review-form__row input[type="email"],
.rmys-review-form__row textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius);
    font-family: inherit;
    font-size: 14px;
    color: var(--rmys-gray-900);
    background: var(--rmys-white);
    transition: border-color var(--rmys-transition), box-shadow var(--rmys-transition);
}

.rmys-review-form__row input:focus,
.rmys-review-form__row textarea:focus {
    outline: none;
    border-color: var(--rmys-navy-light);
    box-shadow: 0 0 0 3px rgba(47, 93, 140, 0.15);
}

.rmys-review-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.rmys-review-form__hp {
    position: absolute;
    left: -9999px;
    height: 1px;
    width: 1px;
    opacity: 0;
}

.rmys-review-form__actions {
    margin-top: 6px;
}

.rmys-review-form__msg {
    margin: 14px 0 0;
    padding: 10px 14px;
    border-radius: var(--rmys-radius);
    font-size: 14px;
}

.rmys-review-form__msg.is-success {
    background: rgba(46, 139, 87, 0.1);
    color: #1f6b40;
    border: 1px solid rgba(46, 139, 87, 0.3);
}

.rmys-review-form__msg.is-error {
    background: rgba(198, 40, 40, 0.08);
    color: var(--rmys-red-hover);
    border: 1px solid rgba(198, 40, 40, 0.25);
}

/* — Star input — */

.rmys-stars-input {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--rmys-gray-300);
}

.rmys-stars-input__btn {
    background: none;
    border: none;
    padding: 2px;
    cursor: pointer;
    color: inherit;
    line-height: 0;
    transition: transform var(--rmys-transition);
}

.rmys-stars-input__btn:hover,
.rmys-stars-input__btn:focus-visible {
    outline: none;
    transform: scale(1.1);
}

.rmys-stars-input__btn.is-active {
    color: var(--rmys-gold);
}

.rmys-stars-input__btn.is-active svg {
    fill: currentColor;
}

@media (max-width: 600px) {
    .rmys-review-form__grid {
        grid-template-columns: 1fr;
    }
}

/* ==========================================================================
   Operator Auth (Login / Signup)  —  [rmys_operator_login] / [rmys_operator_signup]
   ========================================================================== */

.rmys-auth {
    width: 100%;
    padding: 60px 20px;
    background: #F9F7F2;
    font-family: var(--rmys-font-body);
}

.rmys-auth__inner {
    max-width: 440px;
    margin: 0 auto;
}

.rmys-auth__header {
    text-align: center;
    margin-bottom: 24px;
}

.rmys-auth__title {
    font-family: var(--rmys-font-heading);
    font-size: 28px;
    font-weight: 800;
    color: #0A1E33;
    margin: 0 0 6px;
    letter-spacing: -0.2px;
}

.rmys-auth__subtitle {
    font-size: 15px;
    color: #6B7280;
    margin: 0;
}

.rmys-auth__card {
    background: var(--rmys-white);
    border: 1px solid #E5E2DB;
    border-radius: var(--rmys-radius-lg);
    padding: 28px 28px 24px;
}

.rmys-auth__form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rmys-auth__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.rmys-auth__field label {
    font-size: 14px;
    font-weight: 500;
    color: #6B7280;
}

.rmys-auth__field input {
    width: 100%;
    padding: 12px 16px;
    background: #F3EFE7;
    border: 1px solid transparent;
    border-radius: 10px;
    font-family: var(--rmys-font-body);
    font-size: 14px;
    color: #1F2937;
    transition: border-color var(--rmys-transition), background var(--rmys-transition);
    box-sizing: border-box;
}

.rmys-auth__field input::placeholder {
    color: #9AA0A6;
}

.rmys-auth__field input:focus {
    outline: none;
    border-color: var(--rmys-navy);
    background: var(--rmys-white);
}

.rmys-auth__submit {
    width: 100%;
    margin-top: 8px;
    padding: 13px 20px;
    border: none;
    border-radius: 10px;
    background: #E8A926;
    color: #1A1A1A;
    font-family: var(--rmys-font-heading);
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: background var(--rmys-transition), transform var(--rmys-transition);
}

.rmys-auth__submit:hover {
    background: #D49721;
    transform: translateY(-1px);
}

.rmys-auth__footer {
    text-align: center;
    margin: 6px 0 0;
    font-size: 14px;
    color: #6B7280;
}

.rmys-auth__link {
    color: #1E3A5F;
    font-weight: 600;
    text-decoration: none;
    margin-left: 6px;
    transition: color var(--rmys-transition);
}

.rmys-auth__link:hover {
    color: var(--rmys-red);
}

@media (max-width: 480px) {
    .rmys-auth {
        padding: 32px 16px;
    }
    .rmys-auth__card {
        padding: 22px 18px 20px;
    }
    .rmys-auth__title {
        font-size: 24px;
    }
}

/* ==========================================================================
   Sports Grid Widget  —  Elementor RMYS_Widget_Sports_Grid
   Image-only cards with the sport name overlaid at the bottom.
   ========================================================================== */

/* Fluid, centered container — no full-bleed breakout and no horizontal scroll.
   The grid fills its column width and wraps cards onto new rows. */
.rmys-sports-grid {
    width: 100%;
    max-width: 1140px;
    margin: 0 auto;
    padding: 40px 20px;
    font-family: var(--rmys-font-body);
    box-sizing: border-box;
}

.rmys-sports-grid__header {
    margin-bottom: 24px;
    text-align: center;
}

.rmys-sports-grid__title {
    font-family: var(--rmys-font-heading);
    font-size: 24px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rmys-sports-grid__grid {
    display: grid;
    grid-template-columns: repeat(var(--rmys-sg-cols, 4), 1fr);
    gap: 16px;
    box-sizing: border-box;
}

.rmys-sport-card {
    position: relative;
    display: block;
    overflow: hidden;
    border: 1px solid #E0E5EB;
    border-radius: 12px;
    width: 100%;
    aspect-ratio: 4 / 3;
    box-sizing: border-box;
    text-decoration: none;
    color: inherit;
    background: var(--rmys-gray-100);
    box-shadow: 0 2px 6px rgba(0,0,0,.08);
    transition: transform var(--rmys-transition), box-shadow var(--rmys-transition);
}

.rmys-sport-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0,0,0,.18);
}

.rmys-sport-card__img,
.rmys-sport-card__placeholder {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 400ms ease;
}

.rmys-sport-card:hover .rmys-sport-card__img {
    transform: scale(1.04);
}

.rmys-sport-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rmys-gray-200);
    font-size: 48px;
    background: var(--rmys-gray-100);
}

.rmys-sport-card__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    padding: 18px 12px 16px;
    background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, transparent 60%);
    text-align: center;
    pointer-events: none;
}

.rmys-sport-card__name {
    font-family: var(--rmys-font-heading);
    font-size: 17px;
    font-weight: 600;
    color: #FFFFFF;
    margin: 0;
    line-height: 1.2;
    text-shadow: 0 1px 3px rgba(0,0,0,0.4);
    letter-spacing: 0.2px;
}

.rmys-sport-card__count {
    margin-top: 4px;
    font-size: 12px;
    color: #E5E5E5;
    text-shadow: 0 1px 2px rgba(0,0,0,0.4);
}

/* Mobile: always 2 columns, simple wrapping grid, no horizontal scroll. */
@media (max-width: 768px) {
    .rmys-sports-grid__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .rmys-sports-grid__grid {
        gap: 12px;
    }

    .rmys-sport-card__name {
        font-size: 15px;
    }
}

/* ==========================================================================
   Pricing — [rmys_packages]
   ========================================================================== */

.rmys-packages {
    --rmys-pkg-radius: 14px;
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--rmys-gray-700);
    padding: 48px 16px;
}

.rmys-packages__grid {
    display: grid;
    gap: 24px;
    max-width: 1200px;
    margin: 0 auto;
    align-items: stretch;
}

.rmys-packages__grid--1 { grid-template-columns: minmax(280px, 380px); justify-content: center; }
.rmys-packages__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; }
.rmys-packages__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rmys-packages__grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

@media (max-width: 960px) {
    .rmys-packages__grid--3,
    .rmys-packages__grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 820px; }
}

@media (max-width: 600px) {
    .rmys-packages__grid { grid-template-columns: 1fr !important; max-width: 480px; }
}

.rmys-package {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-pkg-radius);
    padding: 32px 28px;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.rmys-package:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(15, 42, 68, 0.08);
    border-color: var(--rmys-gray-300);
}

.rmys-package--highlight {
    border: 2px solid var(--rmys-gold);
}

.rmys-package--highlight:hover {
    box-shadow: 0 16px 36px rgba(244, 180, 0, 0.18);
}

.rmys-package__badge {
    position: absolute;
    top: -14px;
    right: 24px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.3px;
    padding: 7px 14px;
    border-radius: 999px;
    white-space: nowrap;
    box-shadow: 0 4px 12px rgba(244, 180, 0, 0.35);
}

.rmys-package__badge-star {
    color: var(--rmys-navy);
}

.rmys-package__header {
    margin-bottom: 20px;
}

.rmys-package__title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 24px;
    letter-spacing: 0;
    color: var(--rmys-navy);
    margin: 0 0 8px;
    text-transform: none;
}

.rmys-package__subtitle {
    font-size: 14.5px;
    color: var(--rmys-navy-light);
    margin: 0;
    line-height: 1.5;
}

.rmys-package__price {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin-bottom: 24px;
}

.rmys-package__price-amount {
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: 44px;
    color: var(--rmys-navy);
    line-height: 1;
}

.rmys-package__price-suffix {
    font-size: 15px;
    color: var(--rmys-gray-700);
    font-weight: 500;
}

.rmys-package__features {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex: 1;
}

.rmys-package__feature {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14.5px;
    line-height: 1.5;
    color: var(--rmys-navy);
}

.rmys-package__check {
    flex-shrink: 0;
    color: var(--rmys-gold);
    margin-top: 2px;
}

.rmys-package__cta {
    display: block;
    text-align: center;
    background: var(--rmys-gray-50);
    color: var(--rmys-navy) !important;
    text-decoration: none;
    padding: 15px 20px;
    border-radius: 10px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 14.5px;
    letter-spacing: 0.2px;
    text-transform: none;
    transition: background .2s ease, color .2s ease, transform .1s ease;
}

.rmys-package__cta:hover {
    background: var(--rmys-gray-200);
    color: var(--rmys-navy) !important;
}

.rmys-package--highlight .rmys-package__cta {
    background: var(--rmys-gold);
    color: var(--rmys-navy) !important;
}

.rmys-package--highlight .rmys-package__cta:hover {
    background: var(--rmys-gold-hover);
    color: var(--rmys-navy) !important;
}

.rmys-package__cta:active {
    transform: scale(0.98);
}

/* ==========================================================================
   Package Stack — "Everything in [prev], plus:" condensed pricing
   ========================================================================== */

/* Lede shown above the perks list ("Includes:" on the cheapest tier, or
   "Everything in Starter, plus:" on every tier above it). */
.rmys-package__includes-lede {
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 13.5px;
    color: var(--rmys-navy);
    letter-spacing: 0.2px;
    margin: 0 0 12px;
    text-transform: none;
}

.rmys-package__includes-empty {
    font-size: 14px;
    color: var(--rmys-navy-light);
    margin: 0 0 24px;
    line-height: 1.5;
}

/* Collapsible "Compare full feature list" below the cards. */
.rmys-stack__compare {
    /* This sits inside `.rmys-packages` (display:flex; align-items:center), so
       without an explicit width it shrink-wraps to its content — and the wide
       comparison table then forces it past the viewport, pushing the centered
       billing toggle off-screen on mobile. Stretch it to the available width
       and keep the table scrolling inside `.rmys-cmp__scroll` instead. */
    width: 100%;
    max-width: 1200px;
    box-sizing: border-box;
    margin: 32px auto 0;
    border-top: 1px solid var(--rmys-gray-200);
    padding: 12px 16px 0;
}

.rmys-stack__compare-summary {
    list-style: none;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: 'Montserrat', sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: var(--rmys-navy);
    padding: 12px 16px;
    border-radius: 999px;
    background: var(--rmys-gray-50);
    transition: background .15s ease;
    user-select: none;
}

.rmys-stack__compare-summary::-webkit-details-marker { display: none; }

.rmys-stack__compare-summary:hover {
    background: var(--rmys-gray-200);
}

.rmys-stack__compare-caret {
    transition: transform .2s ease;
    color: var(--rmys-navy-light);
}

.rmys-stack__compare[open] .rmys-stack__compare-caret {
    transform: rotate(180deg);
}

.rmys-stack__compare-body {
    margin-top: 24px;
}

/* The embedded comparison table already has its own outer padding via
   .rmys-cmp; strip the redundant top margin so it tucks neatly under the
   summary. */
.rmys-stack__compare-body .rmys-cmp {
    padding-top: 0;
}

/* ==========================================================================
   Operator Signup — selected plan header + notices + busy state
   ========================================================================== */

.rmys-auth__plan {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    background: var(--rmys-gray-50);
    border: 1px solid var(--rmys-gray-200);
    border-radius: 10px;
    padding: 14px 18px;
    margin-bottom: 22px;
}

.rmys-auth__plan-meta {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.rmys-auth__plan-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--rmys-gray-500);
    font-weight: 600;
}

.rmys-auth__plan-name {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 17px;
    color: var(--rmys-navy);
}

.rmys-auth__plan-price {
    display: flex;
    align-items: baseline;
    gap: 4px;
    flex-wrap: wrap;
}

.rmys-auth__plan-amount {
    font-family: 'Montserrat', sans-serif;
    font-weight: 800;
    font-size: 22px;
    color: var(--rmys-navy);
    line-height: 1;
}

.rmys-auth__plan-period {
    font-size: 13px;
    color: var(--rmys-gray-500);
}

.rmys-auth__plan-change {
    margin-left: 12px;
    font-size: 13px;
    color: var(--rmys-red);
    text-decoration: none;
    font-weight: 600;
}

.rmys-auth__plan-change:hover {
    text-decoration: underline;
}

.rmys-auth__notice {
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 18px;
    font-size: 14.5px;
    line-height: 1.5;
}

.rmys-auth__notice--warn {
    background: #FFF8E1;
    border: 1px solid #F4D078;
    color: #6B5300;
}

.rmys-auth__notice--error {
    background: #FFEBEE;
    border: 1px solid #F4B0B0;
    color: #842121;
}

.rmys-auth__notice strong {
    display: block;
    font-weight: 700;
    margin-bottom: 4px;
}

.rmys-auth__notice p {
    margin: 0 0 12px;
}

.rmys-auth__error {
    background: #FFEBEE;
    border: 1px solid #F4B0B0;
    color: #842121;
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 14px;
    font-size: 14px;
}

.rmys-auth__submit.is-busy {
    opacity: 0.75;
    cursor: progress;
    pointer-events: none;
}

/* ==========================================================================
   Welcome / post-payment finalization
   ========================================================================== */

.rmys-welcome {
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 48px 16px;
    font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, sans-serif;
}

.rmys-welcome__inner {
    max-width: 480px;
    text-align: center;
    color: var(--rmys-navy);
}

.rmys-welcome__spinner {
    width: 56px;
    height: 56px;
    margin: 0 auto 28px;
    border: 4px solid var(--rmys-gray-200);
    border-top-color: var(--rmys-gold);
    border-radius: 50%;
    animation: rmys-welcome-spin 0.9s linear infinite;
}

@keyframes rmys-welcome-spin {
    to { transform: rotate(360deg); }
}

.rmys-welcome__title {
    font-family: 'Montserrat', sans-serif;
    font-weight: 700;
    font-size: 24px;
    color: var(--rmys-navy);
    margin: 0 0 10px;
}

.rmys-welcome__subtitle {
    font-size: 15px;
    color: var(--rmys-gray-700);
    line-height: 1.5;
    margin: 0;
}

.rmys-welcome__hint {
    margin-top: 24px;
    font-size: 13.5px;
    color: var(--rmys-gray-500);
}

.rmys-welcome__hint a {
    color: var(--rmys-red);
    font-weight: 600;
}

/* ==========================================================================
   Operator Dashboard
   [rmys_operator_dashboard] / [rmys_operator_settings]
   ========================================================================== */

.rmys-dashboard {
    background: #F7F7F5;
    min-height: 60vh;
    padding: 32px 20px 80px;
    font-family: var(--rmys-font-body);
    color: var(--rmys-gray-900);
}

.rmys-dashboard__inner {
    max-width: var(--rmys-max-width);
    margin: 0 auto;
}

/* Hide the theme-rendered duplicate page title on dashboard pages.
   The shortcode template renders its own <h1>Dashboard</h1>; we don't
   want the theme's <h1 class="entry-title">Operator Dashboard</h1>
   stacked above it. The body class is added by RMYS_Dashboard_Page_Chrome. */
.rmys-page-dashboard .entry-title,
.rmys-page-dashboard .page-title,
.rmys-page-dashboard .elementor-page-title,
.rmys-page-dashboard .elementor-widget-theme-post-title {
    display: none !important;
}

/* Some themes wrap the page in a max-width container that's narrower than
   our 1200px dashboard. On dashboard pages, let our inner container go wide. */
.rmys-page-dashboard .entry-content,
.rmys-page-dashboard .site-main,
.rmys-page-dashboard .elementor-widget-theme-post-content > .elementor-widget-container {
    max-width: none;
    padding-left: 0;
    padding-right: 0;
}

/* — Header — */

.rmys-dashboard__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.rmys-dashboard__heading h1 {
    font-family: var(--rmys-font-heading);
    font-size: 26px;
    font-weight: 800;
    color: var(--rmys-gray-900);
    margin: 0 0 4px;
    line-height: 1.2;
}

.rmys-dashboard__heading p {
    color: var(--rmys-gray-500);
    margin: 0;
    font-size: 14px;
}

.rmys-dashboard__actions {
    display: flex;
    align-items: center;
    gap: 8px;
}

.rmys-dashboard__notice {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 32px;
    text-align: center;
    color: var(--rmys-gray-700);
}

.rmys-dashboard__notice h2 {
    font-family: var(--rmys-font-heading);
    margin: 0 0 8px;
    color: var(--rmys-gray-900);
}

/* — Dashboard buttons (lighter than primary brand button) — */

.rmys-dash-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius);
    color: var(--rmys-gray-900);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
    transition: background var(--rmys-transition), border-color var(--rmys-transition), transform var(--rmys-transition);
    line-height: 1;
}

.rmys-dash-btn:hover {
    background: var(--rmys-gray-50);
    border-color: var(--rmys-gray-300);
    transform: translateY(-1px);
}

.rmys-dash-btn--icon {
    padding: 8px 10px;
    color: var(--rmys-gray-700);
}

.rmys-dash-btn--ghost {
    background: transparent;
    border-color: transparent;
    color: var(--rmys-navy);
}

.rmys-dash-btn--ghost:hover {
    background: var(--rmys-gray-50);
}

.rmys-dash-btn--danger {
    color: var(--rmys-red);
    border-color: rgba(198, 40, 40, 0.3);
}

.rmys-dash-btn--danger:hover {
    background: rgba(198, 40, 40, 0.05);
    border-color: var(--rmys-red);
}

.rmys-dash-btn.is-locked {
    color: var(--rmys-gray-500, #6b7280);
    background: var(--rmys-gray-50, #f9fafb);
    cursor: help;
    opacity: 0.85;
}

.rmys-dash-btn.is-locked:hover {
    background: var(--rmys-gray-100, #f3f4f6);
    transform: none;
}

/* Gold add-program button (matches design) */
.rmys-btn--gold {
    background: var(--rmys-gold);
    color: var(--rmys-navy);
}

.rmys-btn--gold:hover {
    background: var(--rmys-gold-hover);
    color: var(--rmys-navy);
    transform: translateY(-1px);
}

.rmys-btn.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
}

/* — KPI cards — */

.rmys-kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
}

.rmys-kpi {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 20px 22px;
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
}

.rmys-kpi__label {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--rmys-gray-500);
    margin-bottom: 6px;
    font-weight: 500;
}

.rmys-kpi__value {
    font-family: var(--rmys-font-heading);
    font-size: 30px;
    font-weight: 800;
    color: var(--rmys-gray-900);
    margin-bottom: 4px;
    line-height: 1.1;
}

.rmys-kpi__delta {
    font-size: 12px;
    font-weight: 600;
}

.rmys-kpi__delta.is-up    { color: var(--rmys-navy-light); }
.rmys-kpi__delta.is-down  { color: var(--rmys-red); }
.rmys-kpi__delta.is-muted { color: var(--rmys-gray-500); font-weight: 500; }

/* — Locked feature overlay — */

.rmys-locked {
    position: relative;
    border-radius: var(--rmys-radius-lg);
    overflow: hidden;
    isolation: isolate; /* keep blur/overlay scoped */
}

.rmys-locked__inner {
    filter: blur(6px) saturate(0.6);
    opacity: 0.35;
    pointer-events: none;
    user-select: none;
}

.rmys-locked__overlay {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px;
    background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(245,245,245,0.92));
    border: 1px dashed var(--rmys-gray-300);
    border-radius: var(--rmys-radius-lg);
    text-align: center;
}

.rmys-locked__icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--rmys-white);
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    color: var(--rmys-navy);
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.rmys-locked__cta {
    background: var(--rmys-navy);
    color: var(--rmys-white);
    padding: 7px 16px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 700;
    text-decoration: none;
    letter-spacing: 0.2px;
    transition: background var(--rmys-transition), transform var(--rmys-transition);
}

.rmys-locked__cta:hover {
    background: var(--rmys-navy-light);
    color: var(--rmys-white);
    transform: translateY(-1px);
}

/* — Tabs — */

.rmys-tabs {
    display: inline-flex;
    max-width: 100%;
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius);
    padding: 4px;
    gap: 4px;
    margin-bottom: 20px;
    /* Keep each tab on a single line; scroll the bar if the labels don't all
       fit (e.g. "Saved Programs" + "For You" + … on a narrow phone) rather
       than wrapping a label onto two lines. */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.rmys-tabs::-webkit-scrollbar {
    display: none;
}

.rmys-tab {
    padding: 8px 16px;
    border-radius: 6px;
    color: var(--rmys-gray-700);
    text-decoration: none;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background var(--rmys-transition), color var(--rmys-transition);
}

.rmys-tab:hover {
    background: var(--rmys-gray-50);
    color: var(--rmys-gray-900);
}

.rmys-tab.is-active {
    background: var(--rmys-gray-50);
    color: var(--rmys-gray-900);
}

/* — Listings list — */

/* Defensive: some themes (and Elementor wrappers) inherit grid/column styles
   to descendant blocks. Force block flow on our listings container so the
   head sits ON TOP of the rows, not beside them. */
.rmys-dash-listings,
.rmys-dash-listings__inner {
    display: block !important;
    width: 100%;
}

.rmys-dash-listings__head {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
}

.rmys-dash-listings__head h2 {
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0;
}

.rmys-dash-listings__locked-add {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.rmys-dash-listings__locked-link {
    font-size: 12px;
    color: var(--rmys-red);
    text-decoration: none;
}

.rmys-dash-listings__empty {
    background: var(--rmys-white);
    border: 1px dashed var(--rmys-gray-300);
    border-radius: var(--rmys-radius-lg);
    padding: 36px;
    text-align: center;
}

.rmys-dash-listings__empty h3 {
    font-family: var(--rmys-font-heading);
    margin: 0 0 6px;
    color: var(--rmys-gray-900);
}

.rmys-dash-listings__empty p {
    color: var(--rmys-gray-500);
    margin: 0 0 14px;
}

.rmys-listing-rows {
    list-style: none;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 10px;
    width: 100%;
}

.rmys-listing-rows > li {
    width: 100%;
    margin: 0;
    list-style: none;
}

/* Parent + child grouping. The "group" wraps the parent row, an optional
   children block, and an "Add session" CTA — kept visually attached so
   the operator reads each offering as one unit. */
.rmys-listing-group { width: 100%; }
.rmys-listing-group .rmys-listing-rows--inner { gap: 0; }
.rmys-listing-group__sessions {
    margin-top: 8px;
    margin-left: 24px;
    padding-left: 16px;
    border-left: 2px solid var(--rmys-gray-200);
}
.rmys-listing-group__sessions-label {
    margin: 0 0 8px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--rmys-gray-500);
    font-weight: 600;
}
.rmys-listing-group__add {
    margin-top: 8px;
    margin-left: 24px;
}
.rmys-listing-rows--children { gap: 6px; }
.rmys-listing-row.is-child {
    background: var(--rmys-gray-50, #fafbfc);
    padding: 12px 16px;
    border-style: dashed;
}
.rmys-listing-row.is-child .rmys-listing-row__title { font-size: 14px; font-weight: 600; }

.rmys-listing-row {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 16px 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
}

.rmys-listing-row__title-line {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.rmys-listing-row__title {
    font-family: var(--rmys-font-heading);
    font-size: 15px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0;
}

.rmys-listing-row__badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.rmys-listing-row__status {
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.rmys-listing-row__status.is-pending {
    background: rgba(244, 180, 0, 0.18);
    color: #8a6d00;
}

.rmys-listing-row__status.is-draft {
    background: var(--rmys-gray-50);
    color: var(--rmys-gray-500);
}

.rmys-listing-row__status.is-rejected {
    background: rgba(197, 34, 31, .12);
    color: #c5221f;
}

.rmys-listing-row__status.is-approved {
    background: rgba(19, 115, 51, .12);
    color: #137333;
}

/* ─── Status filter pills on the listings tab ───────────────────────────── */
.rmys-dash-listings__filters {
    display: flex;
    gap: 6px;
    margin: 4px 0 16px;
    flex-wrap: wrap;
}
.rmys-dash-listings__filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border: 1px solid var(--rmys-gray-200);
    background: #fff;
    border-radius: 999px;
    font-size: 13px;
    color: var(--rmys-gray-700, #444);
    text-decoration: none;
    line-height: 1;
    transition: background .15s, border-color .15s, color .15s;
}
.rmys-dash-listings__filter:hover {
    background: var(--rmys-gray-50, #f8f9fa);
    color: var(--rmys-navy, #0F2A44);
}
.rmys-dash-listings__filter.is-active {
    background: var(--rmys-navy, #0F2A44);
    border-color: var(--rmys-navy, #0F2A44);
    color: #fff;
}
.rmys-dash-listings__filter-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--rmys-gray-100, #eef0f3);
    color: var(--rmys-gray-700, #444);
    font-size: 11px;
    font-weight: 700;
}
.rmys-dash-listings__filter.is-active .rmys-dash-listings__filter-count {
    background: rgba(255, 255, 255, .2);
    color: #fff;
}
.rmys-dash-listings__filter--approved:not(.is-active) .rmys-dash-listings__filter-count { background: rgba(19, 115, 51, .12); color: #137333; }
.rmys-dash-listings__filter--pending:not(.is-active)  .rmys-dash-listings__filter-count { background: rgba(244, 180, 0, .18); color: #8a6d00; }
.rmys-dash-listings__filter--rejected:not(.is-active) .rmys-dash-listings__filter-count { background: rgba(197, 34, 31, .12); color: #c5221f; }

.rmys-listing-row__meta {
    color: var(--rmys-gray-500);
    margin: 0;
    font-size: 13px;
}

.rmys-listing-row__actions {
    display: flex;
    gap: 6px;
    align-items: center;
}

/* — Listing form — */

.rmys-listing-form {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 24px;
}

.rmys-listing-form__group {
    border: 0;
    padding: 0;
    margin: 0 0 24px;
}

.rmys-listing-form__group legend {
    font-family: var(--rmys-font-heading);
    font-size: 13px;
    font-weight: 700;
    color: var(--rmys-gray-700);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 14px;
    padding: 0;
}

.rmys-listing-form__row {
    margin-bottom: 14px;
}

.rmys-listing-form__row label {
    display: block;
    font-weight: 600;
    font-size: 13px;
    margin-bottom: 6px;
    color: var(--rmys-gray-700);
}

.rmys-listing-form__row input[type="text"],
.rmys-listing-form__row input[type="email"],
.rmys-listing-form__row input[type="url"],
.rmys-listing-form__row input[type="number"],
.rmys-listing-form__row input[type="password"],
.rmys-listing-form__row select,
.rmys-listing-form__row textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius);
    font-family: inherit;
    font-size: 14px;
    color: var(--rmys-gray-900);
    background: var(--rmys-white);
    transition: border-color var(--rmys-transition), box-shadow var(--rmys-transition);
}

.rmys-listing-form__row input:focus,
.rmys-listing-form__row select:focus,
.rmys-listing-form__row textarea:focus {
    outline: none;
    border-color: var(--rmys-navy-light);
    box-shadow: 0 0 0 3px rgba(47, 93, 140, 0.15);
}

.rmys-listing-form__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.rmys-listing-form__hint {
    color: var(--rmys-gray-500);
    font-size: 13px;
    margin: -6px 0 12px;
}

.rmys-listing-form__actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 8px;
}

.rmys-listing-form__msg {
    margin: 0 0 18px;
    padding: 10px 14px;
    border-radius: var(--rmys-radius);
    font-size: 14px;
}

.rmys-listing-form__msg.is-success {
    background: rgba(46, 139, 87, 0.1);
    color: #1f6b40;
    border: 1px solid rgba(46, 139, 87, 0.3);
}

.rmys-listing-form__msg.is-error {
    background: rgba(198, 40, 40, 0.08);
    color: var(--rmys-red-hover);
    border: 1px solid rgba(198, 40, 40, 0.25);
}

/* — Photo uploader — */

.rmys-photo-uploader__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}

.rmys-photo-uploader__list:empty {
    display: none;
}

.rmys-photo-uploader__thumb {
    position: relative;
    aspect-ratio: 1 / 1;
    border-radius: var(--rmys-radius);
    overflow: hidden;
    background: var(--rmys-gray-100);
    border: 1px solid var(--rmys-gray-200);
}

.rmys-photo-uploader__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.rmys-photo-uploader__remove {
    position: absolute;
    top: 4px;
    right: 4px;
    background: rgba(0,0,0,0.65);
    color: #fff;
    border: 0;
    border-radius: 999px;
    width: 22px;
    height: 22px;
    cursor: pointer;
    line-height: 1;
    font-size: 14px;
}

.rmys-photo-uploader__remove:hover {
    background: var(--rmys-red);
}

/* — Subscription tab — */

.rmys-subscription__current {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}

.rmys-subscription__label {
    font-size: 12px;
    color: var(--rmys-gray-500);
    text-transform: uppercase;
    letter-spacing: 0.4px;
    font-weight: 600;
}

.rmys-subscription__name {
    font-family: var(--rmys-font-heading);
    font-size: 22px;
    font-weight: 800;
    color: var(--rmys-gray-900);
    margin: 4px 0 8px;
}

.rmys-subscription__price {
    margin: 0 0 6px;
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--rmys-gray-900);
}

.rmys-subscription__price span {
    font-size: 14px;
    font-weight: 500;
    color: var(--rmys-gray-500);
}

.rmys-subscription__status {
    margin: 0;
    font-size: 13px;
    color: var(--rmys-gray-700);
}

.rmys-subscription__pill {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    text-transform: capitalize;
    margin-left: 4px;
}

.rmys-subscription__pill.is-active,
.rmys-subscription__pill.is-trialing {
    background: rgba(46,139,87,0.12);
    color: #1f6b40;
}

.rmys-subscription__pill.is-past_due,
.rmys-subscription__pill.is-unpaid {
    background: rgba(198,40,40,0.12);
    color: var(--rmys-red-hover);
}

.rmys-subscription__pill.is-canceled,
.rmys-subscription__pill.is-incomplete,
.rmys-subscription__pill.is-incomplete_expired,
.rmys-subscription__pill.is-unknown {
    background: var(--rmys-gray-50);
    color: var(--rmys-gray-700);
}

.rmys-subscription__current-actions {
    text-align: right;
}

.rmys-subscription__current-actions .rmys-btn {
    margin-bottom: 6px;
}

.rmys-subscription__hint {
    color: var(--rmys-gray-500);
    font-size: 12px;
    margin: 0;
}

.rmys-subscription__section-title {
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0 0 4px;
}

.rmys-plans {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
    margin-top: 16px;
}

.rmys-plan {
    position: relative;
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 22px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rmys-plan.is-current {
    border-color: var(--rmys-navy);
    box-shadow: 0 0 0 3px rgba(15, 42, 68, 0.08);
}

.rmys-plan.is-highlight {
    border-color: var(--rmys-gold);
}

.rmys-plan__highlight {
    position: absolute;
    top: -12px;
    right: 16px;
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 4px 10px;
    border-radius: 999px;
}

.rmys-plan__name {
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    font-weight: 700;
    color: var(--rmys-gray-900);
    margin: 0;
}

.rmys-plan__price {
    font-family: var(--rmys-font-heading);
    font-size: 22px;
    font-weight: 800;
    color: var(--rmys-gray-900);
    margin: 0;
}

.rmys-plan__price span {
    font-size: 13px;
    font-weight: 500;
    color: var(--rmys-gray-500);
}

.rmys-plan__features {
    list-style: none;
    margin: 6px 0 12px;
    padding: 0;
    color: var(--rmys-gray-700);
    font-size: 13.5px;
    line-height: 1.5;
    flex: 1;
}

.rmys-plan__features li {
    padding-left: 18px;
    position: relative;
    margin-bottom: 4px;
}

.rmys-plan__features li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--rmys-green);
    font-weight: 700;
}

.rmys-plan__cta {
    margin-top: auto;
}

.rmys-plan__current-badge {
    margin-top: auto;
    padding: 8px 14px;
    text-align: center;
    background: var(--rmys-gray-50);
    color: var(--rmys-navy);
    border-radius: var(--rmys-radius);
    font-size: 13px;
    font-weight: 600;
}

/* — Settings form (reuses listing form classes; just needs spacing) — */

.rmys-settings-form {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 24px;
}

/* — Auth form error line — */

.rmys-auth__error {
    margin: 0 0 14px;
    padding: 10px 14px;
    border-radius: var(--rmys-radius);
    background: rgba(198, 40, 40, 0.08);
    color: var(--rmys-red-hover);
    border: 1px solid rgba(198, 40, 40, 0.25);
    font-size: 14px;
}

/* — Mobile — */

@media (max-width: 768px) {
    .rmys-kpis {
        grid-template-columns: 1fr;
    }
    .rmys-listing-form__grid {
        grid-template-columns: 1fr;
    }
    .rmys-listing-row {
        align-items: flex-start;
    }
    .rmys-subscription__current {
        flex-direction: column;
        align-items: flex-start;
    }
    .rmys-subscription__current-actions {
        text-align: left;
    }
}

/* ==========================================================================
   Phase 2 — Billing toggle, Perks panel, Quotas, Comparison table additions
   ========================================================================== */

.rmys-billing-toggle {
    display: inline-flex;
    background: var(--rmys-gray-50);
    border-radius: 999px;
    padding: 4px;
    margin: 0 auto 24px;
    gap: 4px;
    align-self: center;
}
.rmys-packages .rmys-billing-toggle,
.rmys-cmp .rmys-billing-toggle { display: flex; width: max-content; max-width: 100%; }
.rmys-billing-toggle__btn {
    background: transparent;
    border: 0;
    padding: 8px 18px;
    border-radius: 999px;
    font-family: var(--rmys-font-heading);
    font-size: 14px;
    font-weight: 600;
    color: var(--rmys-gray-500);
    cursor: pointer;
    transition: background var(--rmys-transition), color var(--rmys-transition);
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
}
.rmys-billing-toggle__btn:hover { color: var(--rmys-navy); }
.rmys-billing-toggle__btn.is-active { background: var(--rmys-navy); color: var(--rmys-white); }
.rmys-billing-toggle__hint {
    font-size: 11px;
    font-weight: 700;
    color: var(--rmys-gold);
    text-transform: uppercase;
    letter-spacing: .5px;
}
.rmys-billing-toggle__btn.is-active .rmys-billing-toggle__hint { color: var(--rmys-gold); }

.rmys-packages { display: flex; flex-direction: column; align-items: center; }
.rmys-packages__grid { width: 100%; }

.rmys-package__price-block { text-align: center; margin-bottom: 18px; }
.rmys-package__savings {
    color: var(--rmys-gold-hover);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    margin: 4px 0 0;
}
.rmys-package__alt-price {
    color: var(--rmys-gray-500);
    font-size: 13px;
    margin: 4px 0 0;
}
.rmys-package__best-for {
    border-top: 1px solid var(--rmys-gray-200);
    padding-top: 12px;
    margin-top: 16px;
    color: var(--rmys-gray-700);
    font-size: 13px;
    line-height: 1.5;
}
.rmys-package__best-for strong { color: var(--rmys-navy); margin-right: 4px; }

.rmys-cmp { margin: 32px 0; }
.rmys-cmp__scroll {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
}
.rmys-cmp__table {
    width: 100%;
    border-collapse: collapse;
    background: var(--rmys-white);
    border-radius: var(--rmys-radius-lg);
    overflow: hidden;
    box-shadow: var(--rmys-shadow);
    font-family: var(--rmys-font-body);
}
.rmys-cmp__table th,
.rmys-cmp__table td {
    padding: 14px 18px;
    text-align: left;
    border-bottom: 1px solid var(--rmys-gray-200);
    font-size: 14px;
    color: var(--rmys-gray-700);
    vertical-align: middle;
}
.rmys-cmp__table thead th {
    background: var(--rmys-navy);
    color: var(--rmys-white);
    font-family: var(--rmys-font-heading);
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: .5px;
    font-weight: 700;
}
.rmys-cmp__tier-col.is-highlight { background: var(--rmys-red); }
.rmys-cmp__tier-name { display: block; font-size: 14px; }
.rmys-cmp__tier-badge {
    display: inline-block;
    margin-top: 4px;
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    padding: 2px 8px;
    font-size: 10px;
    border-radius: 999px;
}
.rmys-cmp__feature-col { width: 36%; color: var(--rmys-navy); font-weight: 600; }
.rmys-cmp__category-row th {
    background: var(--rmys-gray-50);
    color: var(--rmys-navy);
    font-family: var(--rmys-font-heading);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .6px;
    padding: 10px 18px;
}
.rmys-cmp__check { color: var(--rmys-green); font-weight: 700; font-size: 18px; }
.rmys-cmp__dash  { color: var(--rmys-gray-300); }
.rmys-cmp__text  { color: var(--rmys-navy); font-weight: 600; }
.rmys-cmp__period-suffix { color: var(--rmys-gray-500); font-size: 12px; margin-left: 2px; }
.rmys-cmp__savings { display: block; color: var(--rmys-gold-hover); font-size: 11px; font-weight: 700; margin-top: 2px; }
.rmys-cmp__cta {
    display: inline-block;
    background: var(--rmys-red);
    color: var(--rmys-white);
    padding: 8px 16px;
    border-radius: var(--rmys-radius);
    text-decoration: none;
    font-family: var(--rmys-font-heading);
    font-weight: 700;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .4px;
    transition: background var(--rmys-transition);
}
.rmys-cmp__cta:hover { background: var(--rmys-gold); color: var(--rmys-navy); }
.rmys-cmp__footnote { color: var(--rmys-gray-500); font-size: 12px; margin-top: 12px; }
.rmys-cmp__hint { display: none; }  /* shown only on phones, see media query below */

/* --- Comparison table on phones -------------------------------------------
   A multi-tier matrix can't fit a phone, so we keep it on one row and let it
   scroll sideways inside `.rmys-cmp__scroll`. A readable min-width stops the
   columns from being crushed, the Feature column sticks while the tiers scroll
   so rows never lose their label, and a small hint signals the swipe. */
@media (max-width: 600px) {
    .rmys-cmp__scroll {
        position: relative;
        border: 1px solid var(--rmys-gray-200);
        border-radius: var(--rmys-radius-lg);
    }

    .rmys-cmp__table {
        min-width: 540px;          /* below this, cells get unreadable */
        border-radius: 0;
        box-shadow: none;
    }

    .rmys-cmp__table th,
    .rmys-cmp__table td {
        padding: 12px 12px;
        font-size: 13px;
    }

    .rmys-cmp__feature-col { width: 42%; }

    /* Keep the Feature / row-label column visible while the tiers scroll. */
    .rmys-cmp__table th[scope="row"],
    .rmys-cmp__feature-col {
        position: sticky;
        left: 0;
        z-index: 1;
    }
    .rmys-cmp__table tbody th[scope="row"] {
        background: var(--rmys-white);
        box-shadow: 1px 0 0 var(--rmys-gray-200);
    }
    .rmys-cmp__category-row th { background: var(--rmys-gray-50); }
    .rmys-cmp__feature-col { background: var(--rmys-navy); }

    /* Swipe hint above the table. */
    .rmys-cmp__hint {
        display: block;
        margin: 0 0 8px;
        font-size: 11px;
        font-weight: 600;
        letter-spacing: .4px;
        text-transform: uppercase;
        color: var(--rmys-gray-500);
        text-align: right;
    }
    .rmys-cmp__hint::after { content: " \203A\203A"; color: var(--rmys-red); }
}

.rmys-addons { margin: 32px 0; }
.rmys-addons__title {
    font-family: var(--rmys-font-heading);
    color: var(--rmys-navy);
    font-size: 18px;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin-bottom: 12px;
}
.rmys-addons__scroll { overflow-x: auto; }
.rmys-addons__table {
    width: 100%;
    border-collapse: collapse;
    background: var(--rmys-white);
    border-radius: var(--rmys-radius-lg);
    overflow: hidden;
    box-shadow: var(--rmys-shadow);
}
.rmys-addons__table th,
.rmys-addons__table td {
    padding: 14px 18px;
    border-bottom: 1px solid var(--rmys-gray-200);
    font-size: 14px;
}
.rmys-addons__table thead th {
    background: var(--rmys-navy);
    color: var(--rmys-white);
    text-align: left;
    font-family: var(--rmys-font-heading);
    text-transform: uppercase;
    font-size: 12px;
}

.rmys-perks-panel { margin: 24px 0; }
.rmys-perks-panel__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 18px;
}
.rmys-perks-panel__group {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 18px;
}
.rmys-perks-panel__group-title {
    font-family: var(--rmys-font-heading);
    color: var(--rmys-navy);
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .5px;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--rmys-gray-200);
}
.rmys-perks-panel__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.rmys-perks-panel__item { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.rmys-perks-panel__icon {
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
.rmys-perks-panel__item.is-granted .rmys-perks-panel__icon {
    background: rgba(46, 139, 87, .12);
    color: var(--rmys-green);
}
.rmys-perks-panel__item.is-locked .rmys-perks-panel__icon {
    background: var(--rmys-gray-100);
    color: var(--rmys-gray-500);
}
.rmys-perks-panel__label { flex: 1; color: var(--rmys-gray-700); }
.rmys-perks-panel__item.is-locked .rmys-perks-panel__label { color: var(--rmys-gray-500); }
.rmys-perks-panel__value { color: var(--rmys-navy); font-weight: 700; margin-left: 4px; }
.rmys-perks-panel__cta {
    color: var(--rmys-red);
    text-decoration: none;
    font-weight: 700;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .4px;
    white-space: nowrap;
}
.rmys-perks-panel__cta:hover { color: var(--rmys-red-hover); }

.rmys-quotas { margin: 24px 0; }
.rmys-quotas__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
}
.rmys-quotas__card {
    background: var(--rmys-white);
    border: 1px solid var(--rmys-gray-200);
    border-radius: var(--rmys-radius-lg);
    padding: 16px 18px;
}
.rmys-quotas__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.rmys-quotas__label { font-family: var(--rmys-font-heading); color: var(--rmys-navy); font-weight: 700; font-size: 14px; }
.rmys-quotas__count strong { font-size: 18px; color: var(--rmys-navy); }
.rmys-quotas__count span { color: var(--rmys-gray-500); }
.rmys-quotas__bar {
    width: 100%;
    height: 6px;
    background: var(--rmys-gray-100);
    border-radius: 999px;
    overflow: hidden;
    margin-bottom: 8px;
}
.rmys-quotas__bar-fill { display: block; height: 100%; background: var(--rmys-gold); transition: width var(--rmys-transition); }
.rmys-quotas__remaining { color: var(--rmys-gray-500); font-size: 12px; margin: 0; }
.rmys-quotas__last-sent { color: var(--rmys-gray-500); font-size: 11px; margin: 4px 0 0; font-style: italic; }

/* Anonymized Competitor Insights — Elite-only card on the listings tab. */
.rmys-comp-insights {
    background: #fff;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
.rmys-comp-insights__head { margin-bottom: 14px; }
.rmys-comp-insights__head h2 { margin: 0 0 4px; font-size: 16px; }
.rmys-comp-insights__sub { margin: 0; color: var(--rmys-gray-500); font-size: 13px; }
.rmys-comp-insights__empty {
    background: var(--rmys-gray-50, #f8f9fa);
    border-radius: 8px;
    padding: 14px;
    color: var(--rmys-gray-500);
    font-size: 13px;
    margin: 0;
}
.rmys-comp-insights__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}
.rmys-comp-insights__card {
    border: 1px solid var(--rmys-gray-100, #eef0f3);
    border-radius: 10px;
    padding: 14px;
    background: var(--rmys-gray-50, #fafbfc);
}
.rmys-comp-insights__card-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}
.rmys-comp-insights__sport { font-weight: 600; }
.rmys-comp-insights__zip {
    font-size: 11px;
    color: var(--rmys-gray-500);
    background: rgba(0, 0, 0, .04);
    padding: 2px 8px;
    border-radius: 999px;
}
.rmys-comp-insights__metric { margin-bottom: 8px; }
.rmys-comp-insights__metric-label {
    display: block;
    font-size: 11px;
    color: var(--rmys-gray-500);
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 2px;
}
.rmys-comp-insights__metric-row {
    display: flex;
    align-items: baseline;
    gap: 14px;
    flex-wrap: wrap;
}
.rmys-comp-insights__metric-num { font-weight: 700; font-size: 18px; }
.rmys-comp-insights__metric-num.is-muted { color: var(--rmys-gray-500); font-weight: 600; }
.rmys-comp-insights__metric-tag {
    font-size: 10px;
    color: var(--rmys-gray-500);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-left: 4px;
}
.rmys-comp-insights__delta {
    margin-left: auto;
    font-size: 12px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 999px;
}
.rmys-comp-insights__delta.is-up { color: #0a7d3b; background: rgba(10, 125, 59, .12); }
.rmys-comp-insights__delta.is-down { color: #b04141; background: rgba(176, 65, 65, .12); }
.rmys-comp-insights__card-foot {
    margin-top: 8px;
    font-size: 11px;
    color: var(--rmys-gray-500);
    font-style: italic;
}

.rmys-auth__plan-savings {
    display: inline-block;
    background: rgba(244, 180, 0, .15);
    color: var(--rmys-gold-hover);
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    margin-top: 4px;
}

/* ─── Weekly performance report card (Partner+) ─────────────────────────── */
.rmys-weekly-report {
    background: #fff;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
.rmys-weekly-report__head { margin-bottom: 14px; }
.rmys-weekly-report__head h2 { margin: 0 0 4px; font-size: 16px; }
.rmys-weekly-report__sub { margin: 0; color: var(--rmys-gray-500); font-size: 13px; }
.rmys-weekly-report__empty {
    background: var(--rmys-gray-50, #f8f9fa);
    border-radius: 8px;
    padding: 14px;
    color: var(--rmys-gray-500);
    font-size: 13px;
    margin: 0;
}
.rmys-weekly-report__stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}
.rmys-weekly-report__stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
    background: var(--rmys-gray-50, #fafbfc);
    border: 1px solid var(--rmys-gray-100, #eef0f3);
    border-radius: 10px;
    padding: 12px 14px;
}
.rmys-weekly-report__stat-label {
    font-size: 12px;
    color: var(--rmys-gray-500);
    text-transform: uppercase;
    letter-spacing: .4px;
}
.rmys-weekly-report__stat-num {
    font-size: 24px;
    font-weight: 700;
    line-height: 1.1;
}
.rmys-weekly-report__stat-delta {
    font-size: 12px;
    font-weight: 600;
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
}
.rmys-weekly-report__stat-delta.is-up   { color: #137333; }
.rmys-weekly-report__stat-delta.is-down { color: #c5221f; }
.rmys-weekly-report__stat-delta-note {
    font-weight: 400;
    color: var(--rmys-gray-500);
    font-size: 11px;
}
.rmys-weekly-report__subhead {
    font-size: 13px;
    margin: 0 0 8px;
    color: var(--rmys-gray-700, #444);
    font-weight: 600;
}
.rmys-weekly-report__top {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.rmys-weekly-report__top-row {
    display: grid;
    grid-template-columns: 24px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--rmys-gray-100, #eef0f3);
    border-radius: 8px;
    background: #fff;
}
.rmys-weekly-report__top-rank {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--rmys-gold, #f4b400);
    color: #0F2A44;
    font-size: 12px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.rmys-weekly-report__top-title {
    color: var(--rmys-navy, #0F2A44);
    font-weight: 600;
    text-decoration: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.rmys-weekly-report__top-title:hover { text-decoration: underline; }
.rmys-weekly-report__top-stats {
    display: flex;
    gap: 12px;
    font-size: 12px;
    color: var(--rmys-gray-500);
}

/* ─── Full analytics dashboard (Elite) ──────────────────────────────────── */
.rmys-analytics {
    background: #fff;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
.rmys-analytics--locked {
    text-align: center;
    padding: 40px 24px;
}
.rmys-analytics__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}
.rmys-analytics__head h2 { margin: 0 0 4px; font-size: 18px; }
.rmys-analytics__sub { margin: 0; color: var(--rmys-gray-500); font-size: 13px; }
.rmys-analytics__range {
    display: inline-flex;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 999px;
    overflow: hidden;
}
.rmys-analytics__range-btn {
    padding: 6px 14px;
    font-size: 12px;
    color: var(--rmys-gray-700, #444);
    text-decoration: none;
    background: #fff;
    border-right: 1px solid var(--rmys-gray-200);
}
.rmys-analytics__range-btn:last-child { border-right: none; }
.rmys-analytics__range-btn.is-active {
    background: var(--rmys-navy, #0F2A44);
    color: #fff;
}
.rmys-analytics__chart-wrap {
    background: var(--rmys-gray-50, #fafbfc);
    border: 1px solid var(--rmys-gray-100, #eef0f3);
    border-radius: 10px;
    padding: 16px;
    margin-bottom: 24px;
}
.rmys-analytics__chart { width: 100%; height: auto; display: block; }
.rmys-analytics__legend {
    display: flex;
    gap: 18px;
    margin-top: 8px;
    font-size: 12px;
    color: var(--rmys-gray-700, #444);
    justify-content: center;
}
.rmys-analytics__legend-item { display: inline-flex; align-items: center; gap: 6px; }
.rmys-analytics__legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}
.rmys-analytics__subhead {
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 10px;
}
.rmys-analytics__empty {
    background: var(--rmys-gray-50, #f8f9fa);
    border-radius: 8px;
    padding: 14px;
    color: var(--rmys-gray-500);
    font-size: 13px;
    margin: 0 0 16px;
}
.rmys-analytics__table-wrap { overflow-x: auto; }
.rmys-analytics__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}
.rmys-analytics__table th,
.rmys-analytics__table td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--rmys-gray-100, #eef0f3);
    text-align: left;
}
.rmys-analytics__table th {
    font-weight: 600;
    color: var(--rmys-gray-500);
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .4px;
}
.rmys-analytics__num { text-align: right; font-variant-numeric: tabular-nums; }
.rmys-analytics__link {
    color: var(--rmys-navy, #0F2A44);
    font-weight: 600;
    text-decoration: none;
}
.rmys-analytics__link:hover { text-decoration: underline; }

/* ─── Public operator profile page (Elite) ──────────────────────────────── */
.rmys-operator-profile {
    background: var(--rmys-gray-50, #f8f9fa);
    padding: 40px 20px;
    min-height: 60vh;
}
.rmys-operator-profile__inner {
    max-width: 1100px;
    margin: 0 auto;
}
.rmys-operator-profile__hero {
    background: #fff;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 16px;
    padding: 36px;
    margin-bottom: 28px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
.rmys-operator-profile__name {
    margin: 0 0 6px;
    font-size: 28px;
    color: var(--rmys-navy, #0F2A44);
}
.rmys-operator-profile__contact {
    color: var(--rmys-gray-500);
    margin: 0 0 14px;
    font-size: 14px;
}
.rmys-operator-profile__bio {
    color: var(--rmys-gray-700, #444);
    font-size: 15px;
    max-width: 720px;
    line-height: 1.6;
}
.rmys-operator-profile__website {
    margin-top: 14px;
}
.rmys-operator-profile__website a {
    color: var(--rmys-navy, #0F2A44);
    font-weight: 600;
    text-decoration: none;
}
.rmys-operator-profile__website a:hover { text-decoration: underline; }
.rmys-operator-profile__programs h2 {
    margin: 0 0 16px;
    font-size: 20px;
}
.rmys-operator-profile__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 16px;
}
.rmys-operator-profile__empty {
    background: #fff;
    border-radius: 10px;
    padding: 20px;
    color: var(--rmys-gray-500);
    border: 1px solid var(--rmys-gray-200);
}

/* ─── Sponsored sport banner (Elite) ────────────────────────────────────── */
.rmys-sponsored-banner {
    background: linear-gradient(135deg, var(--rmys-navy, #0F2A44) 0%, #1f3d5e 100%);
    color: #fff;
    border-radius: 10px;
    padding: 14px 20px;
    margin: 0 0 16px;
    box-shadow: 0 2px 6px rgba(15, 42, 68, .15);
}
.rmys-sponsored-banner__inner {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    max-width: 1100px;
    margin: 0 auto;
}
.rmys-sponsored-banner__tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: var(--rmys-gold, #f4b400);
    color: #0F2A44;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    padding: 3px 10px;
    border-radius: 999px;
}
.rmys-sponsored-banner__text {
    font-size: 14px;
    color: #fff;
}
.rmys-sponsored-banner__text strong { font-weight: 700; }
.rmys-sponsored-banner__name {
    color: var(--rmys-gold, #f4b400);
    font-weight: 700;
    text-decoration: none;
    margin-left: 4px;
}
a.rmys-sponsored-banner__name:hover { text-decoration: underline; }

/* ─── Perks panel: "Fulfilled by CYS team" tag ─────────────────────────── */
.rmys-perks-panel__tag {
    display: inline-block;
    margin-left: 8px;
    padding: 1px 8px;
    border-radius: 999px;
    background: rgba(15, 42, 68, .08);
    color: var(--rmys-navy, #0F2A44);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .3px;
    vertical-align: 2px;
}

/* ─── Support tab ───────────────────────────────────────────────────────── */
.rmys-support {
    background: #fff;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 12px;
    padding: 24px;
    margin-bottom: 20px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
.rmys-support__head { margin-bottom: 16px; }
.rmys-support__head h2 { margin: 0 0 4px; font-size: 18px; }
.rmys-support__sub { margin: 0; color: var(--rmys-gray-500); font-size: 13px; }
.rmys-support__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}
.rmys-support__card {
    background: var(--rmys-gray-50, #fafbfc);
    border: 1px solid var(--rmys-gray-100, #eef0f3);
    border-radius: 10px;
    padding: 16px 18px;
}
.rmys-support__card--featured {
    background: #fff;
    border: 2px solid var(--rmys-gold, #f4b400);
    box-shadow: 0 2px 10px rgba(244, 180, 0, .12);
}
.rmys-support__badge {
    display: inline-block;
    background: var(--rmys-gold, #f4b400);
    color: #0F2A44;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    padding: 3px 10px;
    border-radius: 999px;
    margin-bottom: 10px;
}
.rmys-support__card-title {
    margin: 0 0 4px;
    font-size: 15px;
    color: var(--rmys-navy, #0F2A44);
}
.rmys-support__card-note {
    color: var(--rmys-gray-500);
    font-size: 13px;
    margin: 4px 0 10px;
}
.rmys-support__contact-link {
    color: var(--rmys-navy, #0F2A44);
    font-weight: 600;
    text-decoration: none;
    font-size: 14px;
}
.rmys-support__contact-link:hover { text-decoration: underline; }
.rmys-support__empty {
    background: var(--rmys-gray-50, #f8f9fa);
    padding: 16px;
    border-radius: 8px;
    color: var(--rmys-gray-500);
    font-size: 13px;
}

/* ─── Slide-in toast (post-submit confirmation) ─────────────────────────── */
.rmys-toast {
    position: fixed;
    top: 24px;
    right: 24px;
    z-index: 100000;
    max-width: 380px;
    min-width: 280px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(15, 42, 68, .15), 0 2px 8px rgba(0, 0, 0, .06);
    padding: 14px 14px 14px 16px;
    border-left: 4px solid #137333;
    transform: translateX(420px);
    opacity: 0;
    transition: transform .3s cubic-bezier(.2,.8,.2,1), opacity .3s ease;
}
.rmys-toast.is-shown {
    transform: translateX(0);
    opacity: 1;
}
.rmys-toast__icon {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(19, 115, 51, .12);
    color: #137333;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.rmys-toast__body {
    flex: 1;
    min-width: 0;
}
.rmys-toast__title {
    font-size: 14px;
    font-weight: 700;
    color: var(--rmys-navy, #0F2A44);
    margin-bottom: 2px;
}
.rmys-toast__text {
    font-size: 13px;
    color: var(--rmys-gray-700, #444);
    line-height: 1.4;
}
.rmys-toast__close {
    background: none;
    border: none;
    color: var(--rmys-gray-500);
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    padding: 0 4px;
    margin-left: 4px;
    flex-shrink: 0;
}
.rmys-toast__close:hover { color: var(--rmys-navy, #0F2A44); }
.rmys-toast--error { border-left-color: #c5221f; }
.rmys-toast--error .rmys-toast__icon {
    background: rgba(197, 34, 31, .12);
    color: #c5221f;
}
@media (max-width: 480px) {
    .rmys-toast {
        right: 12px;
        left: 12px;
        max-width: none;
        top: 12px;
    }
}

/* ============================================================
 * Save-program button (heart toggle)
 * ============================================================ */
.rmys-save-btn {
    appearance: none;
    background: rgba(255, 255, 255, .94);
    color: #b1b6bc;
    border: 1px solid rgba(15, 42, 68, .12);
    width: 38px;
    height: 38px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: color .15s ease, background-color .15s ease, transform .15s ease, border-color .15s ease;
    padding: 0;
}
.rmys-save-btn:hover { color: #e0496f; border-color: rgba(224, 73, 111, .35); }
.rmys-save-btn:focus-visible { outline: 2px solid #0F2A44; outline-offset: 2px; }
.rmys-save-btn.is-saved { color: #e0496f; border-color: rgba(224, 73, 111, .35); background: #fff5f7; }
.rmys-save-btn:active { transform: scale(.94); }
.rmys-save-btn[disabled] { opacity: .6; cursor: progress; }

.rmys-save-btn--card {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    box-shadow: 0 2px 6px rgba(15, 42, 68, .15);
}

.rmys-save-btn--prominent {
    width: auto;
    height: auto;
    padding: 8px 16px;
    border-radius: 999px;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1;
}
.rmys-save-btn--prominent .rmys-save-btn__label { display: inline; }

.rmys-card { position: relative; }

/* ============================================================
 * Parent dashboard saved-programs grid
 * ============================================================ */
.rmys-parent-dashboard .rmys-dashboard__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}
.rmys-parent-dashboard .rmys-dashboard__header-actions {
    display: flex;
    gap: 8px;
    align-items: center;
}

.rmys-single__title-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.rmys-program-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 20px;
}
.rmys-program-card {
    position: relative;
    background: #fff;
    border: 1px solid rgba(15, 42, 68, .08);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(15, 42, 68, .04);
    transition: box-shadow .15s ease, transform .15s ease, opacity .2s ease;
}
.rmys-program-card:hover { box-shadow: 0 4px 16px rgba(15, 42, 68, .1); }
.rmys-program-card.is-removing { opacity: 0; transform: translateY(-4px); }
.rmys-program-card__media {
    display: block;
    aspect-ratio: 16 / 10;
    background: #eef1f5;
    overflow: hidden;
}
.rmys-program-card__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.rmys-program-card__media-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #e9eef4 0%, #cfd9e4 100%);
}
.rmys-program-card__body { padding: 14px 16px 18px; }
.rmys-program-card__title-link { text-decoration: none; color: inherit; }
.rmys-program-card__title {
    margin: 0 0 6px;
    font-size: 16px;
    font-weight: 600;
    color: #0F2A44;
}
.rmys-program-card__meta {
    margin: 0;
    color: #5a6675;
    font-size: 13px;
}
.rmys-program-card .rmys-save-btn--card { top: 10px; right: 10px; }

.rmys-auth__submit--ghost {
    background: transparent;
    color: #0F2A44;
    border: 1px solid rgba(15, 42, 68, .25);
}
.rmys-auth__submit--ghost:hover { background: rgba(15, 42, 68, .05); }
.rmys-auth__hint { display: block; color: #6b7280; font-size: 12px; margin-top: 4px; }

@media (max-width: 540px) {
    .rmys-single__title-row { flex-direction: column; }
    .rmys-save-btn--prominent { align-self: flex-start; }
}

/* ============================================================
 * Map embeds — Leaflet-friendly heights
 * ============================================================ */
.rmys-single__map-embed,
.rmys-single__map-placeholder {
    width: 100%;
    height: 320px;
    border-radius: 12px;
    background: #eef1f5;
    overflow: hidden;
    position: relative;
    z-index: 0;
}
.rmys-single__map-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #5a6675;
    font-size: 14px;
    padding: 0 16px;
    text-align: center;
}

.rmys-listings__map-canvas {
    width: 100%;
    height: 100%;
    min-height: 360px;
    border-radius: 12px;
    overflow: hidden;
    background: #eef1f5;
    position: sticky;
    top: 16px;
}
.rmys-listings__map-canvas.is-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #5a6675;
}
.rmys-listings__map-canvas.is-empty::after {
    content: "No mapped results";
    font-size: 14px;
}

/* Leaflet popup styling override (subtle — keeps the brand restraint) */
.leaflet-popup-content { margin: 10px 14px; }
.leaflet-popup-content strong { color: #0F2A44; }

/* ============================================================
 * Programmatic landing pages
 * ============================================================ */
.rmys-landing { max-width: 1200px; margin: 0 auto; padding: 32px 20px; }
.rmys-landing__hero {
    border-bottom: 1px solid rgba(15, 42, 68, .08);
    padding-bottom: 24px;
    margin-bottom: 28px;
}
.rmys-landing__crumbs {
    color: #5a6675;
    font-size: 13px;
    margin: 0 0 12px;
}
.rmys-landing__crumbs a { color: #5a6675; text-decoration: none; }
.rmys-landing__crumbs a:hover { color: #0F2A44; text-decoration: underline; }
.rmys-landing__title {
    margin: 0;
    font-size: 32px;
    color: #0F2A44;
    line-height: 1.2;
}
.rmys-landing__intro {
    margin: 12px 0 0;
    color: #3a4753;
    max-width: 720px;
    font-size: 16px;
    line-height: 1.55;
}
.rmys-landing__results .rmys-listings__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 20px;
}
@media (max-width: 640px) {
    .rmys-landing__title { font-size: 26px; }
}

/* ============================================================
 * Parent dashboard — tabs, panels, forms, recommendations
 * (shares .rmys-tabs / .rmys-tab styling with the operator dashboard,
 * adds only the bits unique to the parent side.)
 * ============================================================ */
.rmys-parent-dashboard .rmys-dashboard__heading h1 {
    margin: 0;
    font-size: 28px;
    color: #0F2A44;
}
.rmys-parent-dashboard .rmys-dashboard__heading p {
    margin: 4px 0 0;
    color: #5a6675;
    font-size: 14px;
}

.rmys-tab__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    margin-left: 8px;
    border-radius: 999px;
    background: rgba(15, 42, 68, .08);
    color: #0F2A44;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
}
.rmys-tab.is-active .rmys-tab__count {
    background: rgba(198, 40, 40, .12);
    color: #C62828;
}

.rmys-parent-panel {
    background: #fff;
    border: 1px solid rgba(15, 42, 68, .08);
    border-radius: 12px;
    padding: 24px;
    box-shadow: 0 1px 3px rgba(15, 42, 68, .04);
}
.rmys-parent-panel__intro {
    margin-bottom: 20px;
}
.rmys-parent-panel__intro h2 {
    margin: 0 0 4px;
    font-size: 20px;
    color: #0F2A44;
}
.rmys-parent-panel__intro p {
    margin: 0;
    color: #5a6675;
    font-size: 14px;
    max-width: 640px;
    line-height: 1.5;
}

.rmys-parent-empty {
    background: #fff;
    border: 1px dashed rgba(15, 42, 68, .15);
    border-radius: 12px;
    padding: 36px 24px;
    text-align: center;
}
.rmys-parent-empty h3 {
    margin: 0 0 8px;
    font-size: 18px;
    color: #0F2A44;
}
.rmys-parent-empty p {
    margin: 0 0 16px;
    color: #5a6675;
    font-size: 14px;
}

/* Forms (profile + notifications) */
.rmys-parent-form__group {
    border: 1px solid rgba(15, 42, 68, .08);
    border-radius: 10px;
    padding: 18px 20px 20px;
    margin: 0 0 18px;
}
.rmys-parent-form__group legend {
    padding: 0 6px;
    margin-left: -6px;
    color: #0F2A44;
    font-weight: 600;
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.rmys-parent-form__legend-hint {
    margin: 0 0 14px;
    color: #5a6675;
    font-size: 13px;
}
.rmys-parent-form__field {
    margin: 0 0 14px;
}
.rmys-parent-form__field:last-child {
    margin-bottom: 0;
}
.rmys-parent-form__field label {
    display: block;
    margin: 0 0 6px;
    color: #2a3744;
    font-weight: 600;
    font-size: 13px;
}
.rmys-parent-form__field input[type="text"],
.rmys-parent-form__field input[type="email"],
.rmys-parent-form__field input[type="password"] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid rgba(15, 42, 68, .18);
    border-radius: 8px;
    font-size: 14px;
    background: #fff;
    color: #0F2A44;
    transition: border-color .15s ease, box-shadow .15s ease;
    box-sizing: border-box;
}
.rmys-parent-form__field input:focus {
    border-color: #2F5D8C;
    outline: none;
    box-shadow: 0 0 0 3px rgba(47, 93, 140, .12);
}
.rmys-parent-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}
@media (max-width: 540px) {
    .rmys-parent-form__row {
        grid-template-columns: 1fr;
    }
}
.rmys-parent-form__actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 6px;
}
.rmys-parent-form__notice {
    background: #e8f5ec;
    color: #1f6f3d;
    border: 1px solid rgba(46, 139, 87, .25);
    border-radius: 8px;
    padding: 10px 14px;
    margin: 0 0 14px;
    font-size: 13px;
}

/* Checkbox rows for notification preferences */
.rmys-parent-check {
    display: flex;
    gap: 12px;
    padding: 12px;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color .15s ease;
}
.rmys-parent-check:hover {
    background: rgba(15, 42, 68, .04);
}
.rmys-parent-check + .rmys-parent-check {
    margin-top: 4px;
}
.rmys-parent-check input[type="checkbox"] {
    margin-top: 3px;
    width: 18px;
    height: 18px;
    accent-color: #C62828;
    flex-shrink: 0;
}
.rmys-parent-check__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.rmys-parent-check__body strong {
    color: #0F2A44;
    font-size: 14px;
}
.rmys-parent-check__body span {
    color: #5a6675;
    font-size: 13px;
    line-height: 1.45;
}

/* Sport chips (notification opt-in) */
.rmys-parent-sports {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.rmys-parent-chip {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    border: 1px solid rgba(15, 42, 68, .18);
    border-radius: 999px;
    font-size: 13px;
    color: #2a3744;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
    background: #fff;
}
.rmys-parent-chip input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.rmys-parent-chip:has(input:checked) {
    background: #0F2A44;
    border-color: #0F2A44;
    color: #fff;
}
.rmys-parent-chip:hover {
    border-color: #2F5D8C;
}

/* ==========================================================================
   Featured Blog Grid  —  [RMYS_Widget_Featured_Blog]
   Hero article (image + content panel) over a grid of secondary cards.
   ========================================================================== */

.rmys-featured-blog {
    max-width: var(--rmys-max-width);
    margin: 0 auto;
}

.rmys-featured-blog__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 16px;
}

.rmys-featured-blog__title {
    font-family: var(--rmys-font-heading);
    font-size: 24px;
    font-weight: 800;
    color: var(--rmys-navy);
    margin: 0;
}

.rmys-featured-blog__view-all {
    color: var(--rmys-red);
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.rmys-featured-blog__view-all:hover {
    color: var(--rmys-gold);
}

/* Hero ------------------------------------------------------------------ */

.rmys-fb-hero {
    display: grid;
    grid-template-columns: 1.05fr 1fr;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 16px;
    overflow: hidden;
    background: var(--rmys-white);
    margin-bottom: 24px;
}

.rmys-fb-hero__media {
    display: block;
    position: relative;
    min-height: 320px;
    overflow: hidden;
    background: var(--rmys-gray-100);
}

/* Absolute + inset:0 makes the image fill the box even when a theme forces
   `img { height: auto !important }`, which would otherwise break object-fit
   and leave images cropped/half-shown. */
.rmys-fb-hero__media img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    max-width: none !important;
}

.rmys-fb-hero__body {
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
}

.rmys-fb-hero__title {
    font-family: var(--rmys-font-heading);
    font-size: 28px;
    line-height: 1.2;
    font-weight: 800;
    margin: 0;
}

.rmys-fb-hero__title a {
    color: var(--rmys-navy);
    text-decoration: none;
}

.rmys-fb-hero__title a:hover {
    color: var(--rmys-red);
}

.rmys-fb-hero__excerpt {
    color: var(--rmys-gray-500);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

/* Tags + badge ---------------------------------------------------------- */

.rmys-fb-tags {
    display: flex;
    align-items: center;
    gap: 10px;
}

.rmys-fb-badge {
    background: var(--rmys-gold);
    color: var(--rmys-navy);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.5px;
    padding: 4px 10px;
    border-radius: 999px;
    line-height: 1;
}

.rmys-fb-cat {
    color: var(--rmys-red);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.5px;
}

/* Meta line ------------------------------------------------------------- */

.rmys-fb-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--rmys-gray-500);
}

/* Author group (avatar + name) on the left, date on the right. */
.rmys-fb-meta__by {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.rmys-fb-meta__avatar {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--rmys-gray-100);
    color: var(--rmys-gray-500);
}

.rmys-fb-meta__avatar img,
.rmys-fb-meta__avatar-img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: 50%;
}

.rmys-fb-meta__author {
    font-weight: 600;
    color: var(--rmys-gray-700);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rmys-fb-meta__date {
    flex: 0 0 auto;
    white-space: nowrap;
}

/* In a card, push the footer to the bottom edge and space author/date apart. */
.rmys-fb-card .rmys-fb-meta {
    justify-content: space-between;
    margin-top: auto;
    padding-top: 4px;
}

.rmys-fb-readmore {
    color: var(--rmys-red);
    font-weight: 700;
    text-decoration: none;
    font-size: 14px;
    margin-top: 2px;
}

.rmys-fb-readmore:hover {
    color: var(--rmys-gold);
}

/* Secondary grid -------------------------------------------------------- */

.rmys-fb-grid {
    display: grid;
    gap: 24px;
}

.rmys-fb-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--rmys-gray-200);
    border-radius: 16px;
    overflow: hidden;
    background: var(--rmys-white);
    transition: box-shadow var(--rmys-transition), transform var(--rmys-transition);
}

.rmys-fb-card:hover {
    box-shadow: var(--rmys-shadow-md);
    transform: translateY(-2px);
}

.rmys-fb-card__media {
    display: block;
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--rmys-gray-100);
}

/* See hero note: absolute fill survives aggressive theme `img` overrides.
   !important is required because themes/Elementor set img rules with it too. */
.rmys-fb-card__media img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    max-width: none !important;
}

.rmys-fb-card__body {
    padding: 18px 20px 20px;
    display: flex;
    flex-direction: column;
    gap: 9px;
    flex: 1;
}

/* Category badge inside a card body — tinted red pill. */
.rmys-fb-cat-badge {
    align-self: flex-start;
    display: inline-block;
    background: rgba(198, 40, 40, 0.10);
    color: var(--rmys-red);
    text-transform: uppercase;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    line-height: 1.4;
    padding: 4px 11px;
    border-radius: 999px;
}

.rmys-fb-card__title {
    font-family: var(--rmys-font-heading);
    font-size: 18px;
    line-height: 1.3;
    font-weight: 700;
    margin: 0;
}

.rmys-fb-card__title a {
    color: var(--rmys-navy);
    text-decoration: none;
}

.rmys-fb-card__title a:hover {
    color: var(--rmys-red);
}

.rmys-fb-card__excerpt {
    color: var(--rmys-gray-500);
    font-size: 14px;
    line-height: 1.55;
    margin: 0;
    flex: 1;
}

/* Image placeholder (no featured image) --------------------------------- */

.rmys-fb-ph {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--rmys-gray-300);
    background: var(--rmys-gray-100);
}

.rmys-fb-ph .dashicons {
    font-size: 40px;
    width: 40px;
    height: 40px;
}

/* Pagination ------------------------------------------------------------ */

.rmys-fb-pagination {
    display: flex;
    justify-content: center;
    margin-top: 36px;
}

.rmys-fb-pagination .page-numbers {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Each page link / current / chevron. */
.rmys-fb-pagination a.page-numbers,
.rmys-fb-pagination span.page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 6px;
    border-radius: 10px;
    border: 1px solid transparent;
    font-family: var(--rmys-font-body);
    font-size: 14px;
    font-weight: 600;
    color: var(--rmys-navy);
    text-decoration: none;
    transition: background-color var(--rmys-transition), border-color var(--rmys-transition), color var(--rmys-transition);
}

.rmys-fb-pagination a.page-numbers:hover {
    background: var(--rmys-gray-100);
}

/* Current page — filled navy. */
.rmys-fb-pagination .page-numbers.current {
    background: var(--rmys-navy);
    color: var(--rmys-white);
}

/* Prev / next chevrons — bordered squares like the design. */
.rmys-fb-pagination .page-numbers.prev,
.rmys-fb-pagination .page-numbers.next {
    border-color: var(--rmys-gray-200);
    color: var(--rmys-gray-700);
}

.rmys-fb-pagination .page-numbers.prev:hover,
.rmys-fb-pagination .page-numbers.next:hover {
    border-color: var(--rmys-navy);
    background: transparent;
    color: var(--rmys-navy);
}

.rmys-fb-pagination .page-numbers.prev svg,
.rmys-fb-pagination .page-numbers.next svg {
    display: block;
}

/* Ellipsis between far-apart page numbers. */
.rmys-fb-pagination .page-numbers.dots {
    min-width: 22px;
    color: var(--rmys-gray-500);
}

/* Empty state — shown when a search/topic filter returns no posts. */
.rmys-fb-empty {
    text-align: center;
    padding: 48px 20px;
    color: var(--rmys-gray-500);
    font-size: 15px;
}

/* Responsive ------------------------------------------------------------ */

@media (max-width: 782px) {
    .rmys-fb-hero {
        grid-template-columns: 1fr;
    }

    .rmys-fb-hero__media {
        min-height: 220px;
    }

    .rmys-fb-hero__body {
        padding: 24px;
    }

    .rmys-fb-hero__title {
        font-size: 23px;
    }

    .rmys-fb-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   Blog Search Bar  —  [rmys_blog_search]
   White pill: topics dropdown + keyword field + gold Search button.
   ========================================================================== */

.rmys-blog-search {
    max-width: 920px;
    margin: 0 auto;
    width: 100%;
}

.rmys-blog-search__bar {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--rmys-white);
    border-radius: 14px;
    padding: 8px 8px 8px 6px;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.18);
}

.rmys-blog-search__field {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 14px;
    position: relative;
}

.rmys-blog-search__field--topics {
    flex: 0 0 auto;
    align-self: stretch;
    min-width: 200px;
    min-height: 46px;
    padding: 0;
    gap: 0;
}

.rmys-blog-search__field--query {
    flex: 1 1 auto;
    min-width: 0;
}

.rmys-blog-search__icon {
    display: flex;
    align-items: center;
    color: var(--rmys-gray-500);
    flex: 0 0 auto;
}

/* Native controls stripped bare — the pill is the visual container. */
.rmys-blog-search select,
.rmys-blog-search input[type="search"] {
    border: none;
    outline: none;
    background: transparent;
    font-family: var(--rmys-font-body);
    font-size: 15px;
    color: var(--rmys-navy);
    padding: 12px 0;
    margin: 0;
    width: 100%;
    box-shadow: none;
}

.rmys-blog-search select {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
    padding-right: 22px;
    font-weight: 600;
}

/* Topics field: the <select> fills the whole field, so a click anywhere —
   icon, label, or caret — opens the native dropdown. The icon and caret are
   layered on top but are click-through (pointer-events: none). */
.rmys-blog-search__field--topics select {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    padding: 0 30px 0 46px;
}

.rmys-blog-search__field--topics .rmys-blog-search__icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    z-index: 1;
}

.rmys-blog-search input[type="search"]::placeholder {
    color: var(--rmys-gray-500);
    font-weight: 400;
}

/* Hide the native search clear control for a clean look. */
.rmys-blog-search input[type="search"]::-webkit-search-cancel-button {
    -webkit-appearance: none;
}

.rmys-blog-search__caret {
    position: absolute;
    right: 18px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    color: var(--rmys-gray-500);
    pointer-events: none;
    z-index: 1;
}

.rmys-blog-search__divider {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 30px;
    background: var(--rmys-gray-200);
    pointer-events: none;
}

.rmys-blog-search__submit {
    flex: 0 0 auto;
    align-self: stretch;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    cursor: pointer;
    background: var(--rmys-gold) !important;
    color: var(--rmys-navy) !important;
    font-family: var(--rmys-font-heading);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    font-size: 14px;
    line-height: 1;
    white-space: nowrap;
    min-height: 48px;
    padding: 0 34px;
    border-radius: 10px !important;
    box-shadow: none !important;
    transition: background-color var(--rmys-transition);
}

.rmys-blog-search__submit:hover,
.rmys-blog-search__submit:focus-visible {
    background: var(--rmys-gold-hover) !important;
    color: var(--rmys-navy) !important;
    outline: none;
}

/* Mobile: stack into a column, drop the divider. */
@media (max-width: 640px) {
    .rmys-blog-search__bar {
        flex-direction: column;
        align-items: stretch;
        gap: 4px;
        padding: 12px;
    }

    .rmys-blog-search__field {
        padding: 4px 10px;
    }

    /* Keep the select filling the whole field (it's absolutely positioned to
       the padding box) so the full-width tap target is preserved on mobile. */
    .rmys-blog-search__field--topics {
        padding: 0;
        min-height: 48px;
    }

    .rmys-blog-search__field--query {
        border-top: 1px solid var(--rmys-gray-200);
        border-bottom: 1px solid var(--rmys-gray-200);
        padding-top: 10px;
        padding-bottom: 10px;
    }

    .rmys-blog-search__divider {
        display: none;
    }

    .rmys-blog-search__caret {
        right: 12px;
    }

    .rmys-blog-search__submit {
        width: 100%;
        margin-top: 6px;
    }
}
