/* ==========================================================================
   TPPD editorial style for Kadence
   Colors come from the Kadence global palette (Customizer > Colors & Fonts):
   1 raspberry, 2 plum, 3 plum, 4-6 plum-gray, 7 gold, 8 cream, 9 white.
   ========================================================================== */

:root {
	--tppd-raspberry: var(--global-palette1, #C9306D);
	--tppd-plum: var(--global-palette2, #6A2240);
	--tppd-text: var(--global-palette4, #3A2A30);
	--tppd-gold: var(--global-palette7, #D8B868);
	--tppd-cream: var(--global-palette8, #FFFBF7);
	--tppd-white: var(--global-palette9, #FFFFFF);
	--tppd-orange: #D4703A;
	--tppd-blush: #F4C9D2;
	--tppd-apricot: #F2C28A;
	--tppd-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--tppd-sans: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
	--tppd-width: 1264px;
	--tppd-gutter: 32px;
	--tppd-space: 144px;
}

@media (max-width: 781px) {
	:root {
		--tppd-gutter: 24px;
		--tppd-space: 80px;
	}
}

/* --------------------------------------------------------------------------
   Base typography
   -------------------------------------------------------------------------- */

h1, h2, h3, h4, h5,
.wp-block-heading {
	font-family: var(--tppd-serif);
	color: var(--tppd-plum);
	letter-spacing: -0.01em;
}

h1 em, h2 em, h3 em, h4 em,
.tppd-lead em {
	font-style: italic;
	color: var(--tppd-raspberry);
}

/* Inline color picked in the editor (e.g. the orange "for") keeps its own color. */
h1 em mark, h2 em mark, h3 em mark,
h1 mark.has-inline-color, h2 mark.has-inline-color {
	background: transparent;
}

.tppd-display {
	font-size: clamp(60px, 9vw, 128px);
	font-weight: 300;
	line-height: 0.92;
	margin: 0;
}

.tppd-display em {
	font-weight: 400;
}

.tppd-h2 {
	font-size: clamp(42px, 5.2vw, 68px);
	font-weight: 300;
	line-height: 1.02;
	margin: 0;
}

.tppd-lead {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(21px, 2vw, 27px);
	line-height: 1.38;
	color: var(--tppd-text);
	max-width: 30em;
}

/* Small uppercase label with a gold rule: "—— AI WORKBOOKS".
   Add the number in italics at the start: "<em>N°01</em> The collection". */
.tppd-eyebrow {
	display: flex;
	align-items: center;
	gap: 16px;
	font-family: var(--tppd-sans);
	font-size: 11px;
	font-weight: 500;
	line-height: 1.3;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--tppd-text);
	margin: 0;
}

.tppd-eyebrow::before {
	content: "";
	flex: none;
	width: 48px;
	height: 1px;
	background: var(--tppd-gold);
}

.tppd-eyebrow em {
	order: -1;
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 18px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--tppd-orange);
}

.tppd-eyebrow:has(em)::before {
	order: 0;
}

.tppd-eyebrow--center {
	justify-content: center;
	text-align: center;
}

.tppd-eyebrow--center::after {
	content: "";
	flex: none;
	width: 48px;
	height: 1px;
	background: var(--tppd-gold);
	order: 2;
}

@media (max-width: 781px) {
	.tppd-eyebrow {
		font-size: 10px;
		gap: 12px;
	}
	.tppd-eyebrow::before,
	.tppd-eyebrow--center::after {
		width: 32px;
	}
}

/* --------------------------------------------------------------------------
   Sections and layout
   -------------------------------------------------------------------------- */

.tppd-section {
	padding-top: var(--tppd-space);
	padding-bottom: var(--tppd-space);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	background: var(--tppd-white);
}

.tppd-section.tppd-bg-cream { background: var(--tppd-cream); }
.tppd-section.tppd-border-top { border-top: 1px solid var(--tppd-gold); }
.tppd-section.tppd-border-y { border-top: 1px solid var(--tppd-gold); border-bottom: 1px solid var(--tppd-gold); }
.tppd-section.tppd-section--flush { padding-top: 0; padding-bottom: 0; }

.tppd-inner {
	max-width: calc(var(--tppd-width) + 2 * var(--tppd-gutter));
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: var(--tppd-gutter);
	padding-right: var(--tppd-gutter);
	box-sizing: border-box;
}

.tppd-inner--narrow {
	max-width: calc(980px + 2 * var(--tppd-gutter));
}

.tppd-stack.tppd-stack > * + * { margin-top: 28px; }
.tppd-stack--tight.tppd-stack--tight > * + * { margin-top: 18px; }

.tppd-display--md {
	font-size: clamp(56px, 7.4vw, 112px);
}

.tppd-center {
	text-align: center;
}

.tppd-center .tppd-lead {
	margin-left: auto;
	margin-right: auto;
}

.tppd-center .wp-block-buttons {
	justify-content: center;
}

.tppd-head {
	margin-bottom: 80px;
}

@media (max-width: 781px) {
	.tppd-head { margin-bottom: 40px; }
}

/* Columns breathing room */
.tppd-columns.wp-block-columns {
	gap: 96px;
	margin-bottom: 0;
}

@media (max-width: 1100px) {
	.tppd-columns.wp-block-columns { gap: 56px; }
}

/* --------------------------------------------------------------------------
   Gold divider with a hollow diamond
   -------------------------------------------------------------------------- */

.wp-block-separator.is-style-tppd-diamond,
.tppd-divider {
	position: relative;
	border: 0 !important;
	height: 12px;
	width: 260px;
	max-width: 100%;
	margin: 28px auto;
	background:
		linear-gradient(var(--tppd-gold), var(--tppd-gold)) left center / calc(50% - 14px) 1px no-repeat,
		linear-gradient(var(--tppd-gold), var(--tppd-gold)) right center / calc(50% - 14px) 1px no-repeat;
	opacity: 1;
	color: transparent;
}

.wp-block-separator.is-style-tppd-diamond::after,
.tppd-divider::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 8px;
	height: 8px;
	border: 1px solid var(--tppd-gold);
	transform: translate(-50%, -50%) rotate(45deg);
}

.wp-block-separator.is-style-tppd-diamond.alignleft,
.tppd-divider--left {
	margin-left: 0;
}

/* --------------------------------------------------------------------------
   Buttons
   -------------------------------------------------------------------------- */

.wp-block-button__link,
.wp-element-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce .single_add_to_cart_button {
	font-family: var(--tppd-sans);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	border-radius: 6px;
}

.wp-block-button.is-style-tppd-link .wp-block-button__link {
	background: transparent !important;
	color: var(--tppd-plum) !important;
	padding: 0 0 4px !important;
	border-radius: 0;
	border-bottom: 1px solid var(--tppd-gold);
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	gap: 14px;
}

.wp-block-button.is-style-tppd-link .wp-block-button__link::after {
	content: "\2192";
	letter-spacing: 0;
	font-size: 16px;
}

.wp-block-button.is-style-tppd-link .wp-block-button__link:hover {
	color: var(--tppd-raspberry) !important;
	border-color: var(--tppd-raspberry);
}

.wp-block-buttons.tppd-buttons {
	gap: 24px 32px;
	align-items: center;
}

@media (max-width: 781px) {
	.wp-block-buttons.tppd-buttons { gap: 20px; }
	.wp-block-buttons.tppd-buttons .wp-block-button:not(.is-style-tppd-link) { width: 100%; }
	.wp-block-buttons.tppd-buttons .wp-block-button:not(.is-style-tppd-link) .wp-block-button__link { width: 100%; }
}

/* --------------------------------------------------------------------------
   Hero and covers
   -------------------------------------------------------------------------- */

.tppd-hero.wp-block-columns {
	align-items: stretch !important;
}

.tppd-hero > .wp-block-column:first-child {
	align-self: center;
	padding-top: 120px;
	padding-bottom: 120px;
}

@media (max-width: 781px) {
	.tppd-hero > .wp-block-column:first-child {
		padding-top: 56px;
		padding-bottom: 8px;
	}
}

.tppd-panel-cream {
	background: var(--tppd-cream);
	padding: 96px 64px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

@media (max-width: 781px) {
	.tppd-panel-cream { padding: 56px 40px; }
}

/* Cover with an offset gold frame behind it */
.tppd-cover-frame {
	position: relative;
	display: block;
	width: fit-content;
	max-width: 400px;
	margin: 0 auto 22px !important;
}

.tppd-cover-frame::before {
	content: "";
	position: absolute;
	inset: 22px -22px -22px 22px;
	border: 1px solid var(--tppd-gold);
	pointer-events: none;
}

.tppd-cover-frame img {
	position: relative;
	display: block;
	box-shadow: 0 30px 60px rgba(106, 34, 64, 0.14);
}

.tppd-cover-plain img {
	border: 1px solid var(--tppd-blush);
}

.tppd-caption {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 17px;
	color: var(--tppd-plum);
	margin: 0;
}

/* Founder portrait in an arch */
.tppd-portrait {
	position: relative;
	width: fit-content;
	max-width: 380px;
	margin: 0 auto !important;
}

.tppd-portrait::before {
	content: "";
	position: absolute;
	inset: 22px -22px -22px 22px;
	border: 1px solid var(--tppd-gold);
	border-radius: 999px 999px 0 0;
	pointer-events: none;
}

.tppd-portrait img {
	position: relative;
	display: block;
	border-radius: 999px 999px 0 0;
	aspect-ratio: 4 / 5;
	object-fit: cover;
}

/* --------------------------------------------------------------------------
   Trust figures
   -------------------------------------------------------------------------- */

.tppd-stats.wp-block-columns {
	gap: 0;
	margin: 0;
}

.tppd-stats .wp-block-column {
	padding: 40px 24px;
	text-align: center;
	box-sizing: border-box;
}

.tppd-stats .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--tppd-gold);
}

.tppd-stat-number {
	font-family: var(--tppd-serif);
	font-size: 44px;
	line-height: 1;
	color: var(--tppd-plum);
	margin: 0 0 10px;
}

.tppd-stat-number em { color: var(--tppd-raspberry); }
.tppd-stat-number mark { background: transparent; font-size: 0.6em; vertical-align: 0.15em; }

.tppd-stats .tppd-eyebrow {
	justify-content: center;
	font-size: 10px;
}

.tppd-stats .tppd-eyebrow::before { display: none; }

@media (max-width: 781px) {
	.tppd-stats.wp-block-columns {
		flex-wrap: wrap !important;
	}
	.tppd-stats.wp-block-columns > .wp-block-column {
		flex-basis: 50% !important;
		padding: 28px 12px;
	}
	.tppd-stats .wp-block-column + .wp-block-column { border-left: 0; }
	.tppd-stats .wp-block-column:nth-child(even) { border-left: 1px solid var(--tppd-gold); }
	.tppd-stats .wp-block-column:nth-child(n+3) { border-top: 1px solid var(--tppd-gold); }
	.tppd-stat-number { font-size: 34px; }
}

/* --------------------------------------------------------------------------
   Spec rows (featured product) and price
   -------------------------------------------------------------------------- */

.tppd-spec {
	border-top: 1px solid var(--tppd-gold);
	max-width: 480px;
}

.tppd-spec-row.wp-block-group {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 24px;
	padding: 14px 0;
	border-bottom: 1px solid var(--tppd-gold);
	margin: 0 !important;
}

.tppd-spec-row > p { margin: 0 !important; }

.tppd-spec-row > p:first-child {
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
}

.tppd-spec-row > p:last-child {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 20px;
	color: var(--tppd-plum);
	text-align: right;
}

.tppd-price {
	font-family: var(--tppd-serif);
	font-size: 40px;
	font-weight: 500;
	color: var(--tppd-plum);
	margin: 0;
}

/* --------------------------------------------------------------------------
   Collection index (categories as rows)
   -------------------------------------------------------------------------- */

.tppd-index {
	border-top: 1px solid var(--tppd-gold);
}

.tppd-index-row.wp-block-group {
	position: relative;
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr) minmax(0, 1.1fr) 40px;
	align-items: center;
	gap: 32px;
	padding: 34px 0;
	border-bottom: 1px solid var(--tppd-gold);
	margin: 0 !important;
}

.tppd-index-row::after {
	content: "\2192";
	font-size: 22px;
	color: var(--tppd-plum);
	transition: transform 0.25s;
}

.tppd-index-row:hover::after { transform: translateX(8px); }

.tppd-index-row > * { margin: 0 !important; }

.tppd-index-num {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 22px;
	color: var(--tppd-orange);
}

.tppd-index-row h3 {
	font-size: 46px;
	font-weight: 300;
	line-height: 1.05;
}

.tppd-index-row h3 a {
	color: inherit;
	text-decoration: none;
}

.tppd-index-row h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.tppd-index-row:hover h3 { color: var(--tppd-raspberry); }

.tppd-index-row > p:not(.tppd-index-num) {
	font-size: 15px;
	line-height: 1.6;
}

@media (max-width: 781px) {
	.tppd-index-row.wp-block-group {
		grid-template-columns: 30px minmax(0, 1fr) 26px;
		gap: 6px 16px;
		padding: 26px 0;
	}
	.tppd-index-row::after { grid-row: 1; grid-column: 3; }
	.tppd-index-row > p:not(.tppd-index-num) { grid-column: 2 / 4; }
	.tppd-index-row h3 { font-size: 34px; }
}

/* --------------------------------------------------------------------------
   Steps
   -------------------------------------------------------------------------- */

.tppd-steps.wp-block-columns {
	gap: 0;
	border-top: 1px solid var(--tppd-gold);
	margin: 0;
}

.tppd-steps .wp-block-column {
	padding: 48px 44px 8px;
}

.tppd-steps .wp-block-column + .wp-block-column {
	border-left: 1px solid var(--tppd-gold);
}

.tppd-step-num {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 72px;
	line-height: 1;
	color: var(--tppd-gold);
	margin: 0 0 18px;
}

.tppd-steps h3 {
	font-size: 32px;
	font-weight: 400;
	margin: 0 0 14px;
}

.tppd-steps p:not(.tppd-step-num) { font-size: 16px; }

@media (max-width: 781px) {
	.tppd-steps .wp-block-column { padding: 28px 0; }
	.tppd-steps .wp-block-column + .wp-block-column {
		border-left: 0;
		border-top: 1px solid var(--tppd-gold);
	}
	.tppd-step-num { font-size: 52px; }
	.tppd-steps h3 { font-size: 27px; }
}

/* --------------------------------------------------------------------------
   Cards (reviews, values)
   -------------------------------------------------------------------------- */

.tppd-cards.wp-block-columns {
	gap: 32px;
	margin: 0;
}

.tppd-card.wp-block-group {
	background: var(--tppd-white);
	border: 1px solid var(--tppd-gold);
	border-radius: 6px;
	padding: 52px 40px 44px;
	text-align: center;
	height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.tppd-card > * { margin-top: 0 !important; margin-bottom: 24px !important; }
.tppd-card > *:last-child { margin-bottom: 0 !important; }

.tppd-stars {
	color: var(--tppd-gold);
	letter-spacing: 0.35em;
	padding-left: 0.35em;
	font-size: 14px;
}

.tppd-quote {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 27px;
	line-height: 1.35;
	color: var(--tppd-text);
	flex: 1;
}

.tppd-card .wp-block-separator.is-style-tppd-diamond {
	width: 96px;
	margin: 0 auto 24px;
}

.tppd-card .tppd-eyebrow {
	justify-content: center;
	font-size: 10px;
}

.tppd-card .tppd-eyebrow::before { display: none; }

.tppd-card-num {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 26px;
	color: var(--tppd-orange);
}

.tppd-card h3 {
	font-size: 46px;
	font-weight: 300;
	font-style: italic;
	color: var(--tppd-raspberry);
}

@media (max-width: 781px) {
	.tppd-card.wp-block-group { padding: 40px 28px 34px; }
	.tppd-quote { font-size: 23px; }
	.tppd-card h3 { font-size: 38px; }
}

/* --------------------------------------------------------------------------
   Big quote (About page)
   -------------------------------------------------------------------------- */

.tppd-bigquote {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(34px, 4.4vw, 58px);
	line-height: 1.2;
	color: var(--tppd-plum);
	max-width: 980px;
	margin-left: auto !important;
	margin-right: auto !important;
}

.tppd-bigquote em {
	font-weight: 400;
	color: var(--tppd-raspberry);
}

/* --------------------------------------------------------------------------
   Lists: roman numerals and gold diamonds
   -------------------------------------------------------------------------- */

ol.tppd-numbered,
ul.tppd-diamond-list {
	list-style: none;
	padding: 0;
	margin: 0;
	border-top: 1px solid var(--tppd-gold);
	counter-reset: tppd;
}

ol.tppd-numbered > li,
ul.tppd-diamond-list > li {
	position: relative;
	padding: 20px 0 20px 52px;
	border-bottom: 1px solid var(--tppd-gold);
	margin: 0;
}

ol.tppd-numbered > li {
	counter-increment: tppd;
}

ol.tppd-numbered > li::before {
	content: counter(tppd, lower-roman) ".";
	position: absolute;
	left: 0;
	top: 20px;
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 19px;
	color: var(--tppd-orange);
}

ul.tppd-diamond-list > li::before {
	content: "";
	position: absolute;
	left: 10px;
	top: 29px;
	width: 9px;
	height: 9px;
	border: 1px solid var(--tppd-gold);
	transform: rotate(45deg);
}

/* --------------------------------------------------------------------------
   FAQ (Details block)
   -------------------------------------------------------------------------- */

.tppd-faq-list {
	border-top: 1px solid var(--tppd-gold);
}

.tppd-eyebrow + .tppd-faq-list,
.tppd-eyebrow + .wp-block-heading,
.wp-block-heading + ol.tppd-numbered,
.wp-block-heading + ul.tppd-diamond-list {
	margin-top: 24px;
}

.entry-content .wp-block-separator.is-style-tppd-diamond {
	margin-top: 64px;
	margin-bottom: 48px;
}

.tppd-card .wp-block-separator.is-style-tppd-diamond {
	margin-top: 0;
	margin-bottom: 24px;
}

.wp-block-details.tppd-faq {
	border-bottom: 1px solid var(--tppd-gold);
	margin: 0 !important;
	padding: 0;
}

.wp-block-details.tppd-faq summary {
	list-style: none;
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	min-height: 72px;
	padding: 18px 0;
	font-family: var(--tppd-serif);
	font-size: 26px;
	line-height: 1.2;
	color: var(--tppd-plum);
}

.wp-block-details.tppd-faq summary::-webkit-details-marker { display: none; }

.wp-block-details.tppd-faq summary::after {
	content: "+";
	font-family: var(--tppd-sans);
	font-weight: 300;
	font-size: 24px;
	color: var(--tppd-gold);
}

.wp-block-details.tppd-faq[open] summary::after { content: "\2013"; }

.wp-block-details.tppd-faq > p {
	margin: 0 0 26px;
	max-width: 680px;
}

@media (max-width: 781px) {
	.wp-block-details.tppd-faq summary { font-size: 22px; min-height: 64px; }
}

/* Jump links at the top of the FAQ page */
.tppd-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 48px;
	padding: 6px 0;
	border-top: 1px solid var(--tppd-gold);
	border-bottom: 1px solid var(--tppd-gold);
	margin: 0;
}

.tppd-jump a {
	display: inline-block;
	padding: 14px 0;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--tppd-text);
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.tppd-jump a:hover { color: var(--tppd-plum); border-bottom-color: var(--tppd-gold); }

@media (max-width: 781px) {
	.tppd-jump { flex-wrap: nowrap; overflow-x: auto; gap: 26px; }
	.tppd-jump a { white-space: nowrap; font-size: 10px; }
}

/* --------------------------------------------------------------------------
   Forms: newsletter (Kit) and contact (Kadence Form)
   -------------------------------------------------------------------------- */

.tppd-contact-card.wp-block-group {
	background: var(--tppd-cream);
	border: 1px solid var(--tppd-gold);
	border-radius: 6px;
	padding: 56px 48px;
}

@media (max-width: 781px) {
	.tppd-contact-card.wp-block-group { padding: 40px 24px; }
}

.tppd-newsletter input[type="email"],
.tppd-newsletter input[type="text"],
.tppd-contact-card input[type="email"],
.tppd-contact-card input[type="text"],
.tppd-contact-card textarea,
.tppd-newsletter .formkit-input {
	width: 100%;
	min-height: 52px;
	padding: 8px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--tppd-gold) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--tppd-text) !important;
	font-family: var(--tppd-serif) !important;
	font-style: italic;
	font-size: 21px !important;
}

