/*
 Theme Name:   Mantra
 Theme URI:    https://www.mantra.co.uk
 Description:  A base theme by Mantra.co.uk
 Author:       Greg Findley
 Author URI:   https://www.mantra.co.uk
 Template:     generatepress
 Version:      1.0
*/


/*	Contents
    ----------------------------------------
	1.	Theme adjustments
	2.	Typography
	3.	Global styles
	4.	Gravity forms
    5.	Slick slider
    6.	Custom CSS
    ---------------------------------------- */

/* 	1. Theme adjustments
    ---------------------------------------- */

/* Body bg colour (outside wrapper) */
body {
	background-color: #ffffff;	
}

/* Site wrapper */
.site-wrapper {
	width: 100%;
	max-width: 1920px;
	margin-inline: auto;
	background-color: var(--bg-body);
}

/* Set main content area height */
#main {
	min-height: 65vh;
}

/* Container padding override */
.site-content, #content {
	padding: 0px;
}

/* Post editor width (backend) */
post-type-post .block-editor-block-list__layout {
	max-width: 728px!important;
	margin-inline: auto!important;
	padding-inline: 200px!important;
}
.post-type-post .edit-post-visual-editor__post_title-wrapper .editor-post-title {
	max-width: 728px!important;
	margin-inline: auto!important;
	padding-inline: 200px!important;
}

/* Mobile menu icon */
span.gp-icon.menu-bars {
	font-size: 1.5rem;
}
.menu-toggle {
	padding: 0;
}

/* Visually hidden */
.visually-hidden:not(:focus):not(:active) {
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	height: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
	width: 1px;
}

