/* Gun Transfer checkout modal — the original WordPress stylesheet (gt-checkout), recovered from the
   site backup and carried over verbatim. Block order matches how the live site layered them: the main
   sheet first, then the patches that were applied on top of it. */


/* ==== block 31 ==== */
/**
 * Gun Transfer Checkout — Modal styles
 *
 * Brand: black backgrounds, green accent (#6E9631), white text.
 * Mobile-first, single column under 640px.
 */

:root {
	--gtc-accent: #6E9631;
	--gtc-accent-hover: #7CAA38;
	--gtc-accent-dark: #5A7B26;
	--gtc-bg: #0d1116;
	--gtc-card: #1a1f26;
	--gtc-card-hover: #232932;
	--gtc-border: #2d343f;
	--gtc-text: #ffffff;
	--gtc-text-dim: #b8c0cb;
	--gtc-text-mute: #7a8290;
	--gtc-error: #ff6b6b;
	--gtc-radius: 12px;
	--gtc-radius-sm: 8px;
	--gtc-shadow: 0 20px 60px rgba(0,0,0,0.5);
}

/* ============================================================
 * Modal shell
 * ============================================================ */
.gtc-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--gtc-text);
}
.gtc-modal[hidden] { display: none; }

.gtc-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.85);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.gtc-modal__dialog {
	position: relative;
	max-width: 560px;
	margin: 5vh auto;
	background: var(--gtc-bg);
	border: 1px solid var(--gtc-border);
	border-radius: var(--gtc-radius);
	box-shadow: var(--gtc-shadow);
	padding: 32px 28px 24px;
	max-height: 90vh;
	overflow-y: auto;
	animation: gtc-pop 180ms ease-out;
}
@keyframes gtc-pop {
	from { opacity: 0; transform: translateY(20px) scale(0.97); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

.gtc-modal__close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 36px;
	height: 36px;
	border: 0;
	background: transparent;
	color: var(--gtc-text-dim);
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	border-radius: 50%;
	transition: background 120ms, color 120ms;
}
.gtc-modal__close:hover {
	background: var(--gtc-card);
	color: var(--gtc-text);
}

/* ============================================================
 * Header
 * ============================================================ */
.gtc-modal__header {
	text-align: center;
	margin-bottom: 24px;
}
.gtc-modal__eyebrow {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--gtc-accent);
	margin-bottom: 8px;
}
.gtc-modal__title {
	font-size: 24px;
	font-weight: 800;
	margin: 0 0 6px 0;
	color: var(--gtc-text);
	line-height: 1.2;
}
.gtc-modal__sub {
	font-size: 14px;
	color: var(--gtc-text-dim);
	margin: 0;
}

/* ============================================================
 * Step visibility
 * ============================================================ */
.gtc-step { display: none; }
.gtc-modal[data-step="pick"] .gtc-step--pick { display: block; }
.gtc-modal[data-step="pay"]  .gtc-step--pay  { display: block; }
.gtc-modal[data-step="done"] .gtc-step--done { display: block; text-align: center; }

/* ============================================================
 * Bundles (step 1)
 * ============================================================ */
.gtc-bundles {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.gtc-bundle {
	position: relative;
	background: var(--gtc-card);
	border: 2px solid var(--gtc-border);
	border-radius: var(--gtc-radius);
	padding: 18px 18px 14px;
	transition: border-color 140ms, background 140ms, transform 140ms;
}
.gtc-bundle:hover {
	border-color: var(--gtc-accent);
	background: var(--gtc-card-hover);
}
.gtc-bundle.is-highlight,
.gtc-bundle--popular {
	border-color: var(--gtc-accent);
}

.gtc-bundle__badge {
	position: absolute;
	top: -10px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--gtc-accent);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 4px 12px;
	border-radius: 999px;
	white-space: nowrap;
}

