/**
 * Red Wings Game Day Budget Planner - Public styles
 * Colors: primary #2E6DA4, success #4CAF50, bg #FFF, text #333, secondary #666, border #E0E0E0
 */

/* Layout */
.rwbp-calculator {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 1rem 2rem;
	box-sizing: border-box;
}

.rwbp-disclaimer {
	font-size: 13px;
	color: #666;
	max-width: 800px;
	margin: 0 auto 1rem;
	padding: 0 1rem;
	line-height: 1.5;
}

.rwbp-disclaimer-bottom {
	margin-top: 1rem;
	margin-bottom: 2rem;
}

/* Sticky running total (bottom of viewport per PRD) */
.rwbp-sticky-total {
	position: sticky;
	bottom: 0;
	z-index: 10;
	background: #fff;
	border-top: 1px solid #E0E0E0;
	padding: 12px 1rem;
	margin: 1.5rem -1rem 0;
	box-shadow: 0 -2px 4px rgba(0,0,0,0.05);
}

.rwbp-sticky-label {
	font-size: 14px;
	color: #666;
	margin-right: 8px;
}

.rwbp-sticky-value {
	font-size: 24px;
	font-weight: bold;
	color: #2E6DA4;
}

/* Sections */
.rwbp-section {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #E0E0E0;
}

.rwbp-section-title {
	font-size: 20px;
	font-weight: bold;
	color: #333;
	margin: 0 0 1rem;
}

.rwbp-subtitle {
	font-size: 16px;
	font-weight: 600;
	color: #333;
	margin: 1rem 0 0.5rem;
}

.rwbp-context {
	font-size: 13px;
	font-style: italic;
	color: #666;
	margin: 0.5rem 0 0;
}

/* Group size stepper */
.rwbp-group-size-wrap {
	margin-bottom: 0.5rem;
}

.rwbp-label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	color: #333;
	margin-bottom: 6px;
}

.rwbp-stepper {
	display: inline-flex;
	align-items: center;
	gap: 0;
	border: 1px solid #E0E0E0;
	border-radius: 4px;
	overflow: hidden;
}

.rwbp-stepper-btn {
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	font-size: 20px;
	line-height: 1;
	background: #f5f5f5;
	border: none;
	color: #333;
	cursor: pointer;
	transition: background 0.2s;
}

.rwbp-stepper-btn:hover,
.rwbp-stepper-btn:focus {
	background: #2E6DA4;
	color: #fff;
	outline: 2px solid #2E6DA4;
	outline-offset: 2px;
}

.rwbp-stepper-btn:active {
	background: #1a4d75;
}

.rwbp-input {
	font-size: 16px;
	width: 4em;
	min-height: 44px;
	padding: 10px 12px;
	border: none;
	border-left: 1px solid #E0E0E0;
	border-right: 1px solid #E0E0E0;
	text-align: center;
	-moz-appearance: textfield;
}

.rwbp-input::-webkit-outer-spin-button,
.rwbp-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Toggles */
.rwbp-toggle-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 1rem;
}

.rwbp-toggle-wrap.rwbp-inline {
	display: inline-flex;
	margin-right: 1rem;
	margin-bottom: 0.5rem;
}

.rwbp-toggle {
	width: 44px;
	height: 24px;
	min-width: 44px;
	min-height: 24px;
	accent-color: #2E6DA4;
	cursor: pointer;
}

.rwbp-toggle-label {
	font-size: 14px;
	color: #333;
	cursor: pointer;
}

.rwbp-custom-ticket-wrap {
	margin-bottom: 1rem;
}

.rwbp-custom-ticket-wrap.rwbp-hidden {
	display: none;
}

.rwbp-custom-ticket-wrap .rwbp-input {
	width: 8em;
	border: 1px solid #E0E0E0;
	border-radius: 4px;
}

#rwbp-tier-tickets.rwbp-hidden {
	display: none;
}

/* Tier cards */
.rwbp-tier-cards {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 0.5rem;
}

.rwbp-tier-card {
	position: relative;
	flex: 1 1 140px;
	min-width: 0;
}

