/*
Theme Name: Caddy 2026
Theme URI: https://usecaddy.com
Description: Caddy site theme — Refinery-modeled design system adapted for Easy Digital Downloads. Child of GeneratePress; all site logic lives in the caddy-custom plugin.
Author: Mike Valera / Tribe Interactive
Author URI: https://madebytribe.com
Template: generatepress
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: caddy-2026
*/

/* ============================================
   FONTS
   Refinery's type system: system-ui display/body,
   Geist Mono (Google, enqueued in inc/setup.php),
   Perfectly Nineties serif for accents.
   (The plugin's fonts.css still loads Nudge/Mace/Rel
   globally for legacy GB pages.)
   ============================================ */

@font-face {
	font-family: 'Perfectly Nineties';
	src: url('assets/fonts/perfectlynineties-regular-webfont.woff2') format('woff2'),
		url('assets/fonts/perfectlynineties-regular-webfont.woff') format('woff');
	font-weight: normal;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Perfectly Nineties';
	src: url('assets/fonts/perfectlynineties-italic-webfont.woff2') format('woff2'),
		url('assets/fonts/perfectlynineties-italic-webfont.woff') format('woff');
	font-weight: normal;
	font-style: italic;
	font-display: swap;
}

/* Geist Mono (SIL OFL, via vercel/geist-font) — self-hosted variable font.
   Without this, --caddy-font-mono only worked on machines with Geist Mono
   installed locally; production visitors got ui-monospace fallbacks. */
@font-face {
	font-family: 'Geist Mono';
	src: url('assets/fonts/GeistMono-Variable.woff2') format('woff2-variations');
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

/* ============================================
   CSS VARIABLES
   ============================================ */

:root {
	--caddy-bg-deep: #ffffff;
	--caddy-bg-primary: #ffffff;
	--caddy-bg-elevated: #f7f7f7;
	--caddy-bg-card: #ffffff;
	--caddy-bg-card-hover: #faf9ff;
	--caddy-bg-surface: #f5f5f5;

	--caddy-bg-inverted: #0a0a0a;
	--caddy-primary: #5e4ccf;
	--caddy-primary-hover: #4d3cb8;
	--caddy-on-primary: #ffffff;

	--caddy-accent-lime: #e5ff80;
	--caddy-accent-purple: #b4a8fd;
	--caddy-accent-blue: #a8f5fd;
	--caddy-gradient: linear-gradient(294deg, #6d6cf4, #fed0b9);

	--caddy-text-primary: #111111;
	--caddy-text-secondary: #444444;
	--caddy-text-muted: #777777;
	--caddy-text-faint: #999999;

	--caddy-border-subtle: #f0f0f0;
	--caddy-border: #e5e5e5;
	--caddy-border-strong: #d0d0d0;
	--caddy-border-hover: #999999;

	--caddy-font-display: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	--caddy-font-body: system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
	--caddy-font-mono: 'Geist Mono', ui-monospace, monospace;
	--caddy-font-accent: 'Perfectly Nineties', serif;

	--caddy-container: 1280px;
	--caddy-container-narrow: 750px;
	--caddy-gutter: 24px;

	--caddy-radius: 10px;
	--caddy-radius-lg: 12px;

	/* Type scale — h1. Display size is homepage-only; every other page h1
	   uses --caddy-h1-size (see _docs/styleguide.md). */
	--caddy-h1-display: clamp(2.5rem, 5.5vw, 4rem);
	--caddy-h1-size: clamp(2.25rem, 4.5vw, 3.5rem);

	/* Buttons — the .caddy-btn recipe. Any button-shaped element
	   (EDD submits, opt-ins, CTAs) uses these. */
	--caddy-btn-radius: 8px;
	--caddy-btn-font-size: 0.85rem;
	--caddy-btn-padding: 11px 24px;

	/* Form inputs — text/email/password/textarea/select recipe.
	   Focus state: border-color primary + 1px primary outline. */
	--caddy-input-padding: 11px 14px;
	--caddy-input-radius: 8px;
	--caddy-input-font-size: 0.95rem;
}

/* ============================================
   BOX-SIZING RESET (scoped)
   This site has no global border-box reset (legacy
   GB pages assume content-box), but every Refinery
   component sizes width+padding as border-box.
   Scope the reset to theme components only.
   ============================================ */

[class*="caddy-"],
[class*="caddy-"]::before,
[class*="caddy-"]::after,
[class*="caddy-"] input,
[class*="caddy-"] button,
[class*="caddy-"] select,
[class*="caddy-"] textarea {
	box-sizing: border-box;
}

/* GP's inline customizer CSS sets `body, button, input, select, textarea
   { font-family: "Open Sans" }`. Body is out-cascaded by core.css/theme
   rules, but bare form elements would surface Open Sans — make them follow
   their surroundings instead (matches GP's own normalize). */
button,
input,
select,
textarea {
	font-family: inherit;
}

/* ============================================
   HOMEPAGE — BASE RESET
   ============================================ */

/* Break full-width pages out of GeneratePress containers */
.has-caddy-homepage .site-content,
.has-caddy-homepage .inside-article,
.has-caddy-homepage .separate-containers .inside-article,
.has-caddy-homepage .entry-content,
.has-caddy-homepage .site-main > .page,
.has-caddy-homepage #content {
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
}

/* GP's grid-container (customizer 1300px) is uncapped on EVERY view: the
   theme header is full-bleed and centers its inner at --caddy-container, so
   any content centered inside a 1300px container sits off-axis at viewports
   wider than 1300px. Per-view rules below own the real content widths. */
.site.grid-container {
	max-width: none !important;
}

/* GP separate-containers gives .site-content horizontal padding + 100% width;
   with the container uncapped that shifts centering and overflows the
   viewport. Neutralize the horizontal axis only. */
body:not(.has-caddy-homepage) .site-content {
	box-sizing: border-box;
	padding-left: 0;
	padding-right: 0;
	margin-left: 0;
	margin-right: 0;
}

/* Fallback for GP-rendered system views (thank-you, invoice, payment pages…)
   that have no view-specific .site-main rule. Low-priority on purpose: placed
   early so every later view rule (blog grid, post prose, auth card, account,
   confirmation) wins the tie. */
body:not(.has-caddy-homepage) .site-main {
	box-sizing: border-box;
	max-width: var(--caddy-container);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--caddy-gutter);
	padding-right: var(--caddy-gutter);
}

.has-caddy-homepage .page-header,
.has-caddy-homepage .entry-header {
	display: none;
}

.caddy-homepage {
	background-color: var(--caddy-bg-primary);
	color: var(--caddy-text-secondary);
	font-family: var(--caddy-font-body);
	font-weight: 400;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Hide GeneratePress page header on front page */
body.home .page-header,
body.home .entry-header {
	display: none;
}

/* Hide GP header (replaced by custom header) — gated on the body class the
   custom header renderer adds. Caddy uses GP's nav-as-header layout, so the
   floating .main-navigation and mobile header are covered too. */
body.has-caddy-header .site-header,
body.has-caddy-header #site-navigation.main-navigation,
body.has-caddy-header #mobile-header {
	display: none !important;
}

/* GP renders generate_footer output inside .site-footer — hide only GP's own
   footer widgets/info bar, not our custom footer. */
body.has-caddy-header .site-footer .footer-widgets,
body.has-caddy-header .site-footer .site-info {
	display: none !important;
}


/* ============================================
   CUSTOM HEADER
   ============================================ */

.caddy-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background-color: var(--caddy-bg-primary);
	border-bottom: 1px solid var(--caddy-border);
}

.admin-bar .caddy-header {
	top: 0;
}

/* ============================================
   STICKY SCROLL CTA BAR
   Slides down below the header on scroll
   (header.js toggles .is-visible). Awesome-Motive
   style: logo · message · button · features link.
   ============================================ */
.caddy-sticky-cta {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 200;
	background-color: var(--caddy-bg-primary);
	border-bottom: 1px solid var(--caddy-border);
	box-shadow: 0 4px 20px rgba(17, 17, 17, 0.06);
	transform: translateY(-100%);
	transition: transform 0.3s ease;
	will-change: transform;
}

.caddy-sticky-cta.is-visible {
	transform: translateY(0);
}

.admin-bar .caddy-sticky-cta {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .caddy-sticky-cta {
		top: 46px;
	}
}

.caddy-sticky-cta-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 10px var(--caddy-gutter);
	height: 64px;
	display: flex;
	align-items: center;
	gap: 24px;
	box-sizing: border-box;
}

.caddy-sticky-cta-logo {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}

.caddy-sticky-cta-logo .caddy-logo-img {
	width: 80px;
	height: auto;
}

.caddy-sticky-cta-message {
	flex: 1 1 auto;
	margin: 0;
	text-align: center;
	font-size: 1.0625rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--caddy-text-primary);
}

.caddy-sticky-cta-message .caddy-accent {
	font-family: var(--caddy-font-accent);
	font-style: italic;
	font-weight: 400;
	font-size: 115%;
	color: var(--caddy-primary);
}

.caddy-sticky-cta-actions {
	display: inline-flex;
	align-items: center;
	gap: 20px;
	flex-shrink: 0;
}

/* Button uses the header's .caddy-nav-cta component; clear its left margin */
.caddy-sticky-cta-btn {
	margin-left: 0;
}

.caddy-sticky-cta-link {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--caddy-primary);
	text-decoration: none;
	white-space: nowrap;
}

.caddy-sticky-cta-link:hover,
.caddy-sticky-cta-link:focus {
	color: var(--caddy-primary-hover);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Tablet: drop the features link, keep message + button */
@media (max-width: 900px) {
	.caddy-sticky-cta-link {
		display: none;
	}

	.caddy-sticky-cta-message {
		font-size: 1rem;
	}
}

/* Mobile: logo + button only (message hidden — too cramped) */
@media (max-width: 600px) {
	.caddy-sticky-cta-inner {
		gap: 12px;
		justify-content: space-between;
	}

	.caddy-sticky-cta-message {
		display: none;
	}
}

.caddy-header-inner {
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding: 0 var(--caddy-gutter);
	height: 64px;
	display: flex;
	align-items: center;
	gap: 32px;
}

.caddy-header-logo {
	display: flex;
	align-items: center;
	flex: 1;
	text-decoration: none;
}

.caddy-header-logo img {
	height: 35px;
	width: auto;
	display: block;
	margin-top: 5px;
}

/* Single black logo PNG — dark mode inverts it to white. */
[data-theme="dark"] .caddy-logo-img,
html.is-dark-theme .caddy-logo-img {
	filter: brightness(0) invert(1);
}

.caddy-header-nav {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	flex-shrink: 0;
}

.caddy-nav-cta {
	display: inline-flex;
	align-items: center;
	padding: 7px 14px;
	margin-left: 4px;
	font-family: var(--caddy-font-mono);
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--caddy-on-primary);
	background-color: var(--caddy-primary);
	border-radius: var(--caddy-btn-radius);
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.15s ease;
}

.caddy-nav-cta:hover {
	background-color: var(--caddy-primary-hover);
	/* pinned: GP's global `a:hover` color rule outranks .caddy-nav-cta */
	color: var(--caddy-on-primary);
}

@media (max-width: 768px) {
	.caddy-nav-cta {
		display: none;
	}
}

/* The sticky-CTA button shares .caddy-nav-cta (hidden on mobile for the header
   nav). Keep it visible so the scroll CTA isn't just a logo on mobile. */
.caddy-sticky-cta-btn {
	display: inline-flex;
}

/* Bar-level header CTA: hidden on desktop (the in-nav CTA shows there), shown
   on mobile where the nav collapses into the hamburger. */
.caddy-header-cta-mobile {
	display: none;
}

@media (max-width: 768px) {
	.caddy-header-cta-mobile {
		display: inline-flex;
	}
}

.caddy-nav-menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 8px;
}

.caddy-nav-menu li a {
	display: block;
	padding: 8px 16px;
	font-size: 0.88rem;
	font-weight: 500;
	color: var(--caddy-text-secondary);
	text-decoration: none;
	border-radius: 8px;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.caddy-nav-menu li a:hover,
.caddy-nav-menu li.current-menu-item > a {
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

/* Nav sub-menu dropdowns (Support, etc.) */
.caddy-nav-menu li.menu-item-has-children {
	position: relative;
}

.caddy-nav-menu li.menu-item-has-children > a > .caddy-nav-chevron {
	width: 14px;
	height: 14px;
	margin-left: 4px;
	vertical-align: middle;
	position: relative;
	top: -1px;
	transition: transform 0.15s ease;
}

.caddy-nav-menu .sub-menu {
	position: absolute;
	top: calc(100% + 6px);
	left: 50%;
	transform: translateX(-50%) translateY(4px);
	min-width: 180px;
	padding: 6px;
	list-style: none;
	margin: 0;
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	border-radius: 10px;
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.caddy-nav-menu .sub-menu::before {
	content: '';
	position: absolute;
	top: -6px;
	left: 0;
	right: 0;
	height: 6px;
}

.caddy-nav-menu li.menu-item-has-children.caddy-submenu-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.caddy-nav-menu li.menu-item-has-children.caddy-submenu-open > a > .caddy-nav-chevron {
	transform: rotate(180deg);
}

.caddy-nav-menu .sub-menu li a {
	display: block;
	padding: 8px 12px;
	font-size: 0.8125rem;
	border-radius: 6px;
}

/* Don't apply caddy-has-mega chevron to Support — it already gets one from menu-item-has-children */
.caddy-nav-menu li.menu-item-has-children.caddy-has-mega > a::after {
	display: none;
}

/* Hide mobile-only product sub-menu on desktop */
.caddy-mobile-submenu {
	display: none;
}

/* Products mega dropdown */
.caddy-products-mega {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(4px);
	width: 820px;
	padding: 16px;
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	border-radius: 12px;
	z-index: 1000;
	margin-top: 8px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

/* Chevron on Products link */
.caddy-nav-chevron {
	width: 14px;
	height: 14px;
	margin-left: 4px;
	vertical-align: middle;
	transition: transform 0.15s ease;
	position: relative;
	top: -1px;
}

/* Show on click via aria-expanded */
.caddy-header-nav.caddy-mega-open .caddy-products-mega {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

.caddy-header-nav.caddy-mega-open .caddy-has-mega > a > .caddy-nav-chevron {
	transform: rotate(180deg);
}

.caddy-mega-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2px;
}

.caddy-mega-item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 8px;
	text-decoration: none;
	transition: background-color 0.1s ease;
}

.caddy-mega-item:hover {
	background-color: var(--caddy-bg-elevated);
}

.caddy-mega-icon {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	margin-top: 2px;
}

[data-theme="dark"] .caddy-mega-icon {
	filter: invert(1);
}

@media (prefers-color-scheme: dark) {
	html:not([data-theme]) .caddy-mega-icon {
		filter: invert(1);
	}
}

.caddy-mega-icon-placeholder {
	display: block;
	width: 20px;
	height: 20px;
	border-radius: 4px;
	background-color: var(--caddy-bg-elevated);
}

.caddy-mega-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.caddy-mega-name {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	line-height: 1.3;
}

.caddy-mega-desc {
	font-size: 0.75rem;
	color: var(--caddy-text-muted);
	line-height: 1.4;
}

/* Anchor the mega panel to the sticky header, not the menu item —
   li.menu-item-has-children is position:relative, which would center
   the 820px panel on the Features link and clip the viewport edge. */
.caddy-nav-menu li.caddy-has-mega {
	position: static;
}

/* "View all features" footer row */
.caddy-mega-all {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 10px;
	padding: 10px 12px 4px;
	border-top: 1px solid var(--caddy-border-subtle);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--caddy-primary);
	text-decoration: none;
}

.caddy-mega-all:hover {
	color: var(--caddy-primary-hover);
	text-decoration: none;
}

.caddy-mega-footer {
	margin-top: 8px;
	padding-top: 10px;
	border-top: 1px solid var(--caddy-border);
	text-align: center;
}

.caddy-mega-view-all {
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--caddy-text-secondary);
	text-decoration: none;
	transition: color 0.15s ease;
}

.caddy-mega-view-all:hover {
	color: var(--caddy-text-primary);
}

/* Hide mega dropdown on mobile */
@media (max-width: 768px) {
	.caddy-products-mega {
		visibility: hidden !important;
		opacity: 0 !important;
	}
}

.caddy-header-actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	flex: 1;
}

.caddy-theme-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border: none;
	background: none;
	border-radius: 8px;
	color: var(--caddy-text-muted);
	cursor: pointer;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.caddy-theme-toggle:hover {
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

/* Theme icon visibility */
.caddy-theme-toggle svg {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

.caddy-theme-icon-light,
.caddy-theme-icon-dark,
.caddy-theme-icon-system {
	display: none;
}

/* System mode (no data-theme): show monitor */
html:not([data-theme]) .caddy-theme-icon-system {
	display: block;
}

/* Light mode: show sun */
[data-theme="light"] .caddy-theme-icon-light {
	display: block;
}

/* Dark mode: show moon */
[data-theme="dark"] .caddy-theme-icon-dark {
	display: block;
}

.caddy-header-cart {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 36px;
	height: 36px;
	border-radius: 8px;
	color: var(--caddy-text-muted);
	text-decoration: none;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.caddy-header-cart:hover {
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

.caddy-cart-count {
	position: absolute;
	top: 2px;
	right: 2px;
	background-color: var(--caddy-bg-inverted);
	color: #ffffff;
	font-size: 0.625rem;
	font-weight: 700;
	min-width: 16px;
	height: 16px;
	border-radius: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

/* Account — logged out icon */
.caddy-header-account {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 8px;
	color: var(--caddy-text-muted);
	text-decoration: none;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.caddy-header-account:hover {
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

/* Account — logged in dropdown */
.caddy-account-dropdown {
	position: relative;
}

.caddy-account-toggle {
	display: flex;
	align-items: center;
	gap: 6px;
	height: 36px;
	padding: 4px 10px 4px 4px;
	border: none;
	background: none;
	border-radius: 100px;
	color: var(--caddy-text-primary);
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.caddy-account-toggle:hover {
	background-color: var(--caddy-bg-elevated);
	color: var(--caddy-text-primary);
}

.caddy-account-avatar {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	object-fit: cover;
}

.caddy-account-name {
	font-size: 0.88rem;
	font-weight: 500;
	white-space: nowrap;
	max-width: 120px;
	overflow: hidden;
	text-overflow: ellipsis;
}

.caddy-account-chevron {
	flex-shrink: 0;
	transition: transform 0.15s ease;
}

.caddy-account-toggle[aria-expanded="true"] .caddy-account-chevron {
	transform: rotate(180deg);
}

/* Dropdown menu */
.caddy-account-menu {
	position: absolute;
	top: calc(100% + 6px);
	right: 0;
	min-width: 180px;
	padding: 6px;
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	border-radius: 10px;
	z-index: 1000;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
}

.caddy-account-toggle[aria-expanded="true"] + .caddy-account-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.caddy-account-menu a {
	display: block;
	padding: 8px 12px;
	font-size: 0.8125rem;
	color: var(--caddy-text-primary);
	text-decoration: none;
	border-radius: 6px;
	transition: background-color 0.1s ease;
}

.caddy-account-menu a:hover {
	background-color: var(--caddy-bg-elevated);
}

.caddy-account-menu-divider {
	height: 1px;
	margin: 4px 0;
	background-color: var(--caddy-border);
}

@media (max-width: 768px) {
	.caddy-account-name {
		display: none;
	}
	.caddy-account-chevron {
		display: none;
	}
	.caddy-account-toggle {
		width: 36px;
		height: 36px;
		padding: 0;
		justify-content: center;
	}
}

.caddy-mobile-toggle {
	display: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: none;
	background: none;
	border-radius: 8px;
	color: var(--caddy-text-muted);
	cursor: pointer;
}

.caddy-hamburger {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 20px;
	height: 20px;
	position: relative;
}

.caddy-hamburger-line {
	display: block;
	width: 18px;
	height: 2px;
	background-color: currentColor;
	border-radius: 1px;
	position: absolute;
	transition: transform 0.25s ease, opacity 0.15s ease;
}

.caddy-hamburger-line:nth-child(1) { transform: translateY(-6px); }
.caddy-hamburger-line:nth-child(2) { transform: translateY(0); }
.caddy-hamburger-line:nth-child(3) { transform: translateY(6px); }

.caddy-mobile-toggle[aria-expanded="true"] .caddy-hamburger-line:nth-child(1) {
	transform: rotate(45deg);
}

.caddy-mobile-toggle[aria-expanded="true"] .caddy-hamburger-line:nth-child(2) {
	opacity: 0;
}

.caddy-mobile-toggle[aria-expanded="true"] .caddy-hamburger-line:nth-child(3) {
	transform: rotate(-45deg);
}

@media (max-width: 768px) {
	.caddy-header-nav {
		display: block;
		position: absolute;
		top: 64px;
		left: 0;
		right: 0;
		background-color: var(--caddy-bg-primary);
		border-bottom: 1px solid var(--caddy-border);
		padding: 16px var(--caddy-gutter);
		text-align: left;
		opacity: 0;
		visibility: hidden;
		transform: translateY(-8px);
		transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
	}

	.caddy-header-nav.caddy-nav-open {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}

	.caddy-nav-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 4px;
	}

	.caddy-mobile-toggle {
		display: flex;
	}

	.caddy-header {
		position: relative;
	}

	/* Mobile sub-menus: static accordion instead of absolute dropdown */
	.caddy-nav-menu .sub-menu {
		position: static;
		transform: none;
		width: 100%;
		min-width: 0;
		border: none;
		border-radius: 0;
		padding: 0 0 0 16px;
		background: none;
		max-height: 0;
		overflow: hidden;
		opacity: 1;
		visibility: visible;
		transition: max-height 0.2s ease;
	}

	.caddy-nav-menu .sub-menu::before {
		display: none;
	}

	.caddy-nav-menu li.menu-item-has-children.caddy-submenu-open > .sub-menu {
		max-height: 500px;
		transform: none;
	}

	/* Mobile: hide mega dropdown, show simple sub-menu instead */
	.caddy-products-mega {
		display: none !important;
	}

	.caddy-mobile-submenu {
		display: none;
	}

	.caddy-has-mega.caddy-submenu-open > .caddy-mobile-submenu {
		display: block;
	}
}

/* ============================================
   DARK MODE
   ============================================ */

[data-theme="dark"] {
	--caddy-bg-deep: #0e0c16;
	--caddy-bg-primary: #0e0c16;
	--caddy-bg-elevated: #14111f;
	--caddy-bg-card: #14111f;
	--caddy-bg-card-hover: #1a1626;
	--caddy-bg-surface: #1e1a2c;

	--caddy-bg-inverted: #ffffff;

	/* Dark mode: pale-lime accent reads better than purple on dark */
	--caddy-primary: #e5ff80;
	--caddy-primary-hover: #d8f56a;
	--caddy-on-primary: #111111;

	--caddy-text-primary: #f0f0f0;
	--caddy-text-secondary: #a0a0a0;
	--caddy-text-muted: #777777;
	--caddy-text-faint: #555555;

	--caddy-border-subtle: #1e1a2c;
	--caddy-border: #28233a;
	--caddy-border-strong: #383150;
	--caddy-border-hover: #555555;
}

/* Dark mode logo handling lives with the header logo rules (CSS invert). */

/* Dark mode cart count invert */
[data-theme="dark"] .caddy-cart-count {
	color: #0a0a0a;
}

/* Dark mode: lime as text/border, not background */
[data-theme="dark"] .caddy-section-label,
[data-theme="dark"] .caddy-hero-label {
	background-color: transparent;
	color: var(--caddy-primary);
	padding: 0;
}

[data-theme="dark"] .caddy-hero-cat-icon {
	background-color: transparent;
	border-color: var(--caddy-border-strong);
	color: var(--caddy-primary);
}

/* Dark mode: shop page buttons */
[data-theme="dark"] .woocommerce ul.products li.product .button {
	background-color: #ffffff;
	color: #0a0a0a;
}

[data-theme="dark"] .woocommerce ul.products li.product .button:hover {
	background-color: rgb(255 255 255 / 85%);
	color: #0a0a0a;
}

[data-theme="dark"] .woocommerce ul.products li.product .caddy-waitlist-archive-button,
[data-theme="dark"] .woocommerce ul.products li.product a.caddy-waitlist-archive-button {
	background: #ffffff !important;
	color: #0a0a0a !important;
}

[data-theme="dark"] .woocommerce ul.products li.product .caddy-waitlist-archive-button:hover,
[data-theme="dark"] .woocommerce ul.products li.product a.caddy-waitlist-archive-button:hover {
	background: rgb(255 255 255 / 85%) !important;
	color: #0a0a0a !important;
}

/* Dark mode: page backgrounds */
[data-theme="dark"] body,
[data-theme="dark"] .site-content,
[data-theme="dark"] .inside-article,
[data-theme="dark"] .separate-containers .inside-article,
[data-theme="dark"] .site-main {
	background-color: var(--caddy-bg-primary) !important;
}

/* Blog/archive: lighter section bg, darker cards */
[data-theme="dark"] .blog.site,
[data-theme="dark"] body.blog,
[data-theme="dark"] .archive:not(.post-type-archive-product).site,
[data-theme="dark"] body.archive:not(.post-type-archive-product) {
	background-color: #0e0e0e !important;
}

[data-theme="dark"] .blog .site-content,
[data-theme="dark"] .archive:not(.post-type-archive-product) .site-content,
[data-theme="dark"] .blog .site-main,
[data-theme="dark"] .archive:not(.post-type-archive-product) .site-main {
	background-color: #0e0e0e !important;
}

[data-theme="dark"] .blog article.post,
[data-theme="dark"] .archive:not(.post-type-archive-product) article.post {
	background: var(--caddy-bg-primary) !important;
}

[data-theme="dark"] .blog article.post .inside-article,
[data-theme="dark"] .archive:not(.post-type-archive-product) article.post .inside-article {
	background-color: transparent !important;
}

/* Single post: dark mode fixes */
[data-theme="dark"] .single-post .site-content,
[data-theme="dark"] .single-post .site-main {
	background-color: var(--caddy-bg-primary) !important;
}

[data-theme="dark"] .single-post .comments-area,
[data-theme="dark"] .single-post .comment-body,
[data-theme="dark"] .single-post #respond {
	background-color: var(--caddy-bg-primary) !important;
	color: var(--caddy-text-secondary);
}

[data-theme="dark"] .single-post .comments-title,
[data-theme="dark"] .single-post .comment-reply-title,
[data-theme="dark"] .single-post .comment-author,
[data-theme="dark"] .single-post .comment-author a {
	color: var(--caddy-text-primary) !important;
}

[data-theme="dark"] .single-post .comment-metadata a,
[data-theme="dark"] .single-post .comment-content a {
	color: var(--caddy-text-muted) !important;
}

[data-theme="dark"] .single-post .comment-content {
	color: var(--caddy-text-secondary);
}

[data-theme="dark"] .single-post .post-navigation {
	border-top-color: var(--caddy-border);
}

[data-theme="dark"] .single-post .post-navigation a {
	color: var(--caddy-text-primary);
}

[data-theme="dark"] .caddy-proof {
	background-color: #141414;
	border-top: 1px solid var(--caddy-border);
	border-bottom: 1px solid var(--caddy-border);
}

[data-theme="dark"] .caddy-proof-stat {
	border-right-color: var(--caddy-border);
}

[data-theme="dark"] .caddy-proof-icon {
	background-color: #0a0a0a;
	border: 1px solid var(--caddy-border-strong);
	color: var(--caddy-primary);
}

[data-theme="dark"] .caddy-plugin-cta {
	color: var(--caddy-primary);
}

[data-theme="dark"] .caddy-btn-primary {
	background-color: #ffffff;
	color: #0a0a0a;
	border-color: #ffffff;
}

[data-theme="dark"] .caddy-btn-primary:hover {
	background-color: rgb(255 255 255 / 85%);
	border-color: rgb(255 255 255 / 85%);
	color: #0a0a0a;
}

[data-theme="dark"] .caddy-bundle-badge {
	background-color: var(--caddy-bg-elevated);
	color: var(--caddy-primary);
	border: 1px solid var(--caddy-primary);
}

[data-theme="dark"] .caddy-bundle-card-featured {
	border-color: var(--caddy-primary);
}

[data-theme="dark"] .caddy-why-card-title::before {
	background-color: var(--caddy-primary);
}

[data-theme="dark"] .caddy-newsletter-input:focus {
	border-color: var(--caddy-primary);
}

/* Dark mode CTA section: use white bg for contrast */
[data-theme="dark"] .caddy-final-cta {
	background-color: #ffffff;
}

[data-theme="dark"] .caddy-final-cta .caddy-section-title {
	color: #0a0a0a;
}

[data-theme="dark"] .caddy-final-cta-text,
[data-theme="dark"] .caddy-final-cta-closer,
[data-theme="dark"] .caddy-final-cta-trust li {
	color: rgb(0 0 0 / 55%);
}

[data-theme="dark"] .caddy-final-cta .caddy-btn-primary {
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	border-color: var(--caddy-primary);
}

[data-theme="dark"] .caddy-final-cta .caddy-btn-primary:hover {
	background-color: var(--caddy-primary-hover);
	border-color: var(--caddy-primary-hover);
}

[data-theme="dark"] .caddy-final-cta .caddy-btn-secondary {
	color: rgb(0 0 0 / 55%);
	border-color: rgb(0 0 0 / 20%);
}

[data-theme="dark"] .caddy-final-cta .caddy-btn-secondary:hover {
	color: #0a0a0a;
	border-color: rgb(0 0 0 / 40%);
}

/* System preference: dark */
@media (prefers-color-scheme: dark) {
	html:not([data-theme]) {
		--caddy-bg-deep: #0a0a0a;
		--caddy-bg-primary: #0a0a0a;
		--caddy-bg-elevated: #141414;
		--caddy-bg-card: #141414;
		--caddy-bg-card-hover: #1a1a1a;
		--caddy-bg-surface: #1e1e1e;

		--caddy-bg-inverted: #ffffff;

		--caddy-text-primary: #f0f0f0;
		--caddy-text-secondary: #a0a0a0;
		--caddy-text-muted: #777777;
		--caddy-text-faint: #555555;

		--caddy-border-subtle: #1e1e1e;
		--caddy-border: #252525;
		--caddy-border-strong: #333333;
		--caddy-border-hover: #555555;
	}

	html:not([data-theme]) .caddy-logo-light {
		display: none;
	}

	html:not([data-theme]) .caddy-logo-dark {
		display: block;
	}

	html:not([data-theme]) .caddy-cart-count {
		color: #0a0a0a;
	}

	html:not([data-theme]) .caddy-final-cta {
		background-color: #ffffff;
	}

	html:not([data-theme]) .caddy-final-cta .caddy-section-title {
		color: #0a0a0a;
	}

	html:not([data-theme]) .caddy-final-cta-text,
	html:not([data-theme]) .caddy-final-cta-closer,
	html:not([data-theme]) .caddy-final-cta-trust li {
		color: rgb(0 0 0 / 55%);
	}

	html:not([data-theme]) .caddy-final-cta .caddy-btn-primary {
		background-color: var(--caddy-primary);
		color: var(--caddy-on-primary);
		border-color: var(--caddy-primary);
	}

	html:not([data-theme]) .caddy-final-cta .caddy-btn-primary:hover {
		background-color: var(--caddy-primary-hover);
		border-color: var(--caddy-primary-hover);
	}

	html:not([data-theme]) .caddy-final-cta .caddy-btn-secondary {
		color: rgb(0 0 0 / 55%);
		border-color: rgb(0 0 0 / 20%);
	}

	html:not([data-theme]) .caddy-final-cta .caddy-btn-secondary:hover {
		color: #0a0a0a;
		border-color: rgb(0 0 0 / 40%);
	}

	html:not([data-theme]) .caddy-section-label,
	html:not([data-theme]) .caddy-hero-label {
		background-color: transparent;
		color: var(--caddy-primary);
		padding: 0;
	}

	html:not([data-theme]) .caddy-hero-cat-icon {
		background-color: transparent;
		border-color: var(--caddy-border-strong);
		color: var(--caddy-primary);
	}

	html:not([data-theme]) .woocommerce ul.products li.product .button {
		background-color: #ffffff;
		color: #0a0a0a;
	}

	html:not([data-theme]) .woocommerce ul.products li.product .button:hover {
		background-color: rgb(255 255 255 / 85%);
		color: #0a0a0a;
	}

	html:not([data-theme]) .woocommerce ul.products li.product .caddy-waitlist-archive-button,
	html:not([data-theme]) .woocommerce ul.products li.product a.caddy-waitlist-archive-button {
		background: #ffffff !important;
		color: #0a0a0a !important;
	}

	html:not([data-theme]) body,
	html:not([data-theme]) .site-content,
	html:not([data-theme]) .inside-article,
	html:not([data-theme]) .separate-containers .inside-article,
	html:not([data-theme]) .site-main {
		background-color: var(--caddy-bg-primary) !important;
	}

	/* Blog/archive: lighter section bg, darker cards */
	html:not([data-theme]) body.blog,
	html:not([data-theme]) body.archive:not(.post-type-archive-product) {
		background-color: #0e0e0e !important;
	}

	html:not([data-theme]) .blog .site-content,
	html:not([data-theme]) .archive:not(.post-type-archive-product) .site-content,
	html:not([data-theme]) .blog .site-main,
	html:not([data-theme]) .archive:not(.post-type-archive-product) .site-main {
		background-color: #0e0e0e !important;
	}

	html:not([data-theme]) .blog article.post,
	html:not([data-theme]) .archive:not(.post-type-archive-product) article.post {
		background: var(--caddy-bg-primary) !important;
	}

	html:not([data-theme]) .blog article.post .inside-article,
	html:not([data-theme]) .archive:not(.post-type-archive-product) article.post .inside-article {
		background-color: transparent !important;
	}

	/* Single post: dark mode fixes */
	html:not([data-theme]) .single-post .site-content,
	html:not([data-theme]) .single-post .site-main {
		background-color: var(--caddy-bg-primary) !important;
	}

	html:not([data-theme]) .single-post .comments-area,
	html:not([data-theme]) .single-post .comment-body,
	html:not([data-theme]) .single-post #respond {
		background-color: var(--caddy-bg-primary) !important;
		color: var(--caddy-text-secondary);
	}

	html:not([data-theme]) .single-post .comments-title,
	html:not([data-theme]) .single-post .comment-reply-title,
	html:not([data-theme]) .single-post .comment-author,
	html:not([data-theme]) .single-post .comment-author a {
		color: var(--caddy-text-primary) !important;
	}

	html:not([data-theme]) .single-post .comment-metadata a,
	html:not([data-theme]) .single-post .comment-content a {
		color: var(--caddy-text-muted) !important;
	}

	html:not([data-theme]) .single-post .comment-content {
		color: var(--caddy-text-secondary);
	}

	html:not([data-theme]) .single-post .post-navigation {
		border-top-color: var(--caddy-border);
	}

	html:not([data-theme]) .single-post .post-navigation a {
		color: var(--caddy-text-primary);
	}

	html:not([data-theme]) .caddy-proof {
		background-color: #141414;
		border-top: 1px solid var(--caddy-border);
		border-bottom: 1px solid var(--caddy-border);
	}

	html:not([data-theme]) .caddy-proof-stat {
		border-right-color: var(--caddy-border);
	}

	html:not([data-theme]) .caddy-proof-icon {
		background-color: #0a0a0a;
		border: 1px solid var(--caddy-border-strong);
		color: var(--caddy-primary);
	}

	html:not([data-theme]) .caddy-plugin-cta {
		color: var(--caddy-primary);
	}

	html:not([data-theme]) .caddy-btn-primary {
		background-color: #ffffff;
		color: #0a0a0a;
		border-color: #ffffff;
	}

	html:not([data-theme]) .caddy-btn-primary:hover {
		background-color: rgb(255 255 255 / 85%);
		border-color: rgb(255 255 255 / 85%);
		color: #0a0a0a;
	}

	html:not([data-theme]) .caddy-bundle-badge {
		background-color: var(--caddy-bg-elevated);
		color: var(--caddy-primary);
		border: 1px solid var(--caddy-primary);
	}

	html:not([data-theme]) .caddy-bundle-card-featured {
		border-color: var(--caddy-primary);
	}

	html:not([data-theme]) .caddy-why-card-title::before {
		background-color: var(--caddy-primary);
	}

	html:not([data-theme]) .caddy-newsletter-input:focus {
		border-color: var(--caddy-primary);
	}
}

/* Break .caddy-homepage out of the GP container */
.caddy-homepage {
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	overflow: hidden;
}

/* ============================================
   SHARED TYPOGRAPHY
   ============================================ */

.caddy-homepage h1,
.caddy-homepage h2,
.caddy-homepage h3 {
	font-family: var(--caddy-font-display);
	font-weight: normal;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--caddy-text-primary);
}

/* ============================================
   EYEBROW — shared pill pre-heading component.
   Canonical markup: <span class="caddy-eyebrow">.
   The other selectors are legacy per-context
   classes aliased to this single source; only
   their margins differ (kept in tiny rules at
   their original locations). Dark-mode treatment
   of blog/post/shop preheadings stays separate.
   ============================================ */
.caddy-eyebrow,
.caddy-section-label,
.caddy-hero-label,
.caddy-shop-preheading,
.caddy-blog-preheading,
.caddy-post-preheading,
.caddy-account-hero-label,
.pb-hero__eyebrow,
.pb-single-hero__category {
	display: inline-block;
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	font-weight: 400;
	/* line-height IS the pill height (padding is 0) and font smoothing
	   changes glyph density — pin both, or eyebrows render differently
	   per context (homepage inherited 1.6/antialiased, playbooks 2/auto). */
	line-height: 2;
	-webkit-font-smoothing: subpixel-antialiased;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--caddy-on-primary);
	background-color: var(--caddy-primary);
	padding: 0 12px;
	border-radius: 100px;
}

.caddy-section-label {
	margin-bottom: 16px;
}

.caddy-section-title {
	font-size: clamp(2rem, 4vw, 3rem);
	margin: 0 auto 16px;
	max-width: 720px;
}

/* Hardened against core.css per-page rules like
   `.page-changelog h2 { font-family: Nudge !important; text-transform: uppercase !important }`
   — the h2./h3. prefix ties their (0,1,1) specificity, and style.css
   printing after core.css wins the tie. */
h2.caddy-section-title,
h3.caddy-section-title {
	font-family: var(--caddy-font-display) !important;
	text-transform: none !important;
}

.caddy-section-subtitle {
	font-size: 1.0625rem;
	color: var(--caddy-text-muted);
	line-height: 1.6;
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
}

/* Page hero h1 line height — blog, single post, shop, support, about */
.caddy-blog-title,
.caddy-post-title,
.caddy-support-hero .caddy-section-title,
.gb-text-about-hero-headline {
	line-height: 1.2 !important;
}

/* Accent font for specific words in headings */
.caddy-accent {
	font-family: var(--caddy-font-accent);
	font-weight: normal;
	font-style: italic;
}

/* ============================================
   HOMEPAGE — HERO
   ============================================ */

.caddy-hero {
	position: relative;
	padding: 80px var(--caddy-gutter) 80px;
	text-align: center;
	background-color: var(--caddy-bg-primary);
	overflow: hidden;
}

/* Subtle grid background */
.caddy-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-hero-inner {
	position: relative;
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
	z-index: 1;
}

.caddy-hero-label {
	margin-bottom: 10px;
}

/* Hero star-rating + social proof (replaces the eyebrow pill on the homepage) */
.caddy-hero-rating {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 16px;
	animation: caddy-fade-up 0.7s ease-out both;
}

.caddy-hero-stars {
	display: inline-flex;
	gap: 2px;
	color: var(--caddy-accent-purple);
}

.caddy-hero-stars svg {
	width: 16px;
	height: 16px;
}

.caddy-hero-rating-label {
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
}

.caddy-hero-rating-label strong {
	color: #ffffff;
	font-weight: 600;
}

/* Stack stars above the label on phones so the text doesn't wrap awkwardly */
@media (max-width: 640px) {
	.caddy-hero-rating {
		flex-direction: column;
		gap: 8px;
	}
}

/* Trust list under the hero CTAs */
.caddy-hero-trust {
	list-style: none;
	margin: 24px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.caddy-hero-trust li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.875rem;
	color: rgba(255, 255, 255, 0.7);
}

.caddy-hero-trust svg {
	flex-shrink: 0;
	color: var(--caddy-accent-purple);
}

.caddy-homepage .caddy-hero-title {
	font-family: var(--caddy-font-display);
	font-size: var(--caddy-h1-display);
	font-weight: normal;
	color: var(--caddy-text-primary);
	line-height: 1;
	letter-spacing: -0.02em;
	margin: 0 0 24px;
}

/* Hero category icons */
.caddy-hero-categories {
	display: flex;
	justify-content: center;
	gap: 40px;
	margin: 40px auto 40px;
	flex-wrap: wrap;
}

.caddy-hero-cat {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}

.caddy-hero-cat-icon {
	width: 52px;
	height: 52px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	border: 1px solid var(--caddy-border);
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
}

.caddy-hero-cat-icon svg {
	width: 24px;
	height: 24px;
}

.caddy-hero-cat-label {
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--caddy-text-muted);
}

.caddy-hero-subtitle {
	font-size: clamp(1.05rem, 1.5vw, 1.15rem);
	color: var(--caddy-text-muted);
	max-width: var(--caddy-container-narrow);
	margin: 0 auto 25px;
	line-height: 1.7;
}

.caddy-early-access-banner {
	max-width: 540px;
	margin: -8px auto 48px;
	padding: 20px 28px;
	background-color: var(--caddy-bg-inverted);
	color: rgba(255, 255, 255, 0.75);
	border-radius: var(--caddy-radius);
	text-align: center;
	font-size: 0.875rem;
	line-height: 1.6;
}

.caddy-early-access-banner p {
	margin: 0;
}

.caddy-early-access-label {
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--caddy-bg-inverted);
	background-color: var(--caddy-primary);
	padding: 2px 10px;
	border-radius: 4px;
	margin-bottom: 10px;
}

.caddy-aa-coming-soon {
	color: var(--caddy-text-faint);
	font-style: italic;
}

.caddy-hero-actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

/* ============================================
   HERO — INVERTED (homepage only)

   Black band behind the headline + cart stage. Hardcoded dark (not the
   bg-inverted token, which flips in dark mode) so the hero stays black in
   both themes. Foreground is flipped to light here; the browser-frame stage
   inside keeps its own light tokens so it reads as a window on black.
   ============================================ */
.caddy-hero-inverted {
	background-color: #0a0a0a;
	/* Gutter lives on the inner (.caddy-hero-split), matching the header and
	   content sections, so the split aligns to --caddy-container exactly. */
	padding-inline: 0;
}

/* Split: copy left, browser right (homepage hero only). Same width recipe as
   .caddy-proof-inner et al. (max-width container + gutter padding). */
.caddy-hero-split {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

/* Taller browser for the split (vs the full-width 1120/640) */
.caddy-hero-inverted .caddy-browser-viewport {
	aspect-ratio: 1120 / 920;
}

.caddy-hero-inverted .caddy-hero-inner {
	max-width: none;
	margin: 0;
	text-align: left;
}

.caddy-hero-inverted .caddy-hero-subtitle {
	margin-left: 0;
	margin-right: 0;
	max-width: 46ch;
}

.caddy-hero-inverted .caddy-hero-actions {
	justify-content: flex-start;
}

/* Hero CTA text matches the subtitle size (larger than the recipe default). */
.caddy-hero-inverted .caddy-hero-actions .caddy-btn {
	font-size: clamp(1.05rem, 1.5vw, 1.15rem);
}

/* Feature pages run a slightly smaller hero CTA */
.caddy-features-archive .caddy-hero-actions .caddy-btn,
.caddy-single-feature .caddy-hero-actions .caddy-btn {
	font-size: clamp(1.05rem, 1.5vw, 1rem);
}

/* Stage is the right grid cell now — no auto-centering, no bottom bleed */
.caddy-hero-inverted .caddy-hero-stage {
	max-width: none;
	margin: 0;
	padding: 0;
}

/* Smaller browser in the column → scale the chips down to keep proportion */
.caddy-hero-inverted .caddy-callout {
	font-size: 0.625rem;
	padding: 5px 11px;
	gap: 6px;
}

.caddy-hero-inverted .caddy-callout-icon {
	width: 12px;
	height: 12px;
}

/* No grid texture on the homepage hero (other heroes keep theirs) */
.caddy-hero-inverted::before {
	display: none;
}

.caddy-hero-inverted .caddy-hero-title {
	color: #f7f7f7;
}

.caddy-hero-inverted .caddy-hero-title .caddy-accent {
	color: var(--caddy-accent-purple);
}

.caddy-hero-inverted .caddy-hero-subtitle {
	color: rgba(255, 255, 255, 0.65);
}

/* Secondary button: the light-mode dark border/text would vanish on black */
.caddy-hero-inverted .caddy-btn-secondary {
	color: rgba(255, 255, 255, 0.9);
	border-color: rgba(255, 255, 255, 0.25);
}

.caddy-hero-inverted .caddy-btn-secondary:hover {
	color: #ffffff;
	border-color: rgba(255, 255, 255, 0.6);
}

/* Dark browser frame to match the black hero. Re-point the surface/border
   tokens (neutral grayscale, not the purple-tinted dark-mode tokens) on the
   browser scope so the chrome, storefront, and product thumbs all cascade
   dark. Left untouched: --caddy-primary (so the callout chips stay purple)
   and the cart PNG. */
.caddy-hero-inverted .caddy-browser {
	--caddy-bg-card: #1a1a1a;
	--caddy-bg-elevated: #1a1a1a;
	--caddy-bg-surface: #202020;
	--caddy-border-subtle: #262626;
	--caddy-border: #2e2e2e;
	--caddy-border-strong: #3d3d3d;
}

/* ============================================
   HERO CATEGORY BUBBLES
   ============================================ */

.caddy-hero-bubbles {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 48px;
}

.caddy-hero-bubble {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 16px;
	border-radius: 100px;
	border: 1px solid var(--caddy-border);
	background-color: var(--caddy-bg-primary);
	color: var(--caddy-text-secondary);
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.caddy-hero-bubble:hover {
	background-color: var(--caddy-bg-elevated);
	border-color: var(--caddy-primary);
	color: var(--caddy-text-primary);
}

.caddy-hero-bubble img {
	width: 24px;
	height: 24px;
	border-radius: 6px;
	flex-shrink: 0;
}

/* ============================================
   BUTTONS
   ============================================ */

.caddy-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--caddy-btn-padding);
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: var(--caddy-btn-font-size);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
	border: 1px solid transparent;
	cursor: pointer;
}

.caddy-btn-primary {
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	border-color: var(--caddy-primary);
}

.caddy-btn-primary:hover {
	background-color: var(--caddy-primary-hover);
	border-color: var(--caddy-primary-hover);
	color: var(--caddy-on-primary);
}

.caddy-btn-secondary {
	background-color: transparent;
	color: var(--caddy-text-secondary);
	border: 1px solid var(--caddy-border-strong);
}

.caddy-btn-secondary:hover {
	border-color: var(--caddy-text-primary);
	color: var(--caddy-text-primary);
}

.caddy-btn-block {
	width: 100%;
	text-align: center;
}

/* ============================================
   SOCIAL PROOF BAR
   ============================================ */

.caddy-proof {
	padding: 0;
	background-color: #0a0a0a;
}

.caddy-proof-inner {
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding: 0 var(--caddy-gutter);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
}

.caddy-proof-stat {
	padding: 15px var(--caddy-gutter);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border-right: 1px solid rgb(255 255 255 / 20%);
}

.caddy-proof-stat:last-child {
	border-right: none;
}

.caddy-proof-icon {
	color: var(--caddy-on-primary);
	background-color: var(--caddy-primary);
	width: 30px;
	height: 30px;
	padding: 5px;
	border-radius: 7px;
	flex-shrink: 0;
}

.caddy-proof-label {
	font-size: 0.9375rem;
	font-weight: 500;
	color: #ffffff;
}

/* ============================================
   PROBLEM SECTION
   ============================================ */

.caddy-problem {
	padding: 96px var(--caddy-gutter);
	background-color: var(--caddy-bg-elevated);
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-problem-inner {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
	text-align: center;
}

.caddy-problem-text {
	font-size: 1.1rem;
	line-height: 1.8;
	text-align: left;
}

.caddy-problem-text p {
	margin: 0 0 24px;
	color: var(--caddy-text-secondary);
}

.caddy-problem-text p:last-child {
	margin-bottom: 0;
}

.caddy-problem-text strong {
	color: var(--caddy-text-primary);
}

/* ============================================
   PLUGIN SUITE
   ============================================ */

.caddy-plugins {
	padding: 96px var(--caddy-gutter);
	background-color: var(--caddy-bg-primary);
}

.caddy-plugins-inner {
	max-width: var(--caddy-container);
	margin: 0 auto !important;
}

.caddy-plugins-header {
	text-align: center;
	margin-bottom: 64px;
}

.caddy-plugins-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background-color: var(--caddy-border);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	overflow: hidden;
}

.caddy-plugin-card {
	display: flex;
	flex-direction: column;
	padding: 40px;
	background-color: var(--caddy-bg-card);
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.caddy-plugin-card:hover {
	background-color: var(--caddy-bg-card-hover);
}

.caddy-plugin-card-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 16px;
}

.caddy-sale-badge {
	flex-shrink: 0;
	margin-left: auto;
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 3px 8px;
	border-radius: 4px;
	background-color: #F97066;
	color: #ffffff;
}

.caddy-product-header .caddy-sale-badge {
	align-self: center;
}

/* Nav sale indicators */
.caddy-nav-sale-dot {
	display: inline-block;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background-color: #F97066;
	margin-left: 4px;
	vertical-align: super;
}

.caddy-mega-sale {
	display: inline-block;
	font-size: 0.625rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 1px 6px;
	border-radius: 3px;
	background-color: #F97066;
	color: #ffffff;
	margin-left: 6px;
	vertical-align: middle;
}

.caddy-plugin-icon {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	border-radius: 8px;
	overflow: hidden;
	background-color: var(--caddy-primary);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
}

.caddy-plugin-icon img {
	width: 22px;
	height: 22px;
	object-fit: contain;
}

.caddy-plugin-icon-placeholder {
	width: 36px;
	height: 36px;
}

.caddy-plugin-name {
	font-size: 1.25rem;
	font-weight: 600 !important;
	color: var(--caddy-text-primary);
	margin: 0;
}

.caddy-plugin-tagline {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0 0 8px;
	line-height: 1.4;
}

.caddy-plugin-desc {
	font-size: 0.9375rem;
	color: var(--caddy-text-muted);
	line-height: 1.6;
	margin: 0 0 auto;
	padding-bottom: 24px;
}

.caddy-plugin-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 16px;
	border-top: 1px solid var(--caddy-border);
}

