/**
 * ThatWorx Base Theme - Authority Design System
 * Charcoal-dominant, premium, no nonsense.
 *
 * @author Troy Kearley / ThatWorx
 */

/* ========================================
   CSS Variables (output from ACF in head)
   Fallbacks for when plugin not active
   ======================================== */
:root {
	--tw-charcoal: #1F2428;
	--tw-offwhite: #F5F7F9;
	--tw-surface: #F4F6F8;
	--tw-orange: #F47A1F;
	--tw-font-heading: system-ui, -apple-system, sans-serif;
	--tw-font-body: system-ui, -apple-system, sans-serif;
	--tw-container-max: 1200px;
	--tw-pad-mobile: 36px;
	--tw-pad-tablet: 45px;
	--tw-pad-desktop: 54px;
	--tw-card-radius: 18px;
	--tw-hero-panel-radius: 14px;
	--tw-shadow: 0 4px 16px rgba(0,0,0,.1);

	/* Typography */
	--tw-h1-desktop: 60px;
	--tw-h1-mobile: 42px;
	--tw-h2-desktop: 38px;
	--tw-h2-mobile: 30px;
	--tw-h3: 24px;
	--tw-body: 18px;
	--tw-small-label: 13px;

	/* Container padding */
	--tw-container-pad-mobile: 24px;
	--tw-container-pad-tablet: 24px;
	--tw-container-pad-desktop: 24px;
	--tw-header-height: 72px;

	/* Hero - normalized across all core pages (tighter for above-the-fold) */
	--tw-hero-pad-top-mobile: 27px;
	--tw-hero-pad-top-tablet: 42px;
	--tw-hero-pad-top-desktop: 48px;
	--tw-hero-pad-bottom-mobile: 12px;
	--tw-hero-pad-bottom-tablet: 18px;
	--tw-hero-pad-bottom-desktop: 21px;

	/* How It Works / banded layouts */
	--tw-band-pad-desktop: 54px;
	--tw-band-pad-mobile: 36px;
	--tw-inner-gap: 18px;
	--tw-block-gap: 24px;
	--tw-gap-1: calc(var(--tw-block-gap) * 0.5);
	--tw-gap-2: calc(var(--tw-block-gap) * 0.75);
	--tw-gap-3: var(--tw-block-gap);
	--tw-gap-4: calc(var(--tw-block-gap) * 1.25);
	--tw-gap-5: calc(var(--tw-block-gap) * 1.5);
	--tw-gap-6: calc(var(--tw-block-gap) * 2);
	--tw-content-max: 72ch;
	--tw-card-pad: 28px;
	--tw-maxw: 1100px;
	--tw-maxw-narrow: 900px;
	--tw-accent: #F47A1F;
	--tw-hero-gradient: linear-gradient(165deg, #161a1e 0%, var(--tw-charcoal) 100%);
	--tw-dark-base: #121417;

	/* Section wrapper spacing (single source for panel-to-panel rhythm) */
	--twx-section-pad: 16px;
	--twx-section-gap: 32px;

	/* Header nav typography (desktop 1024px+) */
	--tw-nav-font-size: 13px;
	--tw-nav-letter-spacing: 0.14em;
	--tw-nav-weight: 700;
	--tw-nav-gap: 20px;
	--tw-nav-pad-y: 14px;
	--tw-nav-pad-x: 8px;
	--tw-nav-underline-h: 2px;
}

@media (max-width: 767px) {
	:root {
		--tw-block-gap: 18px;
		/* Mobile spacing scale (authority rhythm) */
		--tw-mobile-section-pad: 36px;
		--tw-mobile-card-pad: 20px;
		--tw-mobile-card-gap: 16px;
		--tw-mobile-btn-min-h: 48px;
		--tw-mobile-btn-radius: 10px;
	}
}

@media (min-width: 1200px) {
	:root {
		--tw-block-gap: 27px;
	}
}

/* ========================================
   Reset & Base
   ======================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	background: var(--tw-dark-base);
}

body {
	margin: 0;
	font-family: var(--tw-font-body);
	font-size: var(--tw-body);
	line-height: 1.6;
	color: var(--tw-charcoal);
	background: var(--tw-dark-base);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--tw-orange);
	text-decoration: none;
}

a:hover {
	text-decoration: underline;
}

/* Legacy section padding: used only when .twx-section is not present. Panels use .twx-section (below). */
.tw-section {
	padding-top: var(--tw-pad-mobile);
	padding-bottom: var(--tw-pad-mobile);
}
@media (min-width: 768px) {
	.tw-section {
		padding-top: var(--tw-pad-tablet);
		padding-bottom: var(--tw-pad-tablet);
	}
}
@media (min-width: 1024px) {
	.tw-section {
		padding-top: var(--tw-pad-desktop);
		padding-bottom: var(--tw-pad-desktop);
	}
}

/* ========================================
   TWX Design System (locked)
   Hero -> alternating dark bands -> Final CTA
   Authority vertical rhythm: panel padding via --twx-section-pad, gap between panels via --twx-section-gap.
   .twx-section (below) overrides .tw-section padding by cascade; one source for panel spacing.
   Block spacing via --tw-block-gap (24px), content max-width via --tw-content-max (72ch).
   ======================================== */
.twx-container {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
}

@media (max-width: 767px) {
	.twx-container {
		padding-left: var(--tw-container-pad-mobile, 24px);
		padding-right: var(--tw-container-pad-mobile, 24px);
	}
}

/* Section wrapper: single source for panel spacing (--twx-section-pad, --twx-section-gap). */
.twx-section {
	padding-top: var(--twx-section-pad);
	padding-bottom: var(--twx-section-pad);
	margin: 0;
	display: flow-root;
}
.twx-section + .twx-section {
	margin-top: min(var(--twx-section-gap), 32px);
}
.twx-section > *:first-child {
	margin-top: 0;
}
.twx-section > *:last-child {
	margin-bottom: 0;
}

.twx-band-dark {
	background: #121417;
	color: var(--tw-offwhite);
}
.twx-band-dark a {
	color: var(--tw-orange);
}

/* Buttons: ensure text visible site-wide (override link color in dark bands) */
.twx-band-dark .tw-btn--primary,
.twx-band-dark .tw-btn--primary:hover,
.twx-band-alt .tw-btn--primary,
.twx-band-alt .tw-btn--primary:hover,
.twx-hero .tw-btn--primary,
.twx-hero .tw-btn--primary:hover,
.twx-cta-band .tw-btn--primary,
.twx-cta-band .tw-btn--primary:hover,
.internal-hero .tw-btn--primary,
.internal-hero .tw-btn--primary:hover,
.twx-band-dark .tw-btn--secondary,
.twx-band-alt .tw-btn--secondary,
.twx-hero .tw-btn--secondary,
.twx-cta-band .tw-btn--secondary {
	color: #ffffff;
}

.twx-band-dark .tw-btn--secondary:hover,
.twx-band-alt .tw-btn--secondary:hover,
.twx-hero .tw-btn--secondary:hover,
.twx-cta-band .tw-btn--secondary:hover {
	color: var(--tw-orange);
}

.tw-section--dark .tw-btn--primary,
.tw-section--dark .tw-btn--primary:hover,
.tw-section--navy-charcoal .tw-btn--primary,
.tw-section--navy-charcoal .tw-btn--primary:hover,
.tw-section--deep-charcoal .tw-btn--primary,
.tw-section--deep-charcoal .tw-btn--primary:hover {
	color: #ffffff;
}

.twx-band-alt {
	background: #181c20;
	color: var(--tw-offwhite);
}
.twx-band-alt a {
	color: var(--tw-orange);
}

.twx-hero {
	background: var(--tw-hero-gradient);
	color: var(--tw-offwhite);
	position: relative;
	/* Override twx-section: tighter hero padding, smaller hero-to-section gap */
	padding-top: var(--tw-hero-pad-top-mobile);
	padding-bottom: var(--tw-hero-pad-bottom-mobile);
}
@media (min-width: 768px) {
	.twx-hero {
		padding-top: var(--tw-hero-pad-top-tablet);
		padding-bottom: var(--tw-hero-pad-bottom-tablet);
	}
}
@media (min-width: 1024px) {
	.twx-hero {
		padding-top: var(--tw-hero-pad-top-desktop);
		padding-bottom: var(--tw-hero-pad-bottom-desktop);
	}
}
.twx-hero a {
	color: var(--tw-orange);
}

.twx-hero .tw-btn--primary {
	color: #ffffff;
	font-weight: 600;
}

.twx-card {
	background: #1c1f23;
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 16px;
	padding: 2rem;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

.twx-band-dark .twx-card,
.twx-band-alt .twx-card {
	border-color: rgba(255, 255, 255, 0.1);
}

.twx-cta-band {
	background: #121417;
	color: var(--tw-offwhite);
	text-align: center;
	position: relative;
}
.twx-cta-band::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 80px;
	height: 3px;
	background: var(--tw-orange);
	border-radius: 2px;
}

/* Final CTA: accent only when bound to heading; hide section-level floating accent */
#final-cta.twx-cta-band::before {
	display: none;
}
.twx-cta-band .tw-cta-authority {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	opacity: 0.9;
	margin: 0 0 1rem;
	text-align: center;
}

.twx-cta-band .tw-h2 {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	margin-bottom: 0.75rem;
}

.twx-cta-band .twx-container {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 24px;
	padding-right: 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.twx-section-header {
	margin-bottom: var(--tw-block-gap);
}

.twx-eyebrow {
	display: inline-block;
	font-size: 12px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--tw-orange);
	margin-bottom: 12px;
}

.twx-section-title {
	font-size: 32px;
	font-weight: 700;
	margin: 0;
}

.twx-content-narrow {
	max-width: var(--tw-content-max);
}

.twx-cta-band .tw-lead {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
	max-width: 42ch;
}

.twx-cta-band .tw-cta-buttons {
	justify-content: center;
	margin-top: 0.5rem;
}

@media (min-width: 768px) {
	.page-pricing-main #final-cta {
		text-align: left;
	}
	.page-pricing-main #final-cta .twx-container {
		display: grid;
		grid-template-columns: minmax(760px, 920px) 1fr;
		gap: 2rem;
		max-width: var(--tw-container-max);
		align-items: flex-start;
	}
	.page-pricing-main #final-cta .twx-container > * {
		grid-column: 1;
	}
	.page-pricing-main #final-cta .tw-cta-authority,
	.page-pricing-main #final-cta .tw-h2,
	.page-pricing-main #final-cta .tw-lead {
		text-align: left;
	}
	.page-pricing-main #final-cta .tw-lead {
		margin-left: 0;
		margin-right: auto;
	}
	.page-pricing-main #final-cta .tw-cta-buttons {
		justify-content: flex-start;
	}
}

/* Override legacy bands when twx design system is applied */
.tw-howitworks .tw-band.twx-band-dark {
	background: #121417;
}
.tw-howitworks .tw-band.twx-band-alt {
	background: #181c20;
}

/* tw-addons (custom-upgrades) uses twx design system */
.tw-addons.twx-band-alt {
	background: #181c20;
	color: var(--tw-offwhite);
	padding-top: 64px;
	padding-bottom: 64px;
}
.tw-addons.twx-band-alt a {
	color: var(--tw-orange);
}

.tw-addons.twx-band-alt .tw-addons__lead {
	color: rgba(255, 255, 255, 0.92);
}
@media (min-width: 768px) {
	.tw-addons.twx-band-alt {
		padding-top: 80px;
		padding-bottom: 80px;
	}
}
@media (min-width: 1024px) {
	.tw-addons.twx-band-alt {
		padding-top: 100px;
		padding-bottom: 100px;
	}
}

/* FAQ in dark bands: light borders */
.twx-band-dark .tw-faq-item,
.twx-band-alt .tw-faq-item {
	border-color: rgba(255,255,255,0.12);
}

/* Pricing tiers as twx-card: dark card overrides */
.tw-pricing-tier.twx-card {
	background: #1c1f23;
	border: 1px solid rgba(255,255,255,0.06);
	box-shadow: none;
	color: var(--tw-offwhite);
}
.twx-card.tw-pricing-tier .tw-pricing-tier__subline,
.twx-card.tw-pricing-tier .tw-pricing-tier__desc,
.twx-card.tw-pricing-tier .tw-pricing-tier__meta,
.twx-card.tw-pricing-tier .twx-feature-list li,
.twx-card.tw-pricing-tier .tw-pricing-tier__features li {
	color: rgba(255,255,255,0.92);
}
.twx-card.tw-pricing-tier .tw-pricing-tier__micro {
	color: var(--tw-orange);
}

/* ========================================
   Layout (legacy - maps to twx where possible)
   ======================================== */
