/* ==========================================================================
   Just For TasteMyAruba — WooCommerce: gift card, cart, checkout
   Rebuilt in 1.1.0, mobile first. Bold type, one accent, hairlines instead
   of boxes.

   Scoped to body.tma-shop (added by the plugin on shop pages only), so none
   of this reaches the Elementor pages.

   Why some rules carry !important: the child theme ships a few !important
   rules of its own (`.product-type-gift-card{display:flex!important}`,
   `.gift_card_template_button button{background:…!important}`) plus global
   `input,select{height:4rem}` and `h1{text-transform:capitalize}` rules, and
   YITH / Storefront style the same elements. Each !important below answers
   one of those.
   ========================================================================== */

body.tma-shop {
	--tma-dark: #173B2C;
	--tma-darker: #0F2A1F;
	--tma-green: #2E8B57;
	--tma-sage: #4E7079;
	--tma-cream: #F4F1E8;
	--tma-sand: #ECE6D6;
	--tma-coral: #E8874A;
	--tma-coral-hover: #F0975D;
	--tma-ink: #3A4D45;
	--tma-muted: #5E726A;
	--tma-line: rgba(23, 59, 44, .16);
	--tma-hair: rgba(23, 59, 44, .09);
	--tma-card: #FFFFFF;
	--tma-error: #B3261E;
	--tma-r: 14px;
	--tma-r-lg: 24px;
	--tma-ease: cubic-bezier(.22, .61, .36, 1);
	--tma-head: 'Baloo 2', 'Arial Rounded MT Bold', sans-serif;
	--tma-body: Archivo, 'Helvetica Neue', Arial, sans-serif;
	--tma-gutter: 20px;
	--tma-focus: 0 0 0 4px rgba(46, 139, 87, .18);

	background: var(--tma-cream) !important;
	color: var(--tma-dark);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

@media (min-width: 600px) {
	body.tma-shop { --tma-gutter: 32px; }
}

@media (min-width: 1024px) {
	body.tma-shop { --tma-gutter: 40px; }
}

/* ==========================================================================
   Page frame
   ========================================================================== */

/* The theme shifts .page-content down with `position:relative; top:12rem`,
   room for a fixed header that no longer exists. That was the big gap above
   the product (which the old plugin tried to cancel with negative margins
   from JavaScript), and it also slid the page 12rem over the footer. */
body.tma-shop .page-content {
	top: 0 !important;
	margin-top: 0 !important;
	padding: 0 0 72px;
	background: var(--tma-cream);
	color: var(--tma-dark);
	font-family: var(--tma-body);
	font-size: 16px;
	line-height: 1.55;
}

body.tma-shop .page-content > .full-width-container {
	margin-top: 0 !important;
	background: transparent;
}

body.tma-shop .page-content > .full-width-container > .container {
	width: auto;
	max-width: 1180px;
	margin: 0 auto;
	padding-left: var(--tma-gutter);
	padding-right: var(--tma-gutter);
	box-sizing: border-box;
}

body.tma-shop .page-content *,
body.tma-shop .page-content *::before,
body.tma-shop .page-content *::after {
	box-sizing: border-box;
}

/* Theme globals (Montserrat, capitalize, 7rem line height) do not belong
   here. */
body.tma-shop .page-content h1,
body.tma-shop .page-content h2,
body.tma-shop .page-content h3,
body.tma-shop .page-content h4,
body.tma-shop .page-content h5 {
	font-family: var(--tma-head);
	font-weight: 700;
	color: var(--tma-dark);
	text-transform: none;
	letter-spacing: -0.01em;
	line-height: 1.15;
}

body.tma-shop .page-content p {
	font-size: inherit;
	line-height: 1.55;
	margin: 0 0 1em;
}

body.tma-shop .page-content a {
	color: var(--tma-green);
	text-underline-offset: 3px;
}

body.tma-shop .page-content a:hover {
	color: var(--tma-dark);
}

body.tma-shop .page-content :focus-visible {
	outline: 3px solid var(--tma-green);
	outline-offset: 2px;
}

body.tma-shop .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ==========================================================================
   Buttons
   ========================================================================== */

body.tma-shop .page-content .button,
body.tma-shop .page-content button[type="submit"],
body.tma-shop .page-content input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 48px;
	height: auto;
	margin: 0;
	padding: 0 22px;
	border: 1.5px solid var(--tma-dark);
	border-radius: var(--tma-r);
	background: var(--tma-dark);
	color: var(--tma-cream) !important;
	font-family: var(--tma-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: .01em;
	text-align: center;
	text-decoration: none;
	text-transform: none;
	white-space: normal;
	box-shadow: none;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color .18s var(--tma-ease), border-color .18s var(--tma-ease), color .18s var(--tma-ease), transform .12s var(--tma-ease), box-shadow .18s var(--tma-ease);
}

body.tma-shop .page-content .button:hover,
body.tma-shop .page-content button[type="submit"]:hover {
	background: var(--tma-darker);
	border-color: var(--tma-darker);
	color: var(--tma-cream) !important;
}

body.tma-shop .page-content .button:active,
body.tma-shop .page-content button[type="submit"]:active {
	transform: scale(.98);
}

body.tma-shop .page-content .button:disabled,
body.tma-shop .page-content .button.disabled,
body.tma-shop .page-content button[type="submit"]:disabled {
	opacity: .45;
	cursor: not-allowed;
	transform: none;
}

/* The one filled, warm button on each page: Add to cart, Proceed to
   checkout, Place order. Dark text on coral is 4.7:1 — readable outdoors in
   Aruban sun, where white on coral (2.6:1) is not. */
body.tma-shop .page-content .single_add_to_cart_button,
body.tma-shop .page-content .gift_card_template_button button.gift_card_add_to_cart_button,
body.tma-shop .page-content .wc-proceed-to-checkout .checkout-button,
body.tma-shop .page-content #place_order,
body.tma-shop .page-content .return-to-shop .button,
body.tma-shop .tma-sticky-bar .tma-sb-btn {
	min-height: 56px;
	padding: 0 26px;
	border: 0 !important;
	border-radius: var(--tma-r) !important;
	background: var(--tma-coral) !important;
	color: var(--tma-dark) !important;
	font-family: var(--tma-body);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .01em;
	box-shadow: 0 14px 26px -16px rgba(200, 101, 42, .95);
}

body.tma-shop .page-content .single_add_to_cart_button:hover,
body.tma-shop .page-content .gift_card_template_button button.gift_card_add_to_cart_button:hover,
body.tma-shop .page-content .wc-proceed-to-checkout .checkout-button:hover,
body.tma-shop .page-content #place_order:hover,
body.tma-shop .page-content .return-to-shop .button:hover,
body.tma-shop .tma-sticky-bar .tma-sb-btn:hover {
	background: var(--tma-coral-hover) !important;
	color: var(--tma-dark) !important;
}

/* A small arrow after "Proceed to checkout" and "Choose a gift card". */
body.tma-shop .page-content .wc-proceed-to-checkout .checkout-button::after,
body.tma-shop .page-content .return-to-shop .button::after {
	content: '';
	display: inline-block !important;
	width: 9px;
	height: 9px;
	margin-left: 4px;
	border-top: 2.5px solid currentColor;
	border-right: 2.5px solid currentColor;
	transform: rotate(45deg);
}

/* ==========================================================================
   Fields
   ========================================================================== */

body.tma-shop .page-content input[type="text"],
body.tma-shop .page-content input[type="email"],
body.tma-shop .page-content input[type="tel"],
body.tma-shop .page-content input[type="number"],
body.tma-shop .page-content input[type="password"],
body.tma-shop .page-content input[type="search"],
body.tma-shop .page-content input[type="url"],
body.tma-shop .page-content input[type="date"],
body.tma-shop .page-content textarea,
body.tma-shop .page-content select {
	display: block;
	width: 100%;
	max-width: none;
	height: auto;
	min-height: 52px;
	margin: 0;
	padding: 13px 16px;
	border: 1.5px solid var(--tma-line);
	border-radius: 12px;
	background: var(--tma-card);
	color: var(--tma-dark);
	font-family: var(--tma-body);
	font-size: 16px; /* 16px or iOS zooms the page on focus */
	font-weight: 400;
	line-height: 1.35;
	box-shadow: none;
	outline: 0;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color .15s var(--tma-ease), box-shadow .15s var(--tma-ease);
}

body.tma-shop .page-content select {
	padding-right: 44px;
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23173B2C' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 18px;
}

body.tma-shop .page-content textarea {
	min-height: 104px;
	resize: vertical;
}

body.tma-shop .page-content input::placeholder,
body.tma-shop .page-content textarea::placeholder {
	color: #8B9A93;
	opacity: 1;
}

body.tma-shop .page-content input:hover,
body.tma-shop .page-content textarea:hover,
body.tma-shop .page-content select:hover {
	border-color: rgba(23, 59, 44, .32);
}

body.tma-shop .page-content input:focus,
body.tma-shop .page-content textarea:focus,
body.tma-shop .page-content select:focus {
	border-color: var(--tma-dark);
	box-shadow: var(--tma-focus);
	outline: 0;
}

body.tma-shop .page-content input[type="checkbox"],
body.tma-shop .page-content input[type="radio"] {
	flex: none;
	width: 20px;
	height: 20px;
	min-height: 0;
	margin: 0;
	padding: 0;
	accent-color: var(--tma-dark);
	box-shadow: none;
	cursor: pointer;
}

body.tma-shop .page-content label {
	display: block;
	margin: 0 0 7px;
	color: var(--tma-dark);
	font-family: var(--tma-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0;
	text-transform: none;
}

body.tma-shop .page-content .required {
	color: var(--tma-coral);
	border: 0;
	text-decoration: none;
	font-weight: 700;
}

body.tma-shop .page-content .optional {
	color: var(--tma-muted);
	font-weight: 400;
}

/* Woo's own validation states. */
body.tma-shop .page-content .woocommerce-invalid input.input-text,
body.tma-shop .page-content .woocommerce-invalid select,
body.tma-shop .page-content .ywgc-red-border {
	border-color: var(--tma-error) !important;
	box-shadow: 0 0 0 4px rgba(179, 38, 30, .10) !important;
}

body.tma-shop .page-content .woocommerce-validated input.input-text {
	box-shadow: none;
}

/* Select2 (country picker on the checkout). */
body.tma-shop .select2-container .select2-selection--single {
	height: 52px;
	border: 1.5px solid var(--tma-line);
	border-radius: 12px;
	background: var(--tma-card);
}

body.tma-shop .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0 44px 0 16px;
	color: var(--tma-dark);
	font-family: var(--tma-body);
	font-size: 16px;
	line-height: 49px;
}

body.tma-shop .select2-container .select2-selection--single .select2-selection__arrow {
	top: 0;
	right: 12px;
	height: 49px;
}

body.tma-shop .select2-container--focus .select2-selection--single,
body.tma-shop .select2-container--open .select2-selection--single {
	border-color: var(--tma-dark);
	box-shadow: var(--tma-focus);
}

body.tma-shop .select2-dropdown {
	border: 1.5px solid var(--tma-line);
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 18px 40px -18px rgba(23, 59, 44, .4);
	font-family: var(--tma-body);
}

body.tma-shop .select2-search--dropdown .select2-search__field {
	min-height: 44px;
	border: 1.5px solid var(--tma-line);
	border-radius: 10px;
	font-size: 16px;
}

body.tma-shop .select2-results__option {
	padding: 10px 14px;
	font-size: 15px;
}

body.tma-shop .select2-container--default .select2-results__option--highlighted[aria-selected],
body.tma-shop .select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--tma-dark);
	color: var(--tma-cream);
}