.caddy-plugin-price {
	font-size: 0.875rem;
	color: var(--caddy-text-muted);
}

.caddy-plugin-cta {
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--caddy-text-primary);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.caddy-arrow {
	display: inline-block;
	color: var(--caddy-text-primary);
	transition: transform 0.2s ease;
}

.caddy-plugin-card:hover .caddy-arrow {
	transform: translateX(3px);
}

/* ============================================
   BUNDLE SECTION
   ============================================ */

.caddy-bundle {
	padding: 0 0 96px;
	background-color: #ffffff;
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-bundle-inner {
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding: 0 var(--caddy-gutter);
	text-align: center;
}

.caddy-bundle-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 0;
	max-width: var(--caddy-container);
	margin-left: auto;
	margin-right: auto;
}

.caddy-bundle-card {
	position: relative;
	padding: 40px;
	background-color: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	text-align: left;
	transition: border-color 0.2s ease;
}

.caddy-bundle-card:not(.caddy-bundle-card-featured):hover {
	border-color: var(--caddy-primary);
}

.caddy-bundle-card-featured {
	border-color: #0a0a0a;
}

.caddy-bundle-badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--caddy-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	padding: 4px 16px;
	border-radius: 100px;
	white-space: nowrap;
}

.caddy-bundle-card-header {
	margin-bottom: 24px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--caddy-border-subtle);
}

.caddy-bundle-label {
	display: block;
	font-size: 1rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin-bottom: 4px;
}

.caddy-bundle-price {
	font-family: var(--caddy-font-display);
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	color: var(--caddy-text-primary);
}

.caddy-bundle-card-featured .caddy-bundle-price {
	color: var(--caddy-primary);
}

.caddy-bundle-period {
	font-size: 0.875rem;
	font-weight: 400;
	color: var(--caddy-text-muted);
}

.caddy-bundle-features {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
}

.caddy-bundle-features li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 7px 0;
	font-size: 0.9375rem;
	color: var(--caddy-text-secondary);
}

.caddy-bundle-check {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	margin-top: 0;
	color: var(--caddy-primary);
}

.caddy-bundle-note {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	margin: 8px 0 0;
}

/* ============================================
   WHY CADDY
   ============================================ */

.caddy-why {
	padding: 96px var(--caddy-gutter);
	background-color: var(--caddy-bg-primary);
}

.caddy-why-inner {
	max-width: var(--caddy-container);
	margin: 0 auto !important;
}

.caddy-why-header {
	text-align: center;
	margin-bottom: 64px;
}

.caddy-why-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background-color: var(--caddy-border);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	overflow: hidden;
}

.caddy-why-card {
	padding: 40px;
	background-color: var(--caddy-bg-card);
}

.caddy-why-card-title {
	font-size: 1.125rem;
	color: var(--caddy-text-primary);
	margin: 0 0 10px;
}

.caddy-why-card-title::before {
	content: '';
	display: block;
	width: 24px;
	height: 3px;
	background-color: var(--caddy-primary);
	border-radius: 2px;
	margin-bottom: 16px;
}

.caddy-why-card p {
	font-size: 0.9375rem;
	color: var(--caddy-text-muted);
	line-height: 1.6;
	margin: 0;
}

/* ============================================
   FINAL CTA
   ============================================ */

.caddy-final-cta {
	padding: 96px var(--caddy-gutter);
	background-color: var(--caddy-bg-inverted);
	text-align: center;
}

.caddy-final-cta-inner {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
}

.caddy-final-cta .caddy-section-title {
	color: #ffffff;
}

.caddy-final-cta-text {
	font-size: 1.0625rem;
	color: rgb(255 255 255 / 60%);
	line-height: 1.7;
	margin: 0 0 12px;
}

.caddy-final-cta-closer {
	font-size: 1.0625rem;
	color: rgb(255 255 255 / 60%);
	line-height: 1.7;
	margin: 0 0 32px;
}

/* Inverted buttons for dark CTA */
.caddy-final-cta .caddy-btn-primary {
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	border-color: var(--caddy-primary);
}

.caddy-final-cta .caddy-btn-primary:hover {
	background-color: var(--caddy-primary-hover);
	border-color: var(--caddy-primary-hover);
}

.caddy-final-cta .caddy-btn-secondary {
	color: rgb(255 255 255 / 70%);
	border-color: rgb(255 255 255 / 25%);
}

.caddy-final-cta .caddy-btn-secondary:hover {
	color: #ffffff;
	border-color: rgb(255 255 255 / 50%);
}

.caddy-final-cta-actions {
	display: flex;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
}

.caddy-final-cta-trust {
	list-style: none;
	margin: 28px 0 0;
	padding: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px 28px;
}

.caddy-final-cta-trust li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 0.875rem;
	color: rgb(255 255 255 / 70%);
}

.caddy-final-cta-trust svg {
	flex-shrink: 0;
	color: var(--caddy-primary);
}

/* ============================================
   DOCS
   ============================================ */

/* Compact hero for docs pages */
.caddy-hero-compact {
	padding: 60px 20px 0;
}
.caddy-hero-compact .caddy-hero-title {
	font-size: var(--caddy-h1-size);
}

/* Features index + singles: breathing room above the fold */
.caddy-features-archive .caddy-hero-compact,
.caddy-single-feature .caddy-hero-compact {
	padding-bottom: 72px;
}

/* Landing grid */
.caddy-docs-landing {
	padding: 20px 0 80px 0;
}

.caddy-docs-landing-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
}

.caddy-docs-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.caddy-docs-card {
	display: flex;
	flex-direction: column;
	padding: 24px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.caddy-docs-card:hover {
	border-color: var(--caddy-border-hover);
	background-color: var(--caddy-bg-elevated);
}

.caddy-docs-card-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}

.caddy-docs-card-icon {
	width: 36px;
	height: 36px;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 10px;
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
}

@media (prefers-color-scheme: dark) {
	html:not([data-theme]) .caddy-docs-card-icon {
		filter: invert(1);
	}
}

.caddy-docs-card-icon-placeholder {
	display: block;
	width: 28px;
	height: 28px;
	border-radius: 6px;
	background-color: var(--caddy-bg-elevated);
}

.caddy-docs-card-name {
	font-size: 1rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0;
}

.caddy-docs-card-desc {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	line-height: 1.5;
	margin: 0 0 auto 0;
}

.caddy-docs-card-count {
	margin-top: 14px;
	font-size: 0.75rem;
	color: var(--caddy-text-faint);
}

.caddy-docs-empty {
	text-align: center;
	color: var(--caddy-text-muted);
	padding: 60px 0;
}

/* Docs content layout — sidebar + main */
.caddy-docs-content {
	padding: 60px 0 100px;
}

.caddy-docs-content-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 60px;
}

/* Sidebar */
.caddy-docs-sidebar {
	position: sticky;
	top: 96px;
	align-self: start;
}

