Our clients near Cowbridge didn't just want a bathroom that looked good in photographs. They wanted to feel something every time they walked in: calm, relaxation, a genuine sense of escape. That brief shaped every material decision in the room.
Warm, stone-effect wall tiles run floor to ceiling through the wet areas, paired with a darker wood-effect ceramic floor for contrast and grounding. A simple chrome finish was chosen for the brassware, letting the earthy palette take centre stage, while a large vanity unit with integrated sink and sculpted drawers offers ample, well-hidden storage.
The standout feature is a versatile double-ended bath set against an illuminated niche, built into a false wall. A luxury only possible because we had the space to design for it properly, rather than fitting around existing constraints. A soft, pink-tinted wall colour finishes the room with a fresh, gentle glow. This is considered design at its best: not chasing trends, but building a genuine sanctuary tailored precisely to how our clients want to feel at home.
If you'd like to discuss a bathroom renovation project contact us today.
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw06878FB9_569F_4D09_ADCE_4ACEEA22BD19',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwEAD5CF18_5C50_444F_9196_DA7CADBE6151',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw0602195D_4633_44E9_ADC9_A5D9FB6742D1',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw008E5A6A_41DF_47BE_8077_93BAB86F4B15',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw6CAA0158_F99A_45C3_BD3F_B34AA160739A',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rw06CA398A_CC83_4D2A_995E_B0F15447D3DB',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwA378F7BD_9F56_4E07_B105_9B68D3638878',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />
{ if (window.innerWidth >= bp.minWidth) enabled = bp.enabled; });
if (!enabled) return;
$event.preventDefault();
const pic = $el.closest('picture');
const light = pic && pic.querySelector('source[data-lightbox-role="light"]');
const dark = pic && pic.querySelector('source[data-lightbox-role="dark"]');
$dispatch('image-lightbox-open', {
id: 'rwE727A01A_DD50_4CB4_AA29_2FF9755634CE',
src: (light && light.getAttribute('srcset')) || $el.currentSrc || $el.src,
srcDark: (dark && dark.getAttribute('srcset')) || null,
alt: $el.alt,
});
" oncontextmenu="return false" ondragstart="return false" onmousedown="return false" decoding="async" />