/**
 * GCTC Wishlist — front-end styles.
 * Heart = wishlist, checkmark box = owned/collection — visually distinct
 * by icon shape, not color, so the two read as the same secondary-action
 * family rather than competing UI elements.
 *
 * Button tokens below are pulled from the site's actual Elementor Global
 * Colors (Site Settings > Global Colors on the active kit), not invented:
 * --e-global-color-1720e0b ("GCTC green", #00843D) is the exact color
 * already used for the "In stock" status text on the product page — the
 * site's own established secondary/status accent — confirmed by reading
 * both the live Add to Cart button's computed background
 * (--e-global-color-265db3c, "GCTC gold", #DED753 — an exact match) and
 * the "In stock" text's computed color against the kit's saved palette.
 * There is no red/pink token anywhere in the site's palette, which is why
 * the wishlist button no longer uses one. Each var() carries a matching
 * hex fallback so styling never breaks if Elementor is ever deactivated,
 * but tracks the live global color whenever it's present — so this stays
 * in sync if the token is ever changed centrally instead of drifting.
 *
 * Selectors below are wrapper-scoped (.gctc-wishlist-actions .gctc-wishlist-btn,
 * not just .gctc-wishlist-btn) rather than for extra nesting's own sake:
 * Hello Elementor's theme reset.css sets [type="button"], button { color: #cc3366 }
 * at identical specificity (0,1,0) to a bare .gctc-wishlist-btn class
 * selector, and reset.css happens to be enqueued after this stylesheet —
 * same specificity + later source order meant the theme's default pink
 * silently won the cascade. Scoping to the wrapper (0,2,0) beats it
 * reliably regardless of enqueue order, without needing !important.
 *
 * The My Account "My Wishlists" buttons further down this file (Rename/
 * Delete, preset chips, Create List) had the exact same underlying issue
 * for a more basic reason: they never declared a `color` at all, so
 * reset.css's pink was the only color declaration in effect — no
 * specificity fight even needed. They're wrapper-scoped here too, on the
 * same principle, and share the --gctc-btn-accent/-text tokens below
 * rather than each redefining the Elementor var() fallback chain.
 *
 * The product-page Wishlist/Collection triggers themselves (.gctc-wishlist-btn/
 * .gctc-collection-btn) were later slimmed from a boxed outline button down
 * to a minimal icon+text link, closer in visual weight to the "Share:" row
 * already on the page than to a second Add to Cart-style button competing
 * for attention — matching a UX-parity pass against the site's prior YITH
 * Wishlist implementation, which used the same light-touch treatment. The
 * accent color/shape tokens (border-radius, weight, transition) carry over
 * unchanged; only the box (border/background/uppercase/letter-spacing) is
 * gone. min-height on the link preserves a real touch target even with no
 * visible border, rather than trading mobile usability for restraint.
 */