/* ==========================================================================
   Quantity stepper (plugin JS adds the − / + buttons)
   ========================================================================== */

body.tma-shop .page-content .quantity {
	display: inline-flex;
	align-items: stretch;
	flex: none;
	float: none !important;
	height: 56px;
	margin: 0 !important;
	border: 1.5px solid var(--tma-line);
	border-radius: var(--tma-r);
	background: var(--tma-card);
	overflow: hidden;
}

body.tma-shop .page-content .quantity .tma-qty-btn,
body.tma-shop .page-content .gift_card_template_button .quantity button.tma-qty-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	min-height: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	color: var(--tma-dark) !important;
	font-family: var(--tma-body);
	font-size: 22px;
	font-weight: 500;
	line-height: 1;
	box-shadow: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
}

body.tma-shop .page-content .quantity .tma-qty-btn:hover {
	background: var(--tma-cream) !important;
}

body.tma-shop .page-content .quantity .tma-qty-btn:disabled {
	opacity: .3;
	cursor: default;
}

body.tma-shop .page-content .quantity input.qty {
	width: 44px;
	min-height: 0;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	font-size: 17px;
	font-weight: 700;
	text-align: center;
	box-shadow: none;
	-moz-appearance: textfield;
}

body.tma-shop .page-content .quantity input.qty:focus {
	box-shadow: none;
	background: var(--tma-cream);
}

body.tma-shop .page-content .quantity input.qty::-webkit-outer-spin-button,
body.tma-shop .page-content .quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* ==========================================================================
   Notices
   ========================================================================== */

body.tma-shop .page-content .woocommerce-message,
body.tma-shop .page-content .woocommerce-info,
body.tma-shop .page-content .woocommerce-error,
body.tma-shop .page-content .woocommerce-noreviews {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 0 0 20px;
	padding: 14px 18px;
	border: 1px solid var(--tma-hair);
	border-left: 4px solid var(--tma-green) !important;
	border-radius: var(--tma-r);
	background: var(--tma-card) !important;
	color: var(--tma-dark) !important;
	font-family: var(--tma-body);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.45;
	list-style: none;
	box-shadow: 0 10px 24px -20px rgba(23, 59, 44, .5);
}

body.tma-shop .page-content .woocommerce-info {
	border-left-color: var(--tma-sage) !important;
}

body.tma-shop .page-content .woocommerce-error {
	flex-direction: column;
	align-items: flex-start;
	border-left-color: var(--tma-error) !important;
}

body.tma-shop .page-content .woocommerce-error li {
	margin: 0;
}

body.tma-shop .page-content .woocommerce-message::before,
body.tma-shop .page-content .woocommerce-message::after,
body.tma-shop .page-content .woocommerce-info::before,
body.tma-shop .page-content .woocommerce-info::after,
body.tma-shop .page-content .woocommerce-error::before,
body.tma-shop .page-content .woocommerce-error::after {
	display: none !important;
}

body.tma-shop .page-content .woocommerce-message a:not(.button),
body.tma-shop .page-content .woocommerce-info a:not(.button),
body.tma-shop .page-content .woocommerce-error a:not(.button) {
	color: var(--tma-green) !important;
	font-weight: 600;
	text-decoration: underline;
}

/* "View cart" / "Continue shopping" inside a notice: a small pill. */
body.tma-shop .page-content .woocommerce-message .button,
body.tma-shop .page-content .woocommerce-info .button,
body.tma-shop .page-content .woocommerce-error .button {
	order: 2;
	float: none;
	min-height: 40px;
	margin: 0 0 0 auto;
	padding: 0 16px;
	border: 1.5px solid var(--tma-dark) !important;
	border-radius: 999px;
	background: transparent !important;
	color: var(--tma-dark) !important;
	font-size: 14px;
	opacity: 1;
}

body.tma-shop .page-content .woocommerce-message .button:hover,
body.tma-shop .page-content .woocommerce-info .button:hover {
	background: var(--tma-dark) !important;
	color: var(--tma-cream) !important;
}

body.tma-shop .page-content .woocommerce-notices-wrapper:empty {
	display: none;
}

/* ==========================================================================
   Progress steps: Cart — Checkout — Confirmation
   ========================================================================== */

body.tma-shop .tma-steps {
	display: flex;
	align-items: center;
	margin: 8px 0 28px;
	padding: 0;
	list-style: none;
	font-family: var(--tma-body);
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
}

body.tma-shop .tma-steps li {
	display: flex;
	align-items: center;
	flex: 1 1 0;
	gap: 8px;
	min-width: 0;
	margin: 0;
	padding: 0;
	color: var(--tma-muted);
}

body.tma-shop .tma-steps li:last-child {
	flex: 0 0 auto;
}

body.tma-shop .tma-steps li:not(:last-child)::after {
	content: '';
	flex: 1 1 auto;
	min-width: 14px;
	height: 2px;
	margin: 0 10px 0 4px;
	border-radius: 2px;
	background: var(--tma-line);
}

