/* DoggyStyle responsive layout */
.mobile_menu_toggle,
.hamburger_button,
.mobile_menu_panel {
	display: none;
}

.mobile_menu_toggle {
	opacity: 0;
	pointer-events: none;
	position: absolute;
}

@media only screen and (max-width: 1240px) {
	.header_wrap,
	.wrap,
	.footer_wrap {
		width: min(1080px, calc(100% - 48px));
	}

	h1 {
		font-size: 64px;
	}

	h2 {
		font-size: 44px;
	}

	.section_pad,
	.internal_section {
		padding: 82px 0;
	}

	.home_hero,
	.home_hero.section_pad {
		min-height: 590px;
		padding: 92px 0 106px;
	}

	.page_banner {
		min-height: 330px;
	}

	.page_banner_inner {
		padding: 70px 0 92px;
	}

	.page_banner h1 {
		font-size: 54px;
	}

	.intro_grid,
	.promo_grid,
	.about_grid,
	.contact_grid,
	.facilities_grid,
	.internal_grid,
	.prices_intro_grid,
	.contact_page_grid {
		gap: 48px;
	}

	.feature_card,
	.facility_detail_card,
	.contact_content,
	.form_panel,
	.price_focus_panel {
		padding: 34px;
	}

	.price_panel {
		padding: 52px 42px;
	}

	.price_panel strong,
	.price_focus_panel strong {
		font-size: 82px;
	}
}

@media only screen and (max-width: 1080px) {
	body {
		font-size: 17px;
	}

	#menu ul {
		gap: 22px;
	}

	#menu a:not(.menu_fb_icon) {
		font-size: 14px;
	}

	.site_logo_img {
		max-width: 230px;
	}

	.feature_grid,
	.facility_detail_grid,
	.price_cards_grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.facilities_grid,
	.intro_grid,
	.promo_grid,
	.about_grid,
	.contact_grid,
	.internal_grid,
	.reverse_grid,
	.prices_intro_grid,
	.contact_page_grid {
		grid-template-columns: 1fr;
	}

	.promo_grid .promo_image,
	.reverse_grid .internal_image {
		order: 2;
	}

	.promo_grid .promo_content,
	.reverse_grid .rich_text {
		order: 1;
	}

	.facilities_image,
	.promo_image,
	.about_image,
	.internal_image {
		max-width: 620px;
	}

	.contact_content {
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0;
	}

	.map_embed,
	.map_embed iframe,
	.map_section iframe {
		min-height: 420px;
	}

	.footer_wrap.centered_footer,
	.centered_footer {
		width: min(820px, calc(100% - 48px));
	}
}

