/**
 * Journey Map Admin Styles
 * Version: 1.0.0
 *
 * Styles for the admin journey route map visualization
 */

/* Main wrapper */
.journey-map-wrapper {
    background: #ffffff;
    padding: 20px;
    border: 1px solid #e1e1e1;
    border-radius: 6px;
    margin-top: 20px;
}

/* Header */
.journey-map-header h4 {
    font-size: 16px;
    font-weight: 600;
    color: #23282d;
    margin: 0 0 10px 0;
}

.journey-map-header p {
    font-size: 13px;
    color: #666;
    line-height: 1.6;
    margin: 0;
}

/* Controls */
.journey-map-controls {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 15px 0;
    padding: 12px;
    background: #f9f9f9;
    border-radius: 4px;
    border: 1px solid #e1e1e1;
}

.journey-map-controls .button {
    margin: 0;
}

.journey-map-status {
    font-size: 13px;
    color: #666;
    margin-left: auto;
    padding: 6px 12px;
    background: #fff;
    border-radius: 3px;
    border: 1px solid #ddd;
}

/* Map canvas */
#journey-map-canvas {
    width: 100%;
    height: 460px;   /* was 800px — Chiran, 20 Oct 2026: "quite high", focus on the places */
    border: 2px solid #ddd;
    border-radius: 6px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

#journey-map-canvas > div {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: #666;
    font-size: 14px;
    text-align: center;
    padding: 40px;
}

/* Legend */
.journey-map-legend {
    margin-top: 15px;
    padding: 15px;
    background: #f9f9f9;
    border-radius: 4px;
    border: 1px solid #e1e1e1;
}

.journey-map-legend strong {
    font-size: 14px;
    color: #23282d;
    display: block;
    margin-bottom: 10px;
}

#journey-map-legend-items {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin-top: 10px;
}

#journey-map-legend-items > div {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    background: #fff;
    border-radius: 4px;
    border: 1px solid #ddd;
}

#journey-map-legend-items > div:hover {
    background: #f5f5f5;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* Info window custom styles - Minimalistic white design */
.journey-map-info-window {
    max-width: 280px;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
    line-height: 1.4;
    background: #FFFFFF;
    padding: 12px;
}

.journey-map-info-window h3,
.journey-map-info-window h4 {
    font-size: 14px;
    font-weight: 600;
    margin: 0;
    color: #000000;
}

.journey-map-info-window p {
    font-size: 11px;
    line-height: 1.5;
    margin: 4px 0;
    color: #333333;
}

.journey-map-info-window strong {
    font-weight: 600;
    color: #000000;
    font-size: 11px;
}

.journey-map-info-window img {
    width: 100%;
    height: auto;
    margin-top: 8px;
    border-radius: 3px;
    border: 1px solid #E1E1E1;
}

/* Minimalistic service groups - no colors, no emojis */
.journey-map-info-window .service-group {
    margin: 8px 0;
    padding: 0;
    background: transparent;
}

.journey-map-info-window .service-item {
    margin: 2px 0 2px 8px;
    font-size: 10px;
    color: #333333;
}

.journey-map-info-window .service-price {
    color: #666666;
    font-size: 10px;
}

/* Day range marker styles - minimalistic */
.gm-style div[aria-label*="Day"] {
    font-weight: bold !important;
}

/* Minimalistic header separator */
.journey-map-info-window .day-header-separator {
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 1px solid #E1E1E1;
}

/* Text alignment - Day heading centered, all content left-aligned */
.journey-map-info-window h3 {
    text-align: center;
}

.journey-map-info-window strong,
.journey-map-info-window .service-item,
.journey-map-info-window p,
.journey-map-info-window div[style*="margin"] {
    text-align: left !important;
}

/* Loading state */
.journey-map-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 460px;
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.journey-map-loading::after {
    content: '';
    width: 40px;
    height: 40px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #4285F4;
    border-radius: 50%;
    animation: journey-map-spin 1s linear infinite;
}

@keyframes journey-map-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Error state */
.journey-map-wrapper .error {
    padding: 15px;
    background: #fff3cd;
    border: 1px solid #ffc107;
    border-radius: 4px;
    margin: 15px 0;
}

.journey-map-wrapper .error p {
    margin: 0;
    color: #856404;
    font-size: 13px;
}

/* Responsive */
@media screen and (max-width: 782px) {

    .journey-map-controls {
        flex-direction: column;
        align-items: stretch;
    }

    .journey-map-status {
        margin-left: 0;
        text-align: center;
    }

    #journey-map-canvas {
        height: 350px;
    }

    .journey-map-loading {
        height: 350px;
    }

    #journey-map-legend-items {
        flex-direction: column;
    }
}

