:root {
	--ppp-black: #070707;
	--ppp-rich-black: #11100e;

	--ppp-gold: #b78d4c;
	--ppp-dark-gold: #8e6831;
	--ppp-gold-light: #d1b277;

	--ppp-white: #ffffff;

	--ppp-ivory: #f8f3e9;
	--ppp-cream: #efe5d6;
	--ppp-soft-cream: #f4ede3;

	--ppp-text: #4f473e;
	--ppp-muted: #70685e;

	--ppp-border: rgba(183, 141, 76, 0.35);

	--ppp-container: 1200px;
}

/* =========================================
   BASE
========================================= */

html {
	scroll-behavior: smooth;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

body {
	margin: 0;
	color: var(--ppp-text);
	background: var(--ppp-ivory);
	font-family: "Montserrat", Arial, sans-serif;
	font-size: 15px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}

body,
button,
input,
select,
textarea {
	font-family: "Montserrat", Arial, sans-serif;
}

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

figure {
	margin: 0;
}

/* =========================================
   TYPOGRAPHY
========================================= */

h1,
h2,
h3,
h4,
h5,
h6 {
	margin-top: 0;
	color: var(--ppp-black);
	font-family: "Cormorant Garamond", Georgia, serif;
	font-weight: 500;
	line-height: 1.05;
}

p {
	margin-top: 0;
	margin-bottom: 18px;
}

a {
	transition:
		color 0.25s ease,
		background-color 0.25s ease,
		border-color 0.25s ease,
		opacity 0.25s ease,
		transform 0.25s ease;
}

/* =========================================
   CONTAINER
========================================= */

.ppp-container,
.ppfig-container {
	width: min(var(--ppp-container), calc(100% - 40px));
	margin-inline: auto;
}

/* =========================================
   EYEBROW / KICKER
========================================= */

.ppp-eyebrow,
.ppfig-kicker {
	margin: 0 0 18px;
	color: var(--ppp-gold);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 3px;
	line-height: 1.4;
	text-transform: uppercase;
}

/* =========================================
   SECTION HEADING
========================================= */

.ppp-section-heading,
.ppfig-section-heading {
	max-width: 760px;
	margin: 0 auto 60px;
	text-align: center;
}

.ppp-section-heading h2,
.ppfig-section-heading h2 {
	margin: 0 0 18px;
	color: var(--ppp-dark-gold);
	font-size: clamp(48px, 5vw, 72px);
}

.ppp-section-heading p:last-child,
.ppfig-section-heading p:last-child {
	max-width: 600px;
	margin: 0 auto;
	color: var(--ppp-muted);
	font-size: 15px;
	line-height: 1.8;
}

/* =========================================
   GOLD DIVIDER
========================================= */

.ppp-divider,
.ppfig-divider {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	width: 230px;
	margin: 24px auto;
}

.ppp-divider span,
.ppfig-divider span {
	flex: 1;
	height: 1px;
	background: var(--ppp-gold);
}

.ppp-divider i,
.ppp-divider b,
.ppfig-divider i,
.ppfig-divider b {
	color: var(--ppp-gold);
	font-size: 14px;
	font-style: normal;
	font-weight: 400;
}

/* =========================================
   BUTTONS
========================================= */

.ppp-button,
.ppfig-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 14px 28px;
	border: 1px solid transparent;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.5px;
	line-height: 1.3;
	text-align: center;
	text-decoration: none !important;
	text-transform: uppercase;
	transition:
		background-color 0.25s ease,
		color 0.25s ease,
		border-color 0.25s ease,
		transform 0.25s ease;
}

.ppp-button:hover,
.ppfig-btn:hover {
	transform: translateY(-2px);
}

/* Gold Button */

.ppp-button--gold,
.ppfig-btn--gold {
	color: var(--ppp-black) !important;
	background: var(--ppp-gold);
	border-color: var(--ppp-gold);
}

.ppp-button--gold:hover,
.ppfig-btn--gold:hover {
	color: var(--ppp-white) !important;
	background: var(--ppp-dark-gold);
	border-color: var(--ppp-dark-gold);
}

/* Dark Button */

.ppp-button--dark,
.ppfig-btn--black {
	color: var(--ppp-gold-light) !important;
	background: var(--ppp-black);
	border-color: var(--ppp-gold);
}

.ppp-button--dark:hover,
.ppfig-btn--black:hover {
	color: var(--ppp-black) !important;
	background: var(--ppp-gold);
}

/* Outline Button */

.ppp-button--outline {
	color: var(--ppp-white) !important;
	border-color: rgba(255, 255, 255, 0.8);
	background: transparent;
}

.ppp-button--outline:hover {
	color: var(--ppp-black) !important;
	background: var(--ppp-white);
}

/* Full Width */

.ppp-button--full,
.ppfig-btn--full {
	width: 100%;
}

/* =========================================
   TEXT LINKS
========================================= */

.ppp-text-link,
.ppfig-text-link {
	display: inline-block;
	padding-bottom: 5px;
	color: var(--ppp-black) !important;
	border-bottom: 1px solid var(--ppp-gold);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-decoration: none !important;
	text-transform: uppercase;
}

.ppp-text-link:hover,
.ppfig-text-link:hover {
	color: var(--ppp-dark-gold) !important;
}