.caddy-docs-nav-title {
	font-size: 0.8125rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin: 0 0 12px 0;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.caddy-docs-nav-title a {
	color: inherit;
	text-decoration: none;
}

.caddy-docs-nav-title a:hover {
	color: var(--caddy-text-muted);
}

.caddy-docs-nav-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.caddy-docs-nav-list li {
	margin: 0;
}

.caddy-docs-nav-list li a {
	display: block;
	padding: 6px 12px;
	font-size: 0.8125rem;
	color: var(--caddy-text-secondary);
	text-decoration: none;
	border-radius: 6px;
	border-left: 2px solid transparent;
	transition: color 0.15s ease, background-color 0.15s ease;
}

.caddy-docs-nav-list li a:hover {
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

.caddy-docs-nav-list li.caddy-docs-nav-active a {
	color: var(--caddy-text-primary);
	font-weight: 600;
	border-left-color: var(--caddy-primary);
	background-color: var(--caddy-bg-elevated);
}

/* Breadcrumbs: shared .caddy-breadcrumbs component (see "Breadcrumbs" in the
   single-product section) — docs-specific styles removed with the old markup. */

.caddy-docs-back-sidebar {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	text-decoration: none;
	transition: color 0.15s ease;
}

.caddy-docs-back-sidebar:hover {
	color: var(--caddy-text-primary);
}

.caddy-docs-back-sidebar {
	display: block;
	margin-top: 24px;
}

/* Hero icon for plugin docs */
.caddy-docs-hero-icon {
	vertical-align: middle;
	margin-right: 8px;
	position: relative;
	top: -2px;
}

[data-theme="dark"] .caddy-docs-hero-icon {
	filter: invert(1);
}

@media (prefers-color-scheme: dark) {
	html:not([data-theme]) .caddy-docs-hero-icon {
		filter: invert(1);
	}
}

/* Draft badge — editors see draft docs inline on the front end */
.caddy-docs-draft-badge {
	display: inline-block;
	font-family: var(--caddy-font-mono);
	font-size: 0.625rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	line-height: 1;
	color: #92400e;
	background-color: #fef3c7;
	border: 1px solid #fcd34d;
	padding: 3px 7px;
	border-radius: 100px;
	vertical-align: middle;
	white-space: nowrap;
}

[data-theme="dark"] .caddy-docs-draft-badge {
	color: #fcd34d;
	background-color: rgba(252, 211, 77, 0.12);
	border-color: rgba(252, 211, 77, 0.35);
}

@media (prefers-color-scheme: dark) {
	html:not([data-theme]) .caddy-docs-draft-badge {
		color: #fcd34d;
		background-color: rgba(252, 211, 77, 0.12);
		border-color: rgba(252, 211, 77, 0.35);
	}
}

/* Screenshot placeholder marker — editors only (stripped for visitors in
   inc/docs.php). Dashed box so it reads as scaffolding, not real content. */
.caddy-doc-shot {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 24px 0;
	padding: 14px 16px;
	border: 1px dashed var(--caddy-border-strong);
	border-radius: 10px;
	background-color: var(--caddy-bg-subtle, #f7f7f8);
	color: var(--caddy-text-secondary);
	font-style: normal;
}

.caddy-doc-shot-tag {
	flex-shrink: 0;
	font-family: var(--caddy-font-mono);
	font-size: 0.625rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	line-height: 1;
	color: var(--caddy-primary);
	background-color: rgba(94, 76, 207, 0.1);
	border: 1px solid rgba(94, 76, 207, 0.25);
	padding: 4px 8px;
	border-radius: 100px;
	white-space: nowrap;
}

.caddy-doc-shot-desc {
	font-size: 0.875rem;
	line-height: 1.4;
}

/* Article list on taxonomy page */
.caddy-docs-article-list {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.caddy-docs-article-card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 20px;
	border-radius: 8px;
	text-decoration: none;
	transition: background-color 0.15s ease;
}

.caddy-docs-article-card:hover {
	background-color: var(--caddy-bg-elevated);
}

.caddy-docs-article-title {
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--caddy-text-primary);
	margin: 0;
	flex: 1;
}

.caddy-docs-article-excerpt {
	display: none;
}

.caddy-docs-article-arrow {
	color: var(--caddy-text-faint);
	flex-shrink: 0;
}

/* Single article */
.caddy-docs-article {
	min-width: 0;
}

.caddy-docs-article-header {
	margin-bottom: 40px;
}

.caddy-docs-article-h1 {
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	letter-spacing: -0.02em;
	color: var(--caddy-text-primary);
	margin: 0;
	line-height: 1.15;
}

.caddy-docs-article-body {
	font-size: 0.9375rem;
	line-height: 1.8;
	color: var(--caddy-text-secondary);
}

.caddy-docs-article-body h2 {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin: 48px 0 16px;
}

.caddy-docs-article-body h3 {
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 32px 0 12px;
}

.caddy-docs-article-body p {
	margin: 0 0 16px;
}

.caddy-docs-article-body code {
	font-family: var(--caddy-font-mono);
	font-size: 0.85em;
	background-color: var(--caddy-bg-surface);
	padding: 2px 6px;
	border-radius: 4px;
}

.caddy-docs-article-body pre {
	background-color: var(--caddy-bg-surface);
	padding: 20px 24px;
	border-radius: var(--caddy-radius);
	overflow-x: auto;
	margin: 0 0 24px;
}

.caddy-docs-article-body pre code {
	background: none;
	padding: 0;
}

.caddy-docs-article-body img {
	max-width: 100%;
	height: auto;
	border-radius: var(--caddy-radius);
	margin: 16px 0;
}

.caddy-docs-article-body ul,
.caddy-docs-article-body ol {
	margin: 0 0 16px;
	padding-left: 24px;
}

.caddy-docs-article-body li {
	margin-bottom: 6px;
}

/* Prev / Next pagination */
.caddy-docs-pagination {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	margin-top: 60px;
	padding-top: 40px;
	border-top: 1px solid var(--caddy-border);
}

.caddy-docs-pagination-prev,
.caddy-docs-pagination-next {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 20px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.caddy-docs-pagination-prev:hover,
.caddy-docs-pagination-next:hover {
	border-color: var(--caddy-border-hover);
	background-color: var(--caddy-bg-elevated);
}

.caddy-docs-pagination-next {
	text-align: right;
}

.caddy-docs-pagination-label {
	font-size: 0.75rem;
	color: var(--caddy-text-muted);
}

.caddy-docs-pagination-title {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
}

/* Docs responsive */
@media (max-width: 1024px) {
	.caddy-docs-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.caddy-docs-grid {
		grid-template-columns: 1fr;
	}

	.caddy-docs-content-inner {
		grid-template-columns: 1fr;
		gap: 0;
	}

	.caddy-docs-sidebar {
		position: static;
		border-bottom: 1px solid var(--caddy-border);
		padding-bottom: 24px;
		margin-bottom: 32px;
	}

	.caddy-docs-pagination {
		grid-template-columns: 1fr;
	}
}

/* ============================================
   CONTACT PAGE
   ============================================ */

.caddy-contact {
	padding: 20px 0 100px;
}

.caddy-contact-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
}

.caddy-contact-grid {
	display: grid;
	grid-template-columns: 1fr 360px;
	gap: 60px;
}

.caddy-contact-heading {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin: 0 0 28px 0;
}

.caddy-contact-form {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.caddy-contact-field label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin-bottom: 6px;
}

.caddy-contact-field input,
.caddy-contact-field select,
.caddy-contact-field textarea {
	width: 100%;
	padding: var(--caddy-input-padding);
	font-size: var(--caddy-input-font-size);
	font-family: var(--caddy-font-body);
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	transition: border-color 0.15s ease;
}

.caddy-contact-field input:focus,
.caddy-contact-field select:focus,
.caddy-contact-field textarea:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

.caddy-contact-field textarea {
	resize: vertical;
}

/* Gravity Forms (contact page renders GF via the_content — its markup has no
   .caddy-contact-field wrappers). Same input recipe, GF selectors. */
/* The :not() stack mirrors GF legacy formsmain.css's own selector — it packs
   (0,7,1) specificity, so a plain class chain can't outrank it. */
.caddy-contact-page .gform_wrapper .gfield input:not([type="radio"]):not([type="checkbox"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
.caddy-contact-page .gform_wrapper .gfield select,
.caddy-contact-page .gform_wrapper .gfield textarea {
	padding: var(--caddy-input-padding);
	font-size: var(--caddy-input-font-size);
	font-family: var(--caddy-font-body);
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	transition: border-color 0.15s ease;
}

.caddy-contact-page .gform_wrapper input:focus,
.caddy-contact-page .gform_wrapper select:focus,
.caddy-contact-page .gform_wrapper textarea:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

.caddy-contact-page .gform_wrapper .gfield_label {
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
}

.caddy-contact-page .gform_wrapper input[type="submit"],
.caddy-contact-page .gform_footer .gform_button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--caddy-btn-padding);
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: var(--caddy-btn-font-size);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	border: 1px solid var(--caddy-primary);
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.caddy-contact-page .gform_wrapper input[type="submit"]:hover,
.caddy-contact-page .gform_footer .gform_button:hover {
	background-color: var(--caddy-primary-hover);
	border-color: var(--caddy-primary-hover);
	color: var(--caddy-on-primary);
}

.caddy-contact-success {
	padding: 20px 24px;
	background-color: var(--caddy-bg-surface);
	border: 1px solid var(--caddy-primary);
	border-radius: var(--caddy-radius);
}

.caddy-contact-success p {
	margin: 0;
	font-size: 0.875rem;
	color: var(--caddy-text-primary);
}

.caddy-contact-error {
	padding: 14px 20px;
	background-color: var(--caddy-bg-surface);
	border: 1px solid #e8626d;
	border-radius: var(--caddy-radius);
	margin-bottom: 20px;
}

.caddy-contact-error p {
	margin: 0;
	font-size: 0.875rem;
	color: #e8626d;
}

.caddy-contact-info {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

.caddy-contact-info-card {
	padding: 24px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
}

.caddy-contact-info-card h3 {
	font-size: 0.875rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin: 0 0 8px 0;
}

.caddy-contact-info-card p {
	font-size: 0.8125rem;
	color: var(--caddy-text-secondary);
	margin: 0;
	line-height: 1.6;
}

.caddy-contact-info-card a {
	color: var(--caddy-text-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.caddy-contact-info-card a:hover {
	color: var(--caddy-text-muted);
}

@media (max-width: 768px) {
	.caddy-contact-grid {
		grid-template-columns: 1fr;
		gap: 40px;
	}
}

/* ============================================
   ALL ACCESS PAGE
   ============================================ */

.caddy-aa-included,
.caddy-aa-faq {
	padding: 100px 0;
}

.caddy-aa-included-inner,
.caddy-aa-faq-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
}

.caddy-aa-included-header,
.caddy-aa-faq-header {
	text-align: center;
	margin-bottom: 60px;
}

/* Pricing tiers inside hero — break out of narrow inner */
.caddy-hero .caddy-aa-tiers {
	margin-top: 60px;
	max-width: 960px;
	width: 90vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

.caddy-aa-tiers {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	max-width: 960px;
	margin: 0 auto;
}

.caddy-aa-tier {
	position: relative;
	padding: 40px 32px 32px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	background-color: var(--caddy-bg-primary);
	display: flex;
	flex-direction: column;
}

.caddy-aa-tier-popular {
	border-color: var(--caddy-primary);
	border-width: 2px;
}

.caddy-aa-tier-badge {
	position: absolute;
	top: -13px;
	left: 50%;
	transform: translateX(-50%);
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	font-size: 0.75rem;
	font-weight: 700;
	padding: 4px 14px;
	border-radius: 100px;
	white-space: nowrap;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.caddy-aa-tier-header {
	margin-bottom: 28px;
	text-align: center;
}

.caddy-aa-tier-name {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--caddy-text-secondary);
	margin: 0 0 12px 0;
}

.caddy-aa-tier-price {
	display: flex;
	align-items: baseline;
	justify-content: center;
	gap: 4px;
}

.caddy-aa-price-original {
	font-size: 1rem;
	font-weight: 500;
	color: var(--caddy-text-muted);
	line-height: 1;
}

.caddy-aa-price-amount {
	font-size: 2.5rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	line-height: 1;
}

.caddy-aa-price-amount .woocommerce-Price-currencySymbol {
	font-size: 1.5rem;
	vertical-align: super;
}

.caddy-aa-price-period {
	font-size: 0.9375rem;
	color: var(--caddy-text-muted);
}

.caddy-aa-tier-features {
	list-style: none;
	margin: 0 0 28px 0;
	padding: 0;
	flex: 1;
}

.caddy-aa-tier-features li {
	padding: 8px 0;
	font-size: 0.875rem;
	color: var(--caddy-text-secondary);
	border-bottom: 1px solid var(--caddy-border-subtle);
	text-align: center;
}

.caddy-aa-tier-features li:last-child {
	border-bottom: none;
}

/* Included plugins grid */
.caddy-aa-plugins-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}

.caddy-aa-plugin {
	display: block;
	padding: 20px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.caddy-aa-plugin:hover {
	border-color: var(--caddy-border-hover);
	background-color: var(--caddy-bg-elevated);
}

.caddy-aa-plugin-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}

.caddy-aa-plugin-icon {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
}

[data-theme="dark"] .caddy-aa-plugin-icon {
	filter: invert(1);
}

@media (prefers-color-scheme: dark) {
	html:not([data-theme]) .caddy-aa-plugin-icon {
		filter: invert(1);
	}
}

.caddy-aa-plugin-icon-placeholder {
	display: block;
	width: 24px;
	height: 24px;
	border-radius: 4px;
	background-color: var(--caddy-bg-elevated);
}

.caddy-aa-plugin-meta {
	min-width: 0;
}

.caddy-aa-plugin-name {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0;
	line-height: 1.3;
}

.caddy-aa-plugin-value {
	font-size: 0.75rem;
	color: var(--caddy-text-muted);
}

.caddy-aa-plugin-desc {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	line-height: 1.5;
	margin: 0;
}

/* Savings bar */
.caddy-aa-savings {
	margin-top: 40px;
	padding: 24px 32px;
	background-color: var(--caddy-bg-surface);
	border-radius: var(--caddy-radius);
	text-align: center;
}

.caddy-aa-savings p {
	margin: 4px 0;
	font-size: 0.9375rem;
	color: var(--caddy-text-secondary);
}

.caddy-aa-savings-old {
	text-decoration: line-through;
	color: var(--caddy-text-muted);
}

/* FAQ */
.caddy-aa-faq {
	background-color: #f7f7f7;
}

.caddy-aa-faq-list {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
}

.caddy-aa-faq-item {
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-aa-faq-item:first-child {
	border-top: 1px solid var(--caddy-border);
}

.caddy-aa-faq-item summary {
	padding: 20px 0;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	cursor: pointer;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.caddy-aa-faq-item summary::-webkit-details-marker {
	display: none;
}

.caddy-aa-faq-item summary::after {
	content: '+';
	font-size: 1.25rem;
	font-weight: 300;
	color: var(--caddy-text-muted);
	flex-shrink: 0;
	margin-left: 16px;
	transition: transform 0.15s ease;
}

.caddy-aa-faq-item[open] summary::after {
	content: '\2212';
}

.caddy-aa-faq-item p {
	padding: 0 0 20px 0;
	margin: 0;
	font-size: 0.875rem;
	color: var(--caddy-text-secondary);
	line-height: 1.6;
}

/* Responsive */
@media (max-width: 1024px) {
	.caddy-aa-plugins-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.caddy-aa-pricing,
	.caddy-aa-included,
	.caddy-aa-faq {
		padding: 60px 0;
	}

	.caddy-aa-tiers {
		grid-template-columns: 1fr;
		max-width: 400px;
	}

	.caddy-aa-plugins-grid {
		grid-template-columns: 1fr;
	}
}

/* ============================================
   NEWSLETTER
   ============================================ */

.caddy-newsletter {
	padding: 96px var(--caddy-gutter);
	background-color: #39316d;
	text-align: center;
}

/* Dark purple bg — flip text to light so it stays readable */
.caddy-newsletter .caddy-section-title {
	color: #ffffff;
}

.caddy-newsletter .caddy-newsletter-text {
	color: rgb(255 255 255 / 75%);
}

.caddy-newsletter .caddy-newsletter-terms,
.caddy-newsletter .caddy-newsletter-terms a {
	color: rgb(255 255 255 / 55%);
}

.caddy-newsletter-inner {
	max-width: 520px;
	margin: 0 auto;
}

.caddy-newsletter .caddy-section-title {
	margin: 0 0 12px;
	font-family: var(--caddy-font-display);
	font-weight: 400;
}

.caddy-newsletter-text {
	font-size: 1.0625rem;
	color: var(--caddy-text-muted);
	line-height: 1.6;
	margin: 0 0 32px;
}

.caddy-newsletter-form {
	display: flex;
	gap: 12px;
}

input.caddy-newsletter-input {
	flex: 1;
	padding: var(--caddy-input-padding);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	color: var(--caddy-text-primary);
	font-family: var(--caddy-font-body);
	font-size: var(--caddy-input-font-size);
}

input.caddy-newsletter-input::placeholder {
	color: var(--caddy-text-faint);
}

input.caddy-newsletter-input:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

.caddy-newsletter-success {
	color: var(--caddy-text-primary);
	font-size: 1.0625rem;
	margin: 16px 0 0;
}

.caddy-newsletter-error {
	color: #e74c3c;
	font-size: 0.9375rem;
	margin: 16px 0 0;
}

.caddy-newsletter-terms {
	font-size: 0.75rem;
	color: var(--caddy-text-faint);
	line-height: 1.4;
	margin: 12px 0 0;
}

.caddy-newsletter-terms a {
	color: var(--caddy-text-faint);
	text-decoration: underline;
}

.caddy-newsletter-terms a:hover {
	color: var(--caddy-text-secondary);
}

/* ============================================
   DISCOUNT POPOVER
   ============================================ */

.caddy-popover {
	position: fixed;
	bottom: 24px;
	right: 24px;
	width: 360px;
	background: repeating-linear-gradient(
		-45deg,
		var(--caddy-border) 0,
		var(--caddy-border) 4px,
		var(--caddy-bg-elevated) 4px,
		var(--caddy-bg-elevated) 12px
	);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	padding: 8px;
	z-index: 9999;
	overflow: hidden;
	opacity: 0;
	transform: translateY(20px);
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.caddy-popover::before {
	content: '';
	position: absolute;
	top: 8px;
	left: 8px;
	right: 8px;
	bottom: 8px;
	background-color: var(--caddy-bg-card);
	border-radius: calc(var(--caddy-radius-lg) - 4px);
	z-index: 0;
}

.caddy-popover > * {
	position: relative;
	z-index: 1;
}

.caddy-popover-visible {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.caddy-popover-close {
	position: absolute;
	top: 16px;
	right: 16px;
	background: none;
	border: none;
	font-size: 1.25rem;
	color: var(--caddy-text-muted);
	cursor: pointer;
	width: 32px;
	height: 32px;
	padding: 0;
	line-height: 32px;
	text-align: center;
	border-radius: 50%;
	z-index: 2;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.caddy-popover-body,
.caddy-popover-success {
	padding: 20px;
}

.caddy-popover-close:hover {
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

.caddy-popover-title {
	font-family: var(--caddy-font-display);
	font-size: 1.125rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0 0 6px;
}

.caddy-popover-text {
	font-size: 0.9375rem;
	color: var(--caddy-text-secondary);
	line-height: 1.5;
	margin: 0 0 16px;
}

.caddy-popover-form {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

input.caddy-popover-input {
	padding: var(--caddy-input-padding);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	color: var(--caddy-text-primary);
	font-family: var(--caddy-font-body);
	font-size: var(--caddy-input-font-size);
}

input.caddy-popover-input::placeholder {
	color: var(--caddy-text-faint);
}

input.caddy-popover-input:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

.caddy-popover-terms {
	font-size: 0.75rem;
	color: var(--caddy-text-faint);
	line-height: 1.4;
	margin: 8px 0 0;
}

.caddy-popover-terms a {
	color: var(--caddy-text-faint);
	text-decoration: underline;
}

.caddy-popover-terms a:hover {
	color: var(--caddy-text-secondary);
}

.caddy-popover-success .caddy-popover-title {
	margin-bottom: 6px;
}

.caddy-popover-tab {
	position: fixed;
	top: 50%;
	right: 0;
	background-color: #0a0a0a;
	color: var(--caddy-primary);
	font-family: var(--caddy-font-display);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.03em;
	padding: 10px 14px;
	border: none;
	border-radius: var(--caddy-radius) 0 0 var(--caddy-radius);
	cursor: pointer;
	z-index: 9998;
	writing-mode: vertical-rl;
	text-orientation: mixed;
	opacity: 0;
	transform: translateX(100%) translateY(-50%);
	pointer-events: none;
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.caddy-popover-tab-visible {
	opacity: 1;
	transform: translateX(0) translateY(-50%);
	pointer-events: auto;
}

.caddy-popover-tab:hover {
	color: var(--caddy-primary-hover);
}

@media (max-width: 480px) {
	.caddy-popover {
		left: 12px;
		right: 12px;
		bottom: 12px;
		width: auto;
	}
}

/* ============================================
   HOMEPAGE RESPONSIVE
   ============================================ */

@media (max-width: 1024px) {
	.caddy-plugins-grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.caddy-why-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	/* Clarity (Jun 2026): mobile homepage scroll depth was 9.67% — visitors saw
	   nothing below the hero. Tighten the hero's vertical rhythm so the product
	   shot peeks above the fold (a scroll cue) and the social-proof bar comes up. */
	.caddy-hero {
		padding: 32px var(--caddy-gutter) 40px;
	}

	.caddy-hero-subtitle {
		margin-bottom: 28px;
	}

	.caddy-hero-categories {
		gap: 25px;
		margin-bottom: 20px;
	}

	.caddy-hero-bubbles {
		gap: 8px;
		margin-top: 32px;
	}

	.caddy-hero-bubble {
		padding: 6px 12px;
		font-size: 0.75rem;
	}

	.caddy-hero-bubble img {
		width: 20px;
		height: 20px;
	}

	.caddy-proof-inner {
		grid-template-columns: 1fr;
	}

	.caddy-proof-stat {
		border-right: none;
		border-bottom: 1px solid rgb(255 255 255 / 20%);
	}

	.caddy-proof-stat:last-child {
		border-bottom: none;
	}

	.caddy-problem,
	.caddy-plugins,
	.caddy-bundle,
	.caddy-why,
	.caddy-final-cta,
	.caddy-newsletter {
		padding: 72px var(--caddy-gutter);
	}

	.caddy-plugins-grid {
		grid-template-columns: 1fr;
	}

	.caddy-plugin-card {
		padding: 32px;
	}

	.caddy-bundle-grid {
		grid-template-columns: 1fr;
	}

	.caddy-hero-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.caddy-newsletter-form {
		flex-direction: column;
	}
}

/* ============================================
   HOMEPAGE ENTRANCE ANIMATIONS
   ============================================ */

@keyframes caddy-fade-up {
	from {
		opacity: 0;
		transform: translateY(24px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.caddy-hero-label {
	animation: caddy-fade-up 0.7s ease-out both;
}

.caddy-hero-title {
	animation: caddy-fade-up 0.7s ease-out 0.1s both;
}

.caddy-hero-categories {
	animation: caddy-fade-up 0.7s ease-out 0.15s both;
}

.caddy-hero-subtitle {
	animation: caddy-fade-up 0.7s ease-out 0.25s both;
}

.caddy-hero-actions {
	animation: caddy-fade-up 0.7s ease-out 0.3s both;
}

.caddy-hero-bubbles {
	animation: caddy-fade-up 0.7s ease-out 0.4s both;
}

/* ============================================
   PAGE ENTRANCE ANIMATIONS
   (Shop, Blog, Single Post, Support, About, Product)
   ============================================ */

/* Shop Hero */
.caddy-shop-preheading {
	animation: caddy-fade-up 0.7s ease-out both;
}
.caddy-shop-title {
	animation: caddy-fade-up 0.7s ease-out 0.1s both;
}
.caddy-shop-description {
	animation: caddy-fade-up 0.7s ease-out 0.2s both;
}

/* Blog Hero */
.caddy-blog-preheading {
	animation: caddy-fade-up 0.7s ease-out both;
}
.caddy-blog-title {
	animation: caddy-fade-up 0.7s ease-out 0.1s both;
}
.caddy-blog-description {
	animation: caddy-fade-up 0.7s ease-out 0.2s both;
}

/* Single Post Hero */
.caddy-post-preheading {
	animation: caddy-fade-up 0.7s ease-out both;
}
.caddy-post-title {
	animation: caddy-fade-up 0.7s ease-out 0.1s both;
}
.caddy-post-meta {
	animation: caddy-fade-up 0.7s ease-out 0.2s both;
}

/* Support Hero */
.caddy-support-hero .caddy-section-label {
	animation: caddy-fade-up 0.7s ease-out both;
}
.caddy-support-hero .caddy-section-title {
	animation: caddy-fade-up 0.7s ease-out 0.1s both;
}
.caddy-support-hero-desc {
	animation: caddy-fade-up 0.7s ease-out 0.2s both;
}

/* About Hero */
.gb-text-about-hero-preheading {
	animation: caddy-fade-up 0.7s ease-out both;
}
.gb-text-about-hero-headline {
	animation: caddy-fade-up 0.7s ease-out 0.1s both;
}
.gb-text-about-hero-sub {
	animation: caddy-fade-up 0.7s ease-out 0.2s both;
}

/* Single Product Page */
.caddy-breadcrumbs {
	animation: caddy-fade-up 0.5s ease-out both;
}
.caddy-product-header {
	animation: caddy-fade-up 0.7s ease-out 0.1s both;
}
.caddy-product-excerpt {
	animation: caddy-fade-up 0.7s ease-out 0.2s both;
}
.caddy-product-gallery {
	animation: caddy-fade-up 0.7s ease-out 0.3s both;
}
.caddy-sidebar-sticky {
	animation: caddy-fade-up 0.7s ease-out 0.25s both;
}

/* ============================================
   ABOUT PAGE — GenerateBlocks Overrides
   ============================================ */

/* About Hero */
.gb-element-about-hero {
	background-color: var(--caddy-bg-primary) !important;
	padding: 80px 20px !important;
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--caddy-border);
}

.gb-element-about-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.gb-element-about-hero-inner {
	position: relative;
	z-index: 1;
}

.gb-text-about-hero-preheading {
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	color: var(--caddy-on-primary) !important;
	background-color: var(--caddy-primary) !important;
	display: inline-block !important;
	padding: 0 12px !important;
	border-radius: 100px !important;
	text-transform: uppercase !important;
	letter-spacing: 0.08em !important;
}

.gb-text-about-hero-headline {
	color: var(--caddy-text-primary) !important;
	font-size: var(--caddy-h1-size) !important;
	font-weight: normal !important;
	line-height: 1.2 !important;
	letter-spacing: -0.02em !important;
}

.gb-text-about-hero-sub {
	color: var(--caddy-text-muted) !important;
	font-size: 1.0625rem !important;
}

/* About Story */
.gb-element-about-story {
	background-color: var(--caddy-bg-primary) !important;
}

.gb-text-about-story-label {
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	color: var(--caddy-on-primary) !important;
	background-color: var(--caddy-primary) !important;
	display: inline-block !important;
	padding: 0 12px !important;
	border-radius: 100px !important;
	letter-spacing: 0.08em !important;
}

.gb-text-about-story-headline {
	color: var(--caddy-text-primary) !important;
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: normal !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em !important;
}

.gb-text-about-story-p1,
.gb-text-about-story-p2,
.gb-text-about-story-p3 {
	color: var(--caddy-text-secondary) !important;
}

/* About Values */
.gb-element-about-values {
	background-color: var(--caddy-bg-primary) !important;
}

.gb-text-about-values-label {
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.8125rem !important;
	font-weight: 600 !important;
	color: var(--caddy-on-primary) !important;
	background-color: var(--caddy-primary) !important;
	display: inline-block !important;
	padding: 0 12px !important;
	border-radius: 100px !important;
	letter-spacing: 0.08em !important;
}

.gb-text-about-values-headline {
	color: var(--caddy-text-primary) !important;
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: normal !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em !important;
}

.gb-element-about-values-grid {
	gap: 1px !important;
	background-color: var(--caddy-border) !important;
	border: 1px solid var(--caddy-border) !important;
	border-radius: var(--caddy-radius-lg) !important;
	overflow: hidden !important;
}

.gb-element-about-value-1,
.gb-element-about-value-2,
.gb-element-about-value-3 {
	background-color: var(--caddy-bg-card) !important;
	border-radius: 0 !important;
	padding: 40px !important;
}

.gb-text-about-v1-title,
.gb-text-about-v2-title,
.gb-text-about-v3-title {
	color: var(--caddy-text-primary) !important;
	font-weight: normal !important;
}

.gb-text-about-v1-title::before,
.gb-text-about-v2-title::before,
.gb-text-about-v3-title::before {
	content: '';
	display: block;
	width: 24px;
	height: 3px;
	background-color: var(--caddy-primary);
	border-radius: 2px;
	margin-bottom: 16px;
}

.gb-text-about-v1-desc,
.gb-text-about-v2-desc,
.gb-text-about-v3-desc {
	color: var(--caddy-text-muted) !important;
}

/* About CTA */
.gb-element-about-cta {
	background-color: var(--caddy-bg-inverted) !important;
}

.gb-text-about-cta-headline {
	color: #ffffff !important;
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: normal !important;
	line-height: 1.15 !important;
	letter-spacing: -0.02em !important;
}

.gb-text-about-cta-text {
	color: rgb(255 255 255 / 60%) !important;
}

.gb-text-about-cta-btn {
	border-radius: var(--caddy-btn-radius) !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
}

/* About CTA dark mode */
[data-theme="dark"] .gb-element-about-cta {
	background-color: #ffffff !important;
}

[data-theme="dark"] .gb-text-about-cta-headline {
	color: #0a0a0a !important;
}

[data-theme="dark"] .gb-text-about-cta-text {
	color: rgb(0 0 0 / 55%) !important;
}

[data-theme="dark"] .gb-text-about-cta-btn {
	background-color: #0a0a0a !important;
	color: #ffffff !important;
}

[data-theme="dark"] .gb-text-about-cta-btn:is(:hover, :focus) {
	background-color: #333333 !important;
	color: #ffffff !important;
}

/* About dark mode labels */
[data-theme="dark"] .gb-text-about-hero-preheading,
[data-theme="dark"] .gb-text-about-story-label,
[data-theme="dark"] .gb-text-about-values-label,
[data-theme="dark"] .caddy-blog-preheading,
[data-theme="dark"] .caddy-post-preheading,
[data-theme="dark"] .caddy-shop-preheading {
	background-color: transparent !important;
	color: var(--caddy-primary) !important;
	padding: 0 !important;
}

[data-theme="dark"] .blog .entry-footer,
[data-theme="dark"] .archive:not(.post-type-archive-product) .entry-footer {
	border-top-color: var(--caddy-border);
}

/* ============================================
   ============================================
   PORTED STYLES — SHOP, BLOG, PRODUCT PAGES
   (Preserved exactly from caddy-theme v1)
   ============================================
   ============================================ */


/* ============================================
   WooCommerce Cart/Checkout Blocks
   ============================================ */

.entry-content .wp-block-woocommerce-cart.alignwide {
	max-width: var(--caddy-container);
	margin-left: auto;
	margin-right: auto;
	width: 100%;
	padding: 0 var(--caddy-gutter);
	box-sizing: border-box;
}

.entry-content .wp-block-woocommerce-checkout.alignwide {
	margin-left: 0;
	width: 100%;
	max-width: 100%;
}

/* Link color — exclude homepage (.caddy-homepage handles its own),
   playbook components (pb- prefix, playbooks.css handles its own), and
   pagination pills (.page-numbers — hover goes primary/on-primary) */
#content a:not(.wc-block-components-button):not(.wp-element-button):not(.wc-block-cart__submit-button):not(.gb-text):not([class*="caddy-"]):not([class*="pb-"]):not(.page-numbers) {
	color: var(--caddy-text-primary);
}
#content a:not(.wc-block-components-button):not(.wp-element-button):not(.wc-block-cart__submit-button):not(.gb-text):not([class*="caddy-"]):not([class*="pb-"]):not(.page-numbers):hover {
	color: var(--caddy-text-secondary);
}

/* --- Checkout simplified header --- */
.caddy-header-checkout .caddy-header-inner {
	justify-content: center;
}

/* The base logo is flex:1 to push the nav right; on the nav-less checkout header
   that makes it span the row and pin left, defeating the centering above. */
.caddy-header-checkout .caddy-header-logo {
	flex: 0 0 auto;
}

/* --- Order Confirmation page --- */

/* Hide defaults */
.woocommerce-order-received .entry-header,
.woocommerce-order-received .order-again,
.woocommerce-order-received .caddy-newsletter {
	display: none !important;
}

/* Confirmation hero */
.caddy-order-confirmed {
	text-align: center;
	padding: 20px 0 40px;
}

.caddy-order-confirmed-icon {
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--caddy-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
	color: var(--caddy-on-primary);
}

.caddy-order-confirmed-title {
	font-family: var(--caddy-font-display);
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	color: var(--caddy-text-primary);
	margin: 0 0 12px;
}

.caddy-order-confirmed-desc {
	color: var(--caddy-text-secondary);
	font-size: 0.9375rem;
	line-height: 1.6;
	max-width: 480px;
	margin: 0 auto;
}

/* Order overview pills */
.woocommerce-order-received .woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 0 40px !important;
	border: none !important;
}

.woocommerce-order-received .woocommerce-order-overview li {
	background: var(--caddy-bg-card) !important;
	border: 1px solid var(--caddy-border) !important;
	border-radius: var(--caddy-radius) !important;
	padding: 12px 20px !important;
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin: 0 !important;
	float: none !important;
	width: auto !important;
}

.woocommerce-order-received .woocommerce-order-overview li strong {
	display: block;
	font-size: 0.9375rem;
	color: var(--caddy-text-primary);
	text-transform: none;
	letter-spacing: 0;
	margin-top: 4px;
}

/* License keys card */
.woocommerce-order-received .woocommerce-license-keys {
	background: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	padding: 32px;
	margin: 32px 0;
}

.woocommerce-order-received .woocommerce-license-keys h2 {
	font-size: 1.125rem;
	margin-top: 0;
	margin-bottom: 16px;
}

.woocommerce-order-received .woocommerce-license-keys .woocommerce-notice {
	background: none;
	border: none;
	padding: 0;
	margin: 16px 0 0;
	font-size: 0.875rem;
	color: var(--caddy-text-muted);
}

/* What's Next steps */
.caddy-order-next-steps {
	margin: 48px 0 32px;
}

.caddy-order-next-steps-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin: 0 0 24px;
}

.caddy-order-next-steps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

.caddy-order-step {
	background: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	padding: 24px;
}

.caddy-order-step-num {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--caddy-primary);
	color: var(--caddy-on-primary);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.8125rem;
	font-weight: 700;
	margin-bottom: 12px;
}

.caddy-order-step h3 {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0 0 8px;
}

.caddy-order-step p {
	font-size: 0.875rem;
	color: var(--caddy-text-muted);
	line-height: 1.6;
	margin: 0;
}

.caddy-order-step a {
	color: var(--caddy-text-primary);
	text-decoration: underline;
}

/* Order details table cleanup */
.woocommerce-order-received .woocommerce-order-details__title {
	font-size: 1.125rem;
}

.woocommerce-order-received .woocommerce-customer-details .woocommerce-column__title {
	font-size: 1.125rem;
}

.woocommerce-order-received .woocommerce-customer-details address {
	border: none !important;
	box-shadow: none !important;
	padding: 0 !important;
}

.woocommerce-order-received .woocommerce-order-details h2 {
	font-size: 1.125rem;
	margin-bottom: 16px !important;
}

/* Subscriptions & order tables */
.woocommerce-order-received .shop_table thead th {
	background: var(--caddy-bg-card) !important;
	border-bottom: 1px solid var(--caddy-border) !important;
}

.woocommerce-order-received .shop_table {
	border: none !important;
	border-collapse: collapse !important;
}

.woocommerce-order-received .shop_table td,
.woocommerce-order-received .shop_table th {
	border-top: none !important;
}

.woocommerce-order-received .shop_table .button,
.woocommerce-order-received .shop_table .woocommerce-button {
	background: var(--caddy-bg-card) !important;
	color: var(--caddy-text-primary) !important;
	border: 1px solid var(--caddy-border) !important;
	border-radius: 6px !important;
	padding: 6px 16px !important;
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
}

/* Responsive */
@media (max-width: 768px) {
	.caddy-order-next-steps-grid {
		grid-template-columns: 1fr;
	}

	.woocommerce-order-received .woocommerce-order-overview {
		flex-direction: column;
	}
}

/* --- Checkout hero header --- */
.caddy-checkout-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 40px 20px;
	text-align: center;
	border-bottom: 1px solid var(--caddy-border);
	overflow: hidden;
}

.caddy-checkout-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-checkout-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}

.caddy-checkout-hero .caddy-section-title {
	margin-bottom: 0;
	color: var(--caddy-text-primary);
}

/* Hide default page title on checkout and cart */
.woocommerce-checkout .entry-header,
.woocommerce-cart .entry-header {
	display: none;
}

/* --- Cart hero header --- */
.caddy-cart-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 40px 20px;
	text-align: center;
	border-bottom: 1px solid var(--caddy-border);
	overflow: hidden;
}

.caddy-cart-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-cart-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}

.caddy-cart-hero .caddy-section-title {
	margin-bottom: 0;
	color: var(--caddy-text-primary);
}

/* --- Cart item product icon (app box style) --- */
.wc-block-cart td.wc-block-cart-item__image {
	width: 64px !important;
	min-width: 64px;
	vertical-align: top;
	padding: 0 !important;
}

.wc-block-cart td.wc-block-cart-item__image a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 64px;
	height: 64px;
	margin-top: 12px;
	border-radius: var(--caddy-radius-lg);
	overflow: hidden;
	background-color: var(--caddy-primary) !important;
	padding: 14px;
	box-sizing: border-box;
}

.wc-block-cart td.wc-block-cart-item__image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	border-radius: 0 !important;
}

/* --- Empty cart state --- */
.woocommerce-cart .wp-block-woocommerce-cart .wp-block-woocommerce-empty-cart-block {
	text-align: center;
	padding: 40px 20px 60px;
	margin-top: -40px;
}

.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title {
	color: var(--caddy-text-primary);
}

.wp-block-woocommerce-empty-cart-block p {
	color: var(--caddy-text-secondary);
}

.wp-block-woocommerce-empty-cart-block .wp-block-button {
	border-radius: 0 !important;
	background: none !important;
	border: none !important;
}

.wp-block-woocommerce-empty-cart-block .wp-element-button {
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.875rem !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background-color: var(--caddy-primary) !important;
	color: var(--caddy-on-primary) !important;
	border: none !important;
	border-radius: var(--caddy-radius) !important;
	padding: 14px 28px !important;
	transition: background-color 0.15s ease;
}

.wp-block-woocommerce-empty-cart-block .wp-element-button:hover {
	background-color: var(--caddy-primary-hover) !important;
	color: var(--caddy-on-primary) !important;
}

/* --- Checkout body background --- */
.page-checkout {
	background-color: #f7f7f7;
}

[data-theme="dark"] .page-checkout,
[data-theme="dark"] .page-checkout .site-content,
[data-theme="dark"] .page-checkout .inside-article,
[data-theme="dark"] .page-checkout .site-main {
	background-color: var(--caddy-bg-elevated) !important;
}

.is-dark-theme .page-checkout {
	color: var(--caddy-text-primary);
}

/* --- Checkout order summary product icon (app box style) --- */
.wc-block-components-order-summary-item__image {
	position: relative;
	width: 48px !important;
	min-width: 48px;
	height: 48px;
	border-radius: var(--caddy-radius);
	overflow: visible;
	background-color: var(--caddy-primary);
	padding: 10px !important;
	box-sizing: border-box;
	flex-shrink: 0;
}

.wc-block-components-order-summary-item__image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	border-radius: 0 !important;
}

.wc-block-components-order-summary-item__quantity {
	top: -6px !important;
	right: -6px !important;
	border-radius: 50%;
	min-width: 20px;
	height: 20px;
	font-size: 0.6875rem;
}

/* Only show lime bg once real product image is present */
.wc-block-components-order-summary-item__image:not(:has(img[alt])) {
	background-color: transparent !important;
	padding: 0 !important;
}

/* --- Checkout express payment & payment radio --- */
.wc-block-components-express-payment--checkout,
.wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option {
	background-color: #ffffff;
}

[data-theme="dark"] .wc-block-components-express-payment--checkout,
[data-theme="dark"] .wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option {
	background-color: var(--caddy-bg-card);
}

.wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container {
	top: -1px;
}

/* --- Checkout container width --- */
.woocommerce-checkout .inside-article {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 40px var(--caddy-gutter);
	padding-top: 0;
	background-color: transparent;
}

/* --- Checkout page title --- */
.woocommerce-checkout .entry-title,
.page-checkout .entry-title {
	font-family: var(--caddy-font-display);
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	letter-spacing: -0.02em;
	color: var(--caddy-text-primary);
	margin-bottom: 32px;
}

/* --- Checkout section headings --- */
.wc-block-checkout .wc-block-components-title,
.wc-block-checkout h2,
.wc-block-cart .wc-block-components-title {
	font-family: var(--caddy-font-display);
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--caddy-text-primary);
}

/* --- Form inputs & selects --- */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea,
.wc-block-checkout .wc-block-components-combobox .components-combobox-control input,
.wc-block-checkout select,
.wc-block-cart .wc-block-components-text-input input {
	font-family: var(--caddy-font-body);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	background-color: var(--caddy-bg-primary);
	color: var(--caddy-text-primary);
	transition: border-color 0.15s ease;
}

.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-combobox .components-combobox-control input:focus,
.wc-block-checkout select:focus {
	border-color: var(--caddy-border-strong);
	outline: none;
}

/* --- Place order / primary buttons --- */
.wc-block-checkout .wc-block-components-button:not(.is-link),
.wc-block-cart .wc-block-components-button:not(.is-link),
.wc-block-checkout .wc-block-components-checkout-place-order-button,
.wc-block-cart .wc-block-cart__submit-button {
	font-family: var(--caddy-font-mono);
	font-size: 0.875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	border: none;
	border-radius: var(--caddy-radius);
	padding: 16px 32px;
	transition: background-color 0.15s ease;
}

.wc-block-checkout .wc-block-components-button:not(.is-link):hover,
.wc-block-cart .wc-block-components-button:not(.is-link):hover,
.wc-block-checkout .wc-block-components-checkout-place-order-button:hover,
.wc-block-cart .wc-block-cart__submit-button:hover {
	background-color: var(--caddy-primary-hover);
	color: var(--caddy-on-primary);
}

/* --- Order summary sidebar --- */
.wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	padding: 24px;
	background-color: var(--caddy-bg-card);
}

.wc-block-checkout__sidebar .wc-block-components-title,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title {
	font-size: 1.125rem;
	margin-top: 0;
	color: var(--caddy-text-primary) !important;
}

.wc-block-checkout__sidebar .wc-block-components-totals-item {
	border-color: var(--caddy-border-subtle);
}

.wc-block-checkout__sidebar .wc-block-components-order-summary .wc-block-components-order-summary-item__description {
	color: var(--caddy-text-secondary);
	font-size: 0.875rem;
}

/* Sidebar text colors for dark mode */
[data-theme="dark"] .wc-block-checkout__sidebar .wc-block-components-totals-coupon-link,
[data-theme="dark"] .wc-block-checkout__sidebar .wc-block-components-panel__button {
	color: var(--caddy-text-secondary) !important;
}

[data-theme="dark"] .wc-block-checkout__sidebar .wc-block-components-panel__button svg {
	color: var(--caddy-text-muted) !important;
}

/* --- Totals rows --- */
.wc-block-components-totals-wrapper {
	border-color: var(--caddy-border-subtle) !important;
}

.wc-block-components-totals-item__label {
	color: var(--caddy-text-secondary);
}

.wc-block-components-totals-item__value {
	color: var(--caddy-text-primary);
	font-weight: 600;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--caddy-text-primary);
}

/* --- Express checkout divider --- */
.wc-block-checkout__actions .wc-block-components-express-payment__or-continue {
	color: var(--caddy-text-muted);
}

/* --- Checkbox styling --- */
.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background-color: var(--caddy-primary);
	border-color: var(--caddy-primary);
}

/* --- Radio buttons --- */
.wc-block-components-radio-control .wc-block-components-radio-control__input:checked {
	border-color: var(--caddy-primary);
	background-color: var(--caddy-primary);
}

/* --- Return to cart link --- */
.wc-block-checkout__actions .wc-block-components-checkout-return-to-cart-button {
	color: var(--caddy-text-secondary);
	font-family: var(--caddy-font-body);
	font-size: 0.875rem;
}

.wc-block-checkout__actions .wc-block-components-checkout-return-to-cart-button:hover {
	color: var(--caddy-text-primary);
}

/* --- Terms text --- */
.wc-block-checkout__terms {
	color: var(--caddy-text-muted);
	font-size: 0.8125rem;
}

/* --- Coupon toggle --- */
.wc-block-components-totals-coupon__button {
	font-family: var(--caddy-font-body);
	color: var(--caddy-text-secondary);
}

/* --- Payment methods --- */
.wc-block-checkout__payment-method .wc-block-components-radio-control__label {
	font-family: var(--caddy-font-body);
	color: var(--caddy-text-primary);
}

/* --- Checkout dark mode overrides --- */
[data-theme="dark"] .wc-block-checkout,
[data-theme="dark"] .wc-block-checkout__sidebar {
	--caddy-border: #333333;
	--caddy-border-subtle: #2a2a2a;
}
[data-theme="dark"] .wc-block-checkout .wc-block-components-text-input input,
[data-theme="dark"] .wc-block-checkout .wc-block-components-text-input textarea,
[data-theme="dark"] .wc-block-checkout .wc-block-components-combobox .components-combobox-control input,
[data-theme="dark"] .wc-block-checkout select {
	background-color: var(--caddy-bg-primary) !important;
	border-color: var(--caddy-border);
	color: var(--caddy-text-primary);
}

[data-theme="dark"] .wc-block-components-express-payment--checkout {
	background-color: var(--caddy-bg-primary) !important;
	border: 1px solid var(--caddy-border) !important;
}

[data-theme="dark"] .wc-block-components-radio-control--highlight-checked div.wc-block-components-radio-control-accordion-option {
	background-color: var(--caddy-bg-primary) !important;
	border: 1px solid var(--caddy-border) !important;
}