.tppd-newsletter input:focus,
.tppd-contact-card input:focus,
.tppd-contact-card textarea:focus,
.tppd-newsletter .formkit-input:focus {
	outline: none;
	border-bottom-color: var(--tppd-plum) !important;
}

.tppd-contact-card label,
.tppd-newsletter label {
	font-family: var(--tppd-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--tppd-text);
}

.tppd-newsletter .formkit-submit,
.tppd-newsletter button[type="submit"],
.tppd-contact-card button[type="submit"],
.tppd-contact-card .kb-submit-field .kb-button {
	min-height: 56px;
	padding: 0 40px !important;
	border: 1px solid var(--tppd-raspberry) !important;
	border-radius: 6px !important;
	background: var(--tppd-raspberry) !important;
	color: var(--tppd-white) !important;
	font-family: var(--tppd-sans) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	letter-spacing: 0.28em !important;
	text-transform: uppercase;
	cursor: pointer;
}

.tppd-newsletter .formkit-submit:hover,
.tppd-newsletter button[type="submit"]:hover,
.tppd-contact-card button[type="submit"]:hover,
.tppd-contact-card .kb-submit-field .kb-button:hover {
	background: var(--tppd-plum) !important;
	border-color: var(--tppd-plum) !important;
}

/* Kit embeds come with their own frame: remove it so the form sits on the page. */
.tppd-newsletter .formkit-form {
	max-width: none !important;
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
}