:root {
	--gctc-btn-accent: var(--e-global-color-1720e0b, #00843d);
	/* Elementor's own "yellow highlight hover" global color slot — its
	   saved value is actually white; reused here as the on-accent
	   hover/active text color rather than hardcoding #fff outright. */
	--gctc-btn-accent-text: var(--e-global-color-22bd44b, #ffffff);
}

.gctc-wishlist-actions {
	display: flex;
	gap: 1.25em;
	align-items: center;
	margin: 0.75em 0;
	/* Absolute, not inherited — the --single wrapper now mounts inside
	   Elementor Pro's Share Buttons widget (.elementor-widget-container),
	   which sets font-size: 0 on itself to collapse whitespace between its
	   own icon-only buttons. Every font-size below this wrapper is declared
	   in em, so without this reset every em value here would compute
	   against that inherited 0 and collapse to 0 too — confirmed live: the
	   button label text was present in the DOM but invisible (0px) until
	   this was added. */
	font-size: 14px;
}

.gctc-wishlist-actions .gctc-wishlist-btn,
.gctc-wishlist-actions .gctc-collection-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	min-height: 44px; /* real touch target even though there's no visible box */
	padding: 0.4em 0.25em;
	border: none;
	border-radius: 3px; /* only visible via the focus outline now, but keeps the family consistent */
	background: transparent;
	color: var(--gctc-btn-accent);
	cursor: pointer;
	font-size: 0.85em;
	font-weight: 600; /* matches Add to Cart's computed font-weight */
	line-height: 1.2;
	transition: 0.3s; /* matches Add to Cart's computed transition */
}

/* reset.css's button:hover/button:focus rule sets background-color: #cc3366
   + color: #fff together, tied in specificity with the base rule above —
   without an explicit override here too, hovering/focusing the button
   would show a solid pink fill despite being designed as a plain link.
   Confirmed live (see the identical issue found on the modal's list items
   just below) — background/color need restating on both states, not just
   the label's text-decoration. :active is restated here too, defensively.

   Deliberately NOT scoped with :not(:disabled): wishlist.js disables this
   button synchronously on click (post() in-flight), then re-enables it in
   .always() — including on AJAX failure, which also fires window.alert()
   from the .fail() handler. Confirmed live with a forced-failure AJAX
   mock + real hover: the exact instant `disabled` flips back to false
   while still hovered is a genuine (if intermittent — reproduced 1 of 3
   identical attempts, a real race rather than a deterministic gap) pink
   flash, because a :not(:disabled)-scoped version of this rule stops
   matching for the disabled frame and leaves reset.css's un-scoped
   button:hover/:focus rule as the only :hover/:focus match briefly, right
   as :disabled toggles off — a timing race this codebase's usual
   specificity argument doesn't protect against, since it depends on BOTH
   rules matching simultaneously, which :not(:disabled) prevents for one
   of them. Matching reset.css's own unconditional :hover/:focus rule
   (no :disabled exclusion on its side either) removes the race outright:
   this rule now always outranks it by specificity, whether or not the
   element happens to be disabled at that instant. The separate
   opacity-dimming :disabled rule below is unaffected — it doesn't touch
   background-color/color, so it keeps layering on top correctly. */
.gctc-wishlist-actions .gctc-wishlist-btn:hover,
.gctc-wishlist-actions .gctc-wishlist-btn:focus,
.gctc-wishlist-actions .gctc-wishlist-btn:active,
.gctc-wishlist-actions .gctc-collection-btn:hover,
.gctc-wishlist-actions .gctc-collection-btn:focus,
.gctc-wishlist-actions .gctc-collection-btn:active {
	background-color: transparent;
	color: var(--gctc-btn-accent);
}

.gctc-wishlist-actions .gctc-wishlist-btn:hover:not(:disabled) .gctc-wishlist-btn__label,
.gctc-wishlist-actions .gctc-collection-btn:hover:not(:disabled) .gctc-collection-btn__label {
	text-decoration: underline;
}

.gctc-wishlist-actions .gctc-wishlist-btn:focus-visible,
.gctc-wishlist-actions .gctc-collection-btn:focus-visible {
	outline: 2px solid var(--gctc-btn-accent);
	outline-offset: 2px;
}

.gctc-wishlist-actions .gctc-wishlist-btn:disabled,
.gctc-wishlist-actions .gctc-collection-btn:disabled {
	opacity: 0.6;
	cursor: default;
}

.gctc-wishlist-actions .gctc-wishlist-btn svg,
.gctc-wishlist-actions .gctc-collection-btn svg {
	flex: 0 0 auto;
	stroke: currentColor;
}

.gctc-wishlist-actions .gctc-wishlist-btn.is-active svg,
.gctc-wishlist-actions .gctc-collection-btn.is-active svg {
	fill: currentColor;
}

.gctc-wishlist-actions--loop {
	justify-content: center;
	margin-top: 0.5em;
}

/* ----------------------------------------------------------------------
   Single product page — restyled 2026-08-18 from the minimal icon+text
   link every other .gctc-wishlist-actions context still uses (see the
   file header docblock — that treatment was a deliberate UX-parity match
   against the site's prior YITH implementation) to the same bordered-pill
   family already used for every other secondary action in this file
   (.gctc-my-wishlists__actions button, .gctc-wishlist-modal__create-submit):
   visible without competing with Add to Cart's gold fill for primary-
   action attention — gold stays reserved for the one true primary CTA.
   Positioned next to Add to Cart via a post-render JS move (see
   wishlist.js's repositionSingleProductActions()), not a different PHP
   render hook — this markup still mounts inside the Share Buttons widget
   for the out-of-stock-reliability reason documented on
   render_single_buttons(); only its on-page position changes.
   ---------------------------------------------------------------------- */

.gctc-wishlist-actions--single {
	gap: 0.75em;
	flex-wrap: wrap;
	margin: 1em 0;
}

.gctc-wishlist-actions--single .gctc-wishlist-btn,
.gctc-wishlist-actions--single .gctc-collection-btn {
	border: 1.5px solid var(--gctc-btn-accent);
	border-radius: 3px; /* matches Add to Cart's computed border-radius */
	background: transparent;
	padding: 0.6em 1.1em;
	font-size: 0.95em;
	text-transform: uppercase; /* matches Add to Cart */
	letter-spacing: 0.5px; /* matches Add to Cart */
}

.gctc-wishlist-actions--single .gctc-wishlist-btn svg,
.gctc-wishlist-actions--single .gctc-collection-btn svg {
	width: 20px;
	height: 20px;
}

/* Overrides the plain-link family's transparent-on-hover/is-active rules
   above (same 0,3,0 specificity — wins on source order, this block loads
   later) with a solid fill, matching the bordered-pill family's own
   hover/active treatment used everywhere else in this file. */
.gctc-wishlist-actions--single .gctc-wishlist-btn:hover,
.gctc-wishlist-actions--single .gctc-wishlist-btn:focus,
.gctc-wishlist-actions--single .gctc-wishlist-btn:active,
.gctc-wishlist-actions--single .gctc-wishlist-btn.is-active,
.gctc-wishlist-actions--single .gctc-collection-btn:hover,
.gctc-wishlist-actions--single .gctc-collection-btn:focus,
.gctc-wishlist-actions--single .gctc-collection-btn:active,
.gctc-wishlist-actions--single .gctc-collection-btn.is-active {
	background: var(--gctc-btn-accent);
	color: var(--gctc-btn-accent-text);
}

/* The plain-link family underlines the label on hover — meaningless on a
   solid-fill button, so switched off for this context specifically. */
.gctc-wishlist-actions--single .gctc-wishlist-btn:hover:not(:disabled) .gctc-wishlist-btn__label,
.gctc-wishlist-actions--single .gctc-collection-btn:hover:not(:disabled) .gctc-collection-btn__label {
	text-decoration: none;
}

.gctc-hide-owned-toggle {
	margin: 0 0 1em;
}

/* ----------------------------------------------------------------------
   Choose-a-list modal
   ---------------------------------------------------------------------- */

.gctc-wishlist-modal-overlay {
	position: fixed;
	inset: 0;
	background: rgba(11, 26, 17, 0.6); /* dark tint from the same NEW DARK GREY family as the site's own dark surfaces */
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 100000;
	padding: 1em;
}

.gctc-wishlist-modal {
	position: relative;
	background: #fff;
	border-radius: 3px;
	padding: 2em 1.5em 1.5em;
	max-width: 380px;
	width: 100%;
	max-height: 85vh;
	overflow-y: auto;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
}

/* All interactive elements below are scoped under .gctc-wishlist-modal
   (0,2,0 or higher) rather than bare class selectors (0,1,0) — every one
   of them is a real <button type="button">, which ties with reset.css's
   [type="button"] selector at 0,1,0 and loses on source order otherwise.
   Same issue, same fix, as the rest of this file. */

.gctc-wishlist-modal .gctc-wishlist-modal__close {
	position: absolute;
	top: 0.5em;
	right: 0.5em;
	width: 36px;
	height: 36px;
	border: none;
	background: transparent;
	color: var(--gctc-btn-accent);
	font-size: 1.5em;
	line-height: 1;
	cursor: pointer;
}

.gctc-wishlist-modal .gctc-wishlist-modal__close:hover,
.gctc-wishlist-modal .gctc-wishlist-modal__close:focus,
.gctc-wishlist-modal .gctc-wishlist-modal__close:active {
	background-color: transparent;
	color: var(--gctc-btn-accent);
}

.gctc-wishlist-modal .gctc-wishlist-modal__close:focus-visible {
	outline: 2px solid var(--gctc-btn-accent);
	outline-offset: 2px;
	border-radius: 3px;
}

.gctc-wishlist-modal__title {
	margin: 0 1.5em 1em 0;
	font-size: 1.1em;
}

.gctc-wishlist-modal__list {
	list-style: none;
	margin: 0 0 1em;
	padding: 0;
}

.gctc-wishlist-modal .gctc-wishlist-modal__list-item,
.gctc-wishlist-modal .gctc-wishlist-modal__create-toggle,
.gctc-wishlist-modal .gctc-wishlist-modal__back {
	display: block;
	width: 100%;
	text-align: left;
	background: transparent;
	border: none;
	border-bottom: 1px solid #eee;
	padding: 0.75em 0.25em;
	font-size: 0.95em;
	font-weight: 600;
	color: var(--gctc-btn-accent);
	cursor: pointer;
	transition: 0.3s;
}

.gctc-wishlist-modal .gctc-wishlist-modal__create-toggle,
.gctc-wishlist-modal .gctc-wishlist-modal__back {
	border-bottom: none;
	margin-top: 0.5em;
}

/* reset.css's [type="button"]:focus, [type="button"]:hover, button:focus,
   button:hover rule sets background-color/color/text-decoration together —
   overriding only text-decoration here (as a first pass) left the other
   two properties completely undeclared on this rule, so the theme's pink
   hover fill applied by default with no specificity fight even needed.
   Confirmed live: hovering a list item showed a solid pink background.
   All three properties need to be explicitly restated, both :hover and
   :focus (reset.css's rule fires on either). */
.gctc-wishlist-modal .gctc-wishlist-modal__list-item:hover,
.gctc-wishlist-modal .gctc-wishlist-modal__list-item:focus,
.gctc-wishlist-modal .gctc-wishlist-modal__list-item:active,
.gctc-wishlist-modal .gctc-wishlist-modal__create-toggle:hover,
.gctc-wishlist-modal .gctc-wishlist-modal__create-toggle:focus,
.gctc-wishlist-modal .gctc-wishlist-modal__create-toggle:active,
.gctc-wishlist-modal .gctc-wishlist-modal__back:hover,
.gctc-wishlist-modal .gctc-wishlist-modal__back:focus,
.gctc-wishlist-modal .gctc-wishlist-modal__back:active {
	background-color: transparent;
	color: var(--gctc-btn-accent);
	text-decoration: underline;
}

.gctc-wishlist-modal__body .gctc-create-list__presets {
	margin: 0.5em 0 1em;
}

.gctc-wishlist-modal__name-input {
	display: block;
	width: 100%;
	box-sizing: border-box;
	border: 1.5px solid var(--gctc-btn-accent);
	border-radius: 3px;
	padding: 0.6em 1em;
	font-size: 0.9em;
	margin-bottom: 1em;
}

.gctc-wishlist-modal .gctc-wishlist-modal__create-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	border: 1.5px solid var(--gctc-btn-accent);
	border-radius: 3px;
	padding: 0.6em 1em;
	background: var(--gctc-btn-accent);
	color: var(--gctc-btn-accent-text);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: 0.3s;
}

