/*
Theme Name: King Erlea
Theme URI: https://kingerleahairworld.com
Description: Child theme of Twenty Twenty-Five for King Erlea, luxury braided wigs. Black and pink. Shop, category, product and search templates, homepage pattern, content pages. v0.6: quieter, letter-spaced typography.
Author: King Erlea
Template: twentytwentyfive
Version: 0.6.0
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: king-erlea
*/

/* ---------- Image tile ----------
   Product photos sit in a tile. While photos have light backgrounds, the tile is
   light and the image multiplies into it, so white backdrops disappear.
   When photos are reshot on dark backdrops, change the two values below to
   --ke-tile: transparent; and --ke-tile-blend: normal; and nothing else. */
:root {
	--ke-tile: var(--wp--preset--color--tile);
	--ke-tile-blend: multiply;
}
.wc-block-components-product-image,
.wp-block-woocommerce-product-image,
.woocommerce-product-gallery__image,
.wc-block-product-gallery-large-image,
.ke-tile {
	background: var(--ke-tile);
}
.wc-block-components-product-image img,
.wp-block-woocommerce-product-image img,
.woocommerce-product-gallery__image img,
.wc-block-product-gallery-large-image img,
.ke-tile img {
	mix-blend-mode: var(--ke-tile-blend);
}

/* ---------- Announcement bar ---------- */
.ke-announcement { padding: 0.7rem 1.5rem; }
.ke-announcement .ke-ann {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.65rem;
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ke-announcement .ke-ann::before {
	content: "";
	flex: none;
	width: 1.1rem;
	height: 1.1rem;
	background: var(--wp--preset--color--on-primary);
	-webkit-mask: var(--ke-icon) no-repeat center / contain;
	mask: var(--ke-icon) no-repeat center / contain;
}
.ke-ann--ship {
	--ke-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7h11v9H3z'/%3E%3Cpath d='M14 10h4l3 3v3h-7z'/%3E%3Ccircle cx='7' cy='18' r='1.6'/%3E%3Ccircle cx='17' cy='18' r='1.6'/%3E%3C/svg%3E");
}
.ke-ann--made {
	--ke-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E");
}
.ke-ann--world {
	--ke-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M3 12h18'/%3E%3Cpath d='M12 3c3 3.2 3 14.8 0 18'/%3E%3Cpath d='M12 3c-3 3.2-3 14.8 0 18'/%3E%3C/svg%3E");
}

/* ---------- Header: menu left, wordmark centred, actions right ---------- */
.ke-header {
	padding: 0 1.5rem;
	border-bottom: 1px solid var(--wp--preset--color--line);
}
.ke-header-inner {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 1rem;
	min-height: 84px;
}
.ke-wordmark { margin: 0; text-align: center; }
.ke-wordmark a { text-decoration: none; }
.ke-header-actions { justify-content: flex-end; gap: 0.25rem; }
.ke-menu .wp-block-navigation__responsive-container-open,
.ke-header-actions button,
.ke-header-actions a {
	min-width: 44px;
	min-height: 44px;
}
.ke-menu .wp-block-navigation__responsive-container-open,
.ke-header-actions .wp-block-search__button,
.ke-header-actions .wc-block-mini-cart__button,
.ke-header-actions .wc-block-customer-account a {
	color: var(--wp--preset--color--foreground);
}
.wc-block-mini-cart__badge {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}
.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base-deep);
	color: var(--wp--preset--color--foreground);
}

/* ---------- Footer ---------- */
.ke-footer { padding: 4rem 1.5rem 1.75rem; }
.ke-footer a { color: var(--wp--preset--color--text-soft); text-decoration: none; }
.ke-footer a:hover { color: var(--wp--preset--color--primary-bright); }
.ke-footer .ke-footer-h {
	margin: 0 0 0.9rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	color: var(--wp--preset--color--primary);
}
.ke-footer .ke-footer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; font-size: 0.875rem; }
.ke-footer .ke-footer-script {
	margin: 0 0 0.75rem;
	font-family: var(--wp--preset--font-family--script);
	font-size: 2.9rem;
	line-height: 1;
	color: var(--wp--preset--color--primary);
}
.ke-footer .ke-footer-tagline {
	margin: 0;
	font-size: 0.75rem;
	letter-spacing: 0.28em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-soft);
}
.ke-footer .ke-footer-legal {
	margin-top: 3rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--wp--preset--color--line);
	font-size: 0.8125rem;
	color: var(--wp--preset--color--muted);
}
.ke-footer .ke-footer-legal p { margin: 0; }