@media only screen and (max-width: 960px) {
	.top_bar_inner {
		min-height: 36px;
	}

	.top_bar span,
	.top_bar a {
		font-size: 12px;
		letter-spacing: .05em;
	}

	.main_header {
		min-height: 82px;
	}

	#menu {
		display: none;
	}

	.hamburger_button {
		align-items: center;
		background: var(--black);
		border: 1px solid rgba(201,163,74,.55);
		border-radius: 999px;
		cursor: pointer;
		display: inline-flex;
		flex-direction: column;
		gap: 5px;
		height: 48px;
		justify-content: center;
		width: 48px;
		z-index: 1002;
	}

	.hamburger_button span {
		background: var(--gold);
		border-radius: 999px;
		display: block;
		height: 2px;
		transition: transform .24s ease, opacity .24s ease;
		width: 20px;
	}

	.mobile_menu_toggle:checked + .hamburger_button span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}

	.mobile_menu_toggle:checked + .hamburger_button span:nth-child(2) {
		opacity: 0;
	}

	.mobile_menu_toggle:checked + .hamburger_button span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	.mobile_menu_panel {
		background: radial-gradient(circle at 80% 12%, rgba(201,163,74,.18), transparent 32%), linear-gradient(135deg, #080808 0%, #15120d 100%);
		color: var(--white);
		display: flex;
		flex-direction: column;
		gap: 34px;
		inset: 0;
		opacity: 0;
		padding: 28px 32px 36px;
		pointer-events: none;
		position: fixed;
		transform: translateY(-12px);
		transition: opacity .25s ease, transform .25s ease;
		visibility: hidden;
		z-index: 1001;
	}

	.mobile_menu_toggle:checked ~ .mobile_menu_panel {
		opacity: 1;
		pointer-events: auto;
		transform: translateY(0);
		visibility: visible;
	}

	.mobile_menu_head {
		align-items: center;
		display: flex;
		justify-content: space-between;
		gap: 24px;
	}

	.mobile_logo,
	.mobile_logo a {
		display: inline-flex;
	}

	.mobile_logo .site_logo_img {
		filter: brightness(0) invert(1);
		max-width: 250px;
	}

	.mobile_menu_close {
		align-items: center;
		border: 1px solid rgba(201,163,74,.45);
		border-radius: 999px;
		color: var(--gold);
		cursor: pointer;
		display: inline-flex;
		font-size: 34px;
		height: 48px;
		justify-content: center;
		line-height: 1;
		width: 48px;
	}

	.mobile_menu_links {
		display: grid;
		gap: 2px;
		margin-top: 10px;
	}

	.mobile_menu_links a {
		border-bottom: 1px solid rgba(255,255,255,.12);
		color: var(--white);
		font-family: var(--heading-font);
		font-size: 42px;
		font-weight: 800;
		line-height: 1.08;
		padding: 18px 0;
	}

	.mobile_menu_links a:hover {
		color: var(--gold);
	}

	.mobile_menu_contact {
		align-items: center;
		display: flex;
		gap: 16px;
		margin-top: auto;
	}

	.mobile_phone_link {
		align-items: center;
		background: var(--gold);
		border-radius: 999px 999px 999px 22px;
		color: var(--black);
		display: inline-flex;
		font-size: 16px;
		font-weight: 900;
		gap: 10px;
		padding: 13px 20px;
	}

	.mobile_fb_link {
		align-items: center;
		border: 1px solid rgba(201,163,74,.65);
		border-radius: 999px;
		color: var(--gold);
		display: inline-flex;
		height: 48px;
		justify-content: center;
		width: 48px;
	}

	h1 {
		font-size: 56px;
	}

	h2 {
		font-size: 40px;
	}

	h3 {
		font-size: 22px;
	}

	.hero_intro,
	.page_banner p:not(.eyebrow),
	.centered p,
	.split_intro p,
	.facilities_content > p,
	.contact_page_details > p:not(.eyebrow),
	.form_panel p {
		font-size: 18px;
	}

	.section_pad,
	.internal_section {
		padding: 68px 0;
	}

	.home_hero,
	.home_hero.section_pad {
		min-height: 560px;
		padding: 76px 0 96px;
	}

	.page_banner_inner {
		padding: 62px 0 86px;
	}

	.wave_sep,
	.home_hero::after,
	.page_banner::after {
		height: 56px;
	}

	.section_intro {
		margin-bottom: 42px;
	}

	.split_intro {
		align-items: start;
		flex-direction: column;
		gap: 24px;
	}

	.reviews_embed {
		padding-left: 32px;
		padding-right: 32px;
	}
}