/* Accessibility */
.journey-map-controls .button:focus,
.journey-map-controls .button:hover {
    outline: 2px solid #0073aa;
    outline-offset: 2px;
}

/* Print styles */
@media print {
    .journey-map-controls {
        display: none;
    }

    #journey-map-canvas {
        border: 1px solid #000;
    }

    .journey-map-legend {
        page-break-before: avoid;
    }
}

/* ==========================================================================
   STOP MARKERS — a photo of the place, not a numbered circle
   Each stop shows a small picture with a blue day-range badge, so a guide
   recognises where they are on the map without decoding a number.
   ========================================================================== */

.jm-stop {
    position: absolute;
    /* draw() sets left/top to the exact coordinate; shift so the tail lands on it */
    transform: translate(-50%, -100%);
    cursor: pointer;
    line-height: 0;
    filter: drop-shadow(0 4px 10px rgba(9, 9, 32, 0.28));
    transition: transform .16s ease-out;
}

.jm-stop:hover {
    transform: translate(-50%, -100%) scale(1.08);
    z-index: 9999 !important;
}

.jm-stop__card {
    position: relative;
    width: 52px;
    height: 52px;
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    border: 2px solid #ffffff;
    box-sizing: border-box;
}

.jm-stop__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* No photo (or a broken one): a branded tile rather than an empty square. */
.jm-stop__card--noimg {
    background: linear-gradient(135deg, #7700FF 0%, #00FAFF 140%);
}

/* SERVICE-TYPE ICON IN PLACE OF THE PHOTO (Chiran, 2 Sep 2026).
   "Each and every service type has its own icon... replace the image with the
   icon. The pin shape stays the same."
   The tile keeps its size, corners and badge; only the face changes, and the
   gradient above is overridden by the type's own tint. */
.jm-stop__card--icon { background: none; }

.jm-stop__typeicon {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    /* Clear of the day/number badge that sits along the bottom edge. */
    padding: 2px 2px 12px;
}
/* Nothing to number — the icon can use the whole face. */
.jm-stop--nobadge .jm-stop__typeicon { padding: 2px; }
.jm-stop__typeicon svg {
    width: 26px;
    height: 26px;
    display: block;
}

/* The airport bookends the trip — mark it with a plane instead of a photo. */
.jm-stop--endpoint .jm-stop__card {
    border-color: #7700FF;
}

.jm-stop--endpoint .jm-stop__card--noimg::before {
    content: '';
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 22px 22px;
    background-position: center 40%;   /* clear of the badge along the bottom */
    /* plane glyph, drawn into the card face */
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23ffffff'%3E%3Cpath d='M21 16v-2l-8-5V3.5a1.5 1.5 0 0 0-3 0V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L11 19v-5.5z'/%3E%3C/svg%3E");
}

.jm-stop__badge {
    position: absolute;
    left: 0;
    bottom: 0;
    min-width: 22px;
    padding: 2px 5px;
    background: #1D6DFF;          /* the blue day chip */
    color: #ffffff;
    font-family: 'Google Sans', system-ui, sans-serif;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    border-top-right-radius: 8px;
    letter-spacing: .01em;
}

/* Little pointer joining the card to its coordinate. */
.jm-stop__tail {
    display: block;
    width: 0;
    height: 0;
    margin: 0 auto;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 7px solid #ffffff;
}

.jm-stop--endpoint .jm-stop__tail {
    border-top-color: #7700FF;
}

/* ==========================================================================
   STOP PANEL — what opens when a marker is clicked
   Picture across the top, then what is actually booked there. The previous
   panel was mostly blank space because its service lookup never matched.
   ========================================================================== */

.jm-panel {
    width: 262px;
    font-family: 'Google Sans', system-ui, sans-serif;
    color: #090920;
    background: #ffffff;
    border-radius: 12px;
    overflow: hidden;   /* the card clips its own photo now, not Google's box */
}

.jm-panel__hero {
    position: relative;
    height: 132px;      /* full-bleed: no white strip above it any more */
    background-size: cover;
    background-position: center;
    background-color: #ece9f5;
}

.jm-panel__day {
    position: absolute;
    left: 10px;
    bottom: 10px;
    padding: 3px 9px;
    background: #1D6DFF;
    color: #ffffff;
    font-size: 11px;
    font-weight: 700;
    border-radius: 999px;
}

.jm-panel__day--inline {
    position: static;
    display: inline-block;
    margin-bottom: 8px;
}

.jm-panel__body {
    padding: 12px 14px 4px;
}

/* The Traveler theme styles bare h3/h4 heavily (big, centred, spaced), and it
   wins on specificity inside an InfoWindow. Pin every property we care about. */
.jm-panel .jm-panel__title,
.gm-style .jm-panel .jm-panel__title {
    margin: 0 0 10px !important;
    padding: 0 !important;
    font-family: 'Google Sans', system-ui, sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #090920 !important;
    line-height: 1.25 !important;
    text-align: left !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.jm-panel .jm-panel__title::after,
.jm-panel .jm-panel__group h4::after {
    content: none !important;   /* theme underline flourish */
}

.jm-panel__group {
    margin-bottom: 10px;
}

.jm-panel .jm-panel__group h4,
.gm-style .jm-panel .jm-panel__group h4 {
    margin: 0 0 5px !important;
    padding: 0 !important;
    font-family: 'Google Sans', system-ui, sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: .07em !important;
    text-transform: uppercase !important;
    color: #7700FF !important;
    line-height: 1.3 !important;
    text-align: left !important;
}

.jm-panel .jm-panel__group ul {
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.jm-panel .jm-panel__group li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding: 3px 0;
    padding-left: 14px;
    position: relative;
    font-size: 12.5px;
    line-height: 1.35;
    color: #2b2b3d;
    text-align: left;      /* names start on one line, not centred */
}

/* A bullet per entry, so two-line names stay visibly separate. */
.jm-panel .jm-panel__group li::before {
    content: '';
    position: absolute;
    left: 2px;
    top: .62em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #c2c2d1;
}

.jm-panel__price {
    flex: 0 0 auto;
    margin-left: auto;
    font-weight: 600;
    color: #30B300;
    text-align: right;
    white-space: nowrap;
}

.jm-panel__note {
    margin: 0 0 8px;
    font-size: 12px;
    color: #6b6b7b;
}

/* ==========================================================================
   THE STOP PANEL'S FRAME
   Google's InfoWindow reserves a header strip for its close button, which left
   a band of white above our photo, and it clips anything that tries to leave
   the box. We move the clipping onto our own card instead, so the photo can run
   edge to edge and the close button can sit OUTSIDE the corner, costing the
   card no space at all.
   ========================================================================== */
#journey-map-canvas .gm-style .gm-style-iw-c,
#partner-journey-map-canvas .gm-style .gm-style-iw-c {
    padding: 0 !important;
    border-radius: 12px !important;
    overflow: visible !important;   /* lets the close button escape the corner */
    box-shadow: 0 12px 34px rgba(9, 9, 32, .26) !important;
    max-width: none !important;
}

#journey-map-canvas .gm-style .gm-style-iw-d,
#partner-journey-map-canvas .gm-style .gm-style-iw-d {
    overflow: visible !important;
    padding: 0 !important;
    max-height: none !important;
    max-width: none !important;
}