.tppd-newsletter .formkit-form [data-style="clean"] { padding: 0 !important; }

/* Placeholder boxes in patterns: replace them with the real block. */
.tppd-placeholder {
	border: 1px dashed var(--tppd-gold);
	padding: 24px;
	font-size: 14px;
	text-align: center;
	color: var(--tppd-text);
	background: var(--tppd-cream);
}

/* --------------------------------------------------------------------------
   Header (Kadence)
   -------------------------------------------------------------------------- */

.tppd-topbar,
.site-top-header-wrap .header-html {
	font-family: var(--tppd-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--tppd-cream);
	text-align: center;
}

.site-branding .site-title {
	font-family: var(--tppd-sans) !important;
	font-size: 14px !important;
	font-weight: 400 !important;
	letter-spacing: 0.42em;
	text-transform: uppercase;
	color: var(--tppd-text);
	line-height: 1;
	margin: 0;
}

.site-branding .site-description {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 6px 0 0;
	font-family: var(--tppd-sans) !important;
	font-size: 8px !important;
	font-weight: 400;
	letter-spacing: 0.6em;
	text-transform: uppercase;
	color: var(--tppd-text);
}

.site-branding .site-description::before,
.site-branding .site-description::after {
	content: "";
	width: 30px;
	height: 1px;
	background: #B9B0B3;
}