@media only screen and (max-width: 720px) {
	.top_bar {
		display: none;
	}

	.header_wrap,
	.wrap,
	.footer_wrap,
	.footer_wrap.centered_footer,
	.centered_footer {
		width: calc(100% - 36px);
	}

	body {
		font-size: 16px;
		line-height: 1.68;
	}

	p {
		margin-bottom: 22px;
	}

	h1,
	.page_banner h1 {
		font-size: 42px;
		line-height: 1.02;
	}

	h2 {
		font-size: 32px;
		line-height: 1.08;
	}

	h3 {
		font-size: 21px;
	}

	.top_bar_inner {
		gap: 10px;
		justify-content: center;
		text-align: center;
	}

	.top_bar span {
		display: none;
	}

	.main_header {
		min-height: 76px;
	}

	.site_logo_img {
		max-height: 58px;
		max-width: 190px;
	}

	.hamburger_button {
		height: 44px;
		width: 44px;
	}

	.mobile_menu_panel {
		gap: 26px;
		padding: 22px 22px 30px;
	}

	.mobile_logo .site_logo_img {
		max-width: 205px;
	}

	.mobile_menu_close {
		height: 44px;
		width: 44px;
	}

	.mobile_menu_links a {
		font-size: 34px;
		padding: 15px 0;
	}

	.section_pad,
	.internal_section {
		padding: 54px 0;
	}

	.home_hero,
	.home_hero.section_pad {
		background-position: center;
		min-height: 520px;
		padding: 62px 0 86px;
	}

	.hero_text {
		max-width: 100%;
	}

	.hero_intro,
	.page_banner p:not(.eyebrow),
	.centered p,
	.split_intro p,
	.facilities_content > p,
	.contact_content > p,
	.contact_page_details > p:not(.eyebrow),
	.form_panel p {
		font-size: 17px;
		line-height: 1.62;
	}

	.button_row {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
		margin-top: 30px;
	}

	.button {
		font-size: 14px;
		min-height: 44px;
		padding: 9px 22px;
	}

	.page_banner {
		min-height: 300px;
	}

	.page_banner_inner {
		padding: 54px 0 78px;
	}

	.intro_grid,
	.promo_grid,
	.about_grid,
	.contact_grid,
	.facilities_grid,
	.internal_grid,
	.prices_intro_grid,
	.contact_page_grid {
		gap: 34px;
	}

	.feature_grid,
	.facility_detail_grid,
	.price_cards_grid,
	.facility_list,
	.internal_gallery_grid,
	.gallery_grid {
		grid-template-columns: 1fr;
	}

	.feature_card,
	.facility_detail_card,
	.form_panel,
	.price_focus_panel {
		padding: 28px;
	}

	.contact_item,
	.contact_method {
		grid-template-columns: 30px minmax(0, 1fr);
		gap: 12px;
	}

	.contact_item a,
	.contact_item span,
	.contact_method a,
	.contact_method span {
		font-size: 16px;
		word-break: break-word;
	}

	.price_panel,
	.price_focus_panel {
		text-align: left;
	}

	.price_panel {
		padding: 38px 30px;
	}

	.price_panel strong,
	.price_focus_panel strong {
		font-size: 72px;
	}

	.process_steps span,
	.included_list li {
		align-items: flex-start;
		font-size: 16px;
	}

	.map_embed,
	.map_embed iframe,
	.map_section iframe {
		min-height: 340px;
	}

	.reviews_embed {
		padding-left: 18px;
		padding-right: 18px;
	}

	.footer_contact_list {
		align-items: center;
		flex-direction: column;
		gap: 12px;
	}
}

@media only screen and (max-width: 460px) {
	.header_wrap,
	.wrap,
	.footer_wrap,
	.footer_wrap.centered_footer,
	.centered_footer {
		width: calc(100% - 28px);
	}

	h1,
	.page_banner h1 {
		font-size: 36px;
	}

	h2 {
		font-size: 28px;
	}

	.home_hero,
	.home_hero.section_pad {
		min-height: 500px;
	}

	.mobile_menu_links a {
		font-size: 30px;
	}

	.mobile_menu_contact {
		align-items: stretch;
		flex-wrap: wrap;
	}

	.mobile_phone_link {
		justify-content: center;
		width: calc(100% - 64px);
	}

	.mobile_fb_link {
		flex: 0 0 48px;
	}

	.section_pad,
	.internal_section {
		padding: 46px 0;
	}

	.page_banner_inner {
		padding: 48px 0 72px;
	}

	.feature_card,
	.facility_detail_card,
	.form_panel,
	.price_focus_panel {
		padding: 24px;
	}

	.gallery_grid,
	.internal_gallery_grid {
		gap: 16px;
	}

	.footer_logo_img {
		max-width: 210px;
	}
}

/* Responsive reliability refinements */
html,
body {
	overflow-x: hidden;
}

.mobile_menu_toggle {
	display: block;
	height: 1px;
	left: -9999px;
	opacity: 0;
	position: absolute;
	top: auto;
	width: 1px;
}