.tw-container {
	max-width: var(--tw-container-max);
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--tw-container-pad-mobile);
	padding-right: var(--tw-container-pad-mobile);
}

@media (min-width: 768px) {
	.tw-container {
		padding-left: var(--tw-container-pad-tablet);
		padding-right: var(--tw-container-pad-tablet);
	}
}

@media (min-width: 1024px) {
	.tw-container {
		padding-left: var(--tw-container-pad-desktop);
		padding-right: var(--tw-container-pad-desktop);
	}
}

/* Section variants */
.tw-section--dark {
	background: var(--tw-charcoal);
	color: var(--tw-offwhite);
}

.tw-section--dark a {
	color: var(--tw-orange);
}

.tw-section--dark .tw-btn--primary,
.tw-section--dark .tw-btn--primary:hover,
.tw-section--navy-charcoal .tw-btn--primary,
.tw-section--navy-charcoal .tw-btn--primary:hover,
.tw-section--deep-charcoal .tw-btn--primary,
.tw-section--deep-charcoal .tw-btn--primary:hover {
	color: #fff;
}

.tw-section--surface {
	background: var(--tw-surface);
}

/* Intro bands under hero: use dark base so no white strip in continuous dark theme */
main > .tw-section--surface {
	background: var(--tw-dark-base);
	color: var(--tw-offwhite);
}
main > .tw-section--surface .tw-lead {
	color: rgba(255, 255, 255, 0.92);
}
main > .tw-section--surface.tw-texture-light::after {
	background: transparent;
	opacity: 0;
}
main > #homepage-intro.tw-texture-light::before,
main > #homepage-intro.tw-texture-light::after {
	display: none;
}

/* Why Choose ThatWorx - authority treatment */
.tw-why-choose.tw-section {
	background: #eef0f2;
}

.tw-why-choose__inner {
	background: #fff;
	border-radius: 12px;
	padding: 2rem;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

@media (min-width: 768px) {
	.tw-why-choose__inner {
		padding: 2.5rem;
	}
}

.tw-why-choose__headline {
	margin-bottom: 1rem;
	font-weight: 800;
	padding-left: 1rem;
	border-left: 4px solid var(--tw-orange);
}

.tw-why-choose__intro {
	font-size: 1.125rem;
	line-height: 1.6;
	margin: 0 0 1.25rem;
}

.tw-why-choose__grid {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.5rem;
}

@media (min-width: 768px) {
	.tw-why-choose__grid {
		grid-template-columns: 1fr 1fr;
		gap: 0.5rem 2rem;
	}
}

.tw-why-choose__grid li {
	padding: 0.15rem 0;
	font-size: 1rem;
}

.tw-why-choose__closing {
	font-weight: 800;
	font-size: 1.0625rem;
	margin: 0;
}

/* Momentum block */
.tw-momentum.tw-section {
	padding-top: 48px;
	padding-bottom: 48px;
	text-align: center;
}

@media (min-width: 768px) {
	.tw-momentum.tw-section {
		padding-top: 60px;
		padding-bottom: 60px;
	}
}

.tw-momentum__inner {
	display: flex;
	justify-content: center;
	align-items: center;
}

.tw-momentum__content {
	max-width: 800px;
	margin: 0 auto;
}

.tw-momentum__headline {
	margin-bottom: 0.75rem;
}

.tw-momentum__subline {
	font-size: 1.25rem;
	line-height: 1.5;
	opacity: 0.95;
	margin: 0 0 0.5rem;
}

/* Momentum stat: prominent social proof */
/* Reinforcement band: left-aligned, single column, no line break in heading */
.tw-reinforcement-top {
	text-align: left;
}
.tw-reinforcement-top .tw-wyg-grid__spacer {
	display: none;
}
@media (min-width: 900px) {
	.tw-reinforcement-top.tw-wyg-grid {
		grid-template-columns: 1fr;
	}
	.tw-reinforcement-top .tw-wyg-grid__spacer {
		display: none;
	}
}
#reinforcement-band .tw-h2--accent {
	white-space: normal;
	overflow-wrap: break-word;
}
/* Keep single-line accent heading only when there is enough room. */
@media (min-width: 900px) {
	#reinforcement-band .tw-h2--accent {
		white-space: nowrap;
	}
}

/* Prevent mobile clipping from grid child minimum content width. */
#reinforcement-band .tw-wyg-grid__right {
	min-width: 0;
}
#reinforcement-band .tw-lead {
	overflow-wrap: break-word;
}
/* Orange line above "Built" (same length as How We Operate) */
#reinforcement-band .tw-h2--accent::before {
	width: 60px;
}
.tw-momentum__number {
	font-size: 56px;
	font-weight: 800;
	letter-spacing: -1px;
	color: var(--tw-orange);
	text-align: center;
	margin: 0 0 0.5rem;
	line-height: 1;
}

.tw-momentum__label {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-align: center;
	margin: 0;
	line-height: 1.5;
	opacity: 0.9;
}

@media (min-width: 768px) {
	.tw-momentum__number {
		font-size: 88px;
		margin-bottom: 0.75rem;
	}

	.tw-momentum__label {
		font-size: 1rem;
	}
}

.tw-momentum__support {
	font-size: 0.9375rem;
	opacity: 0.85;
	margin: 0;
}

/* About page: trust strip + visual anchor */
.tw-about__trust {
	padding-top: 16px;
	padding-bottom: 16px;
	position: relative;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.tw-about__trust-inner {
	position: relative;
	display: grid;
	gap: 1rem;
}
.tw-about__trust-stats {
	display: flex;
	flex-wrap: wrap;
	gap: 0.875rem 1.75rem;
	align-items: center;
	justify-content: flex-start;
	margin-top: 0;
}
.tw-about__trust-stat {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	font-size: 0.88rem;
	font-weight: 500;
	opacity: 0.92;
}
.tw-about__trust-stat .tw-icon {
	flex-shrink: 0;
	color: var(--tw-orange);
}
.tw-about__trust-stat .tw-icon svg {
	width: 22px;
	height: 22px;
}

.tw-about__intro {
	max-width: 74ch;
	padding-top: 0.2rem;
}

/* About page: typography hierarchy */
.tw-about__label {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--tw-orange);
	margin: 0 0 0.45rem;
}
.tw-about__intro-title {
	font-family: var(--tw-font-heading);
	font-size: clamp(1.35rem, 2.4vw, 1.9rem);
	line-height: 1.2;
	letter-spacing: -0.01em;
	margin: 0 0 0.7rem;
}
.tw-about__body {
	max-width: 72ch;
	margin: 0;
	font-size: clamp(1rem, 1.7vw, 1.1rem);
	line-height: 1.58;
}

/* About page: story + operating model card */
.tw-about__story-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.4rem;
	align-items: start;
}
@media (min-width: 960px) {
	.tw-about__story-grid {
		grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.9fr);
		gap: 1.6rem;
	}
}
.tw-about__story-copy {
	max-width: 74ch;
}
.tw-about__summary-card {
	padding: 1rem 1.05rem;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.1);
	box-shadow: 0 14px 36px rgba(0, 0, 0, 0.24);
}
.tw-about__summary-title {
	font-family: var(--tw-font-heading);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.03em;
	margin: 0 0 0.65rem;
}
.tw-about__summary-list {
	margin: 0;
	padding-left: 1.1rem;
	display: grid;
	gap: 0.5rem;
}
.tw-about__summary-list li {
	line-height: 1.45;
	opacity: 0.92;
}

/* About page: values pillars */
.tw-about__pillars-wrap {
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 36px;
	padding-bottom: 48px;
}
@media (min-width: 768px) {
	.tw-about__pillars-wrap {
		padding-top: 44px;
		padding-bottom: 56px;
	}
}
.tw-about__pillars-title {
	font-family: var(--tw-font-heading);
	font-size: var(--tw-h2-mobile);
	font-weight: 800;
	margin: 0 0 1.5rem;
	text-align: left;
}
@media (min-width: 768px) {
	.tw-about__pillars-title {
		font-size: clamp(2.25rem, 3.5vw, 2.75rem);
		font-weight: 900;
		margin-top: 0.5rem;
		margin-bottom: 3rem;
	}
}
.tw-about__pillars {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	align-items: stretch;
}
@media (min-width: 768px) {
	.tw-about__pillars {
		gap: 0.95rem;
		max-width: 100%;
	}
}
@media (min-width: 900px) {
	.tw-about__pillars {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 0.95rem;
	}
}
.tw-about__pillar {
	text-align: left;
	padding: 0.95rem 0.85rem;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 12px;
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}
@media (min-width: 768px) {
	.tw-about__pillar {
		padding: 1rem 0.9rem;
	}
}
.tw-about__pillar .tw-icon {
	display: block;
	margin: 0 0 1rem;
	color: var(--tw-orange);
}
.tw-about__pillar .tw-icon svg {
	width: 34px;
	height: 34px;
}
@media (min-width: 768px) {
	.tw-about__pillar .tw-icon svg {
		width: 36px;
		height: 36px;
	}
}
.tw-about__pillar-title {
	font-family: var(--tw-font-heading);
	font-size: 1.15rem;
	font-weight: 800;
	margin: 0 0 0.375rem;
}
@media (min-width: 768px) {
	.tw-about__pillar-title {
		font-weight: 900;
	}
}
.tw-about__pillar-sub {
	font-size: 0.9rem;
	opacity: 0.88;
	margin: 0;
	line-height: 1.5;
}

/* Why ThatWorx: reduce bottom padding by 20px */
#why.tw-section {
	padding-bottom: calc(var(--tw-pad-mobile) - 20px);
}

@media (min-width: 768px) {
	#why.tw-section {
		padding-bottom: calc(var(--tw-pad-tablet) - 20px);
	}
}

@media (min-width: 1024px) {
	#why.tw-section {
		padding-bottom: calc(var(--tw-pad-desktop) - 20px);
	}
}

/* ========================================
   Internal Hero (authoritative standard)
   Pricing, Industries, How It Works, Grand Strand, Contact, future internal
   ======================================== */
/* Site-wide: header clearance for fixed nav; main always dark so gaps between sections never show white */
main {
	display: flow-root;
	background: var(--tw-dark-base);
}

main > section {
	margin: 0;
}

main > section:first-of-type:not(.internal-hero):not(.tw-hero) {
	margin-top: var(--tw-header-height);
}

/* Hero pages: main already dark above; keep for specificity if needed */
main:has(> .internal-hero),
main:has(> .tw-hero) {
	background: var(--tw-dark-base);
}

/* Hero framing uses header separator for consistent cross-template rendering. */

.internal-hero {
	position: relative;
	overflow: hidden;
	margin-top: var(--tw-header-height);
	margin-bottom: 0;
	padding-top: 30px;
	padding-bottom: 16px;
	background: var(--tw-hero-gradient);
	color: var(--tw-offwhite);
}
@media (min-width: 768px) {
	.internal-hero {
		padding-bottom: 16px;
	}
}
@media (min-width: 1024px) {
	.internal-hero {
		padding-bottom: 16px;
	}
}

/* Keep home and internal heroes aligned under the fixed header. */
.tw-hero {
	margin-top: var(--tw-header-height);
}

.internal-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E");
	opacity: 0.065;
	pointer-events: none;
}

.internal-hero > * {
	position: relative;
	z-index: 1;
}

.internal-hero__container {
	max-width: var(--tw-container-max);
	display: block;
}

.internal-hero__content {
	max-width: 680px;
	text-align: left;
	padding-top: 0;
}

.internal-hero__headline {
	font-family: var(--tw-font-heading);
	font-size: clamp(2rem, 6.2vw, 2.4rem);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -0.02em;
	margin: 0;
}

.internal-hero__subline {
	font-size: clamp(1rem, 2.05vw, 1.12rem);
	line-height: 1.54;
	max-width: 46ch;
	margin: 0;
	opacity: 0.96;
}

.internal-hero__headline + .internal-hero__subline {
	margin-top: 0.65rem;
}

.internal-hero__microline {
	font-size: 0.95rem;
	opacity: 0.9;
	margin: 0.55rem 0 0;
}

.internal-hero a {
	color: var(--tw-orange);
}

/* Pricing page hero refinements */
.internal-hero--pricing .internal-hero__content {
	max-width: 650px;
}

/* ========================================
   Header
   ======================================== */
.tw-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 1000;
	min-height: var(--tw-header-height);
	border-bottom: 1px solid rgba(255, 255, 255, 0.22);
	transition: background 0.3s ease, color 0.3s ease, box-shadow 0.3s ease;
}

.tw-header--transparent {
	background: transparent;
	color: var(--tw-offwhite);
}

