/* ==========================================================================
   HFT BUTTON SYSTEM — sitewide (theme 1.0.322; 1.0.323 review fixes; Mark #167 · #173 · #178 · #180)
   Loaded LAST on every front-end page (inc/setup.php). One system everywhere:
     MAIN       pink #D6337B · white text · darker-pink bottom edge #A4235C that presses 3 px on click · 52 px
     TRY FREE   white · 2 px navy outline · pink ▶ · flat · 52 px
     SECONDARY  white · 2 px navy outline · navy text · flat · 52 px (navy fill on hover)
     AMAZON     sail yellow #FBB915 · navy text — ONLY "Buy on Amazon" (hft-pdp-editions.css)
   Sizes (#178): 52 px · the header bar AND the phone drawer menu keep 44 px · the kids' /class/ page keeps 64 px
   (hft-class.css) · buttons that sit inside rows / tables / notices stay compact (40 px) so lists don't balloon.
   1.0.323: every selector list is CLASS strength (the two ID buttons have their own small rules — review 2); the
   popup's ONE link (.hft-pop-cta) is the button, never its two text spans (review 1).
   The old yellow brand-kit BUY role (--buy) is retired: the tokens now resolve to the main pink.
   ========================================================================== */
:root {
	--buy: #D6337B; --buy-hover: #B62A67; --buy-ink: #FFFFFF; --buy-ink-hover: #FFFFFF; --buy-shadow: 0 4px 0 #A4235C;
	--hft-btn-h: 52px; --hft-btn-edge: #A4235C;
}

/* ---------- MAIN (pink + pressable edge) ---------- */
html body :is(
	.hft-btn:not(.hft-btn--ghost):not(.hft-btn--navy):not(.hft-btn--white), .btn--rose, .btn-rose, .btn--gold, .hft-btn--gold, .b.gold,
	.hftn-btn--cta, .hft-plan-cta:not(.hft-plan-cta--alt),
	.hft-fb-btn:not(.hft-fb-btn--ghost), .hft-pdp-btn--cta, .hft-fc-btn, .hft-fc-used-cta, .hft-fc-done-cta,
	.hft-bc-btn, .hft-bc-used-cta, .hft-bc-done-cta, .hft-ty-btn--cta, .hft-mc-btn--cta, .hft-favmc-btn--cta, .hft-pop-cta,
	.hft-nl-btn, .hft-cart-signup__cta, .hft-cart-upsell__cta, .hft-memhead-cta, .hft-pricing .t-coral .hft-btn,
	.woocommerce a.button.alt, .woocommerce button.button.alt, .single_add_to_cart_button, .add_to_cart_button,
	.somdn-download-button, .somdn-download-archive, .checkout-button, .wc-block-components-checkout-place-order-button,
	.wp-element-button:not(.wp-block-search__button), .hc-btn--main, .hft-ed-cta:not(.hft-ed-cta--out),
	.hft-game-playbtn:not(.hft-game-playbtn--try), .hft-card .hft-card-btn
) {
	background-color: #D6337B !important; background-image: none !important;
	color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important;
	border: 0 !important; border-radius: 999px !important;
	box-shadow: 0 4px 0 #A4235C !important;
	transition: transform .1s ease, box-shadow .1s ease, background-color .15s ease !important;
}
html body :is(
	.hft-btn:not(.hft-btn--ghost):not(.hft-btn--navy):not(.hft-btn--white), .btn--rose, .btn-rose, .btn--gold, .hft-btn--gold, .b.gold,
	.hftn-btn--cta, .hft-plan-cta:not(.hft-plan-cta--alt),
	.hft-fb-btn:not(.hft-fb-btn--ghost), .hft-pdp-btn--cta, .hft-fc-btn, .hft-fc-used-cta, .hft-fc-done-cta,
	.hft-bc-btn, .hft-bc-used-cta, .hft-bc-done-cta, .hft-ty-btn--cta, .hft-mc-btn--cta, .hft-favmc-btn--cta, .hft-pop-cta,
	.hft-nl-btn, .hft-cart-signup__cta, .hft-cart-upsell__cta, .hft-memhead-cta, .hft-pricing .t-coral .hft-btn,
	.woocommerce a.button.alt, .woocommerce button.button.alt, .single_add_to_cart_button, .add_to_cart_button,
	.somdn-download-button, .somdn-download-archive, .checkout-button, .wc-block-components-checkout-place-order-button,
	.wp-element-button:not(.wp-block-search__button), .hc-btn--main, .hft-ed-cta:not(.hft-ed-cta--out),
	.hft-game-playbtn:not(.hft-game-playbtn--try), .hft-card .hft-card-btn
):is(:hover, :focus-visible) {
	background-color: #B62A67 !important; --hft-cbtn: #B62A67 !important; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; transform: none !important;
}
html body :is(
	.hft-btn:not(.hft-btn--ghost):not(.hft-btn--navy):not(.hft-btn--white), .btn--rose, .btn-rose, .btn--gold, .hft-btn--gold, .b.gold,
	.hftn-btn--cta, .hft-plan-cta:not(.hft-plan-cta--alt),
	.hft-fb-btn:not(.hft-fb-btn--ghost), .hft-pdp-btn--cta, .hft-fc-btn, .hft-fc-used-cta, .hft-fc-done-cta,
	.hft-bc-btn, .hft-bc-used-cta, .hft-bc-done-cta, .hft-ty-btn--cta, .hft-mc-btn--cta, .hft-favmc-btn--cta, .hft-pop-cta,
	.hft-nl-btn, .hft-cart-signup__cta, .hft-cart-upsell__cta, .hft-memhead-cta, .hft-pricing .t-coral .hft-btn,
	.woocommerce a.button.alt, .woocommerce button.button.alt, .single_add_to_cart_button, .add_to_cart_button,
	.somdn-download-button, .somdn-download-archive, .checkout-button, .wc-block-components-checkout-place-order-button,
	.wp-element-button:not(.wp-block-search__button), .hc-btn--main, .hft-ed-cta:not(.hft-ed-cta--out),
	.hft-game-playbtn:not(.hft-game-playbtn--try), .hft-card .hft-card-btn
):active {
	transform: translateY(3px) !important; box-shadow: 0 1px 0 #A4235C !important; transition-duration: .06s !important;
}
html body :is(.single_add_to_cart_button, .add_to_cart_button, .hc-btn--main):is(.disabled, :disabled) { box-shadow: none !important; opacity: .55; }
/* SAF result cards keep their inline colour var — override the var (works with any SAF version) */
html body .hft-card .hft-card-btn { --hft-cbtn: #D6337B !important; --hft-cbtn-ink: #FFFFFF !important; }

/* The two ID buttons — their own rules, so the class lists above stay at class strength (review 2). */
#place_order {
	background-color: #D6337B !important; background-image: none !important; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important;
	border: 0 !important; border-radius: 999px !important; box-shadow: 0 4px 0 #A4235C !important;
	box-sizing: border-box !important; min-height: 52px !important; height: auto !important; padding-top: 0 !important; padding-bottom: 0 !important;
	display: flex !important; align-items: center; justify-content: center; width: 100% !important; font-size: 16px !important; font-weight: 800 !important;
	transition: transform .1s ease, box-shadow .1s ease, background-color .15s ease !important;
}
#place_order:is(:hover, :focus-visible) { background-color: #B62A67 !important; }
#place_order:active { transform: translateY(3px) !important; box-shadow: 0 1px 0 #A4235C !important; }
#somdn-form-submit-button:not(.hft-game-member *) {
	background-color: #D6337B !important; background-image: none !important; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important;
	border: 0 !important; border-radius: 999px !important; box-shadow: 0 4px 0 #A4235C !important;
	box-sizing: border-box !important; min-height: 52px !important;
}
#somdn-form-submit-button:not(.hft-game-member *):is(:hover, :focus-visible) { background-color: #B62A67 !important; }
#somdn-form-submit-button:not(.hft-game-member *):active { transform: translateY(3px) !important; box-shadow: 0 1px 0 #A4235C !important; }

