.hf-avail { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 1.5rem; margin: 1rem 0; }
.hf-avail-month { width: 100%; border-collapse: collapse; text-align: center; font-size: .95em; }
.hf-avail-month caption { font-weight: 600; padding-bottom: .4rem; text-align: left; }
.hf-avail-month th { font-weight: 600; font-size: .8em; padding: .2rem 0; }
.hf-avail-month td { padding: .35rem 0; border: 2px solid var(--wp--preset--color--base, #fff); }
.hf-free { background: var(--wp--preset--color--tint, #eef0e4); }
.hf-booked { background: var(--wp--preset--color--contrast, #1c241d); color: var(--wp--preset--color--base, #fff); text-decoration: line-through; }
.hf-past { color: #999; }
.hf-avail-legend, .hf-avail-note { font-size: .9em; }
.hf-key { display: inline-block; width: 1em; height: 1em; vertical-align: -.15em; margin-left: .5em; border: 1px solid #999; }
.hf-avail-legend .hf-key:first-child { margin-left: 0; }
