/* ============================================================
   ESI SEARCH WIDGET
   Layout mirrors the ESI search bar: tabs sitting on top of a
   white rounded bar split into query / dates / travelers / CTA.
   ============================================================ */

.esi-search-root {
   --esi-s-brand:       #BB9B67;
   --esi-s-brand-dark:  #a2854f;
   --esi-s-brand-light: #EDE7DE;
   --esi-s-navy:        #1c2b4a;
   --esi-s-border:      #e3e5e9;
   --esi-s-muted:       #8a8a8a;
   --esi-s-radius:      10px;
   position: relative;
   font-size: 16px;
}

/* ---------- tabs ---------- */
.esi-search-tabs {
   display: flex;
   gap: 2px;
}
.esi-search-tab {
   background: rgba(255, 255, 255, 0.72);
   color: var(--esi-s-navy);
   border: none;
   border-radius: 8px 8px 0 0;
   padding: 12px 22px;
   font-size: 13px;
   font-weight: 700;
   letter-spacing: 0.04em;
   text-transform: uppercase;
   cursor: pointer;
   transition: background 0.2s, color 0.2s;
}
.esi-search-tab:hover { background: rgba(255, 255, 255, 0.88); }
.esi-search-tab.is-active { background: #fff; }

/* ---------- bar ---------- */
.esi-search-bar {
   display: grid;
   grid-template-columns: 1.4fr 1fr 1fr auto;
   align-items: stretch;
   background: #fff;
   border-radius: var(--esi-s-radius);
   box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
   overflow: visible;
   border-radius: 8px !important;
}
.esi-search-tabs + .esi-search-bar { border-top-left-radius: 0; }

.esi-search-field {
   position: relative;
   padding: 14px 22px;
   border-right: 1px solid var(--esi-s-border);
   min-width: 0;
}
.esi-search-field:last-of-type { border-right: none; }

.esi-search-label {
   display: block;
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.04em;
   text-transform: uppercase;
   color: var(--esi-s-navy);
   margin-bottom: 4px;
}

.esi-search-input,
.esi-search-trigger {
   width: 100%;
   border: none;
   background: none;
   padding: 0;
   font-size: 17px;
   font-family: inherit;
   color: var(--esi-s-navy);
   outline: none;
   text-align: left;
}
.esi-search-input::placeholder { color: var(--esi-s-muted); }
.esi-search-trigger {
   cursor: pointer;
   color: var(--esi-s-muted);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   
}
.esi-search-trigger.has-value { color: var(--esi-s-navy); font-weight: 600; }

/* ---------- CTA ---------- */
.esi-search-cta {
   display: flex;
   align-items: center;
   padding: 10px 12px;
}
.esi-search-submit {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   height: 100%;
   min-height: 56px;
   padding: 0 26px;
   background-color: var(--esi-s-brand) !important;
   color: #fff;
   border: none !important;
   border-radius: 8px;
   font-size: 15px;
   font-weight: 600;
   font-family: inherit;
   cursor: pointer;
   transition: background 0.2s;
}
.esi-search-submit:hover { background: var(--esi-s-brand-dark); }
.esi-search-submit:focus,
.esi-search-submit:active { outline: none; box-shadow: none; }

/* ---------- popovers ---------- */
.esi-search-pop {
   position: absolute;
   top: calc(100% + 8px);
   left: 0;
   z-index: 60;
   background: #fff;
   border-radius: var(--esi-s-radius);
   box-shadow: 0 10px 34px rgba(0, 0, 0, 0.16);
   padding: 18px;
}
.esi-search-pop--dates {
   width: 574px;
   max-width: 574px;
   padding: 26px 26px 18px;
}
.esi-search-pop--travelers {
   width: 370px;
   max-width: 370px;
   right: 0;
   left: auto;
   padding: 24px 26px 18px;
}

.esi-search-pop-actions {
   display: flex;
   justify-content: space-between;
   align-items: center;
   margin-top: 18px;
}
.esi-search-link {
   background: none;
   border: none;
   padding: 4px 2px;
   font-size: 17px;
   font-family: inherit;
   color: var(--esi-s-navy);
   cursor: pointer;
}
.esi-search-link:hover { text-decoration: underline; }
.esi-search-link--apply { color: var(--esi-s-brand); font-weight: 400; }
.esi-search-link:focus,
.esi-search-link:active { outline: none; box-shadow: none; }

/* ---------- suggestions ---------- */
.esi-search-suggest {
   position: absolute;
   top: calc(100% + 6px);
   left: 0;
   right: 0;
   z-index: 60;
   background: #fff;
   border-radius: var(--esi-s-radius);
   box-shadow: 0 10px 34px rgba(0, 0, 0, 0.16);
   overflow: hidden;
}
.esi-search-suggest-item {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 10px;
   width: 100%;
   padding: 11px 18px;
   background: none;
   border: none;
   font-size: 15px;
   font-family: inherit;
   color: var(--esi-s-navy);
   text-align: left;
   cursor: pointer;
}
.esi-search-suggest-item:hover { background: var(--esi-s-brand-light); }
.esi-search-suggest-item:focus { outline: none; }
.esi-search-suggest-city { color: var(--esi-s-muted); font-size: 13px; }

/* ---------- calendars ---------- */
.esi-search-cals {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 24px;
}

/* ---- month header ---- */
.esi-search-cal-head {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 6px;
   margin-bottom: 14px;
}
.esi-search-cal-title {
   font-weight: 400;
   color: var(--esi-s-navy);
   font-size: 19px;
   white-space: nowrap;
}
.esi-search-cal-nav {
   background: none;
   border: none;
   font-size: 26px;
   line-height: 1;
   width: 30px;
   height: 30px;
   color: #6b7280;
   cursor: pointer;
   border-radius: 50%;
   flex-shrink: 0;
}
.esi-search-cal-nav:hover { color: var(--esi-s-navy); background: #f3f4f6; }
.esi-search-cal-nav:focus { outline: none; }
.esi-search-cal-nav--ghost { visibility: hidden; cursor: default; }

/* ---- weekday row: sits above the grid, no borders ---- */
.esi-search-cal-dows {
   display: grid;
   grid-template-columns: repeat(7, 1fr);
   margin-bottom: 8px;
}
.esi-search-cal-dow {
   text-align: center;
   font-size: 11px;
   font-weight: 500;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: #9ca3af;
}

/* ---- day grid: thin table lines, drawn with a 1px gap ---- */
.esi-search-cal-grid {
   display: grid;
   grid-template-columns: repeat(7, 1fr);
   gap: 1px;
   background: #ededed;
   border: 1px solid #ededed;
}
.esi-search-cal-empty {
   height: 38px;
   background: #fff;
}
.esi-search-cal-day {
   height: 38px;
   background: #fff;
   border: none;
   border-radius: 0;
   font-size: 15px;
   font-family: inherit;
   color: var(--esi-s-navy);
   cursor: pointer;
}
.esi-search-cal-day:hover:not(.is-disabled) { background: var(--esi-s-brand-light); }
.esi-search-cal-day:focus { outline: none; }
.esi-search-cal-day.is-disabled {
   color: #d4d4d4;
   cursor: default;
   text-decoration: line-through;
}
.esi-search-cal-day.is-between { background: var(--esi-s-brand-light); }
.esi-search-cal-day.is-start,
.esi-search-cal-day.is-end     { background: var(--esi-s-brand); color: #fff; font-weight: 600; }

/* ---------- traveler counters ---------- */
.esi-search-counter {
   display: flex;
   align-items: center;
   justify-content: space-between;
   gap: 16px;
   padding: 10px 0;
}
.esi-search-counter-label {
   font-size: 17px;
   color: #3f3f46;
}
.esi-search-counter-ctrl {
   display: flex;
   align-items: center;
   gap: 16px;
}
.esi-search-counter-ctrl button {
   width: 38px;
   height: 38px;
   border-radius: 50%;
   border: 1px solid var(--esi-s-brand);
   background: none;
   color: var(--esi-s-brand);
   font-size: 18px;
   line-height: 1;
   font-family: inherit;
   cursor: pointer;
   transition: background 0.15s, color 0.15s;
}
.esi-search-counter-ctrl button:hover:not(:disabled) { background: var(--esi-s-brand); color: #fff; }
/* At zero the minus button stays visible but clearly inactive. */
.esi-search-counter-ctrl button:disabled {
   border-color: var(--esi-s-brand-light);
   color: #c9c2b4;
   cursor: default;
}
.esi-search-counter-ctrl button:focus { outline: none; box-shadow: none; }
.esi-search-counter-ctrl .js-value {
   min-width: 20px;
   text-align: center;
   font-size: 17px;
   font-weight: 400;
   color: var(--esi-s-navy);
}

/* ---- More options ---- */
.esi-search-more-toggle {
   display: block;
   margin-top: 10px;
   padding: 4px 0;
   background: none;
   border: none;
   font-size: 16px;
   font-family: inherit;
   color: var(--esi-s-brand);
   cursor: pointer;
   text-align: left;
}
.esi-search-more-toggle:hover { text-decoration: underline; }
.esi-search-more-toggle:focus { outline: none; box-shadow: none; }
.esi-search-more[hidden] { display: none; }

/* ---------- results ---------- */
.esi-search-results {
   display: grid;
   gap: 21px;
   margin-top: 34px;
}
.esi-search-results:empty { display: none; }
.esi-search-results > p { grid-column: 1 / -1; }

/* ---------- responsive ---------- */
@media (max-width: 1024px) {
   .esi-search-bar { grid-template-columns: 1fr 1fr; }
   .esi-search-field:nth-of-type(2) { border-right: none; }
   .esi-search-field { border-bottom: 1px solid var(--esi-s-border); }
   .esi-search-cta { grid-column: 1 / -1; padding: 14px 22px; }
   .esi-search-submit { width: 100%; }
   .esi-search-pop--dates { width: min(574px, 92vw); max-width: 92vw; }
}
@media (max-width: 700px) {
   .esi-search-bar { grid-template-columns: 1fr; }
   .esi-search-field { border-right: none; }
   .esi-search-pop { left: 0; right: 0; width: auto; }
   .esi-search-pop--travelers { right: 0; left: 0; width: auto; max-width: none; }
   .esi-search-cals { grid-template-columns: 1fr; gap: 18px; }
   .esi-search-tab { padding: 10px 16px; font-size: 12px; }
}

/* ---------- empty / notice states ---------- */
.esi-search-empty {
   grid-column: 1 / -1;
   text-align: center;
   padding: 40px 20px;
   background: var(--esi-s-brand-light);
   border-radius: var(--esi-s-radius);
}
.esi-search-empty-title {
   font-size: 18px;
   font-weight: 700;
   color: var(--esi-s-navy);
   margin: 0 0 6px;
}
.esi-search-empty-hint {
   font-size: 15px;
   color: var(--esi-s-muted);
   margin: 0 0 18px;
}
.esi-search-clear-dates {
   background: none;
   border: 1px solid var(--esi-s-brand);
   color: var(--esi-s-brand);
   border-radius: 100px;
   padding: 11px 24px;
   font-size: 15px;
   font-weight: 600;
   font-family: inherit;
   cursor: pointer;
   transition: background 0.2s, color 0.2s;
}
.esi-search-clear-dates:hover { background: var(--esi-s-brand); color: #fff; }
.esi-search-clear-dates:focus,
.esi-search-clear-dates:active { outline: none; box-shadow: none; }

/* Shown when dates were picked but the API cannot filter by them. */
.esi-search-notice {
   grid-column: 1 / -1;
   margin: 0;
   padding: 12px 16px;
   background: #fff8e5;
   border: 1px solid #f0d98c;
   border-radius: 8px;
   font-size: 14px;
   color: #6b5417;
}

/* ============================================================
   SERVICE CARD
   ============================================================ */
.esi-card {
   display: flex;
   flex-direction: column;
   background: #fff;
   border-radius: 8px;
   overflow: hidden;
     box-shadow: 0 4px 6px -1px rgb(0 0 0 / 20%);
   transition: transform 0.2s, box-shadow 0.2s;
}


/* ---- image + amenity badges ---- */
.esi-card-media {
   position: relative;
   display: block;
   aspect-ratio: 4 / 3;
   background: #ececec center/cover no-repeat;
   text-decoration: none;
}
.esi-card-badges {
   position: absolute;
   left: 12px;
   bottom: 12px;
   display: flex;
   gap: 6px;
}
.esi-card-badge {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 28px;
   height: 28px;
   color: var(--esi-s-brand);
   box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}

/* ---- body ---- */
.esi-card-body {
   display: flex;
   flex-direction: column;
   gap: 8px;
   padding: 16px 18px 20px;
}
.esi-card-meta {
   display: flex;
   flex-wrap: wrap;
   align-items: center;
   gap: 8px;
   margin: 0;
   font-size: 12px;
   font-weight: 400;
   letter-spacing: 0.06em;
   text-transform: uppercase;
   color: #4A5565;
   line-height: 1.4;
   font-family: 'Manrope', sans-serif;
}
.esi-card-dot {
   width: 3px;
   height: 3px;
   border-radius: 50%;
   background: currentColor;
   opacity: 0.6;
   flex-shrink: 0;
   font-style: normal;
}
.esi-card-cap {
   display: inline-flex;
   align-items: center;
   gap: 5px;
   white-space: nowrap;
}
.esi-card-title {
   margin: 0;
   font-size: 19px;
   line-height: 1.3;
   font-weight: 700;
   color: var(--esi-s-navy);
}
.esi-card-stars {
   color: var(--esi-s-brand);
   font-size: 15px;
   letter-spacing: 2px;
   line-height: 1;
}
.esi-card-link {
   align-self: flex-start;
   margin-top: 2px;
   line-height: 12px;
   font-size: 16px;
   color: #124D84;
   text-decoration: underline !important;
   text-underline-offset: 3px;
   cursor: pointer;
    font-family: 'Manrope', sans-serif;
}
.esi-card-link:hover { color: var(--esi-s-brand); }

/* ============================================================
   PAGINATION
   ============================================================ */
.esi-pagination {
   display: flex;
   justify-content: center;
   align-items: center;
   flex-wrap: wrap;
   gap: 6px;
   margin-top: 30px;
}
.esi-page {
   min-width: 40px;
   height: 40px;
   padding: 0 10px;
   border: 1px solid var(--esi-s-border);
   border-radius: 8px;
   background: #fff;
   color: var(--esi-s-navy);
   font-size: 15px;
   font-family: inherit;
   cursor: pointer;
   transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.esi-page:hover:not(:disabled) {
   border-color: var(--esi-s-brand);
   color: var(--esi-s-brand);
}
.esi-page.is-active {
   background: var(--esi-s-brand);
   border-color: var(--esi-s-brand);
   color: #fff;
   font-weight: 700;
   cursor: default;
}
.esi-page:disabled { opacity: 0.4; cursor: default; }
.esi-page:focus, .esi-page:active { outline: none; box-shadow: none; }
.esi-page--nav { font-size: 20px; line-height: 1; }
.esi-page-gap {
   min-width: 24px;
   text-align: center;
   color: var(--esi-s-muted);
}

/* ============================================================
   GRID: 4 per row on desktop, 2 on tablet and phone
   ============================================================ */
@media (max-width: 1200px) {
   .esi-search-results { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 900px) {
   .esi-search-results { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
   .esi-search-results { gap: 14px; }
   .esi-card-body { padding: 13px 14px 16px; }
   .esi-card-title { font-size: 14px; font-family: "Google Sans Flex", sans-serif; }
   .esi-card-meta { font-size: 11px; gap: 6px; }
   .esi-card-badge { width: 32px; height: 32px; }
   .esi-card-badge svg { width: 18px; height: 18px; }
   .esi-card-link { font-size:14px; }
}

.esi-search-submit svg {
   width: 20px;
   height: 20px;
   
   color:white !important;
   line-height: 18px !important;
   display: flex !important;
}


.esi-search-tabs{
	display:none;
}

.esi-search-input.js-query{
   border:none !important;
   padding: 0 !important;
}

.esi-search-trigger.js-dates-trigger   {
   border:none !important;
   padding: 0 !important;
   color: #666 !important;
}

.esi-search-trigger.js-trav-trigger   {
   border:none !important;
   padding: 0 !important;
   color: #666 !important;
}


.esi-search-trigger.js-dates-trigger:hover { 
   background-color: transparent !important;
   color: #666 !important;
}

.esi-search-trigger.js-trav-trigger:hover { 
   background-color: transparent !important;
   color: #666 !important;
}



.esi-search-submit-text{
   display:none;
}
/* ============================================================
   THEME RESET  (must stay at the end of the file)

   Themes commonly style every button, e.g.
       [type=button], [type=submit], button { border:1px solid #c36; padding:.5rem 1rem }
   An attribute selector has the same weight as a plain class, so whichever
   stylesheet loads last wins — which produced pink outlines and over-wide
   calendar cells. Everything below is scoped with `.esi-search-root`, giving
   it a higher weight than the theme regardless of load order.
   ============================================================ */

.esi-search-root,
.esi-search-root *,
.esi-search-root *::before,
.esi-search-root *::after { box-sizing: border-box; }

/* --- neutralise the theme's button styling inside the widget --- */
.esi-search-root button,
.esi-search-root [type="button"],
.esi-search-root [type="submit"] {
   margin: 0;
   border: none;
   border-radius: 0;
   background: none;
   background-color: transparent;
   color: inherit;
   font: inherit;
   line-height: normal;
   letter-spacing: normal;
   text-transform: none;
   text-align: inherit;
   white-space: normal;
   box-shadow: none;
   text-shadow: none;
   min-width: 0;
   min-height: 0;
   width: auto;
   height: auto;
   -webkit-appearance: none;
   appearance: none;
}
.esi-search-root button:focus,
.esi-search-root button:active,
.esi-search-root button:focus-visible,
.esi-search-root [type="button"]:focus,
.esi-search-root [type="button"]:active,
.esi-search-root [type="button"]:focus-visible {
   outline: none;
   box-shadow: none;
}

/* --- calendar --- */
.esi-search-root .esi-search-cal-grid { min-width: 0; }
.esi-search-root .esi-search-cal-day,
.esi-search-root .esi-search-cal-empty {
   display: block;
   width: 100%;
   min-width: 0;
   height: 38px;
   padding: 0;
   border: none;
   border-radius: 0;
   background: #fff;
   font-size: 15px;
   line-height: 38px;
   text-align: center;
   color: var(--esi-s-navy);
}
.esi-search-root .esi-search-cal-day { cursor: pointer; }
.esi-search-root .esi-search-cal-day:hover:not(.is-disabled) { background: var(--esi-s-brand-light); }
.esi-search-root .esi-search-cal-day.is-disabled {
   color: #d4d4d4;
   cursor: default;
   text-decoration: line-through;
}
.esi-search-root .esi-search-cal-day.is-between { background: var(--esi-s-brand-light); }
.esi-search-root .esi-search-cal-day.is-start,
.esi-search-root .esi-search-cal-day.is-end {
   background: var(--esi-s-brand);
   color: #fff;
   font-weight: 600;
}
.esi-search-root .esi-search-cal-nav {
   width: 30px;
   height: 30px;
   padding: 0;
   border-radius: 50%;
   font-size: 26px;
   line-height: 1;
   text-align: center;
   color: #6b7280;
   cursor: pointer;
   flex-shrink: 0;
}
.esi-search-root .esi-search-cal-nav:hover { background: #f3f4f6; color: var(--esi-s-navy); }
.esi-search-root .esi-search-cal-nav--ghost { visibility: hidden; cursor: default; }

/* --- popover actions --- */
.esi-search-root .esi-search-link {
   padding: 4px 2px;
   font-size: 17px;
   color: var(--esi-s-navy);
   cursor: pointer;
}
.esi-search-root .esi-search-link--apply { color: var(--esi-s-brand); }

/* --- traveller counters --- */
.esi-search-root .esi-search-counter-ctrl button {
   width: 38px;
   height: 38px;
   padding: 0;
   border: 1px solid var(--esi-s-brand);
   border-radius: 50%;
   background: none;
   color: var(--esi-s-brand);
   font-size: 18px;
   line-height: 1;
   text-align: center;
   cursor: pointer;
   flex-shrink: 0;
}
.esi-search-root .esi-search-counter-ctrl button:hover:not(:disabled) {
   background: var(--esi-s-brand);
   color: #fff;
}
.esi-search-root .esi-search-counter-ctrl button:disabled {
   border-color: var(--esi-s-brand-light);
   color: #c9c2b4;
   cursor: default;
}
.esi-search-root .esi-search-more-toggle {
   display: block;
   margin-top: 10px;
   padding: 4px 0;
   font-size: 16px;
   color: var(--esi-s-brand);
   text-align: left;
   cursor: pointer;
}

/* --- tabs, triggers, submit --- */
.esi-search-root .esi-search-tab {
   padding: 12px 22px;
   border-radius: 8px 8px 0 0;
   background: rgba(255, 255, 255, 0.72);
   color: var(--esi-s-navy);
   font-size: 13px;
   font-weight: 700;
   letter-spacing: 0.04em;
   text-transform: uppercase;
   cursor: pointer;
}
.esi-search-root .esi-search-tab.is-active { background: #fff; }
.esi-search-root .esi-search-trigger {
   width: 100%;
   padding: 0;
   font-size: 17px;
   color: var(--esi-s-muted);
   text-align: left;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   cursor: pointer;
}
.esi-search-root .esi-search-trigger.has-value { color: var(--esi-s-navy); font-weight: 600; }
.esi-search-root .esi-search-submit {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   height: 100%;
   min-height: 56px;
   padding: 0 26px;
   border-radius: 8px;
   color: #fff;
   font-size: 15px;
   font-weight: 600;
   cursor: pointer;
}

/* --- suggestions & pagination --- */
.esi-search-root .esi-search-suggest-item {
   display: flex;
   justify-content: space-between;
   align-items: center;
   gap: 10px;
   width: 100%;
   padding: 11px 18px;
   font-size: 15px;
   color: var(--esi-s-navy);
   text-align: left;
   cursor: pointer;
}
.esi-search-root .esi-search-suggest-item:hover { background: var(--esi-s-brand-light); }
.esi-search-root .esi-page {
   min-width: 40px;
   height: 40px;
   padding: 0 10px;
   border: 1px solid var(--esi-s-border);
   border-radius: 8px;
   background: #fff;
   color: var(--esi-s-navy);
   font-size: 15px;
   text-align: center;
   cursor: pointer;
}
.esi-search-root .esi-page:hover:not(:disabled) {
   border-color: var(--esi-s-brand) !important;
   color: var(--esi-s-brand) !important;
   background: #fff !important;
}
.esi-search-root .esi-page:focus,
.esi-search-root .esi-page:active {
   outline: none !important;
   box-shadow: none !important;
   border-color: var(--esi-s-brand) !important;
   color: var(--esi-s-brand) !important;
}
.esi-search-root .esi-page.is-active,
.esi-search-root .esi-page.is-active:hover,
.esi-search-root .esi-page.is-active:focus {
   background: var(--esi-s-brand) !important;
   border-color: var(--esi-s-brand) !important;
   color: #fff !important;
   font-weight: 700;
   cursor: default;
}
.esi-search-root .esi-page:disabled { opacity: 0.4; cursor: default; }
.esi-search-root .esi-search-clear-dates {
   padding: 11px 24px;
   border: 1px solid var(--esi-s-brand);
   border-radius: 100px;
   color: var(--esi-s-brand);
   font-size: 15px;
   font-weight: 600;
   cursor: pointer;
}
.esi-search-root .esi-search-clear-dates:hover { background: var(--esi-s-brand); color: #fff; }

/* ============================================================
   OCCUPIED CARD  (dates selected, unit not available)
   ============================================================ */
.esi-card--occupied { opacity: 0.55; }
.esi-card--occupied .esi-card-media { filter: grayscale(100%); }
.esi-card--occupied .esi-card-media::after {
   content: '';
   position: absolute;
   inset: 0;
   background: rgba(255, 255, 255, 0.35);
}
.esi-card-occupied {
   position: absolute;
   top: 12px;
   left: 12px;
   z-index: 2;
   padding: 6px 12px;
   border-radius: 100px;
   background: rgba(28, 43, 74, 0.88);
   color: #fff;
   font-size: 12px;
   font-weight: 700;
   letter-spacing: 0.04em;
   text-transform: uppercase;
}
.esi-card--occupied:hover { transform: none; }

/* count line above the results */
.esi-search-summary {
   grid-column: 1 / -1;
   margin: 0 0 4px;
   font-size: 14px;
   color: var(--esi-s-muted);
}

/* card waiting for its availability answer */
.esi-card--checking { opacity: 0.75; }
.esi-card--checking .esi-card-media { animation: esi-pulse 1.1s ease-in-out infinite; }
@keyframes esi-pulse {
   0%, 100% { opacity: 1; }
   50%      { opacity: 0.55; }
}

/* ============================================================
   EXPERIENCE CARD — price line + duration/meeting-point row
   New, additive rules only; nothing above this block (including the
   apartment card styling) is touched.
   ============================================================ */
.esi-card-price {
   display: block;
   font-size: 13px;
   color: #124D84;
   margin: 2px 0 6px;
}
.esi-card-price strong {
   color: #124D84;
   font-weight: 700;
}
.esi-card-foot {
   display: flex;
   align-items: center;
   gap: 14px;
   margin-bottom: 8px;
}
.esi-card-foot-item {
   display: inline-flex;
   align-items: center;
   gap: 5px;
   font-size: 13px;
   color: #124D84;
}
.esi-card-foot-item svg { flex-shrink: 0; color: var(--esi-s-brand); }