.gctc-wishlist-modal .gctc-wishlist-modal__create-submit:hover,
.gctc-wishlist-modal .gctc-wishlist-modal__create-submit:focus,
.gctc-wishlist-modal .gctc-wishlist-modal__create-submit:active {
	/* Base rule here is only 2 classes (0,2,0), tied with reset.css's
	   [type="button"]:hover/:focus (0,2,0) — a tie a later-loading
	   stylesheet wins by source order, so background/color need restating
	   explicitly rather than assuming the base rule's specificity carries
	   through into these states (it doesn't, at a tie). */
	background: var(--gctc-btn-accent);
	color: var(--gctc-btn-accent-text);
	opacity: 0.85;
}

.gctc-wishlist-modal [disabled] {
	opacity: 0.6;
	cursor: default;
}

/* ----------------------------------------------------------------------
   My Account — My Wishlists tab
   ---------------------------------------------------------------------- */

.gctc-my-wishlists__table th,
.gctc-my-wishlists__table td {
	vertical-align: middle;
}

.gctc-my-wishlists__share label {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	cursor: pointer;
}

.gctc-my-wishlists__share-url {
	margin-top: 0.4em;
}

.gctc-my-wishlists__share-url input {
	width: 100%;
	max-width: 320px;
	font-size: 0.8em;
}

