/* INCOM 2027 Accommodation & Venue — public module */
.incom-accommodation {
    --acc-blue: #0b3f7d;
    --acc-blue-2: #0878be;
    --acc-blue-3: #1f8dcc;
    --acc-blue-soft: #edf6fc;
    --acc-ink: #172b42;
    --acc-copy: #33465b;
    --acc-muted: #68788b;
    --acc-border: #d6e3ee;
    --acc-panel: #ffffff;
    --acc-bg: #f6f9fc;
    --acc-shadow: 0 14px 36px rgba(20, 55, 91, .10);
    box-sizing: border-box;
    width: 100%;
    max-width: 1180px;
    margin: 54px auto 72px;
    padding: 0 18px;
    color: var(--acc-copy);
    font-family: inherit;
}
.incom-accommodation *, .incom-accommodation *::before, .incom-accommodation *::after { box-sizing: border-box; }
.incom-accommodation button, .incom-accommodation input, .incom-accommodation select { font: inherit; }
.incom-accommodation-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    margin-bottom: 26px;
}
.incom-accommodation-kicker {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--acc-blue-2);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .13em;
}
.incom-accommodation-heading h2 {
    max-width: 760px;
    margin: 0 0 10px;
    color: var(--acc-blue);
    font-size: clamp(28px, 3.5vw, 42px);
    line-height: 1.08;
    letter-spacing: -.025em;
}
.incom-accommodation-heading p { max-width: 760px; margin: 0; color: var(--acc-muted); font-size: 16px; line-height: 1.62; }
.incom-accommodation-venue-chip {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 12px;
    min-width: 260px;
    padding: 14px 16px;
    border: 1px solid var(--acc-border);
    border-radius: 16px;
    background: linear-gradient(135deg, #fff 0%, #eff7fc 100%);
    box-shadow: 0 8px 22px rgba(21, 63, 103, .07);
}
.incom-accommodation-venue-chip strong, .incom-accommodation-venue-chip small { display: block; }
.incom-accommodation-venue-chip strong { color: var(--acc-ink); font-size: 13px; }
.incom-accommodation-venue-chip small { margin-top: 2px; color: var(--acc-muted); font-size: 11px; }
.incom-accommodation-venue-icon {
    position: relative;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: linear-gradient(145deg, var(--acc-blue-2), var(--acc-blue));
}
.incom-accommodation-venue-icon::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 8px;
    width: 10px;
    height: 14px;
    border: 3px solid #fff;
    border-radius: 9px 9px 10px 10px;
}
.incom-accommodation-venue-icon::after { content:""; position:absolute; left:17px; top:14px; width:4px; height:4px; border-radius:50%; background:#fff; }

.incom-accommodation-toolbar {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) auto auto;
    gap: 12px;
    align-items: center;
    padding: 15px;
    border: 1px solid var(--acc-border);
    border-radius: 18px 18px 0 0;
    background: var(--acc-panel);
    box-shadow: 0 10px 30px rgba(20, 55, 91, .06);
}
.incom-hotel-search-wrap { position: relative; display: block; }
.incom-hotel-search-wrap input {
    width: 100%;
    height: 46px;
    padding: 0 16px 0 45px;
    border: 1px solid #cbdbe8;
    border-radius: 12px;
    background: #fbfdff;
    color: var(--acc-ink);
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.incom-hotel-search-wrap input:focus { border-color: var(--acc-blue-2); background: #fff; box-shadow: 0 0 0 4px rgba(8,120,190,.10); }
.incom-search-icon { position: absolute; left: 16px; top: 14px; width: 16px; height: 16px; border: 2px solid #66839e; border-radius: 50%; }
.incom-search-icon::after { content:""; position:absolute; width:7px; height:2px; background:#66839e; right:-5px; bottom:-3px; transform:rotate(45deg); border-radius:2px; }
.incom-sort-control { display: flex; align-items: center; gap: 8px; color: var(--acc-muted); font-size: 12px; font-weight: 700; white-space: nowrap; }
.incom-sort-control select { height: 46px; min-width: 210px; padding: 0 34px 0 12px; border: 1px solid #cbdbe8; border-radius: 12px; background: #fff; color: var(--acc-ink); }
.incom-accommodation-view-controls { display: flex; gap: 6px; }
.incom-view-button, .incom-dark-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid #cbdbe8;
    border-radius: 11px;
    background: #fff;
    color: #59748e;
    cursor: pointer;
    transition: .2s ease;
}
.incom-view-button:hover, .incom-dark-button:hover { border-color: var(--acc-blue-2); color: var(--acc-blue-2); transform: translateY(-1px); }
.incom-view-button.is-active { background: var(--acc-blue); border-color: var(--acc-blue); color: #fff; }
.incom-grid-icon { width: 16px; height:16px; background: linear-gradient(currentColor 0 0) 0 0/7px 7px no-repeat, linear-gradient(currentColor 0 0) 9px 0/7px 7px no-repeat, linear-gradient(currentColor 0 0) 0 9px/7px 7px no-repeat, linear-gradient(currentColor 0 0) 9px 9px/7px 7px no-repeat; border-radius:2px; }
.incom-list-icon { width:18px; height:14px; background: linear-gradient(currentColor 0 0) 0 0/18px 2px no-repeat, linear-gradient(currentColor 0 0) 0 6px/18px 2px no-repeat, linear-gradient(currentColor 0 0) 0 12px/18px 2px no-repeat; }

.incom-accommodation-filterbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 18px 28px;
    padding: 14px 16px;
    border-right: 1px solid var(--acc-border);
    border-bottom: 1px solid var(--acc-border);
    border-left: 1px solid var(--acc-border);
    background: #f8fbfd;
}
.incom-filter-group { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.incom-filter-label { margin-right: 3px; color: var(--acc-muted); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.incom-hotel-filter {
    border: 1px solid #cad9e6;
    border-radius: 999px;
    padding: 7px 11px;
    background: #fff;
    color: #506a83;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    transition: .2s ease;
}
.incom-hotel-filter:hover { border-color: var(--acc-blue-2); color: var(--acc-blue-2); }
.incom-hotel-filter.is-active { border-color: var(--acc-blue); background: var(--acc-blue); color:#fff; box-shadow: 0 4px 12px rgba(11,63,125,.14); }
.incom-accommodation-statusline { display:flex; justify-content:space-between; align-items:center; gap:14px; padding: 13px 4px 17px; color: var(--acc-muted); font-size: 12px; }
.incom-accommodation-statusline strong { color: var(--acc-ink); }
.incom-transit-source { display:flex; align-items:center; gap:7px; }
.incom-live-dot { width:7px; height:7px; border-radius:50%; background:#20a264; box-shadow:0 0 0 4px rgba(32,162,100,.10); }

.incom-hotel-results { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.incom-hotel-card {
    overflow:hidden;
    min-width:0;
    border:1px solid var(--acc-border);
    border-radius:20px;
    background:var(--acc-panel);
    box-shadow:var(--acc-shadow);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    animation: incomHotelReveal .35s ease both;
}
.incom-hotel-card:hover { transform:translateY(-4px); border-color:#b8d4e8; box-shadow:0 20px 46px rgba(17,54,91,.16); }
@keyframes incomHotelReveal { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
.incom-hotel-photo { position:relative; height:210px; background-size:cover; background-position:center; overflow:hidden; }
.incom-hotel-photo::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,39,83,.05),rgba(0,39,83,.18)); }
.incom-hotel-photo--fallback { background: radial-gradient(circle at 78% 18%,rgba(99,204,255,.45),transparent 25%), linear-gradient(135deg,#125995 0%,#0b3f7d 54%,#082b58 100%); }
.incom-hotel-fallback-art { position:absolute; inset:0; overflow:hidden; }
.incom-hotel-fallback-art::before { content:""; position:absolute; right:-45px; top:-70px; width:220px; height:220px; border:1px solid rgba(255,255,255,.15); border-radius:50%; box-shadow:0 0 0 35px rgba(255,255,255,.035),0 0 0 70px rgba(255,255,255,.025); }
.incom-hotel-fallback-art span { position:absolute; bottom:0; width:62px; background:rgba(255,255,255,.16); border-radius:6px 6px 0 0; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.incom-hotel-fallback-art span:nth-child(1){left:45px;height:108px}.incom-hotel-fallback-art span:nth-child(2){left:116px;height:144px}.incom-hotel-fallback-art span:nth-child(3){left:187px;height:88px}
.incom-hotel-fallback-art span::before { content:""; position:absolute; inset:14px 12px; background:repeating-linear-gradient(to bottom,rgba(255,255,255,.75) 0 6px,transparent 6px 20px); opacity:.65; }
.incom-hotel-fallback-art b { position:absolute; right:28px; bottom:26px; color:#fff; font-size:18px; line-height:1.05; letter-spacing:.05em; opacity:.9; }
.incom-hotel-photo-overlay { position:absolute; inset:auto 0 0; height:80px; background:linear-gradient(to top,rgba(5,37,72,.46),transparent); }
.incom-hotel-stars { position:absolute; left:16px; top:16px; z-index:2; display:inline-flex; padding:7px 10px; border-radius:999px; background:rgba(255,255,255,.95); color:#f2a800; font-size:13px; letter-spacing:.06em; box-shadow:0 6px 18px rgba(0,0,0,.12); }
.incom-hotel-data-badge { position:absolute; right:16px; top:16px; z-index:2; padding:7px 10px; border-radius:999px; background:rgba(13,83,132,.92); color:#fff; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.incom-hotel-body { padding:20px; }
.incom-hotel-title-row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
.incom-hotel-title-row h3 { margin:0 0 7px; color:var(--acc-ink); font-size:21px; line-height:1.25; letter-spacing:-.015em; }
.incom-hotel-address { display:flex; align-items:flex-start; gap:7px; margin:0; color:var(--acc-muted); font-size:12.5px; line-height:1.5; }
.incom-pin-icon { position:relative; flex:0 0 13px; width:13px; height:13px; margin-top:2px; border:2px solid var(--acc-blue-2); border-radius:50% 50% 50% 0; transform:rotate(-45deg); }
.incom-pin-icon::after { content:""; position:absolute; width:3px; height:3px; left:3px; top:3px; border-radius:50%; background:var(--acc-blue-2); }
.incom-distance-pill { flex:0 0 auto; padding:6px 8px; border-radius:8px; background:var(--acc-blue-soft); color:var(--acc-blue); font-size:11px; font-weight:800; }
.incom-hotel-route-card { display:grid; grid-template-columns:42px 1fr auto; align-items:center; gap:12px; margin-top:18px; padding:14px; border:1px solid #d7e5ef; border-radius:15px; background:linear-gradient(135deg,#f9fcff,#edf6fc); }
.incom-route-mode-icon { display:flex; align-items:center; justify-content:center; width:42px; height:42px; border-radius:13px; color:#fff; font-weight:900; box-shadow:0 6px 14px rgba(10,76,127,.18); }
.incom-route-mode-icon--tram { background:linear-gradient(145deg,#0d8cbb,#096f9b); }
.incom-route-mode-icon--bus { background:linear-gradient(145deg,#164d90,#0b3f7d); }
.incom-route-topline { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.incom-route-topline strong { color:var(--acc-ink); font-size:14px; }
.incom-direct-badge { padding:3px 7px; border-radius:999px; background:#dff4e9; color:#147347; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.incom-route-main p { margin:3px 0 4px; color:#526a80; font-size:11.5px; }
.incom-route-detail { display:flex; flex-wrap:wrap; align-items:center; gap:5px; color:#789; font-size:10px; }
.incom-route-detail i { width:3px; height:3px; border-radius:50%; background:#9bb0c2; }
.incom-route-time { min-width:52px; text-align:right; color:var(--acc-blue); }
.incom-route-time strong { display:inline; font-size:26px; line-height:1; }
.incom-route-time span { margin-left:2px; font-size:11px; font-weight:800; }
.incom-route-time small { display:block; margin-top:2px; color:#7d8d9d; font-size:8px; text-transform:uppercase; letter-spacing:.06em; }
.incom-hotel-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:17px; }
.incom-hotel-button { display:inline-flex; align-items:center; justify-content:center; min-height:39px; padding:9px 13px; border:1px solid #c6d8e7; border-radius:10px; background:#fff; color:var(--acc-blue); font-size:11px; font-weight:800; text-decoration:none!important; cursor:pointer; transition:.2s ease; }
.incom-hotel-button:hover { border-color:var(--acc-blue); background:#f0f7fc; color:var(--acc-blue); transform:translateY(-1px); }
.incom-hotel-button--primary { border-color:var(--acc-blue); background:var(--acc-blue); color:#fff!important; box-shadow:0 7px 15px rgba(11,63,125,.16); }
.incom-hotel-button--primary:hover { background:#082f60; color:#fff!important; }
.incom-hotel-map { overflow:hidden; margin-top:14px; border:1px solid var(--acc-border); border-radius:13px; background:#f5f8fa; }
.incom-hotel-map iframe { display:block; width:100%; height:220px; border:0; background:#e9eff4; }
.incom-hotel-map p { margin:0; padding:6px 9px; color:#8492a0; font-size:9px; text-align:right; }

.incom-hotel-results--list { grid-template-columns:1fr; }
.incom-hotel-results--list .incom-hotel-card { display:grid; grid-template-columns:260px 1fr; }
.incom-hotel-results--list .incom-hotel-photo { height:100%; min-height:250px; }
.incom-hotel-results--list .incom-hotel-body { padding:22px 24px; }
.incom-hotel-results--list .incom-hotel-route-card { max-width:680px; }

.incom-hotel-empty { padding:48px 24px; border:1px dashed #c9dbe9; border-radius:18px; background:#f9fcff; text-align:center; color:var(--acc-muted); }
.incom-hotel-empty strong { display:block; color:var(--acc-ink); font-size:17px; }
.incom-hotel-empty p { margin:5px 0 0; }
.incom-empty-icon { display:inline-flex; align-items:center; justify-content:center; width:48px; height:48px; margin-bottom:10px; border-radius:50%; background:var(--acc-blue-soft); color:var(--acc-blue-2); font-size:28px; }
.incom-accommodation-disclaimer { max-width:900px; margin:22px auto 0; color:#7a8998; font-size:10.5px; line-height:1.55; text-align:center; }

/* Dark mode is local to the hotel finder and does not alter the WordPress theme. */
.incom-accommodation.is-dark {
    --acc-panel:#142235; --acc-bg:#0f1b2a; --acc-ink:#f7fbff; --acc-copy:#d7e1eb; --acc-muted:#9eafbf; --acc-border:#2b4055; --acc-blue-soft:#1c3449; --acc-shadow:0 16px 42px rgba(0,0,0,.28);
    padding-top:18px; padding-bottom:24px; border-radius:24px; background:#0f1b2a;
}
.incom-accommodation.is-dark .incom-accommodation-toolbar,
.incom-accommodation.is-dark .incom-accommodation-filterbar,
.incom-accommodation.is-dark .incom-hotel-search-wrap input,
.incom-accommodation.is-dark .incom-sort-control select,
.incom-accommodation.is-dark .incom-view-button,
.incom-accommodation.is-dark .incom-dark-button,
.incom-accommodation.is-dark .incom-hotel-filter,
.incom-accommodation.is-dark .incom-hotel-button { background:#142235; color:#dce8f2; border-color:#2b4055; }
.incom-accommodation.is-dark .incom-hotel-filter.is-active,.incom-accommodation.is-dark .incom-view-button.is-active,.incom-accommodation.is-dark .incom-hotel-button--primary { background:#116da9; border-color:#116da9; color:#fff; }
.incom-accommodation.is-dark .incom-hotel-route-card { background:linear-gradient(135deg,#172a3e,#132536); border-color:#2b4055; }
.incom-accommodation.is-dark .incom-accommodation-venue-chip { background:#142235; border-color:#2b4055; }
.incom-accommodation.is-dark .incom-hotel-empty { background:#142235; border-color:#2b4055; }

@media (max-width: 900px) {
    .incom-accommodation-heading { align-items:flex-start; flex-direction:column; }
    .incom-accommodation-venue-chip { min-width:0; }
    .incom-accommodation-toolbar { grid-template-columns:1fr auto; }
    .incom-sort-control { grid-column:1 / 2; }
    .incom-accommodation-view-controls { grid-column:2; grid-row:1 / 3; align-self:center; }
    .incom-hotel-results { grid-template-columns:1fr; }
}
@media (max-width: 640px) {
    .incom-accommodation { margin-top:36px; padding:0 10px; }
    .incom-accommodation-toolbar { display:flex; flex-direction:column; align-items:stretch; border-radius:16px 16px 0 0; }
    .incom-sort-control { justify-content:space-between; }
    .incom-sort-control select { min-width:0; flex:1; }
    .incom-accommodation-view-controls { justify-content:flex-end; }
    .incom-accommodation-filterbar { align-items:flex-start; flex-direction:column; gap:12px; }
    .incom-filter-group { width:100%; }
    .incom-filter-label { flex-basis:100%; }
    .incom-accommodation-statusline { align-items:flex-start; flex-direction:column; }
    .incom-hotel-photo { height:190px; }
    .incom-hotel-title-row { flex-direction:column; }
    .incom-hotel-route-card { grid-template-columns:38px 1fr; }
    .incom-route-mode-icon { width:38px; height:38px; }
    .incom-route-time { grid-column:2; text-align:left; }
    .incom-route-time small { display:inline; margin-left:5px; }
    .incom-hotel-actions { display:grid; grid-template-columns:1fr 1fr; }
    .incom-hotel-button--primary { grid-column:1/-1; }
    .incom-hotel-results--list .incom-hotel-card { display:block; }
    .incom-hotel-results--list .incom-hotel-photo { min-height:190px; height:190px; }
}
@media (prefers-reduced-motion: reduce) {
    .incom-hotel-card, .incom-hotel-button, .incom-hotel-filter, .incom-view-button, .incom-dark-button { animation:none!important; transition:none!important; }
}

/* ==========================================================
   v0.17 — journey mode, one-change transit and driving
   ========================================================== */
.incom-accommodation-journey-switch {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 14px;
    padding:10px;
    width:max-content;
    max-width:100%;
    border:1px solid var(--acc-border);
    border-radius:15px;
    background:#f8fbfd;
    box-shadow:0 7px 20px rgba(20,55,91,.05);
}
.incom-journey-switch-label {
    padding:0 5px;
    color:var(--acc-muted);
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
}
.incom-journey-button {
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-height:38px;
    padding:7px 13px;
    border:1px solid #cad9e6;
    border-radius:10px;
    background:#fff;
    color:#506a83;
    font-size:12px;
    font-weight:800;
    cursor:pointer;
    transition:.2s ease;
}
.incom-journey-button:hover { border-color:var(--acc-blue-2); color:var(--acc-blue-2); }
.incom-journey-button.is-active { border-color:var(--acc-blue); background:var(--acc-blue); color:#fff; box-shadow:0 5px 13px rgba(11,63,125,.16); }
.incom-journey-icon {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border-radius:7px;
    background:#dff1fb;
    color:#0878be;
    font-size:10px;
    font-weight:900;
}
.incom-journey-button.is-active .incom-journey-icon { background:rgba(255,255,255,.18); color:#fff; }
.incom-journey-icon--car { background:#e7edf5; color:#315478; }
.incom-status-hint { text-align:right; }

.incom-route-mode-icon--mixed { background:linear-gradient(145deg,#516f9e,#164d90); }
.incom-route-mode-icon--car { background:linear-gradient(145deg,#384d67,#1e3046); }
.incom-direct-badge--change { background:#fff0d8; color:#9a5b00; }
.incom-drive-badge { padding:3px 7px; border-radius:999px; background:#e6edf5; color:#395570; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }
.incom-hotel-route-card--car { background:linear-gradient(135deg,#fbfcfe,#eef2f7); border-color:#d9e1ea; }
.incom-hotel-route-card--pending { opacity:.72; }
.incom-hotel-route-card[hidden], .incom-hotel-itinerary[hidden] { display:none!important; }

.incom-accommodation.is-car-journey .incom-filter-group--transit {
    opacity:.42;
    pointer-events:none;
    filter:saturate(.5);
}
.incom-accommodation.is-car-journey .incom-sort-control option[value="changes-asc"] { display:none; }

.incom-accommodation.is-dark .incom-accommodation-journey-switch,
.incom-accommodation.is-dark .incom-journey-button { background:#142235; color:#dce8f2; border-color:#2b4055; }
.incom-accommodation.is-dark .incom-journey-button.is-active { background:#116da9; border-color:#116da9; color:#fff; }
.incom-accommodation.is-dark .incom-hotel-route-card--car { background:linear-gradient(135deg,#182739,#142235); border-color:#2b4055; }

@media (max-width: 640px) {
    .incom-accommodation-journey-switch { width:100%; }
    .incom-journey-switch-label { flex-basis:100%; }
    .incom-journey-button { flex:1 1 0; justify-content:center; }
    .incom-status-hint { text-align:left; }
}


/* ==========================================================
   v0.17.1 — INCOM 2027 partner-hotel agreements
   ========================================================== */
.incom-filter-group--partner { flex-basis:100%; padding-bottom:2px; }
.incom-hotel-filter--partner { border-color:#9ec9e5; background:linear-gradient(135deg,#f4faff,#eaf6fd); color:var(--acc-blue); }
.incom-hotel-filter--partner::before { content:"★"; margin-right:5px; color:#f4a51c; }
.incom-hotel-card--partner { border-color:#8ebfdf; box-shadow:0 17px 42px rgba(11,63,125,.15); }
.incom-hotel-card--partner:hover { box-shadow:0 23px 50px rgba(11,63,125,.20); }
.incom-hotel-partner-badge { position:absolute; z-index:3; top:15px; left:15px; display:inline-flex; align-items:center; gap:6px; max-width:calc(100% - 115px); padding:7px 10px; border:1px solid rgba(255,255,255,.65); border-radius:999px; background:linear-gradient(135deg,#0b3f7d,#0878be); color:#fff; box-shadow:0 6px 16px rgba(4,39,82,.28); font-size:9px; font-weight:900; letter-spacing:.055em; line-height:1; text-transform:uppercase; }
.incom-hotel-partner-badge span { color:#ffd166; font-size:11px; }
.incom-hotel-partner-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; align-items:center; margin:15px 0; padding:14px 15px; border:1px solid #a8cfe8; border-left:4px solid var(--acc-blue-2); border-radius:13px; background:linear-gradient(135deg,#f4faff 0%,#eaf6fd 100%); box-shadow:0 8px 18px rgba(8,120,190,.07); }
.incom-hotel-partner-kicker { display:block; margin-bottom:4px; color:var(--acc-blue-2); font-size:8.5px; font-weight:900; letter-spacing:.09em; text-transform:uppercase; }
.incom-hotel-partner-copy strong { display:block; color:var(--acc-blue); font-size:12.5px; line-height:1.35; }
.incom-hotel-partner-copy p { margin:4px 0 0; color:#425d75; font-size:10.5px; line-height:1.45; }
.incom-hotel-booking-code { display:grid; grid-template-columns:auto auto; gap:2px 8px; align-items:center; min-width:130px; padding:9px 10px; border:1px solid #b8d7ea; border-radius:10px; background:#fff; text-align:left; }
.incom-hotel-booking-code span { grid-column:1/-1; color:#718699; font-size:8px; font-weight:800; letter-spacing:.065em; text-transform:uppercase; }
.incom-hotel-booking-code strong { color:var(--acc-blue); font-size:14px; letter-spacing:.025em; }
.incom-copy-booking-code { min-height:28px; padding:4px 8px; border:1px solid #bfd4e3; border-radius:7px; background:#f7fbfe; color:var(--acc-blue); font-size:9px; font-weight:900; cursor:pointer; transition:.18s ease; }
.incom-copy-booking-code:hover,.incom-copy-booking-code.is-copied { border-color:var(--acc-blue-2); background:var(--acc-blue); color:#fff; }
.incom-accommodation.is-dark .incom-hotel-card--partner { border-color:#2f7eb0; }
.incom-accommodation.is-dark .incom-hotel-partner-panel { border-color:#2f6689; border-left-color:#35a3e7; background:linear-gradient(135deg,#183249,#14283b); }
.incom-accommodation.is-dark .incom-hotel-partner-copy strong,.incom-accommodation.is-dark .incom-hotel-booking-code strong { color:#e7f6ff; }
.incom-accommodation.is-dark .incom-hotel-partner-copy p { color:#bed0df; }
.incom-accommodation.is-dark .incom-hotel-booking-code { border-color:#31536c; background:#102131; }
.incom-accommodation.is-dark .incom-hotel-booking-code span { color:#9db2c4; }
.incom-accommodation.is-dark .incom-copy-booking-code { border-color:#31536c; background:#14283b; color:#cbe9fb; }
@media (max-width:640px) {
    .incom-hotel-partner-panel { grid-template-columns:1fr; }
    .incom-hotel-booking-code { width:100%; }
    .incom-hotel-partner-badge { max-width:calc(100% - 88px); white-space:normal; line-height:1.2; }
}


/* v0.17.2 — curated multi-leg transit journeys */
.incom-route-legs { display:grid; gap:5px; margin:8px 0 7px; }
.incom-route-leg { display:grid; grid-template-columns:25px minmax(0,1fr); gap:8px; align-items:center; }
.incom-route-leg-icon { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:7px; color:#fff; background:#176fae; font-size:9px; font-weight:900; }
.incom-route-leg-icon--bus { background:#296d98; }
.incom-route-leg-copy strong,.incom-route-leg-copy small { display:block; }
.incom-route-leg-copy strong { color:#193f63; font-size:10.5px; line-height:1.25; }
.incom-route-leg-copy small { margin-top:1px; color:#63798d; font-size:9.5px; line-height:1.3; }
.incom-route-change { margin-left:11px; padding-left:21px; color:#9a650a; font-size:8.5px; font-weight:800; line-height:1.3; position:relative; }
.incom-route-change::before { content:""; position:absolute; left:0; top:-6px; bottom:-6px; width:1px; background:#d5e0e9; }
.incom-route-change span { margin-right:4px; }
.incom-accommodation.is-dark .incom-route-leg-copy strong { color:#e5f4ff; }
.incom-accommodation.is-dark .incom-route-leg-copy small { color:#b7cad8; }
.incom-accommodation.is-dark .incom-route-change { color:#efc270; }
