Montana is a website template for resorts, hotels and lakeside lodges, built on Bootstrap 5. The layout is responsive and mobile-ready and works in all popular web browsers. It comes with seven pages: home, rooms, about, blog, blog post, contact and an elements page.
The home page has a full-screen hero slider, an about section, three room offers, a video section, a restaurant section, a grid of featured rooms with prices, a reservation phone banner and a photo strip. Every page has a “Book A Room” button that opens an availability form with dates, guests and room type, and each “book now” link opens it with that room already selected. The blog has a sidebar with search, categories, recent posts and a newsletter form, and the contact page has a map and a working contact form.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.0 and jQuery), compiled from Sass together with the theme and the original Bootstrap 4 proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the hero slider, PhotoSwipe replaces Magnific Popup in the gallery, native dialogs replace the popup booking form and the video popup, a keyboard-operable panel replaces the mobile menu, and native date fields replace the date picker. Icons are Lucide SVGs.
Lighter pages: all seven pages together went from 46.9 MB and 413 requests to 5.5 MB and 174 requests, and the home page from 15.9 MB to 1.3 MB. Every photo has an AVIF version with a JPEG fallback, real dimensions and lazy loading below the fold, and each page preloads its banner photo.
No third-party requests: Raleway is self-hosted, the contact map loads from OpenStreetMap only after a click and needs no API key, the video loads from YouTube’s privacy-enhanced player only after a click, and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, every page loaded fonts from Google Fonts and the contact page loaded Google Maps.
Working forms: the availability form, the contact form, the blog comment form and the newsletter forms send through php/send-email.php, with validation, a spam trap and an in-page message, and the blog search works. Before, the availability and newsletter forms could not send anything.
Accessibility: a skip link and a main landmark on every page, one h1 per page, visible labels on the form fields, named icon links, keyboard access to the menu, dialogs, slider and gallery, overlays that also open on keyboard focus, and WCAG AA contrast with a deeper brand blue and darker greys.
Fresh content: resort copy instead of placeholder text, new hotel photos for the blog and the page banners, three different room offers, and typos fixed.