/* Mobile menu and FooBox gallery refinements */
.gallery_grid,
.internal_gallery_grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.gallery_grid .gallery_tile,
.internal_gallery_grid .gallery_tile {
	display: block;
	overflow: hidden;
}

.gallery_grid .gallery_tile img,
.internal_gallery_grid .gallery_tile img {
	aspect-ratio: 1 / 1;
	object-fit: cover;
	width: 100%;
}

@media only screen and (max-width: 960px) {
	.mobile_menu_toggle:checked + .hamburger_button {
		opacity: 0;
		pointer-events: none;
	}

	.mobile_menu_panel {
		background: #080808;
		gap: 28px;
		padding-bottom: 120px;
	}

	.mobile_menu_head {
		justify-content: flex-end;
	}

	.mobile_menu_links {
		gap: 0;
		margin-top: 0;
	}

	.mobile_menu_links a {
		border-bottom: 0;
		padding: 14px 0;
	}

	.mobile_menu_contact {
		margin-top: 12px;
	}

	.mobile_logo {
		bottom: 32px;
		left: 32px;
		position: absolute;
	}
}

@media only screen and (max-width: 720px) {
	.gallery_grid,
	.internal_gallery_grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.mobile_menu_panel {
		padding-bottom: 108px;
	}

	.mobile_logo {
		bottom: 26px;
		left: 22px;
	}
}

@media only screen and (max-width: 460px) {
	.gallery_grid,
	.internal_gallery_grid {
		gap: 12px;
	}

	.mobile_logo {
		left: 18px;
	}
}

/* Final mobile menu colour refinement */
@media only screen and (max-width: 960px) {
	.mobile_fb_link {
		background: var(--white);
		border-color: var(--white);
		color: var(--black);
	}

	.mobile_fb_link:hover {
		background: var(--gold);
		border-color: var(--gold);
		color: var(--black);
	}
}

/* Keep contact form unboxed at every breakpoint */
.form_panel {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}