.tw-header--transparent .tw-header__menu a,
.tw-header--transparent .tw-header__logo-text {
	color: inherit;
}

.tw-header--solid {
	background: var(--tw-charcoal);
	color: var(--tw-offwhite);
}

.tw-header--solid .tw-header__menu a,
.tw-header--solid .tw-header__logo-text {
	color: inherit;
}

.tw-header__inner {
	max-width: var(--tw-container-max);
	margin: 0 auto;
	padding: 1rem var(--tw-container-pad-mobile);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
}


.tw-header__logo img {
	height: 42px;
	width: auto;
}
@media (min-width: 1024px) {
	.tw-header__logo img {
		height: 46px;
	}
}

.tw-header__logo-text {
	font-family: var(--tw-font-heading);
	font-weight: 700;
	font-size: 2.5rem;
	letter-spacing: 0.02em;
}

.tw-header__logo-text:hover {
	text-decoration: none;
}

.tw-header__logo-text .tw-logo-worx {
	transition: color 0.2s ease;
}

.tw-header__logo-text:hover .tw-logo-worx {
	color: var(--tw-orange);
}

@keyframes tw-logo-shimmer {
	0% { text-shadow: 0 0 0 transparent; filter: brightness(1); }
	50% { text-shadow: 0 0 12px var(--tw-orange); filter: brightness(1.15); }
	100% { text-shadow: 0 0 0 transparent; filter: brightness(1); }
}

.tw-logo-worx.shimmered {
	animation: tw-logo-shimmer 0.6s ease;
}

.tw-header__nav {
	display: none;
}

@media (min-width: 768px) {
	.tw-header__nav {
		display: block;
	}

	.tw-header__toggle {
		display: none;
	}

}

.tw-header__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 1.5rem;
}

.tw-header__menu a {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	text-decoration: none;
	font-weight: 600;
}

.tw-header__menu a:hover {
	text-decoration: none;
	opacity: 0.9;
}

.tw-header__toggle {
	position: relative;
	z-index: 1001;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.5rem;
	display: flex;
	flex-direction: column;
	gap: 5px;
	color: inherit;
}

.tw-header__toggle span {
	display: block;
	width: 24px;
	height: 2px;
	background: currentColor;
	transition: transform 0.3s ease, opacity 0.2s ease;
	transform-origin: center;
}

/* Mobile nav: Command center (authority, not SaaS) */
@media (max-width: 767px) {
	/* A) Hamburger / close – elite, consistent (same when open) */
	.tw-header__toggle {
		width: 48px;
		height: 48px;
		min-width: 48px;
		min-height: 48px;
		padding: 0;
		display: flex;
		align-items: center;
		justify-content: center;
		background: rgba(0, 0, 0, 0.4);
		border: 1px solid rgba(255, 255, 255, 0.2);
		border-radius: 10px;
		box-shadow: none;
		color: rgba(255, 255, 255, 0.92);
		transition: border-color 0.15s ease-out, background 0.15s ease-out, box-shadow 0.15s ease-out;
	}
	.tw-header__toggle:hover {
		background: rgba(0, 0, 0, 0.5);
		border-color: rgba(255, 255, 255, 0.3);
		color: rgba(255, 255, 255, 0.95);
	}
	.tw-header__toggle:focus {
		outline: none;
	}
	.tw-header__toggle:focus-visible {
		box-shadow: 0 0 0 3px rgba(244, 122, 31, 0.35);
	}
	body.tw-menu-open .tw-header__toggle {
		background: rgba(0, 0, 0, 0.4);
		border-color: rgba(255, 255, 255, 0.2);
	}
	body.tw-menu-open .tw-header__toggle:focus-visible {
		box-shadow: 0 0 0 3px rgba(244, 122, 31, 0.35);
	}
	.tw-header__toggle span {
		width: 20px;
		height: 2px;
		background: currentColor;
		transition: transform 0.18s ease-out, opacity 0.15s ease-out;
	}
	.tw-header__toggle {
		gap: 5px;
	}
	body.tw-menu-open .tw-header__toggle span:nth-child(1) {
		transform: translateY(7px) rotate(45deg);
	}
	body.tw-menu-open .tw-header__toggle span:nth-child(2) {
		opacity: 0;
	}
	body.tw-menu-open .tw-header__toggle span:nth-child(3) {
		transform: translateY(-7px) rotate(-45deg);
	}

	/* B) Command center drawer */
	.tw-header__nav {
		display: block;
		position: fixed;
		inset: 0;
		z-index: 999;
		pointer-events: none;
	}

	.tw-header__nav.is-open {
		pointer-events: auto;
	}

	.tw-header__nav-backdrop {
		position: fixed;
		inset: 0;
		background: rgba(0, 0, 0, 0.6);
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		cursor: pointer;
		opacity: 0;
		transition: opacity 180ms ease-out;
		pointer-events: none;
		padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
	}

	.tw-header__nav.is-open .tw-header__nav-backdrop {
		opacity: 1;
		pointer-events: auto;
	}

	.tw-header__nav-panel {
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		width: min(88vw, 380px);
		padding: calc(var(--tw-header-height) + var(--tw-gap-3)) var(--tw-gap-3) max(var(--tw-gap-3), env(safe-area-inset-bottom)) var(--tw-gap-3);
		background: linear-gradient(180deg, #0c0e12 0%, #080a0d 100%);
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		border-left: 1px solid rgba(255, 255, 255, 0.1);
		box-shadow: -20px 0 60px rgba(0, 0, 0, 0.65);
		border-radius: 0;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		z-index: 1000;
		transform: translateX(100%);
		transition: transform 0.18s ease-out;
	}

	.tw-header__nav.is-open .tw-header__nav-panel {
		transform: translateX(0);
	}

	/* Drawer label (glossy highlight removed - no SaaS glass) */
	.tw-header__nav-panel::before {
		display: none;
	}

	.tw-header__nav .tw-header__menu {
		flex: 0 1 auto;
		max-height: min(55vh, 320px);
		flex-direction: column;
		gap: 0;
		list-style: none;
		margin: 0;
		padding: calc(var(--tw-gap-3) + 1.25rem) 0 0;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.tw-header__nav .tw-header__menu::-webkit-scrollbar {
		display: none;
	}

	.tw-header__nav .tw-header__menu li {
		margin: 0;
		border: none;
	}

	.tw-header__nav .tw-header__menu a {
		display: flex;
		align-items: center;
		width: 100%;
		min-height: 56px;
		padding: 0 var(--tw-gap-2);
		font-size: 1rem;
		font-weight: 600;
		letter-spacing: 0.08em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, 0.92);
		text-decoration: none;
		background: transparent;
		border: none;
		border-radius: 0;
		transition: opacity 0.15s ease-out, transform 0.1s ease-out, box-shadow 0.15s ease-out;
	}

	.tw-header__nav .tw-header__menu li:not(:last-child) {
		border-bottom: 1px solid rgba(255, 255, 255, 0.08);
	}

	.tw-header__nav .tw-header__menu a:hover {
		opacity: 0.75;
		text-decoration: none;
	}

	.tw-header__nav .tw-header__menu a:active {
		transform: translateY(0.5px);
	}

	.tw-header__nav .tw-header__menu a:focus {
		outline: none;
	}

	.tw-header__nav .tw-header__menu a:focus-visible {
		box-shadow: inset 0 0 0 2px var(--tw-orange);
	}

	/* Active page row */
	.tw-header__nav .tw-header__menu .current-menu-item > a,
	.tw-header__nav .tw-header__menu a[aria-current="page"] {
		position: relative;
		background: rgba(255, 255, 255, 0.04);
		border-bottom-color: rgba(255, 255, 255, 0.06);
	}
	.tw-header__nav .tw-header__menu .current-menu-item > a::before,
	.tw-header__nav .tw-header__menu a[aria-current="page"]::before {
		content: "";
		position: absolute;
		left: 0;
		top: 0;
		bottom: 0;
		width: 3px;
		background: var(--tw-orange);
	}

	/* Drawer CTA block: sit right below menu so it stays visible */
	.tw-header__drawer-cta {
		flex-shrink: 0;
		margin-top: 1.25rem;
		padding: 1.25rem 0 0;
		border-top: 1px solid rgba(255, 255, 255, 0.08);
	}
	.tw-header__drawer-cta-text {
		font-size: 0.875rem;
		color: rgba(255, 255, 255, 0.58);
		letter-spacing: 0.02em;
		margin: 0 0 var(--tw-gap-2);
	}
	.tw-header__drawer-cta .tw-btn--primary,
	.tw-header__drawer-cta .tw-btn--secondary {
		display: block;
		width: 100%;
		min-height: 48px;
		text-align: center;
		border-radius: 8px;
		box-shadow: none;
	}
	.tw-header__drawer-cta .tw-btn--primary {
		margin-bottom: var(--tw-gap-1);
	}
	.tw-header__drawer-cta .tw-btn--secondary {
		border: 2px solid rgba(255, 255, 255, 0.5);
	}
	.tw-header__drawer-cta .tw-btn--secondary:hover {
		border-color: var(--tw-orange);
		color: var(--tw-orange);
	}
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
	.tw-header__toggle,
	.tw-header__toggle span,
	.tw-header__nav-backdrop,
	.tw-header__nav-panel {
		transition-duration: 0.01ms;
	}
}

body.tw-menu-open {
	overflow: hidden;
}

@media (min-width: 768px) {
	.tw-header__nav-backdrop {
		display: none !important;
	}

	.tw-header__nav-panel {
		position: static;
		right: auto;
		width: auto;
		max-width: none;
		transform: none;
		background: none;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		border: none;
		box-shadow: none;
		padding: 0;
		transition: none;
	}

	.tw-header__nav-panel::before {
		display: none;
	}

	.tw-header__drawer-cta {
		display: none;
	}
}

@media (min-width: 1024px) {
	.tw-hamburger,
	.menu-toggle,
	.mobile-menu-toggle,
	.tw-header__toggle {
		display: none !important;
	}
}

/* Header typeset – desktop authority (1024px+) */
@media (min-width: 1024px) {
	/* Logo / wordmark */
	.tw-header .tw-header__logo-text {
		font-weight: 800;
		letter-spacing: -0.015em;
		line-height: 1;
	}

	/* Nav links */
	.tw-header .tw-header__menu {
		gap: var(--tw-nav-gap);
	}
	.tw-header .tw-header__menu a {
		text-transform: uppercase;
		font-size: var(--tw-nav-font-size);
		font-weight: var(--tw-nav-weight);
		letter-spacing: var(--tw-nav-letter-spacing);
		line-height: 1;
		padding: var(--tw-nav-pad-y) var(--tw-nav-pad-x);
		text-decoration: none;
		position: relative;
		display: inline-block;
	}
	.tw-header .tw-header__menu a:hover {
		text-decoration: none;
		opacity: 1;
	}

	/* Underline indicator – animates from center */
	.tw-header .tw-header__menu a::after {
		content: "";
		position: absolute;
		left: 50%;
		bottom: 0;
		width: 100%;
		height: var(--tw-nav-underline-h);
		background: currentColor;
		transform: translateX(-50%) scaleX(0);
		transform-origin: center;
		transition: transform 0.2s ease;
	}
	.tw-header .tw-header__menu a:hover::after,
	.tw-header .tw-header__menu a:focus-visible::after {
		transform: translateX(-50%) scaleX(1);
	}

	/* Current page state */
	.tw-header .tw-header__menu .current-menu-item > a,
	.tw-header .tw-header__menu a[aria-current="page"] {
		color: rgba(255, 255, 255, 0.98);
	}
	.tw-header .tw-header__menu .current-menu-item > a::after,
	.tw-header .tw-header__menu a[aria-current="page"]::after {
		background: var(--tw-orange);
		transform: translateX(-50%) scaleX(1);
	}

	/* Focus-visible – no layout shift */
	.tw-header .tw-header__menu a:focus {
		outline: none;
	}
	.tw-header .tw-header__menu a:focus-visible {
		box-shadow: 0 0 0 2px var(--tw-orange);
	}
}

/* ========================================
   Typography
   ======================================== */
.tw-h1 {
	font-family: var(--tw-font-heading);
	font-size: var(--tw-h1-mobile);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	margin: 0 0 1rem;
	max-width: 72ch;
}

@media (min-width: 1024px) {
	.tw-h1 {
		font-size: var(--tw-h1-desktop);
	}
}

.tw-h1--caps {
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.tw-h2 {
	font-family: var(--tw-font-heading);
	font-size: var(--tw-h2-mobile);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -0.015em;
	margin: 0 0 1rem;
}

@media (min-width: 1024px) {
	.tw-h2 {
		font-size: var(--tw-h2-desktop);
	}
}

.tw-h2--accent {
	position: relative;
	padding-top: 0.5rem;
}

.tw-h2--accent::before {
	content: none;
}

.tw-h3 {
	font-family: var(--tw-font-heading);
	font-size: var(--tw-h3);
	font-weight: 800;
	letter-spacing: -0.01em;
	margin: 0 0 0.5rem;
}

.tw-lead {
	font-size: 1.125rem;
	line-height: 1.6;
	max-width: 72ch;
	margin: 0 0 1.5rem;
}

.tw-lead-cta {
	margin: 1.5rem 0 0;
}

.tw-wyg-section {
	max-width: var(--tw-container-max);
}

.tw-wyg-grid {
	display: grid;
	gap: 32px;
}

@media (min-width: 900px) {
	.tw-wyg-grid {
		grid-template-columns: 1fr 1fr;
		gap: 48px;
	}

	.tw-wyg-grid--single {
		grid-template-columns: 1fr;
	}
}

.tw-wyg-list {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	max-width: 72ch;
}

.tw-wyg-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 7px 0;
	font-size: 1.0625rem;
}

.tw-wyg-list li .tw-icon {
	flex-shrink: 0;
	color: var(--tw-orange);
}

/* Two-column services list (e.g. Agency Partner: 4 and 4) */
.tw-wyg-list--two-col {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.5rem 2rem;
	max-width: none;
}
@media (max-width: 639px) {
	.tw-wyg-list--two-col {
		grid-template-columns: 1fr;
	}
}

.tw-wyg-authority {
	list-style: none;
	margin: 0;
	padding: 0;
}

.tw-wyg-authority li {
	position: relative;
	padding-left: 1.25rem;
	padding-top: 6px;
	padding-bottom: 6px;
	font-size: 1rem;
	line-height: 1.5;
}

.tw-wyg-grid__right .tw-h2 {
	margin-bottom: 16px;
}

.tw-wyg-authority li::before {
	content: '-';
	position: absolute;
	left: 0;
	color: var(--tw-charcoal);
	opacity: 0.6;
}

.twx-band-dark .tw-wyg-authority li::before,
.twx-band-alt .tw-wyg-authority li::before {
	color: var(--tw-offwhite);
	opacity: 0.5;
}

.tw-wyg-authority-intro {
	font-size: 1.0625rem;
	line-height: 1.5;
	margin: 0 0 1rem;
}

.tw-wyg-authority-closing {
	margin: 1rem 0 0;
	font-size: 1rem;
}

.tw-reinforcement-pillars {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
	margin-top: 1.5rem;
}

@media (min-width: 768px) {
	.tw-reinforcement-pillars {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 1rem;
		border-top: none;
		padding-top: 1.1rem;
	}
}

.tw-reinforcement-pillar {
	position: relative;
	padding: 1rem 1rem 0.9rem;
	border-radius: 12px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-top: 2px solid rgba(244, 122, 31, 0.72);
	background: rgba(255, 255, 255, 0.04);
	box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
}

@media (min-width: 768px) {
	.tw-reinforcement-pillar {
		padding: 1.1rem 1rem 1rem;
	}
}

.tw-reinforcement-pillar::before {
	content: none;
}

.tw-reinforcement-pillar__title {
	font-family: var(--tw-font-heading);
	font-size: 1.12rem;
	font-weight: 800;
	margin: 0 0 0.35rem;
	line-height: 1.2;
}

.tw-reinforcement-pillar__line {
	font-size: 0.96rem;
	opacity: 0.94;
	line-height: 1.48;
	margin: 0;
}

.tw-label {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}

/* ========================================
   Buttons
   ======================================== */
.tw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.875rem 1.5rem;
	font-family: var(--tw-font-heading);
	font-size: 0.98rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	border: 2px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, transform 0.12s ease;
}