/* Line limits */
.line-limit-3, .line-limit-2 {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.line-limit-3 {
	-webkit-line-clamp: 3;
}
.line-limit-2 {
	-webkit-line-clamp: 2;
}

/* Balance */
.balance {
    white-space: unset;
	text-wrap: balance;
	-webkit-text-wrap: balance;
}
.nobr {
	white-space: nowrap;
}
.nobr-mobile {
	white-space: nowrap!important;
}
a {
	text-decoration: none;
}
a:hover {
	text-decoration: underline;
}

@media (max-width: 768px) {
    /* CSS in here for mobile only */
	.nobr {
		white-space: normal;
	}
}

/* Aspect ratios */
.ar-16-9, .ar-9-16, .ar-4-3 {
	object-fit: cover;
}
.ar-16-9 {
	aspect-ratio: 16/9;
}
.ar-9-16 {
	aspect-ratio: 9/16;
}
.ar-4-3 {
	aspect-ratio: 4/3;
}
.ar-1-1 {
	aspect-ratio: 1/1;
}

/* No underline */
.no-ul, .no-ul a {
	text-decoration: none;
}

/* Border radius */
:root {
	--radius-xs: .125rem;
	--radius-s: .25rem;
	--radius-m: .5rem;
	--radius-l: 1rem;
	--radius-xl: 1.5rem;
	--radius-xxl: 2rem;
	--radius-50: 50%;
}


/* 	2. Typography
    ---------------------------------------- 

	Match to theme Typography settings, font-family pulled from GP font manager
	Set headline font to 'All Headings'
	Set body font to HTML

    ---------------------------------------- */

:root {
	--headline-font: "indivisible", sans-serif;
	--body-font: "franklin-gothic-urw", sans-serif;

/* Headlines */
	--headline-xs: clamp(1.19rem, 0.42vw + 1.1rem, 1.44rem);
	--headline-s: clamp(1.33rem, 0.78vw + 1.18rem, 1.8rem);
	--headline-m: clamp(1.5rem, 1.25vw + 1.25rem, 2.25rem);
	--headline-l: clamp(1.69rem, 1.88vw + 1.31rem, 2.81rem);
	--headline-xl: clamp(1.9rem, 2.7vw + 1.36rem, 3.52rem);
	--headline-xxl: clamp(2.14rem, 3.76vw + 1.38rem, 4.39rem);
	
/* Pre-headline */
	--pre-headline: clamp(1rem, 0.942rem + 0.292vw, 1.175rem);
	
/* Body copy */
	--body-s: clamp(0.94rem, 0.08vw + 0.93rem, 0.99rem);
	--body-m: clamp(1.06rem, 0.21vw + 1.02rem, 1.19rem);
	--body-l: clamp(1.2rem, 0.38vw + 1.12rem, 1.43rem);
	--body-xl: clamp(1.34rem, 0.61vw + 1.22rem, 1.71rem);

/* Spacing */
	--space-xxs: clamp(0.25rem, 0.167rem + 0.417vw, 0.5rem);
	--space-xs: clamp(0.75rem, 0.667rem + 0.417vw, 1rem);
	--space-s: clamp(1rem, 0.833rem + 0.833vw, 1.5rem);
	--space: clamp(1rem, 0.667rem + 1.667vw, 2rem);
	--space-m: clamp(1.5rem, 1.25rem + 1.25vw, 2.25rem);
	--space-l: clamp(2.25rem, 1.833rem + 2.083vw, 3.5rem);
	--space-xl: clamp(3.5rem, 3.167rem + 1.667vw, 4.5rem);
	--space-xxl: clamp(4.5rem, 3.667rem + 4.167vw, 7rem);
	--space-xxxl: clamp(7rem, 5.833rem + 5.833vw, 10.5rem);
}

/* Default body / p font settings */
p {
	font-family: var(--body-font);
	font-size: var(--body-m);
	font-weight: 400;
	line-height: calc(var(--body-m) * 1.625);
	margin-bottom: var(--space-s);
}
p a, ul li a {
	font-weight: 600;
}
p strong {
	color: var(--headline);
}

/* Default headings font-family, weight, margins */
h1, h2, h3, h4, h5, h6, .gb-headline-xxl, .gb-headline-xl, .gb-headline-l, .gb-headline-m, .gb-headline-s, .gb-headline-xs, .gb-headline-xxs {
	font-weight: 600;
    letter-spacing: -0.025rem;
	font-family: var(--headline-font);
}

/* Title font-size & line-height */
.gb-headline-xxl {
	font-size: var(--headline-xxl);
	line-height: 1.125;
	margin-bottom: var(--space-l);
}
h1, .gb-headline-xl {
	font-size: var(--headline-xl);
	line-height: 1.1;
	margin-bottom: var(--space-l);
}
h2, .gb-headline-l {
	font-size: var(--headline-l);
	line-height: 1.125;
	margin-bottom: var(--space-m);
}
h3, .gb-headline-m {
	font-size: var(--headline-m);
	line-height: 1.25;
	margin-bottom: var(--space-m);
}
h4, .gb-headline-s {
	font-size: var(--headline-s);
	line-height: 1.25;
	margin-bottom: var(--space-s);
}
h5, .gb-headline-xs {
	font-size: var(--headline-xs);
	line-height: 1.375;
	margin-bottom: var(--space-s);
}
h6, .gb-headline-xxs {
	font-size: var(--headline-xxs);
	line-height: 1.5;
	margin-bottom: var(--space-s);
}
.gb-headline-pre {
	font-size: var(--pre-headline);
	text-transform: uppercase;
	letter-spacing: .1em;
	margin-bottom: var(--space-m);
}

/* Additional body font-sizes, body-m is a regular paragraph */
.gb-headline-body-xl, .gb-headline-body-l, .gb-headline-body-s, .gb-headline-body-xs {
	font-family: var(--body-font);
	margin-bottom: var(--space-s);
}
.gb-headline-body-xl {
	font-size: var(--body-xl);
	line-height: calc(var(--body-xl) * 1.65);
}
.gb-headline-body-l {
	font-size: var(--body-l);
	line-height: calc(var(--body-l) * 1.625);
}
.gb-headline-body-m {
	font-size: var(--body-m);
	line-height: calc(var(--body-l) * 1.3);
	margin-bottom: calc(var(--body-l) * 1.4);
}
.gb-headline-body-s {
	font-size: var(--body-s);
	line-height: calc(var(--body-s) * 1.5);
}
.gb-headline-body-xs {
	font-size: var(--body-xs);
	line-height: calc(var(--body-xs) * 1.65);
}

/* Image captions */
figcaption, .gb-headline-img-caption {
	font-size: var(--body-s);
	margin-top: var(--space-xs);
	margin-bottom: var(--space-m);
}

/* Content lists */
ul.content, ol.content, .content ul, .content ol {
	font-size: var(--body-m);
	font-weight: 400;
	line-height: calc(var(--body-m) * 1.65);
	margin-bottom: var(--space-m);
	margin-left: var(--space-m);
}
ul.content li, ol.content li {
	margin-bottom: var(--space-xxs);
}
ul.content-small {
	margin-left: var(--space-m);
	text-wrap: balance;
}
.margin-0 {
	margin-bottom: 0!important;
}

/* Add top margin to blog post h2-h6 */
@media (min-width: 1025px) {
    /* CSS in here for desktop only */
	.single-post :is(h2, h3, h4, h5, h6) {
		margin-top: var(--space-l);
		text-wrap: balance;
	}
}
@media (max-width: 768px) {
    /* CSS in here for mobile only */
	.single-post :is(h2, h3, h4, h5, h6) {
		margin-top: var(--space-m);
		text-wrap: balance;
	}
}


/* Button global line height */
.gb-button {
	line-height: 1em;
}

/* Buttons */
.gb-button-primary {
    color: #ffffff!important;
}

/* Remove bottom margin on last paragraph */
.gb-container p:last-child:last-of-type {
	margin-bottom: 0px;
}
.block-editor-block-list__layout .gb-container p:nth-last-child(2) {
	margin-bottom: 0px;
}


/* 	3. Global styles
    ---------------------------------------- */

/* Sections */
.gb-container-section-xs {
	padding: var(--space-xs) var(--space-m) 0 var(--space-m);
}
.gb-container-section-s {
	padding: var(--space-s) var(--space-m) 0 var(--space-m);
}
.gb-container-section-m {
	padding: var(--space-m) var(--space-m) 0 var(--space-m);
}
.gb-container-section-l {
	padding: var(--space-l) var(--space-m) 0 var(--space-m);
}
.gb-container-section {
	padding: var(--space-xl) var(--space-m) 0 var(--space-m);
}
.gb-container-section-xl {
	padding: var(--space-xxl) var(--space-m) 0 var(--space-m);
}
.gb-container-section-xxl {
	padding: var(--space-xxxl) var(--space-m) 0 var(--space-m);
}

/* Content image margin */
.content .gb-block-image img {
	margin: var(--space-xs) 0;
}

/* Separator */
.wp-block-separator {
	border: none;
    border-bottom: 0.075rem #bed4dc solid;
    margin: var(--space-l) 0;
}

/* Container widths */
:root {
	--width-l: 64rem;
	--width-m: 56rem;
	--width-s: 48rem;
	--width-xs: 40rem;
}

/* Announcement bar */
.announcement-bar {
	position: relative;
}
.announcement-bar-closed {
	display: none;
}
.announcement-close {
	position: absolute;
	right: 4px;
	top: 50%;
	transform: translatey(-50%);
	cursor: pointer;
}


@media (max-width: 768px) {
    /* CSS in here for mobile only */
	.gform_wrapper .gform_footer input.gform_button[type='submit'] {
		width: 100%;
	}
	.gf-turnstile-container {
		margin: var(--space-s) auto!important;
	}  
}

/* Show/hide get started button */
@media (max-width: 550px) {
	.nav-buttons {
		display: none;
	}
}
@media (min-width: 900px) {
	.nav-mobile-only {
		display: none;
	}
}
.menu-toggle .gp-icon+.mobile-menu {
    padding: 1rem;
    font-weight: 700;
    font-size: calc(var(--body-s) + 0.15rem);
}
.gp-icon svg {
	top: 0!important;
}

/* Mobile nav */

@media (max-width: 900px) {
    /* CSS in here for mobile only */
	button.menu-toggle {
		display: flex !important;
		flex-direction: row-reverse;
		align-items: center;
		margin-right: 0;
		border-right: none;
		height: 50px;
		padding-right: 0;
	}
	.footer-small {
		max-inline-size: 40ch;
		margin: 0 auto;
	}
}

ul.content b, ul.content strong {
	color: var(--headline);
}
.main-navigation .main-nav ul li a, .main-nav-button {
	font-size: calc(var(--body-s) + 0.2rem);
	font-weight: 600;
	transition: all 0.1s ease;
}
.main-navigation .main-nav ul li a:hover {
	transform: translate3d(0px, -2px, 0px);
}
/* Show parent page as active in nav when viewing child page */
.main-navigation .main-nav .current-page-ancestor > a {
    color: var(--brand-one);
}
.headline-cta h6.strong {
	font-weight: 700;
    border-bottom: none;
    padding-bottom: 0.1rem;
}
.headline-cta:hover .gb-headline-text strong {
    border-bottom: 0.2rem solid var(--headline);
    padding-bottom: 0.1rem;
}
.yellow-underline a:hover {
    border-bottom: 0.1rem solid var(--brand-one);
    padding-bottom: 0.05rem;
}

/* MODAL POPUPS */
.bod-block-popup-closer {
	display: none;
}
.right-breakout {
	position: absolute;
	top: 0;
	display: flex;
	height: 100%;
}
.right-breakout img {
	height: 100%;
	object-fit: cover;
	object-position: center center;
}
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
    pointer-events: none;
}

