/* Stable house IDs keep this palette independent of future names/translations. Sources: docs/house-colors.md. */
:root{--house-accent:#313940;--house-ink:#313940;--house-tint:#f0f2f3}
[data-house="fab-house"],.house-marker-fab-house{--house-accent:#a1a093;--house-ink:#5b5e52;--house-tint:#f3f3f0}
[data-house="republique"],.house-marker-republique{--house-accent:#7799ad;--house-ink:#3f657b;--house-tint:#eff4f7}
[data-house="vignes"],.house-marker-vignes{--house-accent:#ecc363;--house-ink:#806017;--house-tint:#fcf6e8}
[data-house="beauvais"],.house-marker-beauvais{--house-accent:#8f4e4d;--house-ink:#8f4e4d;--house-tint:#f8efef;--house-on-dark:#d79a98}

.house-picker{padding:26px 0 35px;border-block:1px solid var(--line)}
.house-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-bottom:23px}
.house-picker-heading .eyebrow{font-size:.75rem;color:var(--muted);letter-spacing:.09em}
.house-picker-heading h2{font-size:1.65rem;margin-top:10px;letter-spacing:-.035em}
.house-picker .filter-all{display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:12px 17px;border:1px solid #d9dfe3;background:white;color:var(--ink);font-size:.875rem;flex:none;border-radius:var(--radius-control)}
.house-picker .filter-all>span{padding:0;margin:0;background:transparent;color:inherit;font-size:.75rem;font-weight:400;opacity:.75}
.house-picker .filter-all.active{background:var(--ink);border-color:var(--ink);color:white}
.house-picker .filter-all:hover{border-color:var(--ink)}
.house-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.house-picker .house-option{position:relative;display:grid;grid-template-rows:auto 1fr auto;align-items:start;gap:16px;min-width:0;min-height:166px;padding:20px;text-align:left;white-space:normal;background:white;border:1px solid #dce1e4;border-top:3px solid var(--house-accent);border-radius:var(--radius-control);color:var(--ink);transition:background .18s,border-color .18s}
.house-picker .house-option:hover{background:var(--house-tint);border-color:var(--house-accent)}
.house-picker .house-option.active{background:var(--house-tint);border-color:var(--house-accent);box-shadow:inset 0 0 0 1px var(--house-accent)}
.house-option-top{display:flex;align-items:center;gap:10px;font-size:.75rem;line-height:1.5;color:var(--muted)}
.house-picker .house-option>span{margin:0;padding:0;background:transparent}
.house-option-number{font-family:var(--serif);font-size:1.1rem;color:var(--house-ink)}
.house-option-state{margin-left:auto;opacity:0;display:flex;align-items:center;color:var(--house-ink)}
.house-option-state .icon{width:17px;height:17px}
.house-option.active .house-option-state{opacity:1}
.house-option>strong{font-family:var(--serif);font-size:1.45rem;line-height:1.2;font-weight:400;letter-spacing:-.025em;color:var(--house-ink)}
.house-picker .house-option>.house-option-address{font-size:.8125rem;line-height:1.5;color:var(--muted)}

.room-group>.group-heading{border-left:3px solid var(--house-accent);padding-left:22px}
.room-group .group-number{color:var(--house-ink)}
.room-group .group-heading h2,.room-group .group-heading .eyebrow{color:var(--house-ink)}
.room-card .image-tag{border-left:3px solid var(--house-accent);color:var(--house-ink)}
.room-card .room-card-meta{border-top:2px solid var(--house-accent);padding-top:12px}
.room-card h3,.room-card .card-link{color:var(--house-ink)}
.room-card .no-photo{background:var(--house-tint);color:var(--house-ink)}
.room-card .placeholder-type{color:var(--house-ink)}
.room-card .image-arrow{color:var(--house-ink)}
.address-card{position:relative}
.address-card::before{content:'';display:block;width:42px;height:3px;background:var(--house-accent);margin-bottom:21px}
.address-card .address-number{color:var(--house-on-dark,var(--house-accent))}
.location-card{border-left:3px solid var(--house-accent);padding-left:18px}
.location-card h2,.location-card .location-index{color:var(--house-ink)}
.map-marker{background:var(--house-accent)}

.room-page .detail-intro h1,.room-page .detail-intro .eyebrow,.room-page .detail-tag{color:var(--house-ink)}
.room-page .detail-facts{border-bottom-color:var(--house-accent)}
.room-page .booking-card{border-top:3px solid var(--house-accent);background:var(--house-tint)}
.room-page .booking-card h2,.room-page .booking-card>.eyebrow,.room-page .equipment .icon{color:var(--house-ink)}
.room-page .pending-hero{background:var(--house-tint);border-color:var(--house-accent)}
.room-page .pending-title{color:var(--house-ink)}
.room-page .stay-search .button,.room-page .mobile-room-booking .button,.booking-bar-room .button{background:var(--house-ink)}
.room-page .mobile-room-booking{border-top-color:var(--house-accent)}
.room-page .calendar-widget,.date-dialog[data-house] .calendar-widget,.booking-app[data-house] .calendar-widget{--cal-ink:var(--house-ink)}
.app-result-card,.app-selected-stay{border-top:3px solid var(--house-accent)}
.app-result-card .app-room-category,.app-result-card h3,.app-selected-stay .app-room-category,.app-selected-stay h3{color:var(--house-ink)}
.app-result-card .app-photo-pending{background:var(--house-tint);color:var(--house-ink)}
#reservation-form .app-result-card .button,#reservation-form .app-actions .button{background:var(--house-ink)}
.booking-app .app-room-context{border-left:3px solid var(--house-accent);background:var(--house-tint)}
.room-page .stay-search .button:hover,.room-page .mobile-room-booking .button:hover,.booking-bar-room .button:hover,#reservation-form .app-result-card .button:hover,#reservation-form .app-actions .button:hover{filter:brightness(.92)}
@media(max-width:1100px){.house-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .house-picker{padding-block:23px 27px}
  .house-picker-heading{align-items:flex-start;flex-direction:column;gap:19px;margin-bottom:20px}
  .house-picker-heading h2{font-size:1.55rem}
  .house-picker .filter-all{padding:10px 14px}
  .house-options{gap:12px}
  .house-picker .house-option{padding:15px 13px;gap:15px;min-height:160px}
  .house-option>strong{font-size:1.25rem}
  .house-option-top{gap:6px;flex-wrap:wrap}
  .house-option-number{font-size:1rem}
  .house-option-state{position:absolute;right:10px;bottom:12px}
  .house-picker .house-option>.house-option-address{padding-right:15px;font-size:.75rem}
  .room-group>.group-heading{padding-left:14px}
  .room-group .group-number{display:none}
  .location-card{padding-left:12px}
}
@media(prefers-reduced-motion:reduce){.house-picker .house-option{transition:none}}
@media print{.house-picker{display:none}}