.tw-btn:hover {
	text-decoration: none;
}

.tw-btn--primary {
	background: var(--tw-orange);
	color: #ffffff;
	font-weight: 600;
	border: 2px solid var(--tw-orange);
	border-radius: 12px;
	padding: 14px 1.75rem;
	min-height: 48px;
	box-shadow: 0 4px 14px rgba(244, 122, 31, 0.3);
}

.tw-btn--primary:hover {
	background: #d66414;
	border-color: #d66414;
	color: #ffffff;
	box-shadow: 0 6px 18px rgba(214, 100, 20, 0.34);
	transform: translateY(-1px);
}

.tw-btn--secondary {
	background: transparent;
	color: #ffffff;
	border: 2px solid #ffffff;
	border-radius: 12px;
	padding: 14px 1.75rem;
	min-height: 48px;
	box-shadow: none;
}

.tw-btn--secondary:hover {
	background: rgba(255, 255, 255, 0.06);
	border-color: var(--tw-orange);
	color: var(--tw-orange);
	transform: translateY(-1px);
}

.tw-btn:focus {
	outline: none;
}

.tw-btn:focus-visible {
	box-shadow: 0 0 0 3px rgba(244, 122, 31, 0.28);
}

.tw-btn--dark {
	background: var(--tw-charcoal);
	color: var(--tw-offwhite);
	border-color: var(--tw-charcoal);
}

.tw-btn--dark:hover {
	background: #2d3439;
	border-color: #2d3439;
	color: var(--tw-offwhite);
}

/* ========================================
   Hero
   ======================================== */
.tw-hero {
	min-height: auto;
	display: flex;
	align-items: flex-start;
	margin-top: var(--tw-header-height);
	background: var(--tw-hero-gradient);
	color: var(--tw-offwhite);
	position: relative;
	/* Padding via .twx-hero (shared hero variables) */
}

.tw-hero--home .tw-hero__radial {
	position: absolute;
	inset: 0;
	pointer-events: none;
	background: radial-gradient(ellipse 60% 80% at 80% 40%, rgba(255, 255, 255, 0.04) 0%, transparent 60%);
}

.tw-hero__inner-wrap {
	max-width: 720px;
}

.tw-hero__micro-line {
	font-size: 0.8125rem;
	font-weight: 400;
	opacity: 0.7;
	margin: 0.75rem 0 0;
}

.tw-hero__inner {
	display: grid;
	gap: 2rem;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.tw-hero .tw-container.tw-hero__inner {
	max-width: 1200px;
}

/* Mobile: stack, card after buttons */
@media (max-width: 1023px) {
	.tw-hero--home .tw-hero__inner {
		grid-template-columns: 1fr;
	}

	.tw-hero--home .tw-hero__content {
		order: 1;
	}

	.tw-hero--home .tw-hero__card {
		order: 2;
		margin-top: 40px;
	}

	.tw-hero__badges {
		gap: 0.3rem;
		margin-bottom: 0.7rem;
		margin-top: -0.15rem;
	}

	.tw-hero__badge .tw-icon {
		width: 24px;
		height: 24px;
	}

	.tw-hero__badge .tw-icon svg {
		width: 24px;
		height: 24px;
	}
}

@media (min-width: 1024px) {
	.tw-hero__inner {
		grid-template-columns: 1.1fr 0.9fr;
		gap: 60px;
		align-items: center;
	}

	.tw-hero--home .tw-hero__inner {
		grid-template-columns: 1fr;
	}

	.tw-hero:not(.tw-hero--home) .tw-hero__inner {
		grid-template-columns: 7fr 5fr;
	}
}

.tw-hero__content {
	max-width: 72ch;
}

.tw-hero--home .tw-hero__content {
	max-width: 600px;
}

/* Home hero: centered, authority layout (not left-heavy) */
.tw-hero--home .tw-hero__inner {
	justify-items: center;
	text-align: center;
}
.tw-hero--home .tw-hero__content {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.tw-hero--home .tw-hero__card {
	margin-left: auto;
	margin-right: auto;
}
.tw-hero--home .tw-hero__ctas {
	justify-content: center;
}
.tw-hero--home .tw-hero__badges {
	justify-content: center;
}
.tw-hero--home .tw-hero__subheadline {
	margin-left: auto;
	margin-right: auto;
	max-width: 42ch;
}

/* Home hero typography: keep authority, but reduce visual dominance over brand/logo */
.tw-hero--home .tw-hero__headline {
	font-size: clamp(1.45rem, 8.8vw, 2.2rem);
	line-height: 1.06;
	margin-bottom: 0.6rem;
	max-width: none;
	margin-left: auto;
	margin-right: auto;
	width: fit-content;
}
.tw-hero--home .tw-hero__headline-line + .tw-hero__headline-line {
	margin-top: 0.35rem;
}
.tw-hero--home .tw-hero__subheadline {
	font-size: 1rem;
	line-height: 1.58;
	max-width: 38ch;
}

/* Core Partnership card (homepage hero) */
.tw-hero__card {
	background: #e9e9e9;
	color: var(--tw-charcoal);
	border-radius: 18px;
	padding: 48px;
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.35);
	max-width: 420px;
}

.tw-hero__card-label {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin: 0 0 0.5rem;
	color: #555;
}

.tw-hero__card-price {
	font-family: var(--tw-font-heading);
	font-size: 2.25rem;
	font-weight: 700;
	color: var(--tw-charcoal);
	margin: 0 0 0.25rem;
}

.tw-hero__card-meta {
	font-size: 0.9375rem;
	color: #555;
	line-height: 1.5;
	margin: 0 0 1.5rem;
}

.tw-hero__card-divider {
	height: 1px;
	background: rgba(0, 0, 0, 0.15);
	margin-bottom: 1.5rem;
}

.tw-hero__card-btn {
	width: 100%;
	justify-content: center;
}

.tw-hero__kicker {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 0.5rem;
	color: var(--tw-orange);
}

.tw-hero__headline {
	font-family: var(--tw-font-heading);
	font-size: 31px;
	font-weight: 800;
	line-height: 1.1;
	margin: 0 0 0.75rem;
}

@media (min-width: 768px) {
	.tw-hero__headline {
		font-size: 35px;
	}
}

@media (min-width: 1024px) {
	.tw-hero__headline {
		font-size: 39px;
	}
}

.tw-hero__headline-line {
	display: block;
}

/* Home hero: keep each headline line intact on mobile. */
.tw-hero--home .tw-hero__headline-line {
	white-space: nowrap;
}

.tw-hero__headline-line + .tw-hero__headline-line {
	margin-top: 0.75rem;
}

.tw-hero__subheadline {
	font-size: 1.03rem;
	font-weight: 400;
	line-height: 1.6;
	margin: 0 0 1rem;
	opacity: 0.94;
}

.tw-hero__price-stack {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin-bottom: 1.5rem;
	color: var(--tw-orange);
}

.tw-hero__price-main {
	font-size: 1.75rem;
	font-weight: 700;
}

.tw-hero--home .tw-hero__price-main {
	color: var(--tw-orange);
}

.tw-hero__price-secondary {
	font-size: 0.9375rem;
	font-weight: 500;
	opacity: 0.92;
}

.tw-hero__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 1.75rem;
	margin-bottom: 1.25rem;
	margin-top: 0.5rem;
	padding-top: 1rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	align-items: center;
}

.tw-hero__badge {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	opacity: 0.9;
}

.tw-hero__badge .tw-icon {
	flex-shrink: 0;
	width: 32px;
	height: 32px;
}

.tw-hero__badge .tw-icon svg {
	width: 100%;
	height: 100%;
}

/* Keep e-commerce / WooCommerce icon label on one line so "e" doesn't wrap alone */
.tw-hero__badge--no-break span {
	white-space: nowrap;
}

.tw-hero__ctas {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	margin-top: 1rem;
}

@media (max-width: 767px) {
	.tw-hero__ctas .tw-btn {
		width: 100%;
		min-height: var(--tw-mobile-btn-min-h, 48px);
		border-radius: var(--tw-mobile-btn-radius, 10px);
	}
}

@media (min-width: 768px) {
	.tw-hero__ctas {
		flex-direction: row;
		flex-wrap: nowrap;
	}
}