/* ---------- Availability badges (used by shop and product templates later) ---------- */
.ke-badge {
	display: inline-block;
	padding: 0.3rem 0.6rem;
	border: 1px solid var(--wp--preset--color--primary);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.ke-badge--ready { background: var(--wp--preset--color--base); color: var(--wp--preset--color--primary); }
.ke-badge--made { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--on-primary); }

/* ---------- Focus and motion ---------- */
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--primary-bright);
	outline-offset: 3px;
}
.has-primary-background-color :where(a, button):focus-visible {
	outline-color: var(--wp--preset--color--on-primary);
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* ---------- Small screens ---------- */
@media (max-width: 720px) {
	.ke-announcement .ke-ann { font-size: 0.6875rem; letter-spacing: 0.1em; }
	.ke-header-inner { min-height: 68px; }
}

/* ---------- Header icon buttons: no boxes, outlines or default button chrome ---------- */
.ke-header-actions .wp-block-search__inside-wrapper {
	border: 0;
	padding: 0;
	min-width: 0;
	background: transparent;
}
.ke-header-actions .wp-block-search__button,
.ke-header-actions .wc-block-mini-cart__button,
.ke-header-actions .wc-block-customer-account a,
.ke-menu .wp-block-navigation__responsive-container-open {
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.ke-header-actions .wp-block-search__button:hover,
.ke-header-actions .wc-block-mini-cart__button:hover {
	background: transparent;
	color: var(--wp--preset--color--primary-bright);
}

/* ---------- Shop, category and search pages ---------- */
.ke-main { padding-bottom: 5rem; }
.ke-breadcrumbs { padding-top: 1.4rem; font-size: 0.8125rem; color: var(--wp--preset--color--muted); }
.ke-breadcrumbs a { color: var(--wp--preset--color--muted); }
.ke-archive-intro { padding: 2.5rem 0 2rem; text-align: center; }
.ke-eyebrow {
	margin: 0 0 0.5rem;
	font-size: 0.75rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
}
.ke-archive-intro h1 { margin: 0; }
.ke-archive-lede {
	margin: 0.75rem auto 0;
	max-width: 560px;
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: 1.375rem;
	line-height: 1.4;
	color: var(--wp--preset--color--text-soft);
}
.ke-toolbar {
	padding: 0.9rem 0;
	margin-bottom: 2rem;
	border-top: 1px solid var(--wp--preset--color--line);
	border-bottom: 1px solid var(--wp--preset--color--line);
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
}
.ke-toolbar select {
	min-height: 44px;
	padding: 0 0.9rem;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 0;
}
.ke-card { display: flex; flex-direction: column; gap: 0.5rem; }
.ke-card-image { border: 1px solid var(--wp--preset--color--line); }
.ke-card-title { margin: 0; font-family: var(--wp--preset--font-family--body); font-weight: 500; letter-spacing: 0; text-transform: none; text-align: center; }
.ke-card .wp-block-woocommerce-product-price { text-align: center; }
.ke-card-button .wp-block-button__link,
.ke-card-button .wp-element-button {
	width: 100%;
	text-align: center;
	background: transparent;
	color: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
}
.ke-card-button .wp-block-button__link:hover,
.ke-card-button .wp-element-button:hover {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
}
.ke-availability { margin: 0; text-align: center; }
.ke-product-summary .ke-availability { text-align: left; }
.ke-availability-detail { margin-left: 0.5rem; font-size: 0.8125rem; color: var(--wp--preset--color--muted); }
.wp-block-query-pagination { margin-top: 3rem; gap: 0.5rem; }
.wp-block-query-pagination-numbers .page-numbers,
.wp-block-query-pagination-previous,
.wp-block-query-pagination-next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	border: 1px solid var(--wp--preset--color--line-strong);
}
.wp-block-query-pagination-numbers .page-numbers.current {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--on-primary);
	font-weight: 600;
}