.gctc-my-wishlists__actions button,
.gctc-create-list__presets .gctc-create-list__preset,
.gctc-create-list__form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	margin-right: 0.5em;
	padding: 0.6em 1em;
	border: 1.5px solid var(--gctc-btn-accent);
	border-radius: 3px; /* matches Add to Cart's computed border-radius */
	background: transparent;
	color: var(--gctc-btn-accent);
	cursor: pointer;
	font-size: 0.8em;
	font-weight: 600; /* matches Add to Cart's computed font-weight */
	text-transform: uppercase; /* matches Add to Cart */
	letter-spacing: 0.5px; /* matches Add to Cart */
	line-height: 1.2;
	transition: 0.3s; /* matches Add to Cart's computed transition */
}

/* Not :not(:disabled)-scoped, same reasoning as the wishlist/collection
   triggers above: several of these buttons (the modal's preset chips in
   particular, via .gctc-create-list__preset) go through a disable-during-
   AJAX/re-enable-on-failure cycle too, and a :not(:disabled) exclusion
   here would reopen the identical race against reset.css's un-scoped
   button:hover/:focus rule right as :disabled toggles off. */
.gctc-my-wishlists__actions button:hover,
.gctc-my-wishlists__actions button:focus,
.gctc-my-wishlists__actions button:active,
.gctc-create-list__presets .gctc-create-list__preset:hover,
.gctc-create-list__presets .gctc-create-list__preset:focus,
.gctc-create-list__presets .gctc-create-list__preset:active,
.gctc-create-list__form button[type="submit"]:hover,
.gctc-create-list__form button[type="submit"]:focus,
.gctc-create-list__form button[type="submit"]:active {
	background: var(--gctc-btn-accent);
	color: var(--gctc-btn-accent-text);
}