.site-branding .site-title-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.site-branding img.custom-logo {
	mix-blend-mode: multiply;
}

/* Current page in the menu: thin gold underline */
.main-navigation .primary-menu-container > ul > li.current-menu-item > a,
.main-navigation .primary-menu-container > ul > li > a:hover {
	text-decoration: underline;
	text-decoration-color: var(--tppd-gold);
	text-underline-offset: 8px;
}

/* --------------------------------------------------------------------------
   Footer (Kadence)
   -------------------------------------------------------------------------- */

.tppd-footer-quote {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-weight: 300;
	font-size: clamp(40px, 4.6vw, 64px);
	line-height: 1.15;
	color: var(--tppd-cream);
	text-align: center;
	margin: 56px 0 0;
}

.tppd-footer-quote span { color: var(--tppd-apricot); }

.site-footer .tppd-divider { margin: 22px auto 40px; }

.tppd-footer-brand {
	font-family: var(--tppd-sans);
	font-size: 13px;
	line-height: 1.7;
	letter-spacing: 0.4em;
	text-transform: uppercase;
	color: var(--tppd-cream);
	max-width: 14em;
}

.site-footer h6,
.site-footer .widget-title {
	font-family: var(--tppd-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--tppd-gold);
	margin-bottom: 14px;
}