/* ---------- SECONDARY (white, 2 px navy outline, flat) ---------- */
html body :is(
	.hft-btn--ghost, .hft-btn--navy, .hft-btn--white, .btn--ghost, .btn--navy, .btn--white, .hftn-btn--ghost, .hftn-btn--lib, .hft-school-btn,
	.hft-plan-cta--alt, .hft-fb-btn--ghost, .hft-ty-btn--ghost, .hft-mc-btn--ghost,
	.woocommerce a.button:not(.alt):not(.add_to_cart_button):not(.somdn-download-button):not(.somdn-download-archive):not(.checkout-button),
	.woocommerce button.button:not(.alt):not(.single_add_to_cart_button):not(.somdn-download-button),
	.hc-btn:not(.hc-btn--main):not(.hc-btn--danger), .hft-ed-btn, .hft-cls-assign, .hft-cls-copy, .hft-pdp-mbar-alt,
	.hft-game-member .somdn-download-button
) {
	background-color: #FFFFFF !important; background-image: none !important;
	color: #1B437D !important; -webkit-text-fill-color: #1B437D !important;
	border: 2px solid #1B437D !important; border-radius: 999px !important; box-shadow: none !important;
}
html body :is(
	.hft-btn--ghost, .hft-btn--navy, .hft-btn--white, .btn--ghost, .btn--navy, .btn--white, .hftn-btn--ghost, .hftn-btn--lib, .hft-school-btn,
	.hft-plan-cta--alt, .hft-fb-btn--ghost, .hft-ty-btn--ghost, .hft-mc-btn--ghost,
	.woocommerce a.button:not(.alt):not(.add_to_cart_button):not(.somdn-download-button):not(.somdn-download-archive):not(.checkout-button),
	.woocommerce button.button:not(.alt):not(.single_add_to_cart_button):not(.somdn-download-button),
	.hc-btn:not(.hc-btn--main):not(.hc-btn--danger), .hft-ed-btn, .hft-cls-assign, .hft-cls-copy, .hft-pdp-mbar-alt,
	.hft-game-member .somdn-download-button
):is(:hover, :focus-visible) {
	background-color: #1B437D !important; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; transform: none !important;
}
/* the game's offline Download for members is secondary, ID or not */
html body .hft-game-member #somdn-form-submit-button { background-color: #FFFFFF !important; color: #1B437D !important; -webkit-text-fill-color: #1B437D !important; border: 2px solid #1B437D !important; box-shadow: none !important; }

