/**
 * GoCore accommodation — ficha pública (estilo Booking).
 * Módulo: gocore-accommodation/public (alinhado com /assets/css/site-viewport-base.css e chrome global).
 */
    /**
     * Página única: tokens + layout da ficha. Compatível com header fixo + menu fixo do site
     * (--chrome-header-spacer + --public-nav-bar-height, ver platform-global-chrome.css).
     */
    :root {
      --bk-blue: #006ce4;
      --bk-blue-hover: #00487c;
      --bk-blue-soft: #e9f2fc;
      --bk-green: #008234;
      --bk-bg: #fff;
      --bk-page-bg: #f7f7f7;
      --bk-card: #fff;
      --bk-border: #e7e7e7;
      --bk-text: #262626;
      --bk-muted: #6b6b6b;
      --bk-danger: #c62828;
      --bk-danger-bg: #ffebee;
      --bk-max: min(1140px, calc(100vw - 2 * clamp(0.75rem, 2.5vw, 2rem)));
      --bk-pad: clamp(0.75rem, 2.5vw, 2rem);
      --bk-subnav-h: 44px;
      /* Topo útil por baixo do chrome global (cabeçalho + barra Alojamentos/…) */
      --bk-chrome-stack: calc(var(--chrome-header-spacer, var(--chrome-header-height, 80px)) + var(--public-nav-bar-height, 52px));
      --bk-anchor-pad: calc(var(--header-offset, var(--chrome-header-spacer, 80px)) + var(--public-nav-bar-height, 52px) + var(--bk-subnav-h) + 12px);
    }
    html.bk-detail-ficha {
      scroll-padding-top: var(--bk-anchor-pad);
    }
    body.bk-page {
      margin: 0;
      background: var(--bk-page-bg);
      color: var(--bk-text);
      font-family: BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
      font-size: clamp(13px, 0.85rem + 0.35vw, 15px);
      line-height: 1.5;
      overflow-x: clip;
    }
    /* Evita o main { max-width: 1920px } global partir a grelha da ficha */
    body.bk-page main.bk-main {
      max-width: none;
      margin: 0;
      width: auto;
    }
    .bk-layout,
    .bk-main { min-width: 0; }
    .bk-wrap {
      max-width: var(--bk-max);
      margin: 0 auto;
      padding: 0 max(var(--bk-pad), env(safe-area-inset-left, 0px)) max(2.5rem, env(safe-area-inset-bottom, 0px)) max(var(--bk-pad), env(safe-area-inset-right, 0px));
      box-sizing: border-box;
      width: 100%;
    }
    .bk-back-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 1rem; }
    .bk-back { display: inline-block; margin: 0.75rem 0; color: var(--bk-blue); font-weight: 600; text-decoration: none; font-size: 0.9rem; min-height: 44px; line-height: 44px; padding: 0 0.15rem; box-sizing: border-box; }
    .bk-back:hover { text-decoration: underline; }
    .bk-breadcrumb { font-size: 0.8125rem; color: var(--bk-muted); margin: 0 0 0.5rem; line-height: 1.4; word-break: break-word; hyphens: auto; }
    .bk-breadcrumb a { color: var(--bk-blue); text-decoration: none; }
    .bk-breadcrumb a:hover { text-decoration: underline; }
    .bk-subnav {
      display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; align-items: center;
      min-height: var(--bk-subnav-h); margin: 0 calc(-1 * var(--bk-pad)) 1rem; padding: 0.35rem var(--bk-pad);
      border-bottom: 1px solid var(--bk-border); background: var(--bk-card);
      position: sticky;
      top: var(--bk-chrome-stack);
      z-index: 90;
      box-shadow: 0 1px 0 rgba(0,0,0,0.04);
    }
    body.header-hidden .bk-subnav,
    body.platform-header-collapsed .bk-subnav {
      top: calc(var(--public-nav-bar-height, 52px) + max(0px, env(safe-area-inset-top, 0px)));
    }
    .bk-subnav a {
      color: var(--bk-text); text-decoration: none; font-size: 0.875rem; font-weight: 500;
      padding: 0.45rem 0.15rem; border-bottom: 2px solid transparent; margin-bottom: -1px;
      min-height: 44px; display: inline-flex; align-items: center; box-sizing: border-box;
    }
    .bk-subnav a:hover { color: var(--bk-blue); }
    .bk-layout { display: grid; grid-template-columns: 1fr min(340px, 36%); gap: 1.75rem; align-items: start; }
    .bk-title-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 0.35rem; }
    .bk-title-stack { flex: 1; min-width: min(100%, 280px); }
    h1.bk-title { font-size: clamp(1.05rem, 2.8vw + 0.5rem, 1.85rem); font-weight: 700; margin: 0 0 0.35rem; line-height: 1.2; color: #1a1a1a; word-break: break-word; overflow-wrap: anywhere; }
    .bk-subtitle { color: var(--bk-muted); font-size: 0.9375rem; margin: 0 0 0.65rem; }
    .bk-addr-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.75rem; margin-bottom: 0.85rem; font-size: 0.9375rem; }
    .bk-addr-row .bk-pin { flex-shrink: 0; color: var(--bk-blue); }
    .bk-addr-row .bk-addr-txt { color: var(--bk-text); flex: 1 1 12rem; min-width: 0; word-break: break-word; overflow-wrap: anywhere; }
    .bk-map-jump { color: var(--bk-blue); font-weight: 600; text-decoration: none; white-space: normal; flex-shrink: 0; min-height: 44px; display: inline-flex; align-items: center; }
    .bk-map-jump:hover { text-decoration: underline; }
    .bk-title-actions { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 0.35rem; }
    @media (max-width: 960px) { .bk-title-actions { display: none; } }
    .bk-btn-cta {
      display: inline-block; padding: 0.65rem 1.25rem; background: var(--bk-blue); color: #fff !important;
      border: 0; border-radius: 2px; font-weight: 600; font-size: 0.9375rem; cursor: pointer; text-decoration: none; text-align: center;
      box-shadow: 0 1px 4px rgba(0, 108, 228, 0.35);
    }
    .bk-btn-cta:hover { background: var(--bk-blue-hover); color: #fff !important; }
    .bk-btn-cta--section {
      padding: 0.5rem 1rem;
      font-size: 0.8125rem;
      width: auto;
      max-width: 100%;
      box-sizing: border-box;
    }
    .bk-price-match { font-size: 0.8125rem; color: var(--bk-blue); font-weight: 600; text-decoration: none; }
    .bk-price-match:hover { text-decoration: underline; }
    .bk-gallery-wrap {
      margin-bottom: 1.25rem;
      scroll-margin-top: var(--bk-anchor-pad);
      border-radius: 4px;
      overflow: hidden;
    }
    /* minmax evita linhas 1fr a colapsarem; proporção semelhante ao Booking */
    .bk-gallery {
      display: grid;
      grid-template-columns: 2fr 1fr 1fr;
      grid-template-rows: minmax(140px, 1fr) minmax(140px, 1fr);
      gap: 4px;
      min-height: min(440px, 52vw);
      max-height: 440px;
      background: #ddd;
    }
    @media (max-width: 700px) {
      .bk-gallery {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(2, minmax(120px, 200px));
        max-height: none;
        min-height: 0;
      }
      .bk-gallery .bk-g-item:first-child {
        grid-column: 1 / -1;
        grid-row: auto;
        min-height: 220px;
        max-height: 320px;
      }
    }
    .bk-g-item { position: relative; background: #e8e8e8; min-height: 100px; min-width: 0; cursor: pointer; }
    .bk-g-item:first-child { grid-row: 1 / -1; min-height: 200px; }
    @media (max-width: 700px) {
      .bk-g-item:first-child { grid-row: auto; }
    }
    /* contain = proporção nativa da foto; faixas com cor de .bk-g-item (sem crop tipo capa) */
    .bk-g-item img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center;
      display: block;
    }
    .bk-g-item:hover img { filter: brightness(0.97); }
    .bk-g-more { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,0.45); color: #fff; font-weight: 700; font-size: 1rem; }
    .bk-g-placeholder { display: flex; align-items: center; justify-content: center; height: 100%; min-height: 120px; color: var(--bk-muted); font-size: 0.85rem; padding: 0.5rem; text-align: center; }
    .bk-badge-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 1rem; }
    .bk-pill { font-size: 0.75rem; padding: 0.2rem 0.5rem; border-radius: 2px; border: 1px solid var(--bk-border); background: #fff; color: var(--bk-text); }
    .bk-score-wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.25rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--bk-border); }
    .bk-score-left { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; }
    .bk-score-num { background: var(--bk-blue); color: #fff; font-weight: 700; padding: 0.4rem 0.6rem; border-radius: 6px 6px 6px 0; font-size: 1rem; min-width: 2.5rem; text-align: center; }
    .bk-score-meta strong { display: block; font-size: 1rem; }
    .bk-score-meta .bk-rev-link { color: var(--bk-blue); font-weight: 600; font-size: 0.875rem; text-decoration: none; margin-top: 0.25rem; display: inline-block; }
    .bk-score-meta .bk-rev-link:hover { text-decoration: underline; }
    .bk-cat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.65rem 1.25rem; flex: 1; min-width: 0; width: 100%; max-width: 520px; }
    .bk-cat { font-size: 0.8125rem; }
    .bk-cat-top { display: flex; justify-content: space-between; margin-bottom: 0.2rem; }
    .bk-cat-top span:last-child { font-weight: 600; color: var(--bk-blue); }
    .bk-cat-bar { height: 6px; border-radius: 3px; background: var(--bk-border); overflow: hidden; }
    .bk-cat-bar > i { display: block; height: 100%; background: var(--bk-blue); border-radius: 3px; font-style: normal; }
    .bk-quick-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 130px), 1fr)); gap: 0.5rem; margin-bottom: 1.25rem; }
    .bk-cal-grid-wrap {
      font-size: 0.72rem;
      background: #fafafa;
      border: 1px solid var(--bk-border);
      border-radius: 8px;
      padding: 0.65rem;
      overflow-x: hidden;
      overflow-y: visible;
      min-width: 0;
      max-width: 100%;
      box-sizing: border-box;
    }
    .bk-cal-months {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(min(100%, 152px), 1fr));
      gap: 0.55rem;
    }
    @media (max-width: 520px) {
      .bk-cal-months { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    .bk-cal-month { background: var(--bk-card); border: 1px solid var(--bk-border); border-radius: 8px; padding: 0.35rem 0.4rem 0.45rem; }
    .bk-cal-month h4 { margin: 0 0 0.3rem; font-size: 0.68rem; font-weight: 700; color: var(--bk-muted); text-align: center; text-transform: capitalize; }
    .bk-cal-dow { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; margin-bottom: 2px; font-size: 0.55rem; color: var(--bk-muted); text-align: center; font-weight: 600; }
    .bk-cal-cells { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
    .bk-cal-cell {
      aspect-ratio: 1;
      min-height: 20px;
      max-height: 24px;
      border-radius: 3px;
      background: #dcfce7;
      color: #14532d;
      font-size: clamp(0.5rem, 0.45rem + 0.35vw, 0.62rem);
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: 600;
      line-height: 1;
    }
    .bk-cal-cell--out { background: transparent; color: transparent; }
    .bk-cal-cell--blocked { background: #9ca3af; color: #f9fafb; font-weight: 700; }
    .bk-cal-cell--over { background: #dc2626; color: #fef2f2; font-weight: 800; box-shadow: inset 0 0 0 1px #991b1b; }
    .bk-cal-leg { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.15rem 0.4rem; border-radius: 4px; font-weight: 600; font-size: 0.72rem; }
    .bk-cal-leg--avail { background: #dcfce7; color: #14532d; }
    .bk-cal-leg--blocked { background: #9ca3af; color: #f9fafb; }
    .bk-cal-leg--over { background: #dc2626; color: #fef2f2; }
    .bk-cal-legend-row {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.75rem;
      margin: 0.5rem 0 0.75rem;
      font-size: 0.78rem;
    }
    .bk-staff-cal-tools {
      display: none;
      margin: 0 0 0.75rem;
      padding: 0.6rem 0.75rem;
      background: linear-gradient(135deg, #eff6ff 0%, #f5f3ff 100%);
      border: 1px solid #c4b5fd;
      border-radius: 8px;
      font-size: 0.8125rem;
      line-height: 1.45;
      color: #1e1b4b;
    }
    .bk-staff-cal-tools.is-visible { display: block; }
    .bk-staff-cal-tools__source {
      font-weight: 700;
      margin: 0 0 0.45rem;
      color: #3730a3;
    }
    .bk-staff-cal-tools__links {
      display: flex;
      flex-wrap: wrap;
      gap: 0.4rem 0.65rem;
      align-items: center;
    }
    .bk-staff-cal-tools__links a {
      display: inline-flex;
      align-items: center;
      padding: 0.35rem 0.65rem;
      border-radius: 6px;
      background: #fff;
      border: 1px solid #a5b4fc;
      color: var(--bk-blue);
      font-weight: 600;
      font-size: 0.78rem;
      text-decoration: none;
      box-sizing: border-box;
    }
    .bk-staff-cal-tools__links a:hover {
      background: #eef2ff;
      text-decoration: none;
    }
    .bk-staff-cal-tools__hint {
      margin: 0.5rem 0 0;
      font-size: 0.72rem;
      color: #5b21b6;
      opacity: 0.92;
    }
    .bk-req-inp { width: 100%; padding: 0.45rem 0.5rem; border: 1px solid var(--bk-border); border-radius: 4px; font-size: 0.875rem; box-sizing: border-box; font-family: inherit; }
    .bk-req-lbl { font-size: 0.8125rem; font-weight: 600; color: var(--bk-text); }
    .bk-qf { border: 1px solid var(--bk-border); border-radius: 2px; padding: 0.65rem 0.75rem; font-size: 0.8125rem; display: flex; align-items: flex-start; gap: 0.5rem; background: #fff; }
    .bk-qf svg { flex-shrink: 0; color: #494949; margin-top: 1px; }
    .bk-section,
    #bk-sec-resumo {
      scroll-margin-top: var(--bk-anchor-pad);
    }
    .bk-section { background: var(--bk-card); border: 1px solid var(--bk-border); border-radius: 4px; padding: clamp(0.9rem, 3vw, 1.35rem); margin-bottom: 1rem; }
    .bk-section h2 { margin: 0 0 1rem; font-size: 1.125rem; font-weight: 700; color: #1a1a1a; }
    .bk-section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 0.75rem; margin-bottom: 1rem; }
    .bk-section-head h2 { margin: 0; }
    .bk-amenity-grid { display: flex; flex-wrap: wrap; gap: 0.65rem 1.5rem; }
    .bk-amenity-item { display: flex; align-items: flex-start; gap: 0.5rem; font-size: 0.9375rem; max-width: min(100%, 320px); min-width: 0; }
    .bk-amenity-item .bk-am-ico { flex-shrink: 0; width: 22px; height: 22px; color: var(--bk-green); }
    .bk-amenity-item .bk-am-ico svg { width: 22px; height: 22px; display: block; }
    .bk-rules-list { border-top: 1px solid var(--bk-border); }
    .bk-rule-row { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--bk-border); align-items: start; }
    .bk-rule-row:last-child { border-bottom: 0; }
    .bk-rule-ico { width: 22px; height: 22px; color: #494949; flex-shrink: 0; margin-top: 2px; }
    .bk-rule-ico svg { width: 22px; height: 22px; display: block; }
    .bk-rule-body strong { display: block; font-size: 0.9375rem; margin-bottom: 0.2rem; color: #1a1a1a; }
    .bk-rule-body .bk-rule-val { font-size: 0.875rem; color: #333; word-break: break-word; overflow-wrap: anywhere; }
    .bk-fac-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 11rem), 1fr)); gap: 0.5rem 1rem; }
    .bk-fac-item { font-size: 0.875rem; }
    .bk-desc { font-size: 0.9375rem; color: #333; }
    .bk-desc p { margin: 0 0 0.75rem; }
    #bk-map { height: clamp(180px, 42vw, 280px); min-height: 180px; border-radius: 4px; margin-top: 0.5rem; border: 1px solid var(--bk-border); z-index: 0; position: relative; }
    #bk-map .leaflet-container { z-index: 0; font: inherit; }
    .bk-table-wrap { overflow-x: auto; border: 1px solid var(--bk-border); border-radius: 4px; -webkit-overflow-scrolling: touch; max-width: 100%; }
    table.bk-table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }
    .bk-table th, .bk-table td { border: 1px solid var(--bk-border); padding: 0.55rem 0.7rem; text-align: left; vertical-align: top; word-break: break-word; }
    .bk-table thead th { background: var(--bk-blue); color: #fff; font-weight: 600; border-color: #005bb5; }
    .bk-table tbody tr:nth-child(even) { background: #fafafa; }
    .bk-aside {
      position: sticky;
      top: calc(var(--bk-chrome-stack) + 10px);
      align-self: start;
      background: linear-gradient(180deg, var(--bk-blue-soft) 0%, #fff 48%); border: 1px solid #c5ddf5; border-radius: 4px; padding: 1.15rem 1.25rem; box-shadow: 0 2px 16px rgba(0, 59, 149, 0.08);
    }
    body.header-hidden .bk-aside,
    body.platform-header-collapsed .bk-aside {
      top: calc(var(--public-nav-bar-height, 52px) + max(0px, env(safe-area-inset-top, 0px)) + 10px);
    }
    @media (max-width: 960px) { .bk-aside { position: static; order: -1; } }
    .bk-aside .bk-aside-kicker { font-size: 0.8125rem; font-weight: 700; color: var(--bk-blue); margin: 0 0 0.35rem; }
    .bk-aside h3 { margin: 0 0 0.85rem; font-size: 1.05rem; font-weight: 700; color: #1a1a1a; }
    .bk-field { margin-bottom: 0.65rem; font-size: 0.8125rem; }
    .bk-field .lbl { color: var(--bk-muted); display: block; font-size: 0.72rem; margin-bottom: 0.12rem; text-transform: uppercase; letter-spacing: 0.02em; }
    /* Selecção de datas — alvo táctil, grelha estável */
    .bk-date-card {
      margin: 0 0 1rem;
      padding: 0.75rem 0.85rem;
      background: #fff;
      border: 1px solid #b8d4f0;
      border-radius: 8px;
      box-shadow: 0 1px 0 rgba(0, 59, 149, 0.06);
    }
    .bk-date-card__title {
      margin: 0 0 0.65rem;
      font-size: 0.72rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      color: var(--bk-muted);
    }
    .bk-date-card__grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.65rem 0.75rem;
    }
    @media (max-width: 360px) {
      .bk-date-card__grid { grid-template-columns: 1fr; }
    }
    .bk-date-field { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
    .bk-date-field__lbl { font-size: 0.75rem; font-weight: 600; color: var(--bk-text); }
    .bk-date-input {
      width: 100%;
      min-height: 44px;
      padding: 0.45rem 0.55rem;
      border: 1px solid var(--bk-border);
      border-radius: 6px;
      font-size: 0.9375rem;
      font-family: inherit;
      box-sizing: border-box;
      background: #fff;
      color: var(--bk-text);
    }
    .bk-date-input:focus {
      outline: 2px solid var(--bk-blue);
      outline-offset: 1px;
      border-color: var(--bk-blue);
    }
    .bk-btn-date-apply {
      margin-top: 0.65rem;
      width: 100%;
      min-height: 44px;
      padding: 0.55rem 0.85rem;
      border-radius: 6px;
      border: 1px solid var(--bk-blue);
      background: #fff;
      color: var(--bk-blue);
      font-weight: 600;
      font-size: 0.875rem;
      cursor: pointer;
      font-family: inherit;
    }
    .bk-btn-date-apply:hover { background: var(--bk-blue-soft); }
    .bk-btn { display: block; width: 100%; padding: 0.7rem; background: var(--bk-blue); color: #fff; border: 0; border-radius: 2px; font-weight: 600; cursor: pointer; font-size: 0.9375rem; margin-top: 0.85rem; text-align: center; text-decoration: none; }
    .bk-btn:hover { background: var(--bk-blue-hover); color: #fff; }
    .bk-btn-ghost { background: #fff; color: var(--bk-blue); border: 1px solid var(--bk-blue); margin-top: 0.5rem; }
    .bk-btn-ghost:hover { background: var(--bk-blue-soft); color: var(--bk-blue); }
    .bk-marker { font-family: ui-monospace, monospace; font-size: 0.75rem; color: #6b4c00; background: #fff8e6; padding: 0.1rem 0.35rem; border-radius: 3px; }
    .bk-marker.vazia { color: #7a1e1e; background: #ffebee; }
    .bk-marker.sim { color: #1e4a7a; background: #e3f2fd; }
    .bk-muted { color: var(--bk-muted); }
    .bk-loading { text-align: center; padding: 3rem; color: var(--bk-muted); }
    .bk-error { background: var(--bk-danger-bg); color: var(--bk-danger); padding: 1rem; border-radius: 8px; margin: 1rem var(--bk-pad); border: 1px solid #ffcdd2; }
    .bk-empty-state {
      background: linear-gradient(180deg, #fff 0%, #f8fbff 100%);
      color: var(--bk-text);
      border: 1px solid #c5ddf5;
      box-shadow: 0 8px 30px rgba(0, 59, 149, 0.08);
    }
    .bk-empty-state h2 {
      margin: 0 0 0.45rem;
      color: #123a67;
      font-size: clamp(1.1rem, 1rem + 0.8vw, 1.45rem);
    }
    .bk-empty-state p {
      margin: 0 0 0.75rem;
      color: #334155;
    }
    .bk-empty-state code {
      display: inline-block;
      padding: 0.12rem 0.35rem;
      border-radius: 4px;
      background: #eff6ff;
      color: #1d4ed8;
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: 0.85em;
    }
    .bk-empty-links {
      display: flex;
      flex-wrap: wrap;
      gap: 0.6rem;
      margin-top: 0.9rem;
    }
    .bk-empty-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 44px;
      padding: 0.65rem 1rem;
      border-radius: 8px;
      border: 1px solid #b8d4f0;
      background: #fff;
      color: var(--bk-blue);
      font-weight: 600;
      text-decoration: none;
    }
    .bk-empty-link:hover {
      background: #eff6ff;
      text-decoration: none;
    }
    .bk-empty-link--primary {
      background: var(--bk-blue);
      border-color: var(--bk-blue);
      color: #fff;
    }
    .bk-empty-link--primary:hover {
      background: var(--bk-blue-hover);
      color: #fff;
    }
    .bk-rev-card { border: 1px solid var(--bk-border); border-radius: 4px; padding: 1rem; margin-bottom: 0.75rem; background: #fafafa; }
    .bk-rev-card:last-child { margin-bottom: 0; }
    #bk-aside-reserva { scroll-margin-top: var(--bk-anchor-pad); }
    .bk-details-tech { margin-top: 0.5rem; border: 1px dashed var(--bk-border); border-radius: 4px; padding: 0.5rem 0.75rem; background: #fafafa; font-size: 0.8125rem; scroll-margin-top: var(--bk-anchor-pad); }
    .bk-details-tech summary { cursor: pointer; font-weight: 600; color: var(--bk-muted); }
    .bk-rooms-note { font-size: 0.8125rem; color: var(--bk-muted); margin: 0 0 0.65rem; word-break: break-word; }

    /* ——— Responsivo: tablet estreito / telemóvel ——— */
    @media (max-width: 960px) {
      .bk-layout { grid-template-columns: 1fr; gap: 1.25rem; }
    }
    @media (max-width: 900px) {
      .bk-cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; }
    }
    @media (max-width: 768px) {
      .bk-subnav {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        gap: 0.15rem 0.75rem;
        overscroll-behavior-x: contain;
      }
      .bk-subnav a { flex-shrink: 0; white-space: nowrap; font-size: 0.8125rem; }
    }
    @media (max-width: 640px) {
      :root {
        --bk-max: 100%;
      }
      .bk-score-wrap { flex-direction: column; align-items: stretch; }
      .bk-score-left { width: 100%; }
      .bk-cat-grid { grid-template-columns: 1fr; }
      .bk-section-head { flex-direction: column; align-items: stretch; }
      .bk-section-head .bk-btn-cta--section { width: 100%; text-align: center; justify-content: center; }
      .bk-btn-cta--section { display: inline-flex; align-items: center; justify-content: center; }
      .bk-amenity-grid { flex-direction: column; gap: 0.75rem; }
      .bk-amenity-item { max-width: 100%; }
      .bk-title-row .bk-btn-cta { width: 100%; text-align: center; box-sizing: border-box; }
    }
    @media (max-width: 480px) {
      .bk-gallery {
        min-height: min(360px, 70vw);
        grid-template-columns: 1fr 1fr;
        grid-template-rows: minmax(100px, 28vw) minmax(100px, 28vw);
      }
      .bk-gallery .bk-g-item:first-child { min-height: 180px; max-height: 52vw; }
      .bk-g-more { font-size: 0.875rem; padding: 0.5rem; text-align: center; }
      .bk-quick-grid { grid-template-columns: 1fr; }
      .bk-rule-row { grid-template-columns: auto 1fr; gap: 0.5rem 0.65rem; }
    }
    /* Telemóvel muito estreito (ex. 320px) */
    @media (max-width: 360px) {
      h1.bk-title { font-size: 1.05rem; }
      .bk-section h2 { font-size: 1rem; }
      .bk-pill { font-size: 0.7rem; }
    }
    /* Landscape / altura baixa */
    @media (max-height: 520px) and (orientation: landscape) {
      .bk-gallery { min-height: 160px; max-height: min(240px, 45vh); }
      .bk-gallery .bk-g-item:first-child { min-height: 140px; max-height: 45vh; }
    }
    /* Ecrãs largos: não esticar texto demais dentro das secções */
    @media (min-width: 1200px) {
      .bk-desc p, .bk-desc { max-width: 75ch; }
    }
    @media (prefers-reduced-motion: reduce) {
      .bk-g-item:hover img { filter: none; }
    }