body.tma-shop .tma-steps li.is-done:not(:last-child)::after {
	background: var(--tma-green);
}

body.tma-shop .tma-step-dot {
	display: grid;
	place-items: center;
	flex: none;
	width: 28px;
	height: 28px;
	border: 1.5px solid var(--tma-line);
	border-radius: 50%;
	background: var(--tma-card);
	color: var(--tma-muted);
	font-size: 13px;
	font-weight: 700;
	line-height: 1;
}

body.tma-shop .tma-step-dot svg {
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}

body.tma-shop .tma-steps li.is-done .tma-step-dot {
	border-color: var(--tma-green);
	background: var(--tma-green);
	color: #fff;
}

body.tma-shop .tma-steps li.is-current {
	color: var(--tma-dark);
}

body.tma-shop .tma-steps li.is-current .tma-step-dot {
	border-color: var(--tma-dark);
	background: var(--tma-dark);
	color: var(--tma-cream);
}

body.tma-shop .tma-step-label {
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}

body.tma-shop .tma-steps a {
	color: inherit !important;
	text-decoration: none;
}

body.tma-shop .tma-steps a:hover {
	text-decoration: underline;
}

/* Phones: only the current step keeps its label. */
@media (max-width: 480px) {
	body.tma-shop .tma-steps li:not(.is-current) .tma-step-label {
		position: absolute !important;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(1px, 1px, 1px, 1px);
	}
}

/* ==========================================================================
   Gift card product page
   ========================================================================== */

/* One column on phones, two from 900px. The theme forces display:flex with
   !important on this element at every width, which is what put the form
   off the right edge of the screen on phones. */
body.tma-shop.single-product div.product {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr);
	gap: 28px;
	margin: 0;
	padding: 16px 0 40px;
	overflow: visible; /* Storefront's overflow:hidden would stop the sticky preview */
}

body.tma-shop.single-product div.product::before,
body.tma-shop.single-product div.product::after {
	display: none !important; /* clearfix pseudo-elements would become grid cells */
}

body.tma-shop.single-product div.product > .woocommerce-product-gallery,
body.tma-shop.single-product div.product > .summary {
	float: none !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
}

body.tma-shop.single-product div.product > .woocommerce-tabs,
body.tma-shop.single-product div.product > .related,
body.tma-shop.single-product div.product > .up-sells,
body.tma-shop.single-product .summary .product_meta {
	display: none !important;
}

body.tma-shop.single-product .woocommerce-breadcrumb {
	margin: 0 0 12px;
	font-size: 13px;
	color: var(--tma-muted);
}

/* ---- The card, on a dark panel ---- */

body.tma-shop.single-product .woocommerce-product-gallery {
	position: relative;
	padding: 28px 22px 24px;
	border-radius: var(--tma-r-lg);
	background: var(--tma-dark);
	color: var(--tma-cream);
	overflow: hidden;
	isolation: isolate;
	opacity: 1 !important; /* Woo fades it in from JS; never leave it hidden */
}

/* Two soft brand blobs behind the card. */
body.tma-shop.single-product .woocommerce-product-gallery::before,
body.tma-shop.single-product .woocommerce-product-gallery::after {
	content: '';
	position: absolute;
	z-index: -1;
	border-radius: 50%;
	pointer-events: none;
}

body.tma-shop.single-product .woocommerce-product-gallery::before {
	top: -90px;
	right: -70px;
	width: 260px;
	height: 260px;
	background: var(--tma-green);
	opacity: .38;
}

body.tma-shop.single-product .woocommerce-product-gallery::after {
	bottom: -120px;
	left: -80px;
	width: 240px;
	height: 240px;
	background: var(--tma-sage);
	opacity: .35;
}

body.tma-shop.single-product .woocommerce-product-gallery__wrapper {
	margin: 0;
	box-shadow: none !important;
}

body.tma-shop.single-product .woocommerce-product-gallery__trigger,
body.tma-shop.single-product .woocommerce-product-gallery .flex-control-nav {
	display: none !important;
}

body.tma-shop.single-product .woocommerce-product-gallery__image {
	padding: 0 !important;
	background: none !important;
}

/* The picture is not a link to anywhere useful (it opened the raw PNG). */
body.tma-shop.single-product .woocommerce-product-gallery__image a {
	display: block;
	pointer-events: none;
	cursor: default;
}

body.tma-shop.single-product .woocommerce-product-gallery__image img {
	display: block;
	width: 100%;
	max-width: 280px;
	height: auto !important;
	margin: 0 auto;
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 26px 40px -18px rgba(0, 0, 0, .55), 0 2px 0 rgba(255, 255, 255, .06) inset;
	transform: rotate(-3deg);
	transition: transform .5s var(--tma-ease);
}

body.tma-shop.single-product .woocommerce-product-gallery:hover .woocommerce-product-gallery__image img {
	transform: rotate(-1deg) translateY(-2px);
}

/* ---- YITH's live preview, re-set as a receipt under the card ---- */

body.tma-shop.single-product .ywgc-main-form-preview-container {
	min-height: 0 !important;
	max-width: none;
	margin: 22px 0 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--tma-cream);
	font-family: var(--tma-body);
	font-size: 14px;
	line-height: 1.5;
}

body.tma-shop.single-product .ywgc-form-preview-title-container {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	padding: 0;
}

body.tma-shop.single-product .ywgc-form-preview-title-container::after {
	display: none;
}