.gtc-bundle__card {
	text-align: center;
	padding: 6px 0 14px;
}
.gtc-bundle__name {
	font-size: 16px;
	font-weight: 700;
	color: var(--gtc-text);
	margin-bottom: 4px;
}
.gtc-bundle__price {
	font-size: 42px;
	font-weight: 800;
	color: var(--gtc-accent);
	line-height: 1;
	margin: 4px 0;
}
.gtc-bundle__sub {
	font-size: 12px;
	font-weight: 600;
	color: var(--gtc-text-dim);
	letter-spacing: 0.04em;
}

.gtc-bundle__select {
	display: block;
	width: 100%;
	background: var(--gtc-accent);
	color: #fff;
	border: 0;
	border-radius: var(--gtc-radius-sm);
	padding: 12px 16px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 120ms, transform 120ms;
}
.gtc-bundle__select:hover {
	background: var(--gtc-accent-hover);
}
.gtc-bundle__select:active {
	transform: translateY(1px);
}

/* ============================================================
 * Pay form (step 2)
 * ============================================================ */
.gtc-back {
	background: transparent;
	border: 0;
	color: var(--gtc-text-dim);
	font-size: 13px;
	padding: 0;
	cursor: pointer;
	margin-bottom: 12px;
}
.gtc-back:hover { color: var(--gtc-accent); }

.gtc-pay-bundle-price {
	color: var(--gtc-accent);
	font-weight: 800;
}

.gtc-pay-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.gtc-row {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 12px;
}

.gtc-field { display: flex; flex-direction: column; gap: 6px; }
.gtc-field label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--gtc-text-dim);
}
.gtc-field input {
	background: var(--gtc-card);
	border: 1px solid var(--gtc-border);
	border-radius: var(--gtc-radius-sm);
	padding: 12px 14px;
	color: var(--gtc-text);
	font-size: 15px;
	font-family: inherit;
	transition: border-color 120ms, background 120ms;
	width: 100%;
	box-sizing: border-box;
}
.gtc-field input::placeholder { color: var(--gtc-text-mute); }
.gtc-field input:focus {
	outline: none;
	border-color: var(--gtc-accent);
	background: var(--gtc-card-hover);
}

.gtc-error {
	background: rgba(255, 107, 107, 0.1);
	border: 1px solid var(--gtc-error);
	color: var(--gtc-error);
	padding: 10px 14px;
	border-radius: var(--gtc-radius-sm);
	font-size: 14px;
	margin: 4px 0;
}
.gtc-error[hidden] { display: none; }

.gtc-submit {
	position: relative;
	background: var(--gtc-accent);
	color: #fff;
	border: 0;
	border-radius: var(--gtc-radius-sm);
	padding: 16px 20px;
	font-size: 16px;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background 120ms, transform 120ms;
	margin-top: 8px;
}
.gtc-submit:hover:not(:disabled) {
	background: var(--gtc-accent-hover);
}
.gtc-submit:active:not(:disabled) {
	transform: translateY(1px);
}
.gtc-submit:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

.gtc-submit__spinner {
	display: none;
	width: 16px;
	height: 16px;
	margin-left: 10px;
	border: 2px solid rgba(255,255,255,0.3);
	border-top-color: #fff;
	border-radius: 50%;
	vertical-align: middle;
	animation: gtc-spin 600ms linear infinite;
}
.gtc-submit.is-busy .gtc-submit__spinner { display: inline-block; }
.gtc-submit.is-busy .gtc-submit__label::after { content: 'ing'; }
@keyframes gtc-spin { to { transform: rotate(360deg); } }

.gtc-pay-form.is-busy input { opacity: 0.7; pointer-events: none; }

.gtc-secure {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 12px;
	color: var(--gtc-text-mute);
	margin: 8px 0 0;
}

/* ============================================================
 * Success state (step 3)
 * ============================================================ */