/* ---------- Product page ---------- */
.ke-product { gap: 3rem; padding-top: 1.5rem; }
.ke-product-summary > * + * { margin-top: 1rem; }
.ke-trust-list {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 1.25rem 0 0;
	border-top: 1px solid var(--wp--preset--color--line);
	display: grid;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--text-soft);
}
.ke-details { margin-top: 3rem; }
.ke-related { margin-top: 4rem; }
.single-product .quantity .qty,
.wc-block-components-quantity-selector {
	background: transparent;
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 0;
}
.single-product table.variations select,
.single-product .variations select {
	min-height: 44px;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--foreground);
	border: 1px solid var(--wp--preset--color--line-strong);
	border-radius: 0;
}
.woocommerce-tabs ul.tabs { padding-left: 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.woocommerce-tabs ul.tabs li a { color: var(--wp--preset--color--muted); }
.woocommerce-tabs ul.tabs li.active a { color: var(--wp--preset--color--primary); }

@media (max-width: 781px) {
	.ke-product { gap: 1.5rem; }
}

/* ---------- Homepage ---------- */
.ke-home { padding-bottom: 0; }
.ke-script {
	font-family: var(--wp--preset--font-family--script);
	font-weight: 400;
	font-size: 1.15em;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--primary);
}
.ke-hero { position: relative; padding: 6rem 1.5rem; overflow: hidden; }
.ke-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background:
		radial-gradient(60% 55% at 50% 38%, rgba(224, 53, 143, 0.22) 0%, rgba(224, 53, 143, 0) 70%),
		radial-gradient(40% 40% at 88% 92%, rgba(224, 53, 143, 0.10) 0%, rgba(224, 53, 143, 0) 70%);
}
.ke-hero .wp-block-cover__inner-container { position: relative; z-index: 2; }
.ke-hero h1 { max-width: 15ch; margin: 0 auto; line-height: 1.02; }
.ke-hero .ke-eyebrow { margin-bottom: 1.5rem; }
.ke-hero-lede {
	max-width: 520px;
	margin: 1.75rem auto 2.25rem;
	font-family: var(--wp--preset--font-family--display);
	font-style: italic;
	font-size: 1.4rem;
	line-height: 1.45;
	color: var(--wp--preset--color--text-soft);
}
.ke-section { padding-top: 5.5rem; }
.ke-section h2 { margin: 0 0 2.5rem; }

/* Category tiles: one large, four small, so the grid has rhythm */
.ke-tiles {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: repeat(2, 250px);
	gap: 1.25rem;
	counter-reset: tile;
}
.ke-tiles > .ke-tile-cover:nth-child(1) { grid-column: 1 / span 2; grid-row: 1 / span 2; }
.ke-tile-cover {
	position: relative;
	min-height: 0 !important;
	padding: 1.75rem;
	border: 1px solid var(--wp--preset--color--line);
	counter-increment: tile;
	overflow: hidden;
}
.ke-tile-cover .wp-block-cover__background {
	background-image: radial-gradient(90% 80% at 15% 100%, rgba(224, 53, 143, 0.18) 0%, rgba(224, 53, 143, 0) 65%);
}
.ke-tile-title { margin: 0; font-size: 1.75rem; line-height: 1.1; }
.ke-tile-title::before {
	content: "0" counter(tile);
	display: block;
	margin-bottom: 0.6rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.25em;
	color: var(--wp--preset--color--primary);
}
.ke-tile-title::after {
	content: "Shop now →";
	display: block;
	margin-top: 0.75rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}
.ke-tiles > .ke-tile-cover:nth-child(1) .ke-tile-title { font-size: 2.5rem; }
.ke-tile-title a { color: var(--wp--preset--color--foreground); text-decoration: none; }
.ke-tile-title a::after { content: ""; position: absolute; inset: 0; }
.ke-tile-cover:hover, .ke-tile-cover:focus-within { border-color: var(--wp--preset--color--primary); }
.ke-tile-cover:hover .ke-tile-title::after, .ke-tile-cover:focus-within .ke-tile-title::after { color: var(--wp--preset--color--primary); }
.ke-tile-title a:hover { color: var(--wp--preset--color--foreground); text-decoration: none; }

