/* Savernake gift card PDP.
   Values taken from the universal product template (Elementor 828845),
   the kit (post-6), app.css and the swatch / dropdown stylesheets, so the
   page matches the standard PDP. Scoped to .sav-gc. */

.sav-gc {
	--sav-text: #111111;
	--sav-muted: #888888;
	--sav-line: #e6e4e3;
	--sav-field: #D8D8D8;
	--sav-accent: #E6E6DE;
	--sav-cream: #FBF9F6;
	--sav-flame: #FD4712;
	--sav-serif: "Newsreader", Georgia, "Times New Roman", serif;
	--sav-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;

	color: var(--sav-text);
	font-family: var(--sav-sans);
	font-size: 16px;
	font-weight: 300;
	line-height: 26px;
	padding-bottom: 80px;
}

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

/* Breadcrumb: 16px 8% band, 12px light */
.sav-gc__crumbs {
	padding: 16px 8%;
}
.sav-gc .woocommerce-breadcrumb {
	margin: 0;
	padding: 0;
	color: var(--sav-text);
	font-family: var(--sav-sans);
	font-size: 12px;
	font-weight: 300;
	line-height: 24px;
}
.sav-gc .woocommerce-breadcrumb a {
	color: var(--sav-text);
	text-decoration: none;
}
.sav-gc .savernake-breadcrumb-delimiter {
	vertical-align: middle;
	margin: 0 6px;
}

.sav-gc__notices:empty {
	display: none;
}
.sav-gc__notices {
	padding: 0 8% 16px;
}

/* Product row: images 55% flush left, buy column 45%, 40px gap, 8% right */
.sav-gc__top {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 40px;
	padding: 0 8% 0 0;
}
.sav-gc__media {
	flex: 0 0 55%;
	max-width: 55%;
	padding-bottom: 12px;
}
.sav-gc__buy {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0 2%;
}

/* Images: hero full width, then two-column grid with 8px gaps */
.sav-gc__hero .sav-gc__image {
	display: none;
	width: 100%;
	height: auto;
}
.sav-gc__hero .sav-gc__image.is-active {
	display: block;
}
.sav-gc__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-top: 8px;
}
.sav-gc__grid-image {
	display: block;
	width: 100%;
	height: auto;
}

/* Price data for the tracking tags: present in the page, never shown */
.sav-gc .sav-gc__price-data {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	white-space: nowrap !important;
	margin: -1px !important;
	padding: 0 !important;
	border: 0 !important;
}

/* Eyebrow and title */
.sav-gc__head--mobile {
	display: none;
}
.sav-gc__eyebrow {
	color: var(--sav-muted);
	font-size: 16px;
	font-weight: 300;
	line-height: 26px;
	margin: 0;
}
.sav-gc__eyebrow p {
	margin: 0;
}
.sav-gc .sav-gc__title {
	font-family: var(--sav-serif);
	font-size: 32px;
	font-weight: 500;
	line-height: 42px;
	letter-spacing: -0.01em;
	color: var(--sav-text);
	margin: 20px 0 4px;
	padding: 0;
}

/* Intro: 16px, weight 500, 1.7 */
.sav-gc__intro p {
	font-family: var(--sav-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.7em;
	margin: 0 0 16px;
}

/* Blocks separated by the standard 1px divider */
.sav-gc__form {
	margin: 0;
}
.sav-gc__block {
	margin: 0;
	padding: 20px 0;
	border: 0;
	border-top: 1px solid var(--sav-line);
	min-width: 0;
}
.sav-gc__block--amount {
	border-top: 0;
	padding-top: 19px;
}

.sav-gc__label {
	display: block;
	font-family: var(--sav-sans);
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--sav-text);
	margin: 0 0 8px;
	padding: 0;
}
.sav-gc__optional {
	font-size: 13px;
	font-weight: 300;
	color: var(--sav-muted);
	margin-left: 6px;
}
.sav-gc__hint {
	font-size: 13px;
	font-weight: 300;
	line-height: 1.5;
	color: var(--sav-muted);
	margin: 6px 0 0;
}