[data-theme="dark"] .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	background-color: var(--caddy-bg-primary) !important;
	border-color: var(--caddy-border);
}

[data-theme="dark"] .wc-block-components-order-summary .wc-block-components-order-summary-item__image {
	border-color: var(--caddy-border);
}

[data-theme="dark"] .wc-block-checkout .wc-block-components-text-input label,
[data-theme="dark"] .wc-block-checkout .wc-block-components-combobox .components-base-control__label {
	color: var(--caddy-text-muted);
}

[data-theme="dark"] .wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container {
	color: var(--caddy-text-muted);
}

[data-theme="dark"] .wc-block-checkout .wc-block-components-payment-method-label,
[data-theme="dark"] .wc-block-checkout .wc-block-components-radio-control__label {
	color: var(--caddy-text-primary);
}

[data-theme="dark"] .wc-block-checkout .wc-block-components-radio-control__option-checked {
	background-color: var(--caddy-bg-primary) !important;
}

/* Stripe iframe fields in dark mode */
[data-theme="dark"] .wc-block-checkout .wc-block-gateway-container,
[data-theme="dark"] .wc-block-checkout .wc-block-components-radio-control-accordion-content {
	background-color: var(--caddy-bg-primary) !important;
	border-color: var(--caddy-border);
}

[data-theme="dark"] .wc-block-checkout .wc-block-components-checkout-step__description {
	color: var(--caddy-text-muted);
}

[data-theme="dark"] .wc-block-checkout .wc-block-components-checkout-step__separator,
[data-theme="dark"] .wc-block-checkout hr {
	border-color: var(--caddy-border);
}

[data-theme="dark"] .wc-block-checkout .wc-block-components-address-card {
	background-color: var(--caddy-bg-primary) !important;
	border-color: var(--caddy-border);
}

[data-theme="dark"] .wc-block-checkout .wc-block-components-checkbox__mark {
	color: #0a0a0a;
}

/* ============================================
   WooCommerce Shop Page
   ============================================ */

.post-type-archive-product .site-content,
.post-type-archive-product #primary {
	width: 100%;
	max-width: 100%;
}

.post-type-archive-product .inside-article {
	max-width: 100%;
	padding: 0;
}

.woocommerce-ordering,
.woocommerce-result-count {
	display: none !important;
}


/* Shop Hero */
.caddy-shop-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 60px 20px 80px;
	text-align: center;
	margin: 0;
	border-bottom: 1px solid var(--caddy-border);
	overflow: hidden;
}

.caddy-shop-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-shop-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}

.caddy-shop-preheading {
	margin-bottom: 16px;
}

.caddy-shop-title {
	color: var(--caddy-text-primary);
	margin-bottom: 16px;
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	line-height: 1;
	letter-spacing: -0.02em;
}

.caddy-shop-description {
	color: var(--caddy-text-muted);
	line-height: 1.7;
	margin: 0;
	font-size: 1.0625rem;
}

@media (max-width: 768px) {
	.caddy-shop-hero {
		padding: 40px 20px 60px;
	}
}

/* Products container */
.post-type-archive-product .site-main,
.woocommerce-shop .site-main {
	padding-top: 60px;
	padding-bottom: 60px;
}

.post-type-archive-product .site-main > *,
.woocommerce-shop .site-main > .woocommerce {
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding-left: var(--caddy-gutter);
	padding-right: var(--caddy-gutter);
}

/* Product Grid */
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 1px !important;
	background-color: var(--caddy-border) !important;
	border: 1px solid var(--caddy-border) !important;
	border-radius: var(--caddy-radius-lg) !important;
	overflow: hidden !important;
	padding: 0 !important;
	margin: 0 !important;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce .products::before,
.woocommerce .products::after {
	display: none !important;
	content: none !important;
}

@media (max-width: 1024px) {
	.woocommerce ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 640px) {
	.woocommerce ul.products {
		grid-template-columns: 1fr !important;
	}
}

/* Product Cards */
.woocommerce ul.products li.product {
	background: var(--caddy-bg-card) !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	float: none !important;
	list-style: none;
	text-align: left !important;
}

.woocommerce ul.products li.product .caddy-plugin-card {
	display: flex;
	flex-direction: column;
	padding: 40px;
	text-decoration: none;
	height: 100%;
	transition: background-color 0.2s ease;
	text-align: left;
}

.woocommerce ul.products li.product .caddy-plugin-card:hover {
	background: var(--caddy-bg-card-hover);
}

/* Use caddy card classes — override any remaining WC defaults */
.woocommerce ul.products li.product .caddy-plugin-card .caddy-plugin-name {
	font-size: 1.25rem;
	font-weight: 600 !important;
	color: var(--caddy-text-primary);
	margin: 0;
	padding: 0;
}

.woocommerce ul.products li.product .caddy-plugin-card .caddy-plugin-desc {
	font-size: 0.9375rem;
	color: var(--caddy-text-muted);
	line-height: 1.6;
	margin: 0 0 auto;
	padding-bottom: 24px;
}

.woocommerce ul.products li.product .caddy-plugin-card .caddy-plugin-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 16px;
	border-top: 1px solid var(--caddy-border);
}

.woocommerce ul.products li.product .caddy-plugin-card .caddy-plugin-price {
	font-size: 0.875rem;
	color: var(--caddy-text-muted);
}

.woocommerce ul.products li.product .caddy-plugin-card .caddy-plugin-icon {
	width: 36px !important;
	height: 36px !important;
	padding: 0 !important;
	border-radius: 8px;
	background-color: var(--caddy-primary);
	border: none;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	overflow: hidden;
}

.woocommerce ul.products li.product .caddy-plugin-card .caddy-plugin-icon img {
	width: 22px !important;
	height: 22px !important;
	object-fit: contain;
}

.woocommerce ul.products li.product .caddy-plugin-card .caddy-plugin-tagline {
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0 0 8px;
	line-height: 1.4;
}

.woocommerce ul.products li.product a img {
	border-radius: 6px;
	display: block;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-size: 1.25rem;
	font-weight: 600 !important;
	color: var(--caddy-text-primary);
	margin-bottom: 10px;
	padding: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__description {
	color: var(--caddy-text-muted);
	font-size: 0.9rem;
	line-height: 1.6;
	margin-bottom: 16px;
}

.woocommerce ul.products li.product .price {
	color: var(--caddy-text-primary);
	font-size: 1.1rem;
	font-weight: 600;
	margin-bottom: 20px;
}

.woocommerce ul.products li.product .price del {
	color: #999;
	font-weight: 400;
}

.woocommerce ul.products li.product .price ins {
	text-decoration: none;
}

/* Add to Cart Button */
.woocommerce ul.products li.product .button {
	background-color: var(--caddy-bg-inverted);
	color: #ffffff;
	border: none;
	border-radius: var(--caddy-btn-radius);
	padding: 12px 24px;
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: background-color 0.2s ease;
	width: 100%;
	text-align: center;
}

.woocommerce ul.products li.product .button:hover {
	background-color: #333333;
	color: #ffffff;
}

/* Sale Badge */
.woocommerce ul.products li.product .onsale {
	background-color: #0a0a0a;
	color: #ffffff;
	border-radius: 4px;
	padding: 6px 12px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Coming Soon Badge */
.woocommerce ul.products li.product .caddy-waitlist-coming-soon-badge,
.caddy-waitlist-coming-soon-badge {
	background-color: #0a0a0a;
	color: #ffffff;
	border-radius: 4px;
	padding: 6px 12px;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 10;
}

.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	position: relative;
	display: block;
}

/* Product Icon in Shop Loop */
.woocommerce ul.products li.product .caddy-product-loop-icon {
	width: 48px;
	height: 48px;
	margin: 0 auto 5px 0 !important;
	border-radius: 10px;
	overflow: hidden;
	border: none;
	background: var(--caddy-primary);
	position: relative;
	padding: 12px;
}

.woocommerce ul.products li.product .caddy-waitlist-image-wrapper,
.woocommerce ul.products li.product .wc-product-image {
	text-align: left;
}

.caddy-product-loop-icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.caddy-product-loop-icon .caddy-icon-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: #f0f0f0;
}

.woocommerce ul.products li.product .caddy-waitlist-coming-soon-badge {
	position: static;
	display: inline-block;
	margin-bottom: 12px;
}

/* ============================================
   Email Opt-in Section
   ============================================ */

.caddy-optin {
	background-color: #f5f5f5;
	padding: 80px 20px;
	border-top: 1px solid #e5e5e5;
}

.caddy-optin-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
}

.caddy-optin-content {
	flex: 1;
}

.caddy-optin-title {
	color: #0a0a0a;
	margin: 0 0 8px 0;
	font-size: 1.5rem;
}

.caddy-optin-text {
	color: #666666;
	margin: 0;
	line-height: 1.6;
}

.caddy-optin-form {
	display: flex;
	gap: 12px;
	flex-shrink: 0;
}

input.caddy-optin-input {
	padding: var(--caddy-input-padding);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	font-size: var(--caddy-input-font-size);
	width: 280px;
	background: var(--caddy-bg-primary) !important;
}

input.caddy-optin-input:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

input.caddy-optin-input::placeholder {
	color: #999;
}

.caddy-optin-button {
	background-color: #0a0a0a;
	color: #ffffff;
	border: none;
	border-radius: var(--caddy-btn-radius);
	padding: var(--caddy-btn-padding);
	font-family: var(--caddy-font-mono);
	font-size: var(--caddy-btn-font-size);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.caddy-optin-button:hover {
	background-color: #333333;
}

@media (max-width: 768px) {
	.caddy-optin {
		padding: 60px 20px;
	}
	.caddy-optin-inner {
		flex-direction: column;
		text-align: center;
	}
	.caddy-optin-form {
		flex-direction: column;
		width: 100%;
	}
	.caddy-optin-input {
		width: 100%;
	}
	.caddy-optin-button {
		width: 100%;
	}
}

/* ============================================
   Blog Archive & Single Post
   ============================================ */

/* Blog Hero */
.caddy-blog-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 80px 20px;
	text-align: center;
	margin: 0;
	border-bottom: 1px solid var(--caddy-border);
	overflow: hidden;
}

.caddy-blog-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-blog-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}

.caddy-blog-preheading {
	margin-bottom: 16px;
}

.caddy-blog-title {
	color: var(--caddy-text-primary);
	margin-bottom: 16px;
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.caddy-blog-description {
	color: var(--caddy-text-muted);
	line-height: 1.7;
	margin: 0;
	font-size: 1.0625rem;
}

@media (max-width: 768px) {
	.caddy-blog-hero {
		padding: 40px 20px 60px;
	}
}

/* Blog Archive Layout */
.blog .site-content,
.archive:not(.post-type-archive-product) .site-content,
.blog #primary,
.archive:not(.post-type-archive-product) #primary {
	width: 100% !important;
	max-width: 100% !important;
}

.blog .site-main,
.archive:not(.post-type-archive-product) .site-main {
	/* border-box: bare .site-main misses the [class*="caddy-"] reset, so the
	   grid rendered 24px wider than the header on each side */
	box-sizing: border-box;
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding: 60px var(--caddy-gutter);
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 24px;
}

/* GP prints both <time class="updated"> and <time class="published"> when a
   post has been edited — show only the published date (GP's own stylesheet
   normally does this, but the theme replaces it). */
.posted-on .updated {
	display: none;
}

.posted-on .updated + .published {
	display: inline;
}

/* Remove GP card wrapper styling on blog archive */
.blog .inside-article,
.archive:not(.post-type-archive-product) .inside-article {
	background-color: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
}

@media (max-width: 768px) {
	.blog .site-main,
	.archive:not(.post-type-archive-product) .site-main {
		grid-template-columns: 1fr;
		padding: 40px var(--caddy-gutter);
	}
}

/* Post Cards */
.blog article.post,
.archive:not(.post-type-archive-product) article.post {
	background: var(--caddy-bg-card) !important;
	border: 1px solid var(--caddy-border) !important;
	border-radius: var(--caddy-radius-lg) !important;
	padding: 28px;
	margin: 0 !important;
	transition: border-color 0.15s ease, background-color 0.15s ease;
	display: flex;
	flex-direction: column;
	position: relative;
}

.blog article.post:hover,
.archive:not(.post-type-archive-product) article.post:hover {
	background: var(--caddy-bg-card-hover) !important;
	border-color: var(--caddy-border-hover) !important;
}

.blog article.post .entry-title a::after,
.archive:not(.post-type-archive-product) article.post .entry-title a::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
}

.blog .entry-header,
.archive:not(.post-type-archive-product) .entry-header {
	margin-bottom: 0;
}

.blog .entry-title,
.archive:not(.post-type-archive-product) .entry-title {
	font-size: 1.25rem;
	font-weight: 600 !important;
	line-height: 1.35;
	margin: 0 0 10px 0;
}

.blog .entry-title a,
.archive:not(.post-type-archive-product) .entry-title a {
	color: var(--caddy-text-primary);
	text-decoration: none;
}

/* Draft badge — drafts surface on the blog index for admins only (inc/blog.php) */
.caddy-draft-badge {
	display: inline-block;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1;
	color: #92600a;
	background: #fdf3e0;
	border: 1px solid #f0d9ad;
	border-radius: var(--caddy-radius-sm, 4px);
	padding: 4px 7px;
	margin-right: 8px;
	vertical-align: 2px;
}

[data-theme="dark"] .caddy-draft-badge {
	color: #e8b45c;
	background: rgba(232, 180, 92, 0.12);
	border-color: rgba(232, 180, 92, 0.3);
}

.blog .entry-meta,
.archive:not(.post-type-archive-product) .entry-meta {
	font-size: 0.8125rem;
	color: var(--caddy-text-faint);
	margin-bottom: 14px;
}

/* Hide trailing "by" / author from date meta */
.blog .entry-meta .byline,
.archive:not(.post-type-archive-product) .entry-meta .byline {
	display: none;
}

.blog .entry-meta a,
.archive:not(.post-type-archive-product) .entry-meta a {
	color: var(--caddy-text-faint);
	text-decoration: none;
}

.blog .entry-summary,
.archive:not(.post-type-archive-product) .entry-summary {
	color: var(--caddy-text-secondary);
	font-size: 0.9375rem;
	line-height: 1.6;
	margin-bottom: 0;
	flex: 1;
}

.blog .entry-summary p {
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Category pills in footer */
.blog .entry-footer,
.archive:not(.post-type-archive-product) .entry-footer {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--caddy-border-subtle);
}

.blog .cat-links,
.archive:not(.post-type-archive-product) .cat-links {
	font-size: 0.75rem;
	font-family: var(--caddy-font-mono);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

/* Hide folder icon and "Categories" label in footer */
.blog .cat-links .gp-icon,
.archive:not(.post-type-archive-product) .cat-links .gp-icon,
.blog .cat-links > svg,
.archive:not(.post-type-archive-product) .cat-links > svg,
.blog .cat-links > img,
.archive:not(.post-type-archive-product) .cat-links > img,
.blog .cat-links .screen-reader-text,
.archive:not(.post-type-archive-product) .cat-links .screen-reader-text {
	display: none;
}

.blog .cat-links a,
.archive:not(.post-type-archive-product) .cat-links a {
	color: var(--caddy-text-muted) !important;
	text-decoration: none;
	position: relative;
	z-index: 2;
}

.blog .cat-links a:hover,
.archive:not(.post-type-archive-product) .cat-links a:hover {
	color: var(--caddy-text-primary) !important;
}

/* Hide comments link and tags in archive footer */
.blog .comments-link,
.archive:not(.post-type-archive-product) .comments-link,
.blog .tags-links,
.archive:not(.post-type-archive-product) .tags-links {
	display: none;
}

/* Hide read more button — whole card is clickable */
.blog .read-more,
.archive:not(.post-type-archive-product) .read-more {
	display: none;
}

.blog .post-image,
.archive:not(.post-type-archive-product) .post-image {
	margin-bottom: 16px;
}

.blog .post-image img,
.archive:not(.post-type-archive-product) .post-image img {
	border-radius: 8px;
	width: 100%;
	height: auto;
}

/* Pagination spans full grid */
.blog .site-main .pagination,
.archive:not(.post-type-archive-product) .site-main .pagination,
.blog .site-main nav.navigation,
.archive:not(.post-type-archive-product) .site-main nav.navigation {
	grid-column: 1 / -1;
}

.pagination,
.nav-links {
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-top: 40px;
}

.pagination .page-numbers,
.nav-links > a,
.nav-links > span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-width: 44px;
	height: 44px;
	padding: 0 16px;
	background: var(--caddy-bg-elevated);
	color: var(--caddy-text-primary);
	text-decoration: none;
	border-radius: 8px;
	transition: background-color 0.2s ease;
}

/* Prev/next pills carry text + arrow — wider padding than number pills */
.pagination a.prev,
.pagination a.next,
.nav-links a.prev,
.nav-links a.next {
	padding: 0 20px;
}

/* Arrow spans inside prev/next links are plain glyphs, not their own pill */
.pagination .page-numbers span,
.nav-links a span {
	display: inline;
	min-width: 0;
	height: auto;
	padding: 0;
	background: transparent;
}

.pagination .page-numbers:hover,
.pagination .page-numbers:focus,
.nav-links a:hover,
.nav-links a:focus {
	background: var(--caddy-primary);
	color: var(--caddy-on-primary);
}

.pagination .page-numbers.current,
.nav-links .current {
	background: var(--caddy-bg-inverted);
	color: #ffffff;
}

/* WooCommerce Pagination */
.woocommerce nav.woocommerce-pagination {
	margin-top: 48px;
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	justify-content: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
	border: none;
	white-space: normal;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: none;
	float: none;
	margin: 0;
	padding: 0;
	overflow: visible;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 14px;
	background: var(--caddy-bg-elevated);
	color: var(--caddy-text-primary);
	text-decoration: none;
	border: none;
	border-radius: 8px;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.woocommerce nav.woocommerce-pagination ul li a:focus,
.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--caddy-border);
	color: var(--caddy-text-primary);
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--caddy-bg-inverted);
	color: #ffffff;
}

[data-theme="dark"] .woocommerce nav.woocommerce-pagination ul li span.current {
	color: #0a0a0a;
}

/* ============================================
   Single Post
   ============================================ */

.caddy-post-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 80px 20px 60px;
	text-align: center;
	margin: 0;
	border-bottom: 1px solid var(--caddy-border);
	overflow: hidden;
}

.caddy-post-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-post-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}

.caddy-post-preheading {
	margin-bottom: 16px;
}

.caddy-post-title {
	color: var(--caddy-text-primary);
	margin-bottom: 24px;
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	line-height: 1.15;
	letter-spacing: -0.02em;
}

.caddy-post-meta {
	color: var(--caddy-text-muted);
	font-size: 0.95rem;
}

.caddy-post-separator {
	margin: 0 10px;
}

@media (max-width: 768px) {
	.caddy-post-hero {
		padding: 40px 20px 60px;
	}
}

body.single-post .site-main {
	/* content-box on purpose: prose tier = 750px of content, gutters extra.
	   body-prefixed to out-rank the generic system fallback near line 150. */
	box-sizing: content-box;
	max-width: var(--caddy-container-narrow);
	margin: 0 auto !important;
	padding: 60px var(--caddy-gutter);
}

/* Balance hero-bottom vs content-top spacing (60px each side of the border):
   core.css adds 40px padding-top on .site-content and GP leaves a 2em
   margin-top on .entry-content (its .entry-header is display:none here). */
.single-post .site-content {
	padding-top: 0;
}

.single-post .entry-content {
	margin-top: 0;
}

.single-post .inside-article {
	background-color: var(--caddy-bg-primary) !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
}

.single-post .entry-header {
	display: none;
}

.single-post .entry-meta {
	color: var(--caddy-text-muted);
	font-size: 0.95rem;
}

.single-post .entry-meta a {
	color: var(--caddy-text-muted);
	text-decoration: none;
}

.single-post .entry-meta a:hover {
	color: var(--caddy-text-primary);
}

.single-post .entry-content {
	color: var(--caddy-text-secondary);
	line-height: 1.8;
	font-size: 1.1rem;
}

.single-post .entry-content strong,
.single-post .entry-content b {
	color: var(--caddy-text-primary);
}

.single-post .entry-content p {
	margin-bottom: 1.5em;
}

.single-post .entry-content h2 {
	font-size: 1.75rem;
	color: var(--caddy-text-primary);
	margin: 2em 0 1em;
}

.single-post .entry-content h3 {
	font-size: 1.4rem;
	color: var(--caddy-text-primary);
	margin: 1.75em 0 0.75em;
}

.single-post .entry-content h4 {
	font-size: 1.2rem;
	color: var(--caddy-text-primary);
	margin: 1.5em 0 0.5em;
}

/* GP's all.min.css gives ol/ul a 3em margin-left — clear it and
   indent via padding only (same fix as playbooks.css lists). */
.single-post .entry-content ul,
.single-post .entry-content ol {
	margin-left: 0;
	margin-bottom: 1.5em;
	padding-left: 40px;
}

.single-post .entry-content li {
	margin-bottom: 0;
}

/* Plain-page content lists — clear GP's 3em ol/ul margin-left (same fix as
   blog singles / playbooks lists). GB-classed lists keep their own styling. */
.caddy-page-content ul:not([class*="gb-"]),
.caddy-page-content ol:not([class*="gb-"]) {
	margin-left: 0;
	padding-left: 40px;
}

/* Content tables (blog singles + playbooks + plain pages) — replace the heavy
   GP/browser table chrome with design-system cards: soft borders, elevated
   header row */
.single-post .entry-content .wp-block-table,
.pb-single-content .wp-block-table,
.caddy-page-content .wp-block-table {
	margin: 0 0 1.75em;
	overflow-x: auto;
}

.single-post .entry-content table,
.pb-single-content table,
.caddy-page-content table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	overflow: hidden;
	font-size: 0.95rem;
	line-height: 1.5;
}

.single-post .entry-content table th,
.single-post .entry-content table td,
.pb-single-content table th,
.pb-single-content table td,
.caddy-page-content table th,
.caddy-page-content table td {
	border: none;
	border-bottom: 1px solid var(--caddy-border-subtle);
	padding: 12px 16px;
	text-align: left;
	vertical-align: top;
}

.single-post .entry-content table th + th,
.single-post .entry-content table td + td,
.pb-single-content table th + th,
.pb-single-content table td + td,
.caddy-page-content table th + th,
.caddy-page-content table td + td {
	border-left: 1px solid var(--caddy-border-subtle);
}

/* Header row — works for both thead th and first-row th markup */
.single-post .entry-content table thead th,
.single-post .entry-content table tr:first-child th,
.pb-single-content table thead th,
.pb-single-content table tr:first-child th,
.caddy-page-content table thead th,
.caddy-page-content table tr:first-child th {
	background: var(--caddy-bg-elevated);
	font-family: var(--caddy-font-mono);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--caddy-text-primary);
	border-bottom: 1px solid var(--caddy-border);
}

.single-post .entry-content table tbody tr:last-child td,
.pb-single-content table tbody tr:last-child td,
.caddy-page-content table tbody tr:last-child td {
	border-bottom: none;
}

.single-post .entry-content table td strong,
.pb-single-content table td strong,
.caddy-page-content table td strong {
	color: var(--caddy-text-primary);
}

.single-post .entry-content blockquote {
	border-left: 4px solid var(--caddy-primary);
	margin: 2em 0;
	padding: 1em 1.5em;
	background: var(--caddy-bg-elevated);
	font-style: italic;
	color: var(--caddy-text-secondary);
}

.single-post .entry-content pre,
.single-post .entry-content code {
	background: var(--caddy-bg-elevated);
	border-radius: 6px;
}

.single-post .entry-content pre {
	padding: 1.5em;
	overflow-x: auto;
	margin-bottom: 1.5em;
}

.single-post .entry-content code {
	padding: 0.2em 0.4em;
	font-size: 0.9em;
}

.single-post .entry-content pre code {
	padding: 0;
	background: none;
}

.single-post .entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: 6px;
	margin: 1.5em 0;
}

.single-post .entry-footer {
	margin-top: 40px;
	padding-top: 30px;
	border-top: 1px solid var(--caddy-border);
}

.single-post .cat-links,
.single-post .tags-links {
	display: block;
	margin-bottom: 10px;
	color: var(--caddy-text-muted);
	font-size: 0.9rem;
}

.single-post .cat-links a,
.single-post .tags-links a {
	color: var(--caddy-text-primary);
	text-decoration: none;
}

.single-post .cat-links a:hover,
.single-post .tags-links a:hover {
	text-decoration: underline;
}

/* Post Navigation */
.post-navigation {
	margin-top: 60px;
	padding-top: 40px;
	border-top: 1px solid #e5e5e5;
}

.post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
}

.post-navigation .nav-previous,
.post-navigation .nav-next {
	display: flex;
	flex-direction: column;
}

.post-navigation .nav-next {
	text-align: right;
}

.post-navigation .nav-subtitle {
	font-size: 0.85rem;
	color: #888888;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-bottom: 8px;
}

.post-navigation a {
	color: #0a0a0a;
	text-decoration: none;
	font-weight: 500;
	transition: color 0.2s ease;
}

.post-navigation a:hover {
	color: #333333;
}

@media (max-width: 768px) {
	.single-post .entry-title {
		font-size: 1.8rem;
	}
	.single-post .entry-content {
		font-size: 1rem;
	}
	.post-navigation .nav-links {
		grid-template-columns: 1fr;
	}
	.post-navigation .nav-next {
		text-align: left;
	}
}

/* ============================================
   Support Page
   ============================================ */

/* Reset GP wrappers on support page */
.page-template-page-support .site-content {
	padding: 0 !important;
}

.page-template-page-support .inside-article {
	background-color: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	max-width: 100% !important;
}

.page-template-page-support .entry-content {
	padding: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;
}

/* Break .caddy-support-page out of the GP container */
.caddy-support-page {
	width: 100vw;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	overflow: hidden;
	background-color: var(--caddy-bg-primary);
	color: var(--caddy-text-secondary);
}

.caddy-support-page h1,
.caddy-support-page h2,
.caddy-support-page h3,
.caddy-support-page h4 {
	font-family: var(--caddy-font-display);
	font-weight: normal;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: var(--caddy-text-primary);
}

/* Hero */
.caddy-support-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 80px 20px;
	text-align: center;
	border-bottom: 1px solid var(--caddy-border);
	overflow: hidden;
}

.caddy-support-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-support-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}

.caddy-support-hero .caddy-section-title {
	color: var(--caddy-text-primary);
}

.caddy-support-hero-desc {
	color: var(--caddy-text-muted);
	line-height: 1.7;
	margin: 0;
	font-size: 1.0625rem;
}

/* Support Options */
.caddy-support-options {
	background-color: var(--caddy-bg-primary);
	padding: 100px 0;
}

.caddy-support-options-inner {
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding: 0 var(--caddy-gutter);
}

.caddy-support-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 30px;
}

.caddy-support-card {
	background: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	padding: 40px;
	text-align: center;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	transition: background-color 0.2s ease;
}

.caddy-support-card:hover {
	background: var(--caddy-bg-card-hover);
}


.caddy-support-card-icon {
	margin-bottom: 20px;
}

.caddy-support-card-icon svg {
	width: 48px;
	height: 48px;
	fill: currentColor;
	color: var(--caddy-text-primary);
}


.caddy-support-card-title {
	color: var(--caddy-text-primary);
	margin-bottom: 12px;
	font-size: 1.25rem;
}


.caddy-support-card-desc {
	color: var(--caddy-text-muted);
	line-height: 1.7;
	margin-bottom: 24px;
	flex-grow: 1;
}


.caddy-support-card-link {
	color: var(--caddy-text-primary);
	font-weight: 500;
}

/* FAQ */
.caddy-support-faq {
	background-color: var(--caddy-bg-card);
	padding: 100px 20px;
}

.caddy-support-faq-inner {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto !important;
}

.caddy-support-faq-header {
	text-align: center;
	margin-bottom: 60px;
}

.caddy-support-faq .caddy-section-title {
	color: var(--caddy-text-primary);
}

.caddy-faq-list {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.caddy-faq-item {
	background: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	padding: 32px;
	border-radius: var(--caddy-radius-lg);
}

.caddy-faq-question {
	color: var(--caddy-text-primary);
	margin-bottom: 12px;
	font-size: 1.1rem;
}

.caddy-faq-answer {
	color: var(--caddy-text-muted);
	line-height: 1.7;
	margin: 0;
}

/* Contact CTA */
.caddy-support-cta {
	background-color: #0a0a0a;
	padding: 100px 20px;
	text-align: center;
}

.caddy-support-cta-inner {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto !important;
}

.caddy-support-cta .caddy-section-title {
	color: #ffffff;
}

.caddy-support-cta-text {
	color: rgb(255 255 255 / 55%);
	line-height: 1.7;
	margin-bottom: 32px;
}

@media (max-width: 1024px) {
	.caddy-support-grid {
		grid-template-columns: 1fr;
	}

	.caddy-support-options,
	.caddy-support-faq,
	.caddy-support-cta {
		padding: 70px 20px;
	}
}

@media (max-width: 768px) {
	.caddy-support-hero {
		padding: 40px 20px 60px;
	}
}

/* ============================================
   Single Product Page - Two Column Layout
   ============================================ */

.single-product {
	overflow-x: hidden;
}

.single-product .site-content,
.single-product #primary {
	width: 100%;
	max-width: 100%;
}

.single-product .inside-article {
	max-width: 100%;
	padding: 0;
	background-color: var(--caddy-bg-primary) !important;
}

.single-product .woocommerce-breadcrumb,
.single-product .woocommerce-tabs {
	display: none !important;
}

/* Breadcrumbs — shared component, rendered by caddy_2026_breadcrumbs()
   (inc/setup.php) on features, docs, posts, playbooks, and downloads.
   Base = standalone bar (single download). Context resets below adapt it
   to heroes and the docs article header. */
.caddy-breadcrumbs {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 20px var(--caddy-gutter) 0;
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
}

