/* 
    http://meyerweb.com/eric/tools/css/reset/ 
    v2.0 | 20110126
    License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}

/* ---------- GLOBAL/CUSTOM STYLES ---------- */
:root{
    /* ASU Brand Colors */
	--wht: #fff;
	--black: #000;
	--maroon: #8c1d40;
	--gold: #ffc627;
	--blue: #00a3e0;
	--green: #78be20;
	--orange: #ff7f32;
    --gray: #747474;
    --gray1: #FAFAFA;/* open accordion panel background */ 
    --gray2: #E8E8E8; /* background on accordion heading: hover/focus */
    --gray3: #D0D0D0; /* border on accordion heading */
    --gray4: #BFBFBF;
    --gray5: #747474;
    --gray6: #484848;
    --gray7: #191919; /* accordion text & sidebar */
    --visited-inline-link: #440E22;
    --error: #B72A2A;
    --success: #446D12;
    --error-dk: #FF7B7D;
    --success-dk: #78BE20;

    /* ASU Fonts */
	--fonts: Arial, sans-serif;

    /* ASU Focus Shadow Style */
    --focus-shadow: 0 0 8px #00baff;

}

/* Body Styles */
body{
    font-family: var(--fonts);
    font-size: 1.1rem;
    box-sizing: border-box;
	background-color: var(--gray7); 	
    color: var(--gray7);
	line-height: 1.5;
    position: relative;
    z-index: 2;
}

/* Header, Main, Footer Styles */
header, main, footer{
    background-color: var(--wht);
    width: 80%;
    max-width: calc(1000px - 32px);
    margin: 0 auto;
    padding: 32px 16px;
}

/* Header Styles */
header{
    padding-top: 32px;
    border-bottom: 1px solid var(--gray4);
}

/* Link Styles */
a{
    display: block;
    padding: 1rem;
    color: var(--maroon);
}

/* Link Hover Styles */
a:hover{
    text-decoration: none;
}

/* Link Focus Styles */
a:focus, a:focus-visible, a:visited:focus-visible{
    outline-color: var(--gold);
    outline-offset: 2px;
    text-decoration: none;
}

/* Visited Link Styles */
a:visited{
    color: var(--visited-inline-link);
}

/* Shared Heading Styles */
h1, h2, h3, h4{
    font-weight: bold;
    letter-spacing: -0.5px;
}

/* H1 Styles */
h1{
    font-size: 2rem;
    line-height: 2.5rem;
    text-align: center;
}

/* H2 Styles */
h2{
    font-size: 2rem;
    line-height: 2.5rem;
    margin: 8px 0;
    background-color: var(--gold);
    padding: 4px 8px;
    text-align: center;
}

h3{
    font-size: 1.75rem;
    margin: 8px 0;
    text-decoration: 4px solid underline #ffc627;
    max-width: 75ch;
    margin: 0 auto;
}

h4{
    font-size: 1.5rem;
    margin: 8px 0;
    max-width: 75ch;
    margin: 0 auto;
}

/* Paragraph Styles */
p{
    width: 100%;
    max-width: 75ch;
    margin: 0 auto;
    padding: 16px 0;
    line-height: 1.4;
}

/* Embedded Code Snippet Styles */
pre{
    overflow: scroll;
}

pre code{
    font-family: monospace;
}

/* Form Styles */
form{
	width: 350px;
	margin: 16px auto;
	padding: 16px;
	background-color: var(--gray2);
	color: var(--gray7);
	border-radius: 4px;
}

/* Display Styles for Form Elements */
input, label, select, textarea{
	display: block;
	width: calc(100% - 23px);
}

/* Label Styles */
label{
	margin: 0 0 4px 16px;
	font-weight: bold;
}

/* Input/Select Sizing styles */
input, select, textarea{
	padding: 10px;
	font-size: 1rem;
	margin-bottom: 24px;
	border-radius: 4px;
	border: 1px inset var(--gray7);
	background-color: var(--wht);
}

select{
    width: 100%;
}

/* Fieldset Styles */
fieldset{
	margin-bottom: 24px;
	border-radius: 4px;
	border: 1px solid var(--gray7);
	display: grid;
	grid-template-columns: 1fr;
	row-gap: 8px;
    padding: 0.35em 0.75em 0.75em 0.625em;
}

/* Legend Styles */
legend{
	font-weight: bold;
    padding: 0 4px;
}

/* Fieldset Label Styles */
fieldset label{
	margin-left: 0;
}

/* Textarea Styles */
textarea{
    height: 150px;
}

/* Submit Button Styles */
input[type="submit"]{
	background-color: var(--maroon);
	border: none;
    border-radius: 24px;
	color: #fff;
	font-size: 18px;
	font-weight: bold;
	/* box-shadow: -6px 6px 10px var(--gray5); */
    padding: 16px;
    margin: 24px auto;
}

/* Styles for Invalid Data in Inputs in the Form */
input:invalid, select:invalid, textarea:invalid{
	border: 4px solid var(--error);
    width: calc(100% - 28px);
}

/* Styles for Each Input as it has Focus */
input:focus, select:focus, textarea:focus{
    outline-color: var(--blue);
	box-shadow: var(--focus-shadow);
}

/* Styles for the Submit Button Focus */
input[type="submit"]:focus, input[type="submit"]:focus-visible{
	outline-color: var(--blue);
	box-shadow: var(--focus-shadow);
}

/* Styles for Submit Button Hover */
input[type="submit"]:hover{
	box-shadow: -3px 3px 5px var(--gray5);
}

/* To mark the required inputs & make the asterisk stand out */
.required{
	color: var(--error);
	font-weight: bold;
	font-size: 1.35rem;
}

/* Optional Code for Custom Radios - Compare to Your zyBook, I added additional code to make these match my form styles */
input[type="radio"] + label {
    cursor: pointer;
	display: flex;
	align-items: center;
}

input[type="radio"] {
    appearance: none;
    margin: 0;
	padding: 0;
	border: none;
	font-size: 0;
	border-radius: 0;
}

input[type="radio"] + label::before {
   	content: "\00a0";   /* Non-breaking space */
	font-size: 2.25em;
	line-height: 0.56;
    border-radius: 50%;
    display: inline-block;  
    height: 19px;
    width: 21px;
    text-align: center;
    margin-right: 16px;
   	border: 2px solid var(--wht);   /* Push focus shadow away */
    background-color: var(--wht);
	padding-bottom: 2px;
}

input[type="radio"]:checked + label::before {
    content: "\2022";
    color: var(--wht);
    background: var(--maroon);
}

input[type="radio"]:focus{
	outline: none;
}

input[type="radio"]:focus + label::before {
    box-shadow: var(--focus-shadow);
}

/* Footer Styles */
footer{
    border-top: 1px solid var(--gray4);
}

/* Footer Paragraph Styles */
footer p{
    padding: 16px 0;
    text-align: center;
}

/* Footer Link Styles */
footer > a{
    text-align: center;
}

footer p a{
    display: inline;
    padding: 0;
}

/* Footer Links on Focus Styles */
footer a:focus, footer a:focus-visible{
    outline: 2px solid var(--gold);
}

footer > p a:focus, footer > p a:focus-visible{
    outline-offset: 4px;
}