/* The header strip that produced the white band. */
#journey-map-canvas .gm-style .gm-style-iw-ch,
#partner-journey-map-canvas .gm-style .gm-style-iw-ch {
    display: none !important;
    padding: 0 !important;
    height: 0 !important;
}

/* Close button: outside the top-right corner, taking no room inside the card.
   `.gm-style-iw-c` is a flex container, so the button has to be taken OUT of
   the flow — otherwise it holds open a 30px band above the photo, which is
   exactly the white strip we are removing. */
#journey-map-canvas .gm-style .gm-style-iw-c button.gm-ui-hover-effect,
#partner-journey-map-canvas .gm-style .gm-style-iw-c button.gm-ui-hover-effect {
    position: absolute !important;
    top: -13px !important;
    right: -13px !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    padding: 0 !important;
    margin: 0 !important;
    opacity: 1 !important;
    background: #090920 !important;
    border: 2px solid #ffffff !important;
    border-radius: 50% !important;
    box-shadow: 0 3px 10px rgba(9, 9, 32, .35) !important;
    z-index: 5 !important;
}

#journey-map-canvas .gm-style .gm-style-iw-c button.gm-ui-hover-effect > span,
#partner-journey-map-canvas .gm-style .gm-style-iw-c button.gm-ui-hover-effect > span {
    background-color: #ffffff !important;
    margin: 0 !important;
    width: 14px !important;
    height: 14px !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
}

/* The open panel must sit above every other photo card on the map. */
#journey-map-canvas .gm-style .gm-style-iw-a,
#partner-journey-map-canvas .gm-style .gm-style-iw-a {
    z-index: 10000 !important;
}