body.tma-shop.single-product .ywgc-form-preview-title {
	min-width: 0;
	color: rgba(244, 241, 232, .66);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

body.tma-shop.single-product .ywgc-form-preview-amount {
	float: none;
	flex: none;
	color: #fff;
	font-family: var(--tma-head);
	font-size: 34px;
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
}

body.tma-shop.single-product .ywgc-main-form-preview-container hr {
	height: 0;
	margin: 14px 0 12px !important;
	border: 0;
	border-top: 1px solid rgba(244, 241, 232, .16);
	background: none;
}

body.tma-shop.single-product .ywgc-form-preview-from-to-container {
	padding: 0;
	color: #fff;
	font-size: 15px;
	line-height: 1.8;
}

body.tma-shop.single-product .ywgc-form-preview-from-to-container br {
	display: none;
}

body.tma-shop.single-product .ywgc-form-preview-from,
body.tma-shop.single-product .ywgc-form-preview-to {
	display: inline-block;
	min-width: 58px;
	color: rgba(244, 241, 232, .55);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

body.tma-shop.single-product .ywgc-form-preview-from-content,
body.tma-shop.single-product .ywgc-form-preview-to-content {
	display: inline;
	overflow-wrap: anywhere;
}

/* Each From/To line on its own row without relying on YITH's <br>. */
body.tma-shop.single-product .ywgc-form-preview-from-content::after {
	content: '';
	display: block;
}

body.tma-shop.single-product .ywgc-form-preview-from-content:empty::before {
	content: 'You';
	opacity: .42;
}

body.tma-shop.single-product .ywgc-form-preview-to-content:empty::before {
	content: 'Your lucky someone';
	opacity: .42;
}

body.tma-shop.single-product .ywgc-form-preview-separator {
	display: none;
}

body.tma-shop.single-product .ywgc-form-preview-message-container {
	padding: 0;
}

body.tma-shop.single-product .ywgc-form-preview-message {
	margin: 10px 0 0;
	padding: 12px 14px;
	border-radius: 12px;
	background: rgba(244, 241, 232, .08);
	color: #fff;
	font-size: 15px;
	font-style: italic;
	line-height: 1.5;
	overflow-wrap: anywhere;
}

body.tma-shop.single-product .ywgc-form-preview-message:empty {
	display: none;
}

/* On phones the panel is a compact header: card + amount. The To / From
   lines only earn their space beside the form on wider screens. */
@media (max-width: 899px) {
	body.tma-shop.single-product .ywgc-main-form-preview-container hr,
	body.tma-shop.single-product .ywgc-form-preview-from-to-container,
	body.tma-shop.single-product .ywgc-form-preview-message-container {
		display: none !important;
	}
}

/* ---- Summary: eyebrow, title, intro ---- */

body.tma-shop.single-product .summary .tma-eyebrow {
	margin: 0 0 8px;
	color: var(--tma-coral);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

body.tma-shop.single-product .summary .product_title {
	margin: 0 0 12px;
	padding: 0;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: clamp(34px, 8.6vw, 54px);
	font-weight: 800;
	line-height: .98;
	letter-spacing: -0.025em;
	text-transform: none;
}

body.tma-shop.single-product .summary .woocommerce-product-details__short-description,
body.tma-shop.single-product .summary .woocommerce-product-details__short-description p {
	max-width: 46ch;
	margin: 0;
	color: var(--tma-ink);
	font-size: 17px;
	line-height: 1.55;
}

/* ---- The form ---- */

body.tma-shop.single-product form.gift-cards_form {
	margin: 26px 0 0;
	padding: 0;
	color: var(--tma-dark);
	font-family: var(--tma-body);
	font-size: 16px;
	counter-reset: tma-step;
}

/* Section headings, numbered by CSS so a hidden section never leaves a gap
   in the count. */
body.tma-shop.single-product form.gift-cards_form h3 {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 30px 0 14px !important;
	padding: 0;
	border: 0;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: 21px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.01em;
	counter-increment: tma-step;
}

body.tma-shop.single-product form.gift-cards_form h3::before {
	content: counter(tma-step);
	display: grid;
	place-items: center;
	flex: none;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--tma-dark);
	color: var(--tma-cream);
	font-family: var(--tma-body);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}

body.tma-shop.single-product .tma-is-hidden {
	display: none !important;
}

/* ---- Design chooser (hidden by JS when there is only one design) ---- */

body.tma-shop.single-product .gift-card-content-editor.step-appearance {
	margin: 0;
}

body.tma-shop.single-product .ywgc-choose-design-preview {
	margin: 0;
}

body.tma-shop.single-product .gift-card-content-editor.step-appearance .ywgc-design-list ul {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
	padding: 0;
	font-size: 0;
}

body.tma-shop.single-product .gift-card-content-editor.step-appearance .ywgc-design-list ul li {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.tma-shop.single-product .ywgc-preset-image {
	padding: 4px;
	border: 2px solid var(--tma-line);
	border-radius: 14px;
	background: var(--tma-card);
	transition: border-color .15s var(--tma-ease);
}

body.tma-shop.single-product .ywgc-preset-image:hover {
	border-color: var(--tma-sage);
}

body.tma-shop.single-product .ywgc-preset-image.selected_image_parent {
	border-color: var(--tma-dark);
}

body.tma-shop.single-product .ywgc-preset-image.selected_image_parent::after {
	top: -7px;
	right: -7px;
	width: 22px;
	height: 22px;
	border: 2px solid var(--tma-cream);
	background-color: var(--tma-dark);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");
	background-size: 12px;
}

body.tma-shop.single-product .ywgc-design-list .ywgc-preset-image img {
	width: 96px;
	height: 96px;
	border-radius: 10px;
	object-fit: cover;
}

/* ---- Amounts: bold numerals, three across ---- */

body.tma-shop.single-product .gift-cards-list {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	margin: 0;
}

body.tma-shop.single-product .gift-cards-list > h3,
body.tma-shop.single-product .gift-cards-list > *:not(button) {
	grid-column: 1 / -1;
}

body.tma-shop.single-product .gift-cards-list > h3 {
	margin-bottom: 4px !important;
}

body.tma-shop.single-product .gift-cards-list > input[type="hidden"] {
	display: none;
}

body.tma-shop.single-product .gift-cards-list button.ywgc-predefined-amount-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	min-height: 60px;
	margin: 0;
	padding: 8px 6px;
	border: 1.5px solid var(--tma-line) !important;
	border-radius: var(--tma-r);
	background: var(--tma-card) !important;
	color: var(--tma-dark) !important;
	font-family: var(--tma-head);
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.01em;
	white-space: nowrap;
	box-shadow: none;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: border-color .15s var(--tma-ease), background-color .15s var(--tma-ease), color .15s var(--tma-ease), transform .12s var(--tma-ease), box-shadow .15s var(--tma-ease);
}

body.tma-shop.single-product .gift-cards-list button.ywgc-predefined-amount-button .woocommerce-Price-currencySymbol {
	margin-right: 1px;
	font-size: .66em;
	vertical-align: .32em;
	opacity: .75;
}

body.tma-shop.single-product .gift-cards-list button.ywgc-predefined-amount-button:hover {
	border-color: var(--tma-dark) !important;
}

body.tma-shop.single-product .gift-cards-list button.ywgc-predefined-amount-button:active {
	transform: scale(.97);
}

body.tma-shop.single-product .gift-cards-list button.ywgc-predefined-amount-button.selected_button {
	border-color: var(--tma-dark) !important;
	background: var(--tma-dark) !important;
	color: #fff !important;
	box-shadow: 0 14px 24px -16px rgba(15, 42, 31, .9);
}

/* A custom amount field, if it is switched on in YITH. */
body.tma-shop.single-product .ywgc-manual-amount-container {
	display: flex;
	align-items: center;
	height: auto;
	min-height: 60px;
	padding: 0 14px;
	border: 1.5px solid var(--tma-line);
	border-radius: var(--tma-r);
	background: var(--tma-card);
}

body.tma-shop.single-product .ywgc-currency-symbol {
	margin: 0;
	color: var(--tma-muted);
}

body.tma-shop.single-product #ywgc-manual-amount,
body.tma-shop.single-product .ywgc-manual-amount {
	width: 100%;
	min-height: 0;
	border: 0;
	box-shadow: none;
	font-size: 18px;
	font-weight: 700;
}

/* ---- Delivery info ---- */

body.tma-shop.single-product .gift-card-content-editor.step-content {
	margin: 0;
	padding: 0;
}

body.tma-shop.single-product .gift-card-content-editor.step-content::after {
	display: none;
}

/* "RECIPIENT INFO" / "YOUR INFO" — relabelled To / From by the plugin JS. */
body.tma-shop.single-product .gift-card-content-editor.step-content h5 {
	margin: 20px 0 10px !important;
	padding: 0;
	color: var(--tma-muted);
	font-family: var(--tma-body);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	line-height: 1.2;
	text-transform: uppercase;
}

body.tma-shop.single-product .gift-card-content-editor.step-content h5:first-child {
	margin-top: 0 !important;
}

body.tma-shop.single-product .gift-card-content-editor.step-content label {
	display: block !important;
	float: none;
	width: auto;
	margin: 0 0 7px;
	color: var(--tma-dark);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-align: left;
	vertical-align: baseline;
}

body.tma-shop.single-product .gift-card-content-editor.step-content input,
body.tma-shop.single-product .gift-card-content-editor.step-content textarea,
body.tma-shop.single-product .ywgc-recipient {
	float: none;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	font-size: 16px;
}

body.tma-shop.single-product .ywgc-single-recipient,
body.tma-shop.single-product .ywgc-sender-name,
body.tma-shop.single-product .ywgc-message {
	margin: 0 0 14px;
	padding: 0;
	border: 0;
	background: none;
}

body.tma-shop.single-product .ywgc-single-recipient .ywgc-recipient-name,
body.tma-shop.single-product .ywgc-single-recipient .ywgc-recipient-email {
	margin: 0 0 14px;
}

body.tma-shop.single-product .ywgc-single-recipient .ywgc-recipient-email {
	margin-bottom: 0;
}

body.tma-shop.single-product .ywgc-recipient-name.clearfix::after,
body.tma-shop.single-product .ywgc-recipient-email.clearfix::after,
body.tma-shop.single-product .ywgc-sender-name.clearfix::after,
body.tma-shop.single-product .ywgc-message.clearfix::after {
	display: none;
}

body.tma-shop.single-product .ywgc-single-recipient a.hide-if-alone {
	display: none;
}

body.tma-shop.single-product .ywgc-bad-email-format,
body.tma-shop.single-product .ywgc-filling-error,
body.tma-shop.single-product .ywgc-manual-amount-error,
body.tma-shop.single-product .gift-card-too-small {
	display: block;
	margin: 6px 0 0;
	padding: 0;
	background: none;
	color: var(--tma-error) !important;
	font-size: 13px;
	font-weight: 500;
}

body.tma-shop.single-product .ywgc-empty-recipient-note,
body.tma-shop.single-product .ywgc-delivery-notification-checkbox-container {
	float: none;
	padding: 6px 0 0;
	color: var(--tma-muted);
	font-size: 12.5px;
	text-align: left;
}

@media (min-width: 600px) {
	/* Name and email side by side once there is room. */
	body.tma-shop.single-product .ywgc-single-recipient {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px;
	}

	body.tma-shop.single-product .ywgc-single-recipient .ywgc-recipient-name,
	body.tma-shop.single-product .ywgc-single-recipient .ywgc-recipient-email {
		margin: 0;
	}

	body.tma-shop.single-product .ywgc-single-recipient > :not(.ywgc-recipient-name):not(.ywgc-recipient-email) {
		grid-column: 1 / -1;
	}
}

/* ---- Quantity + Add to cart ---- */

body.tma-shop.single-product .gift_card_template_button,
body.tma-shop.single-product form.cart .tma-cart-actions {
	display: flex !important;
	align-items: stretch;
	gap: 12px;
	margin: 28px 0 0 !important;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	transform: none;
}

body.tma-shop.single-product .gift_card_template_button button.gift_card_add_to_cart_button,
body.tma-shop.single-product form.cart .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 0;
	width: auto;
	float: none;
}

body.tma-shop.single-product .gift_card_template_button button.gift_card_add_to_cart_button[disabled] {
	opacity: .5;
	cursor: not-allowed;
}

/* ---- Reassurance ---- */

body.tma-shop .tma-trust {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px 18px;
	margin: 22px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--tma-hair);
	list-style: none;
	color: var(--tma-ink);
	font-family: var(--tma-body);
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.35;
}

