a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font-size:100%;font-family:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1.4}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}table{border-collapse:collapse;border-spacing:0}

* { -webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box; }

body { margin: 0;padding: 0;font-family: 'Stack Sans Headline',arial,tahoma,verdana;font-size: 16px;font-weight: 300;background: #fff;color: #000;overflow-x: hidden;position: relative;letter-spacing: 0.3px;top: 0 !important;word-break: break-word; }

.skiptranslate { display: none !important; }
#google_translate_element .skiptranslate { display: block !important; }

strong,b { font-weight: 500; }

p { margin-bottom: 16px; }

.page_width { max-width: 1600px;width: 100%;margin-left: auto;margin-right: auto; }

.mb_small { margin-bottom: 10px; }
.mb_med { margin-bottom: 20px; }
.mb_large { margin-bottom: 30px; }
.mb_vlarge { margin-bottom: 50px; }

img { max-width: 100%;height: auto; }

a { text-decoration: none;color: #000; }
a.un { text-decoration: underline; }

*:focus {outline:0px none transparent;}

/* Visible focus ring for keyboard users only (mouse clicks stay clean via the
   :focus reset above, which keyboard :focus-visible overrides as it comes later
   in the cascade). WCAG 2.4.7. */
*:focus-visible { outline: 3px solid #1a1a1a; outline-offset: 2px; border-radius: 2px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
[role="button"]:focus-visible, .link_button:focus-visible, .search_button:focus-visible { outline: 3px solid #1a1a1a; outline-offset: 2px; }

button,select,textarea,input { font-size: inherit;font-family: inherit;font-weight: 300;letter-spacing: inherit; }


/* headers */

h1,h2,h3,h4,h5 { font-weight: 300; }

h1.main { font-size: 28px;margin-bottom: 20px; }

.tac { text-align: center; }


/* layout */

#padded_wrapper { padding: 40px 0 100px;background: #f8f8f8; }


/* search */

.search_outer { display: inline-flex;background: #fff;border-radius: 50px;padding: 20px; }
.search_field { margin-right: 10px;display: flex; }
.search_field #search_dates { display: flex;align-items: center;background: #f5f5f5;padding: 14px 24px 14px 18px;cursor: pointer;width: 300px;border-radius: 30px;font-size: 14px; }
.search_field #search_dates img { max-width: 28px;display: block;margin-right: 10px; }

.search_field #search_guests { display: flex;align-items: center;justify-content: center;background: #f5f5f5;padding: 16px 5px 16px 5px;border-radius: 30px; }
.search_field #search_guests img { max-width: 28px;display: block;transition: all 0.25s ease;opacity: 0.5; }
.search_field #search_guests img:hover { opacity: 1; }
.search_field #search_guests img:first-child { margin-right: 10px; }
.search_field #search_guests img:last-child { margin-left: 10px; }
.search_field #search_guests #guests { text-align: center;width: 90px;font-size: 14px; }
.search_button { display: inline-flex;justify-content: center;align-items: center;border-radius: 30px;color: #fff;background: #6f6248;padding: 14px 36px;font-size: 14px;transition: all 0.25s ease;border: 0;cursor: pointer;flex-shrink: 0;white-space: nowrap; }
.search_button img { display: block;width: 20px;margin-right: 8px; }
.search_button:hover { background: #6f6248; }

.search_results_filter { display: flex;justify-content: center;margin-bottom: 25px; }
.search_results_filter .search_outer { background: none;box-shadow: none;border-radius: 0;padding: 0;display: inline-flex;align-items: stretch; }
.search_results_filter .search_field #search_dates { padding: 10px 18px 10px 14px;font-size: 13px; }
.search_results_filter .search_field #search_guests { padding: 10px 5px; }
.search_results_filter .search_field #search_guests #guests { font-size: 13px; }
.search_results_filter .search_button { padding: 10px 26px;font-size: 13px; }

.property_thumbnail a { display: block;padding: 0 12px; }
.property_thumbnail h3 { font-size: 16px;font-weight: 600;margin-bottom: 4px; }
.property_thumbnail .thumb_outer { border-radius: 20px;overflow: hidden;margin-bottom: 8px;position: relative; }
.property_thumbnail .thumb { padding-top: 65%;background-color: #eee;background-size: cover;background-position: center;background-repeat: no-repeat;position: relative;transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.property_thumbnail:hover .thumb { transform: scale(1.05); }

.recent_slider .slick-track { margin-left: 0; }
.recent_slider ul.slick-dots { position: absolute;bottom: -40px;left: 50%;transform: translateX(-50%);display: flex; }
.recent_slider ul.slick-dots li { margin: 0 5px; }
.recent_slider ul.slick-dots li button { border: 0;width: 8px;height: 8px;border-radius: 8px;background: #aaa;cursor: pointer;text-indent: -9999px; }
.recent_slider ul.slick-dots li.slick-active button { background: #6f6248; }

.search_result:hover { background-color: #fff; }
.search_result { margin-bottom: 10px;display: flex;flex-wrap: wrap;padding: 10px;background-color: #eee;transition: all 0.25s ease;position: relative;border-radius: 10px; }
.sr_rating_badge { position: absolute;top: 10px;right: 10px;display: flex;align-items: center;gap: 8px;z-index: 2;background: rgba(0,0,0,0.65);padding: 5px 8px 5px 12px;border-radius: 20px;box-shadow: 0 2px 6px rgba(0,0,0,0.3); }

.sr_discount_badge { position: absolute;top: 10px;right: 10px;z-index: 3;background: #e8f4ec;color: #21974A;font-size: 11px;font-weight: 600;letter-spacing: 0.3px;padding: 4px 10px;border-radius: 12px;line-height: 1; }
.sr_rating_label { font-size: 11px;font-weight: 600;color: #fff;text-transform: uppercase;letter-spacing: 0.4px; }
.sr_rating_score { background: #003b95;color: #fff;font-size: 12px;font-weight: 700;padding: 4px 7px;border-radius: 6px;line-height: 1; }
.search_result .srleft { width: 25%; }
.search_result .srleft .srleft_link { display: block;text-decoration: none;color: inherit; }
.search_result .srleft .thumb { padding-top: 65%;background-color: #eee;background-size: cover;background-position: center;background-repeat: no-repeat;margin-bottom: 8px;position: relative;border-radius: 5px; }
.search_result .srright { width: 75%;padding-left: 28px; }
.search_result .srright h2 { font-size: 16px;margin-bottom: 8px; }
.search_result .srright p { margin-bottom: 8px;font-size: 13px; }
.search_result .srright .options_row { display: flex; }
.search_result .srright .options_row .opt { display: block;border-radius: 30px;padding: 5px 20px;color: #fff;background: #6f6248;font-size: 13px; }
.search_result .srright .options_row .opt:first-child { margin-right: 10px;background: #333; }

.search_result_on { background-color: #fff !important;box-shadow: 0 3px 6px #000c }


.map_wrapper { display: flex;flex-wrap: wrap;margin-bottom: 40px;position: relative; }
.map_wrapper .left { width: 65%; }
.map_wrapper .right #results_map { width: 100%;height: 100vh;border-radius: 10px;overflow: hidden; }
.map_wrapper .right { width: 35%;padding: 0 0 0 40px;position: sticky;top: 0;align-self: flex-start;min-height: 100vh; }

button.gm-ui-hover-effect { position: absolute !important;top: -10px;right: 6px;width: 32px !important;height: 32px !important; }
.gm-style .gm-style-iw-c { padding: 22px 26px 16px 16px !important; }
.gm-style-iw-ch { display: none !important; }
h3.map_total { font-size: 14px;font-weight: 600;margin-bottom: 10px; }
p.maplink_outer { margin: 0 0 5px;font-size: 13px;line-height: 1.4; }
p.maplink_outer a.maplink { color: #6f6248;text-decoration: underline; }
p.maplink_outer b { font-weight: 600; }


/* view */


/* Top row above the gallery: member-rate banner on the left (logged-out
   visitors only) + price headline / "Select dates" CTA on the right. Flex
   row that wraps on narrower screens. The price wrapper uses `margin-left:
   auto` so it stays right-aligned even when the left side is absent
   (logged-in visitors). */
/* Banner and price box stretch to the same height so the row reads as one
   unit; the price content centres vertically within the matched panel. */
.vw_top_row { display: flex;align-items: stretch;flex-wrap: wrap;gap: 16px 20px;margin-bottom: 30px; }
.vw_top_row .member_rate_banner { flex: 1 1 320px;margin-bottom: 0;display: flex;align-items: center; }
.vw_top_row .member_rate_banner .mrb_inner { flex: 1; }
.vw_top_row #property_price_headline_wrap { margin: 0 0 0 auto;display: flex;align-items: center; }
.vw_top_row .property_price_headline { margin: 0;align-self: stretch;align-items: center;align-content: center; }

.member_rate_banner { background: linear-gradient(135deg, #6f6248 0%, #574d37 100%);border-radius: 16px;padding: 18px 24px;margin-bottom: 30px; }
.member_rate_banner .mrb_inner { display: flex;align-items: center;justify-content: space-between;gap: 20px; }
.member_rate_banner .mrb_text { display: flex;align-items: center;gap: 12px;color: #fff;font-size: 14px;font-weight: 300; }
.member_rate_banner .mrb_text b { font-weight: 600; }
.member_rate_banner .mrb_icon { width: 24px;height: 24px;filter: brightness(0) invert(1);opacity: 0.9; }
.member_rate_banner .mrb_button { display: inline-block;background: #fff;color: #6f6248;padding: 10px 24px;border-radius: 30px;font-size: 13px;font-weight: 600;text-decoration: none;white-space: nowrap;transition: background 0.3s ease, transform 0.3s ease; }
.member_rate_banner .mrb_button:hover { background: #f5f5f5;transform: translateY(-1px); }

.view_wrapper { display: grid;grid-template-columns: 1fr 1fr;gap: 40px;grid-template-rows: auto auto 1fr;align-items: start; }
.view_wrapper .vw_left { min-width: 0;min-height: 0; }
.view_wrapper .vw_right { grid-column: 2;grid-row: 1/4; }

#view_map_content { width: 100%;height: 400px;border: 0;border-radius: 10px;overflow: hidden; }
#view_map_content iframe { height: 100%;width: 100%;border: 0; }

.gallery_grid { margin-bottom: 0px; }
.gallery_hero { display: block;border-radius: 16px;overflow: hidden;margin-bottom: 8px;position: relative; }
.gallery_hero .gallery_img { padding-top: 60%;background-size: cover;background-position: center;background-repeat: no-repeat;transition: opacity 0.3s ease; }
.gallery_hero:hover .gallery_img { opacity: 0.9; }
.gallery_thumbs { display: flex;gap: 10px; }
.gallery_thumb_item { display: block;flex: 1;border-radius: 12px;overflow: hidden;position: relative; }
.gallery_thumb_item .gallery_img { padding-top: 80%;background-size: cover;background-position: center;background-repeat: no-repeat;transition: opacity 0.3s ease; }
.gallery_thumb_item:hover .gallery_img { opacity: 0.9; }
.gallery_more { position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: #0006;color: #fff;display: flex;align-items: center;justify-content: center;font-size: 14px;font-weight: 600;pointer-events: none; }
.gallery_hidden { display: none; }

.slider_outer { padding-bottom: 40px;position: relative;width: 0;min-width: 100%; }
.main_slider a.main { display: block;background-color: #fff;background-size: contain;background-position: center;background-repeat: no-repeat;padding-top: 65%; }

.slide_arrow { position: absolute;bottom: -40px;z-index: 200; }
.slide_arrow img { display: block;width: 30px;transition: all 0.25s ease; }
.slide_arrow:hover img { opacity: 0.8; }
.slide_prev { left: 0;transform: scale(-1, -1); }
.slide_next { right: 0; }

.recent_slider_wrapper { position: relative; }
.recent_slider_wrapper .slide_arrow { top: 50%;margin-top: -20px;bottom: unset; }
.recent_slider_wrapper .slide_prev { left: -40px; }
.recent_slider_wrapper .slide_next { right: -40px; }

.slide_pager { position: absolute;bottom: 6px;left: 50%;transform: translateX(-50%); }

#total_prices { padding: 20px 30px;margin-bottom: 30px;background: #fff;position: relative; }
#total_prices .loading { display: flex;align-items: center; }
#total_prices .loading span { display: block;margin-right: 10px; }

#total_overlay { z-index: 12;position: absolute;top: 0;bottom: 0;left: 0;right: 0;background-color: #fffc; }

ul.prices_all { margin-bottom: 18px; }
ul.prices_all li { display: flex;justify-content: space-between;margin-bottom: 8px; }
ul.prices_all li span:nth-child(even){ font-weight: 500; }

ul.main_stats { margin-bottom: 30px;display: flex;flex-wrap: wrap;border-radius: 10px;overflow: hidden; }
ul.main_stats li { display: flex;align-items: center;width: 33.33%;background: #fff;padding: 10px 15px; }
ul.main_stats li img { display: block;max-width: 80px;max-height: 32px;margin-right: 10px; }
ul.main_stats li b { display: block; }

img.fliphz { transform: scaleX(-1); }

#main_amenities { margin-bottom: 30px;background: #fff;padding: 20px 30px;border-radius: 10px;overflow: hidden; }
#main_amenities ul { display: flex;flex-wrap: wrap;list-style: disc;padding: 0 10px; }
#main_amenities ul li { width: 50%;margin-bottom: 6px;font-size: 14px; }

#check_availability { padding: 16px 20px;background: #fff;border-radius: 10px;overflow: hidden; }
#check_availability h2 { margin-bottom: 10px;text-align: center;font-size: 14px;font-weight: 500; }

p.check_error { text-align: center;color: #c00;font-weight: 500; }


/* booking */

#booking_main { display: flex;flex-wrap: wrap; }

#booking_main .bleft { width: 70%; }
#booking_main .bright { width: 30%;padding-left: 40px; }

#booking_summary { background: #fff;padding: 20px 30px;margin-bottom: 30px; }
#booking_summary h2 { font-size: 16px;margin-bottom: 14px; }

#booking_summary .bs { border-bottom: 1px dotted #aaa;margin-bottom: 10px;padding-bottom: 10px; }
#booking_summary .bs h3 { font-size: 14px;font-weight: 500;margin-bottom: 4px; }
#booking_summary .bs a { color: #4099CC;text-decoration: underline; }

.split_row { display: flex;flex-wrap: wrap;justify-content: space-between;margin-bottom: 5px; }

.guest_block { margin-bottom: 30px;border: 1px dotted #6f6248;padding: 20px 30px; }
.guest_block h2 { margin-bottom: 16px;border-bottom: 1px dotted #6f6248;font-size: 16px;padding-bottom: 4px;color: #8c8068; }

ul.guest_list { padding: 4px 0 0 10px; }
ul.guest_list li { margin-bottom: 6px;padding-left: 18px;position: relative; }
ul.guest_list li img { position: absolute;left: 0;top: 50%;transform: translateY(-50%);width: 12px; }


.missing { color: #c00;margin-left: 8px; }

.payment_form_row { display: flex;flex-wrap: wrap;margin-bottom: 12px;align-items: center; }
.payment_form_row .left { width: 35%;padding-right: 12px; }
.payment_form_row .right { width: 65%; }

.checkbox_row { background: #e7d8bc;padding: 15px 15px 15px 42px;position: relative; }
.checkbox_row input { position: absolute;top: 18px;left: 15px; }

.verify_payment_check { padding: 20px;background: #eee;margin-bottom: 20px;display: flex;justify-content: center; }

.verifyloader { width: 50px;margin: auto;--b: 8px;aspect-ratio: 1;border-radius: 50%;padding: 1px;background: conic-gradient(#0000 10%,#6f6248) content-box;-webkit-mask: repeating-conic-gradient(#0000 0deg,#000 1deg 20deg,#0000 21deg 36deg),radial-gradient(farthest-side,#0000 calc(100% - var(--b) - 1px),#000 calc(100% - var(--b)));-webkit-mask-composite: destination-in;mask-composite: intersect;animation:l4 1s infinite steps(10);
}
@keyframes l4 {to{transform: rotate(1turn)}}

#didit_wrapper { display: flex;flex-wrap: wrap;width: 100%; }
#didit_wrapper #dleft { width: 70%;padding-right: 50px; }
#didit_wrapper #dright { width: 30%; }
#didit_wrapper #dright img { display: block; }

/* account */

#login_form_wrapper { width: 100%;max-width: 500px;margin: auto;background: #fff;box-shadow: 0 2px 4px #ddd;padding: 20px 30px; }
#login_form_wrapper h1 { font-size: 20px;margin-bottom: 16px;text-align: center; }

.login_option_row { margin-bottom: 16px; }

a.remember_wrapper { display: flex;justify-content: center;align-items: center; }
a.remember_wrapper .box { width: 22px;height: 22px;border: 2px solid #333;display: flex;justify-content: center;align-items: center;margin-right: 10px; }
a.remember_wrapper .box img { opacity: 0;transition: all 0.25s ease;display: block; }
a.remember_wrapper .box img.on { opacity: 1; }

a.third_party_signin { display: flex;margin-bottom: 16px;align-items: center;border-radius: 6px;color: #fff;padding: 8px;transition: all 0.3s ease; }
a.third_party_signin .signin { flex: 1 1 0;font-size: 14px;text-align: center; }
a.third_party_signin .logo { width: 64px;height: 64px;background: #fff;border-radius: 4px;display: flex;justify-content: center;align-items: center; }
a.third_party_signin .logo img { width: 48px; }

a.google_signin { background: #6f6248; }
a.facebook_signin { background: #0266ff; }

a.third_party_signin:hover { opacity: 0.8; }

.account_form_divider_small { position: relative;height: 16px;margin-bottom: 10px; }
.account_form_divider_small:before { position: absolute;width: 100%;height: 1px;background: #ccc;top: 50%;left: 0;content: ""; }

.account_form_divider { position: relative;height: 36px;display: flex;justify-content: center;align-items: center;margin-bottom: 16px; }
.account_form_divider span { background: #fff;padding: 0 10px;position: relative;z-index: 10; }
.account_form_divider:before { position: absolute;width: 100%;height: 1px;background: #ccc;top: 50%;left: 0;content: ""; }

.account_field_wrapper { border: 2px solid #333;padding: 4px;position: relative;margin-bottom: 10px;border-radius: 4px; }
.account_field_wrapper input { border: 0;padding: 14px;font-family: inherit;font-size: 14px;background: #fff;color: #000;width: 100%; }
.account_field_wrapper a { display: block;position: absolute;right: 20px;top: 50%;transform: translateY(-50%);width: 24px; }
.account_field_wrapper a img { display: block; }

.cb_row { padding-left: 30px;position: relative;margin-bottom: 20px; }
.cb_row input { position: absolute;left: 0;top: 0; }



button.account_button { font-family: inherit;font-size: 14px;background: #333;color: #fff;border-radius: 30px;padding: 16px;width: 100%;border: 0;cursor: pointer;margin-bottom: 16px;transition: all 0.3s ease;display: flex;justify-content: center;align-items: center; }
button.account_button:hover { opacity: 0.8; }
button.account_button img { display: block;margin-right: 10px;width: 30px;filter: invert(100%); }

a.account_button { font-family: inherit;font-size: 14px;background: #6f6248;color: #fff;border-radius: 30px;padding: 16px;width: 100%;border: 0;cursor: pointer;margin-bottom: 16px;transition: all 0.3s ease;text-align: center;display: block; }
a.account_button:hover { opacity: 0.8; }


#login_form_wrapper p,#reg_form_wrapper p { margin-bottom: 16px;text-align: center; }


#reg_form_wrapper { width: 100%;max-width: 1000px;margin: auto;background: #fff;box-shadow: 0 2px 4px #ddd;padding: 20px 30px; }
#reg_form_wrapper h1 { font-size: 24px;margin-bottom: 18px;text-align: center; }

#reg_form_inner { display: flex;flex-wrap: wrap;margin-bottom: 20px; }
#reg_form_inner .left { width: 55%;margin-right: 2.5%;padding-right: 2.5%;border-right: 1px solid #ccc; }
#reg_form_inner .right { width: 42.5%; }

#reg_form_errors p,#login_form_errors p,#social_errors p { color: #ed1e24;margin-bottom: 20px;text-align: left; }
#reg_form_errors p span,#login_form_errors p span,#social_errors p span { display: block;position: relative;padding-left: 14px; }
#reg_form_errors p span img,#login_form_errors p span img,#social_errors p span img { display: block;position: absolute;width: 8px;height: auto;left: 0;top: 50%;transform: translateY(-50%); }


#password_conditions ul {  }
#password_conditions ul li { margin: 0 0 4px 0;font-size: 12px;position: relative;padding-left: 16px; }

.reset_step_1 { text-align: center; }
.reset_step_1 img { display: block;width: 60px;margin: 0 auto 20px; }


#account_wrapper { display: flex;flex-wrap: wrap; }
#account_wrapper #account_left { width: 25%;padding-right: 50px; }
#account_wrapper #account_left h2 { font-size: 20px;margin-bottom: 18px; }

#account_wrapper #account_right { width: 75%; }
#account_wrapper #account_right h3 { font-size: 24px;margin-bottom: 18px; }

ul#account_menu { margin-bottom: 30px; }
ul#account_menu li { margin-bottom: 4px; }
ul#account_menu li a { display: block;background: #eee;padding: 18px 26px 18px 26px;position: relative;transition: all 0.25s ease;border-radius: 30px; }
ul#account_menu li a:hover { background: #6f6248; }


.account_form_section { background: #fff;padding: 20px;margin-bottom: 18px; }

.account_form_row { display: flex;flex-wrap: wrap;margin-bottom: 20px;align-items: center; }
.account_form_row:last-child { margin-bottom: 0px; }
.account_form_row .left { width: 30%;padding-right: 30px;position: relative;color: #444; }
.account_form_row .left.req:after { content: "";width: 14px;height: 14px;background-image: url('../img/icons/required.png');background-size: contain;background-repeat: no-repeat;background-position: center;position: absolute;right: 14px;top: 50%;margin-top: -7px; }
.account_form_row .right { width: 70%; }
.account_form_row .right.multiple { display: flex;justify-content: space-between; }

.tb { border: 1px solid #6f6248;padding: 20px;border-radius: 2px;font-family: inherit;font-size: inherit;background: #fff;border-radius: 24px; }
.tbf { width: 100%; }

.infobox { display: flex;align-items: center;padding: 14px 20px;background: #BCE6FF; }
.infobox img { display: block;width: 32px; }
.infobox .info { flex: 1 1 auto;padding-left: 20px; }

.donebox { display: flex;align-items: center;padding: 14px 20px;background: #B9EAB9; }
.donebox img { display: block;width: 32px; }
.donebox .info { flex: 1 1 auto;padding-left: 20px; }

.errorbox { display: flex;align-items: center;padding: 14px 20px;background: #C62222;color: #fff; }
.errorbox img { display: block;width: 32px; }
.errorbox .info { flex: 1 1 auto;padding-left: 20px; }
.errorbox .info ul { list-style: disc;margin: 0 0 0 24px; }
.errorbox .info ul li { color: #fff; }

.info p:last-child { margin: 0; }


.warningbox { display: flex;align-items: center;padding: 14px 20px;background: #FFF1B6; }
.warningbox img { display: block;width: 32px; }
.warningbox .info { flex: 1 1 auto;padding-left: 20px; }

.account_form_row input:nth-child(odd) { margin-right: 6px; }
.account_form_row select:nth-child(odd) { margin-right: 6px; }
.account_form_row select.dob { margin-right: 6px; }

.account_booking { background: #E8E5DE;border-radius: 32px;padding: 20px 32px;display: flex;margin-bottom: 20px;flex-wrap: wrap; }
.account_booking .ab_left { width: 25%; }
.account_booking .ab_left .thumb { border-radius: 20px;background-size: cover;background-position: center;background-repeat: no-repeat;padding-top: 60%; }
.account_booking .ab_right { width: 75%;padding-left: 30px; }
.account_booking .ab_right h2 { font-size: 18px;margin-bottom: 14px; }
.account_booking .ab_right .dates_wrapper { margin-bottom: 4px; }
.account_booking .ab_right .dates { display: inline-flex;align-items: center;border-radius: 30px;padding: 10px 20px;background: #fff;margin-right: 6px;margin-bottom: 6px; }
.account_booking .ab_right .dates img { display: block;max-width: 24px;width: 100%;max-height: 24px; }
.account_booking .ab_right .dates span { margin-left: 12px; }

.account_booking .ab_right .primary_wrapper { margin-bottom: 20px; }
.account_booking .ab_right .primary { display: inline-flex;align-items: center;border-radius: 30px;padding: 10px 20px;background: #fff; }
.account_booking .ab_right .primary .status { display: inline-flex;align-items: center;border-radius: 30px;padding: 5px 10px;color: #fff;margin-left: 8px;font-size: 14px; }
.account_booking .ab_right .primary .verified { background: #21974A; }
.account_booking .ab_right .primary .inprogress { background: #215C96; }
.account_booking .ab_right .primary .declined { background: #96212D; }
.account_booking .ab_right .primary .notstarted { background: #595959; }


.account_main { background: #fff;padding: 18px 22px;margin-bottom: 20px;border-radius: 20px; }
.account_main p { font-size: 13px;margin-bottom: 10px; }

.am_row { border-bottom: 1px dotted #aaa;margin-bottom: 6px;padding-bottom: 6px;display: flex;flex-wrap: wrap;font-size: 13px; }
.am_row .am_left { width: 30%;padding-right: 8px;font-weight: 500; }
.am_row .am_right { width: 70%; }

.am_middle { align-items: center; }

.account_main h4 { margin-bottom: 16px;font-size: 15px;font-weight: 500;color: #ac9f87; }

.account_half { width: 49%;margin-right: 2%; }
.account_half:nth-child(even) { margin-right: 0; }

.account_main p.bbrow { margin-bottom: 4px;padding-left: 20px;position: relative; }
.account_main p.bbrow img { display: block;width: 14px;position: absolute;left: 0;top: 2px; }

.account_full { width: 100%; }

.account_remove { display: inline-flex;background: #ed1e24;border-radius: 20px;padding: 12px 22px;color: #fff;cursor: pointer;font-family: inherit;font-size: 14px;border: 0; }

.kyc_status { display: inline-flex;color: #fff;border-radius: 20px;padding: 6px 12px;font-size: 14px; }
.kyc_approved { background: #21974A }
.kyc_declined { background: #96212D }
.kyc_other { background: #215C96 }

/* navigation */


a#mobile_menu { display: none; }

.close_mobile_menu { display: none;position: absolute;right: 15px;top: 15px;color: #fff;font-size: 40px;text-decoration: none; }

.fw_open { margin-left: 0 !important; }

/* areas dropdown */

/* "Home" link is for the mobile burger menu only — on desktop the logo is the
   home link, so it's hidden there and revealed inside the mobile drawer below. */
ul#navigation li.nav_home_item { display: none; }
ul#navigation li.has_dropdown { position: relative; }
ul#navigation li.has_dropdown > a { display: flex;align-items: center; }
ul#navigation li.has_dropdown > a img.nav_arrow { width: 10px;margin-left: 6px;transition: transform 0.3s ease;filter: brightness(0); }
ul#navigation li.has_dropdown.dropdown_open > a img.nav_arrow { transform: rotate(180deg); }

ul.nav_dropdown { display: none !important;flex-direction: column !important;position: absolute;top: 100%;left: 50%;transform: translateX(-50%);background: #fff;min-width: 220px;padding: 14px 0;box-shadow: 0 8px 24px #0002;border-radius: 16px;z-index: 500;margin-top: 12px; }
ul.nav_dropdown:before { content: "";position: absolute;top: -8px;left: 50%;transform: translateX(-50%);width: 0;height: 0;border-left: 8px solid transparent;border-right: 8px solid transparent;border-bottom: 8px solid #fff; }
ul.nav_dropdown li { margin: 0 !important;width: 100%; }
ul.nav_dropdown li a { display: block !important;padding: 10px 24px !important;font-size: 14px !important;color: #333 !important;transition: all 0.2s ease !important;border-bottom: 0 !important;font-weight: 300 !important; }
ul.nav_dropdown li a:hover { background: #f5f3ef !important;color: #6f6248 !important; }

li.has_dropdown.dropdown_open ul.nav_dropdown { display: flex !important; }


ul.pagenav { display: flex;flex-wrap: wrap;align-items: center; }
ul.pagenav li { margin: 0 6px 12px 0; }
ul.pagenav li:first-child { margin: 0 12px 12px 0; }
ul.pagenav li a { background-color: #ddd;width: 40px;height: 40px;display: flex;justify-content: center;align-items: center;color: #222;border-radius: 4px; }
ul.pagenav li a.on { background-color: #333;color: #fff; }

.standard { display: inline-flex;align-items: center;justify-content: center;border: 0;background: #ed1e24;color: #fff;transition: all 0.3s ease;padding: 14px 28px;cursor: pointer;text-decoration: none; }
.standard:hover { background-color: #333; }
.standard i { margin-right: 8px; }


.crumb_wrapper { background: #ece7de;padding: 16px 0 8px; }
.crumb_wrapper ul.breadcrumb { display: flex;align-items: center;flex-wrap: wrap;padding: 0 6px; }
.crumb_wrapper ul.breadcrumb li { margin-bottom: 8px;position: relative;padding-left: 18px;margin-right: 12px;font-size: 12px; }
.crumb_wrapper ul.breadcrumb li:last-child { margin-right: 0; }
.crumb_wrapper ul.breadcrumb li:before { content: "";position: absolute;width: 12px;height: 9px;background-image: url('../img/logos/crumb_logo.png');background-repeat: no-repeat;background-position: center;background-size: contain;left: 0;top: 50%;margin-top: -5px; }
 .crumb_wrapper ul.breadcrumb li a { color: #333; }


/* footer */

#recent_wrapper { background: #fff;padding: 50px 0; }

.recent_header h3 { font-size: 28px;font-weight: 300;text-align: center;margin-bottom: 16px; }

#footer_wrapper h4 { font-size: 24px;color: #6f6248;margin-bottom: 24px;margin-top: 24px;font-weight: 200;text-align: center; }

#footer_wrapper ul.logos { display: flex;flex-wrap: wrap;justify-content: center;align-items: center; }
#footer_wrapper ul.logos li { margin: 0 30px 40px; }
#footer_wrapper ul.logos li img { display: block;max-height: 60px;max-width: 120px; }

#footer_lower { background: #6f6248;color: #fff;padding: 70px 100px 100px;border-radius: 40px 40px 0 0; }
#footer_lower_inner { display: flex;flex-wrap: wrap;margin-bottom: 40px; }
#footer_lower_inner a { color: #fff; }
#footer_lower_inner .block { width: 33.33%; }
#footer_lower_inner .block h5 { font-size: 16px;margin-bottom: 14px;font-weight: 200; }
#footer_lower_inner .block ul li { margin-bottom: 4px;font-size: 13px;font-weight: 200; }

/* Footer link rollover: smooth shift to the right + underline (text-link lists
   only — not the social icons). */
#footer_lower_inner .block ul:not(.footer_social) li a { display: inline-block;text-decoration: none;transition: transform 0.25s ease; }
#footer_lower_inner .block ul:not(.footer_social) li a:hover { transform: translateX(6px);text-decoration: underline; }

/* "Download our brochure" footer button */
.footer_brochure_btn { display: inline-flex;align-items: center;gap: 8px;margin-top: 16px;padding: 10px 18px;border: 1px solid rgba(255,255,255,0.6);border-radius: 30px;color: #fff;font-size: 13px;font-weight: 400;text-decoration: none;transition: background 0.25s ease, transform 0.25s ease; }
.footer_brochure_btn:hover { background: rgba(255,255,255,0.12);transform: translateX(4px); }
.footer_brochure_icon { width: 17px;height: 17px;flex-shrink: 0; }

/* Notice shown on the login page when a logged-out visitor clicks the brochure button */
.brochure_login_notice { background: #f7f5f0;border-left: 3px solid #6f6248;padding: 12px 16px;margin: 0 0 20px;font-size: 14px;border-radius: 4px;line-height: 1.5; }

#footer_lower_inner .block:last-child { display: flex;justify-content: flex-end;text-align: right; }
#footer_lower_inner .block:last-child p { font-size: 13px; }
#footer_lower_inner .block:last-child img.footer_logo { display: block;width: 200px; }

ul.footer_social { display: flex;justify-content: flex-end;margin-bottom: 20px; }
ul.footer_social li { margin-right: 16px; }
ul.footer_social li img { height: 30px;width: auto;display: block; }
ul.footer_social li:last-child { margin-right: 0px; }

.footer_logo_outer { display: flex;justify-content: flex-end; }

.footer_payments { display: flex;flex-wrap: wrap;align-items: center;justify-content: center;gap: 12px;margin: 30px 0 20px;padding-top: 25px;border-top: 1px solid #ffffff15; }
.footer_payments img { height: 28px;opacity: 0.7;transition: opacity 0.3s ease; }
.footer_payments img:hover { opacity: 1; }
.footer_payments .stripe_logo { height: 32px; }

p.copyright { font-size: 12px;font-weight: 200;text-align: center;margin: 0; }


/* top */

#top_wrapper { padding: 40px 0 60px; }
#top_inner { display: flex;align-items: center;position: relative; }
#top_inner #top_left img { display: block;max-width: 280px; }
#top_inner #top_right { flex: 1 1 auto; }
#top_inner #top_right #tr_inner { display: flex;justify-content: right;align-items: center; }
#top_inner #top_right #tr_inner ul { display: flex;font-size: 18px;align-items: center;white-space: nowrap; }
#top_inner #top_right #tr_inner ul li { margin-right: 26px; }
#top_inner #top_right #tr_inner ul li.divider { border-left: 2px solid #6f6248;margin-right: 0; }
#top_inner #top_right #tr_inner ul li a { transition: all 0.25s ease; }
#top_inner #top_right #tr_inner ul li a:hover { color: #6f6248; }

/* Logged-in member chip in the header: cog + name + VIP badge -> My Account */
.nav_loggedin { display: inline-flex;align-items: center;gap: 7px; }
.nav_cog { width: 16px;height: 16px;flex-shrink: 0; }
.nav_loggedin_name { font-weight: 600; }
.nav_vip { background: #6f6248;color: #fff;font-size: 10px;font-weight: 700;letter-spacing: 0.5px;padding: 2px 6px;border-radius: 4px;line-height: 1.5;flex-shrink: 0; }
.nav_loggedin:hover .nav_vip { background: #574d37; }

#top_inner #top_right #tr_inner #lang_currency { display: flex;align-items: center;padding-left: 30px; }



#translate_widget_outer { position: relative; }

#translate_top a { display: flex;align-items: center;transition: all 0.25s ease;opacity: 1; }
#translate_top a:hover { opacity: 0.7; }
#translate_top a img { display: block; }
#translate_top a img.globe { width: 30px;margin-right: 6px; }
#translate_top a img.down { width: 12px;margin-left: 6px; }
#translate_top span { text-transform: uppercase; }

#translate_upper_container { position: absolute;right: 0;width: 300px;background: #fff;padding: 20px;top: 100%;box-shadow: 0 11px 10px #0001;display: none;z-index: 120; }
#translate_upper_container .goog-te-gadget { white-space: normal !important;text-align: center;font-family: 'Stack Sans Headline',arial,tahoma,verdana;font-size: 14px;font-weight: 300; }
#translate_upper_container .goog-te-gadget .goog-te-combo { width: 100%;display: block;margin: 0 0 8px;font-family: 'Stack Sans Headline',arial,tahoma,verdana;font-size: 12px;font-weight: 300;border: 0;padding: 10px;background: #fff;border: 2px solid #333; }

img.home { display: block;width: 30px; }

img.theme { transition: all 0.25s ease; }

#currency_widget_outer { position: relative; }

#currency_top a { display: flex;align-items: center;transition: all 0.25s ease;opacity: 1;margin-left: 30px; }
#currency_top a:hover { opacity: 0.7; }
#currency_top a img { display: block; }
#currency_top a img.coins { width: 30px;margin-right: 6px; }
#currency_top a img.down { width: 12px;margin-left: 6px; }
#currency_top span { text-transform: uppercase; }

#currency_upper_container { position: absolute;right: 0;width: 230px;background: #fff;padding: 20px;top: 100%;box-shadow: 0 11px 10px #0001;display: none;z-index: 120; }
#currency_inner_container #currencies { display: flex;flex-wrap: wrap; }
#currency_inner_container #currencies a { width: 48%;display: flex;align-items: center;margin-bottom: 12px;margin-right: 4%;text-transform: uppercase;font-size: 14px; }
#currency_inner_container #currencies a:nth-child(even) { margin-right: 0; }
#currency_inner_container #currencies a img { display: block;width: 24px;height: auto;margin-right: 8px; }
#currency_inner_container p { font-size: 12px;text-align: center;color: #777;margin: 0; }


/* misc */

.section_spacer { margin-bottom: 80px; }

.link_button { background: #6f6248;color: #fff;text-decoration: none;border-radius: 34px;padding: 14px 32px;display: inline-flex;transition: all 0.25s ease; }
.link_button:hover { background: #6f6248; }

/* home */

#home_hero_outer { position: relative;text-align: center;height: 660px;border-radius: 30px;overflow: hidden; }
#home_hero_slider { height: 100%; }
#home_hero_slider .slick-list,#home_hero_slider .slick-track,#home_hero_slider .slick-slide { height: 100%; }
#home_hero_slider .slide { height: 100%;background-size: cover;background-repeat: no-repeat;background-position: center; }

/* Two-layer overlay: base tint + bottom gradient so the heading + subhead
   read against bright slider photos (white walls, pale sofas etc). */
#home_hero_layer_1 { position: absolute;left: 0;top: 0;bottom: 0;width: 100%;height: 100%;z-index: 100;background-color: #0005;background-image: linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.45) 100%); }
#home_hero_layer_2 { position: absolute;left: 0;top: 0;bottom: 0;width: 100%;height: 100%;z-index: 110;display: flex;padding: 50px 20px;flex-wrap: wrap;justify-content: center;align-content: space-between; }
#home_hero_layer_2 #headers { color: #fff;text-align: center;width: 100%;text-shadow: 0 2px 12px rgba(0,0,0,0.55); }
#home_hero_layer_2 #headers h1 { font-size: 54px;font-weight: 600;line-height: 1.1;margin-bottom: 10px; }
#home_hero_layer_2 #headers h2,
#home_hero_layer_2 #headers .hero_sub { font-size: 22px;font-weight: 300; }

/* Search-page landing layout — full-width search bar at the top, smaller
   hero banner below with marketing copy (no search form inside). */
#search_landing_top { padding: 20px 0 30px;display: flex;justify-content: center; }
#search_landing_top .search_outer { width: 100%;max-width: 1100px;background: #fff;border-radius: 50px;box-shadow: 0 6px 24px rgba(0,0,0,0.08); }
#search_landing_top .search_field { flex: 1 1 auto; }
#search_landing_top .search_field #search_dates { width: 100%; }

#home_hero_outer.search_landing_hero { height: 330px; }
#home_hero_outer.search_landing_hero #home_hero_layer_2 { padding: 30px 40px;align-content: center; }
#home_hero_outer.search_landing_hero #home_hero_layer_2 #headers h1 { font-size: 28px;font-weight: 400;line-height: 1.3;max-width: 900px;margin: 0 auto; }

/* Results-page action row — "New Search?" clears the session and reloads,
   "Change Dates" smooth-scrolls back up to the in-page search form. */
.search_actions { display: flex;justify-content: center;flex-wrap: wrap;gap: 16px;margin: 50px 0 30px; }
.search_actions .link_button { padding: 14px 36px;font-size: 14px;text-decoration: none; }
.link_button.link_button_secondary { background: #fff;color: #6f6248;border: 1px solid #6f6248;box-sizing: border-box; }
.link_button.link_button_secondary:hover { background: #f5f3ef;color: #6f6248; }

#reviews_summary { font-size: 20px;text-align: center; }
#reviews_summary ul.stars { display: flex;justify-content: center;margin-bottom: 20px; }
#reviews_summary ul.stars li { margin: 0 10px; }
#reviews_summary ul.stars li img { display: block;width: 40px; }

#reviews_summary ul.logos { display: flex;flex-wrap: wrap;justify-content: center;align-items: center;padding-top: 40px; }
#reviews_summary ul.logos li { opacity: 0;filter: blur(4px);margin: 0 35px 0px;transform: translateY(20px);animation: fadeUp 0.6s ease forwards; }
#reviews_summary ul.logos li img { max-height: 70px;max-width: 150px; }

/* Staggered delays */
#reviews_summary ul.logos li:nth-child(1) { animation-delay: 1.0s; }
#reviews_summary ul.logos li:nth-child(2) { animation-delay: 1.5s; }
#reviews_summary ul.logos li:nth-child(3) { animation-delay: 2s; }
#reviews_summary ul.logos li:nth-child(4) { animation-delay: 2.5s; }
#reviews_summary ul.logos li:nth-child(5) { animation-delay: 3s; }
#reviews_summary ul.logos li:nth-child(6) { animation-delay: 3.5s; }
#reviews_summary ul.logos li:nth-child(7) { animation-delay: 4s; }

@keyframes fadeUp {
  to {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}

#discover_london { text-align: center;padding: 0 10%; }
#discover_london #discover_top { display: flex;justify-content: center;flex-wrap: wrap;margin-bottom: 50px; }
#discover_london #discover_top .block { width: 50%;padding: 0 30px; }
#discover_london #discover_top .block .block_inner { display: block;background-position: center;background-size: cover;background-repeat: no-repeat;position: relative;padding-top: 55%;border-radius: 40px;overflow: hidden; }

#discover_london #discover_top .block .block_inner:after { content: "";position: absolute;left: 0;right: 0;bottom: 0;height: 50%;background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 100%);pointer-events: none; }
#discover_london #discover_top .block .block_inner span { position: absolute;background: #6f6248;border-radius: 40px;padding: 14px 28px;display: block;color: #fff;bottom: 40px;left: 50%;transform: translateX(-50%);box-shadow: 0 2px 4px #0004;font-size: 16px;white-space: nowrap;z-index: 2; }

#discover_london h3 { font-size: 24px;font-weight: 300;margin-bottom: 24px; }
#discover_london h3 b { font-weight: 600; }

#london_living { background-image: url('../img/misc/london_living.jpg');background-size: cover;background-attachment: fixed;background-repeat: no-repeat;background-position: center;height: 400px;text-align: center;color: #fff;position: relative;border-radius: 40px;overflow: hidden; }
#london_living #ll_inner { position: absolute;top: 0;left: 0;width: 100%;height: 100%;bottom: 0;z-index: 100;background-color: #0004;padding: 50px 20px 0; }
#london_living #ll_inner h3 { font-size: 36px;font-weight: 600; }
#london_living #ll_inner ul { display: flex;flex-wrap: wrap;justify-content: center;align-items: center; }
#london_living #ll_inner ul li { margin: 0 12px;position: relative;font-size: 16px; }
#london_living #ll_inner ul li:before { content: "•";position: absolute;left: -10px; }
#london_living #ll_inner ul li:first-child:before { content: ""; }

#highlighted h3 { font-size: 24px;margin-bottom: 24px;text-align: center; }

.home_prop_thumbs .prop_thumb { padding: 0 25px; }

.prop_thumb .thumb_outer { border-radius: 20px;overflow: hidden;margin-bottom: 12px;position: relative; }
.prop_thumb .thumb { padding-top: 60%;background-size: cover;background-position: center;background-repeat: no-repeat;transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.prop_thumb:hover .thumb { transform: scale(1.05); }
.prop_thumb_image_link { display: block;text-decoration: none;color: inherit; }

.prop_thumb .member_price,
.property_thumbnail .member_price,
.group_unit_card .member_price { position: absolute;top: 12px;left: 12px;z-index: 2;background: #21974A;color: #fff;padding: 5px 11px;border-radius: 20px;font-size: 12px;font-weight: 700;letter-spacing: 0.3px;line-height: 1;box-shadow: 0 2px 6px rgba(0,0,0,0.3); }

.prop_thumb_group .group_thumb_badge { position: absolute;top: 12px;left: 12px;z-index: 2;background: #6f6248;color: #fff;padding: 5px 11px;border-radius: 20px;font-size: 12px;font-weight: 700;letter-spacing: 0.3px;line-height: 1;box-shadow: 0 2px 6px rgba(0,0,0,0.3); }

.star_rating_display { position: absolute;bottom: 12px;left: 12px;z-index: 2;display: inline-flex;align-items: center;gap: 6px;background: rgba(0,0,0,0.65);color: #fff;padding: 5px 11px;border-radius: 20px;font-size: 13px;font-weight: 600;box-shadow: 0 2px 6px rgba(0,0,0,0.3);line-height: 1; }
.star_rating_display .star_icon { color: #ffd54a;font-size: 14px; }

.star_rating_detail { position: absolute;bottom: 16px;left: 16px;z-index: 2;display: inline-flex;align-items: center;gap: 8px;background: rgba(0,0,0,0.65);color: #fff;padding: 8px 14px;border-radius: 24px;font-size: 16px;font-weight: 600;box-shadow: 0 2px 8px rgba(0,0,0,0.4);margin-bottom: 0;line-height: 1; }
.star_rating_detail .star_icon { color: #ffd54a;font-size: 18px; }
#highlighted .prop_thumb h3 { font-size: 16px;font-weight: 600;margin-bottom: 8px;text-align: left; }

.prop_thumb h3 { display: -webkit-box;-webkit-line-clamp: 2;line-clamp: 2;-webkit-box-orient: vertical;overflow: hidden;font-weight: 600;margin-bottom: 4px; }

ul.prop_thumb_stats { display: flex;flex-wrap: wrap;gap: 6px 14px;margin-bottom: 16px;padding: 0;list-style: none; }
ul.prop_thumb_stats li { display: inline-flex;align-items: center;gap: 5px;margin: 0;padding: 0;font-size: 13px;color: #555; }
ul.prop_thumb_stats li:before { content: none; }
ul.prop_thumb_stats li img { width: 14px;height: 14px;display: block;opacity: 0.65;flex-shrink: 0; }


#highlighted .slick-track { margin-left: 0; }
#highlighted ul.slick-dots { position: absolute;bottom: -50px;left: 50%;transform: translateX(-50%);display: flex; }
#highlighted ul.slick-dots li { margin: 0 5px; }
#highlighted ul.slick-dots li button { border: 0;width: 8px;height: 8px;border-radius: 10px;background: #aaa;cursor: pointer;text-indent: -9999px; }
#highlighted ul.slick-dots li.slick-active button { background: #222; }

#highlighted_slider { position: relative; }
#highlighted .slide_arrow { top: 50%;margin-top: -20px;bottom: unset; }
#highlighted .slide_prev { left: -40px; }
#highlighted .slide_next { right: -40px; }

#faq_summary { display: flex;flex-wrap: wrap;padding: 100px 10%; }
#faq_summary #fs_left { width: 25%;background-size: cover;background-repeat: no-repeat;background-position: center;background-image: url('../img/misc/faq.jpg');border-radius: 20px; }
#faq_summary #fs_right { width: 75%;padding-left: 50px; }
#faq_summary #fs_right h3 { font-size: 36px;margin-bottom: 18px; }
#faq_summary #fs_right p:last-child { margin-bottom: 0px; }

.faq_row { margin-bottom: 25px; }
.faq_row h4 { font-size: 18px;font-weight: 500;margin-bottom: 12px; }


/* reviews */

#client_reviews_summary h4 { font-size: 28px;font-weight: 300;margin-bottom: 24px; }

.review_block_wrapper { padding: 0 20px; }

.review_block { background: #f5f5f5;border-radius: 20px;padding: 50px; }
.review_block .review_top { display: flex;margin-bottom: 20px; }
.review_block .review_top .rt_left { flex: 1 1 auto; }
.review_block .review_top .rt_left .logo { background: #fff;border-radius: 100%;display: block;width: 100px;height: 100px;display: flex;justify-content: center;align-items: center;overflow: hidden;padding: 10px; }
.review_block .review_top .rt_left .logo img { display: block;max-width: 64px;max-height: 80px; }
.review_block .review_top .rt_right { width: 100%;padding-left: 20px; }
.review_block .review_top .rt_right .name { font-size: 18px; }
.review_block .review_top .rt_right .source { font-size: 16px; }
.review_block .review_top .rt_right .stars { padding-top: 10px;display: flex; }
.review_block .review_top .rt_right .stars img { display: block;width: 24px;margin-right: 4px; }

#client_reviews_summary .slick-track { margin-left: 0; }
#client_reviews_summary ul.slick-dots { position: absolute;bottom: -50px;left: 50%;transform: translateX(-50%);display: flex; }
#client_reviews_summary ul.slick-dots li { margin: 0 5px; }
#client_reviews_summary ul.slick-dots li button { border: 0;width: 8px;height: 8px;border-radius: 10px;background: #aaa;cursor: pointer;text-indent: -9999px; }
#client_reviews_summary ul.slick-dots li.slick-active button { background: #222; }

#reviews_slider { position: relative; }
#client_reviews_summary .slide_arrow { top: 50%;margin-top: -20px;bottom: unset; }
#client_reviews_summary .slide_prev { left: -40px; }
#client_reviews_summary .slide_next { right: -40px; }


/* cms */

.cms ul { margin-bottom: 25px;list-style: disc; }
.cms ul li { margin-left: 26px;margin-bottom: 4px; }
.cms h3 { margin-bottom: 12px;font-size: 20px; }
.cms h2 { margin-bottom: 12px;font-size: 24px; }
.cms .page_subtitle { font-size: 16px;color: #6f6248;margin-top: -14px;margin-bottom: 24px; }

p.recaptcha { font-size: 14px;color: #999; }
p.recaptcha a { color: #333; }
.grecaptcha-badge { visibility: hidden; }


/* location pages */

.location_hero { position: relative;height: 550px;overflow: hidden; }
.location_hero_image { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-size: cover;background-position: center;background-repeat: no-repeat;background-attachment: fixed; }
.location_hero_overlay { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(180deg, #0002 0%, #0007 100%);z-index: 10; }
.location_hero_content { position: absolute;bottom: 0;left: 0;width: 100%;z-index: 20;padding: 60px 0; }
.location_hero_content .page_width { text-align: center; }
.location_hero_content h1 { color: #fff;font-size: 42px;font-weight: 600;text-shadow: 0 3px 10px #0004;margin-bottom: 10px; }
.location_hero_content p.hero_subtitle { color: #fff;font-size: 18px;font-weight: 300;text-shadow: 0 2px 6px #0004;margin: 0; }

.location_intro { padding: 80px 0;text-align: center; }
.location_intro .intro_inner { max-width: 900px;margin: 0 auto; }
.location_intro h2 { font-size: 28px;font-weight: 300;margin-bottom: 24px;color: #333; }
.location_intro h2 b { font-weight: 600; }
.location_intro p { font-size: 14px;line-height: 1.8;color: #444;margin-bottom: 20px; }
.location_intro p:last-child { margin-bottom: 0; }

.location_highlights { padding: 0 0 80px; }
.location_highlights .highlights_grid { display: flex;flex-wrap: wrap;gap: 20px;max-width: 1200px;margin: 0 auto; }
.location_highlights .highlight_item { flex: 1 1 calc(33.33% - 14px);position: relative;border-radius: 20px;overflow: hidden;padding-top: 55%;background-size: cover;background-position: center;background-repeat: no-repeat; }
.location_highlights .highlight_item .highlight_content { position: absolute;bottom: 0;left: 0;right: 0;padding: 24px 24px 28px;background: linear-gradient(0deg, #000a 0%, #0006 60%, #0000 100%);color: #fff; }
.location_highlights .highlight_item h3 { font-size: 16px;font-weight: 500;margin-bottom: 6px;color: #fff; }
.location_highlights .highlight_item p { font-size: 13px;color: #fffd;margin: 0;line-height: 1.5; }

.location_search_cta { background: #6f6248;padding: 80px 0;margin-bottom: 60px; }
.location_search_cta .cta_inner { text-align: center; }
.location_search_cta .cta_inner h2 { color: #fff;font-size: 28px;font-weight: 300;margin-bottom: 10px; }
.location_search_cta .cta_inner h2 b { font-weight: 600; }
.location_search_cta .cta_inner p.cta_subtitle { color: #fff;font-size: 14px;font-weight: 300;margin-bottom: 36px;opacity: 0.9; }
.location_search_cta .search_outer { box-shadow: 0 4px 20px #0003; }

.location_properties { padding: 80px 0; }
.location_properties h2 { font-size: 28px;font-weight: 300;text-align: center;margin-bottom: 36px; }
.location_properties h2 b { font-weight: 600; }

/* Locations index page */

.locations_index { padding: 60px 0 80px; }
.locations_index_header { text-align: center;margin-bottom: 50px; }
.locations_index_header h1 { font-size: 36px;font-weight: 600;margin-bottom: 14px; }
.locations_index_header p { font-size: 14px;font-weight: 300;line-height: 1.7;max-width: 750px;margin: 0 auto;color: #555; }

.locations_grid { display: flex;flex-wrap: wrap;gap: 20px; }

.location_card { flex: 1 1 calc(33.33% - 14px);position: relative;border-radius: 20px;overflow: hidden;display: block;text-decoration: none;height: 380px; }
.location_card_image { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-size: cover;background-position: center;background-repeat: no-repeat;transition: transform 0.5s ease; }
.location_card:hover .location_card_image { transform: scale(1.06); }
.location_card_overlay { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(180deg, #0001 0%, #0008 100%);z-index: 10;transition: background 0.25s ease; }
.location_card:hover .location_card_overlay { background: linear-gradient(180deg, #0001 0%, #000b 100%); }
.location_card_content { position: absolute;bottom: 0;left: 0;right: 0;padding: 28px 28px 32px;z-index: 20;color: #fff; }
.location_card_content h2 { font-size: 22px;font-weight: 600;margin-bottom: 6px;text-shadow: 0 2px 8px #0004; }
.location_card_content p { font-size: 13px;font-weight: 300;margin: 0 0 12px;opacity: 0.9;text-shadow: 0 1px 4px #0003;line-height: 1.5; }
.location_card_link { display: inline-flex;align-items: center;gap: 6px;font-size: 13px;font-weight: 500;color: #fff;opacity: 0;transform: translateY(8px);transition: opacity 0.25s ease, transform 0.25s ease; }
.location_card_link img { width: 14px;height: 14px;filter: brightness(0) invert(1); }
.location_card:hover .location_card_link { opacity: 1;transform: translateY(0); }

/* Projects index page */

.projects_index { padding: 60px 0 80px; }
.projects_index_header { text-align: center;margin-bottom: 50px; }
.projects_index_header h1 { font-size: 36px;font-weight: 600;margin-bottom: 14px; }
.projects_index_header p { font-size: 14px;font-weight: 300;line-height: 1.7;max-width: 750px;margin: 0 auto;color: #555; }

.projects_grid { display: flex;flex-wrap: wrap;gap: 20px; }

.project_card { flex: 1 1 calc(33.33% - 14px);position: relative;border-radius: 30px;overflow: hidden;display: block;text-decoration: none;height: 420px; }
.project_card_image { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-size: cover;background-position: center;background-repeat: no-repeat;transition: transform 0.5s ease; }
.project_card:hover .project_card_image { transform: scale(1.06); }
.project_card_overlay { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(180deg, #0001 0%, #000a 100%);z-index: 10;transition: background 0.25s ease; }
.project_card:hover .project_card_overlay { background: linear-gradient(180deg, #0001 0%, #000d 100%); }
.project_card_content { position: absolute;bottom: 0;left: 0;right: 0;padding: 28px 28px 32px;z-index: 20;color: #fff; }
.project_card_content h2 { font-size: 24px;font-weight: 600;margin-bottom: 8px;text-shadow: 0 2px 8px #0004; }
.project_card_content p { font-size: 13px;font-weight: 300;margin: 0 0 14px;opacity: 0.85;line-height: 1.6;display: -webkit-box;-webkit-line-clamp: 3;-webkit-box-orient: vertical;overflow: hidden; }
.project_card_link { display: inline-flex;align-items: center;gap: 6px;font-size: 13px;font-weight: 500;color: #fff;opacity: 0;transform: translateY(8px);transition: opacity 0.25s ease, transform 0.25s ease; }
.project_card_link img { width: 14px;height: 14px;filter: brightness(0) invert(1); }
.project_card:hover .project_card_link { opacity: 1;transform: translateY(0); }

/* Individual project page */

.project_hero { position: relative;height: 550px;overflow: hidden; }
.project_hero_image { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-size: cover;background-position: center;background-repeat: no-repeat;background-attachment: fixed; }
.project_hero_overlay { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(180deg, #0002 0%, #0007 100%);z-index: 10; }
.project_hero_content { position: absolute;bottom: 0;left: 0;width: 100%;z-index: 20;padding: 60px 0; }
.project_hero_content .page_width { text-align: center; }
.project_subtitle_tag { display: inline-block;font-size: 12px;font-weight: 500;text-transform: uppercase;letter-spacing: 2px;color: #fff;margin-bottom: 12px;background: rgba(0,0,0,0.35);padding: 6px 18px;border-radius: 20px;backdrop-filter: blur(4px);text-shadow: 0 1px 4px rgba(0,0,0,0.4); }
.project_hero_content h1 { color: #fff;font-size: 42px;font-weight: 600;text-shadow: 0 3px 10px #0004;margin-bottom: 10px; }

.project_intro { padding: 70px 0; }
.project_intro_inner { max-width: 850px;margin: 0 auto;text-align: center; }
.project_intro_inner p { font-size: 14px;font-weight: 300;line-height: 1.8;color: #444;margin-bottom: 18px; }
.project_intro_inner p:last-child { margin-bottom: 0; }

.project_features { padding: 0 0 80px; }
.project_features h2 { font-size: 28px;font-weight: 300;text-align: center;margin-bottom: 40px; }
.project_features h2 b { font-weight: 600; }
.features_grid { display: flex;flex-wrap: wrap;gap: 20px; }
.feature_card { flex: 1 1 calc(33.33% - 14px);border-radius: 30px;overflow: hidden;background: #fff;box-shadow: 0 4px 20px #0001; }
.feature_card_image { height: 260px;background-size: cover;background-position: center;background-repeat: no-repeat; }
.feature_card_body { padding: 28px 28px 32px; }
.feature_card_body h3 { font-size: 18px;font-weight: 600;margin-bottom: 8px;color: #6f6248; }
.feature_card_body p { font-size: 14px;font-weight: 300;line-height: 1.6;color: #555; }

.project_gallery { padding: 0 0 80px; }
.project_gallery h2 { font-size: 28px;font-weight: 300;text-align: center;margin-bottom: 40px; }
.project_gallery h2 b { font-weight: 600; }
.gallery_masonry { columns: 3;column-gap: 16px; }
.gallery_item { display: block;break-inside: avoid;margin-bottom: 16px;border-radius: 20px;overflow: hidden;position: relative;cursor: pointer; }
.gallery_thumb { width: 100%;padding-top: 75%;background-size: cover;background-position: center;background-repeat: no-repeat;transition: transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94); }
.gallery_item:nth-child(3n+2) .gallery_thumb { padding-top: 100%; }
.gallery_item:nth-child(3n+3) .gallery_thumb { padding-top: 60%; }
.gallery_item:hover .gallery_thumb { transform: scale(1.05); }
.gallery_item::after { content: '';position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: #0000;transition: background 0.3s ease;pointer-events: none; }
.gallery_item:hover::after { background: #0002; }

.project_video { padding: 80px 0; }
.project_video .video_inner { text-align: center; }
.project_video .video_inner h2 { font-size: 28px;font-weight: 300;margin-bottom: 36px; }
.project_video .video_inner h2 b { font-weight: 600; }
.project_video .video_wrapper { position: relative;padding-bottom: 56.25%;height: 0;overflow: hidden;border-radius: 30px;max-width: 960px;margin: 0 auto;box-shadow: 0 8px 30px #0002; }
.project_video .video_wrapper iframe { position: absolute;top: 0;left: 0;width: 100%;height: 100%;border: 0; }

.project_cta { background: #6f6248;padding: 80px 0;margin-bottom: 60px;text-align: center; }
.project_cta h2 { color: #fff;font-size: 28px;font-weight: 300;margin-bottom: 10px; }
.project_cta h2 b { font-weight: 600; }
.project_cta p { color: #fff;font-size: 14px;font-weight: 300;margin-bottom: 26px;opacity: 0.9; }
.project_cta .link_button { background: #fff;color: #6f6248;padding: 14px 36px;border-radius: 40px;font-size: 14px;font-weight: 500;text-decoration: none;display: inline-block;transition: background 0.3s ease, transform 0.3s ease; }
.project_cta .link_button:hover { background: #f5f5f5;transform: translateY(-2px); }

.location_video { padding: 80px 0; }
.location_video .video_inner { text-align: center; }
.location_video .video_inner h2 { font-size: 28px;font-weight: 300;margin-bottom: 36px; }
.location_video .video_inner h2 b { font-weight: 600; }
.location_video .video_wrapper { position: relative;padding-bottom: 56.25%;height: 0;overflow: hidden;border-radius: 30px;max-width: 960px;margin: 0 auto;box-shadow: 0 8px 30px #0002; }
.location_video .video_wrapper iframe { position: absolute;top: 0;left: 0;width: 100%;height: 100%;border: 0; }

.location_reviews { padding: 0 0 80px; }

/* contact page */
#contact_wrapper { max-width: 720px;margin: 0 auto;padding: 20px 0 40px; }
#contact_wrapper h1.main { font-size: 28px;font-weight: 300;margin-bottom: 18px; }
.contact_intro { font-size: 14px;line-height: 1.7;color: #555;margin-bottom: 36px; }
#contact_form_wrapper { background: #fff;border-radius: 30px;padding: 40px;box-shadow: 0 4px 20px #0001; }
.contact_form_row { margin-bottom: 20px; }
.contact_form_row label { display: block;font-size: 13px;font-weight: 600;margin-bottom: 8px;color: #333; }
.contact_form_row label .required { color: #6f6248; }
.contact_form_row .textarea_wrapper { border: 2px solid #333;padding: 4px;border-radius: 4px; }
.contact_form_row .textarea_wrapper textarea { border: 0;padding: 14px;font-family: inherit;font-size: 14px;background: #fff;color: #000;width: 100%;resize: vertical;min-height: 140px; }
#contact_form .account_button { margin-top: 10px; }
#contact_form_errors { margin-bottom: 20px; }
.form_error_item { background: #fff0f0;border: 1px solid #ffcccc;border-radius: 8px;padding: 12px 16px;margin-bottom: 8px;font-size: 14px;color: #cc0000;display: flex;align-items: center;gap: 10px; }
.form_error_item img { width: 18px;height: 18px;flex-shrink: 0; }
#contact_form_success { padding: 30px 0; }
#contact_form_success .cms { text-align: center; }
.loader_small { display: inline-block;width: 18px;height: 18px;border: 2px solid #fff4;border-top-color: #fff;border-radius: 50%;animation: spin 0.6s linear infinite;margin-right: 8px; }
@keyframes spin { to { transform: rotate(360deg); } }

/* contact enquiries table */
#enquiries_list { margin-top: 20px; }

@media only screen and (max-width: 768px) {
    #contact_wrapper { padding: 10px 0 20px; }
    #contact_wrapper h1.main { font-size: 22px; }
    #contact_form_wrapper { padding: 24px 20px;border-radius: 20px; }
    .contact_form_row .textarea_wrapper textarea { padding: 12px;font-size: 13px; }
}

@media only screen and (max-width: 1100px) {

    .location_hero { height: 450px; }
    .location_hero_content h1 { font-size: 34px; }
    .location_hero_content p.hero_subtitle { font-size: 16px; }

    .location_intro { padding: 60px 0; }
    .location_intro h2 { font-size: 24px; }
    .location_intro p { font-size: 14px; }

    .location_video { padding: 60px 0; }
    .location_video .video_inner h2 { font-size: 24px;margin-bottom: 28px; }

    .location_search_cta { padding: 60px 0;margin-bottom: 40px; }
    .location_search_cta .cta_inner h2 { font-size: 24px; }

    .location_properties h2 { font-size: 24px; }

    .locations_index_header h1 { font-size: 30px; }
    .locations_index_header p { font-size: 14px; }
    .location_card { flex: 1 1 calc(50% - 10px);height: 340px; }
    .location_card_content h2 { font-size: 20px; }

    .projects_index_header h1 { font-size: 30px; }
    .projects_index_header p { font-size: 14px; }
    .project_card { flex: 1 1 calc(50% - 10px);height: 380px; }
    .project_card_content h2 { font-size: 22px; }

    .project_hero { height: 450px; }
    .project_hero_content h1 { font-size: 34px; }
    .project_intro { padding: 60px 0; }
    .project_features h2 { font-size: 24px; }
    .feature_card_image { height: 220px; }
    .project_gallery h2 { font-size: 24px;margin-bottom: 32px; }
    .gallery_masonry { columns: 2; }
    .project_video { padding: 60px 0; }
    .project_video .video_inner h2 { font-size: 24px; }
    .project_cta { padding: 60px 0;margin-bottom: 40px; }
    .project_cta h2 { font-size: 24px; }

}

@media only screen and (max-width: 768px) {

    .location_hero { height: 400px;  }
    .location_hero_image { background-attachment: scroll; }
    .location_hero_content { padding: 40px 0; }
    .location_hero_content h1 { font-size: 26px; }
    .location_hero_content p.hero_subtitle { font-size: 14px; }

    .location_intro { padding: 50px 0; }
    .location_intro h2 { font-size: 22px;margin-bottom: 18px; }
    .location_intro p { font-size: 13px;line-height: 1.7; }

    .location_highlights .highlights_grid { gap: 15px; }
    .location_highlights .highlight_item { flex: 1 1 100%;padding-top: 50%; }

    .location_video { padding: 50px 0; }
    .location_video .video_inner h2 { font-size: 22px;margin-bottom: 22px; }
    .location_video .video_wrapper { border-radius: 20px; }

    .locations_index { padding: 40px 0 60px; }
    .locations_index_header { margin-bottom: 35px; }
    .locations_index_header h1 { font-size: 24px; }
    .locations_index_header p { font-size: 13px; }
    .location_card { flex: 1 1 100%;height: 280px; }
    .location_card_content h2 { font-size: 20px; }
    .location_card_content p { font-size: 12px; }
    .location_card_link { opacity: 1;transform: translateY(0); }

    .projects_index { padding: 40px 0 60px; }
    .projects_index_header { margin-bottom: 35px; }
    .projects_index_header h1 { font-size: 24px; }
    .projects_index_header p { font-size: 13px; }
    .project_card { flex: 1 1 100%;height: 320px; }
    .project_card_content h2 { font-size: 20px; }
    .project_card_link { opacity: 1;transform: translateY(0); }

    .project_hero { height: 400px; }
    .project_hero_image { background-attachment: scroll; }
    .project_hero_content { padding: 40px 0; }
    .project_hero_content h1 { font-size: 26px; }
    .project_subtitle_tag { font-size: 11px;padding: 5px 14px; }
    .project_intro { padding: 50px 0; }
    .project_intro_inner p { font-size: 13px; }
    .project_features { padding: 0 0 60px; }
    .project_features h2 { font-size: 22px;margin-bottom: 28px; }
    .feature_card { flex: 1 1 100%; }
    .feature_card_image { height: 200px; }
    .feature_card_body { padding: 22px 22px 26px; }
    .feature_card_body h3 { font-size: 16px; }
    .feature_card_body p { font-size: 13px; }
    .project_gallery { padding: 0 0 60px; }
    .project_gallery h2 { font-size: 22px;margin-bottom: 28px; }
    .gallery_masonry { columns: 2;column-gap: 12px; }
    .gallery_item { margin-bottom: 12px;border-radius: 16px; }
    .project_video { padding: 50px 0; }
    .project_video .video_inner h2 { font-size: 22px;margin-bottom: 22px; }
    .project_video .video_wrapper { border-radius: 20px; }
    .project_cta { padding: 50px 0;margin-bottom: 30px; }
    .project_cta h2 { font-size: 22px; }
    .project_cta p { font-size: 13px; }

    .location_search_cta { padding: 50px 0;margin-bottom: 30px; }
    .location_search_cta .cta_inner h2 { font-size: 22px; }
    .location_search_cta .cta_inner p.cta_subtitle { font-size: 13px;margin-bottom: 28px; }

    .location_properties { padding: 50px 0; }
    .location_properties h2 { font-size: 22px;margin-bottom: 28px; }

    .location_reviews { padding: 0 0 50px; }

}






#cookie_initial { background-color: #eee;color: #000;display: none;padding: 25px 30px;position: fixed;z-index: 20000000000;bottom: 0;left: 0;width: 100%; }
.cookie_initial_options { display: flex;flex-wrap: wrap; }
.cookie_initial_options .cio_left { width: 60%; }
.cookie_initial_options .cio_left h5 { font-size: 16px;margin-bottom: 10px;color: #1e8acc; }
.cookie_initial_options .cio_right { width: 40%; }
.cookie_initial_options .cio_right ul { display: flex;flex-wrap: wrap;justify-content: flex-end; }
.cookie_initial_options .cio_right ul li { margin-right: 14px; }
.cookie_initial_options .cio_right ul li:last-child { margin-right: 0; }
.cookie_initial_options .cio_right ul li a { display: block;text-decoration: none;border: 1px solid #333;padding: 10px 18px;color: #333; }
.cookie_initial_options .cio_right ul li a:hover { text-decoration: underline; }
.cookie_initial_options .cio_right ul li a.accept { background-color: #333;color: #fff; }
.cookie_initial_options .cio_right ul li a.reject {  }
.cookie_initial_options .cio_right ul li a.custom { background: #256593;color: #fff;  }

#cookie_custom_overlay { display: none;position: fixed;top: 0;left: 0;width: 100%;height: 100vh;z-index: 25000;background: #fffc; }

#cookie_custom_wrapper { display: none;position: fixed;width: 800px;height: 70%;left: 50%;top: 50%;transform: translate(-50%,-50%);background-color: #fff;box-shadow: 0 0 20px #0004;z-index: 30000; }

#cookie_custom_inner { position: absolute;top: 0;bottom: 0;left: 0;width: 100%;height: 100%;overflow-y: auto;padding: 24px 34px; }
.cookie_custom_close { position: absolute;top: 8px;right: 8px;font-size: 12px;color: #1E8ACC; }

#cookie_custom_wrapper h1 { font-size: 24px;margin-bottom: 12px; }
#cookie_custom_wrapper h2 { font-size: 20px;margin-bottom: 12px; }
#cookie_custom_wrapper ul.cc_options { background: #eee;padding: 16px 22px;margin-bottom: 20px; }
#cookie_custom_wrapper ul.cc_options li { position: relative;padding-left: 50px;margin-bottom: 10px; }
#cookie_custom_wrapper ul.cc_options li div.switch_outer { position: absolute;left: 0;top: 50%;width: 36px;height: 20px;border: 1px solid #ccc;margin-top: -10px;padding: 1px;background: #fff; }
#cookie_custom_wrapper ul.cc_options li input { display: none; }
#cookie_custom_wrapper ul.cc_options li div.switch_outer a { display: block;height: 18px;position: relative;width: 100%;transition: all 0.25s ease; }
#cookie_custom_wrapper ul.cc_options li div.switch_outer a span { display: block;height: 16px;width: 16px;position: absolute;transition: all 0.25s ease; }
#cookie_custom_wrapper ul.cc_options li div.switch_outer a.off span { background: #ccc;left: 0; }
#cookie_custom_wrapper ul.cc_options li div.switch_outer a.on span { background: #2DCC43;left: 16px; }


@media only screen and (max-width: 900px) {

    .cookie_initial_options .cio_left { width: 100%;text-align: center;margin-bottom: 12px; }
    .cookie_initial_options .cio_right { width: 100%; }
    .cookie_initial_options .cio_right ul { display: block; }
    .cookie_initial_options .cio_right ul li { margin: 0 0px 12px 0; }
    .cookie_initial_options .cio_right ul li a { text-align: center; }

    #cookie_custom_wrapper { width: 90%;height: 80%; }


    }

@media only screen and (max-width: 1700px) {

    .slide_arrow img { width: 20px; }

    #highlighted .slide_arrow { margin-top: -15px; }
    #highlighted .slide_prev { left: -15px; }
    #highlighted .slide_next { right: -15px; }

    .home_prop_thumbs .prop_thumb { padding: 0 20px; }

    #client_reviews_summary .slide_arrow { margin-top: -15px; }
    #client_reviews_summary .slide_prev { left: -15px; }
    #client_reviews_summary .slide_next { right: -15px; }

    .recent_slider_wrapper .slide_arrow { margin-top: -15px; }
    .recent_slider_wrapper .slide_prev { left: -15px; }
    .recent_slider_wrapper .slide_next { right: -15px; }

    }

@media only screen and (max-width: 1660px) {

    .page_width { padding-left: 25px;padding-right: 25px; }

    #discover_london { padding: 0 0; }

    #faq_summary { padding: 100px 7%; }


    }

@media only screen and (max-width: 1400px) {

    #reviews_summary ul.logos li img { max-height: 60px;max-width: 120px; }

    #faq_summary { padding: 80px 4%; }

    .review_block { border-radius: 30px;padding: 36px; }
    .review_block .review_top { margin-bottom: 15px; }
    .review_block .review_top .rt_left .logo { width: 76px;height: 76px; }
    .review_block .review_top .rt_left .logo img { max-width: 50px;max-height: 60px; }
    .review_block .review_top .rt_right { padding-left: 18px; }
    .review_block .review_top .rt_right .name { font-size: 17px; }
    .review_block .review_top .rt_right .source { font-size: 14px; }
    .review_block .review_top .rt_right .stars img { width: 20px;margin-right: 2px; }

    }

@media only screen and (max-width: 1298px) {

    #faq_summary { padding: 70px 2%; }

    #faq_summary #fs_right { padding-left: 40px; }
    #faq_summary #fs_right h3 { font-size: 32px;margin-bottom: 16px; }

    #client_reviews_summary h4 { font-size: 24px;margin-bottom: 22px; }

    .recent_header h3 { font-size: 26px; }

    #discover_london #discover_top .block .block_inner { padding-top: 64%; }
    #discover_london #discover_top .block .block_inner span { width: 100%;max-width: 80%; }

    .slide_arrow img { width: 15px; }

    }

@media only screen and (max-width: 1280px) {

    .home_prop_thumbs .prop_thumb { padding: 0 10px; }

    .review_block_wrapper { padding: 0 10px; }

    /* Header nav: tighten so it stays on one line down to the burger
       breakpoint (988px) instead of wrapping mid-word. */
    #top_inner #top_right #tr_inner ul { font-size: 16px; }
    #top_inner #top_right #tr_inner ul li { margin-right: 18px; }

    }

@media only screen and (max-width: 1200px) {

    #account_wrapper #account_left { width: 100%;padding-right: 0px;margin-bottom: 30px; }

    #account_wrapper #account_right { width: 100%; }

    ul#account_menu { display: flex;flex-wrap: wrap;margin: 0; }
    ul#account_menu li { width: 49.5%;margin-right: 1%;margin-bottom: 10px; }
    ul#account_menu li:nth-child(even) { margin-right: 0; }

    #top_wrapper { padding: 40px 0 40px; }

    #reviews_summary ul.logos li { margin: 0 25px 40px; }
    #reviews_summary ul.logos li img { max-height: 50px;max-width: 100px; }

    #discover_london #discover_top .block { padding: 0 20px; }
    #discover_london #discover_top .block .block_inner { border-radius: 30px;padding-top: 64% }
    #discover_london #discover_top .block .block_inner span { border-radius: 30px;padding: 14px 18px;bottom: 30px;font-size: 15px; }

    #faq_summary { padding: 60px 0; }

    }

@media only screen and (max-width: 1100px) {

    .page_width { padding-left: 20px;padding-right: 20px; }

    /* Header nav: final squeeze before the burger menu takes over at 988px —
       smaller nav text/gaps + a smaller logo to free horizontal room. */
    #top_inner #top_left img { width: 230px; }
    #top_inner #top_right #tr_inner ul { font-size: 15px; }
    #top_inner #top_right #tr_inner ul li { margin-right: 12px; }
    #top_inner #top_right #tr_inner #lang_currency { padding-left: 14px; }

    ul.search_results li { width: 33.33%; }
    ul.search_results li a h2 { font-size: 16px; }
    ul.search_results li a h3 { font-size: 13px; }

    .member_rate_banner .mrb_inner { flex-direction: column;text-align: center; }
    .member_rate_banner .mrb_text { flex-direction: column;font-size: 13px; }
    .member_rate_banner .mrb_button { width: 100%;text-align: center;padding: 12px 20px; }

    .view_wrapper { display: block; }
    .view_wrapper > div { margin-bottom: 40px; }

    .map_wrapper .left { width: 100%;margin-bottom: 30px; }
    .map_wrapper .right #results_map { height: 600px; }
    .map_wrapper .right { width: 100%;padding: 0 0 0 0px;position: static;min-height: auto; }

    #discover_london h3 { font-size: 22px;margin-bottom: 22px; }

    #home_hero_layer_2 #headers h1 { font-size: 34px;font-weight: 500; }

    #discover_london #discover_top .block { padding: 0 10px; }

    #discover_london #discover_top .block .block_inner span { padding: 10px 16px;bottom: 20px;font-size: 15px;max-width: 95%; }

    #footer_lower { padding: 50px 70px 70px;border-radius: 30px 30px 0 0; }
    #footer_lower_inner .block { width: 50%;text-align: center; }

    #footer_lower_inner .block:last-child { width: 100%;justify-content: center;text-align: center;padding-top: 30px; }
    #footer_lower_inner .block:last-child img.footer_logo { margin: 0 auto; }

    ul.footer_social { justify-content: center; }
    ul.footer_social li { margin-right: 10px;margin-left: 10px; }
    ul.footer_social li:last-child { margin-right: 10px; }

    .footer_logo_outer { justify-content: center; }


    }

@media only screen and (max-width: 988px) {

    .page_width { padding-left: 15px;padding-right: 15px; }

    a#mobile_menu { display: flex;position: fixed;right: 20px;top: 30px;width: 50px;height: 50px;border-radius: 25px;background: #6f6248;justify-content: center;text-align: center;align-items: center;z-index: 500;box-shadow: 0 4px 14px rgba(0,0,0,0.25); }
    a#mobile_menu img { display: block;width: 30px;height: auto; }

    #nav_wrapper_container {  }
    #nav_wrapper { background-color: #fffd;background-image: url('../img/logos/menu_logo.png');background-position: bottom 10px right 10px;background-size: 200px auto;background-repeat: no-repeat;backdrop-filter: blur(10px);padding: 20px;width: 100%;position: fixed;left: 0;top: 0;z-index: 9999;min-height: 100vh;margin-left: -100%;transition: all 0.25s ease 0s;text-align: left; }

    .close_mobile_menu { display: block;position: absolute;right: 16px;top: 10px; }
    .close_mobile_menu img { display: block;width: 32px; }

    #menu_inner_wrapper { overflow: auto;position: absolute;bottom:0;left:0;right:0;top:0;width: 100%;padding: 20px 70px 20px 20px; }


    #reg_form_inner .left { width: 100%;margin-right: 0%;padding-right: 0%;border-right: 0;margin-bottom: 30px; }
    #reg_form_inner .right { width: 100%; }


    ul.search_results li { width: 50%; }

    ul.main_stats li { width: 50%;padding: 7px 8px; }
    ul.main_stats li img { max-width: 40px;max-height: 22px;margin-right: 8px; }



    #top_wrapper { padding: 30px 0 30px; }
    #top_inner #top_right #tr_inner { padding-right: 70px; }

    #top_inner #top_right #tr_inner ul#navigation { display: block; }
    #top_inner #top_right #tr_inner ul#navigation li.nav_home_item { display: block; }

    #top_inner #top_right #tr_inner ul li.divider { border-left: 0; }

    #top_inner #top_right #tr_inner ul#navigation li a { display: block;padding: 12px 18px;border-bottom: 1px dotted #6f6248;font-weight: 200;color: #000; }

    ul#navigation li.has_dropdown { position: relative; }
    ul.nav_dropdown { position: static !important;transform: none !important;box-shadow: none !important;border-radius: 0 !important;margin-top: 0 !important;padding: 0 !important;background: #f5f3ef !important;flex-direction: column !important; }
    ul.nav_dropdown:before { display: none !important; }
    ul.nav_dropdown li { width: 100% !important; }
    ul.nav_dropdown li a { padding: 10px 18px 10px 32px !important;font-size: 15px !important;border-bottom: 1px dotted #d5cfc5 !important; }
    ul.nav_dropdown li:last-child a { border-bottom: 0 !important; }


    #discover_london { padding: 0 4%; }
    #discover_london #discover_top .block { padding: 0 8px; }
    #discover_london #discover_top .block .block_inner span { padding: 10px 14px;bottom: 20px;font-size: 14px;white-space: nowrap; }

    #discover_london h3 { font-size: 20px;margin-bottom: 20px; }

    #london_living #ll_inner h3 { font-size: 30px;font-weight: 500; }

    #home_hero_outer { height: 460px; }
    #home_hero_layer_2 { padding: 36px 20px; }
    #home_hero_layer_2 #headers h1 { font-size: 28px;margin-bottom: 8px; }
    #home_hero_layer_2 #headers h2,
    #home_hero_layer_2 #headers .hero_sub { font-size: 16px;font-weight: 400; }

    /* Search-page landing layout, half-height hero. */
    #home_hero_outer.search_landing_hero { height: 300px; }
    #home_hero_outer.search_landing_hero #home_hero_layer_2 { padding: 20px 20px; }
    #home_hero_outer.search_landing_hero #home_hero_layer_2 #headers h1 { font-size: 20px;font-weight: 400;line-height: 1.35; }

    /* Search bar wraps onto two rows at this breakpoint so the button
       always has room. Previously this only kicked in at 768px and the
       button got squashed in the 769–988px range. */
    .search_outer { display: flex;flex-wrap: wrap;background: #e9e9e9;width: 100%;margin: auto;border-radius: 30px;padding: 10px; }
    .search_outer .search_field:first-child { width: 100%;margin-right: 0;margin-bottom: 8px; }
    .search_outer .search_field:nth-child(2n) { width: 60%;margin-right: 2%; }
    .search_field #search_dates { width: 100%;padding: 14px 20px 14px 20px;font-size: 14px; }
    .search_field #search_dates img { max-width: 20px;margin-right: 8px; }

    .search_field #search_guests { padding: 14px 20px 14px 20px;font-size: 14px; }
    .search_field #search_guests img { max-width: 20px; }
    .search_field #search_guests img:first-child { margin-right: 8px; }
    .search_field #search_guests img:last-child { margin-left: 8px; }
    .search_field #search_guests #guests { width: 80px;font-size: 13px; }
    .search_button { width: 38%;padding: 10px 20px;font-size: 13px; }
    .search_button img { width: 14px;margin-right: 6px; }

    #reviews_summary ul.stars li img { width: 48px; }

    #faq_summary #fs_left { width: 100%;border-radius: 30px;height: 350px;margin-bottom: 20px; }
    #faq_summary #fs_right { width: 100%;padding-left: 0px; }

    #faq_summary #fs_right h3 { font-size: 28px; }

    #translate_upper_container { left: 50%;transform: translateX(-50%); }
    #currency_upper_container { left: 50%;transform: translateX(-50%); }


    }

@media only screen and (max-width: 768px) {

    /* Shorter hero on phones (was filling the whole viewport on small devices). */
    #home_hero_outer { height: 460px; }

    /* Stack the search controls so the guest stepper and Search button each get
       their own full-width row — they were overlapping at phone widths where the
       previous 60% / 38% split left too little room. */
    .search_outer .search_field:nth-child(2n) { width: 100%;margin-right: 0;margin-bottom: 8px; }
    .search_field #search_guests { width: 100%;justify-content: center; }
    .search_button { width: 100%; }

    /* Tighter vertical rhythm + edge-to-edge Discover London on phones. */
    .section_spacer { margin-bottom: 40px; }
    #discover_london { padding: 0; }

    a#mobile_menu { right: 12px;top: 12px;width: 36px;height: 36px;border-radius: 25px; }
    a#mobile_menu img { width: 20px; }

    #padded_wrapper { padding: 30px 0 70px; }

    #reg_form_wrapper { padding: 16px 20px; }

    #login_form_wrapper { max-width: 100%;padding: 16px 20px; }
    #login_form_wrapper h1 { font-size: 18px; }

    a.third_party_signin { padding: 5px; }
    a.third_party_signin .signin { font-size: 13px; }
    a.third_party_signin .logo { width: 48px;height: 48px; }
    a.third_party_signin .logo img { width: 32px; }


    .account_field_wrapper input { padding: 12px;font-size: 13px; }
    .account_field_wrapper a { right: 12px;width: 18px; }

    button.account_button { font-size: 13px;padding: 14px; }
    a.account_button { font-size: 13px;padding: 14px; }

    ul.search_results li { width: 100%;padding; 0; }
    ul.search_results li a h2 { font-size: 15px; }
    ul.search_results li a h3 { font-size: 12px; }

    .tb { border: 1px solid #333;padding: 14px; }

    ul#account_menu li { width: 100%;margin-right: 0;margin-bottom: 2px; }

    .account_form_row .left { width: 100%;padding-right: 26px;margin-bottom: 6px; }
    .account_form_row .left.req:after { width: 12px;height: 12px;right: 0px;margin-top: -6px; }
    .account_form_row .right { width: 100%; }

    .account_form_row .tb { width: 100%; }
    .account_form_row .right.multiple { flex-wrap: wrap; }

    .account_form_row input:nth-child(odd) { margin-right: 0px; }
    .account_form_row select:nth-child(odd) { margin-right: 0px;margin-bottom: 6px; }

    #main_amenities { padding: 16px 20px; }
    #main_amenities ul li { width: 100%;margin-bottom: 5px; }

    .search_result { padding: 5px; }
    .search_result .srleft { width: 100%; }
    .search_result .srleft .thumb { padding-top: 60%; }
    .search_result .srright { width: 100%;padding-left: 15px;padding-right: 15px;padding-bottom: 15px; }
    .search_result .srright h2 { font-size: 15px;margin-bottom: 6px; }
    /* Stack the options on phones: price chip + "You Save" share row one,
       "More info" becomes a full-width button on row two — stops the price
       pill wrapping to two lines and the three items getting squashed. */
    .search_result .srright .options_row { flex-wrap: wrap;align-items: center;justify-content: flex-start;gap: 8px 12px; }
    .search_result .srright .options_row .opt { border-radius: 20px;padding: 8px 16px; }
    .search_result .srright .options_row .opt:first-child { margin-right: 0px; }
    .search_result .srright .options_row .sr_save { margin-right: 0; }
    .search_result .srright .options_row .opt:last-child { width: 100%;text-align: center; }
    /* At mobile the photo becomes full-width, so the row's top-right corner
       collides with the rating chip. Hide the subtle discount tag here — the
       price chip in the options_row already shows the discounted total. */
    .sr_discount_badge { display: none; }

    .slide_arrow img { width: 12px; }

    #reviews_summary { font-size: 18px; }
    #reviews_summary ul.stars li { margin: 0 5px; }
    #reviews_summary ul.stars li img { width: 30px; }

    /* Search-bar wrap rules now applied at the 988px breakpoint above. */

    #home_hero_outer { height: 600px; }

    #home_hero_layer_2 { padding: 30px 15px 15px; }
    #home_hero_layer_2 #headers h1 { font-size: 24px;margin-bottom: 6px; }
    #home_hero_layer_2 #headers h2,
    #home_hero_layer_2 #headers .hero_sub { font-size: 14px;font-weight: 400; }

    #discover_london #discover_top .block { width: 100%;padding: 0; }
    #discover_london #discover_top .block:first-child { margin-bottom: 20px; }

    #discover_london #discover_top .block .block_inner span { bottom: 10px; }

    #london_living #ll_inner h3 { font-size: 22px; }
    /* iOS Safari ignores background-attachment: fixed; explicit scroll
       avoids the cropped-still-frame look on phones. */
    #london_living { background-attachment: scroll; }
    #reviews_summary ul.logos li { margin: 0 14px 20px; }

    #faq_summary #fs_right h3 { font-size: 24px; }
    .faq_row h4 { font-size: 16px; }

    a.slide_prev { left: -12px !important; }
    a.slide_next { right: -12px !important; }

    #footer_lower { padding: 30px 30px 30px; }
    #footer_lower_inner .block { width: 100%; }
    #footer_lower_inner .block:first-child { margin-bottom: 30px; }

    #top_wrapper { padding: 15px 0 15px; }
    #top_inner { flex-wrap: wrap; }
    #top_inner #top_left { width: 100%; }

    #top_inner #top_left img { margin: 0 auto 10px;width: 70%; }
    #top_inner #top_right { width: 100%; }
    #top_inner #top_right #tr_inner { justify-content: center;padding-right: 0; }
    #top_inner #top_right #tr_inner ul { font-size: 13px; }
    #top_inner #top_right #tr_inner ul li { margin-right: 22px; }

    #top_inner #top_right #tr_inner #lang_currency { padding-left: 0; }

    #translate_top a img.globe { width: 20px; }
    #currency_top a img.coins { width: 20px; }

    .cms h3 { font-size: 18px; }
    .cms h2 { font-size: 22px; }

    .account_booking { padding: 15px 20px; }
    .account_booking .ab_left { width: 100%;margin-bottom: 12px; }
    .account_booking .ab_left .thumb { border-radius: 14px; }
    .account_booking .ab_right { width: 100%;padding-left: 0px; }
    .account_booking .ab_right h2 { font-size: 15px;margin-bottom: 10px; }
    .account_booking .ab_right .dates { border-radius: 20px;padding: 8px 10px; }
    .account_booking .ab_right .dates img { max-width: 16px;max-height: 16px; }
    .account_booking .ab_right .dates span { margin-left: 10px; }

    .account_booking .ab_right .primary_wrapper { margin-bottom: 15px; }
    .account_booking .ab_right .primary { border-radius: 20px;padding: 8px 10px;flex-wrap: wrap; }
    .account_booking .ab_right .primary .status { border-radius: 20px;font-size: 12px;margin-left: 0;width: 100%;margin-top: 6px; }


    .account_main { padding: 12px 14px;border-radius: 16px; }

    .am_row .am_left { width: 40%; }
    .am_row .am_right { width: 60%; }


    .account_half { width: 100%;margin-right: 0;margin-bottom: 12px; }


    }

/* Discount-code rendering on the booking summary */
.price_strikethrough { color: #888; margin-right: 6px; text-decoration: line-through; }
.discount_saving_caption { margin-top: 6px; color: #21974A; font-weight: 600; text-align: right; }


/* Properties index page */
.properties_intro { padding: 40px 0 20px; }
.properties_intro h1 { font-size: 36px; margin: 0 0 12px; }
.properties_intro p { max-width: 720px; margin: 0; color: #555; }

.properties_map_section { padding: 20px 0; }
.properties_map { width: 100%; height: 500px; }

.properties_grid_section { padding: 30px 0 60px; }
.properties_grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
@media (max-width: 1023px) { .properties_grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 767px)  { .properties_grid { grid-template-columns: 1fr; } }
.property_card { display: block; }

/* Properties map info window */
.map_infowindow { display: flex; gap: 12px; min-width: 240px; max-width: 320px; }
.map_infowindow_thumb { width: 100px; height: 80px; background-size: cover; background-position: center; flex: 0 0 auto; border-radius: 4px; }
.map_infowindow_body h3 { margin: 0 0 8px; font-size: 15px; line-height: 1.3; }
.map_infowindow_body .map_infowindow_meta { margin: 0 0 8px; font-size: 12px; color: #666; line-height: 1.4; }
.map_infowindow_body .link_button { font-size: 13px; padding: 6px 12px; }

/* Property page — From £X / night headline */
.property_price_headline { display: inline-flex; align-items: baseline; gap: 10px; margin: 6px 0 18px; padding: 8px 14px; background: #f5efe5; border-radius: 4px; flex-wrap: wrap; }
.property_price_headline .price_from { font-size: 13px; color: #777; text-transform: uppercase; letter-spacing: 0.5px; }
.property_price_headline .price_was { font-size: 16px; color: #888; }
.property_price_headline .price_was del { text-decoration: line-through; }
.property_price_headline .price_amount { font-size: 28px; font-weight: 700; color: #222; }
.property_price_headline .price_period { font-size: 14px; color: #777; }

/* Headline placeholder CTA shown when no quote exists yet — same shape as the
   real headline so the page doesn't jump when the price arrives. */
#property_price_headline_wrap { margin: 6px 0 18px; }
.select_dates_for_pricing { font-size: 14px; padding: 12px 24px; display: inline-flex;align-items: center;gap: 10px; }
.select_dates_for_pricing .select_dates_arrow { display: inline-block;animation: select_dates_bounce 1.6s ease-in-out infinite; }
@keyframes select_dates_bounce { 0%,100% { transform: translateY(0); } 50% { transform: translateY(4px); } }

/* --- Booking stepper (Guests -> ID -> Pay) --- */
.booking_stepper { list-style: none;display: flex;gap: 0;padding: 0;margin: 0 0 26px;align-items: stretch;counter-reset: bookstep; }
.booking_stepper .step { flex: 1;display: flex;align-items: center;gap: 10px;padding: 12px 14px;background: #f6f3ee;border: 1px solid #e7dfd2;color: #777;font-size: 13px;font-weight: 500;position: relative; }
.booking_stepper .step + .step { border-left: 0; }
.booking_stepper .step:first-child { border-top-left-radius: 8px;border-bottom-left-radius: 8px; }
.booking_stepper .step:last-child  { border-top-right-radius: 8px;border-bottom-right-radius: 8px; }
.booking_stepper .step_num { display: inline-flex;align-items: center;justify-content: center;width: 24px;height: 24px;border-radius: 50%;background: #d8cfbe;color: #fff;font-size: 12px;font-weight: 700;flex: 0 0 24px; }
.booking_stepper .step_current { background: #fff;border-color: #6f6248;color: #222;font-weight: 600;box-shadow: inset 0 -3px 0 #6f6248; }
.booking_stepper .step_current .step_num { background: #6f6248; }
.booking_stepper .step_done { background: #eef3ee;color: #2e6c3c; }
.booking_stepper .step_done .step_num { background: #2e6c3c; }

/* --- Profile-incomplete gate on the /book Guests step --- */
.booking_block_panel { background: #fff7e6;border: 1px solid #e6c98a;border-radius: 10px;padding: 18px 22px;margin: 0 0 22px; }
.booking_block_panel h3 { margin: 0 0 6px;font-size: 17px;color: #6b4f00;font-weight: 600; }
.booking_block_panel p { margin: 0 0 10px;font-size: 14px;color: #555;line-height: 1.55; }
.booking_block_panel ul { margin: 0 0 10px 18px;padding: 0;font-size: 14px;color: #444;line-height: 1.7; }
.booking_block_panel ul li { margin-bottom: 4px; }
.booking_block_panel .booking_block_hint { margin: 0;font-size: 13px;color: #777;font-style: italic; }
.booking_block_panel .un { color: #6b4f00;font-weight: 600; }

/* Disabled Proceed button (CSS-side companion to the disabled HTML attribute) */
button.account_button.button_disabled,
button.account_button[disabled] { background: #b6b6b6;cursor: not-allowed;opacity: 0.85; }
button.account_button.button_disabled:hover { background: #b6b6b6; }

/* --- Price-lock countdown banner on /book --- */
.price_lock_banner { background: #eef3f8;border: 1px solid #cfdde9;border-radius: 8px;padding: 12px 16px;margin: 0 0 22px;font-size: 14px;color: #234; }
.price_lock_banner_inner { display: flex;align-items: center;gap: 12px;flex-wrap: wrap; }
.price_lock_banner .price_lock_icon { font-size: 17px; }
.price_lock_banner .price_lock_text { flex: 1 1 auto; }
.price_lock_banner .price_lock_text strong { color: #0a3559; }
.price_lock_banner .price_lock_countdown { font-variant-numeric: tabular-nums;font-weight: 600;color: #0a3559; }
.price_lock_banner .price_lock_refresh { flex: 0 0 auto;color: #0a3559;font-weight: 600;text-decoration: underline; }
.price_lock_banner.expired { background: #fdecec;border-color: #e6b4b4; }
.price_lock_banner.expired .price_lock_text strong,
.price_lock_banner.expired .price_lock_refresh { color: #8a1a1a; }
@media only screen and (max-width: 600px){
    .booking_stepper .step_label { display: none; }
    .booking_stepper .step { justify-content: center; }
    }

/* Comparison rows + asterisk note inside the price breakdown ul.prices_all. */
ul.prices_all li.total_price_compare { color: #777; border-top: 1px solid #eadfc6; padding-top: 8px; }
ul.prices_all li.total_price_compare span:nth-child(even) { font-weight: 500; }
ul.prices_all li.total_price_member { color: #21974A; font-weight: 700; font-size: 16px; margin-top: 4px; }
ul.prices_all li.total_price_member b { font-size: 18px; }
ul.prices_all li.discount_aster_note { display: block; margin-top: 10px; font-size: 12px; color: #555; line-height: 1.5; }
ul.prices_all li.discount_aster_note a { color: #6f6248; font-weight: 600; text-decoration: underline; }

/* "You Save: £X" + the "?" why-button (savings explainer), site-wide */
.you_save { color: #21974A; font-weight: 700; white-space: nowrap; }
.why_savings { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-left: 6px; border: 1.5px solid #6f6248; border-radius: 50%; color: #6f6248; font-size: 12px; font-weight: 700; line-height: 1; text-decoration: none; cursor: pointer; vertical-align: middle; transition: background 0.25s ease, color 0.25s ease; }
.why_savings:hover { background: #6f6248; color: #fff; }
ul.prices_all li.you_save_row { color: #21974A; font-weight: 700; }
ul.prices_all li.you_save_row b { font-size: 16px; }
.split_row.you_save_row, .split_row.you_save_row b { color: #21974A; }
/* Search-result saving note: plain green text (NOT an .opt pill) sitting
   between the price pill and the More info button. */
.search_result .srright .options_row .sr_save { display: inline-flex;align-items: center;margin-right: 10px;font-size: 13px; }
#savings_overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 10000; }
.savings_overlay_box { position: relative; max-width: 440px; margin: 18vh auto 0; background: #fff; border-radius: 12px; padding: 28px 30px; box-shadow: 0 12px 40px rgba(0,0,0,0.25); }
.savings_overlay_box h3 { font-size: 19px; font-weight: 600; color: #222; margin-bottom: 10px; }
.savings_overlay_box p { font-size: 14px; color: #444; line-height: 1.6; margin: 0; }
#savings_overlay_close { position: absolute; top: 10px; right: 16px; font-size: 26px; color: #888; text-decoration: none; line-height: 1; }
#savings_overlay_close:hover { color: #222; }
@media only screen and (max-width: 600px){
    .savings_overlay_box { margin: 14vh 16px 0; padding: 22px 20px; }
    }

/* Property page — booking panel collapse */
.book_availability_toggle { display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 14px 18px; background: #fff; border: 1px solid #e0d9c8; border-radius: 8px; text-decoration: none; color: inherit; margin-top: 20px; }
.book_availability_toggle h2 { margin: 0; font-size: 18px; }
.book_availability_toggle .toggle_chevron { transition: transform 0.2s; display: inline-block; font-size: 16px; }
.book_availability_toggle.is_open { border-radius: 8px 8px 0 0; }
.book_availability_toggle.is_open .toggle_chevron { transform: rotate(180deg); }
.book_availability_panel { display: none; padding: 24px 18px 6px; background: #fff; border: 1px solid #e0d9c8; border-top: 0; border-radius: 0 0 8px 8px; }
.book_availability_panel.is_open { display: block; }
.book_availability_panel #check_availability h2 { display: none; }

/* News-flash toast — bottom-left social-proof pop-up */
.news_flash_toast {
    position: fixed;
    left: 20px;
    bottom: 20px;
    z-index: 9000;
    max-width: 340px;
    width: max-content;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.12);
    padding: 12px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
    line-height: 1.4;
    color: #333;
    transform: translateX(-110%);
    opacity: 0;
    transition: transform 0.25s ease-out, opacity 0.25s ease-out;
}
.news_flash_toast.is_visible { transform: translateX(0); opacity: 1; }
.news_flash_dot {
    flex: 0 0 auto;
    width: 10px; height: 10px;
    background: #21974A;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(33,151,74,0.15);
}
.news_flash_text {
    flex: 1 1 auto;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.news_flash_close {
    flex: 0 0 auto;
    width: 24px; height: 24px;
    border: 0;
    background: transparent;
    color: #888;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    padding: 0;
    border-radius: 4px;
}
.news_flash_close:hover { color: #222; background: #f2f2f2; }

@media (max-width: 480px){
    /* Cap the toast at 70% of the viewport so a long message can't overhang the
       page (base width:max-content was uncapped here previously). */
    .news_flash_toast { left: 12px; right: auto; max-width: 70%; }
}


/* -----------------------------------------------------------------------------
   /join page — top full-width hero, member benefits, how-it-works, and the
   secondary "book direct" rotating-photo hero further down the page.
   -------------------------------------------------------------------------- */

/* Full-width top hero. Mirrors the .location_hero visual treatment on the
   /locations-* pages: parallax-fixed background photo, dark bottom-weighted
   gradient overlay, centred headline. Static single photograph (no Slick). */
.join_top_hero { position: relative;height: 450px;overflow: hidden; }
.join_top_hero_image { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-size: cover;background-position: center;background-repeat: no-repeat;background-attachment: fixed; }
.join_top_hero_overlay { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.55) 100%);z-index: 10; }
.join_top_hero_content { position: absolute;bottom: 0;left: 0;width: 100%;z-index: 20;padding: 60px 0; }
.join_top_hero_content .page_width { text-align: center; }
.join_top_hero_content h1 { color: #fff;font-size: 42px;font-weight: 600;line-height: 1.15;text-shadow: 0 3px 10px rgba(0,0,0,0.4);margin: 0;max-width: 900px;margin-left: auto;margin-right: auto; }

/* Half-height hero variant for the Join page. Reuses #home_hero_outer markup
   (slider + dark layer + headline layer) so the same Slick init drives it,
   but sized smaller (330px desktop / 300px ≤988px) and with hero copy that
   reads as a value-prop statement rather than a page title. */
#home_hero_outer.join_hero { height: 330px; }
#home_hero_outer.join_hero #home_hero_layer_2 { padding: 30px 40px;align-content: center; }
#home_hero_outer.join_hero #home_hero_layer_2 #headers h2 { font-size: 40px;font-weight: 600;line-height: 1.15;max-width: 900px;margin: 0 auto 14px;color: #fff; }
#home_hero_outer.join_hero #home_hero_layer_2 #headers .hero_sub { font-size: 16px;font-weight: 300;line-height: 1.5;max-width: 760px;margin: 0 auto;color: #fff; }

.join_intro { text-align: center;max-width: 760px;margin: 0 auto 50px; }
.join_intro_heading { font-size: 28px;font-weight: 500;color: #222;margin-bottom: 14px; }
.join_intro_text { font-size: 16px;line-height: 1.6;color: #555;margin-bottom: 28px; }
.join_intro_text b { color: #222; }
.join_cta { padding: 14px 36px;font-size: 15px; }

.join_section { margin-bottom: 60px; }
.join_h2 { font-size: 26px;font-weight: 500;text-align: center;margin-bottom: 30px;color: #222; }

/* Benefits — five cards in a responsive grid. Last row centres any orphans. */
.benefits_grid { display: grid;grid-template-columns: repeat(3, 1fr);gap: 20px;list-style: none;padding: 0;margin: 0;justify-items: center; }
.benefit_card { background: #f5efe5;border-radius: 16px;padding: 28px 24px;text-align: center;width: 100%;max-width: 360px;transition: transform 0.3s ease, box-shadow 0.3s ease; }
.benefit_card:hover { transform: translateY(-4px);box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
.benefit_icon { display: flex;justify-content: center;align-items: center;width: 72px;height: 72px;margin: 0 auto 18px;background: #fff;border-radius: 50%;box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
.benefit_icon img { width: 38px;height: 38px;display: block; }
.benefit_card h3 { font-size: 17px;font-weight: 600;color: #222;margin-bottom: 10px; }
.benefit_card p { font-size: 14px;line-height: 1.55;color: #555;margin: 0; }

/* How it works — numbered vertical step list. */
.how_it_works { list-style: none;padding: 0;margin: 0 auto;max-width: 760px;counter-reset: step; }
.how_step { display: flex;gap: 22px;align-items: flex-start;padding: 22px 0;border-bottom: 1px dotted #d5cfc5; }
.how_step:last-child { border-bottom: 0; }
.how_step_num { flex: 0 0 auto;width: 44px;height: 44px;border-radius: 50%;background: #6f6248;color: #fff;font-size: 18px;font-weight: 700;display: flex;align-items: center;justify-content: center; }
.how_step_body { flex: 1 1 auto; }
.how_step_body h3 { font-size: 17px;font-weight: 600;color: #222;margin-bottom: 6px; }
.how_step_body p { font-size: 14px;line-height: 1.6;color: #555;margin: 0; }
.how_it_works_footer { text-align: center;font-size: 14px;color: #666;line-height: 1.6;max-width: 720px;margin: 28px auto 0;font-style: italic; }

/* Bottom call-to-action — only rendered for logged-out visitors. */
.join_bottom_cta { background: #f5efe5;border-radius: 20px;padding: 40px 30px;text-align: center;margin: 20px 0 40px; }
.join_bottom_cta h2 { font-size: 22px;font-weight: 500;margin-bottom: 8px;color: #222; }
.join_bottom_cta p { font-size: 14px;color: #666;margin-bottom: 20px; }

@media only screen and (max-width: 988px){
    .benefits_grid { grid-template-columns: repeat(2, 1fr); }
    .join_h2 { font-size: 22px; }
    .join_intro_heading { font-size: 22px; }
    .join_intro_text { font-size: 15px; }
    #home_hero_outer.join_hero { height: 300px; }
    #home_hero_outer.join_hero #home_hero_layer_2 { padding: 20px; }
    #home_hero_outer.join_hero #home_hero_layer_2 #headers h2 { font-size: 26px;margin-bottom: 10px; }
    #home_hero_outer.join_hero #home_hero_layer_2 #headers .hero_sub { font-size: 14px;line-height: 1.45; }
    .join_top_hero { height: 380px; }
    .join_top_hero_content { padding: 40px 0; }
    .join_top_hero_content h1 { font-size: 32px; }
    }

@media only screen and (max-width: 600px){
    .benefits_grid { grid-template-columns: 1fr;gap: 14px; }
    .benefit_card { padding: 22px 18px; }
    .how_step { gap: 16px;padding: 18px 0; }
    .how_step_num { width: 36px;height: 36px;font-size: 15px; }
    .join_bottom_cta { padding: 30px 20px; }
    #home_hero_outer.join_hero #home_hero_layer_2 #headers h2 { font-size: 22px; }
    #home_hero_outer.join_hero #home_hero_layer_2 #headers .hero_sub { font-size: 13px; }
    .join_top_hero { height: 320px; }
    .join_top_hero_image { background-attachment: scroll; }
    .join_top_hero_content { padding: 30px 0; }
    .join_top_hero_content h1 { font-size: 24px;line-height: 1.25; }
    }

/* -----------------------------------------------------------------------------
   /faq — standalone FAQ page (full list, native <details>/<summary> accordion)
   and the "View all FAQs" CTA dropped beneath the home-page snippet.
   -------------------------------------------------------------------------- */

.faq_page_header_image { margin: 6px 0 26px;border-radius: 16px;overflow: hidden; }
.faq_page_header_image img { display: block;width: 100%;height: auto;max-height: 300px;object-fit: cover; }

.faq_page_intro { font-size: 15px;line-height: 1.65;color: #555;max-width: 820px;margin: 0 0 36px; }
.faq_page_intro p:last-child { margin-bottom: 0; }

.faq_list { list-style: none;padding: 0;margin: 0 0 40px;max-width: 880px; }
.faq_item { margin-bottom: 12px; }
.faq_item details { background: #fff;border: 1px solid #e0d9c8;border-radius: 10px;overflow: hidden;transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.faq_item details[open] { border-color: #6f6248;box-shadow: 0 2px 10px rgba(0,0,0,0.04); }
.faq_item summary { list-style: none;cursor: pointer;padding: 16px 22px;display: flex;align-items: center;justify-content: space-between;gap: 18px;font-size: 16px;font-weight: 500;color: #222;line-height: 1.4; }
.faq_item summary::-webkit-details-marker { display: none; }
.faq_item summary:hover { background: #faf7f1; }
.faq_chevron { flex-shrink: 0;font-size: 14px;color: #6f6248;transition: transform 0.2s ease; }
.faq_item details[open] .faq_chevron { transform: rotate(180deg); }
.faq_item .faq_answer { padding: 0 22px 18px;color: #444;font-size: 14px;line-height: 1.65; }
.faq_item .faq_answer p:last-child { margin-bottom: 0; }

.faq_empty { font-size: 15px;color: #555;margin: 24px 0; }

.faq_contact_footer { text-align: center;padding: 36px 24px;background: #f5efe5;border-radius: 16px;margin: 30px 0 40px; }
.faq_contact_footer p { font-size: 15px;color: #333;margin-bottom: 14px; }

/* "View all FAQs" CTA on the home-page snippet. Right-aligned to sit beneath
   the highlight Q&A list without breaking its left-aligned flow. */
.faq_summary_cta { margin-top: 24px;text-align: right; }

@media only screen and (max-width: 768px){
    .faq_item summary { padding: 14px 16px;font-size: 15px;gap: 12px; }
    .faq_item .faq_answer { padding: 0 16px 14px; }
    .faq_contact_footer { padding: 28px 18px; }
    .faq_summary_cta { text-align: center; }
    }

/* -----------------------------------------------------------------------------
   Footer "book direct" banner. Emitted above the recently-viewed slider on
   every non-funnel page (see include_footer.php for the opt-out list).
   -------------------------------------------------------------------------- */

.book_direct_banner { background: #f5efe5;padding: 50px 0 44px;margin-top: 40px; }
.bdb_inner { text-align: center;max-width: 920px;margin: 0 auto;padding: 0 20px; }
.bdb_inner h2 { font-size: 28px;font-weight: 600;color: #222;line-height: 1.2;margin-bottom: 12px; }
.bdb_sub { font-size: 15px;line-height: 1.55;color: #555;max-width: 720px;margin: 0 auto 28px; }
.bdb_features { display: flex;flex-wrap: wrap;justify-content: center;gap: 14px 30px;list-style: none;padding: 0;margin: 0 0 30px; }
.bdb_features li { display: flex;align-items: center;gap: 10px;font-size: 14px;font-weight: 500;color: #333; }
.bdb_features li img { width: 30px;height: 30px;display: block;flex-shrink: 0; }
.bdb_cta { padding: 14px 36px;font-size: 14px; }

@media only screen and (max-width: 768px){
    .book_direct_banner { padding: 36px 0 32px;margin-top: 30px; }
    .bdb_inner h2 { font-size: 22px; }
    .bdb_sub { font-size: 14px;margin-bottom: 22px; }
    .bdb_features { gap: 12px 22px;margin-bottom: 22px; }
    .bdb_features li { font-size: 13px;gap: 8px; }
    .bdb_features li img { width: 24px;height: 24px; }
    }

@media only screen and (max-width: 480px){
    .bdb_features { flex-direction: column;align-items: flex-start;gap: 10px;max-width: 240px;margin-left: auto;margin-right: auto;margin-bottom: 22px; }
    .bdb_features li { width: 100%; }
    }


/* -----------------------------------------------------------------------------
   /group/<id>/... — Property Group landing (Phase 1 of multi-unit booking).
   Visual treatment mirrors .location_hero / .join_top_hero — parallax photo,
   bottom-weighted dark overlay, centred white headline.
   -------------------------------------------------------------------------- */

.group_top_hero { position: relative;height: 480px;overflow: hidden; }
.group_top_hero_image { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-size: cover;background-position: center;background-repeat: no-repeat;background-attachment: fixed; }
.group_top_hero_overlay { position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.6) 100%);z-index: 10; }
.group_top_hero_content { position: absolute;bottom: 0;left: 0;width: 100%;z-index: 20;padding: 60px 0; }
.group_top_hero_content .page_width { text-align: center; }
.group_top_hero_content h1 { color: #fff;font-size: 44px;font-weight: 600;line-height: 1.15;text-shadow: 0 3px 10px rgba(0,0,0,0.45);margin: 0 auto 12px;max-width: 900px; }
.group_top_hero_capacity { color: #fff;font-size: 17px;font-weight: 300;text-shadow: 0 2px 6px rgba(0,0,0,0.35);margin: 0;letter-spacing: 0.3px; }

/* Optional WYSIWYG description block under the hero. */
.group_intro { max-width: 880px;margin: 0 auto 40px;font-size: 15px;line-height: 1.7;color: #555; }
.group_intro p { margin-bottom: 14px; }
.group_intro p:last-child { margin-bottom: 0; }
.group_intro h2, .group_intro h3 { color: #222;margin-bottom: 12px; }

/* Optional group tour video — responsive 16:9, mirrors the location-page video. */
.group_video { margin: 0 auto 50px;text-align: center; }
.group_video_heading { font-size: 26px;font-weight: 300;margin-bottom: 28px;color: #222; }
.group_video_heading b { font-weight: 600; }
.group_video_wrapper { position: relative;padding-bottom: 56.25%;height: 0;overflow: hidden;border-radius: 30px;max-width: 960px;margin: 0 auto;box-shadow: 0 8px 30px #0002; }
.group_video_wrapper iframe { position: absolute;top: 0;left: 0;width: 100%;height: 100%;border: 0; }
@media only screen and (max-width: 768px){
    .group_video { margin-bottom: 36px; }
    .group_video_heading { font-size: 22px;margin-bottom: 22px; }
    .group_video_wrapper { border-radius: 20px; }
    }

/* /group-bookings marketing page */
.group_bookings_intro { max-width: 880px;margin: 40px auto 32px;font-size: 15px;line-height: 1.75;color: #555; }
.group_bookings_intro p { margin-bottom: 16px; }
.group_bookings_intro p:last-child { margin-bottom: 0; }
.group_bookings_callout { max-width: 880px;margin: 0 auto 50px;display: flex;align-items: center;justify-content: space-between;gap: 24px;flex-wrap: wrap;background: #f6f3ee;border: 1px solid #e7dfd2;border-radius: 16px;padding: 22px 28px; }
.group_bookings_callout_text { display: flex;flex-direction: column;gap: 4px; }
.group_bookings_callout_text strong { font-size: 18px;color: #222;font-weight: 600; }
.group_bookings_callout_text span { font-size: 14px;color: #666; }
.group_bookings_callout .link_button { white-space: nowrap;flex: 0 0 auto; }
.group_bookings_heading { font-size: 28px;font-weight: 500;text-align: center;margin-bottom: 6px;color: #222; }
.group_bookings_subheading { text-align: center;color: #777;font-size: 15px;max-width: 640px;margin: 0 auto 32px; }
.group_bookings_grid { display: grid;grid-template-columns: repeat(3, 1fr);gap: 28px;margin-bottom: 50px; }
.group_bookings_empty { text-align: center;color: #666;margin: 30px 0 50px; }
@media only screen and (max-width: 988px){
    .group_bookings_grid { grid-template-columns: repeat(2, 1fr); }
    }
@media only screen and (max-width: 600px){
    .group_bookings_grid { grid-template-columns: 1fr; }
    .group_bookings_callout { flex-direction: column;align-items: flex-start; }
    .group_bookings_heading { font-size: 23px; }
    }

.group_units_heading { font-size: 26px;font-weight: 500;text-align: center;margin-bottom: 6px;color: #222; }
.group_units_subheading { text-align: center;font-size: 14px;color: #666;margin-bottom: 30px; }

.group_units_grid { display: grid;grid-template-columns: repeat(3, 1fr);gap: 24px;margin-bottom: 40px; }
.group_unit_card_wrap { display: block; }

.group_empty { font-size: 15px;color: #555;text-align: center;padding: 40px 20px;background: #f5efe5;border-radius: 14px; }

/* "Part of <Group>" badge on /view/<id>/... — single-line discoverability
   strip sitting between the property H1 and the existing .vw_top_row. */
.property_group_badge { display: inline-block;margin: -6px 0 18px;padding: 8px 14px;background: #f5efe5;border-radius: 6px;font-size: 13px;color: #555; }
.property_group_badge a { color: #6f6248;font-weight: 600;text-decoration: none;border-bottom: 1px solid #6f6248; }
.property_group_badge a:hover { color: #6f6248;border-bottom-color: #6f6248; }

/* Group strip at the top of /search results — one card per group whose
   members are in the current search results. Bigger / more prominent than
   the property rows so groups feel like a first-class option. */
/* Search-results messaging for the group-only and empty cases. */
.search_no_single { font-size: 14px;line-height: 1.6;color: #555;background: #f5efe5;border-radius: 10px;padding: 14px 18px;margin: 0 0 20px; }
.search_no_results { font-size: 15px;line-height: 1.6;color: #555;padding: 30px 0;text-align: center; }
.search_no_results a { color: #6f6248;font-weight: 600; }

.search_group_strip { display: flex;flex-direction: column;gap: 12px;margin: 0 0 30px;padding: 24px;background: #faf7f1;border-radius: 14px;border: 1px solid #ece4d2; }
.search_group_strip_heading { font-size: 18px;font-weight: 600;margin: 0;color: #222; }
.search_group_strip_intro { font-size: 13px;color: #666;margin: 0 0 8px; }
.search_group_card { display: flex;align-items: stretch;gap: 18px;padding: 14px;background: #fff;border-radius: 10px;text-decoration: none;color: inherit;transition: transform 0.2s ease, box-shadow 0.2s ease; }
.search_group_card:hover { transform: translateY(-2px);box-shadow: 0 6px 18px rgba(0,0,0,0.08); }
.search_group_card_thumb { flex: 0 0 200px;background-size: cover;background-position: center;background-repeat: no-repeat;border-radius: 6px;min-height: 130px; }
.search_group_card_body { flex: 1 1 auto;display: flex;flex-direction: column;justify-content: center;padding: 6px 0; }
.search_group_card_body h3 { font-size: 18px;font-weight: 600;color: #222;margin: 0 0 6px; }
.search_group_card_meta { font-size: 13px;color: #555;margin: 0 0 10px; }
.search_group_card_cta { font-size: 13px;font-weight: 600;color: #6f6248;align-self: flex-start; }

@media only screen and (max-width: 988px){
    .group_top_hero { height: 380px; }
    .group_top_hero_content { padding: 40px 0; }
    .group_top_hero_content h1 { font-size: 32px; }
    .group_top_hero_capacity { font-size: 15px; }
    .group_units_grid { grid-template-columns: repeat(2, 1fr);gap: 18px; }
    .group_units_heading { font-size: 22px; }
    }

@media only screen and (max-width: 768px){
    .group_top_hero { height: 320px; }
    .group_top_hero_image { background-attachment: scroll; }
    .group_top_hero_content { padding: 30px 0; }
    .group_top_hero_content h1 { font-size: 26px;line-height: 1.25;margin-bottom: 8px; }
    .group_top_hero_capacity { font-size: 13px; }
    .group_units_grid { grid-template-columns: 1fr; }
    .search_group_card { flex-direction: column;gap: 12px; }
    .search_group_card_thumb { flex: 0 0 180px;width: 100%; }
    .property_group_badge { display: block;font-size: 12px; }
    }

/* -----------------------------------------------------------------------------
   Phase 2 — Multi-unit selector on /group/<id> + checkout summary on /book.
   -------------------------------------------------------------------------- */

/* Date/guests search form sits between the group hero and the unit grid. */
.group_date_form { margin: 0 0 30px;display: flex;justify-content: center; }

/* Unit card per-group selector — extends the existing .group_unit_card_wrap
   with cart state + a guest picker + an Add/Remove button. */
.group_unit_card { background: #fff;border: 1px solid #ece4d2;border-radius: 16px;padding: 16px;transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.group_unit_card.group_unit_card_in_cart { border-color: #21974A;box-shadow: 0 0 0 2px rgba(33,151,74,0.15); }
.group_unit_card .thumb_outer { border-radius: 10px;overflow: hidden;margin-bottom: 12px;position: relative; }
.group_unit_card h3 { font-size: 17px;font-weight: 600;margin-bottom: 8px;line-height: 1.3;color: #222; }

.group_unit_price { display: flex;align-items: baseline;gap: 8px;margin-bottom: 14px; }
.group_unit_price b { font-size: 18px;color: #222; }
.group_unit_price del { font-size: 13px;color: #888;text-decoration: line-through; }
.group_unit_price_period { font-size: 12px;color: #666; }

.group_unit_form { display: flex;align-items: center;justify-content: space-between;gap: 10px;flex-wrap: wrap; }
.group_unit_guest_picker { display: flex;align-items: center;gap: 8px;font-size: 13px;color: #555; }
.group_unit_guest_picker select { padding: 6px 8px;border: 1px solid #ccc;border-radius: 6px;font-size: 13px;background: #fff; }
.group_unit_guest_picker select:disabled { opacity: 0.7;background: #f5f5f5; }

.group_unit_cta { border: 0;cursor: pointer;padding: 9px 18px;border-radius: 24px;font-size: 13px;font-weight: 600;text-decoration: none;font-family: inherit;transition: all 0.2s ease; }
.group_unit_cta_add { background: #21974A;color: #fff; }
.group_unit_cta_add:hover { background: #1c8540; }
.group_unit_cta_remove { background: #fff;color: #c33;border: 1px solid #c33; }
.group_unit_cta_remove:hover { background: #fcecec; }

.group_unit_unavailable { font-size: 13px;color: #c33;font-weight: 500;margin-bottom: 10px; }
.group_unit_view_alt, .group_unit_view { width: 100%;justify-content: center;padding: 10px 16px;font-size: 13px; }

/* Floating group cart summary — fixed bottom-right on desktop, full-width
   inline on mobile. The visitor can collect units then "Continue to checkout". */
.group_cart_summary { position: fixed;bottom: 20px;right: 20px;width: 320px;max-height: 70vh;overflow-y: auto;background: #fff;border-radius: 14px;box-shadow: 0 6px 30px rgba(0,0,0,0.18);padding: 20px;z-index: 600; }
.group_cart_summary h3 { font-size: 16px;font-weight: 600;color: #222;margin: 0 0 12px;border-bottom: 1px solid #ece4d2;padding-bottom: 10px; }
.group_cart_units { list-style: none;padding: 0;margin: 0 0 14px; }
.group_cart_units li { padding: 8px 0;border-bottom: 1px dotted #ece4d2; }
.group_cart_units li:last-child { border-bottom: 0; }
.group_cart_unit_name { font-size: 13px;font-weight: 600;color: #222;line-height: 1.3; }
.group_cart_unit_meta { font-size: 12px;color: #666;margin-top: 2px; }

.group_cart_totals { margin-bottom: 16px;font-size: 13px;color: #555; }
.group_cart_totals .split_row { display: flex;justify-content: space-between;padding: 4px 0; }
.group_cart_totals .group_cart_total { padding-top: 8px;border-top: 1px solid #ece4d2;margin-top: 6px;font-size: 15px;color: #222; }
.group_cart_totals .group_cart_total b { font-size: 18px;color: #21974A; }

.group_cart_checkout { display: block;width: 100%;text-align: center;padding: 12px;font-size: 14px;border: 0;cursor: pointer;background: #6f6248;color: #fff;border-radius: 24px;font-weight: 600;font-family: inherit;transition: background 0.2s ease; }
.group_cart_checkout:hover { background: #6f6248; }

.group_cart_clear_form { margin-top: 10px;text-align: center; }
.group_cart_clear { background: none;border: 0;color: #999;font-size: 12px;cursor: pointer;text-decoration: underline;font-family: inherit; }
.group_cart_clear:hover { color: #555; }

@media only screen and (max-width: 988px){
    .group_cart_summary { position: static;width: 100%;max-height: none;margin-top: 30px;box-shadow: 0 2px 12px rgba(0,0,0,0.08); }
    }

/* Group booking summary on /book — shown in the .bright column instead of
   the single-property summary when in group mode. */
.group_summary_units { list-style: none;padding: 0;margin: 0 0 12px; }
.group_summary_units li { padding: 8px 0;border-bottom: 1px dotted #ece4d2; }
.group_summary_units li:last-child { border-bottom: 0; }
.group_summary_unit_meta { font-size: 12px;color: #666;margin-top: 2px; }
.group_summary_kyc_note { font-size: 12px;color: #666;font-style: italic;margin-top: 10px;line-height: 1.45; }

/* Group badge on a single booking row in the visitor's account page. */
.account_group_badge { font-size: 12px;color: #21974A;background: #e8f4ec;padding: 4px 10px;border-radius: 12px;display: inline-block;margin: 4px 0 8px;font-weight: 500; }

/* ============================================================================
   UX hardening — touch targets, tap latency, reduced motion (design review)
   ============================================================================ */

/* Remove the 300ms tap delay and prevent double-tap zoom on controls. */
a, button, input[type="submit"], input[type="button"], .search_button, .link_button,
.minus_guest, .plus_guest, .slide_arrow, .translate_toggle, .currency_toggle { touch-action: manipulation; }

/* Guest -/+ steppers: extend the tappable area to >=44px wide and let them
   fill the full height of the guests pill (align-self: stretch) so the tap
   target is tall without inflating the search-bar height. The icon inside
   keeps its size. */
.minus_guest, .plus_guest { display: inline-flex; align-items: center; justify-content: center; align-self: stretch; min-width: 44px; cursor: pointer; }

/* Carousel arrows: the 30px icon gets a padded hit area (~46px). */
.slide_arrow { padding: 8px; }

/* Language / currency toggles: raise the tap height to ~44px. */
.translate_toggle, .currency_toggle { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 4px; }

/* Respect users who ask for reduced motion: neutralise transitions/animations,
   stop the looping cues, and drop parallax to a normal scroll. */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
        scroll-behavior: auto !important;
    }
    #london_living, .location_hero_image, .project_hero_image, .join_top_hero_image,
    .group_top_hero_image { background-attachment: scroll !important; }
    .select_dates_for_pricing .select_dates_arrow { animation: none !important; }
}

/* ============================================================================
   Full-card clickable property tiles (replaces the per-tile "More details &
   availability" / "View group" buttons). The whole tile is now one link.
   ============================================================================ */
.prop_thumb_full_link { display: block; text-decoration: none; color: inherit; cursor: pointer; }
.prop_thumb_full_link:hover, .prop_thumb_full_link:focus { text-decoration: none; color: inherit; }
/* Stats stay their neutral grey even though they're inside the link. */
.prop_thumb_full_link .prop_thumb_stats li { color: #6f6248; }
/* Clickability cue now the explicit button is gone: title shifts to brand
   gold on card hover (the image already zooms via .prop_thumb:hover .thumb). */
.prop_thumb_full_link h3 { transition: color 0.2s ease; }
.prop_thumb:hover .prop_thumb_full_link h3,
.property_thumbnail:hover .prop_thumb_full_link h3 { color: #6f6248; }
/* Tidy the spacing left behind by the removed button. */
.prop_thumb .prop_thumb_full_link .prop_thumb_stats { margin-bottom: 4px; }

/* Property full address shown beneath the map on /view (sourced from
   site_properties.publicAddress). Map-pin icon + address on one line. */
.view_address { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 14px; line-height: 1.4; color: #555; }
.view_address_icon { width: 16px; height: 16px; flex-shrink: 0; color: #6f6248; }
.view_address span { min-width: 0; }

/* "Where you'll sleep" cards on /view (Airbnb-style). */
.where_you_sleep { margin: 8px 0 28px; }
.wys_heading { font-size: 20px;font-weight: 600;color: #222;margin-bottom: 14px; }
.wys_cards { display: grid;grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));gap: 12px; }
.wys_card { border: 1px solid #e6e1d6;border-radius: 12px;padding: 14px 16px;background: #fff; }
.wys_icon { width: 26px;height: 26px;color: #6f6248;display: block;margin-bottom: 10px; }
.wys_title { font-size: 15px;font-weight: 600;color: #222;line-height: 1.3; }
.wys_sub { font-size: 13px;color: #555;margin-top: 3px;line-height: 1.4; }
/* Per-room tiles (photo or bed-icon) — Airbnb photo-tour style. */
.wys_rooms { display: grid;grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));gap: 16px; }
.wys_room { min-width: 0; }
.wys_room_media { display: block;position: relative;width: 100%;padding-top: 68%;background-size: cover;background-position: center;background-color: #f1efe9;border-radius: 12px;border: 1px solid #e6e1d6;overflow: hidden;text-decoration: none; }
a.wys_room_media { cursor: pointer;transition: transform 0.25s ease; }
a.wys_room_media:hover { transform: scale(1.02); }
.wys_room_noimg { display: flex;align-items: center;justify-content: center; }
.wys_room_noimg .wys_icon { position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 34px;height: 34px;margin: 0;color: #6f6248; }
.wys_room_count { position: absolute;right: 8px;bottom: 8px;background: rgba(0,0,0,0.6);color: #fff;font-size: 11px;font-weight: 600;padding: 2px 8px;border-radius: 20px;line-height: 1.6; }
.wys_room_hidden { display: none; }
.wys_room_name { font-size: 15px;font-weight: 600;color: #222;margin-top: 9px;line-height: 1.3; }
.wys_room_beds { font-size: 13px;color: #555;margin-top: 2px;line-height: 1.4; }
@media only screen and (max-width: 600px){
    .wys_cards { grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); }
    .wys_rooms { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));gap: 12px; }
    .wys_heading { font-size: 18px; }
    }