/* ==========================================================================
   SELECTED STOP
   Clicking a stop rings it in Sarisara violet and lifts it clear; every other
   card drops behind the open panel so the panel stays readable.
   ========================================================================== */
.jm-stop--selected {
    z-index: 12000 !important;
}

.jm-stop--selected .jm-stop__card {
    border-color: #7700FF;
    box-shadow: 0 0 0 3px rgba(119, 0, 255, .28);
}

.jm-stop--selected .jm-stop__tail {
    border-top-color: #7700FF;
}

.jm-stop--dimmed {
    z-index: 1 !important;
    opacity: .55;
}

/* ==========================================================================
   AIRPORT CARD
   The badge spans the card, so the plane sits in the space above it rather
   than behind the words.
   ========================================================================== */
.jm-stop--endpoint .jm-stop__card--noimg::before {
    background-size: 20px 20px;
    background-position: center 30%;
}

/* ==========================================================================
   TOOLBAR — the trip at a glance, plus the two map controls
   ========================================================================== */
/* No box around the map: the page's own "Journey Route" heading already opens
   this section, and a second bordered card inside it read as a duplicate. */
.journey-map-wrapper {
    font-family: 'Google Sans', system-ui, sans-serif;
    background: none;
    padding: 0;
    border: 0;
    border-radius: 0;
    margin-top: 0;
}

.jm-toolbar {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: 10px 16px;
    margin-bottom: 14px;
}

.jm-facts {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.jm-fact {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
    padding: 6px 12px;
    background: #f6f5fb;
    border-radius: 999px;
    font-size: 13px;
    color: #5a5a70;
    white-space: nowrap;
}

.jm-fact strong {
    font-size: 14px;
    font-weight: 700;
    color: #090920;
}

.jm-facts__chain {
    flex-basis: 100%;
    font-size: 13px;
    color: #5a5a70;
    line-height: 1.5;
}

.jm-toolbar__actions {
    display: flex;
    gap: 10px;
    justify-self: end;
}

/* Sarisara buttons — pill, violet outline, no 3D black slab. */
.journey-map-wrapper .jm-btn {
    padding: 9px 20px !important;
    border-radius: 999px !important;
    border: 1.5px solid #7700FF !important;
    background: #ffffff !important;
    color: #7700FF !important;
    font-family: 'Google Sans', system-ui, sans-serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: none !important;
    text-shadow: none !important;
    transition: background .16s ease, color .16s ease;
    cursor: pointer;
    white-space: nowrap;
}

.journey-map-wrapper .jm-btn:hover,
.journey-map-wrapper .jm-btn:focus {
    background: #7700FF !important;
    color: #ffffff !important;
}

.jm-canvas {
    width: 100%;
    height: 620px;
    border-radius: 12px;
    overflow: hidden;
}

.journey-map-wrapper .journey-map-status {
    margin: 10px 0 0;
    font-size: 13px;
    color: #6b6b7b;
}

/* Nothing to say is not a reason to hold open a blank row. */
.journey-map-wrapper .journey-map-status:empty {
    display: none;
}

/* ==========================================================================
   LEGEND
   ========================================================================== */
.journey-map-wrapper .journey-map-legend {
    margin-top: 14px;
    padding: 0;
    background: none;
}

.jm-legend__items {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 22px;
    padding: 5px 10px;
}

.jm-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    color: #5a5a70;
}

.jm-legend__swatch {
    width: 22px;
    height: 22px;
    border-radius: 6px;
    border: 2px solid #fff;
    box-shadow: 0 2px 5px rgba(9, 9, 32, .2);
    display: inline-block;
}

