/* Silastur · Alojamientos AvaiBook. Colores ajustables desde el tema con estas variables */
:root { --sab-accent: #f4b201; --sab-accent-text: #1d1d1b; --sab-dark: #1d1d1b; --sab-muted: #6b7280; --sab-line: #e5e7eb; --sab-radius: 14px; }

/* Botón de reserva */
.sab-book { display: block; text-align: center; background: var(--sab-accent); color: var(--sab-accent-text) !important; font-weight: 700; font-size: 1.05rem; padding: .95em 1.4em; border-radius: 999px; text-decoration: none !important; box-shadow: 0 10px 25px -10px rgba(0,0,0,.35); transition: transform .2s, filter .2s; }
.sab-book:hover { transform: translateY(-2px); filter: brightness(1.05); }
.sab-book--small { display: inline-block; font-size: .9rem; padding: .55em 1.1em; box-shadow: none; }
.sab-book-note { margin: .5em 0 0; text-align: center; font-size: .82rem; color: var(--sab-muted); }

/* Galería de cabecera */
.sab-gallery { display: grid; gap: 8px; margin: 0 0 2em; border-radius: var(--sab-radius); overflow: hidden; }
.sab-gallery__item { position: relative; display: block; overflow: hidden; background: #f3f4f6; }
.sab-gallery__item img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.sab-gallery__item:hover img { transform: scale(1.04); }
.sab-gallery--1 { grid-template-columns: 1fr; }
.sab-gallery--1 .sab-gallery__item { aspect-ratio: 16 / 8; }
/* 2 fotos: dos iguales · 3: grande + 2 apiladas · 4: grande + 3 apiladas · 5: grande + 4 en cuadrícula */
.sab-gallery--2 { grid-template-columns: 1fr 1fr; grid-auto-rows: 360px; }
.sab-gallery--3 { grid-template-columns: 2fr 1fr; grid-auto-rows: 180px; }
.sab-gallery--3 .sab-gallery__item--main { grid-row: span 2; }
.sab-gallery--4 { grid-template-columns: 2fr 1fr; grid-auto-rows: 120px; }
.sab-gallery--4 .sab-gallery__item--main { grid-row: span 3; }
.sab-gallery--5 { grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: 180px; }
.sab-gallery--5 .sab-gallery__item--main { grid-row: span 2; }
.sab-gallery__more { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.45); color: #fff; font-weight: 700; font-size: 1.1rem; }
@media (max-width: 700px) {
  .sab-gallery, .sab-gallery--2, .sab-gallery--3, .sab-gallery--4, .sab-gallery--5 { grid-template-columns: 1fr 1fr; grid-auto-rows: 120px; }
  .sab-gallery__item--main { grid-column: span 2; grid-row: auto; aspect-ratio: 16 / 10; }
}

/* Contenido + lateral con el botón de reserva */
.sab-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2.5em; align-items: start; }
.sab-aside { position: sticky; top: 110px; }
.sab-box { border: 1px solid var(--sab-line); border-radius: var(--sab-radius); padding: 1.4em; background: #fff; box-shadow: 0 18px 40px -25px rgba(0,0,0,.35); }
.sab-facts { list-style: none; margin: 1.4em 0 0; padding: 0; font-size: .95rem; }
.sab-facts li { padding: .7em 0; border-top: 1px solid var(--sab-line); }
.sab-facts span { display: block; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sab-muted); }
@media (max-width: 900px) { .sab-layout { grid-template-columns: 1fr; } .sab-aside { position: static; order: -1; } }

.sab-h2 { margin: 1.8em 0 .7em; }
.sab-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.sab-thumbs a { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 10px; }
.sab-thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sab-map { border-radius: var(--sab-radius); overflow: hidden; border: 1px solid var(--sab-line); }
.sab-map iframe { display: block; width: 100%; height: 360px; border: 0; }
.sab-map-link { font-size: .9rem; }

/* Rejilla [silastur_alojamientos] */
.sab-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 1.5em; }
.sab-filter a { padding: .45em 1em; border: 1px solid var(--sab-line); border-radius: 999px; text-decoration: none; color: var(--sab-dark); font-size: .9rem; background: #fff; }
.sab-filter a small { color: var(--sab-muted); }
.sab-filter a.is-active { background: var(--sab-dark); border-color: var(--sab-dark); color: #fff; }
.sab-filter a.is-active small { color: rgba(255,255,255,.7); }
/* Se adapta al ancho que deje el tema: tantas columnas como quepan (máximo el atributo columnas) */
.sab-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(max(250px, calc((100% - (var(--sab-cols, 3) - 1) * 24px) / var(--sab-cols, 3))), 1fr)); gap: 24px; }
@media (max-width: 560px) { .sab-cards { grid-template-columns: 1fr; } }
.sab-card-item { display: flex; flex-direction: column; border: 1px solid var(--sab-line); border-radius: var(--sab-radius); overflow: hidden; background: #fff; transition: box-shadow .3s, transform .3s; }
.sab-card-item:hover { transform: translateY(-3px); box-shadow: 0 20px 40px -24px rgba(0,0,0,.4); }
.sab-card-item__photo { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f3f4f6; }
.sab-card-item__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sab-card-item__body { display: flex; flex: 1; flex-direction: column; padding: 1.1em 1.2em 1.3em; }
.sab-card-item__place { margin: 0 0 .3em; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--sab-muted); }
.sab-card-item__title { margin: 0 0 .4em; font-size: 1.2rem; }
.sab-card-item__title a { text-decoration: none; color: var(--sab-dark); }
.sab-card-item__excerpt { margin: 0 0 1em; font-size: .92rem; color: var(--sab-muted); }
.sab-card-item__actions { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; }
.sab-link { font-size: .95rem; font-weight: 700; line-height: 1.3; text-decoration: none; }
.sab-locations { columns: 3 180px; list-style: none; padding: 0; }
.sab-locations li { padding: .25em 0; }
.sab-locations small, .sab-empty { color: var(--sab-muted); }