/* CTA button groups: primary left, secondary right; stack on mobile */
.tw-cta-buttons {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

@media (max-width: 767px) {
	.tw-cta-buttons .tw-btn {
		width: 100%;
		min-height: var(--tw-mobile-btn-min-h, 48px);
		border-radius: var(--tw-mobile-btn-radius, 10px);
	}
}

@media (min-width: 768px) {
	.tw-cta-buttons {
		flex-direction: row;
		flex-wrap: nowrap;
	}
}

.tw-hero__badges {
	gap: 0.55rem;
}

/* Hero value icons: one row, 4 across, institutional (mobile) */
@media (max-width: 767px) {
	.tw-hero__badges {
		display: grid !important;
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 12px;
		align-items: center;
		text-align: center;
		margin-top: var(--tw-gap-2);
	}
	.tw-hero__badge {
		display: flex !important;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		min-width: 0;
	}
	.tw-hero__badge .tw-icon,
	.tw-hero__badge .tw-icon svg {
		width: 22px;
		height: 22px;
		min-width: 22px;
		opacity: 1;
		flex-shrink: 0;
	}
	.tw-hero__badge .tw-icon svg {
		stroke-width: 1.8;
	}
	.tw-hero__badge span {
		display: block;
		margin-top: 6px;
		font-size: clamp(9px, 2.4vw, 11px);
		font-weight: 600;
		letter-spacing: 0.05em;
		text-transform: uppercase;
		color: rgba(255, 255, 255, 0.85);
		line-height: 1.2;
		text-align: center;
		word-break: break-word;
		min-width: 0;
	}
}

/* Hero pricing panel */
.tw-hero__panel {
	background: #fff;
	color: var(--tw-charcoal);
	border-radius: var(--tw-hero-panel-radius);
	box-shadow: 0 12px 30px rgba(0,0,0,0.08);
	padding: 2rem;
}

.tw-hero__panel-label {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 0.5rem;
	color: #666;
}

.tw-hero__panel-price {
	font-family: var(--tw-font-heading);
	font-size: 3.6rem;
	font-weight: 700;
	margin: 0 0 0.25rem;
}

.tw-hero__panel-onboarding {
	font-size: 1rem;
	color: #555;
	margin-bottom: 1.5rem;
}

.tw-hero__panel-list {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}

.tw-hero__panel-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 0.25rem 0;
	font-size: 0.9375rem;
}

.tw-hero__panel-list li .tw-icon {
	flex-shrink: 0;
	margin-top: 2px;
	color: var(--tw-orange);
}

.tw-hero__panel .tw-btn--panel {
	width: 100%;
	padding: 14px 1.5rem;
	min-height: 48px;
	font-weight: 600;
	background: var(--tw-orange);
	color: #ffffff;
	border: 2px solid var(--tw-orange);
	border-radius: 16px;
}

.tw-hero__panel .tw-btn--panel:hover {
	background: #d66414;
	color: #fff;
}

/* ========================================
   Cards & Modules
   ======================================== */
.tw-card {
	background: #fff;
	border-radius: var(--tw-card-radius);
	box-shadow: 0 12px 30px rgba(0,0,0,0.08);
	padding: calc(var(--tw-block-gap) * 1.75);
}
@media (min-width: 768px) {
	.tw-card {
		padding: calc(var(--tw-block-gap) * 2);
	}
}

/* Site-wide panel unification (exclude Woo checkout/cart/order views):
   align card/panel surfaces to the pricing panel system. */
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-about__pillar,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-about__summary-card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-howitworks__card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-reinforcement-pillar,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-pricing-module,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .core-plan-grid__card {
	background: #1c1f23;
	border: 1px solid rgba(255, 255, 255, 0.06);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
	color: var(--tw-offwhite);
}

/* Site-wide panel accent: consistent TWX orange edge on panels/cards. */
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-about__pillar,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-about__summary-card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-howitworks__card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-reinforcement-pillar,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-pricing-module,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .core-plan-grid__card,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-pricing-tier {
	border-top: 2px solid rgba(244, 122, 31, 0.72);
}

body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-card p,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-card li,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-card span,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-card p,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-card li,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-card span,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-about__pillar-sub,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-about__summary-list li,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-reinforcement-pillar__line,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-pricing-module__name,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .tw-pricing-module__price {
	color: rgba(255, 255, 255, 0.92);
}

/* Core Plan two-column grid */
/* Pricing tiers: Core + Growth */
.tw-pricing-tiers {
	display: grid;
	gap: var(--tw-gap-3);
	margin-top: var(--tw-gap-4);
}

@media (min-width: 768px) {
	.tw-pricing-tiers {
		grid-template-columns: 1fr 1fr;
		gap: var(--tw-gap-4);
	}
}

.tw-pricing-tier {
	background: #fff;
	color: var(--tw-charcoal);
	border-radius: var(--tw-card-radius);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
	/* Keep cards compact: reduce top padding, preserve side/bottom comfort */
	padding: calc(var(--tw-block-gap) * 0.875) calc(var(--tw-block-gap) * 1.75) calc(var(--tw-block-gap) * 1.75);
	display: flex;
	flex-direction: column;
	height: 100%;
}
@media (min-width: 768px) {
	.tw-pricing-tier {
		padding: calc(var(--tw-block-gap) * 1) calc(var(--tw-block-gap) * 2) calc(var(--tw-block-gap) * 2);
	}
}
.tw-pricing-tier > * + * {
	margin-top: var(--tw-gap-3);
}

.tw-pricing-tier--growth {
	background: #f8f9fa;
	box-shadow: 0 16px 40px rgba(0, 0, 0, 0.1);
}

/* Growth card: subtle emphasis (dark band context) */
.tw-pricing-tier--growth.twx-card {
	border-color: rgba(244, 122, 31, 0.35);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.2);
}

.tw-pricing-tier__positioning {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tw-orange);
	margin: 0 0 0.5rem;
	font-weight: 600;
}

.tw-pricing-tier--core .tw-pricing-tier__cta {
	padding: 0.75rem 1.5rem;
}

.tw-pricing-tier__name {
	font-family: var(--tw-font-heading);
	font-size: 1.25rem;
}

.tw-pricing-tier__subline {
	font-size: 0.9375rem;
	color: #555;
	margin: 0 0 0.5rem;
}

.tw-pricing-tier__desc {
	font-size: 0.9375rem;
	color: #555;
	margin: 0 0 0.5rem;
}

.tw-pricing-tier__price {
	font-family: var(--tw-font-heading);
	font-size: 2rem;
	font-weight: 700;
	color: var(--tw-orange);
	margin: 0 0 0.25rem;
}

.tw-pricing-tier__meta {
	font-size: 0.9375rem;
	color: #555;
	margin: 0 0 1.5rem;
}

.twx-feature-list {
	list-style: none;
	padding: 0;
	margin: 24px 0;
}

.twx-feature-list li {
	position: relative;
	padding-left: 22px;
	margin-bottom: 12px;
	font-size: 15px;
}

.twx-feature-list li:before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--tw-orange);
	font-weight: 600;
}

.tw-pricing-tier__features {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
}

.tw-pricing-tier__features li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 0.25rem 0;
	font-size: 0.9375rem;
}

.tw-pricing-tier__features .tw-icon {
	flex-shrink: 0;
	margin-top: 2px;
}

.tw-pricing-tier__micro {
	font-size: 0.875rem;
	color: #666;
	margin: 0.75rem 0 1rem;
	font-style: italic;
	color: var(--tw-orange);
}

.tw-pricing-tier__cta {
	width: 100%;
	display: flex;
	justify-content: center;
	text-align: center;
	padding: 1rem 1.5rem;
	margin-top: auto;
}

.tw-pricing-modules {
	margin-top: 3rem;
	padding-top: 3rem;
	border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.tw-pricing-modules .tw-h2 {
	margin-bottom: 0.5rem;
	padding-left: 1rem;
	padding-right: 1rem;
}

.tw-pricing-modules .tw-lead {
	margin-bottom: 1.5rem;
	padding-left: 1rem;
	padding-right: 1rem;
}

.tw-pricing-modules__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.75rem;
	max-width: 560px;
}

@media (min-width: 768px) {
	.tw-pricing-modules__list {
		max-width: 100%;
	}
}

.tw-pricing-module {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1.5rem;
	padding: 0.75rem 1rem;
	background: rgba(0, 0, 0, 0.03);
	border-radius: 8px;
	font-size: 1rem;
}

.tw-pricing-module__name {
	font-weight: 600;
	flex-shrink: 0;
}

.tw-pricing-module__price {
	color: var(--tw-orange);
	font-weight: 600;
	flex-shrink: 0;
}

/* Dark band: module styling */
.twx-band-dark .tw-pricing-modules {
	border-top-color: rgba(255, 255, 255, 0.1);
}

.twx-band-dark .tw-pricing-modules .tw-lead {
	color: rgba(255, 255, 255, 0.92);
}

.twx-band-dark .tw-pricing-module {
	background: rgba(255, 255, 255, 0.04);
}

.core-plan-grid {
	display: grid;
	gap: 1.5rem;
	margin-top: 2rem;
}

@media (min-width: 901px) {
	.core-plan-grid {
		grid-template-columns: 1.25fr 0.75fr;
		gap: 56px;
		align-items: stretch;
	}
}

.core-plan-grid__card {
	min-height: 0;
}

.core-plan-grid__card--left {
	grid-column: 1;
}

.core-plan-grid__card--right {
	grid-column: 2;
}

.core-plan__not-included {
	grid-column: 1;
	margin-top: 0;
}

.core-plan-card--how {
	padding: 2.25rem;
}

.core-plan-steps {
	margin: 0 0 1.5rem;
	padding-left: 1.25rem;
	font-size: 0.9375rem;
	line-height: 1.6;
}

.core-plan-steps li {
	margin-bottom: 1rem;
}

.core-plan-steps li:last-child {
	margin-bottom: 0;
}

.core-plan-steps strong {
	display: block;
	margin-bottom: 0.15rem;
	font-size: 1rem;
}

.core-plan-steps span {
	color: #555;
}

.core-plan-included {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	font-size: 0.9375rem;
}

.core-plan-included li {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 0.25rem 0;
}

.core-plan-included .tw-icon {
	flex-shrink: 0;
	color: var(--tw-orange);
}

.core-plan-cta {
	width: 100%;
	display: flex;
	justify-content: center;
	text-align: center;
}

.core-plan__not-included {
	margin-top: 2rem;
}

/* Pricing page refinements: tighter spacing, compact structure */
.core-plan--pricing.tw-section {
	padding-top: 56px;
	padding-bottom: 56px;
}

.core-plan--pricing .core-plan-grid {
	margin-top: 1.5rem;
	gap: 1.25rem;
}

@media (min-width: 901px) {
	.core-plan--pricing .core-plan-grid {
		gap: 44px;
	}
}

.core-plan--pricing .core-plan__not-included {
	margin-top: 1.5rem;
}

.core-plan--pricing .tw-card .tw-hero__panel-list,
.core-plan--pricing .tw-card ul[style*="margin-bottom"] {
	margin-bottom: 0 !important;
}

.core-plan--pricing .core-plan-card--how {
	padding: 2rem;
}

.core-plan-steps--compact {
	list-style: none;
	padding-left: 0;
	margin: 0 0 1.5rem !important;
}

.core-plan-steps--compact li {
	margin-bottom: 0.5rem;
	padding: 0.25rem 0;
}

.core-plan-steps--compact li:last-child {
	margin-bottom: 0;
}

/* Optional Add-Ons (Pricing page only) */
.tw-addons {
	background: #f5f6f7;
	padding-top: 56px;
	padding-bottom: 56px;
}

/* Remove dead air above first card (mobile only) */
@media (max-width: 767px) {
	.page-pricing-main #core-plan .twx-container > :first-child,
	.page-pricing-main #core-plan .twx-container > :first-child > :first-child {
		margin-top: 0 !important;
	}
	.page-pricing-main .tw-pricing-tiers,
	.page-pricing-main .tw-pricing,
	.page-pricing-main .tw-pricing-grid,
	.page-pricing-main .tw-pricing-cards {
		margin-top: 0 !important;
	}
}

.page-pricing-main #faq.twx-band-dark {
	background: #131619;
}
.page-pricing-main #final-cta.twx-cta-band,
.tw-howitworks #final-cta.twx-cta-band {
	background: #15191c;
}

/* About: match final CTA to dark base so no white strip below pillars */
.tw-about #final-cta.twx-cta-band {
	background: var(--tw-dark-base);
}

@media (min-width: 768px) {
	.page-pricing-main #faq .tw-h2 {
		font-size: clamp(1.5rem, 3.2vw, 2.5rem);
	}
	.page-pricing-main #faq .tw-faq-question {
		padding: 0.875rem 0;
	}
	.page-pricing-main #faq .tw-faq-answer-inner {
		padding-top: 0.5rem;
		padding-bottom: 1rem;
	}
}
@media (min-width: 1024px) {
	.page-pricing-main #faq .twx-container {
		max-width: var(--tw-container-max);
		width: 100%;
	}
	.page-pricing-main #faq .tw-faq-answer-inner {
		max-width: var(--tw-content-max);
	}
}

.tw-addons__inner {
	max-width: 750px;
}