.site-footer a { text-decoration: none; }
.site-footer a:hover { color: var(--tppd-blush); }

/* --------------------------------------------------------------------------
   Badges
   -------------------------------------------------------------------------- */

.tppd-badge {
	display: inline-block;
	font-family: var(--tppd-sans);
	font-size: 10px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	background: var(--tppd-apricot);
	color: var(--tppd-plum);
	border: 1px solid var(--tppd-orange);
	border-radius: 3px;
	padding: 7px 10px;
	vertical-align: middle;
}

.woocommerce ul.products li.product,
.woocommerce div.product {
	position: relative;
}

.tppd-badge--loop,
.tppd-badge--single {
	position: absolute;
	top: 26px;
	left: 26px;
	z-index: 3;
}

.woocommerce span.onsale {
	background: var(--tppd-apricot);
	color: var(--tppd-plum);
	border: 1px solid var(--tppd-orange);
	border-radius: 3px;
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	min-height: 0;
	line-height: 1;
	padding: 7px 10px;
}

/* --------------------------------------------------------------------------
   WooCommerce: shop grid
   -------------------------------------------------------------------------- */

.woocommerce ul.products {
	row-gap: 80px;
}

.woocommerce ul.products li.product img {
	background: var(--tppd-cream);
	aspect-ratio: 4 / 5;
	object-fit: contain;
	padding: 12%;
	box-sizing: border-box;
	margin-bottom: 18px;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--tppd-serif);
	font-size: 28px;
	font-weight: 400;
	line-height: 1.15;
	color: var(--tppd-plum);
	padding-bottom: 14px;
	border-bottom: 1px solid var(--tppd-gold);
	margin-bottom: 12px;
}