/* =========================================
   SHARED DARK SECTION
========================================= */

.ppp-section-dark {
	color: var(--ppp-white);
	background: var(--ppp-black);
}

.ppp-section-dark h1,
.ppp-section-dark h2,
.ppp-section-dark h3,
.ppp-section-dark h4 {
	color: var(--ppp-gold-light);
}

.ppp-section-dark p {
	color: rgba(255, 255, 255, 0.72);
}

/* =========================================
   SHARED LIGHT SECTIONS
========================================= */

.ppp-section-ivory {
	background: var(--ppp-ivory);
}

.ppp-section-cream {
	background: var(--ppp-cream);
}

/* =========================================
   ASTRA FULL WIDTH RESET
========================================= */

body[class*="page-template-template-"] .site-content > .ast-container,
body.post-type-archive-puppy .site-content > .ast-container,
body.single-puppy .site-content > .ast-container {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
}

body[class*="page-template-template-"] .content-area,
body.post-type-archive-puppy .content-area,
body.single-puppy .content-area {
	width: 100%;
	margin: 0;
	padding: 0;
}

body[class*="page-template-template-"] .site-main,
body.post-type-archive-puppy .site-main,
body.single-puppy .site-main {
	width: 100%;
	margin: 0;
	padding: 0;
}

/* =========================================
   FORMS
========================================= */

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="url"],
select,
textarea {
	width: 100%;
	border: 1px solid rgba(142, 104, 49, 0.28);
	border-radius: 0;
	outline: none;
	background: rgba(255, 255, 255, 0.9);
	color: var(--ppp-text);
	font-size: 14px;
	transition:
		border-color 0.25s ease,
		box-shadow 0.25s ease;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="url"],
select {
	min-height: 48px;
	padding: 12px 14px;
}

textarea {
	min-height: 140px;
	padding: 14px;
	resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--ppp-gold);
	box-shadow: 0 0 0 2px rgba(183, 141, 76, 0.1);
}

input::placeholder,
textarea::placeholder {
	color: #a79d91;
}

/* Contact Form 7 */

.wpcf7 form p {
	margin-bottom: 18px;
}

.wpcf7 label {
	display: block;
	margin-bottom: 7px;
	color: var(--ppp-text);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1px;
	text-transform: uppercase;
}

.wpcf7 input[type="submit"] {
	min-height: 50px;
	padding: 13px 25px;
	border: 1px solid var(--ppp-gold);
	background: var(--ppp-gold);
	color: var(--ppp-black);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 1.4px;
	text-transform: uppercase;
	cursor: pointer;
	transition: 0.3s ease;
}

.wpcf7 input[type="submit"]:hover {
	background: var(--ppp-black);
	color: var(--ppp-gold-light);
}

/* =========================================
   ACCESSIBILITY
========================================= */

::selection {
	background: var(--ppp-gold);
	color: var(--ppp-black);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--ppp-gold);
	outline-offset: 3px;
}

/* =========================================
   REMOVE ASTRA BLANK SPACE
   Header / Footer gaps
========================================= */

/* Main site content */
.site-content,
#content {
	margin: 0 !important;
	padding: 0 !important;
}

/* Astra outer container */
.site-content > .ast-container,
#content > .ast-container {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Content area */
.content-area,
.site-main,
#primary {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* WordPress page/article wrappers */
.hentry,
.entry-content,
.entry-content > main,
article.page {
	margin: 0 !important;
	padding: 0 !important;
}

/* Remove Astra page spacing */
.ast-separate-container .ast-article-single,
.ast-separate-container .ast-article-post,
.ast-page-builder-template .site-content > .ast-container {
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

/* Homepage specifically */
body.home .site-content,
body.home #content,
body.home .content-area,
body.home .site-main,
body.home #primary {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

/* Prevent first section adding unwanted top margin */
.ppgold-home > section:first-child,
.pp-exact-hero {
	margin-top: 0 !important;
}

/* Prevent footer gap */
.ppgold-home > section:last-child,
.ppgold-private,
.pp-testimonial-slider,
.pp-care-lux {
	margin-bottom: 0 !important;
}

/* Footer itself */
.site-footer,
.pp-lux-footer {
	margin-top: 0 !important;
}

/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1024px) {

	.ppp-container,
	.ppfig-container {
		width: calc(100% - 40px);
	}

}

@media (max-width: 767px) {

	body {
		font-size: 14px;
	}

	.ppp-container,
	.ppfig-container {
		width: calc(100% - 30px);
	}

	.ppp-section-heading,
	.ppfig-section-heading {
		margin-bottom: 42px;
	}

	.ppp-section-heading h2,
	.ppfig-section-heading h2 {
		font-size: 46px;
	}

	.ppp-button,
	.ppfig-btn {
		min-height: 48px;
		padding: 12px 22px;
	}

	.ppp-divider,
	.ppfig-divider {
		width: 190px;
	}
}

@media (max-width: 480px) {

	.ppp-section-heading h2,
	.ppfig-section-heading h2 {
		font-size: 40px;
	}

	.ppp-eyebrow,
	.ppfig-kicker {
		font-size: 9px;
		letter-spacing: 2.3px;
	}
}