@media (min-width: 1024px) {
	.page-pricing-main #modules {
		width: 100%;
		max-width: 100%;
	}
	.page-pricing-main #modules .tw-lead {
		max-width: var(--tw-content-max);
	}
	.page-pricing-main #custom-upgrades .tw-addons__inner {
		max-width: 100%;
		width: 100%;
	}
	.page-pricing-main #custom-upgrades .tw-addons__lead {
		max-width: var(--tw-content-max);
	}
}

.tw-addons .tw-h2--accent {
	padding-top: 0.5rem;
}

.tw-addons .tw-h2--accent::before {
	height: 3px;
	width: 60px;
}

.tw-addons__lead {
	font-size: 1.125rem;
	line-height: 1.6;
	margin: 0 0 1.5rem;
	color: var(--tw-charcoal);
}

.tw-addons__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.625rem 0;
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	font-size: 16px;
	line-height: 1.6;
}

@media (min-width: 600px) {
	.tw-addons__grid {
		grid-template-columns: 1fr 1fr;
		gap: 0.625rem 2rem;
	}
}

.tw-addons__item {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	padding: 0.2rem 0;
}

.tw-addons__item .tw-icon {
	flex-shrink: 0;
	color: var(--tw-orange);
}

.tw-addons__tagline {
	font-size: 0.9375rem;
	line-height: 1.5;
	margin: 0;
	color: var(--tw-charcoal);
	opacity: 0.8;
}

/* Tight spacing: Optional Add-Ons sits between Modules and FAQ */

@media (max-width: 900px) {
	.core-plan-grid {
		grid-template-columns: 1fr;
	}

	.core-plan-grid__card--left,
	.core-plan-grid__card--right,
	.core-plan__not-included {
		grid-column: 1;
	}
}

.tw-module {
	background: rgba(255,255,255,0.05);
	border-radius: 12px;
	padding: 2rem;
	border: 1px solid rgba(255,255,255,0.1);
	box-shadow: 0 12px 30px rgba(0,0,0,0.08);
}

.tw-module__icon {
	margin-bottom: 1rem;
	color: var(--tw-orange);
}

.tw-module__name {
	font-family: var(--tw-font-heading);
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 0.5rem;
}

.tw-module__price {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--tw-orange);
	margin-bottom: 0.75rem;
}

.tw-module__pitch {
	font-size: 0.9375rem;
	line-height: 1.5;
	margin-bottom: 1rem;
}

.tw-module__bullets {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 0.875rem;
}

.tw-module__bullets li {
	padding: 0.25rem 0;
	padding-left: 1.25rem;
	position: relative;
}

.tw-module__bullets li::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0.65em;
	width: 6px;
	height: 6px;
	background: var(--tw-orange);
	border-radius: 50%;
}

/* ========================================
   Icons
   ======================================== */
.tw-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.tw-icon svg {
	width: 100%;
	height: 100%;
}

/* ========================================
   FAQ
   ======================================== */
.page-pricing-main #faq .twx-container {
	max-width: 760px;
}
@media (min-width: 1024px) {
	.page-pricing-main #faq .twx-container {
		max-width: var(--tw-container-max);
	}
}

.tw-faq-item {
	border-bottom: 1px solid rgba(0,0,0,0.06);
}

.tw-section--dark .tw-faq-item {
	border-color: rgba(255,255,255,0.12);
}

.tw-faq-question {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.5rem 0;
	background: none;
	border: none;
	font-family: var(--tw-font-heading);
	font-size: 1.125rem;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	color: inherit;
	transition: color 0.2s;
}

.tw-faq-question:hover {
	color: var(--tw-orange);
}

.tw-faq-question .tw-icon {
	transition: transform 0.2s;
	flex-shrink: 0;
}

.tw-faq-item.is-open .tw-faq-question .tw-icon {
	transform: rotate(180deg);
}

.tw-faq-answer {
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.3s ease;
}

.tw-faq-item.is-open .tw-faq-answer {
	max-height: 500px;
}

.tw-faq-answer-inner {
	padding-top: 0.125rem;
	padding-bottom: 0.5rem;
	line-height: 1.6;
}

.twx-band-dark .tw-faq-answer-inner,
.twx-band-alt .tw-faq-answer-inner {
	color: rgba(255, 255, 255, 0.92);
}

.twx-band-dark .tw-lead,
.twx-band-alt .tw-lead {
	color: rgba(255, 255, 255, 0.92);
}

/* ========================================
   Partnership Application Form
   ======================================== */
.page-partnership-main .tw-section {
	padding-top: 48px;
	padding-bottom: 48px;
}

.tw-partnership-form-container {
	max-width: var(--tw-container-max);
}

.tw-partnership-success,
.tw-contact-success {
	background: #e8f5e9;
	border-radius: 12px;
	padding: 2rem;
	text-align: center;
}

.tw-partnership-success p {
	margin: 0;
	font-size: 1.125rem;
	line-height: 1.6;
}

.tw-partnership-form__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 768px) {
	.tw-partnership-form__grid {
		grid-template-columns: 1fr 1fr;
		gap: 1.25rem 1.5rem;
	}
}

.tw-form-field {
	margin: 0;
}

.tw-form-field--full {
	grid-column: 1 / -1;
}

.tw-form-field--honeypot {
	position: absolute;
	left: -9999px;
}

.tw-form-field label,
.tw-form-field legend {
	display: block;
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 600;
	margin-bottom: 0.35rem;
	color: var(--tw-charcoal);
}

.tw-form-field legend {
	margin-bottom: 0.5rem;
}

.tw-form-field input[type="text"],
.tw-form-field input[type="email"],
.tw-form-field input[type="tel"],
.tw-form-field input[type="url"],
.tw-form-field select,
.tw-form-field textarea {
	width: 100%;
	padding: 0.75rem 1rem;
	font-family: var(--tw-font-body);
	font-size: 1rem;
	border: 2px solid rgba(0, 0, 0, 0.12);
	border-radius: 8px;
	background: #fff;
	transition: border-color 0.2s ease;
}

.tw-form-field input:focus,
.tw-form-field select:focus,
.tw-form-field textarea:focus {
	outline: none;
	border-color: var(--tw-orange);
}

.tw-form-field textarea {
	resize: vertical;
	min-height: 100px;
}

.tw-form-field fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

.tw-form-field fieldset label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	text-transform: none;
	letter-spacing: 0;
	font-weight: 500;
	font-size: 1rem;
	margin-bottom: 0.5rem;
}

.tw-form-field fieldset input[type="radio"] {
	width: auto;
}

.tw-form-error {
	display: block;
	font-size: 0.8125rem;
	color: #c62828;
	margin-top: 0.25rem;
}

.tw-form-field .required {
	color: var(--tw-orange);
}

.tw-form-checkbox-label {
	display: flex !important;
	align-items: flex-start;
	gap: 0.5rem;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 500 !important;
	font-size: 1rem !important;
}

.tw-form-checkbox-label input {
	width: auto;
	margin-top: 0.25rem;
}

.tw-form-submit {
	margin-top: 1.5rem;
	margin-bottom: 0;
}

/* ========================================
   Authority Form (#contact-form, #partnership-form)
   Section ID ensures styles apply regardless of body classes/slug.
   CTA band removed from Contact template; form section uses variable rhythm.
   ======================================== */

/* Form section: border only; spacing from .twx-section. */
#contact-form.twx-section,
#partnership-form.twx-section {
	border-top: 1px solid rgba(255, 255, 255, 0.05);
}

/* Contact page only: clearer separation from hero band. */
body.page-template-page-contact-php #contact-form.twx-section {
	border-top: none;
}

body.page-template-page-contact-php .tw-contact-intro {
	background: rgba(255, 255, 255, 0.035);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-top: 2px solid rgba(244, 122, 31, 0.72);
	border-radius: 10px;
	padding: 1rem 1.1rem;
	margin-bottom: 1rem;
}

body.page-template-page-contact-php .tw-contact-intro__label {
	margin: 0 0 0.45rem;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--tw-orange);
}

body.page-template-page-contact-php .tw-contact-intro__list {
	margin: 0;
	padding-left: 1rem;
	display: grid;
	gap: 0.35rem;
}

body.page-template-page-contact-php .tw-contact-intro__list li {
	line-height: 1.45;
	opacity: 0.95;
}

body.page-template-page-contact-php .tw-contact-intro__note {
	margin: 0.7rem 0 0;
	font-size: 0.92rem;
	opacity: 0.88;
}

@media (min-width: 768px) {
	body.page-template-page-contact-php .tw-contact-intro {
		padding: 1.15rem 1.25rem;
		margin-bottom: 1.25rem;
	}
}
/* Form card: institutional depth (subtle, not glossy) */
#contact-form .tw-contact-form,
#partnership-form .tw-contact-form,
#partnership-form .tw-partnership-form {
	background: rgba(255, 255, 255, 0.035);
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-top: 2px solid rgba(244, 122, 31, 0.72);
	border-radius: 8px;
	box-shadow: 0 18px 60px rgba(0, 0, 0, 0.55);
	padding: 2rem;
	gap: var(--tw-block-gap);
}
@media (min-width: 768px) {
	#contact-form .tw-contact-form,
	#partnership-form .tw-contact-form,
	#partnership-form .tw-partnership-form {
		padding: 2.5rem;
		gap: var(--tw-block-gap) 1.5rem;
	}
}

/* Labels: high legibility + authority */
#contact-form .tw-form-field label,
#partnership-form .tw-form-field label,
#partnership-form .tw-form-field legend {
	color: rgba(255, 255, 255, 0.96);
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	font-size: 0.7rem;
	margin-bottom: 0.35rem;
}
#contact-form .tw-form-field .required,
#partnership-form .tw-form-field .required {
	color: #ff7a1a;
	font-weight: 800;
}

/* Inputs: dark, engineered, readable */
#contact-form .tw-form-field input[type="text"],
#contact-form .tw-form-field input[type="email"],
#contact-form .tw-form-field input[type="tel"],
#contact-form .tw-form-field input[type="url"],
#contact-form .tw-form-field textarea,
#partnership-form .tw-form-field input[type="text"],
#partnership-form .tw-form-field input[type="email"],
#partnership-form .tw-form-field input[type="tel"],
#partnership-form .tw-form-field input[type="url"],
#partnership-form .tw-form-field textarea,
#partnership-form .tw-form-field select {
	background: #14171b;
	color: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(255, 255, 255, 0.2);
	border-radius: 5px;
	box-shadow: none;
	padding: 0.85rem 1rem;
	min-height: 48px;
}
#contact-form .tw-form-field textarea {
	min-height: 170px;
	resize: vertical;
}
#contact-form .tw-form-field input::placeholder,
#contact-form .tw-form-field textarea::placeholder,
#partnership-form .tw-form-field input::placeholder,
#partnership-form .tw-form-field textarea::placeholder {
	color: rgba(255, 255, 255, 0.45);
}

#partnership-form .tw-form-field fieldset label {
	color: rgba(255, 255, 255, 0.9);
	font-weight: 600;
}

/* Focus: solid border emphasis (no glow) */
#contact-form .tw-form-field input:focus,
#contact-form .tw-form-field textarea:focus,
#partnership-form .tw-form-field input:focus,
#partnership-form .tw-form-field select:focus,
#partnership-form .tw-form-field textarea:focus {
	outline: none;
	border-color: rgba(255, 122, 26, 0.85);
	box-shadow: 0 0 0 1px rgba(255, 122, 26, 0.2);
}

/* Button: decisive, not flashy */
#contact-form .tw-form-submit .tw-btn--primary,
#partnership-form .tw-form-submit .tw-btn--primary,
#partnership-form .tw-form-submit button.tw-btn--primary {
	padding: 1rem 2.5rem;
	font-size: 0.95rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	box-shadow: none;
}
#contact-form .tw-form-submit .tw-btn--primary:focus,
#contact-form .tw-form-submit .tw-btn--primary:focus-visible,
#partnership-form .tw-form-submit .tw-btn--primary:focus,
#partnership-form .tw-form-submit .tw-btn--primary:focus-visible,
#partnership-form .tw-form-submit button.tw-btn--primary:focus,
#partnership-form .tw-form-submit button.tw-btn--primary:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px rgba(255, 122, 26, 0.25);
}

/* Validation */
#contact-form .tw-form-error,
#partnership-form .tw-form-error {
	color: #f48a6a;
	font-size: 0.875rem;
	margin-top: 0.375rem;
}

/* Success state */
#contact-form .tw-contact-success,
#partnership-form .tw-partnership-success {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-top: 2px solid rgba(244, 122, 31, 0.72);
	border-radius: 12px;
	padding: 2rem;
	color: rgba(255, 255, 255, 0.95);
}