.woocommerce ul.products li.product .price {
	font-family: var(--tppd-serif);
	font-size: 22px;
	font-weight: 500;
	color: var(--tppd-plum);
}

/* Add to cart appears on hover on devices with a mouse, always visible on touch screens. */
@media (hover: hover) and (min-width: 782px) {
	.woocommerce ul.products li.product .button {
		opacity: 0;
		transform: translateY(6px);
		transition: opacity 0.25s, transform 0.25s;
	}
	.woocommerce ul.products li.product:hover .button,
	.woocommerce ul.products li.product:focus-within .button {
		opacity: 1;
		transform: none;
	}
}

.woocommerce ul.products li.product .button {
	width: 100%;
	text-align: center;
}

/* Shop toolbar: result count and sorting */
.woocommerce .woocommerce-result-count {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 17px;
	color: var(--tppd-plum);
}

.woocommerce .woocommerce-ordering select {
	border: 0;
	border-bottom: 1px solid var(--tppd-gold);
	border-radius: 0;
	background-color: transparent;
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 19px;
	color: var(--tppd-plum);
	min-height: 44px;
}

/* Shop page title */
.woocommerce-products-header__title,
.archive .entry-hero .page-title {
	font-family: var(--tppd-serif);
	font-weight: 300;
}

/* --------------------------------------------------------------------------
   WooCommerce: single product
   -------------------------------------------------------------------------- */

.woocommerce div.product .woocommerce-product-gallery {
	background: var(--tppd-cream);
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img {
	border: 1px solid var(--tppd-gold);
	opacity: 1;
}

.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img.flex-active {
	outline: 1px solid var(--tppd-plum);
	border-color: var(--tppd-plum);
}

.woocommerce div.product .product_title {
	font-family: var(--tppd-serif);
	font-size: clamp(46px, 5vw, 72px);
	font-weight: 300;
	line-height: 1.02;
}

.woocommerce div.product .summary p.price,
.woocommerce div.product .summary span.price {
	font-family: var(--tppd-serif);
	font-size: 44px;
	font-weight: 500;
	color: var(--tppd-plum);
}

.woocommerce div.product .woocommerce-product-rating .star-rating span::before,
.woocommerce .star-rating span::before {
	color: var(--tppd-gold);
}

.woocommerce div.product .woocommerce-product-details__short-description {
	font-size: 18px;
}

/* Variations table: one block, no table look */
.woocommerce div.product form.cart .variations,
.woocommerce div.product form.cart .variations tbody,
.woocommerce div.product form.cart .variations tr,
.woocommerce div.product form.cart .variations th,
.woocommerce div.product form.cart .variations td {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
}

.woocommerce div.product form.cart .variations th.label label {
	font-family: var(--tppd-sans);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--tppd-text);
	margin-bottom: 8px;
	display: block;
}