.homepage-block:hover .yellow-underline span.gb-headline-text {
    border-bottom: 0.1rem solid var(--brand-one);
    padding-bottom: 0.1rem;
}
h3.yellow-underline span.gb-headline-text {
	padding-bottom: 0.1rem;
	border-bottom: 0.1rem solid var(--bg-dark);
}

/* CONTACT PAGE */
.contact-details.wp-block-table td, .wp-block-table th {
    border: 0;
    padding: 0.25rem 0;
    font-size: var(--body-m);
}
.contact-details table {
	border: 0;
}
.contact-details.wp-block-table td {
	color: var(--headline);
}
.contact-details table tbody {
	vertical-align: top;
}

/* FOOTER */
.footer-nav ul.wp-block-navigation {
	column-gap: var(--space-s);
	font-size: calc(var(--body-s) + 0.1rem);
	letter-spacing: 0.025em;
	font-weight: 600;
	padding: 1rem 0;
	color: var(--bg-light);
}
.footer-nav ul.wp-block-navigation li:hover {
	color: var(--brand-one);
}
.footer-nav ul.wp-block-navigation li[class*="current-menu-"] > a {
    color: rgba(171,171,171,0.75);
}
.footer-small {
	text-align: center;
    margin-top: var(--space-xs);
    margin-bottom: 0px;
    color: var(--text-light);
	font-size: var(--body-s);
    line-height: 1.5;
}
.footer-small a {
	color: #fff;
	text-decoration: underline;
}
.footer-small a:hover {
	color: var(--brand-one);
}
.company-no { 
    pointer-events: none; 
}
.company-no > a { 
	text-decoration: none!important;
	color: inherit; 
	border: none!important;
}

