/* Gifting Perfected Finder. Override the variables below from Elementor's Custom CSS to restyle everything. */
.gpf-finder,
.gpf-grid,
.gpf-disclosure,
.gpf-notice {
	--gpf-primary: #1d2b45;
	--gpf-primary-text: #fbf7f2;
	--gpf-accent: #b5524c;
	--gpf-accent-hover: #9e4440;
	--gpf-accent-text: #fff;
	--gpf-text: #000;
	--gpf-muted: #5b6474;
	--gpf-surface: #fff;
	--gpf-soft: #fbf7f2;
	--gpf-blush: #f3dcd8;
	--gpf-border: #e6dcd3;
	--gpf-border-strong: #cbbcae;
	--gpf-radius: 12px;
	--gpf-heading-font: var(--e-global-typography-primary-font-family, Georgia), Georgia, serif;
	color: var(--gpf-text);
}

.gpf-finder {
	margin: 8px 0 48px;
}

/* Headline (quiz view only) */
.gpf-hero {
	margin: 0 0 28px;
	max-width: 46rem;
}

.gpf-finder .gpf-hero__title,
.gpf-finder .gpf-results__title {
	margin: 0 0 12px;
	color: var(--gpf-primary);
	font-family: var(--gpf-heading-font);
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 600;
	line-height: 1.15;
}

.gpf-hero__intro {
	margin: 0;
	color: var(--gpf-muted);
	font-size: 1.15rem;
	line-height: 1.6;
}

/* Quiz */
.gpf-form {
	display: flex;
	flex-direction: column;
	gap: 0;
	padding: 8px 32px 32px;
	border: 1px solid var(--gpf-border);
	border-radius: 20px;
	background: var(--gpf-soft);
}

.gpf-finder .gpf-question {
	margin: 0;
	padding: 24px 0;
	border: 0;
	border-bottom: 1px solid var(--gpf-border);
}

/* A fieldset's top padding lands below its legend, so the legend carries that space itself. */
.gpf-finder fieldset.gpf-question {
	padding-top: 0;
}

.gpf-finder fieldset.gpf-question legend {
	padding-top: 24px;
}

.gpf-finder .gpf-question legend,
.gpf-finder .gpf-question__label {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 10px;
	margin-bottom: 14px;
	padding: 0;
	color: var(--gpf-primary);
	font-family: var(--gpf-heading-font);
	font-size: 1.3rem;
	font-weight: 600;
	line-height: 1.3;
}

.gpf-step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--gpf-accent);
	color: var(--gpf-accent-text);
	font-family: inherit;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
}

.gpf-hint {
	color: var(--gpf-muted);
	font-family: inherit;
	font-size: 0.9rem;
	font-weight: 400;
}

.gpf-question legend .gpf-hint,
.gpf-question__label .gpf-hint {
	font-family: var(--e-global-typography-text-font-family, inherit), sans-serif;
}

.gpf-finder .gpf-question select {
	width: 100%;
	max-width: 420px;
	height: 48px;
	padding: 0 14px;
	border: 1.5px solid var(--gpf-border-strong);
	border-radius: 10px;
	background-color: var(--gpf-surface);
	color: var(--gpf-text);
	font-size: 1rem;
}

.gpf-finder .gpf-question select:focus {
	border-color: var(--gpf-primary);
}

.gpf-choices {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}

.gpf-choice {
	position: relative;
	cursor: pointer;
}

.gpf-choice input {
	position: absolute;
	opacity: 0;
}

.gpf-choice span {
	display: inline-block;
	padding: 9px 16px;
	border: 1.5px solid var(--gpf-border-strong);
	border-radius: 999px;
	background: var(--gpf-surface);
	color: var(--gpf-text);
	font-size: 0.95rem;
	line-height: 1.3;
	transition: border-color 0.15s, background-color 0.15s;
}

.gpf-choice:hover span {
	border-color: var(--gpf-primary);
}

.gpf-choice input:checked + span {
	border-color: var(--gpf-primary);
	background: var(--gpf-primary);
	color: var(--gpf-primary-text);
}

.gpf-choice input:focus-visible + span {
	outline: 2px solid var(--gpf-accent);
	outline-offset: 2px;
}

.gpf-more,
.gpf-edit {
	border: 1px solid var(--gpf-border);
	border-radius: var(--gpf-radius);
	background: var(--gpf-surface);
}

.gpf-more {
	margin-top: 24px;
	padding: 18px 20px;
}

.gpf-more > summary,
.gpf-edit > summary {
	color: var(--gpf-primary);
	font-weight: 600;
	cursor: pointer;
}