/* ---------- TRY FREE (white, navy outline, pink ▶, flat) ---------- */
html body :is(.hft-pdp-try, .hft-game-playbtn--try, .hft-tp-try, .hft-try-free) {
	background-color: #FFFFFF !important; color: #1B437D !important; -webkit-text-fill-color: #1B437D !important;
	border: 2px solid #1B437D !important; border-radius: 999px !important; box-shadow: none !important;
}
html body :is(.hft-pdp-try, .hft-game-playbtn--try, .hft-tp-try, .hft-try-free) svg { color: #D6337B !important; fill: #D6337B !important; }
html body :is(.hft-pdp-try, .hft-game-playbtn--try, .hft-tp-try, .hft-try-free):is(:hover, :focus-visible) { background-color: #1B437D !important; color: #FFFFFF !important; -webkit-text-fill-color: #FFFFFF !important; }

/* ---------- ONE HEIGHT: 52 px (#178) ---------- */
html body :is(
	.hft-btn, .btn--rose, .btn-rose, .btn--gold, .btn--ghost, .btn--navy, .btn--white, .b.gold, .hftn-btn--cta, .hftn-btn--ghost, .hftn-btn--lib, .hft-plan-cta,
	.hft-school-btn, .hft-fb-btn, .hft-pdp-btn--cta, .hft-fc-btn, .hft-fc-used-cta, .hft-fc-done-cta, .hft-bc-btn, .hft-bc-used-cta, .hft-bc-done-cta,
	.hft-ty-btn--cta, .hft-ty-btn--ghost, .hft-mc-btn--cta, .hft-mc-btn--ghost, .hft-favmc-btn--cta,
	.hft-nl-btn, .hft-cart-signup__cta, .hft-cart-upsell__cta, .hft-memhead-cta,
	.woocommerce a.button, .woocommerce button.button, .single_add_to_cart_button, .add_to_cart_button, .somdn-download-button,
	.somdn-download-archive, .checkout-button, .wc-block-components-checkout-place-order-button,
	.wp-element-button:not(.wp-block-search__button), .hc-btn:not(.hc-btn--sm), .hft-ed-cta, .hft-ed-btn, .hft-cls-assign, .hft-cls-copy,
	.hft-pdp-try, .hft-game-playbtn, .hft-tp-try, .hft-try-free
):not(:is(.hftn-hdr, .hftn-drawer, .hftn-dfoot, .woocommerce-message, .woocommerce-info, .woocommerce-error, table, .wp-block-search, .comment-form) *):not(.hftn-btn--sm) {
	box-sizing: border-box !important; min-height: 52px !important; height: auto !important;
	padding-top: 0 !important; padding-bottom: 0 !important; line-height: 1.15 !important;
	display: inline-flex; align-items: center; justify-content: center; text-align: center;
	font-size: 16px !important; font-weight: 800 !important;
}
/* Small where they sit in rows, tables and notices (review 6): compact 40 px, same colours. */
html body :is(table, .woocommerce-message, .woocommerce-info, .woocommerce-error) :is(.button, .somdn-download-button, .wp-element-button) {
	box-sizing: border-box !important; min-height: 40px !important; height: auto !important; padding: 0 18px !important;
	display: inline-flex; align-items: center; justify-content: center; font-size: 14px !important; line-height: 1.1 !important;
}
html body .hc-btn--sm { min-height: 40px !important; font-size: 14px !important; }
/* The popup's link holds a main line + a small line → no fixed height, just at least 52 px (review 1). */
html body .hft-pop-cta { min-height: 52px !important; height: auto !important; }
html body :is(.wc-block-components-checkout-place-order-button, .checkout-button) { display: flex !important; width: 100% !important; } /* #place_order: own rule above */
/* keyboard focus ring everywhere */
html body :is(.hft-btn, .hftn-btn, .hft-fb-btn, .hft-plan-cta, .woocommerce .button, .hc-btn, .hft-ed-cta, .hft-ed-btn, .hft-pdp-try, .hft-game-playbtn, .hft-tp-try, .hft-card-btn, .hft-pop-cta):focus-visible,
#place_order:focus-visible {
	outline: 3px solid #1B437D !important; outline-offset: 3px !important;
}

/* 1.0.323 (Mark #179): no price on result cards for anyone (SAF 0.6.91 stops printing it; this covers an older SAF). */
html body .hft-card .hft-card-price { display: none !important; }