/* 	4. Gravity forms
    ---------------------------------------- */

.gform_wrapper.gravity-theme .gform_fields {
    grid-row-gap: var(--space-s);
}
.gform_wrapper .gform_body input,
.gform_wrapper .gform_body textarea,
.gform_wrapper .gform_footer input.gform_button[type='submit'] {
	transition: 0.1s ease-in-out all;
}
.gform_wrapper .gform_body input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
.gform_wrapper .gform_body textarea {
	border-width: 1px;
	border-color: #c6c6c6;
	border-style: none;
	background-color: #ffffff;
	padding: 0.8rem 1rem;
	font-weight: 400;
	font-size: var(--body-m);
	color: var(--headline);
	width: 100%;
}
body .gform_wrapper .gform_body .gform_fields .gfield .large.gfield_select {
	border-width: 1px;
	border-color: #c6c6c6;
	border-style: none;
	background-color: #ffffff;
	padding: 0.8rem 1rem;
	font-weight: 600;
	font-size: var(--bodty-m);
	color: var(--headline);
	width: 100%;
}
.gform_wrapper .gform_body input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]):focus,
.gform_wrapper .gform_body textarea:focus {
	box-shadow: rgba(171, 171, 171, 0.25) 0px 0px 10px 0px;
}
.gform_wrapper .gform_body label.gfield_label, .gform_wrapper.gravity-theme .gfield_label {
	font-size: var(--body-m);
	margin-bottom: 0.65rem;
	font-weight: 600;
	color: var(--headline);
}
.gform_wrapper .gform_body input::placeholder,
.gform_wrapper .gform_body textarea::placeholder {
	font-size: 16px;
	font-weight: 400;
	color: #707070;
}
.gform_wrapper .gform_footer input.gform_button[type='submit'] {
    display: inline-flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-size: calc(var(--body-m) * 1.05);
    font-weight: 600;
    padding: calc(var(--space-s) - 0.25rem) calc(var(--space-m) - 0.2rem) calc(var(--space-s) - 0.1rem);
    border-radius: 100px;
    background-color: var(--brand-one);
    color: #ffffff;
	transition: all 0.3s ease;
	min-width: 300px;
}
.gform_wrapper .gform_footer input.gform_button[type='submit']:hover {
	background-color: #399fde;
}
.gform_wrapper .gform_body input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), .gform_wrapper .gform_body textarea {
	background-color: #ffffff; 
	border: 1px solid #c6c6c6;
	border-radius: var(--radius-s);
}
.gform_legacy_markup_wrapper .gf_progressbar_percentage.percentbar_blue {
	background-color: var(--primary);
}
.gform_legacy_markup_wrapper .gsection {
	border-bottom: none;
}
.gform_required_legend, .gform_wrapper.gravity-theme .gform_validation_errors {
	display: none;
}
.gform_wrapper.gravity-theme .gfield_required {
	color: var(--text-link);
    font-size: var(--body-m);
    font-weight: 500;
}
.gform_wrapper.gravity-theme .gfield_checkbox label, .gform_wrapper.gravity-theme .gfield_radio label {
    font-size: calc(var(--body-s) + 0.1rem);
    line-height: 1.65;
	margin-left: 0.75rem;
	font-weight: 400;
}
.gf-turnstile-container {
    width: 300px!important;
    display: inline-flex;
    margin-left: var(--space-m);
}
.gform_wrapper.gravity-theme .gform_footer, .gform_wrapper.gravity-theme .gform_page_footer {
    margin-top: var(--space-xs);
}
body img.gform_ajax_spinner {
	display: none !important;
}
.gf-turnstile-container {
    width: 300px!important;
    display: inline-flex;
    margin: 1rem 0;
}