.gctc-my-wishlists__actions button:disabled,
.gctc-create-list__presets .gctc-create-list__preset:disabled,
.gctc-create-list__form button[type="submit"]:disabled {
	opacity: 0.6;
	cursor: default;
}

.gctc-create-list {
	margin-top: 2em;
	padding-top: 1.5em;
	border-top: 1px solid #eee;
}

.gctc-create-list__presets {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em;
	margin: 0.75em 0;
}

.gctc-create-list__form {
	display: flex;
	gap: 0.5em;
	max-width: 420px;
}

.gctc-create-list__form input[type="text"] {
	flex: 1 1 auto;
	border: 1.5px solid var(--gctc-btn-accent);
	border-radius: 3px;
	padding: 0.6em 1em;
	font-size: 0.8em;
}

.gctc-create-list__form input[type="text"]:disabled {
	opacity: 0.6;
}

.gctc-my-wishlists__back {
	margin-bottom: 1em;
}

.gctc-my-wishlists__sort {
	display: flex;
	align-items: center;
	gap: 0.5em;
	justify-content: flex-end;
	margin: 0 0 1em;
	font-size: 0.9em;
}

.gctc-my-wishlists__sort select {
	width: auto;
	padding: 0.4em 0.6em;
}

.gctc-my-wishlists__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gctc-my-wishlists__item {
	display: flex;
	align-items: center;
	gap: 1em;
	padding: 0.75em 0;
	border-bottom: 1px solid #eee;
}

