.vc-configurator {
--vc-border: #d8dce3;
--vc-accent: #135e96;
--vc-text: #1d2327;
color: var(--vc-text);
max-width: 1180px;
margin: 2rem auto;
}
.vc-configurator *, .vc-configurator *::before, .vc-configurator *::after { box-sizing: border-box; }
.vc-configurator__intro { margin-bottom: 1.5rem; }
.vc-configurator__intro h2 { margin: 0 0 .5rem; }
.vc-progress { display: flex; gap: .35rem; list-style: none; padding: 0; margin: 0 0 1.5rem; }
.vc-progress li { align-items: center; background: #e9ecef; border-radius: 50%; color: #50575e; display: flex; font-size: .8rem; font-weight: 700; height: 2rem; justify-content: center; width: 2rem; }
.vc-progress li.is-current, .vc-progress li.is-complete { background: var(--vc-accent); color: #fff; }
.vc-status { min-height: 1.5rem; margin-bottom: .75rem; }
.vc-filterbar { background:#fff; border-bottom:1px solid var(--vc-border); display:grid; gap:.75rem; grid-template-columns:minmax(400px,2.6fr) minmax(125px,.8fr) minmax(170px,1fr); margin-bottom:1.5rem; padding:1rem; position:sticky; top:0; z-index:3; }
.vc-room-results { margin-top:2rem; }
.vc-room-results > h2 { font-size:2rem; margin:0 0 1rem; }
.vc-request-configuration { margin-top:2.5rem; }
.vc-request-configuration > h2 { font-size:1.6rem; margin:0 0 1rem; }
.vc-configurator.vc-is-enhanced .vc-request-configuration { display:none; }
.vc-configurator.vc-is-enhanced .vc-request-configuration.is-visible { display:block; }
.vc-room-results .vc-step { border:0; padding:0; }
.vc-room-results .vc-step > legend { display:none; }
.vc-room-grid { gap:1.25rem; grid-template-columns:1fr; }
.vc-filterbar .vc-step { border:0; margin:0; padding:0; }
.vc-filterbar .vc-step legend { font-size:.9rem; }
.vc-filterbar .vc-field-grid { display:grid; gap:.75rem; grid-template-columns:1.4fr 1fr 1fr; }
.vc-step { border: 1px solid var(--vc-border); border-radius: .5rem; margin: 0 0 1rem; padding: 1.25rem; }
.vc-step legend { font-size: 1.25rem; font-weight: 700; padding: 0 .25rem; }
.vc-field-grid, .vc-choice-grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.vc-field { margin: 0; }
.vc-field--wide { grid-column: 1 / -1; }
.vc-field label { display: block; font-weight: 600; margin-bottom: .35rem; }
.vc-field input, .vc-field select, .vc-field textarea { border: 1px solid #8c8f94; border-radius: .25rem; font: inherit; padding: .6rem; width: 100%; }
.vc-choice { border: 1px solid var(--vc-border); border-radius: .4rem; cursor: pointer; display: flex; gap: .65rem; padding: .85rem; }
.vc-room { display:block; grid-column: 1 / -1; padding:0; }
.vc-room__select { cursor:pointer; display:block; padding:.85rem; }
.vc-room-card { display:grid; gap:1rem; grid-template-columns:260px minmax(0,1fr) minmax(260px,.8fr); width:100%; }
.vc-room-card__image { border-radius:.35rem; height:150px; object-fit:cover; width:100%; }
.vc-room-card__main, .vc-room-card__facts { display:flex; flex-direction:column; gap:.5rem; }
.vc-room-card__main strong { font-size:1.35rem; }
.vc-room-card__equipment { color:#4f6c57; }
.vc-room-card__equipment::before { content:'✓'; font-weight:700; margin-right:.4rem; }
.vc-room-card__price { align-items:end; border-top:1px solid var(--vc-border); display:flex; justify-content:space-between; margin:0 .85rem; padding:1rem 0; }
.vc-room-card__price b, .vc-room-card__price small { display:block; }
.vc-room-card__price strong { font-size:1.35rem; }
.vc-room-card__facts { border-left:1px solid var(--vc-border); padding-left:1rem; }
.vc-capacity-list { display:grid; gap:.4rem .75rem; grid-template-columns:repeat(2, minmax(0, 1fr)); }
.vc-capacity { align-items:center; border:1px solid var(--vc-border); border-radius:.35rem; display:flex; gap:.4rem; min-height:3.6rem; padding:.45rem; }
.vc-capacity.is-highlighted { background:#e8f2f9; border-color:#0b4f7d; color:#0b4f7d; }
.vc-capacity__icon { flex:0 0 1.4rem; height:1.4rem; width:1.4rem; }
.vc-capacity strong { font-size:1.1rem; line-height:1; }
.vc-capacity small { display:block; margin:0; }
.vc-dimension-list { display:grid; gap:.4rem; grid-template-columns:repeat(2, minmax(0, 1fr)); }
.vc-dimension { align-items:center; border:1px solid var(--vc-border); border-radius:.35rem; display:flex; gap:.4rem; min-height:3.6rem; padding:.45rem; }
.vc-dimension__icon { flex:0 0 1.4rem; height:1.4rem; width:1.4rem; }
.vc-dimension strong { font-size:1.05rem; line-height:1; }
.vc-dimension small { display:block; margin:0; }
.vc-room-card__actions { align-items:center; display:flex; gap:.75rem; justify-content:space-between; margin:0 .85rem .85rem; }
.vc-details-toggle { background:transparent; border:0; color:var(--vc-accent); cursor:pointer; font:inherit; padding:0; text-decoration:underline; }
.vc-room-select-button { background:var(--vc-accent); border:1px solid var(--vc-accent); color:#fff; cursor:pointer; font:inherit; font-weight:700; padding:.65rem .85rem; text-transform:uppercase; }
.vc-room-select-button:hover { background:#0c4a77; border-color:#0c4a77; }
.vc-room-card__details { border-top:1px solid var(--vc-border); display:grid; gap:1rem; margin:0 .85rem; padding:1rem 0; }
.vc-room-card__details[hidden] { display:none; }
.vc-room-card__description p { margin:0 0 .7rem; }
.vc-room-card__description p:last-child { margin-bottom:0; }
.vc-equipment-tabs { display:block; }
.vc-equipment-tabs__list { border-bottom:1px solid var(--vc-border); display:flex; gap:1rem; }
.vc-equipment-tabs__list button { background:transparent; border:0; color:#50575e; cursor:pointer; font:inherit; padding:.5rem 0; }
.vc-equipment-tabs__list button.is-active { border-bottom:3px solid var(--vc-accent); color:var(--vc-text); font-weight:700; }
.vc-equipment-tabs__panel { display:block; padding-top:.75rem; }
.vc-equipment-tabs__panel[hidden] { display:none !important; }
.vc-choice:has(input:checked), .vc-room--selected { border-color: var(--vc-accent); box-shadow: 0 0 0 1px var(--vc-accent); }
.vc-room--not-matching { opacity: .55; }
.vc-choice input { margin-top: .2rem; }
.vc-choice strong, .vc-choice small { display: block; }
.vc-choice small { color: #50575e; margin-top: .25rem; }
.vc-help { color: #50575e; }
.vc-empty-rooms, .vc-notice { background: #f0f6fc; border-left: 4px solid var(--vc-accent); padding: .8rem 1rem; }
.vc-notice--pending { background: #fcf9e8; border-color: #996800; }
.vc-honeypot { height: 1px; left: -9999px; opacity: 0; position: absolute; width: 1px; }
.vc-summary { background: #f6f7f7; padding: 1rem; }
.vc-summary__details { display: grid; grid-template-columns: minmax(100px, .3fr) 1fr; margin: 0; }
.vc-summary__details dt { font-weight: 700; }
.vc-summary__details dd { margin: 0 0 .5rem; }
.vc-summary__total { border-top: 1px solid var(--vc-border); display: flex; font-size: 1.15rem; justify-content: space-between; margin: .75rem 0 0; padding-top: .75rem; }
.vc-actions { display: flex; gap: .75rem; justify-content: space-between; margin-top: 1.25rem; }
.vc-button { min-height: 2.75rem; padding: .5rem 1rem; }
.vc-configurator input:focus-visible, .vc-configurator select:focus-visible, .vc-configurator textarea:focus-visible, .vc-configurator button:focus-visible { outline: 3px solid #2271b1; outline-offset: 2px; }
@media (max-width: 760px) {
.vc-filterbar { grid-template-columns:1fr 1fr; position:static; }
.vc-filterbar .vc-step:first-child { grid-column:1 / -1; }
.vc-room-card { grid-template-columns:180px minmax(0, 1fr); }
.vc-room-card__facts { border-left:0; border-top:1px solid var(--vc-border); grid-column:1 / -1; padding-left:0; padding-top:1rem; }
}
@media (max-width: 480px) {
.vc-filterbar { grid-template-columns:1fr; position:static; }
.vc-filterbar .vc-field-grid { grid-template-columns:1fr; }
.vc-room-card { grid-template-columns:1fr; }
.vc-room-card__image { height:190px; }
.vc-capacity-list { grid-template-columns:1fr 1fr; }
.vc-room-card__actions { align-items:stretch; flex-direction:column-reverse; }
.vc-room-select-button { width:100%; }
.vc-progress { gap: .2rem; justify-content: space-between; }
.vc-progress li { font-size: .7rem; height: 1.65rem; width: 1.65rem; }
.vc-step { padding: 1rem; }
}