.gtc-done__icon {
	width: 64px;
	height: 64px;
	border-radius: 50%;
	background: var(--gtc-accent);
	color: #fff;
	font-size: 36px;
	font-weight: 800;
	line-height: 64px;
	margin: 8px auto 16px;
}
.gtc-done__title {
	font-size: 26px;
	font-weight: 800;
	margin: 0 0 10px;
}
.gtc-done__sub {
	font-size: 15px;
	color: var(--gtc-text-dim);
	margin: 6px 0;
}
.gtc-done__cta {
	display: inline-block;
	background: var(--gtc-accent);
	color: #fff !important;
	text-decoration: none;
	padding: 14px 28px;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border-radius: var(--gtc-radius-sm);
	margin-top: 16px;
	transition: background 120ms;
}
.gtc-done__cta:hover { background: var(--gtc-accent-hover); }

/* ============================================================
 * "Buy" button shortcode default style
 * ============================================================ */
.gtc-buy-btn {
	background: var(--gtc-accent);
	color: #fff;
	border: 0;
	border-radius: var(--gtc-radius-sm);
	padding: 14px 28px;
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	cursor: pointer;
	transition: background 120ms, transform 120ms;
}
.gtc-buy-btn:hover { background: var(--gtc-accent-hover); }
.gtc-buy-btn:active { transform: translateY(1px); }

/* ============================================================
 * Mobile
 * ============================================================ */
@media (max-width: 640px) {
	.gtc-modal__dialog {
		margin: 0;
		max-width: 100%;
		min-height: 100vh;
		max-height: 100vh;
		border-radius: 0;
		padding: 28px 20px 24px;
	}
	.gtc-row {
		grid-template-columns: 1fr 1fr;
	}
	.gtc-row .gtc-field:nth-child(3) {
		grid-column: 1 / -1;
	}
	.gtc-bundle__price { font-size: 36px; }
}

/* ============================================================
 * Autofill override - iOS Safari + Chrome + Firefox.
 * Browsers won't let us change `background-color` on autofilled
 * inputs, so we use a giant inset box-shadow as a fake bg.
 * No layout / positioning changes - only colors.
 * ============================================================ */
.gtc-modal .gtc-field input {
    -webkit-appearance: none;
    appearance: none;
}

.gtc-modal .gtc-field input:-webkit-autofill,
.gtc-modal .gtc-field input:-webkit-autofill:hover,
.gtc-modal .gtc-field input:-webkit-autofill:focus,
.gtc-modal .gtc-field input:-webkit-autofill:active {
    -webkit-text-fill-color: #ffffff !important;
    -webkit-box-shadow: 0 0 0 1000px #1a1f26 inset !important;
    box-shadow: 0 0 0 1000px #1a1f26 inset !important;
    caret-color: #ffffff !important;
    background-image: none !important;
    transition: background-color 9999s ease-in-out 0s !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.gtc-modal .gtc-field input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #232932 inset !important;
    box-shadow: 0 0 0 1000px #232932 inset !important;
}

/* Firefox */
.gtc-modal .gtc-field input:autofill {
    background-color: #1a1f26 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}

/* iOS Safari sometimes inserts a textfield "appearance" that
 * forces a light background on fill. Belt-and-suspenders. */
.gtc-modal .gtc-field input[autocomplete] {
    -webkit-text-fill-color: #ffffff !important;
}

.gtc-card-logos { display: flex; justify-content: center; align-items: center; gap: 8px; margin: 12px 0 4px; opacity: 0.85; }
.gtc-card-logos svg { width: 38px !important; height: 24px !important; display: block; border-radius: 3px; flex: 0 0 auto; }
.gtc-modal[data-step="claim"] .gtc-step--claim { display: block; }
.gtc-modal[data-step="claim"] .gtc-modal__close { display: none; }
.gtc-eyebrow--success { color: var(--gtc-accent) !important; }
.gtc-claim-form { display: flex; flex-direction: column; gap: 14px; }
.gtc-field__hint { font-size: 11px; color: var(--gtc-text-mute); margin-top: 2px; display: block; }
@media (max-width: 480px) { .gtc-card-logos svg { width: 34px !important; height: 22px !important; } }

/* AGGRESSIVE autofill override - keeps dark theme when password manager fills fields */
.gtc-modal input:-webkit-autofill,
.gtc-modal input:-webkit-autofill:hover,
.gtc-modal input:-webkit-autofill:focus,
.gtc-modal input:-webkit-autofill:active,
.gtc-modal .gtc-field input:-webkit-autofill,
.gtc-modal .gtc-field input:-webkit-autofill:hover,
.gtc-modal .gtc-field input:-webkit-autofill:focus,
.gtc-modal .gtc-field input:-webkit-autofill:active {
  -webkit-text-fill-color: #ffffff !important;
  -webkit-box-shadow: 0 0 0 100rem #1a1f26 inset, 0 0 0 200rem #1a1f26 inset !important;
  box-shadow: 0 0 0 100rem #1a1f26 inset !important;
  caret-color: #ffffff !important;
  background-color: #1a1f26 !important;
  background-image: none !important;
  color: #ffffff !important;
  transition: background-color 9999s ease-in-out 0s, color 9999s ease-in-out 0s !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  filter: none !important;
}
.gtc-modal .gtc-field input,
.gtc-modal .gtc-field input:hover,
.gtc-modal .gtc-field input:focus,
.gtc-modal .gtc-field input:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background-color: #1a1f26 !important;
}