.gpf-more[open] > summary {
	margin-bottom: 4px;
}

.gpf-more .gpf-question:last-child {
	border-bottom: 0;
	padding-bottom: 4px;
}

.gpf-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 20px;
	margin-top: 28px;
}

.gpf-question--level[hidden] {
	display: none;
}

/* Buttons. Scoped to the finder so the theme's own button colors don't win. */
.gpf-finder .gpf-submit,
.gpf-card__button {
	display: inline-block;
	padding: 12px 22px;
	border: 0;
	border-radius: 999px;
	background: var(--gpf-accent);
	color: var(--gpf-accent-text);
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}

.gpf-finder .gpf-submit {
	padding: 16px 40px;
	font-size: 1.1rem;
}

.gpf-finder .gpf-submit:hover,
.gpf-finder .gpf-submit:focus,
.gpf-card__button:hover,
.gpf-card__button:focus {
	background: var(--gpf-accent-hover);
	color: var(--gpf-accent-text);
}

/* Results */
.gpf-results__head {
	margin: 0 0 8px;
}

.gpf-results__note {
	margin: 0 0 12px;
	color: var(--gpf-muted);
}

.gpf-finder .gpf-results__title--close {
	margin-top: 40px;
	font-size: 1.6rem;
}

.gpf-summary {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.gpf-summary__chip {
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--gpf-blush);
	color: var(--gpf-primary);
	font-size: 0.9rem;
}

.gpf-finder .gpf-summary__restart {
	margin-left: 4px;
	color: var(--gpf-accent);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: underline;
}

.gpf-refine {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 18px;
	margin: 20px 0;
	padding: 12px 16px;
	border-radius: var(--gpf-radius);
	background: var(--gpf-soft);
	font-size: 0.95rem;
}

.gpf-refine__label {
	color: var(--gpf-primary);
	font-weight: 600;
}

.gpf-finder .gpf-refine__apply {
	padding: 4px 12px;
	border: 1px solid var(--gpf-border-strong);
	border-radius: 999px;
	background: var(--gpf-surface);
	color: var(--gpf-text);
	cursor: pointer;
}

.gpf-refine.is-auto .gpf-refine__apply {
	display: none;
}

.gpf-edit {
	margin-top: 40px;
	padding: 18px 20px;
	background: var(--gpf-soft);
}

.gpf-edit[open] > summary {
	margin-bottom: 16px;
}

.gpf-edit .gpf-form {
	padding: 0;
	border: 0;
}

/* Cards */
.gpf-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: 24px;
	margin: 0 0 32px;
}

.gpf-card {
	display: flex;
	flex-direction: column;
	background: var(--gpf-surface);
	border: 1px solid var(--gpf-border);
	border-radius: var(--gpf-radius);
	overflow: hidden;
	transition: box-shadow 0.2s;
}

.gpf-card:hover {
	box-shadow: 0 8px 24px rgba(29, 43, 69, 0.1);
}

.gpf-card__media {
	position: relative;
	aspect-ratio: 1 / 1;
	background: var(--gpf-soft);
}

.gpf-card__image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}

.gpf-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--gpf-accent);
	color: var(--gpf-accent-text);
	font-size: 0.75rem;
	font-weight: 600;
}

.gpf-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 18px;
}

.gpf-card__title {
	margin: 0;
	color: var(--gpf-primary);
	font-family: var(--gpf-heading-font);
	font-size: 1.15rem;
	font-weight: 600;
	line-height: 1.3;
}

.gpf-card__blurb {
	margin: 0;
	color: var(--gpf-muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

.gpf-card__highlights {
	margin: 0;
	padding-left: 1.2em;
	font-size: 0.9rem;
	line-height: 1.5;
}

.gpf-card__buy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: auto;
	padding-top: 6px;
}

.gpf-card__price {
	font-size: 1.1rem;
	font-weight: 700;
}

.gpf-card__review {
	color: var(--gpf-primary);
	font-size: 0.9rem;
	text-decoration: underline;
}

.gpf-disclosure {
	margin: 0 0 16px;
	color: var(--gpf-muted);
	font-size: 0.8rem;
}

.gpf-notice {
	padding: 10px 14px;
	border: 1px dashed var(--gpf-border);
	color: var(--gpf-muted);
	font-size: 0.85rem;
}

@media (max-width: 600px) {
	.gpf-form {
		padding: 4px 18px 24px;
	}

	.gpf-finder .gpf-submit {
		width: 100%;
	}
}