/* 	5. Slick slider
    ---------------------------------------- */

.slick-slide img {
	display: inline-block!important;
}
.slick-next {
	right: -34px;
}
.slick-prev {
    left: -34px;
}
.wp-block-cb-carousel .slick-next:before, .wp-block-cb-carousel .slick-prev:before {
    color: #fff;
}
.slick-next:before, .slick-prev:before {
    font-size: 30px;
    opacity: 0.9;
}
button.slick-prev.slick-arrow {
	z-index: 9999;
}
.slick-next:before {
	content: url(../wp-content/uploads/slider-next.svg);
	width: 18px;
	height: 40px;
}
.slick-prev:before {
	content: url(../wp-content/uploads/slider-prev.svg);
    width: 18px;
	height: 40px;
}
.slick-next, .slick-prev {
    width: 18px;
    height: 40px;
}

/* 	6. Custom CSS
    ---------------------------------------- */

div#primary-menu.main-nav ul li:last-child a {
	padding-right: 0;
}
.slideout-navigation.main-navigation .main-nav ul li a {
    font-size: var(--headline-s);
}



.blog-excerpt p {
	font-size: var(--body-l);
	line-height: calc(var(--body-l) * 1.625);
}
.sticky {
    position: sticky;
	top: var(--space-l);
}

@media(min-width: 769px) {
    .custom-sidebar > .gb-inside-container,
    .custom-sidebar > .gb-inside-container > .gb-container,
    .custom-sidebar > .gb-inside-container > .gb-container > .gb-inside-container {
        height: 100%;
    }
    .is-sticky {
        position: sticky;
        top: var(--space-l);
    }
}

.wpgb-facet .wpgb-search-facet input[type="search"], .wpgb-facet .wpgb-autocomplete-facet input[type="search"], .wpgb-facet select.wpgb-select:not([multiple]) {
	background-color: #fff!important;
}




.stats-section {
	background-color: #ebf1f8;
	padding-bottom: var(--space-m);
}


.gb-container-stats-wrapper {
	display: grid;
    grid-template-columns: 50% 50%;
    grid-column-gap: 46px;
    grid-row-gap: 0px;
    align-items: start;
}
.gb-container-stats {
	width: 50%;
}
.stat-title, .stat-data {
	margin-bottom: var(--space-xxs);
}
.stat-title {
	color: var(--brand-one);
	font-weight: 600;
}
.stats {
	display: grid;
    grid-template-columns: 50% 50%;
}
.stat-data {
	line-height: calc(var(--body-l) * 1.35)
}
.dog-breed-title {
	color: var(--brand-one);
}

@media (max-width: 768px) {
	.gb-container-stats-wrapper {
		grid-template-columns: 100%;
	}
}

.footer-links a {
    color: #fff;
    font-weight: 300;
    text-decoration: underline;
    text-underline-offset: 0.15rem;
}
.footer-links a:hover {
	color: #80ccff;
}