/* v1.0.5 - logo at top of modal */
.gtc-modal__logo { text-align: center; margin: 0 0 18px; padding-top: 6px; }
.gtc-modal__logo img { display: inline-block; width: 280px; height: auto; max-height: 84px; object-fit: contain; opacity: 0.95; }   /* 2x (Rand, Sep 8) */
@media (max-width: 480px) { .gtc-modal__logo img { width: 240px; max-height: 72px; } }

/* v1.0.6 - wallet buttons (Google Pay / Apple Pay) */
.gtc-wallets { display: none; margin: 0 0 14px; flex-direction: column; gap: 10px; }
.gtc-wallets.is-ready { display: flex; }
.gtc-wallet-btn { width: 100%; min-height: 44px; }
.gtc-wallet-btn > div, .gtc-wallet-btn > button { width: 100% !important; height: 44px !important; }
.gtc-wallets__divider { position: relative; text-align: center; margin: 4px 0 2px; color: var(--gtc-text-mute); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; }
.gtc-wallets__divider::before, .gtc-wallets__divider::after { content: ""; position: absolute; top: 50%; width: 38%; height: 1px; background: var(--gtc-border); }
.gtc-wallets__divider::before { left: 0; }
.gtc-wallets__divider::after { right: 0; }
.gtc-wallets__divider span { background: var(--gtc-bg); padding: 0 10px; position: relative; }