/* Mobile menu scrolling */
@media only screen and (max-width: 960px) {
	.mobile_menu_panel {
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* Final spacing and gallery rhythm pass */
.gallery_grid,
.internal_gallery_grid {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}

.contact_page_grid {
	gap: 96px;
}

.contact_page_section .form_panel {
	padding-top: 4px !important;
}

@media only screen and (max-width: 1240px) {
	.contact_page_grid {
		gap: 76px;
	}
}

@media only screen and (max-width: 1080px) {
	.contact_page_grid {
		gap: 58px;
	}
}

@media only screen and (max-width: 720px) {
	.section_pad,
	.internal_section {
		padding: 58px 0;
	}

	.home_hero,
	.home_hero.section_pad {
		padding: 66px 0 90px;
	}

	.page_banner_inner {
		padding: 56px 0 82px;
	}

	.section_intro {
		margin-bottom: 36px;
	}

	.intro_grid,
	.promo_grid,
	.about_grid,
	.contact_grid,
	.facilities_grid,
	.internal_grid,
	.prices_intro_grid,
	.contact_page_grid {
		gap: 40px;
	}

	.contact_page_grid {
		gap: 52px;
	}

	.contact_methods {
		margin-top: 30px;
	}

	.form_panel .gform_wrapper,
	.form_panel form {
		margin-top: 24px;
	}

	.gallery_grid,
	.internal_gallery_grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 16px;
	}
}

@media only screen and (max-width: 460px) {
	.section_pad,
	.internal_section {
		padding: 50px 0;
	}

	.home_hero,
	.home_hero.section_pad {
		padding: 58px 0 82px;
	}

	.page_banner_inner {
		padding: 50px 0 76px;
	}

	.intro_grid,
	.promo_grid,
	.about_grid,
	.contact_grid,
	.facilities_grid,
	.internal_grid,
	.prices_intro_grid,
	.contact_page_grid {
		gap: 34px;
	}

	.contact_page_grid {
		gap: 46px;
	}

	.gallery_grid,
	.internal_gallery_grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
}

/* Mobile top phone prominence */
@media only screen and (max-width: 720px) {
	.top_bar_inner {
		min-height: 44px;
	}

	.top_bar_phone {
		background: rgba(201,163,74,.14);
		border: 1px solid rgba(201,163,74,.45);
		border-radius: 999px;
		font-size: 14px !important;
		font-weight: 900;
		gap: 9px;
		letter-spacing: .04em !important;
		padding: 6px 14px;
	}

	.top_bar_phone i {
		font-size: 13px;
	}
}

/* Keep top phone number visible on mobile */
@media only screen and (max-width: 720px) {
	.top_bar_phone span {
		display: inline !important;
	}

	.top_bar_phone {
		font-size: 15px !important;
	}
}

/* Homepage mobile hero buttons side by side */
@media only screen and (max-width: 720px) {
	.home_hero .button_row {
		align-items: stretch;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
		width: 100%;
	}

	.home_hero .button_row .button {
		font-size: 13px;
		justify-content: center;
		padding-left: 12px;
		padding-right: 12px;
		text-align: center;
		width: 100%;
	}
}

@media only screen and (max-width: 380px) {
	.home_hero .button_row .button {
		font-size: 12px;
		padding-left: 9px;
		padding-right: 9px;
	}
}

/* Plain mobile top phone styling */
@media only screen and (max-width: 720px) {
	.top_bar_phone {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		padding: 0 !important;
	}
}

/* Responsive wave rendering fix */
@media only screen and (max-width: 960px) {
	.wave_sep,
	.home_hero::after,
	.page_banner::after {
		height: 60px;
	}

	.wave_sep svg {
		height: calc(100% + 4px);
		transform: translateY(2px);
	}

	.home_hero::after,
	.page_banner::after {
		bottom: -2px;
		-webkit-mask-size: 100% calc(100% + 4px);
		mask-size: 100% calc(100% + 4px);
	}
}

@media only screen and (max-width: 460px) {
	.wave_sep,
	.home_hero::after,
	.page_banner::after {
		height: 54px;
	}
}

/* Mobile header colour inversion */
@media only screen and (max-width: 960px) {
	#header,
	.main_header {
		background: var(--black);
	}

	.hamburger_button {
		background: var(--white);
		border-color: rgba(201,163,74,.65);
	}

	.hamburger_button span {
		background: var(--black);
	}
}

@media only screen and (max-width: 720px) {
	.top_bar {
		display: block;
		background: var(--white);
		border-bottom: 1px solid rgba(0,0,0,.08);
		color: var(--black);
	}

	.top_bar_inner {
		justify-content: space-between;
		min-height: 38px;
		text-align: left;
	}

	.top_bar span {
		display: inline !important;
		color: var(--black);
	}

	.top_bar_phone,
	.top_bar_phone:visited {
		color: var(--black) !important;
		font-size: 13px !important;
		letter-spacing: 0 !important;
	}

	.top_bar_phone i {
		color: var(--gold-dark);
	}
}

@media only screen and (max-width: 460px) {
	.top_bar_inner {
		gap: 8px;
	}

	.top_bar span,
	.top_bar_phone,
	.top_bar_phone:visited {
		font-size: 12px !important;
	}
}

/* Hide top bar on mobile and keep refreshed opening section tidy */
@media only screen and (max-width: 720px) {
	.top_bar {
		display: none !important;
	}

	.home_opening_section .price_panel {
		padding: 32px 28px;
	}

	.home_opening_section .price_panel strong {
		font-size: 72px;
	}
}

/* Responsive homepage opening card match */
@media only screen and (max-width: 1080px) {
	.home_opening_section .intro_grid {
		grid-template-columns: 1fr;
	}
}

@media only screen and (max-width: 720px) {
	.home_opening_section .price_focus_panel {
		padding: 32px 28px;
	}

	.home_opening_section .price_focus_panel strong {
		font-size: 72px;
	}
}
@media only screen and (max-width: 720px) {
	.groomer_strip {
		padding: 34px 0;
	}

	.groomer_strip h2 {
		font-size: 32px;
	}

	.groomer_strip p {
		font-size: 17px;
	}
}