/* Product grids: cards centred, so one or two products do not hug the left edge */
.ke-product-grid .wc-block-product-template,
.ke-product-grid .wp-block-post-template {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2.25rem 1.5rem;
}
.ke-product-grid .wc-block-product-template > li,
.ke-product-grid .wp-block-post-template > li {
	flex: 0 1 calc(25% - 1.125rem);
	min-width: 210px;
	max-width: 320px;
}

.ke-ways { gap: 1.25rem; }
.ke-way { padding: 2.25rem; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); }
.ke-way h3 { margin: 1.1rem 0 0.6rem; font-size: 1.75rem; }
.ke-way p { color: var(--wp--preset--color--text-soft); }
.ke-band { margin-top: 6rem; padding: 5.5rem 1.5rem; text-align: center; border-top: 1px solid var(--wp--preset--color--line); background-image: radial-gradient(50% 90% at 50% 0%, rgba(224, 53, 143, 0.14), rgba(224, 53, 143, 0) 70%); }
.ke-band-script { margin: 0; font-family: var(--wp--preset--font-family--script); font-size: clamp(3.5rem, 2.4rem + 4.5vw, 5.5rem); line-height: 1; color: var(--wp--preset--color--primary); }
.ke-band-line { margin: 1.1rem 0 2rem; font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: 1.65rem; color: var(--wp--preset--color--text-soft); }

@media (max-width: 900px) {
	.ke-tiles { grid-template-columns: repeat(2, 1fr); grid-template-rows: none; grid-auto-rows: 220px; }
	.ke-tiles > .ke-tile-cover:nth-child(1) { grid-column: 1 / span 2; grid-row: auto; }
}
@media (max-width: 520px) {
	.ke-tiles { grid-template-columns: 1fr; }
	.ke-tiles > .ke-tile-cover:nth-child(1) { grid-column: auto; }
	.ke-hero { padding: 4rem 1.25rem; }
}

/* ---------- Content pages (Stage 4) ---------- */
.ke-page { padding-bottom: 5rem; }
.ke-page-head { padding: 3.5rem 0 2rem; text-align: center; }
.ke-page-head h1 { margin: 0; }
.ke-page-body { font-size: 1.0625rem; line-height: 1.75; color: var(--wp--preset--color--text-soft); }
.ke-page-body h2 { margin: 2.75rem 0 0.75rem; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); color: var(--wp--preset--color--foreground); }
.ke-page-body h3 { margin: 2rem 0 0.5rem; font-size: 1.3rem; color: var(--wp--preset--color--foreground); }
.ke-page-body a { color: var(--wp--preset--color--primary); text-decoration: underline; text-underline-offset: 3px; }
.ke-page-body a:hover { color: var(--wp--preset--color--primary-bright); }
.ke-page-body ul, .ke-page-body ol { padding-left: 1.25rem; }
.ke-page-body li { margin-bottom: 0.5rem; }
.ke-lede { font-family: var(--wp--preset--font-family--display); font-style: italic; font-size: 1.5rem; line-height: 1.45; color: var(--wp--preset--color--foreground); text-align: center; }
.ke-page-body table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.ke-page-body th, .ke-page-body td { padding: 0.75rem 0.9rem; text-align: left; border: 1px solid var(--wp--preset--color--line); }
.ke-page-body th { background: var(--wp--preset--color--surface); color: var(--wp--preset--color--foreground); font-weight: 600; }
.ke-steps { list-style: none; counter-reset: step; padding-left: 0 !important; display: grid; gap: 1rem; }
.ke-steps li { counter-increment: step; position: relative; padding: 1.25rem 1.25rem 1.25rem 4.25rem; margin: 0; background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--line); }
.ke-steps li::before { content: counter(step); position: absolute; left: 1.25rem; top: 1.1rem; width: 2.2rem; height: 2.2rem; display: flex; align-items: center; justify-content: center; border: 1px solid var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); font-weight: 600; }
.ke-steps strong { display: block; color: var(--wp--preset--color--foreground); }
.wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 1rem 0; }
.wp-block-details summary { cursor: pointer; font-weight: 600; color: var(--wp--preset--color--foreground); min-height: 44px; display: flex; align-items: center; }
.wp-block-details[open] summary { color: var(--wp--preset--color--primary); }
.wp-block-details p { margin: 0.5rem 0 0; }
/* Placeholders that still need a client answer. Remove a highlight by editing the text. */
.ke-confirm { background: rgba(224, 53, 143, 0.14); color: var(--wp--preset--color--primary-bright); padding: 0.05em 0.35em; border: 1px dashed var(--wp--preset--color--primary); }