.jm-legend__swatch--stop {
    background: linear-gradient(135deg, #c9c9d4, #eeeef3);
}

.jm-legend__swatch--air {
    background: linear-gradient(135deg, #7700FF, #00FAFF);
    border-color: #7700FF;
}

.jm-legend__chip {
    padding: 2px 7px;
    border-radius: 6px;
    background: #1D6DFF;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
}

.jm-legend__line {
    width: 40px;
    height: 4px;
    border-radius: 2px;
    background: linear-gradient(90deg, #7700FF, #00FAFF);
    display: inline-block;
}

@media (max-width: 600px) {
    .jm-toolbar { grid-template-columns: 1fr; }
    .jm-toolbar__actions { justify-self: start; }
    .jm-canvas { height: 460px; }
}

/* ==========================================================================
   AIRPORT CARD — the badge carries a word, not a number
   The card is a little wider so "START · END" fits on ONE line, leaving the
   upper half of the card free for the plane instead of covering it.
   ========================================================================== */
.jm-stop--endpoint .jm-stop__card {
    width: 66px;
    height: 56px;
}

.jm-stop--endpoint .jm-stop__badge {
    left: 0;
    right: 0;
    bottom: 0;
    min-width: 0;
    padding: 3px 2px;
    background: rgba(9, 9, 32, .72);
    border-radius: 0;
    font-size: 8.5px;
    letter-spacing: .02em;
    white-space: nowrap;   /* one line, so it never sits over the plane */
}

.jm-stop--endpoint .jm-stop__card--noimg::before {
    background-size: 22px 22px;
    background-position: center 28%;   /* clear of the badge along the bottom */
}

/* ==========================================================================
   GOOGLE'S OWN ROOT DIV MUST FILL THE CANVAS
   --------------------------------------------------------------------------
   On the tour page Google built `.gm-style` at 0x0 inside an 815x796 canvas.
   Everything else was fine — the map object, the route, the markers — but with
   a zero-sized root it never laid out a viewport, never asked for a tile, and
   reported its bounds as a single point. The result was a grey rectangle with
   no error anywhere.

   Google sizes that div from whatever it measures at construction, and never
   revisits it. Pinning it to the container is what makes it right, whatever
   the page did during construction.
   ========================================================================== */
#journey-map-canvas .gm-style,
#partner-journey-map-canvas .gm-style {
    width: 100% !important;
    height: 100% !important;
}

/* ═══ VIOLET, NOT BLUE (Chiran, 24 Oct 2026) — the pins' day badges, the legend and the route ribbon use the
   Sarisara violet; and the pin pop-up gets the design-system card. ═══ */
.jm-stop__badge { background: #7700FF !important; }
.jm-legend__chip { background: #7700FF !important; }
.jm-legend__line { background: linear-gradient(90deg, #7700FF, #00FAFF) !important; }   /* the blue-and-violet ribbon, as on the map */
.jm-legend__swatch--air { background: linear-gradient(135deg, #7700FF, #00FAFF) !important; border-color: #7700FF !important; }
.journey-map-status { margin: 8px 0 0 !important; padding: 0 !important; border: 0 !important; background: none !important; font-size: 12.5px !important; color: var(--text-tertiary, #8E8EA0) !important; }
.journey-map-status:empty { display: none !important; }

/* the pop-up on a pin */
.gm-style .gm-style-iw-c { padding: 0 !important; border-radius: 16px !important; box-shadow: 0 18px 44px rgba(9,9,32,.22) !important; }
.gm-style .gm-style-iw-d { overflow: hidden !important; }
.jm-panel { width: 280px; border-radius: 16px; font-family: var(--font-label, 'Google Sans', sans-serif); }
.jm-panel__hero { height: 150px; }
.jm-panel__day { left: 12px; bottom: 12px; padding: 4px 10px; background: #7700FF !important; font-size: 12px; box-shadow: 0 2px 8px rgba(9,9,32,.25); }
.jm-panel__body { padding: 14px 16px 10px; }
.jm-panel .jm-panel__title, .gm-style .jm-panel .jm-panel__title { font-family: var(--font-label, 'Google Sans', sans-serif) !important; font-size: 17px !important; font-weight: 700 !important; color: #090920 !important; margin: 0 0 10px !important; text-align: left !important; letter-spacing: -.01em !important; }
.jm-panel .jm-panel__title::after, .jm-panel .jm-panel__group h4::after { display: none !important; }
.jm-panel .jm-panel__group { margin: 0 0 10px; padding-top: 10px; border-top: 1px solid #EFEFF4; }
.jm-panel .jm-panel__group h4, .gm-style .jm-panel .jm-panel__group h4 { margin: 0 0 6px !important; font-size: 11px !important; font-weight: 700 !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: #8E8EA0 !important; text-align: left !important; }
.jm-panel .jm-panel__group li { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0 3px 14px !important; font-size: 14px !important; font-weight: 500; line-height: 1.4 !important; color: #090920 !important; position: relative; }
.jm-panel .jm-panel__group li::before { content: '' !important; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; border-radius: 50%; background: #7700FF !important; }
.jm-panel .jm-panel__price { flex: none; font-weight: 700; color: #2A8F05 !important; }
.gm-style .gm-ui-hover-effect { top: 8px !important; right: 8px !important; width: 32px !important; height: 32px !important; border-radius: 50% !important; background: #fff !important; box-shadow: 0 2px 8px rgba(9,9,32,.25) !important; opacity: 1 !important; }
.gm-style .gm-ui-hover-effect > span { margin: 7px !important; width: 18px !important; height: 18px !important; background-color: #090920 !important; }