.gctc-my-wishlists__item-image {
	flex: 0 0 auto;
	display: block;
}

.gctc-my-wishlists__item-image img {
	width: 48px;
	height: 48px;
	object-fit: contain;
	display: block;
	border-radius: 3px;
}

.gctc-my-wishlists__item-name {
	flex: 1 1 auto;
}

.gctc-my-wishlists__item-price-note,
.gctc-wishlist-share-item__price-note {
	display: block;
	font-size: 0.8em;
	color: #666;
}

.gctc-my-wishlists__item-price-note del,
.gctc-wishlist-share-item__price-note del {
	text-decoration: line-through;
}

.gctc-my-wishlists__item-stock {
	font-size: 0.85em;
	color: #666;
}

/* CONFIRMED 2026-08-13: Add to Cart and Remove were never meaningfully
   distinguished — both classes shared one literal-color rule block. The
   very first version of that block declared no `color` at all (reset.css's
   #cc3366 won both by default), and a later fix for that omission gave
   BOTH buttons the same literal grey (#333) without noticing Add to Cart
   has its own established green/gold identity elsewhere in this file
   (.gctc-wishlist-modal__create-submit, .gctc-my-wishlists__actions
   button, both above) while Remove's pink/rose is a deliberate,
   YITH-matching destructive-action treatment — not a bug to grey out.
   Split into two rules below: Add to Cart now gets the same
   --gctc-btn-accent outline-fills-solid-on-hover treatment as every other
   Add to Cart-style button in this file (both here and on the public
   share page, which renders the same .gctc-wishlist-atc-btn markup — see
   wishlist.js's buildShareItem()); Remove keeps its original plain-outline
   shape with its pink/rose now declared explicitly instead of relying on
   reset.css's #cc3366 winning by omission. Both wrapper-scoped for the
   same reset.css-tie reason documented at the top of this file. */
.gctc-my-wishlists__item .gctc-wishlist-atc-btn,
.gctc-wishlist-share-item .gctc-wishlist-atc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1.5px solid var(--gctc-btn-accent);
	border-radius: 3px; /* matches Add to Cart's computed border-radius */
	background: transparent;
	color: var(--gctc-btn-accent);
	padding: 0.4em 0.8em;
	font-size: 0.85em;
	font-weight: 600; /* matches Add to Cart's computed font-weight */
	text-transform: uppercase; /* matches Add to Cart */
	letter-spacing: 0.5px; /* matches Add to Cart */
	cursor: pointer;
	white-space: nowrap;
	transition: 0.3s; /* matches Add to Cart's computed transition */
}

.gctc-my-wishlists__item .gctc-wishlist-atc-btn:hover,
.gctc-my-wishlists__item .gctc-wishlist-atc-btn:focus,
.gctc-my-wishlists__item .gctc-wishlist-atc-btn:active,
.gctc-wishlist-share-item .gctc-wishlist-atc-btn:hover,
.gctc-wishlist-share-item .gctc-wishlist-atc-btn:focus,
.gctc-wishlist-share-item .gctc-wishlist-atc-btn:active {
	background: var(--gctc-btn-accent);
	color: var(--gctc-btn-accent-text);
}

.gctc-my-wishlists__item .gctc-wishlist-atc-btn:disabled,
.gctc-wishlist-share-item .gctc-wishlist-atc-btn:disabled {
	opacity: 0.6;
	cursor: default;
}