/* =====================================================================
   v0.6: quieter, letter-spaced typography (Chiquel-style restraint).
   Section headings (h2) are small, uppercase and widely spaced; this is set
   in theme.json. The rules below handle the menu, product cards, prices and
   long-form pages. They are CSS only, so the Home page already saved in the
   database picks them up without being rebuilt.
   ===================================================================== */

/* Slide-out menu: small spaced capitals, no bold */
.ke-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 1.35rem;
}
.ke-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--foreground);
}
.ke-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--primary-bright);
	text-decoration: none;
}

/* Product grids: more air between cards */
.ke-product-grid .wc-block-product-template,
.ke-product-grid .wp-block-post-template {
	gap: 3.25rem 1.75rem;
}
.ke-product-grid .wc-block-product-template > li,
.ke-product-grid .wp-block-post-template > li {
	flex-basis: calc(25% - 1.3125rem);
}

/* Product cards: photo, name, availability, price. No borders. */
.ke-card { gap: 0.4rem; }
.ke-card > .ke-card-image { order: 0; border: 0; margin-bottom: 0.85rem; }
.ke-card > .ke-card-title { order: 1; }
.ke-card > .ke-availability { order: 2; }
.ke-card > .wp-block-woocommerce-product-price { order: 3; }
.ke-card > .ke-card-button { order: 4; margin-top: 0.6rem; }

.ke-card-title,
.ke-related .wp-block-post-title {
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8125rem !important;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.ke-card-title a,
.ke-related .wp-block-post-title a { color: var(--wp--preset--color--foreground); text-decoration: none; }
.ke-card-title a:hover,
.ke-related .wp-block-post-title a:hover { color: var(--wp--preset--color--primary-bright); text-decoration: none; }

/* On cards the availability badge becomes a quiet line of tiny capitals,
   where Chiquel shows the brand. The full badge stays on the product page. */
.ke-card .ke-badge {
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--muted);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.16em;
}

/* Prices: pink, regular weight; crossed-out sale price muted */
.ke-card .wp-block-woocommerce-product-price,
.ke-related .wp-block-woocommerce-product-price { font-size: 0.9375rem !important; }
.wc-block-components-product-price del,
.wc-block-components-product-price del .amount {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}
.wc-block-components-product-price ins { text-decoration: none; }

/* Card button: smaller and quieter. On devices with a mouse it appears on hover
   or keyboard focus; on phones and tablets it is always visible. */
.ke-card-button .wp-block-button__link,
.ke-card-button .wp-element-button {
	padding: 0.75rem 1rem;
	font-size: 0.6875rem;
}
@media (hover: hover) and (pointer: fine) {
	.ke-card > .ke-card-button {
		opacity: 0;
		transform: translateY(4px);
		transition: opacity 0.25s ease, transform 0.25s ease;
	}
	.ke-card:hover > .ke-card-button,
	.ke-card:focus-within > .ke-card-button {
		opacity: 1;
		transform: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.ke-card > .ke-card-button { transition: none; transform: none; }
}

/* Long-form pages (policies, guides) keep readable sentence-case subheadings */
.ke-page-body h2 {
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: 0.005em;
	text-transform: none;
}

/* Footer column headings were already small caps; match the regular weight */
.ke-footer .ke-footer-h { font-weight: 500; }