body.tma-shop .tma-trust li {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	margin: 0;
	padding: 0;
}

body.tma-shop .tma-trust svg {
	flex: none;
	width: 18px;
	height: 18px;
	margin-top: -1px;
	padding: 3px;
	border-radius: 50%;
	background: rgba(46, 139, 87, .14);
	fill: none;
	stroke: var(--tma-green);
	stroke-width: 3.2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* ---- Wide screens: sticky card on the left, form on the right ---- */

@media (min-width: 900px) {
	body.tma-shop.single-product div.product {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
		align-items: start;
		gap: 56px;
		padding: 44px 0 80px;
	}

	body.tma-shop.single-product .woocommerce-product-gallery {
		position: sticky;
		top: 108px;
		padding: 44px 40px 36px;
		border-radius: 30px;
	}

	body.tma-shop.single-product .woocommerce-product-gallery::before {
		width: 380px;
		height: 380px;
		top: -150px;
		right: -120px;
	}

	body.tma-shop.single-product .woocommerce-product-gallery__image img {
		max-width: 400px;
	}

	body.tma-shop.single-product .ywgc-main-form-preview-container {
		margin-top: 34px;
	}

	body.tma-shop.single-product .ywgc-form-preview-amount {
		font-size: 44px;
	}

	body.tma-shop.single-product div.product > .summary {
		max-width: 540px;
		padding-top: 6px;
	}
}

@media (min-width: 1100px) {
	body.tma-shop.single-product div.product {
		gap: 80px;
	}
}

@media (max-width: 360px) {
	body.tma-shop.single-product .gift-cards-list button.ywgc-predefined-amount-button {
		font-size: 19px;
	}

	body.tma-shop .tma-trust {
		grid-template-columns: 1fr;
	}
}

/* ---- Phone add-to-cart bar ---- */

body.tma-shop .tma-sticky-bar {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 60;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
	border-top: 1px solid var(--tma-hair);
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 -14px 30px -20px rgba(23, 59, 44, .45);
	font-family: var(--tma-body);
	transform: translateY(110%);
	visibility: hidden;
	transition: transform .3s var(--tma-ease), visibility .3s;
}

@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	body.tma-shop .tma-sticky-bar {
		background: rgba(255, 255, 255, .86);
		-webkit-backdrop-filter: blur(14px) saturate(1.4);
		backdrop-filter: blur(14px) saturate(1.4);
	}
}

body.tma-shop .tma-sticky-bar.is-in {
	transform: none;
	visibility: visible;
}

body.tma-menu-open .tma-sticky-bar.is-in {
	transform: translateY(110%);
}

body.tma-shop .tma-sb-meta {
	display: flex;
	flex-direction: column;
	min-width: 0;
	line-height: 1.1;
}

body.tma-shop .tma-sb-label {
	color: var(--tma-muted);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

body.tma-shop .tma-sb-price {
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: 26px;
	font-weight: 800;
	line-height: 1.05;
	white-space: nowrap;
}

body.tma-shop .tma-sticky-bar .tma-sb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 1 1 auto;
	min-height: 52px;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

@media (min-width: 900px) {
	body.tma-shop .tma-sticky-bar {
		display: none !important;
	}
}

/* ==========================================================================
   Cart
   ========================================================================== */

body.tma-shop.woocommerce-cart .page-content .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 44px;
	padding: 24px 0 0;
}

body.tma-shop.woocommerce-cart .page-content .woocommerce::before,
body.tma-shop.woocommerce-cart .page-content .woocommerce::after {
	display: none;
}

body.tma-shop.woocommerce-cart .page-content .woocommerce > * {
	grid-column: 1 / -1;
	min-width: 0;
}

/* Title the plugin prints above the cart (the theme prints none). */
body.tma-shop .page-content .tma-page-title {
	margin: 0 0 18px;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: clamp(34px, 8vw, 52px);
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.025em;
}

/* The item list: cards instead of a squeezed table, at every width. */
body.tma-shop.woocommerce-cart table.shop_table.cart {
	display: block;
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: separate;
	background: none;
}

body.tma-shop.woocommerce-cart table.shop_table.cart thead {
	display: none;
}

body.tma-shop.woocommerce-cart table.shop_table.cart tbody {
	display: grid;
	gap: 12px;
}

body.tma-shop.woocommerce-cart table.shop_table.cart tr.cart_item {
	position: relative;
	display: grid;
	grid-template-columns: 76px minmax(0, 1fr) auto;
	grid-template-areas:
		"thumb name     remove"
		"thumb qty      subtotal";
	align-items: center;
	gap: 6px 14px;
	padding: 16px;
	border: 1px solid var(--tma-hair);
	border-radius: 20px;
	background: var(--tma-card);
}

body.tma-shop.woocommerce-cart table.shop_table.cart tr.cart_item > td,
body.tma-shop.woocommerce-cart table.shop_table.cart tr.cart_item > th {
	display: block !important;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	background: none !important;
	text-align: left;
	vertical-align: middle;
}