.caddy-breadcrumbs a {
	color: var(--caddy-text-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

.caddy-breadcrumbs a:hover {
	color: var(--caddy-text-primary);
}

.caddy-breadcrumb-separator {
	margin: 0 8px;
	color: var(--caddy-border-strong);
}

.caddy-breadcrumb-current {
	color: var(--caddy-text-primary);
}

/* In-hero / in-header contexts: flow with the parent, no container chrome */
.caddy-hero-inner .caddy-breadcrumbs,
.caddy-post-hero-inner .caddy-breadcrumbs,
.pb-single-hero__inner .caddy-breadcrumbs,
.caddy-docs-article-header .caddy-breadcrumbs {
	max-width: none;
	margin: 0 0 16px;
	padding: 0;
}

/* Long titles (posts, docs, playbooks): keep the trail to one line */
.caddy-post-hero-inner .caddy-breadcrumb-current,
.pb-single-hero__inner .caddy-breadcrumb-current,
.caddy-docs-article-header .caddy-breadcrumb-current {
	display: inline-block;
	max-width: 32ch;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	vertical-align: bottom;
}

/* Two-column layout */
.caddy-product-layout {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 40px;
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 60px var(--caddy-gutter);
	box-sizing: border-box;
}

.caddy-product-main {
	min-width: 0;
}

/* Product Header */
.caddy-product-header {
	display: flex;
	align-items: flex-start;
	gap: 20px;
	margin-bottom: 24px;
}

.caddy-product-icon {
	width: 64px;
	height: 64px;
	flex-shrink: 0;
	border-radius: var(--caddy-radius-lg);
	overflow: hidden;
	background-color: var(--caddy-primary);
	border: none;
	padding: 16px;
}

.caddy-product-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.caddy-product-header-text {
	flex: 1;
	min-width: 0;
}

.caddy-product-author {
	margin: 4px 0 0;
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
}

.caddy-product-author a {
	color: var(--caddy-text-primary);
	text-decoration: none;
	font-weight: 500;
}

.caddy-product-author a:hover {
	text-decoration: underline;
}

.caddy-product-title {
	font-size: var(--caddy-h1-size);
	color: var(--caddy-text-primary);
	margin: 0;
	line-height: 1.15;
	font-weight: normal;
	letter-spacing: -0.02em;
}

/* Short Description */
.caddy-product-excerpt {
	color: var(--caddy-text-secondary);
	font-size: 1.0625rem;
	line-height: 1.7;
	margin-bottom: 32px;
}

.caddy-product-excerpt p {
	margin: 0 0 1em;
}

.caddy-product-excerpt p:last-child {
	margin-bottom: 0;
}

/* Product Gallery */
.caddy-product-gallery {
	margin-bottom: 32px;
}

.caddy-product-featured-image {
	position: relative;
	width: 100%;
	aspect-ratio: auto;
	padding-top: 35px;
	overflow: hidden;
	border-radius: var(--caddy-radius-lg);
	border: 1px solid var(--caddy-border);
	margin-bottom: 12px;
	background: var(--caddy-bg-surface);
}

.caddy-product-featured-image img {
	width: 100%;
	height: auto;
	object-fit: contain;
	transition: opacity 0.2s ease;
	display: block;
}

/* Gallery Thumbnails */
.caddy-gallery-thumbs-wrapper {
	position: relative;
	display: flex;
	align-items: center;
	gap: 8px;
}

.caddy-gallery-thumbs-track {
	flex: 1;
	overflow: hidden;
}

.caddy-gallery-thumbs {
	display: flex;
	gap: 12px;
	transition: transform 0.3s ease;
}

.caddy-gallery-thumb {
	flex: 0 0 calc((100% - 24px) / 3);
	aspect-ratio: auto;
	overflow: hidden;
	border-radius: var(--caddy-radius);
	border: 2px solid var(--caddy-border);
	background: var(--caddy-bg-surface);
	padding: 0;
	cursor: pointer;
	transition: border-color 0.2s ease;
}

.caddy-gallery-thumb:hover {
	border-color: var(--caddy-border-hover);
}

.caddy-gallery-thumb.active {
	border-color: var(--caddy-text-primary);
}

.caddy-gallery-thumb img {
	width: 100%;
	height: auto;
	object-fit: contain;
	display: block;
}

button.caddy-gallery-nav {
	flex-shrink: 0;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px;
	min-height: 36px;
	border-radius: 50% !important;
	border: 1px solid var(--caddy-border-strong) !important;
	background: var(--caddy-bg-primary) !important;
	color: var(--caddy-text-primary) !important;
	font-size: 20px;
	font-weight: 400;
	line-height: 36px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

button.caddy-gallery-nav:hover {
	background: var(--caddy-bg-surface) !important;
	border-color: var(--caddy-border-hover) !important;
	color: var(--caddy-text-primary) !important;
}

/* Full Description */
.caddy-product-description {
	color: var(--caddy-text-secondary);
	font-size: 1rem;
	line-height: 1.8;
	margin-bottom: 40px;
}

.caddy-product-description p {
	margin: 0 0 1.5em;
}

.caddy-product-description h2,
.caddy-product-description h3,
.caddy-product-description h4 {
	color: var(--caddy-text-primary);
	margin: 2em 0 1em;
}

.caddy-product-description ul,
.caddy-product-description ol {
	margin-bottom: 1.5em;
	padding-left: 1.5em;
}

.caddy-product-description li {
	margin-bottom: 0.5em;
}

/* In-content feature lists -> green checkmark bullets (matches the template's
   .caddy-includes-list, but for editor-built ul.wp-block-list content). */
.caddy-product-description ul.wp-block-list {
	list-style: none;
	padding-left: 0;
	margin: 0 0 1.5em;
}

.caddy-product-description ul.wp-block-list li {
	position: relative;
	padding-left: 30px;
	margin-bottom: 0.55em;
	line-height: 1.5;
}

.caddy-product-description ul.wp-block-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 18px;
	height: 18px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2322c55e' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") no-repeat center / contain;
}

.caddy-product-description ul.wp-block-list ul.wp-block-list {
	margin: 0.55em 0 0;
}

/* Notify form (Fluent Forms) — tighten width + align controls to the site. */
.caddy-product-description .fluentform {
	max-width: 520px;
}

.caddy-product-description .fluentform .ff-el-group {
	margin-bottom: 18px;
}

.caddy-product-description .fluentform .ff-el-tc .ff-el-form-check-label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.9rem;
	line-height: 1.5;
	color: var(--caddy-text-secondary);
}

/* Submit button -> site button recipe (body font, sentence case, purple). */
.caddy-product-description .fluentform .ff-btn-submit {
	background-color: var(--caddy-primary) !important;
	border: 1px solid var(--caddy-primary) !important;
	color: var(--caddy-on-primary) !important;
	font-family: var(--caddy-font-body) !important;
	font-size: var(--caddy-btn-font-size) !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	padding: var(--caddy-btn-padding) !important;
	border-radius: var(--caddy-btn-radius) !important;
}

.caddy-product-description .fluentform .ff-btn-submit:hover {
	background-color: var(--caddy-primary-hover) !important;
	border-color: var(--caddy-primary-hover) !important;
}

/* Hide default WooCommerce elements */
.single-product .woocommerce-product-gallery,
.single-product .product .summary,
.single-product .product_title {
	display: none !important;
}

/* Sidebar */
.caddy-product-sidebar {
	min-width: 0;
}

.caddy-sidebar-sticky {
	position: sticky;
	top: 100px;
}

/* Plan options */
.caddy-plan-options {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin-bottom: 20px;
}

.caddy-plan-option {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.caddy-plan-option:hover {
	border-color: var(--caddy-border-strong);
}

.caddy-plan-option.selected {
	border-color: var(--caddy-text-primary);
	background: var(--caddy-bg-elevated);
}

.caddy-plan-option input[type="radio"] {
	display: none;
}

.caddy-plan-name {
	font-weight: 500;
	color: var(--caddy-text-primary);
}

.caddy-plan-price {
	font-weight: 600;
	color: var(--caddy-text-primary);
}

.caddy-plan-period {
	font-weight: 400;
	color: var(--caddy-text-muted);
	font-size: 0.9em;
}

.caddy-simple-price {
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin-bottom: 20px;
}

.caddy-simple-price .woocommerce-Price-amount {
	font-weight: 700;
}

/* WooCommerce Add to Cart in Sidebar */
.caddy-wc-add-to-cart {
	margin-bottom: 24px;
}

.caddy-wc-add-to-cart .variations {
	display: none !important;
}

.caddy-wc-add-to-cart .reset_variations {
	display: none !important;
}

.caddy-wc-add-to-cart .woocommerce-variation-price {
	display: none !important;
}

.caddy-wc-add-to-cart .woocommerce-variation-description {
	display: none !important;
}

.caddy-wc-add-to-cart .woocommerce-variation-availability {
	display: none !important;
}

.caddy-wc-add-to-cart .single_add_to_cart_button {
	display: block;
	width: 100%;
	background: var(--caddy-primary);
	color: var(--caddy-text-primary);
	border: none;
	padding: 16px 24px;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.caddy-wc-add-to-cart .single_add_to_cart_button:hover {
	background: var(--caddy-primary-hover);
	color: var(--caddy-text-primary);
}

.caddy-wc-add-to-cart .single_add_to_cart_button.disabled,
.caddy-wc-add-to-cart .single_add_to_cart_button:disabled {
	background: var(--caddy-border-strong);
	cursor: not-allowed;
}

.caddy-wc-add-to-cart .quantity {
	display: none !important;
}

/* Stripe Express Checkout */
.caddy-wc-add-to-cart #wc-stripe-payment-request-wrapper,
.caddy-wc-add-to-cart .wc-stripe-payment-request-button-wrapper {
	margin-top: 16px;
}

.caddy-wc-add-to-cart #wc-stripe-payment-request-button-separator {
	margin: 16px 0;
	text-align: center;
	color: var(--caddy-text-muted);
	font-size: 0.9rem;
}

.caddy-wc-add-to-cart .cart {
	margin: 0;
}

.caddy-wc-add-to-cart .variations_form {
	margin: 0;
}

.woocommerce div.product form.cart {
	margin-bottom: 0;
}

/* Sidebar stats */
.caddy-sidebar-stats {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 24px;
}

.caddy-stat-box {
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	padding: 16px;
	text-align: center;
}

.caddy-stat-label {
	display: block;
	font-family: var(--caddy-font-mono);
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--caddy-text-muted);
	margin-bottom: 4px;
}

.caddy-stat-value {
	font-size: 1rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
}

.caddy-star {
	color: #f5a623;
}

.caddy-stat-count {
	font-weight: 400;
	color: var(--caddy-text-muted);
}

.caddy-stat-none {
	font-weight: 400;
	color: var(--caddy-text-faint);
	font-size: 0.85rem;
}

/* Sidebar sections */
.caddy-sidebar-section {
	margin-bottom: 24px;
}

.caddy-sidebar-heading {
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--caddy-text-primary);
	margin: 0 0 12px;
}

/* Subscription includes */
.caddy-includes-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.caddy-includes-list li {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 6px 0;
	color: var(--caddy-text-secondary);
	font-size: 0.9rem;
	line-height: 1.4;
}

.caddy-check-icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	color: #22c55e;
	margin-top: 1px;
}

/* Support links */
.caddy-support-links {
	list-style: none;
	padding: 0;
	margin: 0;
}

.caddy-support-links li {
	margin-bottom: 8px;
}

.caddy-support-links a {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--caddy-text-primary);
	text-decoration: none;
	font-size: 0.9rem;
	transition: color 0.2s ease;
}

.caddy-support-links a:hover {
	color: var(--caddy-text-muted);
}

.caddy-support-links svg {
	width: 18px;
	height: 18px;
	color: var(--caddy-text-muted);
}

/* All Access sidebar CTA */
.caddy-sidebar-allaccess {
	position: relative;
	padding: 24px;
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-radius);
	background-color: var(--caddy-bg-elevated);
	text-align: center;
	margin-bottom: 24px;
}

.caddy-sidebar-allaccess-badge {
	position: absolute;
	top: -10px;
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	padding: 3px 12px;
	border-radius: 100px;
	white-space: nowrap;
}

.caddy-sidebar-allaccess-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin: 8px 0 8px;
}

.caddy-sidebar-allaccess-desc {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	line-height: 1.5;
	margin: 0 0 12px;
}

.caddy-sidebar-allaccess-price {
	font-size: 1.125rem;
	font-weight: 700;
	color: var(--caddy-text-primary);
	margin: 0 0 16px;
}

.caddy-sidebar-allaccess-price span {
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--caddy-text-muted);
}

/* Cross-sells */
.caddy-cross-sells {
	padding: 60px var(--caddy-gutter);
	border-top: 1px solid var(--caddy-border);
	background-color: var(--caddy-bg-primary);
}

.caddy-cross-sells-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
}

.caddy-cross-sells-title {
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	color: var(--caddy-text-primary);
	margin: 0 0 32px;
	font-weight: normal;
	letter-spacing: -0.02em;
}

.caddy-cross-sells-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background-color: var(--caddy-border);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	overflow: hidden;
}

.caddy-cross-sell-card {
	display: flex;
	align-items: center;
	gap: 16px;
	background: var(--caddy-bg-card);
	padding: 24px;
	text-decoration: none;
	transition: background-color 0.2s ease;
}

.caddy-cross-sell-card:hover {
	background: var(--caddy-bg-card-hover);
}

.caddy-cross-sell-image {
	width: 48px;
	height: 48px;
	flex-shrink: 0;
	border-radius: var(--caddy-radius);
	overflow: hidden;
	border: none;
	background: var(--caddy-primary);
	padding: 12px;
}

.caddy-cross-sell-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.caddy-cross-sell-image .caddy-icon-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--caddy-bg-surface);
	border-radius: 4px;
}

.caddy-cross-sell-info {
	min-width: 0;
}

.caddy-cross-sell-name {
	font-size: 1rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0 0 4px;
}

.caddy-cross-sell-price {
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	margin: 0;
}

/* Reviews */
.caddy-product-reviews {
	margin-top: 60px;
	padding-top: 60px;
	border-top: 1px solid var(--caddy-border);
}

.caddy-product-reviews h2 {
	font-size: clamp(1.25rem, 2.5vw, 1.5rem);
	color: var(--caddy-text-primary);
	margin: 0 0 32px;
	font-weight: normal;
	letter-spacing: -0.02em;
}

.caddy-product-reviews #reviews {
	margin: 0;
}

.caddy-product-reviews .woocommerce-Reviews-title {
	display: none;
}

.caddy-product-reviews #comments {
	margin: 0;
}

.caddy-product-reviews .commentlist {
	list-style: none;
	padding: 0;
	margin: 0;
}

.caddy-product-reviews .commentlist li {
	padding: 24px 0;
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-product-reviews .commentlist li:first-child {
	padding-top: 0;
}

.caddy-product-reviews .comment_container {
	display: flex;
	gap: 16px;
}

.caddy-product-reviews .comment_container img.avatar {
	width: 48px;
	height: 48px;
	border-radius: 50%;
}

.caddy-product-reviews .comment-text {
	flex: 1;
}

.caddy-product-reviews .star-rating {
	margin-bottom: 8px;
}

.caddy-product-reviews .meta {
	margin-bottom: 8px;
}

.caddy-product-reviews .woocommerce-review__author {
	font-weight: 600;
	color: var(--caddy-text-primary);
}

.caddy-product-reviews .woocommerce-review__published-date {
	color: var(--caddy-text-muted);
	font-size: 0.9rem;
}

.caddy-product-reviews .description p {
	margin: 0;
	color: var(--caddy-text-secondary);
	line-height: 1.6;
}

.caddy-product-reviews #review_form_wrapper {
	margin-top: 40px;
}

.caddy-product-reviews .comment-reply-title {
	font-size: 1.25rem;
	color: var(--caddy-text-primary);
	margin: 0 0 20px;
}

.caddy-product-reviews .comment-form label {
	display: block;
	margin-bottom: 6px;
	font-weight: 500;
	color: var(--caddy-text-primary);
}

.caddy-product-reviews .comment-form input[type="text"],
.caddy-product-reviews .comment-form input[type="email"],
.caddy-product-reviews .comment-form textarea {
	width: 100%;
	padding: var(--caddy-input-padding);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	font-size: var(--caddy-input-font-size);
	background: var(--caddy-bg-primary);
	color: var(--caddy-text-primary);
}

.caddy-product-reviews .comment-form input:focus,
.caddy-product-reviews .comment-form textarea:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

.caddy-product-reviews .comment-form textarea {
	min-height: 120px;
}

.caddy-product-reviews .comment-form .form-submit input {
	background: var(--caddy-bg-inverted);
	color: #ffffff;
	border: none;
	padding: 14px 28px;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.caddy-product-reviews .comment-form .form-submit input:hover {
	background: #333333;
}

/* Product page responsive */
@media (max-width: 1024px) {
	.caddy-product-layout {
		grid-template-columns: 1fr;
		gap: 40px;
	}
	.caddy-sidebar-sticky {
		position: static;
	}
	.caddy-cross-sells-grid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 640px) {
	.caddy-product-layout {
		padding: 40px 16px;
	}
	.caddy-cross-sells-grid {
		grid-template-columns: 1fr;
	}
}

/* WooCommerce notice styling */
.single-product .woocommerce-notices-wrapper {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 20px var(--caddy-gutter);
}

.single-product .woocommerce-notices-wrapper:empty,
.single-product .woocommerce-notices-wrapper:not(:has(*)) {
	display: none;
}

.single-product .woocommerce-message {
	background: #f0f9f0;
	border: 1px solid #c3e6cb;
	color: #155724;
	padding: 16px 20px;
	border-radius: var(--caddy-radius);
	margin-bottom: 0;
}

/* ============================================
   Waitlist Form in Product Sidebar
   ============================================ */

.caddy-waitlist-sidebar {
	margin-bottom: 24px;
}

.caddy-waitlist-sidebar .caddy-waitlist-form-wrapper {
	background: var(--caddy-bg-surface);
	border-radius: var(--caddy-radius);
	padding: 20px;
}

.caddy-waitlist-sidebar .caddy-waitlist-fields {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.caddy-waitlist-sidebar .caddy-waitlist-field label {
	display: block;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--caddy-text-secondary);
	margin-bottom: 6px;
}

.caddy-waitlist-sidebar .caddy-waitlist-field input[type="text"],
.caddy-waitlist-sidebar .caddy-waitlist-field input[type="email"] {
	width: 100%;
	padding: 12px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	font-size: 1rem;
	background: var(--caddy-bg-primary);
	color: var(--caddy-text-primary);
}

.caddy-waitlist-sidebar .caddy-waitlist-field input:focus {
	outline: none;
	border-color: var(--caddy-primary);
}

.caddy-waitlist-sidebar .caddy-waitlist-submit {
	margin-top: 16px;
}

.caddy-waitlist-sidebar .caddy-waitlist-button,
.caddy-waitlist-sidebar .button.caddy-waitlist-button,
.caddy-waitlist-sidebar button.caddy-waitlist-button {
	display: block;
	width: 100%;
	background: var(--caddy-bg-inverted) !important;
	color: #ffffff !important;
	border: none !important;
	padding: 14px 24px;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.caddy-waitlist-sidebar .caddy-waitlist-button:hover,
.caddy-waitlist-sidebar .button.caddy-waitlist-button:hover,
.caddy-waitlist-sidebar button.caddy-waitlist-button:hover {
	background: #333333 !important;
	color: #ffffff !important;
}

.caddy-waitlist-sidebar .caddy-waitlist-message {
	margin-top: 12px;
	padding: 12px;
	border-radius: 6px;
	font-size: 0.9rem;
}

.caddy-waitlist-sidebar .caddy-waitlist-message.success {
	background: #f0f9f0;
	color: #155724;
	border: 1px solid #c3e6cb;
}

.caddy-waitlist-sidebar .caddy-waitlist-message.error {
	background: #fdf0f0;
	color: #721c24;
	border: 1px solid #f5c6cb;
}

.caddy-waitlist-sidebar .caddy-waitlist-already-subscribed,
.caddy-waitlist-sidebar .caddy-waitlist-message.caddy-waitlist-already-subscribed {
	background: var(--caddy-bg-surface) !important;
	border: none !important;
	padding: 16px;
	border-radius: var(--caddy-radius);
	text-align: center;
}

.caddy-waitlist-sidebar .caddy-waitlist-already-subscribed p {
	margin: 0;
	color: var(--caddy-text-secondary);
	font-size: 0.95rem;
}

.caddy-waitlist-sidebar .caddy-waitlist-field-consent {
	font-size: 0.85rem;
}

.caddy-waitlist-sidebar .caddy-waitlist-consent-label {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	cursor: pointer;
}

.caddy-waitlist-sidebar .caddy-waitlist-consent-label input[type="checkbox"] {
	margin-top: 3px;
}

.caddy-waitlist-sidebar .caddy-waitlist-consent-text {
	color: var(--caddy-text-muted);
	line-height: 1.4;
}

.caddy-waitlist-sidebar .caddy-waitlist-consent-text a {
	color: var(--caddy-text-primary);
	text-decoration: underline;
}

/* Ensure Add to Cart button styling */
.caddy-product-sidebar .caddy-wc-add-to-cart .single_add_to_cart_button,
.caddy-product-sidebar .caddy-wc-add-to-cart button.single_add_to_cart_button,
.caddy-product-sidebar .caddy-wc-add-to-cart .button.single_add_to_cart_button {
	display: block;
	width: 100%;
	background: var(--caddy-primary) !important;
	color: var(--caddy-text-primary) !important;
	border: none !important;
	padding: 16px 24px;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.caddy-product-sidebar .caddy-wc-add-to-cart .single_add_to_cart_button:hover,
.caddy-product-sidebar .caddy-wc-add-to-cart button.single_add_to_cart_button:hover {
	background: var(--caddy-primary-hover) !important;
	color: var(--caddy-text-primary) !important;
}

/* ============================================
   Waitlist Plugin Style Overrides
   ============================================ */

.caddy-product-sidebar .caddy-waitlist-form-wrapper .button,
.caddy-product-sidebar .caddy-waitlist-form-wrapper button,
.caddy-product-sidebar .caddy-waitlist-button,
.caddy-waitlist-sidebar .button,
.caddy-waitlist-sidebar button[type="submit"] {
	background: var(--caddy-bg-inverted) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.caddy-product-sidebar .caddy-waitlist-form-wrapper .button:hover,
.caddy-product-sidebar .caddy-waitlist-form-wrapper button:hover,
.caddy-product-sidebar .caddy-waitlist-button:hover,
.caddy-waitlist-sidebar .button:hover,
.caddy-waitlist-sidebar button[type="submit"]:hover {
	background: #333333 !important;
	color: #ffffff !important;
}

/* Shop archive "Get Notified" button */
.woocommerce ul.products li.product .caddy-waitlist-archive-button,
.woocommerce ul.products li.product a.caddy-waitlist-archive-button {
	background: var(--caddy-bg-inverted) !important;
	color: #ffffff !important;
	border: none !important;
	padding: 12px 24px;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: background-color 0.2s ease;
	width: 100%;
	text-align: center;
	display: block;
}

.woocommerce ul.products li.product .caddy-waitlist-archive-button:hover,
.woocommerce ul.products li.product a.caddy-waitlist-archive-button:hover {
	background: #333333 !important;
	color: #ffffff !important;
}

/* Waitlist modal */
.caddy-waitlist-modal-actions button,
.caddy-waitlist-modal-actions .button,
.caddy-waitlist-modal-form button[type="submit"] {
	background: var(--caddy-bg-inverted) !important;
	color: #ffffff !important;
	border: none !important;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: background-color 0.2s ease;
}

.caddy-waitlist-modal-actions button:hover,
.caddy-waitlist-modal-actions .button:hover,
.caddy-waitlist-modal-form button[type="submit"]:hover {
	background: #333333 !important;
	color: #ffffff !important;
}

.caddy-waitlist-modal-form .caddy-waitlist-field input {
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
}

/* ============================================
   Dark Mode — Single Product Page
   ============================================ */

[data-theme="dark"] .single-product .site-content,
[data-theme="dark"] .single-product .site-main,
[data-theme="dark"] .single-product .inside-article {
	background-color: var(--caddy-bg-primary) !important;
}

/* Product icon: keep lime bg, invert the icon so it's visible */
[data-theme="dark"] .caddy-product-icon {
	background-color: var(--caddy-primary);
}

[data-theme="dark"] .caddy-product-icon img {
	filter: none;
}

/* Breadcrumb links visible in dark mode */
[data-theme="dark"] .caddy-breadcrumbs a {
	color: var(--caddy-text-muted);
}

[data-theme="dark"] .caddy-breadcrumbs a:hover {
	color: var(--caddy-text-primary);
}

[data-theme="dark"] .caddy-breadcrumb-separator {
	color: var(--caddy-text-faint);
}

/* Add to cart button uses primary color in both modes */
[data-theme="dark"] .caddy-wc-add-to-cart .single_add_to_cart_button,
[data-theme="dark"] .caddy-product-sidebar .caddy-wc-add-to-cart .single_add_to_cart_button,
[data-theme="dark"] .caddy-product-sidebar .caddy-wc-add-to-cart button.single_add_to_cart_button,
[data-theme="dark"] .caddy-product-sidebar .caddy-wc-add-to-cart .button.single_add_to_cart_button {
	background: var(--caddy-primary) !important;
	color: var(--caddy-on-primary) !important;
}

[data-theme="dark"] .caddy-wc-add-to-cart .single_add_to_cart_button:hover,
[data-theme="dark"] .caddy-product-sidebar .caddy-wc-add-to-cart .single_add_to_cart_button:hover,
[data-theme="dark"] .caddy-product-sidebar .caddy-wc-add-to-cart button.single_add_to_cart_button:hover {
	background: var(--caddy-primary-hover) !important;
	color: var(--caddy-on-primary) !important;
}

/* Waitlist buttons invert in dark mode */
[data-theme="dark"] .caddy-waitlist-sidebar .caddy-waitlist-button,
[data-theme="dark"] .caddy-waitlist-sidebar .button.caddy-waitlist-button,
[data-theme="dark"] .caddy-waitlist-sidebar button.caddy-waitlist-button,
[data-theme="dark"] .caddy-product-sidebar .caddy-waitlist-form-wrapper .button,
[data-theme="dark"] .caddy-product-sidebar .caddy-waitlist-form-wrapper button,
[data-theme="dark"] .caddy-product-sidebar .caddy-waitlist-button,
[data-theme="dark"] .caddy-waitlist-sidebar .button,
[data-theme="dark"] .caddy-waitlist-sidebar button[type="submit"] {
	background: #ffffff !important;
	color: #0a0a0a !important;
}

[data-theme="dark"] .caddy-waitlist-sidebar .caddy-waitlist-button:hover,
[data-theme="dark"] .caddy-waitlist-sidebar .button.caddy-waitlist-button:hover,
[data-theme="dark"] .caddy-waitlist-sidebar button.caddy-waitlist-button:hover,
[data-theme="dark"] .caddy-product-sidebar .caddy-waitlist-form-wrapper .button:hover,
[data-theme="dark"] .caddy-product-sidebar .caddy-waitlist-form-wrapper button:hover,
[data-theme="dark"] .caddy-product-sidebar .caddy-waitlist-button:hover,
[data-theme="dark"] .caddy-waitlist-sidebar .button:hover,
[data-theme="dark"] .caddy-waitlist-sidebar button[type="submit"]:hover {
	background: rgb(255 255 255 / 85%) !important;
	color: #0a0a0a !important;
}

/* Reviews text in dark mode */
[data-theme="dark"] .caddy-product-reviews .woocommerce-noreviews,
[data-theme="dark"] .caddy-product-reviews .woocommerce-verification-required,
[data-theme="dark"] .caddy-product-reviews #reviews p,
[data-theme="dark"] .caddy-product-reviews #comments p {
	color: var(--caddy-text-secondary);
}

/* Review form submit button */
[data-theme="dark"] .caddy-product-reviews .comment-form .form-submit input {
	background: #ffffff;
	color: #0a0a0a;
}

[data-theme="dark"] .caddy-product-reviews .comment-form .form-submit input:hover {
	background: rgb(255 255 255 / 85%);
	color: #0a0a0a;
}

/* Cross-sell cards: match dark card style */
[data-theme="dark"] .caddy-cross-sells-grid {
	background-color: var(--caddy-border);
}

/* Cross-sell icon: keep lime bg in dark mode */
[data-theme="dark"] .caddy-cross-sell-image {
	background-color: var(--caddy-primary);
	border: none;
}

/* Notice styling in dark mode */
[data-theme="dark"] .single-product .woocommerce-message {
	background: #1a2e1a;
	border-color: #2d4a2d;
	color: #8fdf8f;
}

/* Waitlist modal dark mode */
[data-theme="dark"] .caddy-waitlist-modal-actions button,
[data-theme="dark"] .caddy-waitlist-modal-actions .button,
[data-theme="dark"] .caddy-waitlist-modal-form button[type="submit"] {
	background: #ffffff !important;
	color: #0a0a0a !important;
}

[data-theme="dark"] .caddy-waitlist-modal-actions button:hover,
[data-theme="dark"] .caddy-waitlist-modal-actions .button:hover,
[data-theme="dark"] .caddy-waitlist-modal-form button[type="submit"]:hover {
	background: rgb(255 255 255 / 85%) !important;
	color: #0a0a0a !important;
}

/* ============================================
   LEGAL PAGES (Terms, Privacy)
   ============================================ */

.page-terms .inside-article,
.page-privacy-policy .inside-article {
	background-color: var(--caddy-bg-primary) !important;
	padding: 0 !important;
	border: none !important;
	box-shadow: none !important;
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
}

.page-terms .entry-header,
.page-privacy-policy .entry-header {
	padding: 48px var(--caddy-gutter) 0;
}

.page-terms .entry-header h1,
.page-privacy-policy .entry-header h1 {
	font-size: var(--caddy-h1-size);
	color: var(--caddy-text-primary);
	margin: 0;
}

.page-terms .entry-content,
.page-privacy-policy .entry-content {
	padding: 24px var(--caddy-gutter) 64px;
	color: var(--caddy-text-secondary);
	line-height: 1.8;
	font-size: 1.05rem;
}

.page-terms .entry-content h1,
.page-privacy-policy .entry-content h1 {
	font-size: 2rem;
	color: var(--caddy-text-primary);
	margin: 0 0 0.5em;
}

.page-terms .entry-content h2,
.page-privacy-policy .entry-content h2 {
	font-size: 1.5rem;
	color: var(--caddy-text-primary);
	margin: 2em 0 0.75em;
}

.page-terms .entry-content h3,
.page-privacy-policy .entry-content h3 {
	font-size: 1.25rem;
	color: var(--caddy-text-primary);
	margin: 1.75em 0 0.5em;
}

.page-terms .entry-content p,
.page-privacy-policy .entry-content p {
	margin-bottom: 1.25em;
}

.page-terms .entry-content ul,
.page-privacy-policy .entry-content ul,
.page-terms .entry-content ol,
.page-privacy-policy .entry-content ol {
	margin-left: 0;
	margin-bottom: 1.25em;
	padding-left: 40px;
}

.page-terms .entry-content li,
.page-privacy-policy .entry-content li {
	margin-bottom: 0.5em;
}

.page-terms .entry-content a,
.page-privacy-policy .entry-content a {
	color: var(--caddy-text-primary);
	text-decoration: underline;
}

.page-terms .entry-content a:hover,
.page-privacy-policy .entry-content a:hover {
	color: var(--caddy-primary);
}

/* ============================================
   FOOTER
   ============================================ */

.caddy-footer {
	background: #0a0a0a;
	color: #bebebe;
	padding: 64px 0 0;
}

.caddy-footer-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 48px;
}

.caddy-footer-ascii {
	font-family: var(--caddy-font-mono);
	/* Block figlet is ~41 cols wide — keep it small so it fits the footer col */
	font-size: 0.5rem;
	/* ASCII art only connects when the rows touch — line-height must be 1 */
	line-height: 1;
	color: #ffffff;
	margin: 0 0 16px;
	padding: 0;
	white-space: pre;
	overflow: hidden;
}

.caddy-footer-tagline {
	font-size: 0.875rem;
	color: #888888;
	margin: 0;
	line-height: 1.5;
}

.caddy-footer-heading {
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: #ffffff;
	margin: 0 0 20px;
}

.caddy-footer-links ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.caddy-footer-links ul li {
	margin-bottom: 10px;
}

.caddy-footer-links ul li a {
	color: #888888;
	text-decoration: none;
	font-size: 0.875rem;
	transition: color 0.15s ease;
}

.caddy-footer-links ul li a:hover {
	color: #ffffff;
}

.caddy-footer-bottom {
	max-width: var(--caddy-container);
	margin: 48px auto 0;
	padding: 20px var(--caddy-gutter);
	border-top: 1px solid #222222;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.caddy-footer-bottom p {
	margin: 0;
	font-size: 0.75rem;
	color: #555555;
}

.caddy-footer-bottom p a {
	color: #555555;
	text-decoration: none;
	margin-left: 12px;
	transition: color 0.15s ease;
}

.caddy-footer-bottom p a:hover {
	color: #ffffff;
}

.caddy-footer-social {
	color: #555555;
	transition: color 0.15s ease;
}

.caddy-footer-social:hover {
	color: #ffffff;
}

/* Footer responsive */
@media (max-width: 768px) {
	.caddy-footer-inner {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.caddy-footer-ascii {
		font-size: 0.5rem;
	}
}

/* ============================================
   MY ACCOUNT PAGE
   ============================================ */

/* Reset GP wrappers */
.woocommerce-account.page-my-account .site-content {
	padding: 0 !important;
}

.woocommerce-account.page-my-account .inside-article {
	background-color: transparent !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	max-width: 100% !important;
	box-shadow: none !important;
}

.woocommerce-account.page-my-account .entry-content {
	padding: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;
}

/* Hero */
.caddy-myaccount-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 60px 20px;
	text-align: center;
	border-bottom: 1px solid var(--caddy-border);
	overflow: hidden;
}

.caddy-myaccount-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-myaccount-hero-inner {
	position: relative;
	z-index: 1;
	max-width: 600px;
	margin: 0 auto;
}

.caddy-myaccount-hero .caddy-section-title {
	margin-bottom: 0;
}

/* Two-column layout */
.woocommerce-account.logged-in .entry-content > .woocommerce {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 40px;
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 48px var(--caddy-gutter);
	align-items: start;
}

/* --- Navigation sidebar --- */

.woocommerce-account .woocommerce-MyAccount-navigation {
	position: sticky;
	top: 96px;
	float: none !important;
	width: auto !important;
	grid-column: 1;
}

.woocommerce-account .woocommerce-MyAccount-content {
	float: none !important;
	width: auto !important;
	grid-column: 2;
}

.admin-bar .woocommerce-account .woocommerce-MyAccount-navigation {
	top: 128px;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	border: none;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li {
	border: none !important;
	padding: 0;
	margin: 0;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 14px;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--caddy-text-secondary);
	text-decoration: none;
	border-radius: 8px;
	border: none;
	border-left: 2px solid transparent;
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
	color: var(--caddy-text-primary);
	font-weight: 600;
	background-color: var(--caddy-bg-elevated);
	border-left-color: var(--caddy-primary);
}

.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
	margin-top: 8px;
	padding-top: 10px;
	border-top: 1px solid var(--caddy-border);
}

.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--caddy-text-muted);
}

.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a:hover {
	color: var(--caddy-text-primary);
}

/* Nav icons via CSS data URIs */
.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
	content: '';
	display: inline-block;
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	background-size: 18px 18px;
	background-repeat: no-repeat;
	background-position: center;
	opacity: 0.5;
}

.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover::before,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a::before {
	opacity: 0.8;
}

.woocommerce-MyAccount-navigation-link--dashboard a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--orders a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M15 3v4a1 1 0 0 0 1 1h4'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--licenses a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--subscriptions a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12V7H5a2 2 0 0 1 0-4h14v4'/%3E%3Cpath d='M3 5v14a2 2 0 0 0 2 2h16v-5'/%3E%3Cpath d='M18 12a2 2 0 0 0 0 4h4v-4Z'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--downloads a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--edit-address a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--payment-methods a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='14' x='2' y='5' rx='2'/%3E%3Cline x1='2' y1='10' x2='22' y2='10'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--edit-account a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='5'/%3E%3Cpath d='M20 21a8 8 0 0 0-16 0'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--waitlist a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E");
}

.woocommerce-MyAccount-navigation-link--customer-logout a::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%230a0a0a' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E");
}

/* Dark mode: invert nav icons */
[data-theme="dark"] .woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
	filter: invert(1);
}

@media (prefers-color-scheme: dark) {
	html:not([data-theme]) .woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
		filter: invert(1);
	}
}

/* --- Content area --- */

.woocommerce-account .woocommerce-MyAccount-content {
	background-color: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	padding: 32px;
	min-height: 300px;
}

.woocommerce-account .woocommerce-MyAccount-content > p {
	color: var(--caddy-text-secondary);
	line-height: 1.7;
	font-size: 0.9375rem;
}

.woocommerce-account .woocommerce-MyAccount-content > p a {
	color: var(--caddy-text-primary);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.woocommerce-account .woocommerce-MyAccount-content > p a:hover {
	color: var(--caddy-primary);
}

.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	font-family: var(--caddy-font-display);
	font-weight: 600;
	font-size: 1.25rem;
	color: var(--caddy-text-primary);
	margin: 0 0 20px;
	letter-spacing: -0.01em;
}

.woocommerce-account .woocommerce-MyAccount-content legend {
	font-family: var(--caddy-font-display);
	font-weight: 600;
	font-size: 1.1rem;
	color: var(--caddy-text-primary);
	margin-bottom: 16px;
	padding: 0;
	border: none;
}

/* --- Tables (Orders, Downloads, Payment Methods) --- */

.woocommerce-account .shop_table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	font-size: 0.875rem;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	overflow: hidden;
}

