How the place looks, sounds and feels β so everything we make stays unmistakably ours.
Casa Cactus is a small, peaceful guesthouse seven minutes from Laguna de Bacalar β four stone bungalows, three apartments, a freeform pool, and gardens that do most of the talking. It was never meant to be a perfect hotel. It's a place with stories, people, and the quiet beauty of a village by the lagoon.
Stillness over polish. Space to breathe rather than amenities to count.
Real people, real imperfections, a little dry humour. We don't oversell.
Stone, cactus, lagoon light. The village and its rhythm are the brand.
Warm, understated, sensory, and quietly funny. We write the way a thoughtful host speaks β never a brochure. Short, plain sentences. No hype words, no exclamation marks, no stock-photo enthusiasm.
The wordmark is simply the name set in Cormorant Garamond β light weight, generous spacing. On the property it appears as rust-coloured lettering on raw stone; in digital, "Cactus" may take the terracotta accent. Keep clear space of at least one cap-height on every side. The cactus π΅ serves as the favicon and a playful shorthand, never as a substitute for the wordmark in headers.
Cream paper and near-black ink carry almost everything. Terracotta is the warm signature; gold is the single action colour β reserved for things you can tap. Lagoon and sage appear sparingly, drawn straight from the water and the gardens. Tap any swatch to copy its hex.
One primary action per view, in terracotta. Everything else is a quiet outline. Buttons and tags are fully rounded pills; corners on cards and images stay soft (3β4px). Motion is slow and eased β nothing snaps.
Primary = terracotta fill, darkens to ink on hover. Secondary = hairline outline, terracotta on hover. Both lift 3px.
100px3β4pxcubic-bezier(.25,.46,.45,.94)translateY(-3px).18β.28em~5rem verticalNatural light, real moments, room to breathe. Golden hour and dusk over midday glare. Let negative space and the gardens frame the subject. Avoid heavy filters, crushed saturation, and staged perfection.






Every photo follows one flat, descriptive convention so the library stays searchable and the gallery can build itself. Lowercase, hyphen-separated, one subject per name, real names for people, a view suffix when it helps. Served as .webp from /images/.
aerial-pool-freeform-spa-steps-couple-overheadzone + subject + viewbungalow-bedroom-stone-wall-pendant-lights-bench-frontalroom, materials, anglegarden-cactus-top-down-gravel-detaildetail / texture shotmari-portrait-sun-lounger-book-lime-drink-bungalowreal name for peopleDSC_1234.jpgβrename-images.shβname.webpβbuild-galleryβ/gallery
Drone and rotated shots get their EXIF orientation baked in before conversion (fix-orientation.py) so nothing lands sideways. The gallery list is generated from the folder at deploy β never hand-edited.