.buw-package-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; }
.buw-package-grid-single { grid-template-columns: minmax(300px, 480px); }

.buw-package-card { border: 1px solid #dfe3e8; border-radius: 8px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }

.buw-package-gallery { padding: 0; }
.buw-package-gallery-main { aspect-ratio: 4 / 3; background: #f0f0f1; overflow: hidden; }
.buw-package-gallery-main img { width: 100%; height: 100%; object-fit: cover; display: block; }
.buw-package-gallery-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; background: #dfe3e8; }
.buw-package-gallery-thumb { border: none; padding: 0; cursor: pointer; aspect-ratio: 1 / 1; background: #f0f0f1; opacity: .65; transition: opacity .15s; }
.buw-package-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.buw-package-gallery-thumb:hover, .buw-package-gallery-thumb.is-active { opacity: 1; }

.buw-package-card-body { padding: 1.25rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.buw-package-style { font-size: .8rem; letter-spacing: .04em; text-transform: uppercase; color: #8a94a3; font-weight: 600; }
.buw-package-card-body h3 { margin: 0; font-size: 1.15rem; }
.buw-package-sqft { margin: 0; font-size: .9rem; color: #4a5568; }
.buw-package-excerpt { margin: 0; font-size: .9rem; color: #4a5568; }

.buw-package-specs { list-style: none; margin: .25rem 0; padding: 0; display: flex; flex-direction: column; gap: .35rem; font-size: .85rem; }
.buw-package-specs li { line-height: 1.4; }

.buw-package-footer { margin-top: auto; padding-top: .75rem; display: flex; flex-direction: column; gap: .5rem; }
.buw-package-price { font-weight: 700; font-size: 1.05rem; }
.buw-package-request-btn { width: 100%; text-align: center; border: none; cursor: pointer; font: inherit; }

/* Request modal */
.buw-package-request-modal[hidden] { display: none; }
.buw-package-request-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; }
.buw-package-request-modal-backdrop { position: absolute; inset: 0; background: rgba(11, 21, 32, .6); }
.buw-package-request-modal-dialog { position: relative; background: #fff; border-radius: 8px; padding: 2rem; max-width: 480px; width: calc(100% - 2rem); max-height: 90vh; overflow-y: auto; }
.buw-package-request-modal-x { position: absolute; top: .75rem; right: .75rem; border: none; background: none; font-size: 1.5rem; line-height: 1; cursor: pointer; color: #4a5568; }
.buw-package-request-modal-dialog h2 { margin-top: 0; }
.buw-package-request-selected { font-weight: 600; color: #10243f; margin-top: -.5rem; }
.buw-package-request-modal-dialog label { display: block; margin-bottom: 1rem; font-size: .9rem; font-weight: 600; color: #33404f; }
.buw-package-request-modal-dialog input[type=text], .buw-package-request-modal-dialog input[type=email], .buw-package-request-modal-dialog textarea {
	width: 100%; margin-top: .35rem; padding: .6rem .7rem; border: 1px solid #dfe3e8; border-radius: 4px; font-size: .95rem; font-weight: 400; box-sizing: border-box;
}
.buw-package-request-actions { display: flex; justify-content: flex-end; gap: .75rem; }
.buw-package-request-result { font-size: .9rem; }
.buw-package-request-result.is-success { color: #1a7f37; }
.buw-package-request-result.is-error { color: #b3261e; }

body.buw-modal-open { overflow: hidden; }

@media (max-width: 600px) { .buw-package-grid { grid-template-columns: 1fr; } }