.woocommerce-account .shop_table thead th {
	background-color: var(--caddy-bg-surface);
	color: var(--caddy-text-muted);
	font-family: var(--caddy-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	padding: 12px 16px;
	text-align: left;
	border-bottom: 1px solid var(--caddy-border);
}

.woocommerce-account .shop_table tbody td,
.woocommerce-account .shop_table tbody th {
	padding: 14px 16px;
	color: var(--caddy-text-secondary);
	border-bottom: 1px solid var(--caddy-border-subtle);
	vertical-align: middle;
}

.woocommerce-account .shop_table tbody tr:last-child td,
.woocommerce-account .shop_table tbody tr:last-child th {
	border-bottom: none;
}

.woocommerce-account .shop_table tbody th a {
	color: var(--caddy-text-primary);
	font-weight: 600;
	text-decoration: none;
}

.woocommerce-account .shop_table tbody th a:hover {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.woocommerce-account .shop_table .button,
.woocommerce-account .shop_table .woocommerce-button {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	background-color: transparent;
	border: 1px solid var(--caddy-border-strong);
	border-radius: 6px;
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
	cursor: pointer;
	white-space: nowrap;
}

.woocommerce-account .shop_table .button:hover,
.woocommerce-account .shop_table .woocommerce-button:hover {
	border-color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

/* --- Forms (Account Details, Address, Password) --- */

.woocommerce-account .woocommerce-MyAccount-content .form-row {
	margin-bottom: 20px;
}

.woocommerce-account .woocommerce-MyAccount-content label {
	display: block;
	font-size: 0.8125rem;
	font-family: var(--caddy-font-mono);
	font-weight: 500;
	color: var(--caddy-text-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 6px;
}

.woocommerce-account .woocommerce-MyAccount-content .input-text,
.woocommerce-account .woocommerce-MyAccount-content input[type="text"],
.woocommerce-account .woocommerce-MyAccount-content input[type="email"],
.woocommerce-account .woocommerce-MyAccount-content input[type="password"],
.woocommerce-account .woocommerce-MyAccount-content input[type="tel"],
.woocommerce-account .woocommerce-MyAccount-content select,
.woocommerce-account .woocommerce-MyAccount-content textarea {
	width: 100%;
	padding: 12px 14px;
	font-size: 0.9375rem;
	font-family: var(--caddy-font-body);
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	border-radius: 8px;
	transition: border-color 0.15s ease;
	outline: none;
	box-sizing: border-box;
}

.woocommerce-account .woocommerce-MyAccount-content .input-text:focus,
.woocommerce-account .woocommerce-MyAccount-content input:focus,
.woocommerce-account .woocommerce-MyAccount-content select:focus,
.woocommerce-account .woocommerce-MyAccount-content textarea:focus {
	border-color: var(--caddy-border-hover);
}

.woocommerce-account .woocommerce-MyAccount-content .form-row-first,
.woocommerce-account .woocommerce-MyAccount-content .form-row-last {
	width: 48%;
	display: inline-block;
	vertical-align: top;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row-first {
	margin-right: 4%;
}

.woocommerce-account .woocommerce-MyAccount-content fieldset {
	border: none;
	padding: 24px 0 0;
	margin: 24px 0 0;
	border-top: 1px solid var(--caddy-border);
}

.woocommerce-account .woocommerce-MyAccount-content #account_display_name_description em {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	font-style: normal;
	display: block;
	margin-top: 6px;
}

/* Save / submit buttons */
.woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
.woocommerce-account .woocommerce-MyAccount-content .button:not(.woocommerce-button),
.woocommerce-account .woocommerce-MyAccount-content a.button:not(.woocommerce-button) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 22px;
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #ffffff !important;
	background-color: var(--caddy-bg-inverted);
	border: 1px solid var(--caddy-bg-inverted);
	border-radius: 8px;
	cursor: pointer;
	transition: background-color 0.2s ease;
	text-decoration: none;
}

.woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover,
.woocommerce-account .woocommerce-MyAccount-content .button:not(.woocommerce-button):hover,
.woocommerce-account .woocommerce-MyAccount-content a.button:not(.woocommerce-button):hover {
	background-color: #333333;
	border-color: #333333;
	color: #ffffff !important;
}

/* Override Stripe gateway's 150% font-size on place order button */
.woocommerce-account #place_order {
	font-size: 0.8125rem !important;
	padding: 14px 22px;
}

/* License key buttons (Show/Copy) */
.woocommerce-account .woocommerce-MyAccount-content .button-link {
	display: inline-flex;
	align-items: center;
	padding: 6px 14px;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--caddy-text-primary) !important;
	background-color: transparent;
	border: 1px solid var(--caddy-border-strong);
	border-radius: 6px;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.woocommerce-account .woocommerce-MyAccount-content .button-link:hover {
	border-color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

/* "Back to Licenses" and other woocommerce-button links */
.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-button.button,
.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-Button.button {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--caddy-text-primary) !important;
	background-color: transparent;
	border: 1px solid var(--caddy-border-strong);
	border-radius: 8px;
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
	margin-bottom: 20px;
}

.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-button.button:hover,
.woocommerce-account .woocommerce-MyAccount-content a.woocommerce-Button.button:hover {
	border-color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-elevated);
}

/* --- Address cards --- */

.woocommerce-account .woocommerce-Addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
}

.woocommerce-account .woocommerce-Address {
	background-color: var(--caddy-bg-surface);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	padding: 24px;
}

.woocommerce-account .woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 12px;
}

.woocommerce-account .woocommerce-Address-title h2 {
	margin: 0 !important;
	font-size: 1rem !important;
}

.woocommerce-account .woocommerce-Address-title .edit {
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--caddy-text-muted);
	text-decoration: none;
}

.woocommerce-account .woocommerce-Address-title .edit:hover {
	color: var(--caddy-text-primary);
}

.woocommerce-account .woocommerce-Address address {
	color: var(--caddy-text-secondary);
	font-style: normal;
	font-size: 0.9375rem;
	line-height: 1.7;
}

/* --- Notices --- */

.woocommerce-account .woocommerce-message,
.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-error,
.woocommerce-account .woocommerce-notice {
	padding: 14px 18px;
	border-radius: var(--caddy-radius);
	font-size: 0.875rem;
	margin-bottom: 20px;
	border: 1px solid;
}

.woocommerce-account .woocommerce-message {
	background: #f0f9f0;
	border-color: #c3e6cb;
	color: #155724;
}

.woocommerce-account .woocommerce-info,
.woocommerce-account .woocommerce-notice {
	background: var(--caddy-bg-surface);
	border-color: var(--caddy-border);
	color: var(--caddy-text-secondary);
}

.woocommerce-account .woocommerce-error {
	background: #fdf0f0;
	border-color: #f5c6cb;
	color: #842029;
}

/* --- Login form (logged-out) --- */

.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
	display: block;
	max-width: 480px;
	margin: 0 auto;
	padding: 48px var(--caddy-gutter) 64px;
}

.woocommerce-account:not(.logged-in) #customer_login {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	max-width: 480px;
	margin: 0 auto;
}

.woocommerce-account:not(.logged-in) #customer_login .u-column1,
.woocommerce-account:not(.logged-in) #customer_login .u-column2 {
	width: 100%;
	float: none;
	padding: 0;
}

.woocommerce-account:not(.logged-in) #customer_login h2 {
	font-family: var(--caddy-font-display);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0 0 20px;
}

.woocommerce-account:not(.logged-in) .woocommerce-form-login,
.woocommerce-account:not(.logged-in) .woocommerce-form-register {
	background-color: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	padding: 32px;
}

.woocommerce-account .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.875rem;
	color: var(--caddy-text-secondary);
}

.woocommerce-account .lost_password a {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	text-decoration: none;
}

.woocommerce-account .lost_password a:hover {
	color: var(--caddy-text-primary);
	text-decoration: underline;
}

/* Login form inputs */
.woocommerce-account:not(.logged-in) .woocommerce-form-login .input-text,
.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="text"],
.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="email"],
.woocommerce-account:not(.logged-in) .woocommerce-form-login input[type="password"] {
	width: 100%;
	padding: 12px 14px;
	font-size: 0.9375rem;
	font-family: var(--caddy-font-body);
	color: var(--caddy-text-primary);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	border-radius: 8px;
	transition: border-color 0.15s ease;
	outline: none;
	box-sizing: border-box;
}

.woocommerce-account:not(.logged-in) .woocommerce-form-login .input-text:focus,
.woocommerce-account:not(.logged-in) .woocommerce-form-login input:focus {
	border-color: var(--caddy-border-hover);
}

.woocommerce-account:not(.logged-in) .woocommerce-form-login button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 28px;
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #ffffff;
	background-color: var(--caddy-bg-inverted);
	border: 1px solid var(--caddy-bg-inverted);
	border-radius: 10px;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.woocommerce-account:not(.logged-in) .woocommerce-form-login button[type="submit"]:hover {
	background-color: #333333;
	border-color: #333333;
}

/* --- Dark mode --- */

[data-theme="dark"] .woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
[data-theme="dark"] .woocommerce-account .woocommerce-MyAccount-content .button:not(.woocommerce-button),
[data-theme="dark"] .woocommerce-account:not(.logged-in) .woocommerce-form-login button[type="submit"] {
	background-color: #ffffff;
	color: #0a0a0a;
	border-color: #ffffff;
}

[data-theme="dark"] .woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover,
[data-theme="dark"] .woocommerce-account .woocommerce-MyAccount-content .button:not(.woocommerce-button):hover,
[data-theme="dark"] .woocommerce-account:not(.logged-in) .woocommerce-form-login button[type="submit"]:hover {
	background-color: rgb(255 255 255 / 85%);
	border-color: rgb(255 255 255 / 85%);
}

[data-theme="dark"] .woocommerce-account .woocommerce-message {
	background: #1a2e1a;
	border-color: #2d4a2d;
	color: #8fdf8f;
}

[data-theme="dark"] .woocommerce-account .woocommerce-error {
	background: #2e1a1a;
	border-color: #4a2d2d;
	color: #df8f8f;
}

@media (prefers-color-scheme: dark) {
	html:not([data-theme]) .woocommerce-account .woocommerce-MyAccount-content button[type="submit"],
	html:not([data-theme]) .woocommerce-account .woocommerce-MyAccount-content .button:not(.woocommerce-button),
	html:not([data-theme]) .woocommerce-account:not(.logged-in) .woocommerce-form-login button[type="submit"] {
		background-color: #ffffff;
		color: #0a0a0a;
		border-color: #ffffff;
	}

	html:not([data-theme]) .woocommerce-account .woocommerce-MyAccount-content button[type="submit"]:hover,
	html:not([data-theme]) .woocommerce-account .woocommerce-MyAccount-content .button:not(.woocommerce-button):hover,
	html:not([data-theme]) .woocommerce-account:not(.logged-in) .woocommerce-form-login button[type="submit"]:hover {
		background-color: rgb(255 255 255 / 85%);
		border-color: rgb(255 255 255 / 85%);
	}

	html:not([data-theme]) .woocommerce-account .woocommerce-message {
		background: #1a2e1a;
		border-color: #2d4a2d;
		color: #8fdf8f;
	}

	html:not([data-theme]) .woocommerce-account .woocommerce-error {
		background: #2e1a1a;
		border-color: #4a2d2d;
		color: #df8f8f;
	}
}

/* --- Responsive --- */

@media (max-width: 768px) {
	.woocommerce-account.logged-in .entry-content > .woocommerce {
		grid-template-columns: 1fr;
		gap: 0;
		padding: 0;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation {
		position: static;
		border-bottom: 1px solid var(--caddy-border);
		background-color: var(--caddy-bg-primary);
		padding: 16px var(--caddy-gutter);
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		gap: 4px;
		padding-bottom: 4px;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
		white-space: nowrap;
		font-size: 0.8125rem;
		padding: 8px 12px;
		border-left: none;
		border-bottom: 2px solid transparent;
		border-radius: 6px 6px 0 0;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a {
		border-left-color: transparent;
		border-bottom-color: var(--caddy-primary);
	}

	.woocommerce-account .woocommerce-MyAccount-navigation ul li a::before {
		display: none;
	}

	.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout {
		margin-top: 0;
		padding-top: 0;
		border-top: none;
	}

	.woocommerce-account .woocommerce-MyAccount-content {
		border: none;
		border-radius: 0;
		padding: 24px var(--caddy-gutter) 48px;
	}

	.woocommerce-account .woocommerce-Addresses {
		grid-template-columns: 1fr;
	}

	.woocommerce-account .woocommerce-MyAccount-content .form-row-first,
	.woocommerce-account .woocommerce-MyAccount-content .form-row-last {
		width: 100%;
		margin-right: 0;
	}

	.woocommerce-account:not(.logged-in) .entry-content > .woocommerce {
		padding: 32px var(--caddy-gutter) 48px;
	}

	.caddy-myaccount-hero {
		padding: 40px 20px;
	}
}

@media (max-width: 768px) {
	.woocommerce-account .shop_table_responsive thead {
		display: none;
	}

	.woocommerce-account .shop_table_responsive tbody td,
	.woocommerce-account .shop_table_responsive tbody th {
		display: block;
		text-align: left;
		padding: 8px 16px;
	}

	.woocommerce-account .shop_table_responsive tbody td::before,
	.woocommerce-account .shop_table_responsive tbody th::before {
		content: attr(data-title) ": ";
		font-weight: 600;
		font-family: var(--caddy-font-mono);
		font-size: 0.75rem;
		text-transform: uppercase;
		letter-spacing: 0.04em;
		color: var(--caddy-text-muted);
	}

	.woocommerce-account .shop_table_responsive tbody tr {
		border-bottom: 1px solid var(--caddy-border);
		padding: 12px 0;
	}

	.woocommerce-account .shop_table_responsive tbody tr:last-child {
		border-bottom: none;
	}
}

/* Review form submit button — match .caddy-btn-primary */
#review_form #respond input#submit,
#review_form #respond button[type="submit"],
.comment-form input#submit,
.comment-form button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 14px 32px;
	border-radius: var(--caddy-btn-radius);
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	text-decoration: none;
	background-color: var(--caddy-bg-inverted);
	color: #ffffff;
	border: 1px solid var(--caddy-bg-inverted);
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

#review_form #respond input#submit:hover,
#review_form #respond button[type="submit"]:hover,
.comment-form input#submit:hover,
.comment-form button[type="submit"]:hover {
	background-color: #333333;
	border-color: #333333;
	color: #ffffff;
}

/* Comment form fields (blog singles) — standard input recipe */
.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	padding: var(--caddy-input-padding);
	font-size: var(--caddy-input-font-size);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	color: var(--caddy-text-primary);
}

.comment-form input[type="text"]:focus,
.comment-form input[type="email"]:focus,
.comment-form input[type="url"]:focus,
.comment-form textarea:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

/* ============================================
   EDD BRIDGE
   Maps EDD's native purchase-form markup onto
   the ported design system (plan options, button,
   receipt hero/steps, checkout hero).
   ============================================ */

/* Variable price options — restyled as plan cards */
.caddy-purchase-box .edd_price_options ul {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.caddy-purchase-box .edd_price_options ul li {
	margin: 0;
}

.caddy-purchase-box .edd_price_options ul li label {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
	font-family: var(--caddy-font-body);
}

.caddy-purchase-box .edd_price_options ul li label:hover {
	border-color: var(--caddy-border-strong);
}

.caddy-purchase-box .edd_price_options ul li.selected label {
	border-color: var(--caddy-primary);
	background: var(--caddy-bg-elevated);
	box-shadow: 0 0 0 1px var(--caddy-primary);
}

.caddy-purchase-box .edd_price_options ul li input[type="radio"],
.caddy-purchase-box .edd_price_options ul li input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.caddy-purchase-box .caddy-plan-name {
	font-weight: 500;
	color: var(--caddy-text-primary);
	flex: 1;
}

.caddy-purchase-box .caddy-plan-price {
	font-weight: 600;
	color: var(--caddy-text-primary);
	white-space: nowrap;
}

/* Purchase button — EDD submit styled as primary block button */
.caddy-purchase-box .edd_purchase_submit_wrapper {
	margin: 0;
}

.caddy-purchase-box .edd-add-to-cart.caddy-btn,
.caddy-purchase-box .edd-submit.caddy-btn,
.caddy-purchase-box a.edd-submit.caddy-btn {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--caddy-primary);
	color: var(--caddy-on-primary);
	border: none;
	padding: var(--caddy-btn-padding);
	font-family: var(--caddy-font-mono);
	font-size: var(--caddy-btn-font-size);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border-radius: var(--caddy-btn-radius);
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.caddy-purchase-box .edd-add-to-cart.caddy-btn:hover,
.caddy-purchase-box .edd-submit.caddy-btn:hover,
.caddy-purchase-box a.edd-submit.caddy-btn:hover {
	background: var(--caddy-primary-hover);
	color: var(--caddy-on-primary);
}

.caddy-purchase-box .edd-cart-added-alert {
	margin-top: 10px;
	color: var(--caddy-text-secondary);
	font-size: 0.9rem;
}

/* Checkout hero (under minimal checkout header) */
.caddy-checkout-hero-inner .caddy-checkout-title {
	font-family: var(--caddy-font-display);
	/* deliberately below --caddy-h1-size: checkout is transactional — the
	   hero shouldn't push the form down (user call, 2026-06-06) */
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	margin: 0 0 8px;
	color: var(--caddy-text-primary);
}

.caddy-checkout-hero-inner .caddy-checkout-subtitle {
	color: var(--caddy-text-secondary);
	margin: 0;
}

/* Order confirmation hero */
.caddy-order-hero {
	text-align: center;
	padding: 24px 0 32px;
}

.caddy-order-check {
	width: 56px;
	height: 56px;
	margin: 0 auto 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--caddy-primary);
	color: var(--caddy-on-primary);
}

.caddy-order-title {
	font-family: var(--caddy-font-display);
	font-size: var(--caddy-h1-size);
	margin: 0 0 10px;
	color: var(--caddy-text-primary);
}

.caddy-order-subtitle {
	color: var(--caddy-text-secondary);
	max-width: 520px;
	margin: 0 auto;
}

/* Order next steps */
.caddy-order-steps {
	margin: 40px 0;
}

.caddy-order-steps-title {
	font-family: var(--caddy-font-display);
	font-size: 1.4rem;
	margin: 0 0 20px;
	color: var(--caddy-text-primary);
}

.caddy-order-steps-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}

@media (max-width: 768px) {
	.caddy-order-steps-grid {
		grid-template-columns: 1fr;
	}
}

.caddy-order-step {
	padding: 20px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	background: var(--caddy-bg-card);
}

.caddy-order-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--caddy-primary);
	color: var(--caddy-on-primary);
	font-weight: 600;
	font-size: 0.9rem;
	margin-bottom: 12px;
}

.caddy-order-step h3 {
	font-size: 1rem;
	margin: 0 0 8px;
	color: var(--caddy-text-primary);
}

.caddy-order-step p {
	font-size: 0.92rem;
	color: var(--caddy-text-secondary);
	margin: 0;
}

/* Requirements list (sidebar) */
.caddy-requirements-list li {
	color: var(--caddy-text-secondary);
}

/* Recurring billing notice — the "/ year" suffix already conveys the period
   inside plan cards; the edd-recurring terms notice doubles it up. */
.caddy-purchase-box .eddr-notice.eddr-terms-notice {
	display: none;
}

/* ============================================
   CODED PAGES (front page, pricing, contact,
   support) — section layout supplements.
   ============================================ */

.caddy-value,
.caddy-features,
.caddy-results {
	/* gutters live on the inner (canonical: 1120 box includes gutters) */
	padding: 80px 0;
}

.caddy-features {
	background-color: #f7f7f7;
}

.caddy-features .caddy-section-title {
	margin-bottom: 40px;
}

.caddy-value-inner,
.caddy-features-inner,
.caddy-results-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
	text-align: center;
}

.caddy-section-subtitle {
	color: var(--caddy-text-secondary);
	max-width: 640px;
	margin: 0 auto 40px;
}

.caddy-value-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin-top: 40px;
}

.caddy-value-stat {
	padding: 36px 32px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	background: var(--caddy-bg-card);
	text-align: left;
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.caddy-value-stat:hover {
	border-color: var(--caddy-primary);
	transform: translateY(-3px);
	box-shadow: 0 12px 32px rgba(94, 76, 207, 0.10);
}

.caddy-value-num {
	display: block;
	font-family: var(--caddy-font-accent);
	font-style: italic;
	font-size: 3.25rem;
	line-height: 1;
	color: var(--caddy-primary);
	margin-bottom: 18px;
}

.caddy-value-stat h3 {
	font-family: var(--caddy-font-display);
	font-size: 1.4rem;
	font-weight: 600;
	margin: 0 0 10px;
	color: var(--caddy-text-primary);
}

.caddy-value-stat h3 .caddy-accent {
	font-family: var(--caddy-font-accent);
	font-style: italic;
	font-weight: 400;
	font-size: 1.15em;
}

.caddy-value-stat p {
	margin: 0;
	color: var(--caddy-text-secondary);
	font-size: 1rem;
	line-height: 1.55;
}

/* ============================================
   HOMEPAGE — HERO MEDIA (product screenshot)
   ============================================ */
/* ============================================
   HERO STAGE — cart-in-context

   The side cart shown sliding over a faux storefront inside a browser frame,
   with feature callouts pinned to the panel. Everything except the cart PNG
   is CSS-built and decorative. No box-shadows (project rule) — depth comes
   from borders + the scrim. See front-page.php for the markup.
   ============================================ */
.caddy-hero-stage {
	position: relative;
	z-index: 1;
	max-width: var(--caddy-container);
	/* Negative bottom margin pulls the hero's bottom edge up over the browser
	   so only its bottom frame edge is clipped (hero has overflow: hidden).
	   Kept shallow — the cart panel nearly fills the viewport, so a deeper cut
	   would clip the Checkout button. */
	margin: 56px auto -28px;
	padding: 0 var(--caddy-gutter);
}

.caddy-browser {
	position: relative;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	overflow: hidden;
	background-color: var(--caddy-bg-card);
}

/* Browser chrome bar: traffic-light dots + centered URL pill */
.caddy-browser-bar {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 11px 16px;
	background-color: var(--caddy-bg-elevated);
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-browser-dots {
	display: inline-flex;
	gap: 7px;
}

.caddy-browser-dots span {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background-color: var(--caddy-border-strong);
}

.caddy-browser-url {
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	min-width: 200px;
	max-width: 280px;
	padding: 1px 16px;
	text-align: center;
	font-family: var(--caddy-font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.04em;
	color: var(--caddy-text-muted);
	background-color: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: 100px;
}

.caddy-browser-viewport {
	position: relative;
	aspect-ratio: 1120 / 640;
	overflow: hidden;
	background-color: var(--caddy-bg-surface);
}

/* --- Faux storefront behind the cart --- */
.caddy-storefront {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
}

.caddy-storefront-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 52px;
	padding: 0 28px;
	background-color: var(--caddy-bg-card);
	border-bottom: 1px solid var(--caddy-border-subtle);
	flex-shrink: 0;
}

.caddy-storefront-logo {
	width: 96px;
	height: 16px;
	border-radius: 5px;
	background-color: var(--caddy-border-strong);
}

.caddy-storefront-links {
	display: inline-flex;
	gap: 18px;
}

.caddy-storefront-links i {
	width: 44px;
	height: 9px;
	border-radius: 4px;
	background-color: var(--caddy-border);
}

.caddy-storefront-grid {
	flex: 1;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 22px;
	padding: 28px;
	align-content: start;
}

.caddy-store-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.caddy-store-thumb {
	aspect-ratio: 4 / 3;
	border-radius: 8px;
	/* Neutral grayscale blocks — the store is backdrop, not the subject */
	background-color: var(--caddy-border);
}

/* Slight tonal variation so the grid reads as separate products, not a wall */
.caddy-store-card:nth-child(2) .caddy-store-thumb,
.caddy-store-card:nth-child(4) .caddy-store-thumb,
.caddy-store-card:nth-child(6) .caddy-store-thumb { background-color: var(--caddy-border-strong); }

.caddy-store-line {
	height: 11px;
	border-radius: 4px;
	background-color: var(--caddy-border-strong);
}

.caddy-store-line-short {
	width: 45%;
	background-color: var(--caddy-border);
}

/* The cart's modal scrim — dims + blurs the store so the cart leads */
.caddy-store-scrim {
	position: absolute;
	inset: 0;
	z-index: 1;
	background-color: rgba(0, 0, 0, 0.30);
	-webkit-backdrop-filter: blur(1.5px);
	backdrop-filter: blur(1.5px);
}

/* --- The Caddy side cart panel --- */
.caddy-cart-panel {
	position: absolute;
	top: 5%;
	right: 24px;
	z-index: 2;
	height: 90%;
	width: auto;
	pointer-events: none;
	/* PNG ships with its own rounded card + floating bubble — don't re-frame */
	animation: caddy-cart-slide 0.8s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

/* --- Feature callouts pinned to the panel --- */
.caddy-callout {
	position: absolute;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 13px;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	white-space: nowrap;
	color: var(--caddy-on-primary);
	background-color: var(--caddy-primary);
	border: 1px solid var(--caddy-primary);
	border-radius: 100px;
	animation: caddy-callout-pop 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}

/* Right edges align into a clean column just left of the panel; each top is
   centered on the feature its benefit maps to (no leader lines). */
.caddy-callout-icon {
	width: 14px;
	height: 14px;
	flex-shrink: 0;
}

.caddy-callout-aov       { top: 25%; right: 50%; animation-delay: 0.85s; }
.caddy-callout-recurring { top: 45%; right: 50%; animation-delay: 1.0s; }
.caddy-callout-checkout  { top: 65%; right: 50%; animation-delay: 1.15s; }

@keyframes caddy-cart-slide {
	from { opacity: 0; transform: translateX(48px); }
	to   { opacity: 1; transform: translateX(0); }
}

@keyframes caddy-callout-pop {
	from { opacity: 0; transform: scale(0.85) translateY(6px); }
	to   { opacity: 1; transform: scale(1) translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
	.caddy-cart-panel,
	.caddy-callout {
		animation: none;
	}
}

/* ============================================
   HOMEPAGE — PROBLEM (leaking revenue)
   ============================================ */
.caddy-problem {
	padding: 80px 0;
	background: var(--caddy-bg-elevated);
	border-block: 1px solid var(--caddy-border-subtle);
}

.caddy-problem-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	gap: 56px;
	align-items: center;
}

.caddy-problem-body {
	text-align: left;
}

.caddy-problem-body .caddy-section-title {
	margin: 0 0 20px;
	max-width: none;
}

.caddy-problem-body p {
	margin: 0;
	color: var(--caddy-text-secondary);
	font-size: 1.0625rem;
	line-height: 1.7;
}

.caddy-problem-media {
	display: flex;
	gap: 24px;
	align-items: center;
	justify-content: center;
}

.caddy-problem-media img {
	width: 50%;
	max-width: 190px;
	height: auto;
}

/* ============================================
   HOMEPAGE — SHOWCASE (alternating media + text)
   ============================================ */
.caddy-showcase {
	padding: 80px 0;
}

.caddy-showcase-inner {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
}

.caddy-showcase-intro {
	text-align: center;
	margin-bottom: 64px;
}

.caddy-showcase-rows {
	display: flex;
	flex-direction: column;
	gap: 88px;
}

.caddy-showcase-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 56px;
	align-items: center;
}

.caddy-showcase-row-reverse .caddy-showcase-media {
	order: 2;
}

/* Self-contained SVG UI mockups framed on a black panel. */
.caddy-showcase-media {
	background-color: var(--caddy-bg-inverted);
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, 0.14) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255, 255, 255, 0.14) 1px, transparent 1px);
	background-size: 32px 32px;
	border-radius: var(--caddy-radius-lg);
	padding: 28px;
}

.caddy-showcase-media img {
	display: block;
	width: 100%;
	height: auto;
}

.caddy-showcase-body {
	text-align: left;
}

.caddy-showcase-title {
	font-family: var(--caddy-font-display);
	font-size: clamp(1.6rem, 2.6vw, 2.15rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.01em;
	margin: 0 0 16px;
	color: var(--caddy-text-primary);
}

/* Showcase intro heading capped + centered */
.caddy-showcase-intro .caddy-section-title {
	max-width: 800px;
	margin-inline: auto;
}

.caddy-showcase-title .caddy-accent {
	font-family: var(--caddy-font-accent);
	font-style: italic;
	font-weight: 400;
	font-size: 1.1em;
}

.caddy-showcase-text {
	margin: 0 0 24px;
	color: var(--caddy-text-secondary);
	font-size: 1.0625rem;
	line-height: 1.7;
}

.caddy-showcase-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.caddy-showcase-list li {
	position: relative;
	padding-left: 34px;
	color: var(--caddy-text-primary);
	font-size: 1rem;
	line-height: 1.5;
}

.caddy-showcase-list li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 1px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background-color: var(--caddy-primary);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 13px;
}

@media (max-width: 900px) {
	.caddy-problem-inner,
	.caddy-showcase-row {
		grid-template-columns: 1fr;
		gap: 32px;
	}

	.caddy-showcase-row-reverse .caddy-showcase-media {
		order: 0;
	}

	.caddy-showcase-rows {
		gap: 56px;
	}

	.caddy-showcase-intro {
		margin-bottom: 48px;
	}

	.caddy-problem-media {
		max-width: 360px;
		margin: 0 auto;
	}

	/* Stack the split and re-center the copy below ~900px */
	.caddy-hero-split {
		grid-template-columns: 1fr;
		gap: 40px;
	}

	.caddy-hero-inverted .caddy-hero-inner {
		text-align: center;
	}

	.caddy-hero-inverted .caddy-hero-rating {
		justify-content: center;
	}

	.caddy-hero-inverted .caddy-hero-trust {
		align-items: center;
	}

	.caddy-hero-inverted .caddy-hero-subtitle {
		margin-left: auto;
		margin-right: auto;
	}

	.caddy-hero-inverted .caddy-hero-actions {
		justify-content: center;
	}
}

/* Below 768px the browser frame gets too small to read — collapse the stage
   back to a plain centered cart panel (the pre-rebuild treatment). */
@media (max-width: 768px) {
	/* Scoped to beat the .caddy-hero-inverted .caddy-hero-stage split rule */
	.caddy-hero-inverted .caddy-hero-stage {
		max-width: 320px;
		margin: 0 auto;
	}

	.caddy-browser {
		border: none;
		border-radius: 0;
		background-color: transparent;
		overflow: visible;
	}

	.caddy-browser-bar,
	.caddy-storefront,
	.caddy-store-scrim,
	.caddy-callout {
		display: none;
	}

	.caddy-browser-viewport {
		aspect-ratio: auto;
		overflow: visible;
		background-color: transparent;
	}

	.caddy-cart-panel {
		position: static;
		height: auto;
		width: 100%;
		animation: caddy-fade-up 0.7s ease-out 0.2s both;
	}
}

.caddy-features-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	text-align: left;
}

.caddy-feature-card {
	padding: 24px;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	background: var(--caddy-bg-card);
	transition: border-color 0.2s ease;
}

.caddy-feature-card:hover {
	border-color: var(--caddy-border-strong);
}

.caddy-feature-card .caddy-plugin-card-header {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
}

.caddy-feature-card .caddy-plugin-icon {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
	border-radius: 10px;
}

/* The Streamline icon SVGs are solid black glyphs — flip them white so they
   read on the purple chip. */
.caddy-feature-card .caddy-plugin-icon img {
	width: 22px;
	height: 22px;
	filter: brightness(0) invert(1);
}

.caddy-feature-card .caddy-plugin-name {
	font-size: 1.02rem;
	margin: 0;
	color: var(--caddy-text-primary);
}

.caddy-feature-card .caddy-plugin-desc {
	margin: 0;
	font-size: 0.92rem;
	color: var(--caddy-text-secondary);
}

.caddy-logos-marquee {
	padding: 15px 0;
	border-bottom: 1px solid var(--caddy-border-subtle);
}

.caddy-bundle-guarantee {
	text-align: center;
	color: var(--caddy-text-secondary);
	max-width: 560px;
	margin: 32px auto 0;
}

.caddy-bundle-card-featured {
	border: 2px solid var(--caddy-primary);
	background-color: rgba(94, 76, 207, 0.05);
	position: relative;
}

/* Page hero variant (contact/support) + content wrapper */
.caddy-page-hero .caddy-hero-inner {
	padding-bottom: 40px;
}

/* Pricing hero section sits a touch tighter at the bottom than the base hero
   (80/80) so it meets the tier cards. (The page-hero title must NOT be grouped
   here — section padding on the h1 balloons the contact/support hero.) */
.caddy-pricing-hero {
	padding: 80px var(--caddy-gutter) 50px;
}

.caddy-pricing-hero .caddy-hero-title {
	font-size: var(--caddy-h1-size);
}

/* Thank-you-download (3581): content carries its own h1 — hide GP's
   duplicate entry-title and put the content h1 on the token. */
.page-thank-you-download .entry-header {
	display: none;
}

.page-thank-you-download .entry-content h1 {
	font-family: var(--caddy-font-display);
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--caddy-text-primary);
}

/* Shop (29) and checkout (477) render GP/GB h1s, not theme heroes — pin them
   to the standard interior h1 (checkout: the smaller transactional size,
   matching .caddy-checkout-title). */
.page-shop .entry-title,
.page-checkout h1.checkout-header {
	font-family: var(--caddy-font-display);
	font-size: var(--caddy-h1-size);
	font-weight: normal;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--caddy-text-primary);
}

.page-checkout h1.checkout-header,
.page-checkout .entry-title {
	font-size: clamp(1.75rem, 3vw, 2.5rem);
}

/* NOTE: .caddy-page-content / -inner layout lives in the PLAIN PAGES block
   (~line 8770) — a duplicate rule here previously shadowed it. */

@media (max-width: 900px) {
	.caddy-features-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.caddy-value-stats,
	.caddy-features-grid {
		grid-template-columns: 1fr;
	}

	.caddy-value,
	.caddy-features,
	.caddy-results {
		padding: 56px var(--caddy-gutter);
	}
}

/* 3-tier pricing grid responsiveness */
@media (max-width: 900px) {
	.caddy-bundle-grid {
		grid-template-columns: 1fr;
		max-width: 480px;
	}
}

/* Blog/post hero typography — match the display face used by other heroes */
.caddy-blog-title,
.caddy-post-title {
	font-family: var(--caddy-font-display);
	color: var(--caddy-text-primary);
}

/* ============================================
   MARQUEE OVERRIDES (homepage logo strip)
   core.css styles .tribe-marquee for the OLD dark
   homepage (invert-to-white, 100px rows). On the
   new light section: grayscale, compact, capped.
   ============================================ */

/* Render every logo as a uniform dark silhouette so any source color shows on
   the light strip (white logos included) — no per-logo .invert tagging needed. */
.caddy-logos-marquee .js-marquee {
	filter: brightness(0) opacity(0.5);
	height: 56px;
	gap: 64px;
}

.caddy-logos-marquee .tribe-marquee img {
	max-height: 32px !important;
	height: auto !important;
	width: auto;
	max-width: 150px;
	object-fit: contain;
}

/* Senja testimonials section */
.caddy-results .senja-embed {
	margin-top: 40px;
	text-align: left;
}

/* ============================================
   FEATURES — archive + single
   ============================================ */

.caddy-feature-card-link {
	display: block;
	text-decoration: none;
	color: inherit;
	position: relative;
}

.caddy-feature-card-link:hover {
	border-color: var(--caddy-primary);
	transform: translateY(-3px);
	box-shadow: 0 12px 32px rgba(94, 76, 207, 0.10);
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.caddy-feature-card-more {
	display: inline-block;
	margin-top: 14px;
	font-family: var(--caddy-font-mono);
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--caddy-primary);
}

.caddy-feature-badge {
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	border-radius: 100px;
	background: var(--caddy-primary);
	color: var(--caddy-on-primary);
	font-family: var(--caddy-font-mono);
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	margin-left: 10px;
	vertical-align: middle;
}

.caddy-feature-hero-icon {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	margin: 0 auto 20px;
}

.caddy-feature-hero-icon img {
	width: 26px;
	height: 26px;
	filter: brightness(0) invert(1);
}

.caddy-hero-inner .caddy-feature-breadcrumbs {
	margin-bottom: 24px; /* room above the hero icon */
}

.caddy-feature-screenshot {
	padding: 0 var(--caddy-gutter) 64px;
}

.caddy-feature-screenshot-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	text-align: center;
}

