/*
Theme Name: Bright Marketing
Theme URI: https://bright.aura-software.com/
Description: Lightweight block theme for Bright marketing pages. Aura brand tokens, composable block patterns, zero plugin dependencies.
Version: 1.1.2
Requires at least: 6.7
Tested up to: 7.0
Requires PHP: 7.2
Author: Aura Software
Author URI: https://www.aura-software.com/
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bright-marketing
Tags: full-site-editing, block-patterns, one-column, wide-blocks, accessibility-ready
*/

:root {
	--bright-layout-wide: min(1120px, calc(100vw - 48px));
	--bright-section-warm: linear-gradient(
		160deg,
		var(--wp--preset--color--surface) 0%,
		var(--wp--preset--color--primary-soft) 48%,
		var(--wp--preset--color--background) 100%
	);
}

/* Front-end tweaks not covered by theme.json (hero: assets/css/bright-hero.css) */

.wp-block-column.is-style-bright-card {
	background: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--border) !important;
	box-shadow: 0 8px 24px rgba(10, 24, 45, 0.06);
}

.bright-section.is-style-bright-section-warm .wp-block-column.is-style-bright-card,
main .wp-block-post-content > .bright-section:nth-child(odd):not(:first-child):not(.bright-section-cta) .wp-block-column.is-style-bright-card {
	background: linear-gradient(
		180deg,
		var(--wp--preset--color--surface) 0%,
		var(--wp--preset--color--surface-muted) 100%
	) !important;
	border-color: color-mix(in srgb, var(--wp--preset--color--primary) 14%, var(--wp--preset--color--border)) !important;
	box-shadow: 0 12px 32px rgba(37, 99, 235, 0.07);
}

/*
 * Section backgrounds: alternate flat and gradient (hero + dark CTA excluded).
 * Odd sections after hero get gradient; even sections stay flat.
 */
main .wp-block-post-content > .bright-section.alignfull:not(.is-style-bright-hero-dark):not(.bright-section-cta):not([style*="color--contrast"]):not(.is-style-bright-section-warm) {
	background: var(--wp--preset--color--background) !important;
}

main .wp-block-post-content > .bright-section.alignfull:not(.is-style-bright-hero-dark):not(.bright-section-cta):not([style*="color--contrast"]):not(.is-style-bright-section-warm):nth-child(even) {
	background: var(--wp--preset--color--surface) !important;
}

main .wp-block-post-content > .bright-section.alignfull:not(.is-style-bright-hero-dark):not(.bright-section-cta):not([style*="color--contrast"]).is-style-bright-section-warm,
main .wp-block-post-content > .bright-section.alignfull:not(.is-style-bright-hero-dark):not(.bright-section-cta):not([style*="color--contrast"]):not(.is-style-bright-section-warm):nth-child(odd):not(:first-child),
.wp-block-group.bright-section.is-style-bright-section-warm {
	background: var(--bright-section-warm) !important;
}

/* Nested cards and callout panels — gradient sections only */
.bright-section.is-style-bright-section-warm > .alignwide .wp-block-group.has-border-color.has-background,
.bright-section.is-style-bright-section-warm .alignwide.has-border-color.has-background,
main .wp-block-post-content > .bright-section:nth-child(odd):not(:first-child):not(.bright-section-cta):not(.is-style-bright-hero-dark) > .alignwide .wp-block-group.has-border-color.has-background,
main .wp-block-post-content > .bright-section:nth-child(odd):not(:first-child):not(.bright-section-cta):not(.is-style-bright-hero-dark) .alignwide.has-border-color.has-background {
	background: linear-gradient(
		180deg,
		var(--wp--preset--color--surface) 0%,
		var(--wp--preset--color--surface-muted) 100%
	) !important;
	border-color: color-mix(in srgb, var(--wp--preset--color--primary) 12%, var(--wp--preset--color--border)) !important;
	box-shadow: 0 8px 24px rgba(37, 99, 235, 0.06);
}

.bright-section.is-style-bright-section-warm > .alignwide > .wp-block-group > .wp-block-group.has-border-color.has-background:nth-child(1),
main .wp-block-post-content > .bright-section:nth-child(odd):not(:first-child):not(.bright-section-cta) > .alignwide > .wp-block-group > .wp-block-group.has-border-color.has-background:nth-child(1) {
	background: linear-gradient(
		180deg,
		var(--wp--preset--color--primary-soft) 0%,
		var(--wp--preset--color--surface) 100%
	) !important;
}

.bright-section.is-style-bright-section-warm > .alignwide > .wp-block-group > .wp-block-group.has-border-color.has-background:nth-child(3),
main .wp-block-post-content > .bright-section:nth-child(odd):not(:first-child):not(.bright-section-cta) > .alignwide > .wp-block-group > .wp-block-group.has-border-color.has-background:nth-child(3) {
	background: linear-gradient(
		180deg,
		var(--wp--preset--color--surface-muted) 0%,
		var(--wp--preset--color--background) 100%
	) !important;
}

/* Final contact CTA — keep dark band */
.bright-section.bright-section-cta,
.bright-section.has-background[style*="color--contrast"] {
	background: linear-gradient(
		135deg,
		var(--wp--preset--color--contrast) 0%,
		var(--wp--preset--color--contrast-muted) 100%
	) !important;
	color: var(--wp--preset--color--surface-muted);
}

.bright-section.bright-section-cta h2,
.bright-section.bright-section-cta h2.has-text-color,
.bright-section.has-background[style*="color--contrast"] h2.has-text-color {
	color: var(--wp--preset--color--surface-muted) !important;
}