/* Storefront's mobile "Price:" / "Quantity:" prefixes. */
body.tma-shop.woocommerce-cart table.shop_table.cart tr.cart_item > td::before,
body.tma-shop.woocommerce-cart table.shop_table.cart tr.cart_item > td::after {
	display: none !important;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-thumbnail {
	grid-area: thumb;
	align-self: start;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-thumbnail a {
	display: block;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
	display: block;
	width: 76px;
	max-width: none;
	height: 76px;
	border-radius: 14px;
	background: var(--tma-cream);
	object-fit: cover;
}

body.tma-shop.woocommerce-cart table.shop_table.cart .product-name {
	grid-area: name;
	align-self: start;
	min-width: 0;
	padding-right: 4px;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: 19px;
	font-weight: 700;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

body.tma-shop.woocommerce-cart table.shop_table.cart .product-name > a {
	color: var(--tma-dark);
	text-decoration: none;
}

body.tma-shop.woocommerce-cart table.shop_table.cart tr.cart_item > td.product-price {
	display: none !important;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-quantity {
	grid-area: qty;
	align-self: end;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-quantity .quantity {
	height: 44px;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-quantity .quantity .tma-qty-btn {
	width: 38px;
	font-size: 20px;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-quantity .quantity input.qty {
	width: 36px;
	font-size: 16px;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-subtotal {
	grid-area: subtotal;
	align-self: end;
	justify-self: end;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: 22px;
	font-weight: 800;
	line-height: 1;
	white-space: nowrap;
	text-align: right;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove {
	grid-area: remove;
	align-self: start;
	justify-self: end;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
	position: static;
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	margin: -6px -6px 0 0;
	border-radius: 50%;
	background: transparent;
	color: var(--tma-muted) !important;
	font-family: var(--tma-body);
	font-size: 24px;
	font-weight: 400;
	line-height: 1;
	text-decoration: none;
	transition: background-color .15s var(--tma-ease), color .15s var(--tma-ease);
}

/* Storefront draws this as an icon-font glyph; the plain × is sharper and
   does not depend on Font Awesome loading. */
body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove a.remove::before,
body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove a.remove::after {
	display: none !important;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
	text-indent: 0 !important;
	overflow: hidden;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove a.remove:hover {
	background: #F6E3DF;
	color: var(--tma-error) !important;
}

/* Gift card details (recipient, message) under the name — "Label: value"
   flowing as text, so a long email never gets squeezed into a sliver. */
body.tma-shop .page-content dl.variation,
body.tma-shop .page-content .wc-item-meta {
	display: block;
	margin: 8px 0 0;
	padding: 0;
	border: 0;
	color: var(--tma-muted);
	font-family: var(--tma-body);
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	list-style: none;
}

body.tma-shop .page-content dl.variation dt {
	display: inline;
	float: none;
	margin: 0 4px 0 0;
	color: var(--tma-muted);
	font-weight: 600;
}

body.tma-shop .page-content dl.variation dd {
	display: inline;
	float: none;
	margin: 0;
	padding: 0;
	color: var(--tma-ink);
	overflow-wrap: anywhere;
}

body.tma-shop .page-content dl.variation dd::after {
	content: '';
	display: block;
	margin-bottom: 2px;
}

body.tma-shop .page-content .wc-item-meta li {
	display: block;
	margin: 0 0 2px;
}

body.tma-shop .page-content dl.variation dd p,
body.tma-shop .page-content .wc-item-meta p {
	display: inline;
	margin: 0;
	font-size: inherit;
	line-height: inherit;
}

body.tma-shop .page-content .wc-item-meta .wc-item-meta-label {
	font-weight: 600;
}

/* Coupon + update row. */
body.tma-shop.woocommerce-cart table.shop_table.cart tbody > tr:not(.cart_item) {
	display: block;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.actions {
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	padding: 6px 2px 0;
	border: 0;
	background: none !important;
	text-align: left;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.actions::before {
	display: none !important;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.actions .coupon {
	display: flex;
	flex: 1 1 100%;
	gap: 10px;
	float: none;
	margin: 0;
	padding: 0;
	border: 0;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.actions .coupon.tma-collapsed {
	display: none;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.actions .coupon input.input-text {
	flex: 1 1 auto;
	width: auto;
	min-width: 0;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.actions .coupon .button {
	flex: none;
}

/* With JS the cart updates itself when the quantity changes. */
body.tma-shop.tma-cart-auto table.shop_table.cart td.actions button[name="update_cart"] {
	display: none;
}

body.tma-shop.woocommerce-cart table.shop_table.cart td.actions button[name="update_cart"] {
	border-color: var(--tma-line);
	background: transparent;
	color: var(--tma-dark) !important;
}

body.tma-shop .tma-coupon-toggle,
body.tma-shop .page-content .tma-continue {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--tma-dark) !important;
	font-family: var(--tma-body);
	font-size: 15px;
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--tma-line);
	text-decoration-thickness: 2px;
	text-underline-offset: 5px;
	box-shadow: none;
	cursor: pointer;
}

body.tma-shop .tma-coupon-toggle:hover,
body.tma-shop .page-content .tma-continue:hover {
	text-decoration-color: var(--tma-coral);
	background: none;
}

body.tma-shop .page-content .tma-continue {
	margin: 14px 2px 0;
}

body.tma-shop .page-content .tma-continue span {
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--tma-dark);
	color: var(--tma-cream);
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
}

/* Totals card. */
body.tma-shop.woocommerce-cart .cart-collaterals {
	float: none;
	width: auto;
	margin: 28px 0 0;
}

body.tma-shop.woocommerce-cart .cart-collaterals .cross-sells {
	display: none;
}

body.tma-shop.woocommerce-cart .cart-collaterals .cart_totals {
	float: none !important;
	width: 100% !important;
	margin: 0;
	padding: 24px 22px 22px;
	border: 1px solid var(--tma-hair);
	border-radius: var(--tma-r-lg);
	background: var(--tma-card);
	box-shadow: 0 24px 50px -36px rgba(23, 59, 44, .55);
}

body.tma-shop.woocommerce-cart .cart_totals h2 {
	margin: 0 0 8px;
	font-family: var(--tma-head);
	font-size: 22px;
	font-weight: 700;
}

body.tma-shop.woocommerce-cart .cart_totals table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	background: none;
}

body.tma-shop.woocommerce-cart .cart_totals table.shop_table tbody,
body.tma-shop.woocommerce-cart .cart_totals table.shop_table tr {
	display: block;
}

body.tma-shop.woocommerce-cart .cart_totals table.shop_table tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 12px 0;
	border-bottom: 1px solid var(--tma-hair);
}

body.tma-shop.woocommerce-cart .cart_totals table.shop_table tr:last-child {
	border-bottom: 0;
}

body.tma-shop.woocommerce-cart .cart_totals table.shop_table th,
body.tma-shop.woocommerce-cart .cart_totals table.shop_table td {
	display: block !important;
	padding: 0;
	border: 0;
	background: none !important;
	color: var(--tma-ink);
	font-family: var(--tma-body);
	font-size: 15px;
	font-weight: 500;
	text-align: left;
}

body.tma-shop.woocommerce-cart .cart_totals table.shop_table td {
	text-align: right;
}

body.tma-shop.woocommerce-cart .cart_totals table.shop_table td::before {
	display: none !important;
}

body.tma-shop.woocommerce-cart .cart_totals .order-total th,
body.tma-shop.woocommerce-cart .cart_totals .order-total td,
body.tma-shop.woocommerce-cart .cart_totals .order-total td strong {
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: 26px;
	font-weight: 800;
	line-height: 1.1;
}

body.tma-shop.woocommerce-cart .cart_totals .order-total td small,
body.tma-shop.woocommerce-cart .cart_totals .order-total .includes_tax {
	display: block;
	font-family: var(--tma-body);
	font-size: 12px;
	font-weight: 400;
	color: var(--tma-muted);
}

body.tma-shop.woocommerce-cart .wc-proceed-to-checkout {
	margin: 0;
	padding: 16px 0 0;
}

body.tma-shop.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
	display: flex;
	width: 100%;
	margin: 0;
}

/* Empty cart. */
body.tma-shop.woocommerce-cart .wc-empty-cart-message {
	margin: 24px 0 0;
}

body.tma-shop.woocommerce-cart .page-content .cart-empty.woocommerce-info {
	display: block;
	margin: 0;
	padding: 48px 24px 10px;
	border: 1px solid var(--tma-hair);
	border-left: 1px solid var(--tma-hair) !important;
	border-bottom: 0;
	border-radius: var(--tma-r-lg) var(--tma-r-lg) 0 0;
	box-shadow: none;
	color: var(--tma-dark) !important;
	font-family: var(--tma-head);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
}

body.tma-shop.woocommerce-cart .page-content .return-to-shop {
	margin: 0;
	padding: 6px 24px 44px;
	border: 1px solid var(--tma-hair);
	border-top: 0;
	border-radius: 0 0 var(--tma-r-lg) var(--tma-r-lg);
	background: var(--tma-card);
	text-align: center;
}

body.tma-shop.woocommerce-cart .page-content .return-to-shop::before {
	content: 'Treat someone to dinner in Oranjestad.';
	display: block;
	margin: 0 0 20px;
	color: var(--tma-ink);
	font-family: var(--tma-body);
	font-size: 16px;
}

/* YITH "Got a gift card? Use it here" (cart and checkout). */
body.tma-shop .page-content .ywgc_have_code {
	margin: 0 0 12px;
	font-size: 15px;
}

body.tma-shop .page-content .ywgc_have_code p {
	margin: 0;
	color: var(--tma-ink);
}

body.tma-shop .page-content .ywgc_have_code a {
	font-weight: 600;
}

body.tma-shop .page-content .ywgc_enter_code {
	margin: 0 0 20px;
	padding: 18px;
	border: 1px solid var(--tma-hair);
	border-radius: var(--tma-r);
	background: var(--tma-card);
	text-align: left;
}

body.tma-shop .page-content .ywgc_enter_code > div {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
}

body.tma-shop .page-content .ywgc_enter_code > div::after,
body.tma-shop .page-content .ywgc_enter_code .clear {
	display: none;
}

body.tma-shop .page-content .ywgc_enter_code p {
	flex: 1 1 100%;
	margin: 0;
	padding: 0;
	font-size: 14px;
	color: var(--tma-muted);
}

body.tma-shop .page-content .ywgc_enter_code .form-row {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

body.tma-shop .page-content .ywgc_enter_code .form-row-first {
	flex: 1 1 180px;
}

body.tma-shop .page-content .ywgc_enter_code .form-row-last {
	flex: 0 0 auto;
}

body.tma-shop .page-content .ywgc-gift-card-applied,
body.tma-shop .page-content .ywgc-remove-gift-card {
	color: var(--tma-green);
}

@media (min-width: 900px) {
	body.tma-shop.woocommerce-cart .page-content .woocommerce {
		grid-template-columns: minmax(0, 1fr) 380px;
		align-items: start;
		padding-top: 36px;
	}

	body.tma-shop.woocommerce-cart .page-content .woocommerce > .woocommerce-cart-form {
		grid-column: 1;
	}

	body.tma-shop.woocommerce-cart .page-content .woocommerce > .cart-collaterals {
		grid-column: 2;
		grid-row: span 2;
		position: sticky;
		top: 108px;
		margin: 0;
	}

	body.tma-shop.woocommerce-cart table.shop_table.cart tr.cart_item {
		grid-template-columns: 96px minmax(0, 1fr) auto auto;
		grid-template-areas: "thumb name qty subtotal remove";
		align-items: center;
		gap: 0 22px;
		padding: 18px 20px;
	}

	body.tma-shop.woocommerce-cart table.shop_table.cart td.product-thumbnail img {
		width: 96px;
		height: 96px;
	}

	body.tma-shop.woocommerce-cart table.shop_table.cart td.product-subtotal {
		min-width: 90px;
		align-self: center;
	}

	body.tma-shop.woocommerce-cart table.shop_table.cart td.product-quantity,
	body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove,
	body.tma-shop.woocommerce-cart table.shop_table.cart .product-name {
		align-self: center;
	}

	body.tma-shop.woocommerce-cart table.shop_table.cart td.product-remove a.remove {
		margin: 0;
	}

	body.tma-shop.woocommerce-cart .page-content .wc-empty-cart-message,
	body.tma-shop.woocommerce-cart .page-content .return-to-shop {
		width: 100%;
		max-width: 620px;
		justify-self: center;
	}
}

/* ==========================================================================
   Checkout
   ========================================================================== */

body.tma-shop.woocommerce-checkout .page-content .woocommerce {
	padding: 24px 0 0;
}

body.tma-shop.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	justify-content: flex-start;
	border: 1px dashed var(--tma-line);
	border-left: 1px dashed var(--tma-line) !important;
	background: transparent !important;
	box-shadow: none;
	font-size: 14.5px;
}

body.tma-shop.woocommerce-checkout form.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: -8px 0 20px;
	padding: 18px;
	border: 1px solid var(--tma-hair);
	border-radius: var(--tma-r);
	background: var(--tma-card);
}

body.tma-shop.woocommerce-checkout form.checkout_coupon[style*="none"] {
	display: none;
}

body.tma-shop.woocommerce-checkout form.checkout_coupon .form-row {
	float: none;
	width: auto;
	margin: 0;
	padding: 0;
}

body.tma-shop.woocommerce-checkout form.checkout_coupon .form-row-first {
	flex: 1 1 180px;
}

body.tma-shop.woocommerce-checkout form.checkout_coupon .clear,
body.tma-shop.woocommerce-checkout form.checkout_coupon p:not(.form-row) {
	flex: 1 1 100%;
	margin: 0;
	font-size: 14px;
}

body.tma-shop.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0 48px;
	margin: 0;
}

body.tma-shop.woocommerce-checkout form.checkout::before,
body.tma-shop.woocommerce-checkout form.checkout::after,
body.tma-shop.woocommerce-checkout .col2-set::before,
body.tma-shop.woocommerce-checkout .col2-set::after {
	display: none !important;
}

/* Validation notices land inside the form; let them span it. */
body.tma-shop.woocommerce-checkout form.checkout > * {
	grid-column: 1 / -1;
	min-width: 0;
}

body.tma-shop.woocommerce-checkout #customer_details,
body.tma-shop.woocommerce-checkout #customer_details .col-1,
body.tma-shop.woocommerce-checkout #customer_details .col-2,
body.tma-shop.woocommerce-checkout #order_review_heading,
body.tma-shop.woocommerce-checkout #order_review {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	clear: none;
}

body.tma-shop.woocommerce-checkout .woocommerce-billing-fields h3,
body.tma-shop.woocommerce-checkout .woocommerce-additional-fields h3,
body.tma-shop.woocommerce-checkout .woocommerce-shipping-fields h3,
body.tma-shop.woocommerce-checkout #order_review_heading {
	margin: 0 0 16px;
	padding: 0;
	font-family: var(--tma-head);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.15;
}

body.tma-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.tma-shop.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.tma-shop.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px 14px;
}

body.tma-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::before,
body.tma-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after {
	display: none;
}

body.tma-shop.woocommerce-checkout .form-row {
	grid-column: 1 / -1;
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	padding: 0;
	font-size: 16px;
	line-height: 1.4;
}

body.tma-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
body.tma-shop.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first {
	grid-column: 1;
}

body.tma-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
body.tma-shop.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last {
	grid-column: 2;
}

body.tma-shop.woocommerce-checkout .woocommerce-input-wrapper {
	display: block;
}

body.tma-shop.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 22px;
}

body.tma-shop.woocommerce-checkout .woocommerce-shipping-fields:empty {
	display: none;
}

/* ---- Order summary card ---- */

body.tma-shop.woocommerce-checkout #order_review_heading {
	margin: 34px 0 0 !important;
	padding: 24px 22px 6px;
	border: 1px solid var(--tma-hair);
	border-bottom: 0;
	border-radius: var(--tma-r-lg) var(--tma-r-lg) 0 0;
	background: var(--tma-card);
}

body.tma-shop.woocommerce-checkout #order_review {
	padding: 4px 22px 22px;
	border: 1px solid var(--tma-hair);
	border-top: 0;
	border-radius: 0 0 var(--tma-r-lg) var(--tma-r-lg);
	background: var(--tma-card);
	box-shadow: 0 30px 50px -40px rgba(23, 59, 44, .6);
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: none;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table thead {
	display: none;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table th,
body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table td {
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--tma-hair);
	background: none !important;
	color: var(--tma-ink);
	font-family: var(--tma-body);
	font-size: 15px;
	font-weight: 500;
	vertical-align: top;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-name {
	width: auto;
	padding-right: 12px;
	color: var(--tma-dark);
	font-weight: 700;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table .product-quantity {
	color: var(--tma-muted);
	font-weight: 600;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table td.product-total,
body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
	white-space: nowrap;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot th {
	text-align: left;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr:last-child th,
body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table tfoot tr:last-child td {
	border-bottom: 0;
}

body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total th,
body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total td,
body.tma-shop.woocommerce-checkout table.woocommerce-checkout-review-order-table .order-total td strong {
	padding-top: 16px;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: 26px;
	font-weight: 800;
	line-height: 1.1;
}

/* ---- Payment ---- */

body.tma-shop.woocommerce-checkout #payment {
	margin: 18px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods {
	display: grid;
	gap: 10px;
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	list-style: none;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods::before,
body.tma-shop.woocommerce-checkout #payment ul.payment_methods::after {
	display: none;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods > li {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0 12px;
	margin: 0;
	padding: 0 16px;
	border: 1.5px solid var(--tma-line);
	border-radius: var(--tma-r);
	background: var(--tma-card);
	list-style: none !important;
	overflow: hidden;
	transition: border-color .15s var(--tma-ease), box-shadow .15s var(--tma-ease);
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods > li:has(> input:checked) {
	border-color: var(--tma-dark);
	box-shadow: 0 0 0 3px rgba(23, 59, 44, .08);
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods > li > input.input-radio {
	position: static !important;
	clip: auto !important;
	margin: 0;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods > li > label {
	display: flex;
	flex: 1 1 0;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 6px 12px;
	min-height: 58px;
	margin: 0;
	padding: 14px 0;
	color: var(--tma-dark);
	font-size: 15.5px;
	font-weight: 700;
	cursor: pointer;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods > li > label::before {
	display: none !important; /* Storefront's icon-font radio */
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods li img {
	float: none;
	max-height: 24px;
	width: auto;
	margin: 0;
	border-radius: 4px;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods li .payment_box {
	flex: 1 1 100%;
	margin: 0 -16px;
	padding: 14px 16px 16px;
	border-top: 1px solid var(--tma-hair);
	border-radius: 0;
	background: var(--tma-cream) !important;
	color: var(--tma-ink);
	font-size: 14.5px;
	line-height: 1.5;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods li .payment_box::before {
	display: none;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods li .payment_box p {
	margin: 0 0 8px;
}

body.tma-shop.woocommerce-checkout #payment ul.payment_methods li .payment_box p:last-child {
	margin-bottom: 0;
}

body.tma-shop.woocommerce-checkout #payment .payment_box fieldset {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 10px 0 0;
	padding: 0;
	border: 0;
	background: none;
	font-size: 15px;
}

body.tma-shop.woocommerce-checkout #payment .payment_box fieldset .form-row-first {
	grid-column: 1;
}

body.tma-shop.woocommerce-checkout #payment .payment_box fieldset .form-row-last {
	grid-column: 2;
}

body.tma-shop.woocommerce-checkout #payment .payment_box fieldset .clear {
	display: none;
}

body.tma-shop.woocommerce-checkout #payment .payment_box .wc-credit-card-form-card-number,
body.tma-shop.woocommerce-checkout #payment .payment_box .wc-credit-card-form-card-expiry,
body.tma-shop.woocommerce-checkout #payment .payment_box .wc-credit-card-form-card-cvc {
	width: 100% !important;
	font-size: 16px;
}

body.tma-shop.woocommerce-checkout #payment .place-order {
	float: none;
	width: auto;
	margin: 0 !important;
	padding: 18px 0 0 !important;
}

body.tma-shop.woocommerce-checkout .woocommerce-privacy-policy-text p,
body.tma-shop.woocommerce-checkout .woocommerce-terms-and-conditions-checkbox-text {
	margin: 0 0 14px;
	color: var(--tma-muted);
	font-size: 13px;
	line-height: 1.5;
}

body.tma-shop.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row {
	margin: 0 0 14px !important;
}

body.tma-shop.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-weight: 500;
}

body.tma-shop.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label.checkbox .woocommerce-terms-and-conditions-checkbox-text {
	margin: 0;
	color: var(--tma-ink);
	font-size: 14px;
}

body.tma-shop.woocommerce-checkout .woocommerce-terms-and-conditions {
	max-height: 200px;
	overflow: auto;
	margin: 0 0 14px;
	padding: 14px;
	border-radius: 12px;
	background: var(--tma-cream);
	box-shadow: none;
	font-size: 13px;
}

body.tma-shop.woocommerce-checkout #place_order {
	display: flex;
	width: 100%;
	min-height: 60px;
	font-size: 18px;
	float: none;
}

/* A small lock beside the button text. */
body.tma-shop.woocommerce-checkout #place_order::before {
	content: '';
	display: inline-block !important;
	width: 16px;
	height: 16px;
	margin-right: 4px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 10V7a5 5 0 0 0-10 0v3H5v12h14V10h-2zm-8 0V7a3 3 0 0 1 6 0v3H9z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17 10V7a5 5 0 0 0-10 0v3H5v12h14V10h-2zm-8 0V7a3 3 0 0 1 6 0v3H9z'/%3E%3C/svg%3E") center / contain no-repeat;
}

@media (max-width: 380px) {
	body.tma-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
	body.tma-shop.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last {
		grid-column: 1 / -1;
	}
}

@media (min-width: 900px) {
	body.tma-shop.woocommerce-checkout .page-content .woocommerce {
		padding-top: 36px;
	}

	body.tma-shop.woocommerce-checkout form.checkout {
		grid-template-columns: minmax(0, 1fr) 420px;
		grid-template-rows: auto 1fr;
		align-items: start;
	}

	body.tma-shop.woocommerce-checkout #customer_details {
		grid-column: 1;
		grid-row: 1 / span 2;
	}

	body.tma-shop.woocommerce-checkout #order_review_heading {
		grid-column: 2;
		grid-row: 1;
		margin: 0 !important;
	}

	body.tma-shop.woocommerce-checkout #order_review {
		grid-column: 2;
		grid-row: 2;
	}

	/* The notices group, when present, sits first and spans both. */
	body.tma-shop.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup {
		grid-row: auto;
	}

	body.tma-shop.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup) #customer_details {
		grid-row: 2 / span 2;
	}

	body.tma-shop.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup) #order_review_heading {
		grid-row: 2;
	}

	body.tma-shop.woocommerce-checkout form.checkout:has(> .woocommerce-NoticeGroup) #order_review {
		grid-row: 3;
	}
}