.caddy-feature-screenshot-img {
	max-width: 100%;
	height: auto;
	border-radius: var(--caddy-radius-lg);
	border: 1px solid var(--caddy-border);
	box-shadow: 0 24px 64px rgba(17, 17, 17, 0.10);
}

.caddy-feature-content {
	padding: 24px var(--caddy-gutter) 64px;
}

.caddy-feature-content-inner {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
	color: var(--caddy-text-secondary);
	font-size: 1.05rem;
	line-height: 1.7;
}

.caddy-feature-content-inner h2,
.caddy-feature-content-inner h3 {
	color: var(--caddy-text-primary);
	margin-top: 2em;
}

.caddy-feature-related {
	border-top: 1px solid var(--caddy-border-subtle);
}

/* --------------------------------------------------------------------------
   FEATURE SINGLE — content enhancements (inc/features.php)
   -------------------------------------------------------------------------- */

/* Capability/benefit lists → checkmark grid */
.caddy-feature-content-inner ul.caddy-feature-checklist {
	list-style: none;
	margin: 0 0 1.5em;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px 28px;
}

.caddy-feature-content-inner ul.caddy-feature-checklist li {
	position: relative;
	margin: 0;
	padding: 0 0 0 30px;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--caddy-text-secondary);
}

.caddy-feature-content-inner ul.caddy-feature-checklist li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 2px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: var(--caddy-primary);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M5 13l4 4L19 7' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-size: 12px;
	background-position: center;
	background-repeat: no-repeat;
}

/* Benefits section heading (where present) reads as a distinct band */
.caddy-feature-content-inner h2.caddy-feature-benefits-title {
	margin-top: 2.5em;
	padding-top: 1.5em;
	border-top: 1px solid var(--caddy-border);
}

/* Suppress the in-content GB CTA card — the template's design-system final
   CTA already closes the page; this avoids two stacked CTAs. (DB untouched.)
   The CTA is the LEAF gb-container holding the smooth-scroll button (content
   wrappers also contain it via descendant matching, so exclude any container
   that nests another). */
.caddy-feature-content-inner .gb-container:has(.gb-button.smooth-scroll):not(:has(.gb-container)) {
	display: none;
}

/* Prev/next feature series navigation */
.caddy-feature-nav {
	padding: 0 var(--caddy-gutter) 64px;
}

.caddy-feature-nav-inner {
	box-sizing: border-box;
	max-width: var(--caddy-container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.caddy-feature-nav-link {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 18px 22px;
	background: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius-lg);
	text-decoration: none;
	transition: border-color 0.2s, transform 0.2s;
}

.caddy-feature-nav-next {
	text-align: right;
}

.caddy-feature-nav-link:hover,
.caddy-feature-nav-link:focus {
	border-color: var(--caddy-primary);
	transform: translateY(-2px);
	text-decoration: none;
}

.caddy-feature-nav-dir {
	font-family: var(--caddy-font-mono);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--caddy-text-muted);
}

.caddy-feature-nav-name {
	font-weight: 600;
	font-size: 1rem;
	color: var(--caddy-text-primary);
}

.caddy-feature-nav-link:hover .caddy-feature-nav-name {
	color: var(--caddy-primary);
}

@media (max-width: 768px) {
	.caddy-feature-content-inner ul.caddy-feature-checklist {
		grid-template-columns: 1fr;
	}

	.caddy-feature-nav-inner {
		grid-template-columns: 1fr;
	}

	.caddy-feature-nav-next {
		text-align: left;
	}
}

/* Block-editor content inside coded templates: core.css forces Nudge
   uppercase on .wp-block-heading with !important — restore the theme's
   type system inside theme-rendered content areas. */
.caddy-feature-content .wp-block-heading,
.caddy-feature-content h2,
.caddy-feature-content h3,
.caddy-lp-content .wp-block-heading,
.caddy-lp-content h2,
.caddy-lp-content h3,
.caddy-docs-article .wp-block-heading,
.caddy-docs-article h2,
.caddy-docs-article h3,
.caddy-docs-article h4,
.caddy-page-content .wp-block-heading,
.caddy-page-content h2,
.caddy-page-content h3,
.caddy-page-content h4,
.single-post .entry-content .wp-block-heading,
.single-post .entry-content h2,
.single-post .entry-content h3,
.single-post .entry-content h4 {
	font-family: var(--caddy-font-display) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-weight: 600 !important;
	line-height: 1.25;
}

.caddy-feature-content h2,
.caddy-lp-content h2,
.caddy-docs-article h2,
.caddy-page-content h2 {
	font-size: 1.6rem;
}

.caddy-feature-content h3,
.caddy-lp-content h3,
.caddy-docs-article h3,
.caddy-page-content h3 {
	font-size: 1.25rem;
}

/* ============================================
   LEGACY GB BLOCKS INSIDE FEATURE CONTENT
   The production feature posts end with a GB
   CTA card (beige bg, one-off button styling).
   Normalize those to the design system without
   touching the post content.
   ============================================ */

/* CTA cards: any GB container that holds a GB button */
.caddy-page-content .gb-container:has(> .gb-button),
.single-post .entry-content .gb-container:has(> .gb-button),
.caddy-feature-content .gb-container:has(> .gb-button) {
	background-color: var(--caddy-bg-surface) !important;
	background-image: none !important;
	border: 0 !important; /* some GB CTA blocks carry their own border color */
	border-radius: var(--caddy-radius-lg);
	padding: 56px 40px !important;
	margin: 56px 0 8px;
	text-align: center;
}

.caddy-page-content .gb-container:has(> .gb-button) h2,
.caddy-page-content .gb-container:has(> .gb-button) h3,
.single-post .entry-content .gb-container:has(> .gb-button) h2,
.single-post .entry-content .gb-container:has(> .gb-button) h3,
.caddy-feature-content .gb-container:has(> .gb-button) h2,
.caddy-feature-content .gb-container:has(> .gb-button) h3 {
	margin-top: 0 !important;
}

/* GB buttons → theme primary button */
.caddy-page-content .gb-button,
.single-post .entry-content .gb-button,
.caddy-feature-content .gb-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background-color: var(--caddy-primary) !important;
	background-image: none !important;
	color: var(--caddy-on-primary) !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: var(--caddy-btn-font-size) !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1 !important;
	padding: var(--caddy-btn-padding) !important;
	border-radius: var(--caddy-btn-radius) !important;
	border: 1px solid var(--caddy-primary) !important;
	text-decoration: none;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.caddy-page-content .gb-button:hover,
.caddy-page-content .gb-button:focus,
.single-post .entry-content .gb-button:hover,
.single-post .entry-content .gb-button:focus,
.caddy-feature-content .gb-button:hover,
.caddy-feature-content .gb-button:focus {
	background-color: var(--caddy-primary-hover) !important;
	border-color: var(--caddy-primary-hover) !important;
	color: var(--caddy-on-primary) !important;
}

/* ============================================
   PLAIN PAGE CONTENT (page.php)
   Marketing/legal pages rendered by the theme:
   compact hero + contained classic/GB content.
   Counter-rules above handle the heading fonts;
   this block handles layout, lists, tables, and
   the AffiliateWP dashboard/registration UI.
   ============================================ */

.caddy-page-content {
	padding: 24px var(--caddy-gutter) 80px;
}

.caddy-page-content-inner {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
	color: var(--caddy-text-secondary);
	font-size: 1.05rem;
	line-height: 1.75;
}

/* Contact page: hero pb + content pt + the form's GB-container pt stacked into
   a big gap above the form. Collapse the content/container top padding and
   tighten the hero bottom so the form sits closer to the hero. */
.caddy-contact-page .caddy-page-hero {
	padding-bottom: 40px;
}

.caddy-contact-page .caddy-page-content {
	padding-top: 0;
}

.caddy-contact-page .caddy-page-content .gb-container {
	padding-top: 0;
}

.caddy-page-content-inner > * {
	max-width: 100%;
}

.caddy-page-content h2 {
	color: var(--caddy-text-primary);
	margin: 2em 0 0.75em;
}

.caddy-page-content h3,
.caddy-page-content h4 {
	color: var(--caddy-text-primary);
	margin: 1.75em 0 0.6em;
}

.caddy-page-content p {
	margin-bottom: 1.4em;
}

.caddy-page-content strong,
.caddy-page-content b {
	color: var(--caddy-text-primary);
}

.caddy-page-content a:not(.gb-button):not(.caddy-btn) {
	color: var(--caddy-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.caddy-page-content a:not(.gb-button):not(.caddy-btn):hover {
	color: var(--caddy-primary-hover);
}

.caddy-page-content ul,
.caddy-page-content ol {
	margin: 0 0 1.5em;
	padding-left: 1.5em;
}

.caddy-page-content li {
	margin-bottom: 0.5em;
}

.caddy-page-content hr {
	border: 0;
	border-top: 1px solid var(--caddy-border-subtle);
	margin: 2.5em 0;
}

.caddy-page-content blockquote {
	border-left: 4px solid var(--caddy-primary);
	margin: 2em 0;
	padding: 1em 1.5em;
	background: var(--caddy-bg-elevated);
	font-style: italic;
}

.caddy-page-content img {
	max-width: 100%;
	height: auto;
	border-radius: var(--caddy-radius);
}

/* Comparison tables (caddy-vs-* pages) */
.caddy-page-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 2em;
	font-size: 0.95rem;
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	overflow: hidden;
}

.caddy-page-content table th {
	background-color: var(--caddy-bg-surface);
	color: var(--caddy-text-primary);
	font-weight: 600;
	text-align: left;
	padding: 12px 16px;
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-page-content table td {
	padding: 12px 16px;
	border-bottom: 1px solid var(--caddy-border-subtle);
	vertical-align: top;
}

.caddy-page-content table tr:last-child td {
	border-bottom: none;
}

.caddy-page-content .wp-block-table {
	margin: 0 0 2em;
	overflow-x: auto;
}

.caddy-page-content .wp-block-table table {
	margin: 0;
}

/* AffiliateWP dashboard + registration (affiliate-area, become-an-affiliate) */
.caddy-page-content #affwp-affiliate-dashboard {
	margin-top: 8px;
}

.caddy-page-content #affwp-affiliate-dashboard-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	list-style: none;
	margin: 0 0 28px;
	padding: 6px;
	background-color: var(--caddy-bg-surface);
	border-radius: var(--caddy-radius);
}

.caddy-page-content #affwp-affiliate-dashboard-tabs li {
	margin: 0;
}

.caddy-page-content #affwp-affiliate-dashboard-tabs a {
	display: block;
	padding: 8px 14px;
	border-radius: 8px;
	color: var(--caddy-text-secondary);
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 500;
}

.caddy-page-content #affwp-affiliate-dashboard-tabs a:hover {
	color: var(--caddy-text-primary);
}

.caddy-page-content #affwp-affiliate-dashboard-tabs li.active a {
	background-color: var(--caddy-bg-primary);
	color: var(--caddy-text-primary);
	box-shadow: 0 1px 3px rgba(17, 17, 17, 0.08);
}

.caddy-page-content .affwp-form label {
	display: block;
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin-bottom: 6px;
}

.caddy-page-content .affwp-form input[type="text"],
.caddy-page-content .affwp-form input[type="email"],
.caddy-page-content .affwp-form input[type="url"],
.caddy-page-content .affwp-form input[type="password"],
.caddy-page-content .affwp-form input[type="number"],
.caddy-page-content .affwp-form textarea,
.caddy-page-content .affwp-form select {
	width: 100%;
	padding: var(--caddy-input-padding);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	background-color: var(--caddy-bg-primary);
	color: var(--caddy-text-primary);
	font-size: var(--caddy-input-font-size);
	margin-bottom: 18px;
}

.caddy-page-content .affwp-form input:focus,
.caddy-page-content .affwp-form textarea:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

.caddy-page-content .affwp-form input[type="submit"],
.caddy-page-content .affwp-form .button,
.caddy-page-content #affwp-generate-ref-url-form input[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	background-color: var(--caddy-primary);
	color: var(--caddy-on-primary);
	font-family: var(--caddy-font-mono);
	font-size: var(--caddy-btn-font-size);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	line-height: 1;
	padding: var(--caddy-btn-padding);
	border: 1px solid var(--caddy-primary);
	border-radius: var(--caddy-btn-radius);
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

.caddy-page-content .affwp-form input[type="submit"]:hover,
.caddy-page-content .affwp-form .button:hover {
	background-color: var(--caddy-primary-hover);
	border-color: var(--caddy-primary-hover);
}

.caddy-page-content table.affwp-table {
	font-size: 0.9rem;
}

@media (max-width: 768px) {
	.caddy-page-content-inner {
		font-size: 1rem;
	}
}

/* ============================================
   MY ACCOUNT AREA
   Theme hero + nav (inc/account.php, replaces GP
   Element 8242) and re-skin of the caddy-custom
   dashboard ([my_account_dash]) + sub-pages.
   Scoped to body.caddy-account.
   ============================================ */

.caddy-account-hero {
	position: relative;
	background-color: var(--caddy-bg-primary);
	padding: 64px var(--caddy-gutter) 48px;
	text-align: center;
	overflow: hidden;
}

.caddy-account-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	opacity: 0.4;
	mask-image: linear-gradient(to bottom, black 20%, transparent);
	-webkit-mask-image: linear-gradient(to bottom, black 20%, transparent);
	background-image:
		linear-gradient(to right, var(--caddy-border) 1px, transparent 1px),
		linear-gradient(to bottom, var(--caddy-border) 1px, transparent 1px);
	background-size: 32px 32px;
	pointer-events: none;
}

.caddy-account-hero-inner {
	position: relative;
	z-index: 1;
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
}

.caddy-account-hero-label {
	margin-bottom: 14px;
}

.caddy-account-hero-title {
	font-family: var(--caddy-font-display) !important;
	font-size: var(--caddy-h1-size);
	font-weight: normal !important;
	text-transform: none !important;
	letter-spacing: -0.02em;
	line-height: 1.15 !important;
	color: var(--caddy-text-primary);
	margin: 0;
}

/* Account layout — full-width content under a horizontal nav strip. (The wide
   Billing/Subscriptions data tables need the full container width, so the
   account area uses a top tab strip rather than a left sidebar.) */
body.caddy-account .site-main {
	box-sizing: border-box;
	max-width: var(--caddy-container);
	margin: 0 auto;
	/* #content already supplies ~40px top/bottom padding — don't double it. */
	padding: 0 var(--caddy-gutter) 48px;
}

/* Dashboard (32) only — the cards grid wants more breathing room above/below
   than the data-table pages, which sit fine against the nav strip. */
body.caddy-account.page-id-32 .site-main {
	padding-top: 32px;
	padding-bottom: 80px;
}

/* GP/core gives .entry-content a top margin; the nav strip + #content padding
   already separate it from the hero, so drop it (this was the big nav→content gap). */
body.caddy-account .entry-content {
	margin-top: 0;
}

/* The hero already titles each account page, so drop the in-content
   entry-title (page 32 has it disabled via GP meta; 626/9201/etc. don't —
   this makes them all consistent, same as body.caddy-auth). */
body.caddy-account .entry-header {
	display: none;
}

/* Horizontal nav strip — full-bleed bar; the inner owns the gutter so the tabs
   align to the content/header column. Scrolls horizontally if the tabs overflow. */
.caddy-account-nav {
	background-color: var(--caddy-bg-primary);
	border-top: 1px solid var(--caddy-border);
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-account-nav-inner {
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 0 var(--caddy-gutter);
	display: flex;
	align-items: center;
	justify-content: safe center; /* centered; falls back to start when it overflows (mobile) so no tabs are clipped */
	gap: 4px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.caddy-account-nav-inner::-webkit-scrollbar {
	display: none;
}

.caddy-account-nav-link {
	display: inline-block;
	padding: 14px 12px;
	font-size: 0.9rem;
	font-weight: 500;
	color: var(--caddy-text-muted);
	text-decoration: none;
	white-space: nowrap;
	border-bottom: 2px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.caddy-account-nav-link:hover {
	color: var(--caddy-text-primary);
}

.caddy-account-nav-link.is-active {
	color: var(--caddy-text-primary);
	border-bottom-color: var(--caddy-primary);
}

/* Account content typography — counter core.css Nudge/uppercase */
body.caddy-account .site-main h1,
body.caddy-account .site-main h2,
body.caddy-account .site-main h3,
body.caddy-account .site-main h4 {
	font-family: var(--caddy-font-display) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.25;
	color: var(--caddy-text-primary);
}

body.caddy-account .brand-heading {
	font-size: 1.75rem;
	font-weight: 600 !important;
	margin-bottom: 4px;
}

/* Account EDD buttons — account.css (caddy-custom, shared with rollback
   theme) paints black 100px pills; out-cascade to the .caddy-btn recipe. */
body.caddy-account .edd-submit.button,
body.caddy-account .edd-submit.button.blue {
	background-color: var(--caddy-primary) !important;
	color: var(--caddy-on-primary) !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: var(--caddy-btn-font-size) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	padding: var(--caddy-btn-padding) !important;
	border: none !important;
	border-radius: var(--caddy-btn-radius) !important;
	transition: background-color 0.2s ease;
}

body.caddy-account .edd-submit.button:hover,
body.caddy-account .edd-submit.button.blue:hover {
	background-color: var(--caddy-primary-hover) !important;
	color: var(--caddy-on-primary) !important;
}

/* Account forms (EDD profile editor on edit-profile etc.) — standard input
   recipe; these otherwise fall back to GP/EDD defaults. */
body.caddy-account .site-main input[type="text"],
body.caddy-account .site-main input[type="email"],
body.caddy-account .site-main input[type="password"],
body.caddy-account .site-main select,
body.caddy-account .site-main textarea {
	padding: var(--caddy-input-padding);
	font-size: var(--caddy-input-font-size);
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border-strong);
	border-radius: var(--caddy-input-radius);
	color: var(--caddy-text-primary);
}

body.caddy-account .site-main input[type="text"]:focus,
body.caddy-account .site-main input[type="email"]:focus,
body.caddy-account .site-main input[type="password"]:focus,
body.caddy-account .site-main select:focus,
body.caddy-account .site-main textarea:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

/* Perks + Support were removed from the account nav — hide their dashboard
   quick-link cards too so the dashboard stays consistent. */
body.caddy-account .dash-quick-links a[href*="/perks"],
body.caddy-account .dash-quick-links a[href*="/support"] {
	display: none;
}

/* Dashboard quick-link cards (illustrations kept, monochromed) */
body.caddy-account .dash-quick-links {
	gap: 24px;
	margin-top: 32px;
}

body.caddy-account .dash-quick-links a {
	background-color: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: 12px;
	padding: 32px 24px;
	transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

body.caddy-account .dash-quick-links a:hover {
	background-color: var(--caddy-bg-card);
	border-color: var(--caddy-primary);
	transform: translateY(-3px);
	box-shadow: 0 8px 30px rgba(94, 76, 207, 0.12);
}

body.caddy-account .dash-quick-links a svg {
	width: 110px;
	filter: grayscale(1) opacity(0.85);
	transition: filter 0.2s ease;
}

body.caddy-account .dash-quick-links a:hover svg {
	filter: grayscale(0) opacity(1);
}

body.caddy-account .dash-quick-links a h3 {
	font-size: 1.05rem;
	font-weight: 600 !important;
	margin-top: 16px;
}

/* Account tables (purchase history, downloads, billing) */
body.caddy-account .site-main table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95rem;
}

body.caddy-account .site-main table th {
	font-family: var(--caddy-font-mono);
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--caddy-text-muted);
	text-align: left;
	padding: 10px 14px;
	border-bottom: 1px solid var(--caddy-border);
	background: transparent;
}

body.caddy-account .site-main table td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--caddy-border-subtle, var(--caddy-border));
	vertical-align: middle;
}

/* ============================================
   LICENSES — card list (EDD SL [edd_license_keys])
   EDD SL ships a cramped 2-col table; restyle the
   table elements into a stack of license cards.
   Pure CSS so the plugin template stays untouched
   (rollback / update safe). Scoped to #edd_sl_license_keys
   so it does NOT hit the manage-license sites table
   (#edd_sl_license_sites), which shares the .edd_sl_table class.
   ============================================ */
body.caddy-account .site-main #edd_sl_license_keys,
body.caddy-account .site-main #edd_sl_license_keys tbody {
	display: block;
	border: 0;
}

body.caddy-account .site-main #edd_sl_license_keys thead {
	display: none;
}

body.caddy-account .site-main #edd_sl_license_keys tr {
	display: block;
	background: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border);
	border-radius: 12px;
	padding: 16px 20px;
	margin-bottom: 12px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.caddy-account .site-main #edd_sl_license_keys tr:hover {
	border-color: var(--caddy-border-strong);
	box-shadow: 0 4px 18px rgba(17, 17, 17, 0.05);
}

body.caddy-account .site-main #edd_sl_license_keys td {
	display: block;
	padding: 0 !important; /* beat core.css's !important table padding */
	border: 0 !important;
	vertical-align: top;
}

/* Header: product name (left) + status badge (right) — account.js lifts both
   into .caddy-license-head so the card reads top-to-bottom. */
body.caddy-account .caddy-license-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--caddy-border);
}

body.caddy-account .edd_sl_item_name {
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	color: var(--caddy-text-primary);
	margin-bottom: 0;
}

body.caddy-account .edd_sl_license_price_option {
	display: inline;
	margin-left: 4px;
	font-family: var(--caddy-font-mono);
	font-size: 0.75rem;
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--caddy-text-muted);
}

/* Badge sits at the top-right of the header; no bottom margin there. */
body.caddy-account .caddy-license-head .edd_sl_license_status {
	flex: 0 0 auto;
	margin-bottom: 0;
}

/* Body: stats (left) + action button (right) on one compact row, grouped by
   account.js into .caddy-license-body / .caddy-license-stats. */
body.caddy-account .caddy-license-body {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

body.caddy-account .caddy-license-stats {
	min-width: 0;
}

body.caddy-account .edd_sl_item_expiration {
	display: inline-block;
	margin: 0 28px 0 0;
}

body.caddy-account .edd_sl_no_management {
	display: block;
	margin-top: 6px;
}

/* Key field + copy button (account.js wraps the input in .caddy-license-key) */
body.caddy-account .caddy-license-key {
	display: flex;
	align-items: stretch;
	gap: 8px;
	max-width: 460px;
	margin-bottom: 14px;
}

body.caddy-account .site-main input.edd_sl_license_key {
	flex: 1 1 auto;
	min-width: 0;
	width: 100%;
	box-sizing: border-box;
	margin: 0 !important; /* core.css gives inputs a top margin → breaks flex height match */
	padding: 10px 12px !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.8125rem !important;
	letter-spacing: 0.02em;
	color: var(--caddy-text-secondary) !important;
	background: var(--caddy-bg-elevated) !important;
	border: 1px solid var(--caddy-border-strong) !important;
	border-radius: 8px !important;
}

body.caddy-account .caddy-copy-key {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: 0 0 auto;
	padding: 0 14px;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--caddy-text-primary);
	background: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border-strong);
	border-radius: 8px;
	cursor: pointer;
	transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

body.caddy-account .caddy-copy-key:hover {
	color: var(--caddy-primary);
	border-color: var(--caddy-primary);
}

body.caddy-account .caddy-copy-key.is-copied {
	color: #16a34a;
	border-color: #16a34a;
}

body.caddy-account .caddy-copy-key-icon {
	width: 14px;
	height: 14px;
}

/* License action buttons (Renew / Extend / Manage Sites), grouped by account.js
   and lifted into the body row beside the stats — no own margin needed. */
body.caddy-account .caddy-license-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	flex: 0 0 auto;
}

body.caddy-account .edd_sl_table td a.caddy-license-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 9px 18px;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	border-radius: 8px;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

body.caddy-account .edd_sl_table td a.caddy-license-btn--primary {
	background: var(--caddy-primary);
	color: var(--caddy-on-primary);
}

body.caddy-account .edd_sl_table td a.caddy-license-btn--primary:hover {
	background: var(--caddy-primary-hover);
	color: var(--caddy-on-primary);
	text-decoration: none;
}

body.caddy-account .edd_sl_table td a.caddy-license-btn--secondary {
	background: var(--caddy-bg-card);
	color: var(--caddy-text-primary);
	border-color: var(--caddy-border-strong);
}

body.caddy-account .edd_sl_table td a.caddy-license-btn--secondary:hover {
	color: var(--caddy-primary);
	border-color: var(--caddy-primary);
	text-decoration: none;
}

/* With actions grouped into .caddy-license-actions, the inline flow no longer
   needs the template's <br>s or the " - " key separator; let the block-level
   meta elements own the spacing. */
body.caddy-account .edd_sl_table td br,
body.caddy-account .edd_sl_key_sep {
	display: none;
}

/* Right: status badge + meta */
body.caddy-account .edd_sl_status_label {
	display: none; /* the badge already says it */
}

body.caddy-account .edd_sl_license_status {
	display: inline-block !important;
	margin-bottom: 14px;
	padding: 4px 11px !important;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.4;
	border-radius: 100px !important;
	background: var(--caddy-bg-elevated) !important;
	color: var(--caddy-text-muted) !important;
}

body.caddy-account .edd_sl_license_status.edd-sl-active {
	background: rgba(22, 163, 74, 0.12) !important;
	color: #16a34a !important;
}

body.caddy-account .edd_sl_license_status.edd-sl-expired {
	background: rgba(220, 38, 38, 0.12) !important;
	color: #dc2626 !important;
}

body.caddy-account .edd_sl_license_status a {
	color: inherit;
	text-decoration: underline;
}

body.caddy-account .edd_sl_item_expiration {
	margin-bottom: 8px;
	font-size: 0.875rem;
	color: var(--caddy-text-secondary);
}

body.caddy-account .edd_sl_expires_label,
body.caddy-account .edd_sl_limit_label {
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--caddy-text-muted);
}

body.caddy-account .edd_sl_limit_used,
body.caddy-account .edd_sl_limit_max,
body.caddy-account .edd_sl_limit_sep {
	font-size: 0.875rem;
	color: var(--caddy-text-secondary);
}

body.caddy-account .edd_sl_no_management {
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
}

/* Meta links that stay inline (e.g. View Upgrades) — the Renew/Extend/Manage
   anchors get .caddy-license-btn and are excluded so the button colors win.
   Scoped to the keys table so the manage page's links aren't affected. */
body.caddy-account #edd_sl_license_keys td a:not(.edd_sl_purchase_number):not(.caddy-license-btn):not(.edd_sl_license_status a) {
	color: var(--caddy-primary);
	font-weight: 500;
	text-decoration: none;
}

body.caddy-account #edd_sl_license_keys td a:not(.edd_sl_purchase_number):not(.caddy-license-btn):hover {
	text-decoration: underline;
}

body.caddy-account a.edd_sl_purchase_number {
	display: inline-block;
	margin-top: 10px;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--caddy-text-muted);
	text-decoration: none;
}

body.caddy-account a.edd_sl_purchase_number:hover {
	color: var(--caddy-text-primary);
}

/* ============================================
   DOWNLOADS — clean list (EDD [download_history])
   Keep the table shape but give it air, row hover,
   and turn raw file links into download buttons.
   ============================================ */
body.caddy-account #edd_user_history {
	border: 1px solid var(--caddy-border);
	border-radius: 12px;
	overflow: hidden;
}

body.caddy-account #edd_user_history th.edd_download_download_files {
	text-align: right;
}

body.caddy-account #edd_user_history td,
body.caddy-account #edd_user_history th {
	border-left: 0;
	border-right: 0; /* kill core.css's vertical cell borders; keep row dividers */
}

body.caddy-account #edd_user_history td {
	padding: 14px 18px;
	vertical-align: middle;
}

body.caddy-account #edd_user_history th {
	padding: 12px 18px;
}

body.caddy-account #edd_user_history tr:last-child td {
	border-bottom: 0;
}

body.caddy-account #edd_user_history tbody tr:hover td {
	background: var(--caddy-bg-elevated);
}

body.caddy-account td.edd_download_download_name {
	font-weight: 500;
	color: var(--caddy-text-primary);
}

/* Needs the #edd_user_history id to beat EDD core's `#edd_user_history td`
   (which forces left) so the buttons line up under the right-aligned header. */
body.caddy-account #edd_user_history td.edd_download_download_files {
	text-align: right;
}

body.caddy-account .edd_download_file {
	display: inline-block;
	margin: 3px 0 3px 8px;
}

body.caddy-account .edd_download_file_link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 14px;
	font-size: 0.8125rem;
	font-weight: 500;
	color: var(--caddy-text-primary);
	background: var(--caddy-bg-elevated);
	border: 1px solid var(--caddy-border-strong);
	border-radius: 8px;
	text-decoration: none;
	word-break: break-word;
	transition: color 0.15s ease, border-color 0.15s ease;
}

body.caddy-account .edd_download_file_link::before {
	content: "↓";
	font-family: var(--caddy-font-mono);
	font-weight: 700;
}

body.caddy-account .edd_download_file_link:hover {
	color: var(--caddy-primary);
	border-color: var(--caddy-primary);
	background: var(--caddy-bg-elevated);
}

body.caddy-account .edd_download_payment_status {
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--caddy-text-muted);
}

/* ============================================
   MANAGE LICENSE (EDD SL activation manager on
   the purchase-history page, ?action=manage_licenses)
   ============================================ */

/* "Go back" — quiet secondary link with an arrow, not the black/purple pill */
body.caddy-account p:has(> .edd-manage-license-back) {
	margin: 0 0 20px;
}

body.caddy-account a.edd-manage-license-back.edd-submit.button {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	width: auto !important;
	min-height: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--caddy-text-muted) !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.75rem !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
}

body.caddy-account a.edd-manage-license-back.edd-submit.button::before {
	content: "←";
	font-size: 0.95rem;
}

body.caddy-account a.edd-manage-license-back.edd-submit.button:hover {
	background: transparent !important;
	color: var(--caddy-text-primary) !important;
}

/* Heading + license/product details */
body.caddy-account .edd-sl-manage-license-header {
	font-family: var(--caddy-font-display) !important;
	font-size: 1.375rem;
	font-weight: 600 !important;
	color: var(--caddy-text-primary);
	margin: 0 0 12px;
	text-transform: none !important;
	letter-spacing: normal !important;
}

body.caddy-account .edd-sl-manage-license-details {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 28px;
	margin: 0 0 24px;
	font-size: 0.9rem;
	color: var(--caddy-text-secondary);
}

body.caddy-account .edd-sl-manage-license-details code {
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	color: var(--caddy-text-primary);
	background: var(--caddy-bg-elevated);
	border: 1px solid var(--caddy-border);
	border-radius: 6px;
	padding: 2px 8px;
}

/* Activations table — bordered list, same treatment as the downloads table */
body.caddy-account #edd_sl_license_sites {
	width: 100%;
	border: 1px solid var(--caddy-border);
	border-radius: 12px;
	overflow: hidden;
	margin: 0 0 24px;
}

body.caddy-account #edd_sl_license_sites th {
	padding: 12px 18px;
}

body.caddy-account #edd_sl_license_sites td {
	padding: 14px 18px;
	font-size: 0.9rem;
	color: var(--caddy-text-secondary);
}

body.caddy-account #edd_sl_license_sites th.edd_sl_actions,
body.caddy-account #edd_sl_license_sites td:last-child {
	text-align: right;
}

body.caddy-account #edd_sl_license_sites tbody tr:hover td {
	background: var(--caddy-bg-elevated);
}

body.caddy-account #edd_sl_license_sites tbody tr:last-child td {
	border-bottom: 0;
}

/* "Deactivate" — muted link, red on hover (it's a destructive action) */
body.caddy-account #edd_sl_license_sites td:last-child a {
	color: var(--caddy-text-muted);
	font-weight: 500;
	text-decoration: none;
}

body.caddy-account #edd_sl_license_sites td:last-child a:hover {
	color: #dc2626;
	text-decoration: underline;
}

/* Add-activation form */
body.caddy-account #edd_sl_license_add_site_form {
	margin: 0;
}

body.caddy-account #edd_sl_license_add_site_form > div {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

body.caddy-account #edd_sl_license_add_site_form > div > span {
	flex: 1 1 100%;
	font-size: 0.9rem;
	color: var(--caddy-text-secondary);
	margin-bottom: 2px;
}

body.caddy-account #edd_sl_license_add_site_form input[type="text"].edd-input {
	flex: 1 1 280px;
	margin: 0 !important;
}

body.caddy-account #edd_sl_license_add_site_form input[type="submit"] {
	flex: 0 0 auto;
	width: auto !important;
	margin: 0 !important;
	padding: 11px 22px !important;
	background: var(--caddy-primary) !important;
	background-image: none !important;
	color: var(--caddy-on-primary) !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: var(--caddy-btn-font-size) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	border: 0 !important;
	border-radius: var(--caddy-btn-radius) !important;
	box-shadow: none !important;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

body.caddy-account #edd_sl_license_add_site_form input[type="submit"]:hover {
	background: var(--caddy-primary-hover) !important;
}

/* ============================================
   BILLING (purchase history) + SUBSCRIPTIONS tables
   Shared #edd_user_history container styling already
   gives the bordered list; this adds status pills,
   accent action links and a proper subscription name
   cell. Scoped to 632/634 so Downloads (626) is unaffected.
   ============================================ */

/* Status pills (color class added by account.js) */
body.caddy-account .caddy-status {
	display: inline-block;
	padding: 3px 10px;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.5;
	border-radius: 100px;
	white-space: nowrap;
	background: var(--caddy-bg-elevated);
	color: var(--caddy-text-muted);
}

body.caddy-account .caddy-status--pos {
	background: rgba(22, 163, 74, 0.12);
	color: #16a34a;
}

body.caddy-account .caddy-status--neg {
	background: rgba(220, 38, 38, 0.12);
	color: #dc2626;
}

/* Subscription name cell: product name + billing cycle */
body.caddy-account .edd_subscription_name {
	display: block;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin-bottom: 3px;
}

body.caddy-account .edd_subscription_billing_cycle {
	font-family: var(--caddy-font-mono);
	font-size: 0.75rem;
	color: var(--caddy-text-muted);
}

/* the template's <br> between name and cycle is redundant once name is block */
body.page-id-634 #edd_user_history td br {
	display: none;
}

/* Amounts read as muted secondary, tabular figures */
body.caddy-account .edd_purchase_amount,
body.caddy-account .edd_subscription_initial_amount,
body.caddy-account .edd_subscriptiontimes_billed,
body.caddy-account .edd_subscription_renewal_date,
body.caddy-account td.edd_purchase_date {
	color: var(--caddy-text-secondary);
	font-variant-numeric: tabular-nums;
}

body.caddy-account td.edd_purchase_id {
	font-family: var(--caddy-font-mono);
	font-size: 0.85rem;
	color: var(--caddy-text-muted);
}