/* Amount: set like the PDP price (Newsreader 32px, 500) on a quiet rule */
.sav-gc__amount {
	display: flex;
	align-items: baseline;
	gap: 2px;
	max-width: 260px;
	border-bottom: 1px solid var(--sav-field);
	padding-bottom: 4px;
}
.sav-gc__amount:focus-within {
	border-bottom-color: var(--sav-text);
}
.sav-gc__currency,
.sav-gc .sav-gc__amount-input {
	font-family: var(--sav-serif);
	font-size: 32px;
	font-weight: 500;
	line-height: 34px;
	color: #000000;
}
.sav-gc .sav-gc__amount-input {
	flex: 1;
	min-width: 0;
	width: 100%;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	-moz-appearance: textfield;
	appearance: textfield;
}
.sav-gc .sav-gc__amount-input::-webkit-outer-spin-button,
.sav-gc .sav-gc__amount-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.sav-gc .sav-gc__amount-input:focus {
	outline: none;
}
.sav-gc__amount-hint {
	color: var(--sav-flame);
}

/* Suggested amounts: swatch-style chips (1px #D8D8D8, 6px radius) */
.sav-gc__presets-label {
	margin: 16px 0 10px;
	font-size: 14px;
	font-weight: 300;
	line-height: 22px;
	color: var(--sav-text);
}
.sav-gc__presets {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.sav-gc .sav-gc__preset,
.sav-gc .sav-gc__preset:hover,
.sav-gc .sav-gc__preset:focus {
	min-width: 72px;
	margin: 0;
	padding: 10px 16px !important;
	border: 1px solid var(--sav-field) !important;
	border-radius: 6px !important;
	background: transparent !important;
	color: var(--sav-text) !important;
	box-shadow: none;
	font-family: var(--sav-sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
	transition: border-color 0.15s ease;
}
.sav-gc .sav-gc__preset:hover {
	border-color: #b5b5b5 !important;
}
.sav-gc .sav-gc__preset[aria-pressed="true"] {
	border: 2px solid var(--sav-flame) !important;
	padding: 9px 15px !important;
	box-shadow: inset 0 0 0 2px var(--sav-cream);
}
.sav-gc .sav-gc__preset:focus-visible {
	outline: 2px solid var(--sav-flame);
	outline-offset: 2px;
}

/* Formats */
.sav-gc__formats {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}
.sav-gc .sav-gc__legend {
	float: none;
	width: 100%;
	color: var(--sav-text);
	padding: 0;
	margin: 0 0 6px;
}
.sav-gc__format-list {
	display: grid;
	gap: 0.75rem;
}
.sav-gc__format {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 16px;
	border: 1px solid var(--sav-field);
	border-radius: 6px;
	background: transparent;
	cursor: pointer;
	transition: border-color 0.15s ease;
}
.sav-gc__format:hover {
	border-color: #b5b5b5;
}
.sav-gc__format:has(input:checked) {
	border: 2px solid var(--sav-flame);
	padding: 15px;
}
.sav-gc__format input[type="radio"] {
	flex: 0 0 auto;
	width: 16px;
	height: 16px;
	margin: 5px 0 0;
	accent-color: var(--sav-flame);
}
.sav-gc__format input[type="radio"]:focus-visible {
	outline: 2px solid var(--sav-flame);
	outline-offset: 2px;
}
.sav-gc__format-body {
	display: block;
	flex: 1;
	min-width: 0;
}
.sav-gc__format-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 4px 16px;
}
.sav-gc__format-name {
	font-size: 16px;
	font-weight: 500;
	line-height: 26px;
}
.sav-gc__format-fee {
	font-size: 14px;
	font-weight: 300;
	line-height: 26px;
	color: var(--sav-muted);
}
.sav-gc__format-fee.is-free {
	color: var(--sav-text);
}
.sav-gc__format-desc {
	display: block;
	margin-top: 8px;
	font-size: 14px;
	font-weight: 300;
	line-height: 22px;
	color: var(--sav-text);
}
.sav-gc__format-note {
	margin-top: 14px;
}

/* Text fields: as the Engraving select (white, 1px accent border, square) */
.sav-gc__field + .sav-gc__field {
	margin-top: 20px;
}
.sav-gc .sav-gc__input {
	display: block;
	width: 100%;
	margin: 0;
	padding: 15px 16px;
	border: 1px solid var(--sav-accent);
	border-radius: 0;
	background: #FFFFFF;
	box-shadow: none;
	font-family: var(--sav-sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 24px;
	color: var(--sav-text);
	transition: border-color 0.15s ease;
}
.sav-gc .sav-gc__input:hover {
	border-color: #b5b5b5;
}
.sav-gc .sav-gc__input:focus {
	outline: none;
	border-color: #222222;
	box-shadow: inset 0 0 0 1px #222222;
}
.sav-gc .sav-gc__textarea {
	min-height: 112px;
	resize: vertical;
}

/* Summary and Add to basket (kit + template button values) */
.sav-gc__summary {
	margin: 0 0 16px;
	font-size: 14px;
	font-weight: 300;
	line-height: 22px;
}
.sav-gc__summary:empty {
	display: none;
}
.sav-gc__summary strong {
	font-weight: 600;
}
body .sav-gc button.single_add_to_cart_button.sav-gc__submit {
	display: block;
	width: 100%;
	margin: 0;
	padding: 17px 50px;
	border: 0;
	border-radius: 38px;
	background: var(--sav-flame) !important;
	color: #FFFFFF !important;
	font-family: var(--sav-sans);
	font-size: 12px;
	font-weight: 600;
	line-height: 23px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	cursor: pointer;
	transition: all 0.2s;
}
body .sav-gc button.single_add_to_cart_button.sav-gc__submit:hover,
body .sav-gc button.single_add_to_cart_button.sav-gc__submit:focus-visible {
	background: #FD4712D9 !important;
	color: #FFFFFF !important;
}
body .sav-gc button.single_add_to_cart_button.sav-gc__submit:focus-visible {
	outline: 2px solid var(--sav-text);
	outline-offset: 3px;
}

.sav-gc__rating {
	padding: 20px 0;
	border-top: 1px solid var(--sav-line);
}

/* Accordions: same values as app.css, repeated in case it is not loaded */
.sav-gc .woocommerce-accordions {
	border-top: 1px solid var(--sav-line);
	margin-top: 20px;
}
.sav-gc .woocommerce-accordion {
	border-bottom: 1px solid var(--sav-line);
}
.sav-gc .woocommerce-accordion__title {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 30px 0;
	font-size: 16px;
	font-weight: 500;
	line-height: 26px;
	letter-spacing: 0.005em;
	color: var(--sav-text);
	list-style: none;
	cursor: pointer;
}
.sav-gc .woocommerce-accordion__title::-webkit-details-marker {
	display: none;
}
.sav-gc .woocommerce-accordion__title::after {
	content: "+";
	font-size: 18px;
	font-weight: 400;
	line-height: 1;
}
.sav-gc .woocommerce-accordion[open] > .woocommerce-accordion__title::after {
	content: "\2212";
}
.sav-gc .woocommerce-accordion__content {
	margin-top: -20px;
	padding: 0 0 30px;
	line-height: 24px;
}
.sav-gc .woocommerce-accordion__content p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 22px;
}
.sav-gc .woocommerce-accordion__content p:last-child {
	margin-bottom: 0;
}
.sav-gc .woocommerce-accordion__content a {
	color: var(--sav-flame);
}

/* Trust boxes: same values as app.css */
.sav-gc .savernake-product-boxes {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-top: 50px;
}
.sav-gc .savernake-product-box {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px;
	border: 1px solid var(--sav-line);
}
.sav-gc .savernake-product-box-title {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 10px;
}
.sav-gc .savernake-product-box-title p {
	margin: 0;
	font-size: 18px;
	font-weight: 500;
	line-height: 26px;
}
.sav-gc .savernake-product-box-description {
	margin: 0;
	font-size: 14px;
	font-weight: 400;
	line-height: 24px;
}

/* Tablet: stacked, as the template does at 1024px */
@media (max-width: 1024px) {
	.sav-gc__top {
		flex-direction: column;
		gap: 0;
		padding: 0 4%;
	}
	.sav-gc__media,
	.sav-gc__buy {
		flex: 0 0 auto;
		max-width: 100%;
		width: 100%;
	}
	.sav-gc__buy {
		padding: 0;
	}
	.sav-gc .sav-gc__title {
		font-size: 30px;
	}
}

/* Mobile: eyebrow and title above an edge-to-edge square image */
@media (max-width: 767px) {
	.sav-gc__crumbs {
		padding: 16px 8%;
	}
	.sav-gc .woocommerce-breadcrumb {
		font-size: 10px;
	}
	.sav-gc__notices {
		padding: 0 8px 16px;
	}
	.sav-gc__top {
		padding: 0 8px;
	}
	.sav-gc__head--mobile {
		display: block;
		padding-bottom: 16px;
	}
	.sav-gc__head--desktop {
		display: none;
	}
	.sav-gc .sav-gc__title--mobile {
		margin-top: 20px;
	}
	.sav-gc__media {
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		padding-bottom: 12px;
	}
	.sav-gc__hero .sav-gc__image {
		aspect-ratio: 1 / 1;
		object-fit: cover;
	}
	.sav-gc__grid {
		display: none;
	}
	.sav-gc__amount {
		max-width: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sav-gc__format,
	.sav-gc .sav-gc__preset,
	.sav-gc .sav-gc__input,
	body .sav-gc button.single_add_to_cart_button.sav-gc__submit {
		transition: none;
	}
}

/* Inline errors */
.sav-gc .sav-gc__error {
	margin: 6px 0 0;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--sav-flame);
}
.sav-gc .sav-gc__input.has-error {
	border-color: var(--sav-flame);
	box-shadow: inset 0 0 0 1px var(--sav-flame);
}


/* ------------------------------------------------------------------------
 * Refinements: fewer containers, clearer emphasis, relational spacing.
 * ------------------------------------------------------------------------ */

/* 1. Presets: compact shortcuts, one neutral rule, one orange border when chosen. */
.sav-gc .sav-gc__presets {
	gap: 8px;
}
.sav-gc .sav-gc__preset,
.sav-gc .sav-gc__preset:hover,
.sav-gc .sav-gc__preset:focus {
	min-width: 0;
	min-height: 40px;
	padding: 7px 14px !important;
	border: 1px solid var(--sav-field) !important;
	border-radius: 2px !important;
	font-size: 15px;
	box-shadow: none !important;
}
.sav-gc .sav-gc__preset:hover {
	border-color: #9a9a9a !important;
}
.sav-gc .sav-gc__preset[aria-pressed="true"] {
	border: 1px solid var(--sav-flame) !important;
	padding: 7px 14px !important;
	box-shadow: none !important;
}
.sav-gc .sav-gc__presets-label {
	margin: 14px 0 8px;
}

/* 2. Formats: one ruled choice group, not three cards. */
.sav-gc .sav-gc__format-list {
	display: block;
	border-top: 1px solid var(--sav-line);
}
.sav-gc .sav-gc__format,
.sav-gc .sav-gc__format:hover {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 14px 0 14px 12px;
	border: 0;
	border-bottom: 1px solid var(--sav-line);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.sav-gc .sav-gc__format:has(input:checked) {
	border: 0;
	border-bottom: 1px solid var(--sav-line);
	padding: 14px 0 14px 12px;
	box-shadow: inset 2px 0 0 var(--sav-flame);
}
.sav-gc .sav-gc__format-head {
	flex-wrap: nowrap;
	align-items: baseline;
}
.sav-gc .sav-gc__format-name {
	flex: 1 1 auto;
}
.sav-gc .sav-gc__format-fee {
	flex: 0 0 auto;
	text-align: right;
	white-space: nowrap;
}
.sav-gc .sav-gc__format-desc {
	margin-top: 2px;
	color: var(--sav-muted);
	max-width: 46ch;
}
.sav-gc .sav-gc__format:has(input:checked) .sav-gc__format-desc {
	color: var(--sav-text);
}
.sav-gc .sav-gc__format-note {
	margin-top: 10px;
}

/* 4. Tighter form: close within a field, a clear step between fields. */
.sav-gc .sav-gc__label {
	margin-bottom: 6px;
}
.sav-gc .sav-gc__hint {
	margin-top: 4px;
}
.sav-gc .sav-gc__field + .sav-gc__field {
	margin-top: 16px;
}
.sav-gc .sav-gc__block--details {
	padding-top: 24px;
	padding-bottom: 24px;
}

/* 6. Fewer mechanical dividers: the accordions keep their own rules only. */
.sav-gc .woocommerce-accordions {
	margin-top: 8px;
}

/* 5. Reassurance as a plain text strip, no boxes or icons. */
.sav-gc .sav-gc__points {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 40px;
}
.sav-gc .sav-gc__point {
	padding: 0 18px;
	border-left: 1px solid var(--sav-line);
}
.sav-gc .sav-gc__point:first-child {
	padding-left: 0;
	border-left: 0;
}
.sav-gc .sav-gc__point-title {
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 600;
	line-height: 22px;
}
.sav-gc .sav-gc__point-text {
	margin: 0;
	font-size: 14px;
	font-weight: 300;
	line-height: 22px;
	color: var(--sav-muted);
}

@media (max-width: 767px) {
	.sav-gc .sav-gc__format,
	.sav-gc .sav-gc__format:hover,
	.sav-gc .sav-gc__format:has(input:checked) {
		padding: 12px 0 12px 10px;
	}
	.sav-gc .sav-gc__points {
		grid-template-columns: minmax(0, 1fr);
		margin-top: 32px;
		border-top: 1px solid var(--sav-line);
	}
	.sav-gc .sav-gc__point,
	.sav-gc .sav-gc__point:first-child {
		padding: 14px 0;
		border-left: 0;
		border-bottom: 1px solid var(--sav-line);
	}
}