/* ==========================================================================
   Order received
   ========================================================================== */

body.tma-shop .page-content .woocommerce-order {
	font-size: 16px;
}

body.tma-shop .page-content .woocommerce-thankyou-order-received {
	margin: 0 0 22px;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: clamp(30px, 7vw, 44px);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.02em;
}

body.tma-shop .page-content ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 1px;
	margin: 0 0 30px;
	padding: 0;
	border: 1px solid var(--tma-hair);
	border-radius: var(--tma-r-lg);
	background: var(--tma-hair);
	overflow: hidden;
	list-style: none;
}

body.tma-shop .page-content ul.woocommerce-order-overview::before,
body.tma-shop .page-content ul.woocommerce-order-overview::after {
	display: none;
}

body.tma-shop .page-content ul.woocommerce-order-overview li {
	margin: 0;
	padding: 16px 18px;
	border: 0;
	background: var(--tma-card);
	color: var(--tma-muted);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
}

body.tma-shop .page-content ul.woocommerce-order-overview li strong {
	display: block;
	margin-top: 4px;
	color: var(--tma-dark);
	font-size: 16px;
	letter-spacing: 0;
	text-transform: none;
	overflow-wrap: anywhere;
}

body.tma-shop .page-content .woocommerce-order-details,
body.tma-shop .page-content .woocommerce-customer-details {
	margin: 0 0 24px;
	padding: 22px;
	border: 1px solid var(--tma-hair);
	border-radius: var(--tma-r-lg);
	background: var(--tma-card);
}

