:root{
    --listing-font: -apple-system,
                    BlinkMacSystemFont,
                    "Segoe UI",
                    Helvetica,
                    Arial,
                    "Noto Sans",
                    "Apple Color Emoji",
                    "Segoe UI Emoji",
                    sans-serif;

    --header-offset: 72px;
    --map-gap: 12px;
}

.hero-sector-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 14px;
}

.hero-sector-tab{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:36px;
    padding:0 14px;
    border-radius:999px;
    text-decoration:none;
    font-size:12px;
    font-weight:800;
    letter-spacing:.01em;
    border:1px solid rgba(255,255,255,.24);
    color:#fff;
    background:rgba(255,255,255,.08);
    backdrop-filter:blur(10px);
    transition:all .18s ease;
}

.hero-sector-tab:hover{
    transform:translateY(-1px);
    background:rgba(255,255,255,.14);
    color:#fff;
}

.hero-sector-tab-active{
    background:#fff;
    color:#0f172a !important;
    border-color:#fff;
    box-shadow:0 10px 24px rgba(15,23,42,.14);
}

.hero-card.hero-theme-default{
    background:linear-gradient(135deg,#0f172a 0%, #1e293b 45%, #334155 100%);
    color:#fff;
}

.hero-card.hero-theme-event{
    background:linear-gradient(135deg,#0f4c81 0%, #0077a6 55%, #48a9c5 100%);
    color:#fff;
}

.hero-card.hero-theme-accommodation{
    background:linear-gradient(135deg,#102a43 0%, #1d4ed8 55%, #60a5fa 100%);
    color:#fff;
}

.hero-card.hero-theme-transport{
    background:linear-gradient(135deg,#064e3b 0%, #059669 55%, #34d399 100%);
    color:#fff;
}

.hero-card.hero-theme-service{
    background:linear-gradient(135deg,#7c2d12 0%, #ea580c 55%, #fb923c 100%);
    color:#fff;
}

.hero-card.hero-theme-food{
    background:linear-gradient(135deg,#881337 0%, #db2777 55%, #f472b6 100%);
    color:#fff;
}

.hero-card{
    padding:24px 26px 18px;
}

.hero-card .hero-copy p,
.hero-card .hero-copy h1{
    color:inherit;
}

.hero-card .search-panel{
    margin-top:16px;
    padding:14px;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.16);
    backdrop-filter:blur(10px);
    border-radius:20px;
    box-shadow:0 12px 28px rgba(15,23,42,.10);
}

.hero-card .search-field label{
    color:rgba(255,255,255,.92);
}

.hero-card .search-field input,
.hero-card .search-field select{
    background:rgba(255,255,255,.98);
    border-color:rgba(255,255,255,.2);
}

.hero-card .btn-search{
    box-shadow:0 14px 30px rgba(15,23,42,.18);
}

.hero-copy{
    max-width:100%;
}

.hero-copy h1{
    margin:0 0 8px;
    font-size:clamp(1.85rem, 2.45vw, 2.85rem);
    line-height:1.02;
    font-weight:900;
}

.hero-copy p{
    max-width:760px;
    margin:0;
    font-size:14px;
    line-height:1.42;
    color:rgba(255,255,255,.92);
}

/* ------------------------------------------
   SEARCH PANEL
------------------------------------------- */

.search-grid{
    display:grid;
    gap:10px;
    align-items:end;
}

.search-field{
    min-width:0;
    grid-column:auto;
}

.search-field label{
    display:block;
    margin:0 0 6px;
    font-size:11px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:.02em;
}

.search-field input,
.search-field select{
    width:100%;
    min-width:0;
    min-height:42px;
    height:42px;
    padding:0 12px;
    border-radius:12px;
    border:1px solid #d7e0ea;
    outline:none;
    font-size:13px;
    font-weight:600;
    color:#0f172a;
    transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
    box-shadow:0 2px 8px rgba(15,23,42,.03);
}

.search-field input::placeholder{
    color:#8b97a8;
    font-weight:500;
}

.search-field input:focus,
.search-field select:focus{
    border-color:#8cbcff;
    box-shadow:0 0 0 4px rgba(13,110,253,.12);
}

.search-field input[readonly]{
    background:#f8fafc !important;
    color:#475569;
}

.search-action{
    grid-column:auto;
    display:flex;
    align-items:end;
    min-width:0;
}

.btn-search{
    width:100%;
    min-width:0;
    min-height:42px;
    height:42px;
    border:none;
    border-radius:12px;
    padding:0 16px;
    background:linear-gradient(135deg,#ffcc1b 0%, #f5b700 100%);
    color:#0f172a;
    font-size:13px;
    font-weight:900;
    letter-spacing:.01em;
    cursor:pointer;
    transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
    white-space:nowrap;
}

.btn-search:hover{
    transform:translateY(-1px);
    filter:brightness(1.02);
}

.btn-search:active{
    transform:translateY(0);
}

.hero2 h1 {
    margin: 0 0 10px;
    font-size: clamp(2.2rem, 3vw, 40px);
    line-height: 1.05;
    letter-spacing: -1px;
    max-width: 960px;
}

/* ------------------------------------------
   HÉBERGEMENT PREMIUM SEARCH
------------------------------------------- */

.search-panel-accommodation{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.search-grid-accommodation{
    display:grid;
    grid-template-columns:
        minmax(0, 2fr)
        minmax(0, 1.2fr)
        minmax(0, 1.2fr)
        minmax(0, 1fr)
        minmax(0, 1.15fr)
        minmax(0, 1.35fr)
        minmax(0, 1.45fr);
    gap:10px;
    align-items:end;
}

.search-field-destination,
.search-field-date,
.search-field-guests,
.search-field-type,
.search-field-budget{
    grid-column:auto;
}

.search-action-accommodation{
    grid-column:auto;
    display:flex;
    align-items:end;
    min-width:0;
}

.search-panel-accommodation .btn-search{
    width:100%;
    min-width:0;
    padding:0 16px;
}

.search-quick-filters{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    align-items:center;
}

.search-quick-label{
    font-size:11px;
    font-weight:800;
    color:rgba(255,255,255,.9);
    margin-right:4px;
}

.search-quick-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:0 11px;
    border-radius:999px;
    text-decoration:none;
    font-size:11px;
    font-weight:800;
    color:#fff;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.18);
    transition:all .18s ease;
    backdrop-filter:blur(10px);
}

.search-quick-pill:hover{
    background:rgba(255,255,255,.18);
    border-color:rgba(255,255,255,.26);
    color:#fff;
    transform:translateY(-1px);
}

/* ------------------------------------------
   GRILLES PAR SECTEUR - DESKTOP
------------------------------------------- */

.hero-theme-default .search-grid{
    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(0, 1.55fr)
        minmax(0, 1.55fr)
        minmax(0, 1fr)
        minmax(0, 1.3fr);
}

.hero-theme-event .search-grid{
    grid-template-columns:
        minmax(0, .95fr)
        minmax(0, 1.45fr)
        minmax(0, 1.4fr)
        minmax(0, 1.1fr)
        minmax(0, 1fr)
        minmax(0, .9fr)
        minmax(0, 1.25fr);
}

.hero-theme-transport .search-grid{
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(0, 1.15fr)
        minmax(0, 1.1fr)
        minmax(0, 1.05fr)
        minmax(0, .95fr)
        minmax(0, 1.15fr);
}

.hero-theme-service .search-grid{
    grid-template-columns:
        minmax(0, .95fr)
        minmax(0, 1.15fr)
        minmax(0, 1.2fr)
        minmax(0, .9fr)
        minmax(0, .85fr)
        minmax(0, 1.1fr);
}

.hero-theme-food .search-grid{
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, 1.25fr)
        minmax(0, 1.25fr)
        minmax(0, .95fr)
        minmax(0, .9fr)
        minmax(0, 1.15fr);
}

/* neutralisation des anciens spans */
.hero-theme-default .search-field,
.hero-theme-default .search-action,
.hero-theme-event .search-field,
.hero-theme-event .search-action,
.hero-theme-transport .search-field,
.hero-theme-transport .search-action,
.hero-theme-service .search-field,
.hero-theme-service .search-action,
.hero-theme-food .search-field,
.hero-theme-food .search-action,
.hero-theme-accommodation .search-field,
.hero-theme-accommodation .search-action{
    grid-column:auto;
}

.hero-theme-default .btn-search,
.hero-theme-event .btn-search,
.hero-theme-transport .btn-search,
.hero-theme-service .btn-search,
.hero-theme-food .btn-search,
.hero-theme-accommodation .btn-search{
    max-width:none;
    width:100%;
}

/* ------------------------------------------
   MAIN
------------------------------------------- */

.listing-page-fluid{
    width:100%;
    padding:0 18px 32px;
}

.listing-shell{
    width:100%;
    max-width:1680px;
    margin:0 auto;
    transition:max-width .22s ease;
}

.listing-page-fluid.map-hidden .listing-shell{
    max-width:1156px;
}

.results-header,
.results-header p,
.info-banner,
.comparison-card,
.comparison-card *:not(i):not(.material-icons):not(.material-icons-round),
.show-map-btn,
.map-hide-btn{
    font-family:var(--listing-font) !important;
}

.results-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-bottom:12px;
}

.results-header h2{
    margin-bottom:4px;
}

.results-header p{
    margin:0;
    display:flex;
    align-items:center;
    font-size:14px;
    line-height:17.5px;
    font-weight:400;
    letter-spacing:normal;
    color:#171717;
}

.show-map-btn{
    display:none;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:0 16px;
    border-radius:999px;
    border:1px solid #d7e0ea;
    background:#fff;
    color:#0f172a;
    font-size:14px;
    font-weight:800;
    box-shadow:0 4px 14px rgba(15,23,42,.05);
    cursor:pointer;
    transition:all .18s ease;
    white-space:nowrap;
}

.show-map-btn:hover{
    transform:translateY(-1px);
    border-color:#b8c8dc;
}

.listing-page-fluid.map-hidden .show-map-btn{
    display:inline-flex;
}

.listing-grid{
    display:grid;
    grid-template-columns:minmax(0, 1.7fr) minmax(400px, .88fr);
    gap:22px;
    align-items:start;
}

.listing-page-fluid.map-hidden .listing-grid{
    grid-template-columns:1fr;
}

.listing-results-col,
.listing-map-col{
    min-width:0;
}

.listing-map-col{
    position:relative;
    min-width:0;
    min-height:100%;
    height:100%;
    align-self:stretch;
}

.listing-page-fluid.map-hidden .listing-map-col{
    display:none;
}

.results-list{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.info-banner{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    min-height:auto;
    padding:8px 14px;
    margin-bottom:10px;
    background:#fff;
    border:1px solid #e5eaf1;
    border-radius:16px;
    color:#64748b;
    font-size:12px;
    line-height:1.4;
    box-shadow:none;
}

.info-banner a{
    margin-left:4px;
    color:#0d6efd;
    font-weight:700;
    text-decoration:none;
    white-space:nowrap;
}

.info-banner a:hover{
    text-decoration:underline;
}

.comparison-card{
    display:grid;
    grid-template-columns:260px minmax(0,1fr) 300px;
    align-items:stretch;
    gap:0;
    background:#fff;
    border:1px solid #dbe3ec;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 4px 14px rgba(15,23,42,.05);
    transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.comparison-card:hover{
    transform:translateY(-1px);
    border-color:#c9d7ea;
    box-shadow:0 10px 24px rgba(15,23,42,.07);
}

.comparison-card.result-card-active{
    border-color:#9ec5ff;
    box-shadow:0 14px 28px rgba(13,110,253,.10);
}

.comparison-media{
    position:relative;
    height:200px;
    min-height:150px;
    background:linear-gradient(135deg,#eef4fb,#dfeaf6);
    overflow:hidden;
}

.comparison-media img,
.comparison-placeholder{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}

.comparison-placeholder{
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:18px;
    color:#64748b;
    font-weight:700;
}

.comparison-photo-badge{
    position:absolute;
    right:10px;
    bottom:10px;
    min-width:56px;
    height:30px;
    padding:0 10px;
    border-radius:999px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:rgba(15,23,42,.74);
    color:#fff;
    font-size:13px;
    font-weight:800;
    backdrop-filter:blur(8px);
}

.comparison-content{
    padding:6px 14px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-width:0;
}

.comparison-topline{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:6px;
}

.comparison-sector,
.comparison-category{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:0 8px;
    border-radius:999px;
    font-size:11px;
}

.comparison-sector{
    background:#eef4ff;
    color:#36527b;
    font-weight:800;
}

.comparison-category{
    background:#f3f4f6;
    color:#4b5563;
    font-weight:700;
}

.comparison-title{
    margin:0 0 4px;
    font-size:20px;
    line-height:1.15;
    font-weight:700;
    color:#171717;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.comparison-title a{
    color:inherit;
    text-decoration:none;
}

.comparison-title a:hover{
    color:#0d6efd;
}

.comparison-subline{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:6px;
    color:#4b5563;
    font-size:13px;
}

.comparison-type{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-weight:700;
}

.comparison-dot{
    width:10px;
    height:10px;
    border-radius:50%;
    display:inline-block;
    background:#fb923c;
    box-shadow:14px 0 0 #fb923c, 28px 0 0 #fb923c;
    margin-right:35px;
}

.comparison-location{
    color:#475569;
    font-weight:600;
}

.comparison-description{
    margin:0 0 6px;
    color:#475569;
    font-size:13px;
    line-height:1.3;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    min-height:34px;
}

.comparison-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.comparison-meta-pill{
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:0 8px;
    border-radius:999px;
    border:1px solid #e5e7eb;
    background:#f8fafc;
    color:#475569;
    font-size:11px;
    font-weight:700;
}

.comparison-offer{
    padding:8px;
    border-left:1px solid #e7edf4;
    background:#fafcfe;
    display:flex;
    align-items:stretch;
}

.offer-box{
    width:100%;
    border:1px solid #b7e3be;
    background:#edf9ef;
    border-radius:16px;
    padding:8px 10px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.offer-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:0 10px;
    height:24px;
    border-radius:999px;
    background:#b8efc0;
    color:#166534;
    font-size:11px;
    font-weight:900;
    letter-spacing:.02em;
    text-transform:uppercase;
    width:auto;
    max-width:max-content;
}

.offer-provider{
    font-size:15px;
    font-weight:800;
    color:#111827;
    line-height:1.2;
    margin-bottom:3px;
}

.offer-line{
    color:#3f4d5f;
    font-size:12px;
    line-height:1.3;
    margin-bottom:6px;
}

.offer-price-row{
    display:flex;
    align-items:end;
    justify-content:space-between;
    gap:12px;
    margin-bottom:8px;
}

.offer-price-wrap{
    min-width:0;
}

.offer-price-label{
    display:block;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:#64748b;
    margin-bottom:3px;
}

.offer-price{
    font-size:1.55rem;
    line-height:1;
    font-weight:900;
    color:#111827;
    white-space:nowrap;
}

.offer-price small{
    font-size:1rem;
    font-weight:800;
    color:#64748b;
}

.offer-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.offer-actions .btn{
    min-height:38px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:.45rem .7rem;
    line-height:1.1;
    border-radius:14px;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
}

.offer-actions .btn-primary{
    box-shadow:0 6px 18px rgba(13,110,253,.20);
}

.map-panel-sticky{
    position:sticky;
    top:calc(var(--header-offset) + var(--map-gap));
    height:calc(100svh - var(--header-offset) - (var(--map-gap) * 2));
}

.map-card{
    position:relative;
    height:100%;
    display:flex;
    flex-direction:column;
    border-radius:24px;
    overflow:hidden;
    border:1px solid rgba(15,23,42,.08);
    box-shadow:0 10px 28px rgba(15,23,42,.08);
    background:#fff;
}

#map{
    width:100%;
    flex:1 1 auto;
    height:calc(100svh - var(--header-offset) - (var(--map-gap) * 2));
    min-height:calc(100svh - var(--header-offset) - (var(--map-gap) * 2));
    max-height:calc(100svh - var(--header-offset) - (var(--map-gap) * 2));
    background:#eaf1f8;
}

@supports not (height: 100svh){
    .map-panel-sticky{
        height:calc(100vh - var(--header-offset) - (var(--map-gap) * 2));
    }

    #map{
        height:calc(100vh - var(--header-offset) - (var(--map-gap) * 2));
        min-height:calc(100vh - var(--header-offset) - (var(--map-gap) * 2));
        max-height:calc(100vh - var(--header-offset) - (var(--map-gap) * 2));
    }
}

.map-hide-btn{
    position:absolute;
    top:14px;
    right:14px;
    z-index:1000;
    width:46px;
    height:46px;
    border:none;
    border-radius:16px;
    background:rgba(255,255,255,.96);
    color:#0f172a;
    font-size:26px;
    line-height:1;
    box-shadow:0 8px 20px rgba(15,23,42,.12);
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:transform .16s ease, box-shadow .16s ease;
}

.map-hide-btn:hover{
    transform:translateY(-1px);
    box-shadow:0 12px 24px rgba(15,23,42,.16);
}

.custom-marker {
    background:transparent !important;
    border:none !important;
}

.custom-marker span {
    display:block;
    min-width:42px;
    height:30px;
    padding:0 10px;
    border-radius:999px;
    background:#fff;
    border:2px solid #111827;
    box-shadow:0 6px 18px rgba(0, 0, 0, 0.14);
    color:#111827;
    font-size:13px;
    font-weight:800;
    line-height:26px;
    text-align:center;
}

.custom-marker-active span {
    background:#0d6efd;
    color:#fff;
    border-color:#0d6efd;
    box-shadow:0 10px 24px rgba(13, 110, 253, 0.28);
}

.leaflet-popup-content-wrapper {
    padding:0;
    border-radius:18px;
    overflow:hidden;
    background:rgba(255, 255, 255, 0.98);
    backdrop-filter:blur(14px);
    box-shadow:0 20px 50px rgba(15, 23, 42, 0.18);
}

.leaflet-popup-content {
    margin:0 !important;
    width:280px !important;
}

.leaflet-popup-tip {
    box-shadow:0 8px 20px rgba(15, 23, 42, 0.10);
}

.leaflet-container a.leaflet-popup-close-button {
    top:8px;
    right:8px;
    width:30px;
    height:30px;
    border-radius:999px;
    background:rgba(255,255,255,.95);
    color:#0f172a;
    font-size:18px;
    line-height:30px;
    text-align:center;
    box-shadow:0 6px 16px rgba(0,0,0,.10);
}

.map-popup-card {
    display:block;
    overflow:hidden;
    color:#0f172a;
    text-decoration:none;
}

.map-popup-media {
    height:120px;
    background:linear-gradient(135deg,#dbeafe,#eff6ff);
    overflow:hidden;
}

.map-popup-media img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}

.map-popup-body {
    padding:14px;
}

.map-popup-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
}

.map-popup-badge-wrap {
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    max-width:150px;
}

.map-popup-badge {
    display:inline-flex;
    align-items:center;
    max-width:150px;
    padding:5px 9px;
    border-radius:999px;
    background:#eef2ff;
    color:#334155;
    font-size:11px;
    font-weight:700;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.map-popup-price {
    font-size:15px;
    line-height:1;
    font-weight:900;
    color:#0f172a;
    text-align:right;
    white-space:nowrap;
}

.map-popup-price small {
    display:block;
    margin-bottom:4px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#64748b;
}

.map-popup-title {
    margin:0 0 6px;
    font-size:16px;
    line-height:1.25;
    font-weight:800;
    color:#0f172a;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.map-popup-location {
    margin:0;
    font-size:13px;
    line-height:1.4;
    color:#64748b;
}

.empty-state{
    padding:32px 22px;
    background:#fff;
    border:1px solid #dbe3ec;
    border-radius:22px;
    text-align:center;
}

@media (max-width: 1499.98px){
    .comparison-card{
        grid-template-columns:230px minmax(0,1fr) 285px;
    }

    .hero-theme-default .search-grid{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .hero-theme-event .search-grid,
    .hero-theme-transport .search-grid,
    .hero-theme-service .search-grid,
    .hero-theme-food .search-grid,
    .search-grid-accommodation{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .hero-theme-default .search-action,
    .hero-theme-event .search-action,
    .hero-theme-transport .search-action,
    .hero-theme-service .search-action,
    .hero-theme-food .search-action,
    .search-action-accommodation{
        grid-column:1 / -1;
    }
}

@media (max-width: 1299.98px){
    .listing-grid{
        grid-template-columns:minmax(0, 1.55fr) minmax(360px, .82fr);
    }

    .comparison-card{
        grid-template-columns:210px minmax(0,1fr) 270px;
    }

    .listing-page-fluid.map-hidden .comparison-card{
        grid-template-columns:220px minmax(0,1fr) 280px;
    }

    .hero-theme-default .search-grid,
    .hero-theme-event .search-grid,
    .hero-theme-transport .search-grid,
    .hero-theme-service .search-grid,
    .hero-theme-food .search-grid,
    .search-grid-accommodation{
        grid-template-columns:repeat(3, minmax(0, 1fr));
    }

    .hero-theme-default .search-action,
    .hero-theme-event .search-action,
    .hero-theme-transport .search-action,
    .hero-theme-service .search-action,
    .hero-theme-food .search-action,
    .search-action-accommodation{
        grid-column:1 / -1;
    }

    .hero-theme-default .btn-search,
    .hero-theme-event .btn-search,
    .hero-theme-transport .btn-search,
    .hero-theme-service .btn-search,
    .hero-theme-food .btn-search,
    .search-panel-accommodation .btn-search{
        width:100%;
    }
}

@media (max-width: 1199.98px){
    .comparison-card,
    .listing-page-fluid.map-hidden .comparison-card{
        grid-template-columns:200px minmax(0,1fr) 255px;
    }

    .hero-theme-default .search-grid,
    .hero-theme-event .search-grid,
    .hero-theme-transport .search-grid,
    .hero-theme-service .search-grid,
    .hero-theme-food .search-grid,
    .search-grid-accommodation{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .hero-theme-default .search-action,
    .hero-theme-event .search-action,
    .hero-theme-transport .search-action,
    .hero-theme-service .search-action,
    .hero-theme-food .search-action,
    .search-action-accommodation{
        grid-column:1 / -1;
    }
}

@media (max-width: 991.98px){
    .listing-grid,
    .listing-page-fluid.map-hidden .listing-grid{
        grid-template-columns:1fr;
    }

    .listing-page-fluid.map-hidden .listing-map-col{
        display:block;
    }

    .listing-map-col{
        position:relative;
        align-self:auto;
        min-height:auto;
        height:auto;
    }

    .map-panel-sticky{
        position:relative;
        top:auto;
        align-self:auto;
        height:auto;
    }

    .map-card{
        height:auto;
    }

    #map{
        height:420px;
        min-height:420px;
        max-height:none;
    }

    .comparison-card,
    .listing-page-fluid.map-hidden .comparison-card{
        grid-template-columns:190px minmax(0,1fr);
    }

    .comparison-offer{
        grid-column:1 / -1;
        border-left:none;
        border-top:1px solid #e7edf4;
    }

    .offer-actions{
        grid-template-columns:1fr 1fr;
    }

    .show-map-btn{
        display:none !important;
    }

    .hero-theme-default .search-grid,
    .hero-theme-event .search-grid,
    .hero-theme-transport .search-grid,
    .hero-theme-service .search-grid,
    .hero-theme-food .search-grid,
    .search-grid-accommodation{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .hero-theme-default .search-action,
    .hero-theme-event .search-action,
    .hero-theme-transport .search-action,
    .hero-theme-service .search-action,
    .hero-theme-food .search-action,
    .search-action-accommodation{
        grid-column:1 / -1;
    }

    .hero-card{
        padding:22px 20px 16px;
    }
}

@media (max-width: 767.98px){
    .listing-page-fluid{
        padding:0 12px 26px;
    }

    .results-header{
        flex-direction:column;
        align-items:stretch;
    }

    .comparison-card,
    .listing-page-fluid.map-hidden .comparison-card{
        grid-template-columns:1fr;
    }

    .comparison-media{
        height:220px;
        min-height:220px;
    }

    .comparison-offer{
        grid-column:auto;
    }

    .offer-actions{
        grid-template-columns:1fr;
    }

    .hero-sector-tabs{
        gap:8px;
    }

    .hero-sector-tab{
        min-height:34px;
        padding:0 12px;
        font-size:12px;
    }

    .show-map-btn{
        width:100%;
    }

    .map-hide-btn{
        width:42px;
        height:42px;
        border-radius:14px;
    }

    .hero-card{
        padding:20px 16px 14px;
        border-radius:22px;
    }

    .hero-card .search-panel{
        padding:14px;
        border-radius:18px;
    }

    .search-grid,
    .hero-theme-default .search-grid,
    .hero-theme-event .search-grid,
    .hero-theme-transport .search-grid,
    .hero-theme-service .search-grid,
    .hero-theme-food .search-grid,
    .search-grid-accommodation{
        grid-template-columns:1fr;
        gap:10px;
    }

    .search-action,
    .hero-theme-default .search-action,
    .hero-theme-event .search-action,
    .hero-theme-transport .search-action,
    .hero-theme-service .search-action,
    .hero-theme-food .search-action,
    .search-action-accommodation{
        grid-column:auto;
    }

    .search-field input,
    .search-field select,
    .btn-search{
        min-height:44px;
        height:44px;
        border-radius:13px;
    }

    .search-panel-accommodation .btn-search{
        width:100%;
        min-width:0;
    }

    .search-quick-filters{
        gap:8px;
    }

    .search-quick-pill{
        min-height:30px;
        padding:0 11px;
        font-size:11px;
    }

    .hero-copy h1{
        font-size:2rem;
    }

    .hero-copy p{
        font-size:15px;
    }
}