/* CSS Variables for consistency */
:root {
	--primary-blue: #4c4eb0;
	--primary-green: #6c7f68;
	--bg-light-blue: #dcf3ff;
	--bg-light-gray: #ececf1;
	--bg-light-green: #ebfbee;
	--bg-peach: #ffefde;
	--bg-red: #f7d5d5;
	--bg-yellow: #faf5df;
	--border-radius-sm: 5px;
	--border-radius-md: 12px;
	--border-radius-lg: 20px;
	--spacing-sm: 5px;
	--spacing-md: 10px;
	--spacing-lg: 20px;
}

/* Main Content Area */
#main_cell > div {
	background-color: var(--bg-red);
	margin: var(--spacing-sm) auto var(--spacing-lg) auto;
}

#mobile_menu_button {
	display: none;
}

/* Section Containers */
.section_info {
	border: 2px solid var(--primary-green);
	margin: 1em auto 3em auto;
	padding: var(--spacing-md) var(--spacing-md) var(--spacing-lg) var(--spacing-md);
	border-radius: var(--border-radius-lg);
	vertical-align: top;
	max-width: 720px;
}

#account_type_box {
	vertical-align: top;
}


/* Section Headers */
.border_heading {
	margin: -26px 0 var(--spacing-lg) var(--spacing-md);
	padding: 1px 8px;
	border-radius: var(--border-radius-sm);
	display: table;
	background-color: var(--bg-light-green);
	border: 1px solid var(--primary-green);
}

/* Form Buttons */
.form_button {
	clear: both;
	display: block;
	background-color: var(--bg-light-blue);
	padding: 3px 5px;
	border-radius: var(--border-radius-md);
	border: 2px solid var(--primary-blue);
	text-align: center;
	font-size: 1rem;
	cursor: pointer;
	max-width: 160px;
	margin: 2px var(--spacing-sm) var(--spacing-lg) var(--spacing-sm);
	transition: opacity 0.2s ease;
}

.form_button:hover {
	opacity: 0.9;
}

.form_button:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Account Selection Boxes */
.account_box {
	background-color: var(--bg-light-gray);
	padding: var(--spacing-sm);
	margin: var(--spacing-sm);
	border-radius: var(--border-radius-md);
	border: 4px solid var(--primary-blue);
	display: inline-block;
	height: 130px;
	width: 100px;
	font-size: 0.7em;
	font-weight: bold;
	text-align: center;
	overflow: hidden;
	cursor: pointer;
	transition: background-color 0.2s ease;
	max-width: 130px;
}

.account_box:hover {
	background-color: var(--bg-peach);
}

.account_box.highlight {
	background-color: var(--bg-yellow);
}

.account_box h3 {
	text-align: center;
	margin: .2em;
	line-height: 1em;
}

/* Form Validation Errors */
#form_errors p:last-child {
	margin-bottom: 40px;
}

.error {
	max-width: 520px;
	min-width: 100px;
	margin: 2em auto 2.5em auto;
}

/* Payment Form */
#paymentForm {
	text-align: left;
	padding-right: 30px;
}

#subscribe_button {
	display: none;
}

#make_selection {
	margin: var(--spacing-lg) auto;
	text-align: center;
}

/* Account Comparison */
#account_comparison {
	display: none;
	width: 80%;
	text-align: center;
	border: 2px solid black;
	border-radius: .3em;
	margin-bottom: .6em;
	padding: 0;
	overflow: hidden;
}

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

#compare_click {
	margin: 1em 1em 0.5em 0;
	text-align: right;
	cursor: pointer;
	color: var(--primary-blue);
}

#compare_click:hover {
	text-decoration: underline;
}

/* Disclaimer Text */
.disclaimer-text {
	font-size: 0.8em;
}

/* Accessibility */
.visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Fieldsets */
fieldset.account-fieldset,
fieldset.payment-fieldset {
	border: none;
	padding: 0;
	margin: 0;
}

#account_selected_title {
	text-align: left;
	margin: .2em 0em 1em .2em;
}

.account_cost {
	margin: 0;
	text-align: center;
}

.account_box h3 {
	margin-bottom: .3em;
}

.close_section {
	margin: -22px 0px 10px 10px;
	display: block;
	padding: 8px 8px 8px 8px;
	border-radius: 20px;
	border:1px solid black;
	float: right;
	line-height: .6em;
	text-align: center;
	font-weight: bold;
	font-size: 1.1em;
}

#close_buuton_container {
	display: block;
	height: 20px;
}

.account_radio {
	text-align: center;
	align-content: center;		
	-webkit-align-content: center;
}

.renewal_notes {
	text-align: left;
}

.renewal_notes p {
	margin: 0;
}

.renewal_notes ul {
	margin-top: 0;
}


/* Responsive Design */

/* Tablet */
@media (max-width: 1024px) {
	
	.account_box {
		display: block;
		margin: 0 auto 8px auto;
		width: calc(33.33% - 10px);
	}
	
	.section_info {
		max-width: 95%;
		padding: var(--spacing-sm);
	}

	.form_line {
		max-width: 100%;
		text-align: left;
	}

	.form_line label {
		display: block;
		margin-bottom: 5px;
	}

	.form_line input[type="text"],
	.form_line input[type="email"],
	.form_line input[type="tel"],
	.form_line input[type="password"] {
		width: 100%;
		box-sizing: border-box;
	}

	#paymentForm {
		text-align: left;
		padding-right: var(--spacing-md);
	}

	.form_button {
		max-width: 100%;
	}

	#account_comparison img {
		width: 100%;
	}
}

/* Phone */
@media (max-width: 640px) {
	.account_box {
		width: calc(50% - 10px);
		margin: 0 auto 8px auto;
		height: auto;
		min-height: 100px;
		font-size: 1em;
	}

	.border_heading {
		font-size: 0.9em;
	}
}
