1<!DOCTYPE html> <html itemscope itemtype="https://schema.org/WebPage" lang="en" data-page-type="rooms"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=yes, initial-scale=1"><title>Hotel Rooms & Suites | Glasgow Grosvenor Hotel | Glasgow Grosvenor Hotel</title> <link rel="preconnect" href="https://fonts.profitroom.com" crossorigin> <link rel="preconnect" href="https://wa-uploads.profitroom.com"> <link rel="preconnect" href="https://www.googletagmanager.com">
1<script> 2 window.dataLayer = window.dataLayer || []; 3 function gtag(){dataLayer.push(arguments);} 4 gtag('consent', 'default', { 5 'ad_storage': 'denied', 6 'ad_user_data': 'denied', 7 'ad_personalization': 'denied', 8 'analytics_storage': 'denied', 9 'functionality_storage': 'denied', 10 'personalization_storage': 'denied', 11 'security_storage': 'granted', 12 'wait_for_update': 2500 13 }); 14</script>
14
14<script> 15window.LazyScriptLoader = (function() { 16 const loaded = new Set(); 17 let triggered = false; 18 const queue = []; 19 20 function loadScript(id, callback, checkConsent) { 21 // Skip if already loaded 22 if (loaded.has(id)) return; 23 loaded.add(id); 24 25 // Check consent if needed 26 if (checkConsent && typeof checkConsent === 'function') { 27 if (!checkConsent()) return; 28 } 29 30 // Execute callback 31 if (typeof callback === 'function') { 32 callback(); 33 } 34 } 35 36 function processQueue() { 37 if (triggered) return; 38 triggered = true; 39 40 // Remove all event listeners 41 ['scroll', 'click', 'touchstart', 'mousemove', 'keydown'].forEach(event => { 42 document.removeEventListener(event, processQueue); 43 }); 44 45 // Process all queued scripts 46 queue.forEach(item => { 47 loadScript(item.id, item.callback, item.checkConsent); 48 }); 49 } 50 51 function register(id, callback, checkConsent) { 52 queue.push({ id, callback, checkConsent }); 53 } 54 55 // Set up event listeners 56 function init() { 57 const options = { once: true, passive: true }; 58 59 ['scroll', 'click', 'touchstart', 'mousemove', 'keydown'].forEach(event => { 60 document.addEventListener(event, processQueue, options); 61 }); 62 63 // Fallback after 5 seconds 64 if (!navigator.userAgent.includes("Lighthouse")) { 65 setTimeout(processQueue, 5000); 66 } 67 68 // If page is already scrolled, load immediately 69 if (window.scrollY > 0 || document.documentElement.scrollTop > 0) { 70 processQueue(); 71 } 72 } 73 74 // Initialize when DOM is ready 75 if (document.readyState === 'loading') { 76 document.addEventListener('DOMContentLoaded', init); 77 } else { 78 init(); 79 } 80 81 // Public API 82 return { 83 register: register, 84 load: processQueue // Manual trigger 85 }; 86})(); 87 88// Initialize dataLayer early 89window.dataLayer = window.dataLayer || []; 90</script>
90
90<script> 91LazyScriptLoader.register('gtm', function() {
vendor: 410 bytes, lines 91-100
91 92 (function(w,d,s,l,i){ 93 w[l]=w[l]||[]; 94 w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'}); 95 var f=d.getElementsByTagName(s)[0], 96 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 97 j.async=true; 98 j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; 99 f.parentNode.insertBefore(j,f); 100 })(window,document,'script','dataLayer','
100GTM-M8DR5J8
vendor: 13 bytes, lines 100-102
100'); 101 102
102window.dataLayer.push({ 103 'templateCode': 'glasgowgrosvenorhotel' 104 }); 105}); 106</script>
106
106<script> 107LazyScriptLoader.register('gtm-pr', function() {
vendor: 402 bytes, lines 107-116
107 108 (function(w,d,s,l,i){ 109 w[l]=w[l]||[]; 110 w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'}); 111 var f=d.getElementsByTagName(s)[0], 112 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 113 j.async=true; 114 j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; 115 f.parentNode.insertBefore(j,f); 116 })(window,document,'script','dataLayer','
116GTM-WTRG5G6
vendor: 4 bytes, line 116
116');
117}); 118</script>
118
118<script> 119LazyScriptLoader.register('ga', function() { 120 const script = document.createElement('script'); 121 script.src = 'https://www.googletagmanager.com/gtag/js?id=G-6E3K3S91QV'; 122 script.async = true; 123 script.onload = function() { 124
vendor: 159 bytes, lines 124-127
124window.dataLayer = window.dataLayer || []; 125 function gtag(){dataLayer.push(arguments);} 126 gtag('js', new Date()); 127 gtag('config', '
127G-6E3K3S91QV
vendor: 16 bytes, lines 127-128
127'); 128
128}; 129 document.head.appendChild(script); 130}, function() { 131 // Check consent for analytics cookies 132 if (typeof CookieMonster === 'undefined') return false; 133 const consent = window.beAcceptedCookiePolicies || '[]'; 134 return Array.isArray(consent) && consent.indexOf('analytics') !== -1; 135}); 136</script>
136 <link rel="preload" href="https://fonts.profitroom.com/cormorant-garamond/websites/300-400-600.css" as="style"> <link rel="stylesheet" href="https://fonts.profitroom.com/cormorant-garamond/websites/300-400-600.css" media="print" onload="this.media='all'"> <link rel="stylesheet" href="/templates/glasgowgrosvenorhotel/0.3790eb79.css"><link rel="stylesheet" href="/templates/glasgowgrosvenorhotel/app.6feda7a4.css"> <link rel="preload" href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/767x880/17082741056012_glasgowgrosvenordeluxeroom02.jpg" as="image" media="(max-width: 767px)"> <link rel="preload" href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1023x680/17082741056012_glasgowgrosvenordeluxeroom02.jpg" as="image" media="(max-width: 1023px)"> <link rel="preload" href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1366x780/17082741056012_glasgowgrosvenordeluxeroom02.jpg" as="image" media="(max-width: 1366px)"> <link rel="preload" href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1920x870/17082741056012_glasgowgrosvenordeluxeroom02.jpg" as="image" media="(min-width: 1366.01px)"> <link rel="canonical" href="https://www.gghotel.co.uk/rooms"/> <link rel="alternate" href="https://www.gghotel.co.uk/rooms" hreflang="en"> <link rel="icon" type="image/png" sizes="16x16" href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/17091319022503/favicon16x16.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/17091319022503/favicon32x32.png"> <link rel="apple-touch-icon" sizes="180x180" href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/17091319022503/favicon180x180.png"> <meta name="format-detection" content="telephone=no"> <meta name="google" content="notranslate"><meta name="description" content="Explore our comfortable rooms and suites at the Glasgow Grosvenor Hotel. From classic doubles to the King One Bedroom Suite â book direct for the best price."><meta property="og:title" content="Hotel Rooms & Suites | Glasgow Grosvenor Hotel"> <meta property="og:description" content="Explore our comfortable rooms and suites at the Glasgow Grosvenor Hotel. From classic doubles to the King One Bedroom Suite â book direct for the best price."> <meta property="og:image" content="https://r.profitroom.pl/glasgowgrosvenorhotel/images/202201201108580.grosvenor_hotel1.jpg"> <meta name="google-site-verification" content="wB8XvTNSvbl1oPnvw496xe8U5qsbOS7U4GYRuBGNlo8" />
vendor: 114 bytes, line 136
136 <script data-cookie-consent="analytics" type="text/plain" async src="https://www.googletagmanager.com/gtag/js?id=
136AW-11561738546
vendor: 12 bytes, line 136
136"></script>
136<script data-cookie-consent="analytics" type="text/plain" > 137
vendor: 134 bytes, lines 137-141
137window.dataLayer = window.dataLayer || []; 138 function gtag(){dataLayer.push(arguments);} 139 gtag('js', new Date()); 140 141 gtag('config', '
141AW-11561738546
vendor: 4 bytes, line 141
141');
142</script>
142 <meta name="google-site-verification" content="QcjmCPOdtKiMQNjlrKOGc_h_3aDCl7tjKD0iKNpC87c" /> </head> <body class="wa-site site-body wa-headings-color--h wa-paragraph-font wa-global-heading page-rooms en " data-page-id="965b7c73-ca36-4470-9c5e-1847972c84e7" data-site-id="10432" >
vendor: 68 bytes, line 142
142 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
142GTM-M8DR5J8
vendor: 83 bytes, line 142
142" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
142<div class="smoothscroll-container js-smoothscroll-container"> <div class="smoothscroll-container__inner"> <style type="text/css"> .wa-primary-color {color: #216D4C} .wa-primary-color--hover:hover {color: #216D4C} .wa-primary-color--before::before {color: #216D4C} .wa-primary-color--is-active.is-active {color: #216D4C} .wa-primary-border-color {border-color: #216D4C} .wa-primary-border-color--hover:hover {border-color: #216D4C} .wa-primary-border-color--before::before {border-color: #216D4C} .wa-primary-border-color--after::after {border-color: #216D4C} .wa-primary-border-top-color--after::after {border-top-color: #216D4C} .wa-primary-border-bottom-color--before::before {border-bottom-color: #216D4C} .wa-primary-border-bottom-color--after::after {border-bottom-color: #216D4C} .wa-primary-border-color--is-active.is-active {border-color: #216D4C} .wa-primary-background-color {background-color: #216D4C} .wa-primary-background-color--before::before {background-color: #216D4C} .wa-primary-background-color--after::after {background-color: #216D4C} .wa-primary-background-color--hover:hover {background-color: #216D4C} .wa-primary-background-color--is-active--before.is-active::before {background-color: #216D4C} .wa-button-link-primary::after {background-color: #216D4C} .wa-button-link-primary::before {background-color: #216D4C} .swiper-pagination-bullet {background-color: #216D4C} .t-content a:not([href^='tel:']):not([href^='mailto:']):not(.wa-button-link-primary):not(.navigation__subnav-link):not([href$='.pdf']):not([href$='.PDF']) {color:#216D4C} .t-content a[href$='.pdf']::before {color:#216D4C} .wa-secondary-color {color: #F6C296} .wa-secondary-color--is-active.is-active {color: #F6C296} .wa-secondary-color--after::after {color: #F6C296} .wa-secondary-color--hover:hover {color: #F6C296} .wa-secondary-color--before::before {color: #F6C296} .wa-secondary-border-color {border-color: #F6C296} .wa-secondary-border-color--before::before {border-color: #F6C296} .wa-secondary-border-color--after::after {border-color: #F6C296} .wa-secondary-border-color--hover:hover {border-color: #F6C296} .wa-secondary-border-color--hover--before:hover::before {border-color: #F6C296} .wa-secondary-background-color {background-color: #F6C296} .wa-secondary-background-color--before::before {background-color: #F6C296} .wa-secondary-background-color--after::after {background-color: #F6C296} .wa-secondary-background-color--hover:hover {background-color: #F6C296} .wa-secondary-background-color--before--hover::before:hover {background-color: #F6C296} .wa-secondary-background-color--is-active--before.is-active::before {background-color: #F6C296} .wa-secondary-background-color--hover--before:hover::before {background-color: #F6C296} .wa-secondary-background-color--hover--after:hover::after {background-color: #F6C296} .wa-headline-font { font-family: Cormorant Garamond !important} .wa-paragraph-font { font-family: Glacial Indifference !important} .wa-subheadline-font {font-family: Cormorant Garamond} </style> <header class="site-top js-check-scroll js-site-top"> <div class="site-top__main"> <div class="site-top__left"> <div class="site-top__socials site-top__bordered-item"> <div class="socials socials--header"> <ul class="socials__list socials__list--header"> <li class="socials__item socials__item--header"> <a href="https://www.facebook.com/glasgowgrosvenorhotel" rel="nofollow" title="facebook" class="socials__link socials__link--header " target="_blank"> <span class="socials__icon socials__icon--facebook icon icon-facebook "></span> <span class="sr-only">facebook</span> </a> </li> <li class="socials__item socials__item--header"> <a href="https://www.instagram.com/glasgowgrosvenorhotel/" rel="nofollow" title="instagram" class="socials__link socials__link--header " target="_blank"> <span class="socials__icon socials__icon--instagram icon icon-instagram "></span> <span class="sr-only">instagram</span> </a> </li> </ul> </div> </div> </div> <div class="site-top__center"> <div class="site-top__navigation site-top__bordered-item"> <nav class="nav-primary-hld"> <div class="nav-primary-split"> <ul class="nav-primary-split__part nav-primary-split__part--left"> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/the-hotel" > <span class="nav-primary-split__text " data-menu-page="3550375">The Hotel </span> </a> </li> <li class="nav-primary-split__item"> <a class="nav-primary-split__link is-active " href="/rooms" > <span class="nav-primary-split__text " data-menu-page="4293629">Rooms </span> </a> </li> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/offers" > <span class="nav-primary-split__text " data-menu-page="3836973">
142Offers </span> </a> </li> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/loyalty-club-glasgow-grosvenor-hotel-free-to-join" > <span class="nav-primary-split__text " data-menu-page="4602133">Loyalty </span> </a> </li> </ul> <div class="nav-primary-split__logo-hld"> <a class="nav-primary-split__logo" aria-label="Glasgow Grosvenor Hotel - Homepage" href="/" data-menu-page="4303705"> <img fetchpriority="high" width="160" height="162" src="/templates/glasgowgrosvenorhotel/images/logo-svg.svg" alt="logo Glasgow Grosvenor Hotel"> </a> </div> <ul class="nav-primary-split__part nav-primary-split__part--right"> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/events" > <span class="nav-primary-split__text " data-menu-page="4107115">Events </span> </a> </li> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/festive-event-programme" > <span class="nav-primary-split__text " data-menu-page="4594409">Festive Parties </span> </a> </li> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/dining" > <span class="nav-primary-split__text " data-menu-page="4107151">Dining </span> </a> </li> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/gift-vouchers" > <span class="nav-primary-split__text " data-menu-page="3550359">Vouchers </span> </a> </li> <li class="nav-primary-split__item"> <a class="nav-primary-split__link " href="/contact-us" > <span class="nav-primary-split__text " data-menu-page="3550371">Contact </span> </a> </li> </ul> </div> </nav> </div> <div class="site-top__logo-hld"> <a class="site-top__logo" aria-label="Glasgow Grosvenor Hotel - Homepage" href="/" data-menu-page="4303705"> <img fetchpriority="high" width="160" height="162" src="/templates/glasgowgrosvenorhotel/images/logo-svg.svg" alt="logo Glasgow Grosvenor Hotel"> </a> </div> </div> <div class="site-top__right"> <div class="site-top__language site-top__bordered-item"> <div class="lang-dropdown lang-dropdown--header"> <div class="lang-dropdown__current"> <span class="text">EN</span> </div> </div> </div> <div class="site-top__hamburger"> <div class="site-top__hamburger"> <button class="hamburger js-toggle-menu"> <span class="hamburger__icon-hld"> <span class="hamburger__icon"> <span></span> <span></span> <span></span> </span> </span> <span class="hamburger__text">Menu</span> </button> </div> </div> </div> </div> </header> <header class=" site-top-scroll js-scroll-header js-check-mobile-scroll js-site-top-mobile js-site-top-scroll"> <div class="site-top-scroll__main l-wrapper"> <div class="site-top-scroll__left"> <a class="site-top-scroll__logo" href="/" data-menu-page="4303705"> <img width="40" height="47" class="js-lazy" src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="/templates/glasgowgrosvenorhotel/images/sygnet-svg--white.svg" alt="logo Glasgow Grosvenor Hotel"> </a> <div class="site-top-scroll__language"> <div class="lang-dropdown lang-dropdown--header"> <div class="lang-dropdown__current"> <span class="text">EN</span> </div> </div> </div> </div> <div class="site-top-scroll__right"> <div class="site-top-scroll__navigation"> <nav class="nav-primary-hld"> <ul class="nav-primary"> <li class="nav-primary__item"> <a class="nav-primary__link " href="/the-hotel" > <span class="nav-primary__text " data-menu-page="3550375">The Hotel </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link is-active " href="/rooms" > <span class="nav-primary__text " data-menu-page="4293629">Rooms </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link " href="/offers" > <span class="nav-primary__text " data-menu-page="3836973">Offers </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link " href="/loyalty-club-glasgow-grosvenor-hotel-free-to-join" > <span class="nav-primary__text " data-menu-page="4602133">Loyalty </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link " href="/events" > <span class="nav-primary__text " data-menu-page="4107115">Events </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link " href="/festive-event-programme" > <span class="nav-primary__text " data-menu-page="4594409">Festive Parties </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link " href="/dining" > <span class="nav-primary__text " data-menu-page="4107151">Dining </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link " href="/gift-vouchers" > <span class="nav-primary__text " data-menu-page="3550359">Vouchers </span> </a> </li> <li class="nav-primary__item"> <a class="nav-primary__link " href="/contact-us" > <span class="nav-primary__text " data-menu-page="3550371">Contact </span> </a> </li> </ul> </nav> </div> <button class="site-top-scroll__booking-btn site-btn wa-secondary-border-color--hover wa-secondary-color--hover js-open-upper js-open-upper"> <span class="text ">Book online</span> </button> <div class="site-top-scroll__hamburger"> <button class="hamburger js-toggle-menu"> <span class="hamburger__icon-hld"> <span class="hamburger__icon"> <span></span> <span></span> <span></span> </span> </span> <span class="hamburger__text">Menu</span> </button> </div> </div> </div> </header> <div class="slide-menu js-navigation"> <div class="slide-menu__outer"> <div class="slide-menu__top"> <div class="slide-menu__top-left"> <div class="slide-menu__lang"> <div class="lang-dropdown lang-dropdown--slide-menu"> <div class="lang-dropdown__current"> <span class="text">EN</span> </div> </div> </div> </div> <div class="slide-menu__top-right"> <button class="slide-menu-icon js-toggle-menu"> <span class="slide-menu-icon__icon-hld"> <span class="slide-menu-icon__icon"> <span></span> <span></span> </span> </span> </button> </div> </div> <div class="slide-menu__inner"> <nav class="slide-menu__menu"> <ul class="slide-menu__ul js-nav-animation"> <li class="slide-menu__li navigation__li--homepage"> <a class="slide-menu__link wa-headline-font " href="/"> <span class="text">Homepage</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/the-hotel" > <span class="text">The Hotel</span> </a> </li> <li class="slide-menu__li is-active wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/rooms" > <span class="text">Rooms</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/offers" > <span class="text">Offers</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/loyalty-club-glasgow-grosvenor-hotel-free-to-join" > <span class="text">Loyalty</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/events" > <span class="text">Events</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/festive-event-programme" > <span class="text">Festive Parties</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/dining" > <span class="text">Dining</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/gift-vouchers" > <span class="text">Vouchers</span> </a> </li> <li class="slide-menu__li wa-secondary-color--is-active wa-secondary-color--hover"> <a class="slide-menu__link wa-headline-font" href="/contact-us" > <span class="text">Contact</span> </a> </li> </ul> </nav> </div> <div class="slide-menu__bottom"> <div class="slide-menu__bottom-inner"> <div class="slide-menu__socials"> <div class="socials socials--slide-menu"> <ul class="socials__list socials__list--slide-menu"> <li class="socials__item socials__item--slide-menu"> <a href="https://www.facebook.com/glasgowgrosvenorhotel" rel="nofollow" title="facebook" class="socials__link socials__link--slide-menu " target="_blank"> <span class="socials__icon socials__icon--facebook icon icon-facebook "></span> <span class="sr-only">facebook</span> </a> </li> <li class="socials__item socials__item--slide-menu"> <a href="https://www.instagram.com/glasgowgrosvenorhotel/" rel="nofollow" title="instagram" class="socials__link socials__link--slide-menu " target="_blank"> <span class="socials__icon socials__icon--instagram icon icon-instagram "></span> <span class="sr-only">instagram</span> </a> </li> </ul> </div> </div> </div> </div> </div> </div> <div data-component-id='27853713' > <section class="banner js-banner-slider-holder" > <div class="slider-video"> <div class="slider-video__inner swiper-container js-banner-slider"> <div class="swiper-wrapper"> <div class="slider-video__background cvr-pic swiper-slide"> <picture class="cvr-pic"> <source srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/767x880/17082741056012_glasgowgrosvenordeluxeroom02.jpg" media="(max-width: 767px)"> <source srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1023x680/17082741056012_glasgowgrosvenordeluxeroom02.jpg" media="(max-width: 1023px)"> <source srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1366x780/1
1427082741056012_glasgowgrosvenordeluxeroom02.jpg" media="(max-width: 1366px)"> <img class="cvr-pic__img" src="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1920x870/17082741056012_glasgowgrosvenordeluxeroom02.jpg" alt="image" fetchpriority="high"> </picture> </div> <div class="slider-video__background cvr-pic swiper-slide"> <picture class="cvr-pic"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 767px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/767x880/17144906372547_classicguestroom2.jpg"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 1023px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1023x680/17144906372547_classicguestroom2.jpg"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 1366px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1366x780/17144906372547_classicguestroom2.jpg"> <img class="js-lazy cvr-pic__img" src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1920x870/17144906372547_classicguestroom2.jpg" alt="image"> </picture> </div> <div class="slider-video__background cvr-pic swiper-slide"> <picture class="cvr-pic"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 767px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/767x880/17082741118572_glasgowgrosvenordeluxeroom07.jpg"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 1023px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1023x680/17082741118572_glasgowgrosvenordeluxeroom07.jpg"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 1366px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1366x780/17082741118572_glasgowgrosvenordeluxeroom07.jpg"> <img class="js-lazy cvr-pic__img" src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1920x870/17082741118572_glasgowgrosvenordeluxeroom07.jpg" alt="image"> </picture> </div> <div class="slider-video__background cvr-pic swiper-slide"> <picture class="cvr-pic"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 767px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/767x880/17144907601146_familyroomv3.jpg"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 1023px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1023x680/17144907601146_familyroomv3.jpg"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" media="(max-width: 1366px)" data-srcset="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1366x780/17144907601146_familyroomv3.jpg"> <img class="js-lazy cvr-pic__img" src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/1920x870/17144907601146_familyroomv3.jpg" alt="image"> </picture> </div> </div> </div> </div> <div class="banner__holder js-fadeup-banner"> <div class="hero "> <div class="hero__content"> <h1 class="hero__title wa-headline-font t-hero-title" > Guest Rooms </h1> <div class="hero__subtitle t-hero-subtitle wa-subheadline-font" > Relaxing stay in a historic hotel </div> </div> <div class="site-panel js-site-panel-month" data-month-name-1="jan" data-month-name-2="feb" data-month-name-3="mar" data-month-name-4="apr" data-month-name-5="may" data-month-name-6="jun" data-month-name-7="jul" data-month-name-8="aug" data-month-name-9="sep" data-month-name-10="oct" data-month-name-11="nov" data-month-name-12="dec"> <div class="site-panel__inner"> <div class="site-panel__box site-panel__box--arrival js-checkin-box "> <div class="site-panel__input-title"> Arrival </div> <div class="site-panel__box-inner"> <span class="site-panel-input wa-secondary-color--hover"> <div class="site-panel-input__date"> 28.09.2026 </div> <div class="site-panel-input__btn"> <span class="icon icon-triangle-down"></span> </div> </span>
142 <input type="hidden" class="js-input-checkin" name="checkin" value="28.09.2026"> </div> </div> <div class="site-panel__box site-panel__box--departure js-checkout-box"> <div class="site-panel__input-title"> Departure </div> <div class="site-panel__box-inner"> <span class="site-panel-input wa-secondary-color--hover"> <div class="site-panel-input__date"> 29.09.2026 </div> <div class="site-panel-input__btn"> <span class="icon icon-triangle-down"></span> </div> </span> <input type="hidden" class="js-input-checkout" name="checkout" value="29.09.2026"> </div> </div> <div class="site-panel__box site-panel__box--guests"> <div class="site-panel__input-title"> Adults </div> <div class="site-panel__box-inner"> <div class="site-panel__guests-hld wa-secondary-color--hover"> <span class="site-panel__change-number js-number-occupancy">2</span> <div class="site-panel__occupancy-controls"> <div class="site-panel__control-arrow site-panel__control-arrow--right js-add-occupancy"> <span class="icon icon-triangle-up"></span> </div> <div class="site-panel__control-arrow site-panel__control-arrow--left js-subtract-occupancy"> <span class="icon icon-triangle-down"></span> </div> </div> </div> <input class="js-value-occupancy js-input-occupancy" type="hidden" name="numguests" value="2"> </div> </div> <div class="site-panel__box site-panel__box--reserve-btn"> <button class="site-panel__button site-btn wa-secondary-border-color--hover wa-secondary-color--hover js-open-upper"> <span class="text wa-paragraph-font">Book online</span> </button> </div> </div> </div> </div> </div> <div class="panel-mobile-three"> <div class="panel-mobile-three__col"> <a class="panel-mobile-three__link" href="/offers"> <span class="text">Offers</span> </a> </div> <div class="panel-mobile-three__col"> <button class="site-btn panel-mobile-three__booking-btn js-open-upper"> <span class="text wa-paragraph-font"> Book online </span> </button> </div> <div class="panel-mobile-three__col"> <a class="panel-mobile-three__link" href="/gallery"> <span class="text">Gallery</span> </a> </div> </div> </section> </div> <div data-component-id='27853715' > <section class="l-section l-section--intro-text"> <div class="l-wrapper "> <div class="intro-text"> <div class="intro-text__content t-section-paragraph t-section-paragraph--big" > <p>The Rooms & Suites at the Glasgow Grosvenor Hotel epitomise sophistication, offering an unparalleled experience in the heart of the city. Each meticulously designed space combines classic elegance with modern amenities, providing a haven of comfort for all travellers.</p> </div> </div> </div> </section> </div> <section class="l-section l-section--rooms-listing"> <div class="l-wrapper"> <div class="rooms-listing__wrap"> <div class="rooms-listing js-filter__load-box"> <div class="loader-box"> <div class="loader-box__loader"> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> <div class="wa-secondary-background-color--after"></div> </div> </div> <div class="rooms-listing__holder"> <a href="https://www.gghotel.co.uk/rooms/double-guest-room" data-menu-page="3836965" class="room-item-horizontal room-item-horizontal--listing js-filter__load-item " data-category="" aria-label="Double Guest Room see details"> <div class="room-item-horizontal__inner "> <div class="room-item-horizontal__img-box "> <div class="room-item-ribbon-hld room-item-ribbon-hld--photo ribbon-hld"> <div class="room-item-ribbon ribbon " style="background-color: #A8A091;"> <span class="text "> Bestseller </span> </div> </div> <div class="room-item-horizontal__img-outer js-room-item-hld "> <picture class="room-item-horizontal__img-hld cvr-pic"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-srcset="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201119080.grosvenor_doubleguestroom1.jpg"/> <img id="room-img-50721" class="room-item-horizontal__img cvr-pic__img js-lazy " src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201119080.grosvenor_doubleguestroom1.jpg" alt="Double Guest Room"> </picture> </div> </div> <div class="room-item-horizontal__text-box "> <div class="room-item-horizontal__title-hld"> <h2 class="room-item-horizontal__title t-section-title t-section-title--small wa-headline-font" role="presentation"> Double Guest Room </h2> </div> <div class="room-item-horizontal__special-info "> <div class="room-item-horizontal__special-info-item "> <span class="icon icon-os" aria-hidden="true"></span> <div class="room-item-horizontal__special-info-text"> <span class="text t-content wa-subheadline-font t-section-subtitle"> Maximum 2 Guests </span> </div> </div> </div> <div class="room-item-horizontal__description t-content t-section-paragraph"> LCD TV, WiFi, work desk and chair Experience a comfortable stay in this stylish room, wit... </div> <div class="room-item-horizontal__buttons "> <button class='room-item-horizontal__booking-btn room-item-horizontal__booking-btn--detail
142s section-btn wa-primary-background-color--before wa-primary-background-color--after' tabindex="-1" aria-hidden="true"> <span class="text " >see the details</span> </button> </div> </div> </div> </a> <a href="https://www.gghotel.co.uk/rooms/double-deluxe-room" data-menu-page="3836967" class="room-item-horizontal room-item-horizontal--listing js-filter__load-item " data-category="" aria-label="Double Deluxe Room see details"> <div class="room-item-horizontal__inner "> <div class="room-item-horizontal__img-box "> <div class="room-item-horizontal__img-outer js-room-item-hld "> <picture class="room-item-horizontal__img-hld cvr-pic"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-srcset="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201116370.grosvenor_doubledeluxe1.jpg"/> <img id="room-img-50723" class="room-item-horizontal__img cvr-pic__img js-lazy " src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201116370.grosvenor_doubledeluxe1.jpg" alt="Double Deluxe Room"> </picture> </div> </div> <div class="room-item-horizontal__text-box "> <div class="room-item-horizontal__title-hld"> <h2 class="room-item-horizontal__title t-section-title t-section-title--small wa-headline-font" role="presentation"> Double Deluxe Room </h2> </div> <div class="room-item-horizontal__special-info "> <div class="room-item-horizontal__special-info-item "> <span class="icon icon-os" aria-hidden="true"></span> <div class="room-item-horizontal__special-info-text"> <span class="text t-content wa-subheadline-font t-section-subtitle"> Maximum 2 Guests </span> </div> </div> </div> <div class="room-item-horizontal__description t-content t-section-paragraph"> Botanic Gardens view, period feature windows, more space, LCD TV, WiFi Take in charming v... </div> <div class="room-item-horizontal__buttons "> <button class='room-item-horizontal__booking-btn room-item-horizontal__booking-btn--details section-btn wa-primary-background-color--before wa-primary-background-color--after' tabindex="-1" aria-hidden="true"> <span class="text " >see the details</span> </button> </div> </div> </div> </a> <a href="https://www.gghotel.co.uk/rooms/two-double-bed-family-room" data-menu-page="3836969" class="room-item-horizontal room-item-horizontal--listing js-filter__load-item " data-category="" aria-label="Two Double Bed Family Room see details"> <div class="room-item-horizontal__inner "> <div class="room-item-horizontal__img-box "> <div class="room-item-horizontal__img-outer js-room-item-hld "> <picture class="room-item-horizontal__img-hld cvr-pic"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-srcset="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201121470.grosvenor_familiyroom1.jpg"/> <img id="room-img-50725" class="room-item-horizontal__img cvr-pic__img js-lazy " src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201121470.grosvenor_familiyroom1.jpg" alt="Two Double Bed Family Room"> </picture> </div> </div> <div class="room-item-horizontal__text-box "> <div class="room-item-horizontal__title-hld"> <h2 class="room-item-horizontal__title t-section-title t-section-title--small wa-headline-font" role="presentation"> Two Double Bed Family Room </h2> </div> <div class="room-item-horizontal__special-info "> <div class="room-item-horizontal__special-info-item "> <span class="icon icon-os" aria-hidden="true"></span> <div class="room-item-horizontal__special-info-text"> <span class="text t-content wa-subheadline-font t-section-subtitle"> Maximum 4 Guests </span> </div> </div> </div> <div class="room-item-horizontal__description t-content t-section-paragraph"> 2 double beds, more space, high floor, city view, larger bathroom, LCD TV, complimentary W... </div> <div class="room-item-horizontal__buttons "> <button class='room-item-horizontal__booking-btn room-item-horizontal__booking-btn--details section-btn wa-primary-background-color--before wa-primary-background-color--after' tabindex="-1" aria-hidden="true"> <span class="text " >see the details</span> </button> </div> </div> </div> </a> <a href="https://www.gghotel.co.uk/rooms/king-one-bedroom-suite" data-menu-page="3836971" class="room-item-horizontal room-item-horizontal--listing js-filter__load-item " data-category="" aria-label="King One Bedroom Suite see details"> <div class="room-item-horizontal__inner "> <div class="room-item-horizontal__img-box "> <div class="room-item-horizontal__img-outer js-room-item-hld "> <picture class="room-item-horizontal__img-hld cvr-pic"> <source srcset="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-srcset="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201125550.grosvenor_suite3.jpg"/> <img id="room-img-50727" class="room-item-horizontal__img cvr-pic__img js-lazy " src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="https://r.profitroom.com/glasgowgrosvenorhotel/images/rooms/202201201125550.grosvenor_suite3.jpg" alt="King One Bedroom Suite"> </picture> </div> </div> <div class="room-item-horizontal__text-box "> <div class="room-item-horizontal__title-hld"> <h2 class="room-item-horizontal__title t-section-title t-section-title--small wa-headline-font" role="presentation"> King One Bedroom Suite </h2> </div> <div class="room-item-horizontal__special-info "> <div class="room-item-horizontal__special-info-item "> <span class="icon icon-os" aria-hidden="true"></span> <div class="room-item-horizontal__special-info-text"> <span class="text t-content wa-subheadline-font t-section-subtitle"> Maximum 2 Guests </span> </div> </div> </div> <div class="room-item-horizontal__description t-content t-section-paragraph"> Separate living/dining area, sofa, city view, bathrobes, complimentary water and wifi Exp... </div> <div class="room-item-horizontal__buttons "> <button class='room-item-horizontal__booking-btn room-item-horizontal__booking-btn--detail
142s section-btn wa-primary-background-color--before wa-primary-background-color--after' tabindex="-1" aria-hidden="true"> <span class="text " >see the details</span> </button> </div> </div> </div> </a> </div> </div> </div> </div> </section> <div data-component-id='27853717' > <section class="l-section l-section--highlighters"> <div class="l-wrapper"> <div class="highlighters__decor"> <img class="cvr-pic__img js-lazy" src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="/templates/glasgowgrosvenorhotel/images/decor-2.svg" alt=""> </div> <h2 class="highlighters__title t-section-title wa-headline-font" > thank you for your booking </h2> <div class="highlighters__item-list " > <div class="highlighters__item highlighters__item--count-3 highlighters__item--count-3 "> <div data-component-id='27853719' > <div class="highlighters-item highlighters-item--count-3"> <div class="highlighters-item__top-holder"> <div class="highlighters-item__icon-hld " > <span class="highlighters-item__icon icon glasgowgrosvenorhotel-icon-percent " aria-hidden="true"></span> </div> <p class="highlighters-item__title wa-subheadline-font" > Lowest price </p> </div> <div class="highlighters-item__description t-section-paragraph" > <p>Only on our website</p> </div> </div> </div> </div> <div class="highlighters__item highlighters__item--count-3 highlighters__item--count-3 "> <div data-component-id='27853721' > <div class="highlighters-item highlighters-item--count-3"> <div class="highlighters-item__top-holder"> <div class="highlighters-item__icon-hld " > <span class="highlighters-item__icon icon glasgowgrosvenorhotel-icon-card " aria-hidden="true"></span> </div> <p class="highlighters-item__title wa-subheadline-font" > Confirmation </p> </div> <div class="highlighters-item__description t-section-paragraph" > <p>Immediate confirmation</p> </div> </div> </div> </div> <div class="highlighters__item highlighters__item--count-3 highlighters__item--count-3 "> <div data-component-id='27853723' > <div class="highlighters-item highlighters-item--count-3"> <div class="highlighters-item__top-holder"> <div class="highlighters-item__icon-hld " > <span class="highlighters-item__icon icon glasgowgrosvenorhotel-icon-security " aria-hidden="true"></span> </div> <p class="highlighters-item__title wa-subheadline-font" > Security </p> </div> <div class="highlighters-item__description t-section-paragraph" > <p>Security of transactions</p> </div> </div> </div> </div> </div> </div> </section> </div> <footer> <div class="footer-with-newsletter"> <div class="footer-with-newsletter__top l-wrapper"> <div class="footer-with-newsletter__col footer-with-newsletter__col--info"> <div class="footer-with-newsletter__adress-hld"> <div class="footer-with-newsletter__adress wa-subheadline-font t-footer-title"> <div class="footer-with-newsletter__adress-row"> <span class="text"> 1-9 Grosvenor Terrace </span> </div> <div class="footer-with-newsletter__adress-row"> <span class="text"> G12 0TA </span> <span class="text"> Glasgow </span> <span class="text"> GB </span> </div> </div> <div class="footer-with-navigation__find-us"> <div data-component-id='17291083' > <div class="footer-with-newsletter__link"> <a class="footer-navigation__link footer-navigation__link--underline" href='https://maps.app.goo.gl/XRWunVFUKk9gaG6z6' target='_blank' > <span > Find us </span> </a> </div> </div> </div> </div> <div class="footer-with-newsletter__navigation-hld"> <div data-component-id='17291037' > <div class="footer-navigation"> <ul class="footer-navigation__list" > <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/offers"> Offers </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/gallery"> Gallery </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link is-active" href="/rooms"> Rooms </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/dining"> Dining </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/gift-vouchers">
142 Vouchers </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/events"> Events </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/attractions"> Attractions </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/contact-us"> Contact </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/guest-reviews"> Guest Reviews </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="/terms-conditions"> Terms & Conditions </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/17388524621113_Environmental%20Sustainability%20Policy%20Glasgow%20Grosvenor%20Hotel.pdf"> Sustainability </a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link " href="https://wa-uploads.profitroom.com/glasgowgrosvenorhotel/17483625218732_Accessibility-guide.pdf"> Accessibility </a> </li> </ul> </div> </div> </div> </div> <div class="footer-with-newsletter__col footer-with-newsletter__col--nav-first"> <div class="footer-with-newsletter__contact"> <div class="footer-with-newsletter__contact-hld"> <a class="footer-with-newsletter__link footer-with-newsletter__link--email wa-subheadline-font t-footer-title" href="mailto:[email protected]" title="[email protected]"> <span class="text">[email protected]</span> </a> <a class="footer-with-newsletter__link footer-with-newsletter__link--contact" href="tel:+441413398811"> <span class="icon icon-phone"></span> <span class="text">+441413398811</span> </a> </div> <div class="footer-with-newsletter__socials-hld"> <div class="socials socials--footer"> <ul class="socials__list socials__list--footer"> <li class="socials__item socials__item--footer"> <a href="https://www.facebook.com/glasgowgrosvenorhotel" rel="nofollow" title="facebook" class="socials__link socials__link--footer wa-primary-color" target="_blank"> <span class="socials__icon socials__icon--facebook icon icon-facebook wa-primary-color"></span> <span class="sr-only">facebook</span> </a> </li> <li class="socials__item socials__item--footer"> <a href="https://www.instagram.com/glasgowgrosvenorhotel/" rel="nofollow" title="instagram" class="socials__link socials__link--footer wa-primary-color" target="_blank"> <span class="socials__icon socials__icon--instagram icon icon-instagram wa-primary-color"></span> <span class="sr-only">instagram</span> </a> </li> </ul> </div> </div> </div> <div class="footer-with-newsletter__newsletter-hld"> <div class="newsletter js-newsletter-holder" data-token="/contact/token" data-request="/contact/newsletter?lang=en" data-policy-title="Confirm sending the form" data-policy-info="By clicking the "CONFIRM" button, you agree to the processing of your personal data in order to process your inquiry" data-button-confirm="Confirm" data-button-cancel="Cancel" data-success-title="Confirm your registration" data-success-info="Check your mail. We have sent you a message asking you to confirm your e-mail address." data-server-error-title="Server error" data-server-error-info="Sorry, we can't process this application right now, reapply later" data-token-error-title="Problem occurred" data-token-error-info="Please send the form again" data-spam-error-title="Spam detected" data-spam-error-info="The message has not been sent" data-valid-error-title="The form contains errors" data-valid-error-field="Field" data-not-valid-email="has an invalid format" data-cannot-empty="shouldn't be empty" data-connect-error="Connection error has occurred" data-already-added-text="This e-mail address already subscribes to the newsletter." data-already-added-error-title="newsletter.already_added_error_title" data-captcha-error-title="Captcha validation failed" data-captcha-error-setup="Captcha is not set up correctly. Please contact the site administrator." data-captcha-error-validation="Captcha validation failed. Please try again." data-consent-url="/contact/newsletter/consent?lang=en" > <div class="newsletter__text-box"> <span class="newsletter__title t-footer-title wa-subheadline-font"> <div class="text">Subscribe to our newsletter</div> </span> </div> <div class="newsletter__form-box"> <form class="newsletter-form js-newsletter-form" action="#"> <div class="newsletter-form__inner"> <input class="js-newsletter__value newsletter-form__input wa-paragraph-font" type="email" name="email" data-name="E-mail" placeholder="Enter your e-mail*" required> <input class="js-newsletter__value newsletter-form__input" type="text" name="name321" placeholder="name" value="" autocomplete="off"> <button class="newsletter-form__button" type="submit" name="submit" aria-label="Sign up"> <span class="icon icon-arrow-2"></span> </button> </div> </form> </div> </div> </div> <div class="footer-with-newsletter__bottom"> <div class="footer-with-newsletter__row-bottom-left"> <div class="footer-with-newsletter__copy">©
142 Copyright 2023, 7 Hospitality Management Ltd.</div> <div data-component-id='17291041' > <div class="footer-navigation footer-navigation--bottom"> <ul class="footer-navigation__list footer-navigation__list--horizontal" > <li class="footer-navigation__item"> <a class="footer-navigation__link footer-navigation__link--underline " href="/privacy-policy"> Privacy Policy</a> </li> <li class="footer-navigation__item"> <a class="footer-navigation__link footer-navigation__link--underline manageCookieSettings" style="cursor:pointer;" onclick="openCookieModal();">Cookies settings</a> </li> </ul> </div> </div> <span class="created__info"> <span class="created__text">Created by: </span> <a class="created__link" href="https://www.profitroom.com" target="_blank" rel="nofollow"> <span class="icon icon-profitroom wa-primary-color"></span> </a> </span> </div> <div class="footer-with-newsletter__row-bottom-right"> <a class="footer-with-newsletter__logo" href="/" data-menu-page="4303705"> <img width="40" height="47" class="js-lazy" src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="/templates/glasgowgrosvenorhotel/images/sygnet-svg.svg" alt="logo Glasgow Grosvenor Hotel"> </a> <img width="60" height="75" class="footer-with-newsletter__logo green-tourism-silver js-lazy" src="/templates/glasgowgrosvenorhotel/images/img-blank.gif" data-src="/templates/glasgowgrosvenorhotel/images/Green-tourism-silver.jpg" alt="logo"/> </div> </div> </div> </div> </div> </footer> </div> </div>
142<script> 143 /* Global helper for inline JS (twig templates, onclick handlers) to get consent params */ 144 window.__getConsentData = function() { 145 if (!window.__cookieMonster || !window.__cookieMonster.getConsentParams) return {}; 146 var consentParams = window.__cookieMonster.getConsentParams(); 147 if (!consentParams) return {}; 148 var params = new URLSearchParams(consentParams); 149 var result = {}; 150 var tcf = params.get('tcf'); 151 var cs = params.get('cs'); 152 if (tcf) result.tcf = tcf; 153 if (cs) result.cs = cs; 154 return result; 155 }; 156 157 /* CRITICAL: 100+ footer templates call openCookieModal() via onclick handlers */ 158 /* e.g. <a class="manageCookieSettings" onclick="openCookieModal()"> */ 159 window.openCookieModal = function() { 160 if (window.__cookieMonster) { 161 window.__cookieMonster.displaySettings(); 162 } 163 }; 164 165 /* NOTE: v1 acceptOnlyRequiredCookies() and _acceptCookiesPolicy() are NOT reimplemented. 166 cookie-monster v2 Accept/Reject buttons handle the full consent pipeline internally 167 (writes all 3 cookies, updates GCM, dispatches events). The v1 setConsent() only writes 168 the legacy cookie and would create inconsistent state. */ 169 170 /* Fires when: (1) returning visitor â consent loaded from cookies during render() 171 (2) new consent â user clicks Accept/Reject/Save in cookie-monster UI */ 172 document.addEventListener('cookie-monster:cookie-exists', function() { 173 var consent = window.__cookieMonster ? window.__cookieMonster.getConsent() : ''; 174 var categories = consent ? consent.split(',') : []; 175 176 /* Synchronous global for hotel scripts that check window.beAcceptedCookiePolicies */ 177 window.beAcceptedCookiePolicies = categories; 178 179 /* localStorage compat for cross-tab sync indication (v1 uses `acceptedCategories` key) */ 180 try { 181 localStorage.setItem('cookiesManager', JSON.stringify({ acceptedCategories: categories })); 182 } catch(e) {} 183 184 /* Push to GTM dataLayer â matches BE7/Upper6 format for cross-product consistency. 185 v1 only pushed {event, cookieConsentCategory}; v2 adds consentState, tcfString, 186 compactConsent (same as BE7 determineDataForCookieConsent) */ 187 window.dataLayer = window.dataLayer || []; 188 var dataLayerEntry = { 189 'event': 'cookieConsent', 190 'cookieConsentCategory': categories 191 }; 192 if (window.__cookieMonster) { 193 /* Per-vendor consent state (e.g. {"755": {"1": true, "2": false}}) */ 194 var consentState = window.__cookieMonster.getConsentState ? window.__cookieMonster.getConsentState() : null; 195 if (consentState) { 196 dataLayerEntry.consentState = consentState; 197 } 198 /* TCF string + compact consent for cross-domain transfer */ 199 var consentParams = window.__cookieMonster.getConsentParams ? window.__cookieMonster.getConsentParams() : null; 200 if (consentParams) { 201 var params = new URLSearchParams(consentParams); 202 var tcf = params.get('tcf'); 203 var cs = params.get('cs'); 204 if (tcf) dataLayerEntry.tcf = tcf; 205 if (cs) dataLayerEntry.cs = cs; 206 } 207 } 208 window.dataLayer.push(dataLayerEntry); 209 210 /* Activate scripts gated by consent category */ 211 loadScriptsForConsent(categories); 212 213 /* Dispatch events for hotel scripts. 214 v1 sends CustomEvent with detail.acceptedCategories â must match */ 215 window.dispatchEvent(new CustomEvent('success-save-cookies', { 216 detail: { acceptedCategories: categories } 217 })); 218 window.dispatchEvent(new CustomEvent('load-cookies')); 219 220 /* Legacy GA activation hook (some hotel templates define window.activateGA) */ 221 if (typeof window.activateGA === 'function') { 222 window.activateGA(); 223 } 224 }); 225 226 /* Activate type="text/plain" scripts that match accepted consent categories. 227 Hotels use this pattern:
227<script type="text/plain" data-cookie-consent="marketing" src="..."> 228 When marketing category is accepted, the script is cloned as type="text/javascript" to execute. */ 229 function loadScriptsForConsent(acceptedCategories) { 230 var scripts = document.querySelectorAll('script[data-cookie-consent][type="text/plain"]'); 231 scripts.forEach(function(script) { 232 var category = script.getAttribute('data-cookie-consent'); 233 if (acceptedCategories.indexOf(category) !== -1) { 234 var newScript = document.createElement('script'); 235 /* Copy ALL attributes from original (async, defer, data-*, id, crossorigin, etc.) */ 236 Array.from(script.attributes).forEach(function(attr) { 237 newScript.setAttribute(attr.name, attr.value); 238 }); 239 /* Override type from "text/plain" to "text/javascript" to enable execution */ 240 newScript.type = 'text/javascript'; 241 /* Copy inline content if no src */ 242 if (!script.src) { 243 newScript.textContent = script.textContent; 244 } 245 script.parentNode.insertBefore(newScript, script.nextSibling); 246 script.parentNode.removeChild(script); 247 } 248 }); 249 } 250 251 /* Necessary scripts are strictly-necessary (GDPR) â they must run for every visitor 252 without consent. cookie-monster v2 lazy-inits on first user interaction, so the 253 cookie-monster:cookie-exists handler above can't be relied on to activate them. 254 Activate them here as soon as the DOM is ready, independent of consent state. 255 Once converted to text/javascript they no longer match loadScriptsForConsent's 256 [type="text/plain"] selector, so there is no double execution. */ 257 function activateNecessaryScripts() { 258 loadScriptsForConsent(['necessary']); 259 } 260 261 if (document.readyState === 'loading') { 262 document.addEventListener('DOMContentLoaded', activateNecessaryScripts); 263 } else { 264 activateNecessaryScripts(); 265 } 266</script>
266 <link rel="stylesheet" href="/cookie-monster/legacy.css?v=v3.41.22" media="print" onload="this.media='all'">
266<script src="/cookie-monster/legacy.js?v=v3.41.22" defer></script>
266 <style> .cm-container { --cm-primary-color: #216D4C; --cm-primary-hover: #216D4C; } </style>
266<script> 267 window.addEventListener('load', function() { 268 269 const init = () => { 270 if (window.__cookieMonster) return; 271 if (typeof CookieMonster !== 'undefined') { 272 window.__cookieMonster = new CookieMonster( 273 "glasgowgrosvenorhotel", 274 { 275 locale: "en", 276 legalName: "Nicol\u0027s\u0020Worsteds\u0020Limited", 277 mode: "config", 278 vendorConfig: {"siteKey":"glasgowgrosvenorhotel","gvlVersion":172,"categories":["necessary","analytics","marketing"],"vendors":[{"id":646,"name":"Profitroom","category":"analytics","gvlId":null,"policyUrl":"https:\/\/profitroom.com\/privacy-policy","isRequired":true,"purposes":[1,2,7,8,10]}],"purposes":{"1":{"category":"necessary","name":"Store and\/or access information on a device","description":"Cookies, device or similar online identifiers (e.g. login-based identifiers, randomly assigned identifiers, network based identifiers) together with other information (e.g. browser type and information, language, screen size, supported technologies etc.) can be stored or read on your device to recognise it each time it connects to an app or to a website, for one or several of the purposes presented here."},"2":{"category":"marketing","name":"Use limited data to select advertising","description":"Advertising presented to you on this service can be based on limited data, such as the website or app you are using, your non-precise location, your device type or which content you are (or have been) interacting with (for example, to limit the number of times an ad is presented to you)."},"3":{"category":"marketing","name":"Create profiles for personalised advertising","description":"Information about your activity on this service (such as forms you submit, content you look at) can be stored and combined with other information about you (for example, information from your previous activity on this service and other websites or apps) or similar users. This is then used to build or improve a profile about you (that might include possible interests and personal aspects). Your profile can be used (also later) to present advertising that appears more relevant based on your possible interests by this and other entities."},"4":{"category":"marketing","name":"Use profiles to select personalised advertising","description":"Advertising presented to you on this service can be based on your advertising profiles, which can reflect your activity on this service or other websites or apps (like the forms you submit, content you look at), possible interests and personal aspects."},"5":{"category":"marketing","name":"Create profiles to personalise content","description":"Information about your activity on this service (for instance, forms you submit, non-advertising content you look at) can be stored and combined with other information about you (such as your previous activity on this service or other websites or apps) or similar users. This is then used to build or improve a profile about you (which might for example include possible interests and personal aspects). Your profile can be used (also later) to present content that appears more relevant based on your possible interests, such as by adapting the order in which content is shown to you, so that it is even easier for you to find content that matches your interests."},"6":{"category":"marketing","name":"Use profiles to select personalised content","description":"Content presented to you on this service can be based on your content personalisation profiles, which can reflect your activity on this or other services (for instance, the forms you submit, content you look at), possible interests and personal aspects. This can for example be used to adapt the order in which content is shown to you, so that it is even easier for you to find (non-advertising) content that matches your interests."},"7":{"category":"analytics","name":"Measure advertising performance","description":"Information regarding which advertising is presented to you and how you interact with it can be used to determine how well an advert has worked for you or other users and whether the goals of the advertising were reached. For instance, whether you saw an ad, whether you clicked on it, whether it led y
278ou to buy a product or visit a website, etc. This is very helpful to understand the relevance of advertising campaigns."},"8":{"category":"analytics","name":"Measure content performance","description":"Information regarding which content is presented to you and how you interact with it can be used to determine whether the (non-advertising) content e.g. reached its intended audience and matched your interests. For instance, whether you read an article, watch a video, listen to a podcast or look at a product description, how long you spent on this service and the web pages you visit etc. This is very helpful to understand the relevance of (non-advertising) content that is shown to you."},"9":{"category":"marketing","name":"Understand audiences through statistics or combinations of data from different sources","description":"Reports can be generated based on the combination of data sets (like user profiles, statistics, market research, analytics data) regarding your interactions and those of other users with advertising or (non-advertising) content to identify common characteristics (for instance, to determine which target audiences are more receptive to an ad campaign or to certain contents)."},"10":{"category":"analytics","name":"Develop and improve services","description":"Information about your activity on this service, such as your interaction with ads or content, can be very helpful to improve products and services and to build new products and services based on user interactions, the type of audience, etc. This specific purpose does not include the development or improvement of user profiles and identifiers."},"11":{"category":"marketing","name":"Use limited data to select content","description":"Content presented to you on this service can be based on limited data, such as the website or app you are using, your non-precise location, your device type, or which content you are (or have been) interacting with (for example, to limit the number of times a video or an article is presented to you)."}},"specialFeatures":{"1":{"category":"marketing","name":"Use precise geolocation data","description":"With your acceptance, your precise location (within a radius of less than 500 metres) may be used in support of the purposes explained in this notice."},"2":{"category":"marketing","name":"Identify devices based on information actively requested","description":"With your acceptance, certain characteristics specific to your device might be requested and used to distinguish it from other devices (such as the installed fonts or plugins, the resolution of your screen) in support of the purposes explained in this notice."}},"consentTextOverrides":{"necessary":null,"marketing":null,"analytics":null,"main":null}}, 279 } 280 ); 281 282 const defaultDisabledParams = { 283 setDefaults: false, 284 }; 285 286 window.__cookieMonster.render(defaultDisabledParams); 287 } 288 }; 289 290 ['mouseover', 'scroll', 'touchstart', 'resize'].forEach(e => window.addEventListener(e, init, {once: true})); 291 }); 292</script>
292
292<script id="translations-data" type="application/json"> 293 { 294 "prevSlide": "Previous slide", 295 "nextSlide": "Next slide", 296 "paginationNext": "Slide to number", 297 "firstSlide": "First slide", 298 "lastSlide": "Last slide", 299 "contrastActivate": "Activate high contrast mode", 300 "contrastDeactivate": "Deactivate high contrast mode", 301 "changeTheContrast": "a11y.change_the_contrast", 302 "contrastMode": "High contrast mode", 303 "moreInformations": "More" 304 } 305</script>
305
305<script src="/templates/glasgowgrosvenorhotel/runtime.a97fdb09.js"></script>
305<script src="/templates/glasgowgrosvenorhotel/0.03ed5290.js"></script>
305<script src="/templates/glasgowgrosvenorhotel/app.4c0bc4c6.js"></script>
305
305<script src="/templates/glasgowgrosvenorhotel/mixpicker/locale/en.min.js"></script>
305
305<script defer src="//open.upperbooking.com/glasgowgrosvenorhotel/Booking.min.js?locale=en"></script>
305
305<script> 306 document.addEventListener('DOMContentLoaded', function () { 307 308 if (window.matchMedia("(max-width: 768px)").matches) { 309 return; 310 }; 311 312 const today = new Date(); 313 const tomorrow = new Date(); 314 tomorrow.setDate(today.getDate() + 1); 315 316 const formatDateWithZero = (str) => { 317 return String(str).padStart(2, '0'); 318 }; 319 320 const formatDate = (date) => { 321 const day = formatDateWithZero(date.getDate()); 322 const month = formatDateWithZero(date.getMonth() + 1); 323 const year = date.getFullYear(); 324 return `${day}.${month}.${year}`; 325 }; 326 327 const getMonthName = (date) => { 328 const monthIndex = date.getMonth(); 329 if (monthTranslations.length > 0) { 330 return monthTranslations[monthIndex]; 331 } else { 332 return formatDateWithZero(date.getMonth() + 1); 333 } 334 }; 335 336 const calcDatePatternSeparator = (inputValue) => { 337 if (inputValue.length === 0) return ''; 338 const lastChar = inputValue.charAt(inputValue.length - 1); 339 340 return /\p{L}|\p{N}|\s/u.test(lastChar) ? '' : lastChar; 341 }; 342 343 const updateDate = (input, boxSelector, date) => { 344 const box = input.closest(boxSelector); 345 if (!box) return; 346 347 const useShortYear = box.hasAttribute('data-short-year'); 348 input.value = formatDate(date); 349 350 const dayElement = box.querySelector('.js-input-hld__day-number'); 351 const monthElement = box.querySelector('.js-input-hld__month'); 352 const yearElement = box.querySelector('.js-input-hld__year'); 353 354 if (dayElement) 355 dayElement.textContent = formatDateWithZero(date.getDate()) + calcDatePatternSeparator(dayElement.textContent); 356 357 if (monthElement) 358 monthElement.textContent = getMonthName(date) + calcDatePatternSeparator(monthElement.textContent); 359 360 if (yearElement) { 361 yearElement.textContent = (useShortYear ? String(date.getFullYear()).slice(-2) : date.getFullYear()) + calcDatePatternSeparator(yearElement.textContent); 362 } 363 }; 364 365 const panelElement = document.querySelector('.js-site-panel-month'); 366 const monthTranslations = []; 367 368 if (panelElement && document.documentElement.lang !== 'ar') { 369 for (let i = 1; i <= 12; i++) { 370 const monthName = panelElement.getAttribute(`data-month-name-${i}`) || 371 panelElement.querySelector(`[data-month-name-${i}]`)?.getAttribute(`data-month-name-${i}`); 372 373 if (monthName) { 374 monthTranslations.push(monthName); 375 } else { 376 break; 377 } 378 } 379 }; 380 381 const checkinInputs = document.querySelectorAll('.js-input-checkin'); 382 const checkoutInputs = document.querySelectorAll('.js-input-checkout'); 383 384 checkinInputs.forEach((input) => { 385 updateDate(input, '.js-checkin-box', today); 386 }); 387 388 checkoutInputs.forEach((input) => { 389 updateDate(input, '.js-checkout-box', tomorrow); 390 }); 391 }); 392</script>
392 <link rel="stylesheet" href="/templates/glasgowgrosvenorhotel/icon-packages/glasgowgrosvenorhotel-icon/style.4ca10e2a.css">
392<script type="application/ld+json"> 393 {"@context":"https:\/\/schema.org","@type":"Hotel","name":"Glasgow Grosvenor Hotel","url":"https:\/\/www.gghotel.co.uk\/rooms","address":{"@type":"PostalAddress","streetAddress":"1-9 Grosvenor Terrace","addressLocality":"Glasgow","postalCode":"G12 0TA","addressCountry":"GB"},"geo":{"@type":"GeoCoordinates","latitude":55.8779297,"longitude":-4.2912426},"telephone":"+441413398811","email":"[email protected]","image":"https:\/\/r.profitroom.pl\/glasgowgrosvenorhotel\/images\/202201201108580.grosvenor_hotel1.jpg","logo":{"@type":"ImageObject","contentUrl":"https:\/\/r.profitroom.pl\/glasgowgrosvenorhotel\/images\/202201201134300.grosvenor_logo1.jpg"}} 394 </script>
394
394<script type="application/ld+json"> 395 {"@context":"https:\/\/schema.org","@type":"ItemList","url":"https:\/\/www.gghotel.co.uk\/rooms","numberOfItems":4,"itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"HotelRoom","name":"Double Guest Room","url":"https:\/\/www.gghotel.co.uk\/rooms\/double-guest-room","description":"LCD TV, WiFi, work desk and chair\r\nExperience a comfortable stay in this stylish room, with one double bed. Unwind and watch ...","image":"https:\/\/r.profitroom.com\/glasgowgrosvenorhotel\/images\/rooms\/202201201119080.grosvenor_doubleguestroom1.jpg","occupancy":{"@type":"QuantitativeValue","maxValue":2,"minValue":1}}},{"@type":"ListItem","position":2,"item":{"@type":"HotelRoom","name":"Double Deluxe Room","url":"https:\/\/www.gghotel.co.uk\/rooms\/double-deluxe-room","description":"Botanic Gardens view, period feature windows, more space, LCD TV, WiFi\r\nTake in charming views of the Botanic Gardens from th...","image":"https:\/\/r.profitroom.com\/glasgowgrosvenorhotel\/images\/rooms\/202201201116370.grosvenor_doubledeluxe1.jpg","occupancy":{"@type":"QuantitativeValue","maxValue":2,"minValue":1}}},{"@type":"ListItem","position":3,"item":{"@type":"HotelRoom","name":"Two Double Bed Family Room","url":"https:\/\/www.gghotel.co.uk\/rooms\/two-double-bed-family-room","description":"2 double beds, more space, high floor, city view, larger bathroom, LCD TV, complimentary WiFi\r\nWith two double beds, this roo...","image":"https:\/\/r.profitroom.com\/glasgowgrosvenorhotel\/images\/rooms\/202201201121470.grosvenor_familiyroom1.jpg","occupancy":{"@type":"QuantitativeValue","maxValue":4,"minValue":1},"additionalProperty":[{"@type":"PropertyValue","name":"Maximum extra beds","value":1}]}},{"@type":"ListItem","position":4,"item":{"@type":"HotelRoom","name":"King One Bedroom Suite","url":"https:\/\/www.gghotel.co.uk\/rooms\/king-one-bedroom-suite","description":"Separate living\/dining area, sofa, city view, bathrobes, complimentary water and wifi\r\nExperience the ultimate stay in this s...","image":"https:\/\/r.profitroom.com\/glasgowgrosvenorhotel\/images\/rooms\/202201201125550.grosvenor_suite3.jpg","occupancy":{"@type":"QuantitativeValue","maxValue":2,"minValue":1}}}]} 396 </script>
396
396<script>
vendor: 327 bytes, lines 396-400
396(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 397new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 398j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 399'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 400})(window,document,'script','dataLayer','
400GTM-T446LDBK
vendor: 3 bytes, line 400
400');
400</script>
vendor: 68 bytes, line 400
400 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
400GTM-T446LDBK
vendor: 83 bytes, line 400
400" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
400<script> 401 402 dataLayer.push({'sitekey': 'glasgowgrosvenorhotel'}); 403 404</script>
404
404<script> 405 406document.addEventListener('DOMContentLoaded', () => { 407 408var script = document.createElement('script'); 409 410 script.src = 'https://profitroom-livechat.fra1.digitaloceanspaces.com/widget-loader.js?siteKey=glasgowgrosvenorhotel'; 411 412 document.head.appendChild(script); 413 414}) 415 416</script>
416 </body> </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.