.gctc-my-wishlists__item .gctc-my-wishlists__item-remove {
	border: 1px solid #ccc;
	border-radius: 4px;
	background: #fff;
	color: #cc3366; /* intentional destructive-action pink/rose, matches YITH's original Remove treatment — do not change to the green accent */
	padding: 0.4em 0.8em;
	font-size: 0.85em;
	cursor: pointer;
	white-space: nowrap;
}

.gctc-my-wishlists__item .gctc-my-wishlists__item-remove:hover,
.gctc-my-wishlists__item .gctc-my-wishlists__item-remove:focus {
	background-color: #fff;
	color: #cc3366;
	border-color: #cc3366;
}

.gctc-my-wishlists__item .gctc-my-wishlists__item-remove:disabled {
	opacity: 0.6;
	cursor: default;
}

/* ----------------------------------------------------------------------
   Pagination (My Account single-list view + public share page)
   ---------------------------------------------------------------------- */

.gctc-wishlist-pagination {
	margin-top: 1.5em;
	display: flex;
	gap: 0.4em;
	flex-wrap: wrap;
}

.gctc-wishlist-pagination a,
.gctc-wishlist-pagination__current {
	display: inline-block;
	min-width: 2em;
	text-align: center;
	padding: 0.3em 0.5em;
	border: 1px solid #ccc;
	border-radius: 4px;
	text-decoration: none;
	color: inherit;
}

.gctc-wishlist-pagination__current {
	background: #f0f0f0;
	font-weight: 600;
}

/* ----------------------------------------------------------------------
   Public share page
   ---------------------------------------------------------------------- */

.gctc-wishlist-share-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 1.5em;
	list-style: none;
	margin: 0;
	padding: 0;
}

.gctc-wishlist-share-item__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.gctc-wishlist-share-item__image img {
	max-width: 100%;
	height: auto;
	display: block;
}

.gctc-wishlist-share-loading,
.gctc-wishlist-share-unavailable {
	color: #666;
	padding: 2em 0;
	text-align: center;
}

.gctc-wishlist-share-item__name {
	margin-top: 0.5em;
	font-weight: 600;
}

.gctc-wishlist-share-item__stock {
	font-size: 0.85em;
	color: #666;
}

.gctc-wishlist-share-item .gctc-wishlist-atc-btn {
	margin-top: 0.5em;
	width: 100%;
}

/* ----------------------------------------------------------------------
   Admin notify log
   ---------------------------------------------------------------------- */

.gctc-notify-status {
	display: inline-block;
	padding: 0.15em 0.6em;
	border-radius: 3px;
	font-size: 0.85em;
}

.gctc-notify-status--sent {
	background: #eaf6ef;
	color: #2e8b57;
}

.gctc-notify-status--failed {
	background: #fdecef;
	color: #d1445a;
}

.gctc-notify-status--skipped {
	background: #f2f2f2;
	color: #777;
}

/* ----------------------------------------------------------------------
   Spares badge + notes — product page/shop loop collection button
   ---------------------------------------------------------------------- */

.gctc-collection-btn__spares {
	display: block;
	font-size: 0.75em;
	color: var(--gctc-btn-accent);
	font-weight: 600;
}

.gctc-collection-btn__notes {
	display: block;
	font-size: 0.75em;
	color: #666;
	font-style: italic;
}

/* ----------------------------------------------------------------------
   Set-completion progress (category/set archive)
   ---------------------------------------------------------------------- */

.gctc-set-completion {
	font-size: 0.9em;
	color: #333;
	font-weight: 600;
}

/* ----------------------------------------------------------------------
   My Account — "My Collection" tab
   ---------------------------------------------------------------------- */

.gctc-my-collection__filter {
	margin-bottom: 1em;
}

.gctc-my-collection__intro {
	color: #666;
}

.gctc-my-collection__category-picker {
	margin: 1em 0;
}

.gctc-my-collection__category-picker select {
	margin-left: 0.5em;
	max-width: 100%;
}

.gctc-my-collection__back {
	margin-bottom: 1em;
}