/* Hide WooCommerce's dropdown visually but keep it for the add-to-cart logic */
.tppd-format-select {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.tppd-format {
	border-top: 1px solid var(--tppd-gold);
	margin-bottom: 24px;
}

.tppd-format__row {
	display: flex;
	align-items: center;
	gap: 18px;
	min-height: 72px;
	padding: 14px 4px;
	border-bottom: 1px solid var(--tppd-gold);
	cursor: pointer;
}

.tppd-format__row input {
	accent-color: var(--tppd-plum);
	width: 18px;
	height: 18px;
	margin: 0;
	flex: none;
}

.tppd-format__name {
	flex: 1;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
	font-family: var(--tppd-serif);
	font-size: 26px;
	line-height: 1.15;
	color: var(--tppd-plum);
}

.tppd-format__row:has(input:checked) .tppd-format__name { color: var(--tppd-raspberry); }

.tppd-format__price {
	font-family: var(--tppd-serif);
	font-size: 22px;
	font-weight: 500;
	color: var(--tppd-plum);
}

.tppd-format__price del { opacity: 0.6; font-weight: 400; }

/* The variation price block below is redundant with the per-row prices */
.woocommerce div.product .single_variation .woocommerce-variation-price {
	display: none;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	width: 100%;
	min-height: 58px;
}

.woocommerce div.product form.cart .quantity {
	display: none;
}

.tppd-download-note {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	margin-top: 18px;
}

.tppd-download-note::before {
	content: "";
	flex: none;
	width: 20px;
	height: 20px;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D8B868' stroke-width='1.3'%3E%3Cpath d='M12 3v12M7 10l5 5 5-5M4 17v3h16v-3'/%3E%3C/svg%3E");
}

.tppd-download-note__lead {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 19px;
	color: var(--tppd-plum);
}

/* Tabs under the product: editorial labels instead of boxes */
.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 40px;
	border-bottom: 1px solid var(--tppd-gold);
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	background: transparent;
	border: 0;
	border-radius: 0;
	margin: 0 40px 0 0;
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	padding: 16px 0;
	font-family: var(--tppd-sans);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--tppd-text);
	border-bottom: 1px solid transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--tppd-plum);
	border-bottom-color: var(--tppd-raspberry);
}

/* Reviews as cards */
.woocommerce #reviews #comments ol.commentlist {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 32px;
	padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li {
	margin: 0;
	border: 1px solid var(--tppd-gold);
	border-radius: 6px;
	padding: 40px 32px;
	background: var(--tppd-white);
}

.woocommerce #reviews #comments ol.commentlist li img.avatar { display: none; }

.woocommerce #reviews #comments ol.commentlist li .comment-text {
	margin: 0;
	border: 0;
	padding: 0;
}

.woocommerce #reviews #comments ol.commentlist li .description p {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-weight: 300;
	font-size: 23px;
	line-height: 1.35;
}

/* Related products heading */
.woocommerce .related > h2,
.woocommerce .upsells > h2 {
	font-family: var(--tppd-serif);
	font-weight: 300;
	font-size: clamp(42px, 5vw, 68px);
	text-align: center;
	margin-bottom: 56px;
}

/* --------------------------------------------------------------------------
   Product page sold through Kit
   -------------------------------------------------------------------------- */

.tppd-section.tppd-section--top {
	padding-top: 36px;
}

.tppd-crumbs {
	font-size: 10px;
	font-weight: 500;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--tppd-text);
	margin-bottom: 20px;
}

.tppd-crumbs a {
	color: var(--tppd-text);
	text-decoration: none;
}

.tppd-crumbs a:hover { color: var(--tppd-plum); }

.tppd-gallery-main.wp-block-group {
	background: var(--tppd-cream);
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px;
	box-sizing: border-box;
}

.tppd-gallery-main .tppd-cover-frame {
	max-width: 360px;
	margin: 0 auto !important;
}

.tppd-thumbs.wp-block-columns {
	gap: 14px;
	margin-top: 16px;
	margin-bottom: 0;
}

.tppd-thumbs .wp-block-image {
	margin: 0;
}

.tppd-thumbs img {
	display: block;
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border: 1px solid var(--tppd-gold);
	box-sizing: border-box;
}

.tppd-product-title.wp-block-heading {
	font-size: clamp(46px, 5vw, 72px);
}

.tppd-rating {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 18px;
	color: var(--tppd-plum);
}

.tppd-rating mark {
	background: transparent;
	font-style: normal;
	letter-spacing: 0.3em;
	font-size: 14px;
	margin-right: 10px;
}

.tppd-buy {
	border-top: 1px solid var(--tppd-gold);
}