/* Action links → small buttons (View Invoice / View Licenses / Details /
   View Transactions / Renew / Cancel). font-size:0 on the cell hides the
   template's " | " text separators and collapses whitespace; the buttons set
   their own font-size. The subscriptions actions cell is flex so multiple
   buttons sit in a tidy wrapping row. */
body.page-id-632 #edd_user_history td.edd_invoice,
body.page-id-632 #edd_user_history td.edd_license_key,
body.page-id-632 #edd_user_history td.edd_purchase_details,
body.page-id-634 #edd_user_history td:last-child {
	font-size: 0;
}

body.page-id-634 #edd_user_history td:last-child {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

body.page-id-632 #edd_user_history td.edd_invoice a,
body.page-id-632 #edd_user_history td.edd_license_key a,
body.page-id-632 #edd_user_history td.edd_purchase_details a,
body.page-id-634 #edd_user_history td:last-child a {
	display: inline-flex;
	align-items: center;
	padding: 6px 12px;
	font-family: var(--caddy-font-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--caddy-text-primary);
	background: var(--caddy-bg-card);
	border: 1px solid var(--caddy-border-strong);
	border-radius: 8px;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.15s ease, border-color 0.15s ease;
}

body.page-id-632 #edd_user_history td.edd_invoice a:hover,
body.page-id-632 #edd_user_history td.edd_license_key a:hover,
body.page-id-632 #edd_user_history td.edd_purchase_details a:hover,
body.page-id-634 #edd_user_history td:last-child a:hover {
	color: var(--caddy-primary);
	border-color: var(--caddy-primary);
}

/* "Cancel" subscription reads as a destructive action */
body.page-id-634 #edd_user_history .edd_subscription_cancel:hover {
	color: #dc2626;
	border-color: #dc2626;
}

/* Page 626 keeps its DB content ("License Keys" headline + [edd_license_keys]
   then "Downloads" + [download_history]) for the caddy-2025 rollback, but the
   theme splits licenses onto page 9201, so suppress the licenses half here.
   [edd_license_keys] renders table.edd_sl_table; [download_history] renders a
   plain .edd-table, so the two are distinguishable. The in-content "Downloads"
   headline (4af0d9d7) is hidden too — the hero already titles the page, same as
   the Licenses page. */
body.page-id-626 .gb-headline-e5c03157,
body.page-id-626 .gb-headline-4af0d9d7,
body.page-id-626 .edd_sl_table {
	display: none !important;
}

/* Page 632 keeps both [purchase_history] + [edd_subscriptions] in the DB
   (rollback), but the theme moves subscriptions to page 634, so suppress the
   subscriptions half here. [purchase_history] renders #edd_user_history.edd-table;
   [edd_subscriptions] renders #edd_user_history with no class — so :not(.edd-table)
   targets the subscriptions table. Both section headlines are hidden too (the
   hero titles the page), same as Downloads. */
body.page-id-632 .gb-headline-51c5caaf,
body.page-id-632 .gb-headline-812e2af9,
body.page-id-632 #edd_user_history:not(.edd-table) {
	display: none !important;
}

@media (max-width: 768px) {
	/* License cards: let the header wrap and stack the stats above the action
	   button so nothing is cramped on a narrow screen. */
	body.caddy-account .caddy-license-head {
		flex-wrap: wrap;
	}

	body.caddy-account .caddy-license-body {
		flex-direction: column;
		align-items: flex-start;
		gap: 14px;
	}

	body.caddy-account .edd_sl_item_expiration {
		margin-right: 20px;
	}

	/* Downloads (626): stack name over its file button(s), full width, so the
	   filename doesn't wrap awkwardly in a narrow column. Scoped to page 626 —
	   the purchase-history (632) and subscriptions (634) tables share the
	   #edd_user_history id and must NOT be stacked. */
	body.page-id-626 #edd_user_history thead {
		display: none;
	}

	body.page-id-626 #edd_user_history,
	body.page-id-626 #edd_user_history tbody,
	body.page-id-626 #edd_user_history tr,
	body.page-id-626 #edd_user_history td {
		display: block;
	}

	body.page-id-626 #edd_user_history tr {
		padding: 16px 18px;
		border-bottom: 1px solid var(--caddy-border);
	}

	body.page-id-626 #edd_user_history tr:last-child {
		border-bottom: 0;
	}

	body.page-id-626 #edd_user_history td {
		padding: 0;
		border: 0;
	}

	body.caddy-account td.edd_download_download_name {
		margin-bottom: 10px;
	}

	body.caddy-account .edd_download_file {
		display: block;
		margin: 6px 0 0;
	}

	body.caddy-account .edd_download_file_link {
		justify-content: flex-start;
	}

	/* Billing / Subscriptions: wide 6-column tables — scroll horizontally
	   instead of stacking (overrides the shared table's overflow:hidden). */
	body.page-id-632 #edd_user_history,
	body.page-id-634 #edd_user_history {
		display: block;
		overflow-x: auto;
		overflow-y: hidden;
	}
}

/* ============================================
   CHECKOUT
   Replaces core.css's fixed split-screen layout
   with a contained two-column grid: form left,
   sticky order summary right. The legacy GB
   chrome inside page 477's content (logo row +
   "Secure Checkout" heading) is hidden — the
   theme renders its own minimal header + hero.
   ============================================ */

/* 1. Hide the legacy in-content chrome */
.page-checkout .gb-container-8257c49d,
.page-checkout .gb-container-c074de59 {
	display: none !important;
}

/* 2. Contained grid layout (kills core.css position:fixed cart) */
.page-checkout #edd_checkout_wrap {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 400px;
	gap: 48px;
	align-items: start;
	max-width: var(--caddy-container);
	margin: 0 auto;
	padding: 48px var(--caddy-gutter) 96px;
}

.page-checkout #edd_checkout_form_wrap {
	width: auto !important;
	grid-column: 1;
	grid-row: 1;
}

.page-checkout #edd_checkout_cart_form,
.page-checkout .admin-bar #edd_checkout_cart_form {
	position: sticky !important;
	top: 96px;
	right: auto;
	bottom: auto;
	width: auto !important;
	grid-column: 2;
	grid-row: 1;
	background-color: transparent;
	border-left: none;
}

.page-checkout form#edd_purchase_form {
	padding: 0 !important;
}

/* 3. Order summary card — the chrome lives on the TABLE so content hooked
   at edd_checkout_cart_bottom (trust signals) sits BELOW the card while
   staying inside the ajax-rebuilt form */
.page-checkout #edd_checkout_cart_wrap {
	padding: 0 !important;
	background: transparent;
	border: none;
}

.page-checkout #edd_checkout_cart {
	padding: 28px;
	background-color: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	border-radius: 12px;
	box-sizing: border-box;
}

.page-checkout #edd_checkout_cart_wrap h3 {
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.8125rem !important;
	font-weight: 600;
	text-transform: uppercase !important;
	letter-spacing: 0.08em;
	color: var(--caddy-text-muted);
	margin: 0 0 16px;
}

.page-checkout #edd_checkout_cart .edd_cart_header_row {
	display: none;
}

.page-checkout #edd_checkout_cart td {
	padding: 6px 0;
}

.page-checkout #edd_checkout_cart .edd_cart_item_price {
	text-align: right;
	white-space: nowrap;
	color: var(--caddy-text-primary);
}

.page-checkout span.edd_checkout_cart_item_title {
	font-size: 1rem;
	color: var(--caddy-text-primary);
}

.page-checkout .edd_cart_remove_item_btn {
	font-size: 0.8rem;
	color: var(--caddy-text-muted);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.page-checkout .edd_cart_remove_item_btn:hover {
	color: var(--caddy-text-primary);
}

.page-checkout .edd-checkout .edd_cart_total,
.page-checkout .edd_cart_total {
	border-top: 1px solid var(--caddy-border-strong, #ccc) !important;
	font-size: 1.15rem;
	color: var(--caddy-text-primary) !important;
	margin-top: 20px !important;
	padding-top: 14px !important;
}

/* 4. Form side */
.page-checkout #edd_checkout_form_wrap legend,
.page-checkout #edd_checkout_form_wrap h2,
.page-checkout #edd_checkout_form_wrap h3 {
	font-family: var(--caddy-font-display) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	font-weight: 600 !important;
	color: var(--caddy-text-primary);
}

.page-checkout #edd_checkout_form_wrap input[type="email"],
.page-checkout #edd_checkout_form_wrap input[type="password"],
.page-checkout #edd_checkout_form_wrap input[type="tel"],
.page-checkout #edd_checkout_form_wrap input[type="text"],
.page-checkout #edd_checkout_form_wrap textarea,
.page-checkout #edd_checkout_form_wrap select {
	padding: var(--caddy-input-padding);
	font-size: var(--caddy-input-font-size);
	background-color: var(--caddy-bg-primary);
	border-color: var(--caddy-border-strong, #ccc);
	border-radius: var(--caddy-input-radius);
}

.page-checkout #edd_checkout_form_wrap input:focus,
.page-checkout #edd_checkout_form_wrap textarea:focus,
.page-checkout #edd_checkout_form_wrap select:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

/* Field labels — core.css floats them INSIDE the inputs (position:absolute,
   margins !important) for the old split-screen layout; restore stacked
   labels on the recipe. */
.page-checkout #edd_checkout_form_wrap label {
	position: static !important;
	display: block;
	font-size: 0.8125rem !important;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin: 0 0 6px !important;
}

/* Helper text under fields */
.page-checkout #edd_checkout_form_wrap .edd-description {
	display: block;
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	margin: 6px 0 0;
}

/* Fieldsets: strip default chrome, space the sections */
.page-checkout #edd_checkout_form_wrap fieldset {
	border: none;
	padding: 0;
	margin: 0 0 24px;
	background: transparent;
}

/* Tighten the submit stack: Stripe's element wrapper and the hidden
   final-total row both add phantom space above the purchase button */
.page-checkout #edd_cc_fields {
	margin-bottom: 0 !important;
}

.page-checkout #edd-stripe-new-card,
.page-checkout #edd-stripe-payment-element {
	margin-bottom: 0 !important;
}

.page-checkout #edd_purchase_submit #edd_final_total_wrap {
	display: none; /* the summary card owns the total */
}

/* Privacy/terms block — flatten to a flex column with a fixed gap so the
   nested wrappers (#edd-show-privacy-policy, the toggle link, the hidden
   policy box, the agreement row) can't stack their own margins. */
.page-checkout #edd_purchase_submit #edd-privacy-policy-agreement {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 0 16px;
}

.page-checkout #edd-privacy-policy-agreement > *,
.page-checkout #edd-privacy-policy-agreement .edd_terms_links,
.page-checkout #edd-show-privacy-policy {
	margin: 0 !important;
}

.page-checkout #edd_purchase_submit #edd-purchase-button {
	margin-top: 0 !important;
}

/* Fields breathe */
.page-checkout #edd_checkout_form_wrap p,
.page-checkout #edd_checkout_form_wrap .cfm-el {
	margin-bottom: 18px;
}

/* "Personal info" legend → section heading, same size as the "Select
   payment method" legend (21.6px); core.css hides checkout legends */
.page-checkout #edd_checkout_form_wrap #edd_checkout_user_info legend {
	display: block !important;
	font-size: 1.35rem !important;
	margin-bottom: 18px;
	padding: 0;
}

/* CFM radio question ("Are you ordering for a client?") — sits beside
   Company/Organization (core.css makes that inline-block 49%), question
   label over inline options */
.page-checkout .cfm-el.radio {
	display: inline-block !important;
	box-sizing: border-box;
	width: 48% !important;
	vertical-align: top;
	position: static !important; /* core.css nudges it up with top: -10px */
	top: auto !important;
	margin-right: 0 !important;
	padding-left: 32px !important; /* gutter from the company column */
}

/* …question label needs air above the options */
.page-checkout .cfm-el.radio > label.edd-label {
	margin: 0 0 10px !important;
}

/* …and the options list supplies its own spacing — flatten it */
.page-checkout .cfm-el.radio ul.cfm-checkbox-checklist {
	display: flex;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.page-checkout .cfm-el.radio ul.cfm-checkbox-checklist li {
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 6px;
}

.page-checkout .cfm-el.radio label:not(.edd-label) {
	display: inline-flex !important;
	align-items: center;
	font-weight: 400;
	margin: 0 !important;
}

/* High-weight re-assertions: the generic #edd_checkout_form_wrap label rule
   (ID weight, !important) flattens the question label's margin otherwise,
   and core.css baseline-aligns the inline-block field columns. */
.page-checkout #edd_checkout_form_wrap .cfm-el {
	vertical-align: top;
}

.page-checkout #edd_checkout_form_wrap .cfm-el.radio > label.edd-label {
	margin: 0 0 10px !important;
}

.page-checkout #edd_checkout_form_wrap .cfm-el.radio ul.cfm-checkbox-checklist {
	display: flex !important;
	gap: 24px;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* License renewal — quiet link row, not a boxed button. Doubled-up ID
   selectors: core.css targets #edd_checkout_form_wrap #edd_sl_renewal_fields
   at (2,0,0) with box chrome + 150px padding. */
.page-checkout #edd_checkout_form_wrap form#edd_sl_renewal_form {
	display: block !important; /* EDD SL flexes it, which re-centers the button */
	padding: 0 !important;
	margin: 0 0 20px;
}

.page-checkout #edd_checkout_form_wrap #edd_sl_renewal_fields {
	border: none !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0;
	text-align: left;
}

.page-checkout button#edd_sl_show_renewal_form {
	display: inline-block !important;
	width: auto !important; /* core stretches it; centered text reads as a centered link */
	text-align: left;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	font-family: var(--caddy-font-body) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	border-radius: 0 !important;
	cursor: pointer;
}

/* Discount — quiet text row instead of a gray strip */
.page-checkout #edd_checkout_form_wrap #edd_show_discount {
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
	font-size: 0.9rem;
	color: var(--caddy-text-secondary);
}

/* Payment card icons (rendered after the purchase button) — removed; the
   Stripe element already shows accepted card brands inline */
.page-checkout .edd-payment-icons {
	display: none !important;
}

/* Trust signals — free-standing below the summary card */
.page-checkout .caddy-checkout-trust {
	list-style: none;
	margin: 18px 4px 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.page-checkout .caddy-checkout-trust li {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 0.85rem;
	color: var(--caddy-text-secondary);
}

.page-checkout .caddy-checkout-trust svg {
	flex-shrink: 0;
	color: var(--caddy-primary);
}

/* Terms / privacy agreement — input and label are siblings inside the
   wrapper div; flex the wrapper so the checkbox sits inline with its
   sentence. */
.page-checkout div.edd-privacy-policy-agreement,
.page-checkout div.edd-terms-agreement {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin: 0;
}

.page-checkout .edd-privacy-policy-agreement label,
.page-checkout .edd-terms-agreement label {
	font-size: 0.9rem !important;
	font-weight: 400 !important;
	color: var(--caddy-text-secondary);
	margin: 0 !important;
}

/* "Show Privacy Policy" toggle — quiet utility link */
.page-checkout .edd_terms_links {
	display: inline-block;
	font-size: 0.8125rem;
	color: var(--caddy-text-muted) !important;
	margin-bottom: 10px;
}

/* Expanded privacy/terms text (15KB of policy) — contained scroll box
   instead of dumping the full document into the page */
.page-checkout .edd-terms {
	max-height: 280px;
	overflow-y: auto;
	background: var(--caddy-bg-primary);
	border: 1px solid var(--caddy-border);
	border-radius: var(--caddy-radius);
	padding: 16px 18px;
	margin: 0 0 16px;
	font-size: 0.85rem;
	line-height: 1.6;
	color: var(--caddy-text-secondary);
}

.page-checkout .edd-terms :is(h1, h2, h3, h4, h5) {
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	margin: 16px 0 6px !important;
}

.page-checkout .edd-terms p,
.page-checkout .edd-terms ul,
.page-checkout .edd-terms ol {
	font-size: 0.85rem;
	margin: 0 0 10px;
}

/* Order summary line items — break out of table layout: title block left,
   price top-right, Remove tucked under the price. EDD's ajaxed cart
   re-renders the same markup, so this survives cart updates. */
.page-checkout #edd_checkout_cart,
.page-checkout #edd_checkout_cart tbody,
.page-checkout #edd_checkout_cart tfoot,
.page-checkout #edd_checkout_cart tfoot tr,
.page-checkout #edd_checkout_cart tfoot td {
	display: block;
	width: 100%;
}

/* …but keep EDD's no-JS fallback rows (Update Cart) hidden — the block
   display above would otherwise resurrect them */
.page-checkout #edd_checkout_cart tr.edd-no-js {
	display: none !important;
}

.page-checkout #edd_checkout_cart tr.edd_cart_item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		'name price'
		'name actions';
	column-gap: 16px;
	padding: 2px 0 12px;
}

.page-checkout #edd_checkout_cart .edd_cart_item_name {
	grid-area: name;
	padding: 0;
}

.page-checkout #edd_checkout_cart .edd_cart_item_price {
	grid-area: price;
	font-weight: 600;
	padding: 0;
}

.page-checkout #edd_checkout_cart .edd_cart_actions {
	grid-area: actions;
	text-align: right;
	padding: 2px 0 0;
	white-space: nowrap;
}

.page-checkout #edd_checkout_cart .eddr-cart-item-notice {
	margin: 2px 0 0;
}

.page-checkout #edd_checkout_cart .edd-sl-renewal-details,
.page-checkout #edd_checkout_cart .edd_subscription_billing_text,
.page-checkout #edd_checkout_cart .edd-cart-billing-text,
.page-checkout #edd_checkout_cart em {
	display: block;
	font-style: normal;
	font-size: 0.8125rem;
	color: var(--caddy-text-muted);
	margin-top: 2px;
}

/* Purchase button — full width, clear disabled state */
.page-checkout #edd_purchase_submit #edd-purchase-button {
	display: block;
	width: 100%;
	padding: var(--caddy-btn-padding);
	border: none;
	cursor: pointer;
}

.page-checkout #edd_purchase_submit #edd-purchase-button:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

/* Payment method options as selectable pills (re-assert metrics over the
   generic stacked-label rule above) */
.page-checkout #edd_payment_mode_select label,
.page-checkout .edd-gateway-option {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border: 1px solid var(--caddy-border-strong, #ccc);
	border-radius: 10px;
	background-color: var(--caddy-bg-primary) !important;
	cursor: pointer;
	font-size: 0.95rem !important;
	font-weight: 500;
	margin: 0 8px 8px 0 !important;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}

.page-checkout #edd_payment_mode_select label:has(input:checked),
.page-checkout .edd-gateway-option:has(input:checked),
.page-checkout .edd-gateway-option-selected {
	border-color: var(--caddy-primary);
	background-color: #f3f0ff !important;
}

/* Info boxes (login/new account/discount) — white cards */
.page-checkout #edd_checkout_form_wrap #edd-login-account-wrap,
.page-checkout #edd_checkout_form_wrap #edd-new-account-wrap,
.page-checkout #edd_checkout_form_wrap .edd-cart-adjustment {
	background: var(--caddy-bg-primary) !important;
	color: var(--caddy-text-secondary);
	border: 1px solid var(--caddy-border) !important;
	border-radius: var(--caddy-radius);
	padding: 18px 20px !important;
}

/* Discount form: field + Apply inline, helper text under */
.page-checkout .edd-discount-code-field-wrap {
	display: flex;
	gap: 10px;
	align-items: stretch;
	margin-top: 8px;
}

.page-checkout .edd-discount-code-field-wrap input.edd-input {
	flex: 1;
	min-width: 0;
	margin: 0;
}

/* Apply button → styleguide recipe (core.css paints it as a giant black
   block; doubled selector + !important to out-rank its ID rule) */
.page-checkout #edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit,
.page-checkout #edd_checkout_form_wrap input.edd-apply-discount {
	display: inline-flex !important;
	width: auto !important;
	align-items: center;
	justify-content: center;
	background-color: var(--caddy-primary) !important;
	background-image: none !important;
	color: var(--caddy-on-primary) !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: var(--caddy-btn-font-size) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	padding: 11px 20px !important;
	border: 1px solid var(--caddy-primary) !important;
	border-radius: var(--caddy-btn-radius) !important;
	margin: 0 !important;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.page-checkout #edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit:hover,
.page-checkout #edd_checkout_form_wrap input.edd-apply-discount:hover {
	background-color: var(--caddy-primary-hover) !important;
	border-color: var(--caddy-primary-hover) !important;
}

.page-checkout #edd_checkout_form_wrap a {
	color: var(--caddy-primary);
}

.page-checkout #edd_checkout_form_wrap a:hover {
	color: var(--caddy-primary-hover);
}

/* Purchase button → theme primary */
.page-checkout #edd_purchase_submit #edd-purchase-button,
.page-checkout .edd-checkout .edd-submit.button {
	background-color: var(--caddy-primary) !important;
	background-image: none !important;
	color: var(--caddy-on-primary) !important;
	font-family: var(--caddy-font-mono) !important;
	font-size: var(--caddy-btn-font-size);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	border-radius: var(--caddy-btn-radius);
	transition: background-color 0.2s ease;
}

.page-checkout #edd_purchase_submit #edd-purchase-button:hover,
.page-checkout .edd-checkout .edd-submit.button:hover {
	background-color: var(--caddy-primary-hover) !important;
}

/* License renewal box */
.page-checkout #edd_sl_renewal_form,
.page-checkout button#edd_sl_show_renewal_form {
	color: var(--caddy-text-secondary);
}

.page-checkout button#edd_sl_show_renewal_form {
	color: var(--caddy-primary);
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* "Cancel License Renewal" is a low-priority action — tone the full black pill
   down to a quiet muted link (ID selector beats the .edd-submit.button pill). */
.page-checkout #edd_sl_cancel_renewal_form {
	margin-top: 12px;
}

.page-checkout #edd_sl_cancel_renewal_form p {
	margin: 0;
}

.page-checkout #edd_sl_cancel_renewal_form .edd-submit.button {
	display: inline-block;
	width: auto !important;
	min-height: 0 !important;
	padding: 2px 0 !important;
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--caddy-text-muted) !important;
	font-family: inherit !important;
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	line-height: 1.4 !important;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

.page-checkout #edd_sl_cancel_renewal_form .edd-submit.button:hover {
	background: transparent !important;
	color: var(--caddy-text-primary) !important;
}

/* Responsive: stack, summary above form */
@media (max-width: 980px) {
	.page-checkout #edd_checkout_wrap {
		grid-template-columns: 1fr;
		gap: 32px;
		padding: 32px var(--caddy-gutter) 64px;
	}

	.page-checkout #edd_checkout_cart_form {
		position: static !important;
		grid-column: 1;
		grid-row: 1;
	}

	.page-checkout #edd_checkout_form_wrap {
		grid-column: 1;
		grid-row: 2;
	}
}

/* "Order summary" label — EDD's ajaxed cart re-renders without the
   template's h3, so the card supplies its own heading */
.page-checkout #edd_checkout_cart::before {
	content: 'Order Summary';
	display: block;
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--caddy-text-muted);
	margin-bottom: 16px;
}

.page-checkout #edd_checkout_cart_wrap h3 {
	display: none; /* superseded by the ::before label (non-ajaxed renders) */
}

.page-checkout #edd_checkout_cart .edd_cart_actions {
	padding-left: 14px;
	text-align: right;
}

/* ============================================
   AUTH PAGES (login / password reset)
   Account-style hero + centered card form.
   ============================================ */

body.caddy-auth .site-main {
	box-sizing: content-box; /* 460px card + gutters; generic fallback is border-box */
	max-width: 460px;
	margin: 0 auto !important;
	padding: 24px var(--caddy-gutter) 96px;
}

/* Auth hero sits directly above the card (no nav strip between), so tighten the
   gap — the account hero's 48px bottom + card's top padding read as a void. */
body.caddy-auth .caddy-account-hero {
	padding-bottom: 24px;
}

body.caddy-auth .inside-article {
	background-color: var(--caddy-bg-card) !important;
	border: 1px solid var(--caddy-border);
	border-radius: 12px;
	padding: 36px 32px !important;
	box-shadow: 0 8px 30px rgba(17, 17, 17, 0.04);
}

body.caddy-auth .entry-header {
	display: none;
}

body.caddy-auth form legend {
	display: none;
}

body.caddy-auth form label {
	display: block;
	text-align: left;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--caddy-text-primary);
	margin-bottom: 6px;
}

body.caddy-auth form p {
	margin-bottom: 18px;
	text-align: left;
}

body.caddy-auth form input[type="text"],
body.caddy-auth form input[type="email"],
body.caddy-auth form input[type="password"] {
	width: 100%;
	padding: var(--caddy-input-padding);
	border: 1px solid var(--caddy-border-strong, #ccc);
	border-radius: var(--caddy-input-radius);
	background-color: var(--caddy-bg-primary);
	color: var(--caddy-text-primary);
	font-size: var(--caddy-input-font-size);
}

body.caddy-auth form input:focus {
	border-color: var(--caddy-primary);
	outline: 1px solid var(--caddy-primary);
}

body.caddy-auth form input[type="checkbox"] {
	margin-right: 6px;
}

body.caddy-auth form input[type="submit"],
body.caddy-auth form .edd-submit,
body.caddy-auth .entry-content form button[type="submit"] {
	display: block;
	width: 100%;
	background-color: var(--caddy-primary) !important;
	color: var(--caddy-on-primary) !important;
	font-family: var(--caddy-font-mono) !important;
	/* !important: core.css #edd_login_form [type=submit].edd-submit (ID
	   selector, 21px/900) outranks this rule otherwise */
	font-size: var(--caddy-btn-font-size) !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.5px !important;
	padding: var(--caddy-btn-padding) !important;
	border: 1px solid var(--caddy-primary) !important;
	border-radius: var(--caddy-btn-radius) !important;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

body.caddy-auth form input[type="submit"]:hover,
body.caddy-auth form .edd-submit:hover,
body.caddy-auth .entry-content form button[type="submit"]:hover {
	background-color: var(--caddy-primary-hover) !important;
	border-color: var(--caddy-primary-hover) !important;
}

body.caddy-auth .site-main a:not(.caddy-btn) {
	color: var(--caddy-primary);
	text-decoration: none;
}

body.caddy-auth .site-main a:not(.caddy-btn):hover {
	color: var(--caddy-primary-hover);
	text-decoration: underline;
}

body.caddy-auth .entry-content {
	color: var(--caddy-text-secondary);
}

/* core.css centers #edd_login_form's fieldset (display:flex; align-items:center;
   text-align:center), which collapses the inputs to content width and centers
   every row. Restore the full-width, left-aligned layout the reset/lost-password
   forms already use so all auth forms read identically. */
body.caddy-auth #edd_login_form fieldset,
body.caddy-auth #edd_register_form fieldset {
	align-items: stretch;
	text-align: left;
}

body.caddy-auth #edd_login_form fieldset p,
body.caddy-auth #edd_register_form fieldset p {
	align-items: stretch;
	gap: 0;
}

/* Remember-me row: keep checkbox + label inline-left, not stacked-centered. */
body.caddy-auth #edd_login_form p.edd-login-remember {
	flex-direction: row;
	align-items: center;
}

body.caddy-auth #edd_login_form p.edd-login-remember label {
	margin-bottom: 0;
}

/* ============================================
   WIDTH ALIGNMENT — account/checkout trees
   The header inner is var(--caddy-container) wide.
   Account content (GP element 1476's GB container,
   GB global width 1300 + content-box padding) and
   GP's 1300px grid-container rendered wider than
   the header — pin them all to the same grid.
   ============================================ */

/* Account content wrapper (element 1476) */
body.caddy-account .gb-container-4d81c486 {
	box-sizing: border-box;
	max-width: var(--caddy-container) !important;
	padding-left: var(--caddy-gutter) !important;
	padding-right: var(--caddy-gutter) !important;
}

/* Checkout grid — border-box so max-width includes the gutters */
.page-checkout #edd_checkout_wrap {
	box-sizing: border-box;
}

/* EDD SL's "Renew a License Key" legend is screen-reader-only but keeps its
   auto width (absolute, no left/width) — it extended scrollWidth ~450px past
   the viewport. Contain it without hurting a11y. */
.page-checkout legend.screen-reader-text {
	width: 1px;
	height: 1px;
	overflow: hidden;
	left: 0;
}

/* Shop (29) — GB page content inside GP's 1170px container; pin the outer
   wrapper to the grid (GB blocks keep their own narrower widths) */
body.page-shop .site-main {
	box-sizing: border-box;
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding-left: var(--caddy-gutter);
	padding-right: var(--caddy-gutter);
}

/* Confirmation + transaction-failed (checkout children, GP default
   container at 1300px) */
body.page-purchase-confirmation .site-main,
body.page-transaction-failed .site-main {
	box-sizing: border-box;
	max-width: var(--caddy-container);
	margin: 0 auto !important;
	padding: 32px var(--caddy-gutter) 48px;
}

/* "What's next" renders via generate_after_main_content (outside .site-main) */
.caddy-order-steps {
	box-sizing: border-box;
	max-width: var(--caddy-container);
	margin-left: auto;
	margin-right: auto;
	padding: 0 var(--caddy-gutter);
}

/* Transaction failed — centered status card */
body.page-transaction-failed .inside-article {
	text-align: center;
}

body.page-transaction-failed .entry-content {
	font-size: 1.05rem;
}

.caddy-txfailed-actions {
	margin-top: 24px;
}

/* ---------------------------------------------------------------------------
   Changelog (/changelog/, page 105)
   Rendered by [caddy_changelog] as Pro / Free tabs. Each panel holds a
   .caddy-changelog list built from the live readme (Pro: EDD SL readme parser,
   Free: WordPress.org plugins API). Markup is `<h4>version</h4>` + `<ul><li>`.
   core.css forces uppercase `var(--f-headings)` on .gb-container/.wp-block-heading
   headings and #444 body text, so the version-heading rules pin font + case with
   !important to win the tie. Tabs are a CSS radio toggle — no JS dependency.
   --------------------------------------------------------------------------- */
.caddy-changelog-tabs {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
}

/* Visually-hidden but keyboard-focusable radios drive the toggle. */
.caddy-cltab-input {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.caddy-cltab-nav {
	display: flex;
	justify-content: center;
	gap: 6px;
	margin: 0 0 36px;
	border-bottom: 1px solid var(--caddy-border);
}

.caddy-cltab {
	cursor: pointer;
	margin-bottom: -1px;
	padding: 10px 18px;
	font-family: var(--caddy-font-mono);
	font-size: 0.8125rem;
	letter-spacing: 0.02em;
	color: var(--caddy-text-muted);
	border-bottom: 2px solid transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.caddy-cltab span {
	color: var(--caddy-text-faint);
}

.caddy-cltab:hover {
	color: var(--caddy-text-primary);
}

#caddy-cl-pro:checked ~ .caddy-cltab-nav label[for="caddy-cl-pro"],
#caddy-cl-free:checked ~ .caddy-cltab-nav label[for="caddy-cl-free"] {
	color: var(--caddy-primary);
	border-bottom-color: var(--caddy-primary);
}

#caddy-cl-pro:checked ~ .caddy-cltab-nav label[for="caddy-cl-pro"] span,
#caddy-cl-free:checked ~ .caddy-cltab-nav label[for="caddy-cl-free"] span {
	color: var(--caddy-accent-purple);
}

/* Keyboard focus ring on the focused tab. */
#caddy-cl-pro:focus-visible ~ .caddy-cltab-nav label[for="caddy-cl-pro"],
#caddy-cl-free:focus-visible ~ .caddy-cltab-nav label[for="caddy-cl-free"] {
	outline: 2px solid var(--caddy-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

.caddy-cltab-panel {
	display: none;
}

#caddy-cl-pro:checked ~ .caddy-cltab-panel--pro,
#caddy-cl-free:checked ~ .caddy-cltab-panel--free {
	display: block;
}

.caddy-changelog {
	max-width: var(--caddy-container-narrow);
	margin: 0 auto;
	font-family: var(--caddy-font-body);
}

.caddy-changelog h4 {
	display: inline-block;
	margin: 0 0 18px !important;
	padding: 5px 14px;
	font-family: var(--caddy-font-mono) !important;
	font-size: 0.8125rem !important;
	font-weight: 500 !important;
	line-height: 1.3 !important;
	letter-spacing: 0.02em;
	text-transform: none !important;
	color: var(--caddy-primary) !important;
	background: var(--caddy-bg-card-hover);
	border: 1px solid var(--caddy-border);
	border-radius: 100px;
}

.caddy-changelog h4 + ul {
	margin: 0 0 40px;
	padding: 0 0 36px;
	list-style: none;
	border-bottom: 1px solid var(--caddy-border-subtle);
}

.caddy-changelog ul:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.caddy-changelog li {
	position: relative;
	margin: 0 0 10px;
	padding-left: 22px;
	font-size: 1rem;
	line-height: 1.6;
	color: var(--caddy-text-secondary);
}

.caddy-changelog li::before {
	content: "";
	position: absolute;
	left: 5px;
	top: 0.62em;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--caddy-border-strong);
}

/* ============================================
   BUTTONS — regular font, sentence case (sitewide)

   The button recipe used the mono font + uppercase. This re-points every
   button selector (theme, header CTA, EDD/checkout/account/auth, AffiliateWP,
   GenerateBlocks, Gravity Forms) to the body font with no transform.
   !important + the same selectors as the per-context rules above (several of
   which use !important) so it wins everywhere. Eyebrows/labels/nav keep their
   mono uppercase — they're not buttons and aren't listed here.
   ============================================ */
.caddy-btn,
.caddy-nav-cta,
.caddy-optin-button,
.caddy-contact-page .gform_wrapper input[type="submit"],
.caddy-contact-page .gform_footer .gform_button,
.caddy-purchase-box .edd-add-to-cart.caddy-btn,
.caddy-purchase-box .edd-submit.caddy-btn,
.caddy-purchase-box a.edd-submit.caddy-btn,
.caddy-page-content .gb-button,
.single-post .entry-content .gb-button,
.caddy-feature-content .gb-button,
.caddy-page-content .affwp-form input[type="submit"],
.caddy-page-content .affwp-form .button,
.caddy-page-content #affwp-generate-ref-url-form input[type="submit"],
body.caddy-account .edd-submit.button,
body.caddy-account .edd-submit.button.blue,
body.caddy-account #edd_sl_license_add_site_form input[type="submit"],
.page-checkout #edd_checkout_form_wrap .edd-cart-adjustment input.edd-submit,
.page-checkout #edd_checkout_form_wrap input.edd-apply-discount,
.page-checkout #edd_purchase_submit #edd-purchase-button,
.page-checkout .edd-checkout .edd-submit.button,
body.caddy-auth form input[type="submit"],
body.caddy-auth form .edd-submit,
body.caddy-auth .entry-content form button[type="submit"] {
	font-family: var(--caddy-font-body) !important;
	text-transform: none !important;
	letter-spacing: normal !important;
}