@media (max-width: 767px) {
	#contact-form .tw-contact-form,
	#partnership-form .tw-contact-form,
	#partnership-form .tw-partnership-form {
		padding: 1.25rem;
		gap: var(--tw-gap-2);
	}
	#contact-form .tw-form-field label,
	#partnership-form .tw-form-field label {
		margin-bottom: 0.3rem;
	}
	#contact-form .tw-form-field input[type="text"],
	#contact-form .tw-form-field input[type="email"],
	#contact-form .tw-form-field input[type="tel"],
	#contact-form .tw-form-field input[type="url"],
	#contact-form .tw-form-field textarea,
	#partnership-form .tw-form-field input[type="text"],
	#partnership-form .tw-form-field input[type="email"],
	#partnership-form .tw-form-field input[type="tel"],
	#partnership-form .tw-form-field input[type="url"],
	#partnership-form .tw-form-field textarea,
	#partnership-form .tw-form-field select {
		padding: 0.75rem 0.9rem;
		min-height: 44px;
	}
	#contact-form .tw-form-field textarea,
	#partnership-form .tw-form-field textarea {
		min-height: 140px;
	}
}

@media (min-width: 768px) {
	#contact-form .tw-form-submit,
	#partnership-form .tw-form-submit {
		display: flex;
		justify-content: flex-end;
	}
}

/* ========================================
   Footer
   ======================================== */
.tw-footer {
	background: var(--tw-dark-base);
	color: var(--tw-offwhite);
	padding: 3.75rem 0 2rem;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
}

@media (min-width: 768px) {
	.tw-footer {
		padding-top: 4.75rem;
		padding-bottom: 2rem;
	}
}

@media (min-width: 1024px) {
	.tw-footer {
		padding-top: 5.25rem;
	}
}

.tw-footer__inner {
	max-width: var(--tw-container-max);
	margin: 0 auto;
	padding: 0 var(--tw-container-pad-desktop);
}

@media (max-width: 767px) {
	.tw-footer__inner {
		padding-left: var(--tw-container-pad-mobile, 24px);
		padding-right: var(--tw-container-pad-mobile, 24px);
	}
}

.tw-footer__grid {
	display: grid;
	gap: 2.75rem;
	margin-bottom: 2rem;
}

@media (min-width: 768px) {
	.tw-footer__grid {
		grid-template-columns: 1fr 1.2fr;
		gap: 3rem;
	}
}

.tw-footer__logo img {
	height: 40px;
	width: auto;
}

.tw-footer__logo-text {
	font-family: var(--tw-font-heading);
	font-weight: 800;
	font-size: 2.5rem;
}

.tw-footer__contact a {
	display: block;
	color: inherit;
	margin-bottom: 0.5rem;
}

.tw-footer__contact a:hover {
	color: var(--tw-orange);
}

.tw-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

@media (min-width: 768px) {
	.tw-footer__links {
		gap: 0.875rem;
	}
}

.tw-footer__links a {
	color: inherit;
	text-decoration: none;
}

.tw-footer__links a:hover {
	text-decoration: underline;
}

.tw-footer__tagline {
	font-size: var(--tw-small-label);
	letter-spacing: 0.06em;
	opacity: 0.75;
	margin: 0.5rem 0 0;
}

.tw-footer__copy {
	font-size: var(--tw-small-label);
	opacity: 0.65;
	margin: 0;
}

/* ========================================
   Grand Strand Page - Light Dominant Authority
   Navy charcoal blend, soft navy, ocean texture
   ======================================== */
.tw-section--navy-charcoal {
	background: linear-gradient(135deg, #1a2535 0%, #1f2428 100%);
	color: var(--tw-offwhite);
}

.tw-section--navy-charcoal a {
	color: var(--tw-orange);
}

.tw-section--navy-charcoal .tw-btn--secondary {
	border-color: var(--tw-offwhite);
	color: var(--tw-offwhite);
}

.tw-section--soft-navy {
	background: #2d3a4f;
	color: var(--tw-offwhite);
}

.tw-section--soft-navy a {
	color: var(--tw-orange);
}

.tw-section--light-gray {
	background: #eef1f5;
	color: var(--tw-charcoal);
}

.tw-section--deep-charcoal {
	background: #14181d;
	color: var(--tw-offwhite);
}

.tw-section--deep-charcoal a {
	color: var(--tw-orange);
}

.tw-section--ocean-texture {
	position: relative;
}

.tw-section--ocean-texture::before {
	content: '';
	position: absolute;
	inset: 0;
	background: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.05'/%3E%3C/svg%3E");
	pointer-events: none;
}

/* ========================================
   Atmospheric texture overlays (grayscale, subtle)
   Hero, CTA, Pricing header, Industries header
   ======================================== */
.tw-texture-dark {
	position: relative;
	overflow: hidden;
}

.tw-texture-dark::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(0, 0, 0, 0.4);
	pointer-events: none;
}

.tw-texture-dark::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E");
	opacity: 0.04;
	pointer-events: none;
}

.tw-texture-dark > * {
	position: relative;
	z-index: 1;
}

.tw-texture-light {
	position: relative;
	overflow: hidden;
}

.tw-texture-light::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)'/%3E%3C/svg%3E");
	opacity: 0.025;
	pointer-events: none;
}

.tw-texture-light::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 0;
	background: rgba(255, 255, 255, 0.6);
	pointer-events: none;
}

.tw-texture-light > * {
	position: relative;
	z-index: 1;
}

/* Grand Strand hero overrides */
.tw-hero__location-line {
	font-size: 0.9375rem;
	opacity: 0.9;
	margin: 0 0 1.5rem;
}

/* Grand Strand page: intro has own background so hero ends cleanly (no main dark bleed) */
.page-template-page-grand-strand-php .tw-section--intro {
	background: var(--tw-surface);
}

.page-template-page-grand-strand-php .tw-section--intro .tw-intro-text--closing {
	margin-top: 1rem;
	margin-bottom: 0;
	font-size: 1.125rem;
	color: var(--tw-charcoal);
}

@media (min-width: 1024px) {
	.page-template-page-grand-strand-php .tw-section--intro {
		padding-top: 80px;
		padding-bottom: 80px;
	}

	.page-template-page-grand-strand-php .tw-section--seasonal {
		padding-top: 90px;
		padding-bottom: 90px;
	}
}

.page-template-page-grand-strand-php .tw-card {
	border-radius: 12px;
}

.page-template-page-grand-strand-php .tw-icon svg {
	width: 36px;
	height: 36px;
}

/* Seasonal Advantage section */
.tw-seasonal-badge {
	display: inline-block;
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
	color: var(--tw-orange);
	margin-bottom: 0.75rem;
}

.tw-seasonal-bullets {
	list-style: none;
	margin: 1rem 0 0;
	padding: 0;
	max-width: 72ch;
}

.tw-seasonal-bullets li {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	padding: 0.5rem 0;
	font-size: 1rem;
	line-height: 1.5;
}

.tw-seasonal-bullets li .tw-icon {
	flex-shrink: 0;
	margin-top: 2px;
	color: var(--tw-orange);
}

/* Local Authority grid */
.tw-local-grid {
	display: grid;
	gap: 1rem;
	grid-template-columns: repeat(2, 1fr);
	margin-top: 1.5rem;
}

@media (min-width: 768px) {
	.tw-local-grid {
		grid-template-columns: repeat(4, 1fr);
	}
}

.tw-local-item {
	background: #fff;
	padding: 1.25rem;
	border-radius: 12px;
	font-weight: 600;
	text-align: center;
	box-shadow: 0 2px 8px rgba(0,0,0,.06);
}

/* Intro section - max-width 70ch */
.tw-intro-content {
	max-width: 70ch;
}

.tw-intro-text {
	line-height: 1.7;
}

/* Grand Strand modules - white section, light cards */
.tw-module--grand-strand {
	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	color: var(--tw-charcoal);
	box-shadow: 0 2px 12px rgba(0,0,0,.06);
}

.tw-module--grand-strand .tw-module__icon {
	color: var(--tw-orange);
}

.tw-module--grand-strand .tw-module__price {
	color: var(--tw-orange);
}

.tw-module--grand-strand .tw-module__bullets li::before {
	background: var(--tw-orange);
}

/* ========================================
   Industries Page - Tightened vertical spacing
   ======================================== */
.page-template-page-industries-php .tw-section {
	padding-top: 72px;
	padding-bottom: 72px;
}

.page-template-page-industries-php #final-cta.tw-section {
	padding-top: 80px;
	padding-bottom: 80px;
	margin-top: 0;
}

.page-template-page-industries-php #modules .tw-modules-grid {
	margin-bottom: 0;
}

.page-template-page-industries-php section:not(.tw-hero) {
	min-height: auto;
}

/* ========================================
   How It Works Page - Enterprise banded layout (4 dark bands)
   ======================================== */
.tw-howitworks .tw-band {
	width: 100%;
	background: var(--tw-hero-gradient);
	color: var(--tw-offwhite);
	position: relative;
	overflow: hidden;
}

.tw-howitworks .tw-band::before,
.tw-howitworks .tw-band::after {
	display: none;
}

.tw-howitworks .tw-band > * {
	position: relative;
	z-index: 1;
}

.tw-howitworks .tw-band--pad {
	padding: var(--tw-band-pad-mobile) 0;
	margin: 0;
}

@media (min-width: 768px) {
	.tw-howitworks .tw-band--pad {
		padding: var(--tw-band-pad-desktop) 0;
	}
}

.tw-howitworks .tw-band--hero {
	margin-top: var(--tw-header-height);
	padding-top: 80px;
	padding-bottom: 60px;
}

@media (min-width: 768px) {
	.tw-howitworks .tw-band--hero {
		padding-top: 110px;
		padding-bottom: 90px;
	}
}

.tw-howitworks .tw-container {
	max-width: var(--tw-maxw);
	margin: 0 auto;
	padding: 0 24px;
}

/* Hero container: match other internal pages (1200px), not How It Works bands (1100px) */
.tw-howitworks .internal-hero .twx-container {
	max-width: var(--tw-container-max);
}

.tw-howitworks__h1 {
	font-family: var(--tw-font-heading);
	font-size: 32px;
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 0.5rem;
}

@media (min-width: 768px) {
	.tw-howitworks__h1 {
		font-size: 42px;
	}
}

.tw-howitworks__subline {
	font-size: 16px;
	line-height: 1.5;
	margin: 0 0 0.25rem;
	opacity: 0.95;
}

.tw-howitworks__microline {
	font-size: 14px;
	opacity: 0.85;
	margin: 0;
}

.tw-howitworks__label {
	font-size: var(--tw-small-label);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	font-weight: 600;
	color: var(--tw-orange);
	margin: 0 0 0.5rem;
}

.tw-howitworks__h2 {
	font-family: var(--tw-font-heading);
	font-size: var(--tw-h2-mobile);
	font-weight: 800;
	margin: 0 0 0.5rem;
}

@media (min-width: 768px) {
	.tw-howitworks__h2 {
		font-size: var(--tw-h2-desktop);
	}
}

.tw-howitworks__intro {
	font-size: 1.0625rem;
	line-height: 1.5;
	margin: 0 0 1.5rem;
	opacity: 0.92;
}

.tw-howitworks__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--tw-inner-gap);
	margin-top: 0;
}

@media (min-width: 768px) {
	.tw-howitworks__grid {
		grid-template-columns: 1fr 1fr;
	}
}

.tw-howitworks__step5-cell {
	grid-column: 1 / -1;
	display: flex;
	justify-content: flex-start;
}

.tw-howitworks__card {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.08);
	border-radius: 8px;
	padding: var(--tw-card-pad);
	width: 100%;
}

.tw-howitworks__num {
	display: block;
	font-family: var(--tw-font-heading);
	font-size: 2rem;
	font-weight: 800;
	color: var(--tw-orange);
	margin-bottom: 0.5rem;
}

.tw-howitworks__card-title {
	font-family: var(--tw-font-heading);
	font-size: var(--tw-h3);
	font-weight: 800;
	margin: 0 0 0.75rem;
}

.tw-howitworks__card ul {
	margin: 0.625rem 0 0;
	padding-left: 1.25rem;
}

.tw-howitworks__card ul li {
	margin-bottom: 0.375rem;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.tw-howitworks__narrow {
	max-width: var(--tw-maxw-narrow);
	margin-left: auto;
	margin-right: auto;
	padding: 0 24px;
}

.tw-howitworks__pillars {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--tw-inner-gap);
	margin-top: 1.5rem;
}

@media (min-width: 768px) {
	.tw-howitworks__pillars {
		grid-template-columns: 1fr 1fr 1fr;
		padding-top: var(--tw-inner-gap);
	}
	.tw-howitworks__pillars::before {
		content: none;
	}
}