/* v1.3.0 - alt auth (log in / Google) on the claim step */
.gtc-alt-auth{margin-top:18px}
.gtc-alt-sep{position:relative;text-align:center;margin:16px 0 12px;color:#8b93a7;font-size:13px}
.gtc-alt-sep span{background:#131a28;padding:0 10px;position:relative;z-index:1}
.gtc-alt-sep:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#232a3a}
.gtc-alt-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:8px 0;padding:12px 16px;border-radius:10px;border:1px solid #2c3446;background:#161c2b;color:#e7ebf3;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}
.gtc-alt-btn:hover{background:#1d2436}
.gtc-google-btn{background:#fff;color:#1f2330;border-color:#dadce0}
.gtc-google-btn:hover{background:#f5f6f8}

/* ==== block 0 ==== */
.gtc-price-block .gtc-strike{color:rgba(255,255,255,.5);text-decoration:line-through;margin-right:6px;font-weight:500}
.gtc-price-block .gtc-now{color:#6E9631;font-weight:700}
.gtc-promo-strip{position:fixed;top:0;left:0;right:0;z-index:10000;display:flex;align-items:center;justify-content:center;gap:10px;background:#B91C1C;color:#fff;font-family:'Barlow Condensed',sans-serif;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:8px 20px;line-height:1.1;text-align:center;height:34px;box-sizing:border-box;box-shadow:0 2px 8px rgba(0,0,0,.25)}
.gtc-promo-strip .gtc-strike{opacity:.7;text-decoration:line-through;margin:0 2px}
.gtc-promo-strip .gtc-now{color:#FFD27A;font-size:14px;margin:0 2px}
.gtc-promo-strip .gtc-flag{font-size:16px}
.gtc-promo-strip a{color:inherit;text-decoration:none}
body.gtc-has-promo .nav-wrap{top:34px !important}
body.gtc-has-promo{padding-top:34px}
@media(max-width:720px){
  .gtc-promo-strip{font-size:11px;letter-spacing:1px;padding:7px 10px;gap:6px;height:30px}
  body.gtc-has-promo .nav-wrap{top:30px !important}
  body.gtc-has-promo{padding-top:30px}
}

/* ==== block 17 ==== */
/* Google Pay was rejected by Google (firearms policy) and does not work. */
/* Hide it in the checkout modal so shoppers use Apple Pay (Safari) or the card form. */
#gtcModal #gtcGpayBtn { display: none !important; }

/* With Google Pay gone, let Apple Pay fill the wallet row. */
#gtcModal .gtc-wallets > #gtcApayBtn { flex: 1 1 100% !important; width: 100% !important; }

/* On non-Apple browsers there is no wallet button, so hide the now-empty 'OR PAY WITH CARD' divider. */
#gtcModal .gtc-wallets:not(:has(apple-pay-button)) .gtc-wallets__divider { display: none !important; }

/* ==== block 25 ==== */
#gtc-ab-trust{display:none;}@media (max-width:782px){#gtcModal .gtc-vpanel,#gtcModal .gtc-vwrap,#gtcModal video.gtc-vid{max-height:300px !important;max-height:min(40vh,300px) !important;height:auto !important;}#gtcModal video.gtc-vid{width:auto !important;max-width:100% !important;margin:0 auto !important;display:block !important;}#gtcModal #gtc-ab-trust{display:block !important;margin:12px 0 4px;background:#eef6e3;color:#2f5314;border-radius:8px;padding:9px 12px;font-size:13px;line-height:1.5;text-align:center;}}@supports (height:1dvh){@media (max-width:782px){#gtcModal .gtc-vpanel,#gtcModal .gtc-vwrap,#gtcModal video.gtc-vid{max-height:min(40dvh,300px) !important;}}}@media (max-width:782px) and (max-height:760px){#gtcModal .gtc-vpanel,#gtcModal .gtc-vwrap,#gtcModal video.gtc-vid{max-height:28vh !important;}}@media (max-width:782px) and (max-height:650px){#gtcModal .gtc-vpanel,#gtcModal .gtc-vwrap,#gtcModal video.gtc-vid{max-height:22vh !important;}#gtcModal #gtc-ab-trust{font-size:12px;padding:7px 10px;}}

/* ==== block 27 ==== */
#gtcModal .gtc-wallets{gap:18px!important;margin:14px 0!important}#gtcModal .gtc-wallets>#gtcGpayBtn,#gtcModal .gtc-wallets>#gtcApayBtn{min-height:48px!important}#gtcModal #gtcApayBtn apple-pay-button{height:48px!important;--apple-pay-button-height:48px!important}

/* ==== block 49 ==== */
#gtcModal #gtc-pp-email,#gtcModal .gtc-coupon-input{background:#11160f !important;color:#ffffff !important;}
#gtcModal #gtc-pp-email:-webkit-autofill,#gtcModal .gtc-coupon-input:-webkit-autofill,#gtcModal #gtc-pp-email:-webkit-autofill:focus,#gtcModal .gtc-coupon-input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #11160f inset !important;-webkit-text-fill-color:#ffffff !important;caret-color:#ffffff !important;} #gtcModal .gtc-claim-form input{font-size:16px !important;} #gtcModal .gtc-claim-form input:-webkit-autofill,#gtcModal .gtc-claim-form input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px #1a1f26 inset !important;-webkit-text-fill-color:#ffffff !important;caret-color:#ffffff !important;}