.bright-section.bright-section-cta p,
.bright-section.has-background[style*="color--contrast"] p.has-text-color {
	color: color-mix(in srgb, var(--wp--preset--color--surface-muted) 85%, var(--wp--preset--color--primary-soft)) !important;
}

/*
 * Marketing landing pages: post-content must span the viewport so
 * alignfull / alignwide children can use wideSize (1120px), not contentSize (720px).
 */
main .wp-block-post-content {
	max-width: none;
	width: 100%;
}

main .wp-block-post-content.is-layout-constrained > .alignfull,
main .wp-block-post-content.is-layout-constrained > .alignfull.bright-section {
	max-width: none;
	width: 100%;
}

main .wp-block-post-content.is-layout-constrained > .alignwide,
main .wp-block-post-content .alignwide {
	max-width: var(--bright-layout-wide);
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

main .wp-block-post-content .bright-section > .alignwide .wp-block-columns {
	width: 100%;
}

/* Stack cards: ensure body copy stays readable on tinted backgrounds */
.bright-section .has-background:not(.is-style-bright-hero-dark) p {
	color: var(--wp--preset--color--foreground);
}

/* Contact form (Bright Contact Form plugin) */
.bright-contact-form-wrap {
	width: 100%;
}

.bright-contact-form-notice {
	border-radius: 12px;
}

.bright-contact-form__field input[type="text"],
.bright-contact-form__field input[type="email"],
.bright-contact-form__field textarea {
	border-color: var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
}

.bright-contact-form__field input:focus,
.bright-contact-form__field textarea:focus {
	outline-color: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
}

.bright-contact-form__button {
	background: var(--wp--preset--color--primary);
	color: var(--wp--preset--color--surface);
}

.bright-contact-form__turnstile {
	min-height: 65px;
}

.bright-section .wp-block-column .wp-block-list li {
	color: var(--wp--preset--color--foreground);
}

/* Pricing calculator */
.bright-pricing-calculator__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--60);
	align-items: start;
}

@media (max-width: 782px) {
	.bright-pricing-calculator__layout {
		grid-template-columns: 1fr;
	}
}

.bright-pricing-calculator__form {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
}

.bright-pricing-calculator__field label {
	display: block;
	font-weight: 600;
	color: var(--wp--preset--color--heading);
	margin-bottom: var(--wp--preset--spacing--20);
}

.bright-pricing-calculator__field input[type="number"] {
	width: 100%;
	max-width: 12rem;
	padding: 0.6rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--foreground);
	font-size: 1rem;
}

.bright-pricing-calculator__field input[type="number"]:focus {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 1px;
	border-color: var(--wp--preset--color--primary);
}

.bright-pricing-calculator__field input[type="number"]:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	background: var(--wp--preset--color--background);
}

.bright-pricing-calculator__field-warn {
	margin: var(--wp--preset--spacing--20) 0 0;
	font-size: 0.875rem;
	color: var(--wp--preset--color--primary-strong);
	max-width: 28rem;
}

.bright-pricing-calculator__hint {
	margin: var(--wp--preset--spacing--20) 0 0;
	font-size: 0.875rem;
	color: var(--wp--preset--color--muted);
	max-width: 28rem;
}

.bright-pricing-calculator__field--checkbox {
	margin-top: var(--wp--preset--spacing--20);
}

.bright-pricing-calculator__checkbox-label {
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
	font-weight: 500;
	cursor: pointer;
}

.bright-pricing-calculator__checkbox-label input {
	margin-top: 0.2rem;
}

.bright-pricing-calculator__result {
	padding: var(--wp--preset--spacing--50);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 16px;
	background: var(--wp--preset--color--surface);
	box-shadow: 0 12px 32px rgba(37, 99, 235, 0.07);
}

.bright-pricing-calculator__result-label {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--wp--preset--color--muted);
}

.bright-pricing-calculator__total {
	margin: 0 0 var(--wp--preset--spacing--40);
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.1;
	color: var(--wp--preset--color--primary-strong);
}

.bright-pricing-calculator__cost-table {
	width: 100%;
	margin: 0 0 var(--wp--preset--spacing--40);
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.bright-pricing-calculator__cost-table th,
.bright-pricing-calculator__cost-table td {
	padding: 0.5rem 0;
	text-align: left;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.bright-pricing-calculator__cost-table td {
	text-align: right;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	color: var(--wp--preset--color--heading);
}

.bright-pricing-calculator__cost-table th {
	font-weight: 500;
	color: var(--wp--preset--color--foreground);
}

.bright-pricing-calculator__cost-est {
	font-weight: 400;
	color: var(--wp--preset--color--muted);
}

.bright-pricing-calculator__cost-table-total th,
.bright-pricing-calculator__cost-table-total td {
	border-bottom: none;
	padding-top: 0.65rem;
	font-weight: 700;
	color: var(--wp--preset--color--primary-strong);
}

.bright-pricing-calculator__notes-list {
	margin: 0;
	padding-left: 1.25rem;
	color: var(--wp--preset--color--foreground);
}

.bright-pricing-calculator__notes-list li {
	margin-bottom: 0.5rem;
}

.bright-pricing-calculator__notes-empty {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.9375rem;
}

.bright-section .wp-block-details {
	margin-bottom: var(--wp--preset--spacing--30);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	background: var(--wp--preset--color--surface);
}

.bright-section .wp-block-details summary {
	font-weight: 600;
	color: var(--wp--preset--color--heading);
	cursor: pointer;
}

.bright-section .wp-block-details p {
	margin-top: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--foreground);
}