.tw-howitworks__pillar {
	padding: 0;
}

@media (min-width: 768px) {
	.tw-howitworks__pillar {
		border-left: 1px solid rgba(255, 255, 255, 0.08);
		padding-left: var(--tw-inner-gap);
	}

	.tw-howitworks__pillar:first-child {
		border-left: none;
		padding-left: 0;
	}
}

.tw-howitworks__pillar-title {
	font-family: var(--tw-font-heading);
	font-size: 1.25rem;
	font-weight: 800;
	margin: 0 0 0.25rem;
}

.tw-howitworks__pillar-sub {
	font-size: 0.9375rem;
	opacity: 0.9;
	margin: 0;
}

.tw-howitworks__cta-inner {
	text-align: center;
}

.tw-howitworks__cta-inner .tw-howitworks__intro {
	margin-bottom: 1.5rem;
}

.tw-howitworks__cta-buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
	margin: 0;
}

.tw-howitworks__cta-buttons a:focus {
	outline: 2px solid var(--tw-orange);
	outline-offset: 2px;
}

.tw-howitworks .tw-band a {
	color: var(--tw-orange);
}

.tw-howitworks .tw-band .tw-btn--primary,
.tw-howitworks .tw-band .tw-btn--primary:hover {
	color: #fff;
}

.tw-howitworks .tw-band .tw-btn--secondary {
	color: #ffffff;
	border-color: #ffffff;
}

.tw-howitworks .tw-band .tw-btn--secondary:hover {
	border-color: var(--tw-orange);
	color: var(--tw-orange);
}

body.page-template-page-how-it-works-php {
	background: var(--tw-charcoal);
}

/* Panel-to-panel spacing is controlled only by .twx-section (--twx-section-pad, --twx-section-gap). */

body.home .twx-card {
	padding: 1.75rem;
}
@media (min-width: 768px) {
	body.home .twx-card {
		padding: 2rem;
	}
}

body.home .tw-wyg-grid {
	gap: 24px;
}
@media (min-width: 900px) {
	body.home .tw-wyg-grid {
		gap: 32px;
	}
}

body.home .tw-reinforcement-pillars {
	margin-top: 0.5rem;
	margin-bottom: 1rem;
}
@media (min-width: 768px) {
	body.home .tw-reinforcement-pillars {
		padding-top: 0.5rem;
		margin-top: 0.75rem;
		margin-bottom: 1.25rem;
	}
}

@media (max-width: 1023px) {
	body.home .tw-hero--home .tw-hero__card {
		margin-top: 24px;
	}
}

body.home .tw-hero__inner {
	gap: 1.9rem;
}
body.home .tw-hero__ctas {
	margin-top: 1.5rem;
	max-width: 430px;
	margin-left: auto;
	margin-right: auto;
}
body.home .tw-hero__badges {
	margin-top: 1rem;
	margin-bottom: 1.35rem;
}
body.home .tw-hero--home .tw-hero__headline {
	margin-bottom: 0.9rem;
}
body.home .tw-hero--home .tw-hero__subheadline {
	margin-bottom: 1.25rem;
}
body.home .tw-hero__micro-line {
	margin-top: 0.55rem;
	margin-bottom: 1rem;
	line-height: 1.45;
	opacity: 0.8;
	max-width: 44ch;
	margin-left: auto;
	margin-right: auto;
}
@media (min-width: 768px) {
	body.home .tw-hero__ctas {
		max-width: 560px;
	}
}
body.home #what-you-get .tw-h2 {
	margin-bottom: 0.9rem;
}
body.home #what-you-get .tw-wyg-authority-intro {
	margin-bottom: 0.85rem;
}
body.home #what-you-get .tw-wyg-authority li {
	line-height: 1.45;
}
body.home #reinforcement-band .tw-lead {
	max-width: 64ch;
	margin-bottom: 0.8rem;
}
body.home #final-cta .tw-h2 {
	margin-bottom: 0.55rem;
}
body.home #final-cta .tw-cta-authority {
	font-size: 0.95rem;
	line-height: 1.45;
	opacity: 0.9;
}
body.home #final-cta .tw-lead {
	margin-bottom: 1rem !important;
}

/* Text rhythm: keep headings and lead copy readable and consistent. */
body:not(.home) .twx-section .tw-h2,
body:not(.home) .tw-section .tw-h2 {
	margin-bottom: 0.7rem;
}
body:not(.home) .twx-section .tw-lead,
body:not(.home) .tw-section .tw-lead {
	line-height: 1.55;
	max-width: 68ch;
}

body.page-template-page-pricing-php #custom-upgrades .tw-h2--accent,
body.page-template-page-pricing-php #faq .tw-h2--accent {
	padding-top: 0.25rem;
}

/* Agency Partner: max 30px gap between intro paragraph and Services heading. */
#agency-intro {
	padding-bottom: 0;
}
#agency-intro + #agency-services-page {
	margin-top: 30px;
	padding-top: 0;
}

/* Section heading spacing: prevent large margins from adding to section gap. */
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) main section > .tw-h2:first-child,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) main section > .twx-section-title:first-child {
	margin-top: 0;
}
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) main section .tw-h2,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) main section .twx-section-title {
	margin-bottom: 0.5rem;
}

/* -------------------------------------------------------------------------
   Readability polish (site-wide, non-checkout)
   ------------------------------------------------------------------------- */
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-band-dark p,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-band-alt p,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-band-dark li,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-band-alt li,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-hero p,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .internal-hero p {
	color: rgba(255, 255, 255, 0.95);
}

body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-band-dark .tw-lead,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-band-alt .tw-lead,
body:not(.woocommerce-checkout):not(.woocommerce-cart):not(.woocommerce-order-received) .twx-hero .tw-lead {
	line-height: 1.64;
}

@media (max-width: 767px) {
	.tw-header .tw-header__menu a {
		letter-spacing: 0.08em;
	}
}

.tw-howitworks #process-band .tw-howitworks__card {
	border-top: 3px solid rgba(244, 122, 31, 0.75);
}

.tw-howitworks #process-band .tw-howitworks__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: rgba(244, 122, 31, 0.16);
	border: 1px solid rgba(244, 122, 31, 0.45);
	color: #ff8f33;
	font-size: 1.15rem;
	margin-bottom: 0.8rem;
}

.tw-howitworks #enterprise-band .tw-howitworks__pillar-title {
	position: relative;
	padding-top: 0.45rem;
}

.tw-howitworks #enterprise-band .tw-howitworks__pillar-title::before {
	content: none;
}

/* ========================================
   Mobile: site-wide (max-width: 767px)
   Consistent padding, touch targets, readable type, no overflow.
   ======================================== */
@media (max-width: 767px) {
	html {
		overflow-x: hidden;
	}
	body {
		overflow-x: hidden;
	}

	/* Section padding: more breathable on small screens */
	.twx-section {
		padding-top: 28px;
		padding-bottom: 28px;
	}
	.twx-section + .twx-section {
		margin-top: 0;
	}

	/* Home hero: allow headline to wrap on small screens */
	.tw-hero--home .tw-hero__headline-line {
		white-space: normal;
	}
	.tw-hero .tw-hero__inner,
	.tw-hero .twx-container {
		padding-left: var(--tw-container-pad-mobile, 24px);
		padding-right: var(--tw-container-pad-mobile, 24px);
	}
	.tw-hero--home .tw-hero__card {
		margin-top: 1.5rem;
	}

	/* Internal hero: comfortable padding and type */
	.internal-hero {
		padding-top: 24px;
		padding-bottom: 20px;
	}
	.internal-hero__container {
		padding-left: var(--tw-container-pad-mobile, 24px);
		padding-right: var(--tw-container-pad-mobile, 24px);
	}
	.internal-hero__headline {
		font-size: clamp(1.5rem, 5.5vw, 2rem);
		line-height: 1.12;
	}
	.internal-hero__subline {
		font-size: 0.9375rem;
		line-height: 1.5;
		max-width: none;
	}

	/* Footer: single column, readable copy */
	.tw-footer {
		padding-top: 2.5rem;
		padding-bottom: 1.5rem;
	}
	.tw-footer__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
		margin-bottom: 1.5rem;
	}
	.tw-footer__logo-text {
		font-size: 1.75rem;
	}
	.tw-footer__tagline {
		font-size: 0.8125rem;
		line-height: 1.45;
		margin-top: 0.35rem;
	}
	.tw-footer__copy {
		font-size: 0.75rem;
		line-height: 1.4;
	}

	/* Header logo: scale down on very small screens */
	.tw-header__logo-text {
		font-size: clamp(1.5rem, 8vw, 2.5rem);
	}

	/* Headings: prevent overflow and keep readable */
	.tw-h1 {
		font-size: clamp(1.75rem, 6vw, 2.625rem);
		line-height: 1.12;
	}
	.tw-h2,
	.tw-h2--accent {
		font-size: clamp(1.35rem, 4.5vw, 1.875rem);
		line-height: 1.2;
		margin-bottom: 0.75rem;
	}
	.tw-lead {
		font-size: 1rem;
		line-height: 1.55;
		margin-bottom: 1.25rem;
	}

	/* Cards: comfortable padding and gap */
	.twx-card,
	.tw-howitworks__card {
		padding: 1.25rem 1rem;
	}
	.tw-howitworks__grid {
		gap: 1rem;
	}
	.tw-howitworks__card-title {
		font-size: 1.1rem;
	}

	/* Final CTA and reinforcement band */
	.twx-cta-band .twx-container,
	#final-cta .twx-container,
	#reinforcement-band .twx-container {
		padding-left: var(--tw-container-pad-mobile, 24px);
		padding-right: var(--tw-container-pad-mobile, 24px);
	}
	#final-cta .tw-h2,
	.twx-cta-band .tw-h2 {
		font-size: clamp(1.35rem, 5vw, 1.75rem);
		margin-bottom: 0.5rem;
	}
	#final-cta .tw-lead,
	.twx-cta-band .tw-lead {
		margin-bottom: 1.25rem;
	}
	#final-cta .tw-cta-buttons .tw-btn,
	.twx-cta-band .tw-cta-buttons .tw-btn {
		width: 100%;
		min-height: 48px;
	}

	/* Reinforcement band: stack and spacing */
	#reinforcement-band .tw-wyg-grid {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}
	#reinforcement-band .tw-h2--accent {
		font-size: clamp(1.25rem, 4.5vw, 1.5rem);
		white-space: normal;
	}

	/* About: pillars single column on mobile */
	.tw-about__pillars {
		grid-template-columns: 1fr;
		gap: 0.75rem;
	}
	.tw-about__pillar {
		padding: 0.85rem 0.75rem;
	}
	.tw-about__pillars-title {
		font-size: clamp(1.35rem, 4.5vw, 1.75rem);
		margin-bottom: 1rem;
	}

	/* FAQ: tap-friendly and readable */
	.tw-faq-item {
		padding: 0.875rem 0;
	}
	.tw-faq-question {
		font-size: 0.9375rem;
		line-height: 1.35;
		padding-right: 2rem;
	}
	.tw-faq-answer-inner {
		font-size: 0.9375rem;
		line-height: 1.5;
		padding-top: 0.35rem;
	}

	/* Pricing tiers: stack cleanly */
	.tw-pricing-tier,
	.tw-pricing-cards .twx-card {
		padding: 1.25rem 1rem;
	}
	.tw-pricing-tier__price,
	.tw-pricing-tier .tw-pricing-tier__price {
		font-size: clamp(1.75rem, 5vw, 2.25rem);
	}
	.tw-pricing-tier .tw-btn,
	.tw-pricing-cards .tw-btn {
		width: 100%;
		min-height: 48px;
	}

	/* Homepage intro / section 2 */
	#homepage-intro .twx-container,
	#homepage-intro.twx-section {
		padding-left: var(--tw-container-pad-mobile, 24px);
		padding-right: var(--tw-container-pad-mobile, 24px);
	}
	#homepage-intro .tw-lead {
		font-size: 1rem;
	}
	.tw-wyg-list--two-col {
		grid-template-columns: 1fr;
		gap: 0.5rem;
	}

	/* General: primary/secondary buttons touch-friendly */
	main .tw-btn--primary,
	main .tw-btn--secondary {
		min-height: 48px;
		padding: 0.75rem 1.25rem;
	}
	main .tw-btn--primary:only-child,
	main .tw-btn--secondary:only-child {
		width: 100%;
	}

	/* Prevent long words from breaking layout */
	.tw-h1, .tw-h2, .tw-h3,
	.internal-hero__headline,
	.tw-lead,
	.tw-faq-question {
		overflow-wrap: break-word;
		word-wrap: break-word;
	}
}