.tppd-buy-row.wp-block-group {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto 28px;
	grid-template-areas: "name price arrow" "desc price arrow";
	align-items: center;
	column-gap: 20px;
	row-gap: 2px;
	padding: 18px 4px;
	border-bottom: 1px solid var(--tppd-gold);
	margin: 0 !important;
	transition: background 0.2s;
}

.tppd-buy-row::after {
	content: "\2192";
	grid-area: arrow;
	font-size: 20px;
	color: var(--tppd-plum);
	transition: transform 0.25s;
}

.tppd-buy-row:hover { background: var(--tppd-cream); }
.tppd-buy-row:hover::after { transform: translateX(6px); }
.tppd-buy-row > * { margin: 0 !important; }

.tppd-buy-name {
	grid-area: name;
	font-family: var(--tppd-serif);
	font-size: 26px;
	line-height: 1.15;
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 12px;
}

.tppd-buy-name a {
	color: var(--tppd-plum);
	text-decoration: none;
}

/* The whole row is clickable */
.tppd-buy-name a::after {
	content: "";
	position: absolute;
	inset: 0;
}

.tppd-buy-row:hover .tppd-buy-name a { color: var(--tppd-raspberry); }

.tppd-buy-name mark {
	font-family: var(--tppd-sans);
	font-size: 10px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	border: 1px solid var(--tppd-orange);
	border-radius: 3px;
	padding: 7px 10px;
}

.tppd-buy-desc {
	grid-area: desc;
	font-size: 14px;
}

.tppd-buy-price {
	grid-area: price;
	font-family: var(--tppd-serif);
	font-size: 24px;
	font-weight: 500;
	color: var(--tppd-plum);
}

.tppd-buy-row--featured {
	background: var(--tppd-cream);
}

p.tppd-download-note {
	display: block;
	position: relative;
	padding-left: 32px;
	margin-top: 22px;
}

p.tppd-download-note::before {
	position: absolute;
	left: 0;
	top: 3px;
}

.tppd-download-note em {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 19px;
	color: var(--tppd-plum);
}

@media (max-width: 781px) {
	.tppd-gallery-main.wp-block-group { padding: 32px; }
	.tppd-buy-name { font-size: 22px; }
	.tppd-buy-price { font-size: 20px; }
	.tppd-buy-row.wp-block-group { column-gap: 12px; }
}

/* --------------------------------------------------------------------------
   Product cards (shop grid and related products)
   -------------------------------------------------------------------------- */

.tppd-products.wp-block-group {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 80px 40px;
}

.tppd-products > .tppd-product-card { margin: 0 !important; }

.tppd-columns.tppd-head { margin-bottom: 80px; }

.tppd-product-card > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.tppd-product-card > * + * { margin-top: 14px !important; }

.tppd-product-card .wp-block-image {
	width: 100%;
	background: var(--tppd-cream);
	aspect-ratio: 4 / 5;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 12%;
	box-sizing: border-box;
	margin-bottom: 22px !important;
}

.tppd-product-card .wp-block-image a { display: block; }

.tppd-product-card .wp-block-image img {
	display: block;
	max-height: 100%;
	width: auto;
	box-shadow: 0 18px 36px rgba(106, 34, 64, 0.14);
	transition: transform 0.3s;
}

.tppd-product-card:hover .wp-block-image img { transform: translateY(-4px); }

.tppd-product-card .tppd-eyebrow { font-size: 10px; }
.tppd-product-card .tppd-eyebrow::before { width: 28px; }

.tppd-product-card h3 {
	font-size: 28px;
	font-weight: 400;
	line-height: 1.15;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--tppd-gold);
}

.tppd-product-card h3 a {
	color: var(--tppd-plum);
	text-decoration: none;
}

.tppd-product-card h3 a:hover { color: var(--tppd-raspberry); }

.tppd-product-meta {
	font-family: var(--tppd-serif);
	font-style: italic;
	font-size: 18px;
	color: var(--tppd-plum);
}

@media (max-width: 781px) {
	.tppd-products.wp-block-group {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 40px 14px;
	}
	/* "You may also like": one swipeable row on phones */
	.tppd-products--scroll.wp-block-group {
		display: flex;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		scroll-padding-left: var(--tppd-gutter);
		gap: 14px;
		margin-left: calc(-1 * var(--tppd-gutter));
		margin-right: calc(-1 * var(--tppd-gutter));
		padding: 0 var(--tppd-gutter) 8px;
	}
	.tppd-products--scroll > .tppd-product-card {
		flex: 0 0 62%;
		scroll-snap-align: start;
	}
	.tppd-columns.tppd-head { margin-bottom: 40px; }
	.tppd-product-card h3 { font-size: 20px; }
	.tppd-product-meta { font-size: 15px; }
}

/* --------------------------------------------------------------------------
   Pages built with TPPD patterns (page layout set to Fullwidth in Kadence)
   -------------------------------------------------------------------------- */

.entry-content > .tppd-section:first-child { margin-top: 0 !important; }
.entry-content > .tppd-section + .tppd-section { margin-top: 0 !important; }
