/* Bali OOOOO Pro: uses the theme's colour tokens when present, plain fallbacks otherwise. */
.bop-booking, .bop-contact-form { background: var(--wp--preset--color--surface, #fff); border: 1px solid var(--wp--preset--color--line, #e5e5e5); padding: clamp(1.25rem, 3vw, 2.25rem); border-radius: 4px; }
.bop-booking__title { margin: 0 0 1rem; }
.bop-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-bottom: 1.25rem; }
.bop-grid label { display: flex; flex-direction: column; gap: .35rem; font-size: .8125rem; letter-spacing: .08em; text-transform: uppercase; color: var(--wp--preset--color--muted, #666); }
.bop-grid .bop-wide { grid-column: 1 / -1; }
.bop-grid .bop-half { grid-column: span 2; }
@media (max-width: 600px) { .bop-grid .bop-half { grid-column: auto; } }
.bop-grid input, .bop-grid select, .bop-grid textarea { font: inherit; font-size: 1rem; letter-spacing: 0; text-transform: none; color: var(--wp--preset--color--contrast, #222); background: var(--wp--preset--color--base, #fff); border: 1px solid var(--wp--preset--color--line, #ccc); border-radius: 2px; padding: .7rem .8rem; width: 100%; box-sizing: border-box; }
.bop-grid input:focus, .bop-grid select:focus, .bop-grid textarea:focus { outline: 2px solid var(--wp--preset--color--accent, #b5653f); outline-offset: 1px; }
.bop-booking button, .bop-contact-form button { cursor: pointer; }
.bop-wa-btn { display: inline-flex; align-items: center; gap: .55em; }
.bop-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.bop-note { padding: .8rem 1rem; border-radius: 2px; margin: 0 0 1rem; }
.bop-note--sent { background: #e6f4ea; color: #1e6b3a; }
.bop-note--error, .bop-note--limit { background: #fbe9e5; color: #8a2f1c; }
.bop-empty { color: var(--wp--preset--color--muted, #666); }
.bop-catalog { display: grid; grid-template-columns: repeat(var(--bop-cols, 3), minmax(0, 1fr)); gap: 2rem; }
@media (max-width: 900px) { .bop-catalog { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .bop-catalog { grid-template-columns: 1fr; } }
.bop-card { background: var(--wp--preset--color--surface, #fff); border: 1px solid var(--wp--preset--color--line, #e5e5e5); display: flex; flex-direction: column; overflow: hidden; }
.bop-card__img { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.bop-card__img img { display: block; width: 100% !important; height: 100% !important; max-width: none; object-fit: cover; }
.bop-card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.bop-card__title { margin: 0; font-size: var(--wp--preset--font-size--large, 1.25rem); }
.bop-card__title a { color: inherit; text-decoration: none; }
.bop-price { margin: 0; color: var(--wp--preset--color--accent, #b5653f); font-weight: 500; }
.bop-card__text { margin: 0; color: var(--wp--preset--color--muted, #666); font-size: .95rem; }
.bop-card .wp-block-buttons { margin-top: auto; padding-top: .75rem; }
.bop-order .wp-block-button__link { background: #25D366; border-color: #25D366; color: #fff; }
.bop-float { position: fixed; right: clamp(14px, 3vw, 28px); bottom: clamp(14px, 3vw, 28px); z-index: 60; display: inline-flex; align-items: center; gap: .55em; background: #25D366; color: #fff; border-radius: 999px; padding: .95rem 1.4rem; text-decoration: none; font-weight: 600; box-shadow: 0 8px 24px rgba(0,0,0,.18); }
.bop-float::before { content: ""; width: 1.35em; height: 1.35em; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6 2 11c0 2.4 1 4.6 2.8 6.2L4 22l4.6-2.2c1.1.3 2.2.5 3.4.5 5.5 0 10-4 10-9.3S17.5 2 12 2z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2C6.5 2 2 6 2 11c0 2.4 1 4.6 2.8 6.2L4 22l4.6-2.2c1.1.3 2.2.5 3.4.5 5.5 0 10-4 10-9.3S17.5 2 12 2z'/%3E%3C/svg%3E") center / contain no-repeat; }
@media (max-width: 600px) { .bop-float span { display: none; } .bop-float { padding: 1rem; } }

.bop-item-buy { display: flex; flex-direction: column; gap: .9rem; align-items: flex-start; margin-top: 1rem; }
.bop-price--big { font-size: var(--wp--preset--font-size--x-large, 1.75rem); font-family: var(--wp--preset--font-family--cormorant-garamond, inherit); }
.bop-ask { margin: 0; font-size: .95rem; }