.rwbp-tier-card input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.rwbp-tier-label {
	display: block;
	min-height: 44px;
	padding: 10px 14px;
	font-size: 14px;
	color: #333;
	background: #fff;
	border: 2px solid #E0E0E0;
	border-radius: 6px;
	cursor: pointer;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.rwbp-tier-card input:focus + .rwbp-tier-label {
	outline: 2px solid #2E6DA4;
	outline-offset: 2px;
}

.rwbp-tier-card input:checked + .rwbp-tier-label {
	border-color: #2E6DA4;
	background: #f0f7fc;
	box-shadow: 0 0 0 1px #2E6DA4;
}

.rwbp-tier-card input:hover + .rwbp-tier-label {
	border-color: #2E6DA4;
}

.rwbp-tier-name {
	display: block;
	font-weight: 500;
}

.rwbp-tier-range {
	display: block;
	font-size: 13px;
	font-style: italic;
	color: #666;
	margin-top: 2px;
}

/* Parking section */
.rwbp-parking-options.rwbp-hidden {
	display: none !important;
}

.rwbp-vehicles-msg {
	font-size: 14px;
	color: #333;
	margin: 0 0 0.75rem;
}

.rwbp-parking-tiers {
	margin-bottom: 1rem;
}

.rwbp-parking-custom-wrap {
	margin-bottom: 0.5rem;
}

.rwbp-parking-custom-wrap .rwbp-input {
	width: 8em;
	border: 1px solid #E0E0E0;
	border-radius: 4px;
}

.rwbp-parking-per-person {
	font-size: 16px;
	font-weight: 600;
	color: #2E6DA4;
	margin: 0.75rem 0 0;
}

.rwbp-input-row {
	margin-bottom: 0.5rem;
}

.rwbp-input-row .rwbp-label {
	display: inline-block;
	margin-right: 8px;
}

.rwbp-select {
	font-size: 16px;
	min-height: 44px;
	padding: 8px 12px;
	border: 1px solid #E0E0E0;
	border-radius: 4px;
	background: #fff;
	color: #333;
	cursor: pointer;
}

/* Extras */
.rwbp-extras {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.rwbp-extra-row {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
}

.rwbp-extra-row .rwbp-input,
.rwbp-extra-row .rwbp-select {
	width: 6em;
}

.rwbp-extra-row .rwbp-input:disabled {
	background: #f5f5f5;
	color: #999;
	cursor: not-allowed;
}

/* Results */
.rwbp-results-table-wrap {
	overflow-x: auto;
	margin-bottom: 1rem;
}

.rwbp-results-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.rwbp-results-table td {
	padding: 10px 12px;
	border-bottom: 1px solid #E0E0E0;
	color: #333;
}

.rwbp-results-table .rwbp-total-row td {
	font-size: 16px;
	border-bottom: none;
	border-top: 2px solid #333;
	padding-top: 14px;
}

.rwbp-results-table .rwbp-total-row strong {
	font-size: 24px;
	color: #2E6DA4;
}

.rwbp-bar-chart {
	display: flex;
	align-items: flex-end;
	gap: 4px;
	height: 60px;
	margin-bottom: 1.5rem;
}

.rwbp-bar-chart .rwbp-bar {
	flex: 1;
	min-width: 20px;
	background: #2E6DA4;
	border-radius: 4px 4px 0 0;
	transition: height 0.2s;
}

.rwbp-results-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
}

.rwbp-btn {
	min-height: 44px;
	min-width: 44px;
	padding: 12px 24px;
	font-size: 16px;
	font-weight: 600;
	border-radius: 6px;
	cursor: pointer;
	transition: background 0.2s, color 0.2s;
	border: none;
}

.rwbp-btn:focus {
	outline: 2px solid #2E6DA4;
	outline-offset: 2px;
}

.rwbp-btn-primary {
	background: #2E6DA4;
	color: #fff;
}

.rwbp-btn-primary:hover {
	background: #1a4d75;
}

.rwbp-btn-primary:disabled {
	background: #999;
	cursor: not-allowed;
}

.rwbp-btn-secondary {
	background: #f5f5f5;
	color: #333;
	border: 1px solid #E0E0E0;
}

.rwbp-btn-secondary:hover {
	background: #E0E0E0;
}

/* SEO content (below calculator) */
.rwbp-seo-content {
	max-width: 800px;
	margin: 0 auto;
	padding: 0 1rem 2rem;
	box-sizing: border-box;
}

.rwbp-seo-title {
	font-size: 24px;
	font-weight: bold;
	color: #333;
	margin: 0 0 1rem;
}

.rwbp-seo-intro {
	font-size: 16px;
	line-height: 1.6;
	color: #333;
	margin-bottom: 1rem;
}

.rwbp-seo-content p {
	font-size: 16px;
	line-height: 1.6;
	color: #333;
	margin: 0 0 1rem;
}

.rwbp-seo-section {
	margin-bottom: 2rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #E0E0E0;
}

.rwbp-seo-h2 {
	font-size: 20px;
	font-weight: bold;
	color: #333;
	margin: 0 0 0.5rem;
}

.rwbp-seo-h3 {
	font-size: 17px;
	font-weight: 600;
	color: #333;
	margin: 1rem 0 0.5rem;
}

.rwbp-faq {
	border-bottom: none;
}

.rwbp-faq-item {
	margin-bottom: 1.25rem;
}

.rwbp-faq-q {
	font-size: 16px;
	font-weight: 600;
	color: #333;
	margin: 0 0 0.35rem;
}

.rwbp-faq-a {
	font-size: 15px;
	line-height: 1.6;
	color: #333;
}

.rwbp-faq-a p {
	margin: 0;
}

/* Utility */
.rwbp-hidden {
	display: none !important;
}

.screen-reader-text,
.rwbp-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Mobile */
@media (max-width: 767px) {
	.rwbp-tier-cards {
		flex-direction: column;
	}

	.rwbp-tier-card {
		flex: 1 1 auto;
	}

	.rwbp-results-actions {
		flex-direction: column;
	}

	.rwbp-results-actions .rwbp-btn {
		width: 100%;
	}

	.rwbp-results-table td:first-child {
		padding-top: 14px;
	}

	.rwbp-results-table tr {
		display: block;
		border-bottom: 1px solid #E0E0E0;
	}

	.rwbp-results-table td {
		display: block;
		text-align: right;
		padding: 6px 12px;
	}

	.rwbp-results-table td::before {
		content: attr(data-label);
		float: left;
		font-weight: 500;
	}

	.rwbp-results-table .rwbp-total-row td {
		border-top: 2px solid #333;
		padding-top: 12px;
	}
}