.gctc-my-collection__items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gctc-my-collection__item {
	display: flex;
	align-items: center;
	gap: 1em;
	padding: 0.75em 0;
	border-bottom: 1px solid #eee;
	flex-wrap: wrap;
}

.gctc-my-collection__item-image img {
	width: 50px;
	height: 50px;
	object-fit: cover;
	display: block;
}

.gctc-my-collection__item-name {
	flex: 1 1 200px;
	font-weight: 600;
	color: inherit;
	text-decoration: none;
}

.gctc-my-collection__spares {
	font-size: 0.85em;
	font-weight: 600;
	color: var(--gctc-btn-accent);
	white-space: nowrap;
}

.gctc-my-collection__notes {
	font-size: 0.85em;
	color: #666;
	font-style: italic;
	flex-basis: 100%;
}

.gctc-my-collection__edit-form {
	display: flex;
	align-items: center;
	gap: 0.5em;
	flex-wrap: wrap;
}

.gctc-my-collection__edit-form input[type="number"] {
	width: 4.5em;
}

.gctc-my-collection__edit-form textarea {
	width: 180px;
	height: 2.4em;
	font-size: 0.85em;
	resize: vertical;
}

/* Same reset.css-tie reasoning as every other real <button> in this file —
   wrapper-scoped rather than a bare type selector so it reliably beats
   [type="submit"], button regardless of enqueue order. */
.gctc-my-collection__edit-form button[type="submit"] {
	border: 1.5px solid var(--gctc-btn-accent);
	border-radius: 3px;
	background: transparent;
	color: var(--gctc-btn-accent);
	padding: 0.4em 0.8em;
	font-size: 0.8em;
	font-weight: 600;
	cursor: pointer;
	transition: 0.3s;
}

.gctc-my-collection__edit-form button[type="submit"]:hover,
.gctc-my-collection__edit-form button[type="submit"]:focus,
.gctc-my-collection__edit-form button[type="submit"]:active {
	background: var(--gctc-btn-accent);
	color: var(--gctc-btn-accent-text);
}

.gctc-my-collection__edit-form [disabled] {
	opacity: 0.6;
}

/* ----------------------------------------------------------------------
   Checkout thank-you page — "Move to Collection" prompt
   Sits inside gctc-multistep-checkout's own .gctc-confirm-section/
   .gctc-btn markup (that plugin's checkout-multistep.css handles the
   card/button shell), so only the list of matched items below needs
   styling here — kept in the same accent tokens as the rest of this file
   rather than checkout-multistep.css's separate green/gold palette, since
   this content is wishlist/collection subject matter shown on a
   checkout-plugin-owned page, not the other way around.
   ---------------------------------------------------------------------- */

.gctc-wishlist-move-prompt__intro {
	margin: 0 0 1em;
	color: #555;
}

.gctc-wishlist-move-prompt__list {
	list-style: none;
	margin: 0 0 1.25em;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6em;
}

.gctc-wishlist-move-prompt__item {
	border: 1px solid #e2e2e2;
	border-radius: 6px;
	padding: 0.5em 0.75em;
	transition: 0.3s;
}

.gctc-wishlist-move-prompt__item label {
	display: flex;
	align-items: center;
	gap: 0.75em;
	cursor: pointer;
}

.gctc-wishlist-move-prompt__thumb img {
	display: block;
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 4px;
}

.gctc-wishlist-move-prompt__name {
	font-weight: 600;
}

.gctc-wishlist-move-prompt__item.is-moved {
	border-color: var(--gctc-btn-accent);
	background: color-mix(in srgb, var(--gctc-btn-accent) 8%, transparent);
}

.gctc-wishlist-move-prompt__item.is-moved label {
	cursor: default;
	opacity: 0.75;
}

.gctc-wishlist-move-prompt__status {
	margin: 0.75em 0 0;
	font-size: 0.9em;
	font-weight: 600;
	color: var(--gctc-btn-accent);
}