body.tma-shop .page-content .woocommerce-order-details h2,
body.tma-shop .page-content .woocommerce-customer-details h2 {
	margin: 0 0 12px;
	font-size: 22px;
}

body.tma-shop .page-content table.order_details {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: none;
}

body.tma-shop .page-content table.order_details th,
body.tma-shop .page-content table.order_details td {
	padding: 12px 0;
	border: 0;
	border-bottom: 1px solid var(--tma-hair);
	background: none !important;
	color: var(--tma-ink);
	font-size: 15px;
	text-align: left;
	vertical-align: top;
}

body.tma-shop .page-content table.order_details td.product-total,
body.tma-shop .page-content table.order_details tfoot td {
	text-align: right;
}

body.tma-shop .page-content table.order_details thead {
	display: none;
}

body.tma-shop .page-content table.order_details tfoot tr:last-child th,
body.tma-shop .page-content table.order_details tfoot tr:last-child td {
	border-bottom: 0;
	color: var(--tma-dark);
	font-family: var(--tma-head);
	font-size: 22px;
	font-weight: 800;
}

body.tma-shop .page-content .woocommerce-customer-details address {
	margin: 0;
	padding: 0;
	border: 0;
	font-style: normal;
	line-height: 1.6;
}

/* ==========================================================================
   Loading overlay (Woo's blockUI while totals refresh)
   ========================================================================== */

body.tma-shop .blockUI.blockOverlay {
	border-radius: var(--tma-r-lg);
	background: rgba(244, 241, 232, .6) !important;
	opacity: 1 !important;
}

body.tma-shop .blockUI.blockOverlay::before {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 28px;
	margin: -14px 0 0 -14px;
	border: 3px solid rgba(23, 59, 44, .16);
	border-top-color: var(--tma-green);
	border-radius: 50%;
	animation: tma-spin .7s linear infinite;
}

@keyframes tma-spin {
	to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
	body.tma-shop *,
	body.tma-shop *::before,
	body.tma-shop *::after {
		transition-duration: .001ms !important;
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
	}

	body.tma-shop.single-product .woocommerce-product-gallery__image img {
		transform: none;
	}
}
