@charset "utf-8";
/* 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;
}
/*End of Myers Reset*/
/*Global Styles*/
* {
	box-sizing:border-box;
	/*scrollbar-color: #0c58a4 rgba(12, 88, 164,.5);*/
}
body {
	font-family: "basic-sans", sans-serif;
	font-style: normal;
	font-weight:300;
	font-size:62.5%;
	line-height:1.25;
	color:#2a3783;
	background-color:#f7f8fa;
}
p {
	line-height:1.35;
	font-size: clamp(1rem, 1vw, 1.5rem);
}
p > a, .doc-link {
	color:#cc2936;
	text-decoration:none;
}
p > a:hover, .doc-link:hover {
	text-decoration:underline;
}
strong, .flex-field-hold label {
	font-weight:900;
}
.flex-field-hold label { 
	padding-bottom:.25rem;
}
em {
	font-style:italic;
}
.flex-field-hold small, .small-label {
	font-size: clamp(.75rem, .75vw, .75rem) !important;
	font-weight:300 !important;
}
button {
	font-family: "basic-sans", sans-serif;
	font-style: normal;
	display:block;
	margin-bottom:1rem;
	font-size: clamp(1rem, 1vw, 1.5rem);
	border-radius:0;
	border:0;
	cursor:pointer;
}
legend {
	font-size: clamp(1rem, 1vw, 1.5rem) !important;
	padding:0 .5rem !important;
	color:#70cde2;
	text-transform:uppercase;
}
#success-banner, #error-banner {
	width:100%;
	text-align:center;
	font-weight:900;
	padding:1rem;
	color:#fff;	
}
#success-banner {
	background-color:#09A129;
}
#error-banner {
	background-color:#cc2936;
}
#success-banner p, #error-banner p {
	font-size: clamp(1.5rem, 1.5vw, 1.75rem);
}
header, nav, footer {
	width:100%;
	text-align:center;
}
header {
	min-width:1200px;
	padding:2rem 1rem;
	background-color:#2a3783;
	background-image:url("../_images/dots-bg.svg");
	background-size:cover;
	color:#fff;
}
header p {
	font-size: clamp(2rem, 2vw, 2.5rem);
}
nav {
	min-width:1200px;
	position:relative;
	padding:1rem;
	background-color:#70cde2;
	color:#2a3783;
	margin-bottom:2.5rem;
}
nav ul {
	margin:0 auto;
	display:flex;
	max-width:1400px;
	min-width:1200px;
	align-items:center;
}
nav ul a {
	flex:1;
	font-size: clamp(1rem, 1vw, 1.5rem);
	font-weight:900;
	color:#2a3783;
	text-decoration:none;
}
nav ul a:hover {
	text-decoration:underline;
}
nav ul a:nth-child(n+2):nth-child(-n+4) {
	border-right:1px solid #2a3783;
}
nav ul a:first-child {
	border:1px solid #2a3783;
	padding:.5rem;
	border-radius:5px;
}
footer {
	padding-bottom:2rem;
}
footer p {
	font-size: clamp(.75rem, .75vw, .75rem);
	color:#777 !important;
}
footer a {
	color:#777 !important;
}
#cmit-logo {
	display:block;
	margin:1rem auto;
	width:40%;
	max-width:350px;
}
#dots-banner-hold {
	width:100%;
	min-width:1920px;
	display:block;
	position:absolute;
	bottom:-1.5rem;
	left:0;
}
input:required:invalid {
  border: 2px solid #e63946;   /* red border */
  background-color: #ffecec;   /* light red background */
}
label, input[type=text], select, textarea, input[type=url], input[type=email] {
	font-size: clamp(1rem, 1vw, 1.5rem) !important;
	display:block;
	width:100%;
	font-family: "basic-sans", sans-serif;
	font-style: normal;
	font-weight:300;	
	border-radius:5px;
}
input[type=date], input[type=time] {
	font-size: clamp(1rem, 1vw, 1.5rem);
	display:inline-block;	
	border-radius:5px;
	font-family: "basic-sans", sans-serif;
	font-style: normal;
	font-weight:300;		
}
option, optgroup {
	font-family: "basic-sans", sans-serif;
	font-style: normal;
	font-weight:300;	
}
select, textarea, input[type=date], input[type=time] {
	margin-bottom:1.5rem;
}
input[type=text], input[type=url], input[type=email] {
	margin-bottom:1.5rem;
}
textarea {
	padding:.5rem;
	border:1px solid #2a3783;
}
input[type=text], select, input[type=date], input[type=time], input[type=url], input[type=email] {
	padding:.5rem;
	border:1px solid #ccc;
}
input[type=file] {
	margin:1rem 0;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #4a90e2;
  box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.2);
}
label {
	font-weight:900;
	margin-bottom:.5rem;
	padding:0;
}
.checkbox-label:hover {
	cursor:pointer;
}
input[type="checkbox"] {
	height:1rem;
	width:1rem;
	cursor:pointer;
}
textarea {
	resize: none;
	height:15rem;
}
.submit-button {
	display:block;
	text-align:center;
	padding:1rem;	
	background-color:#cc2936;
	color:#fff;
	font-weight:900;
	font-size: clamp(1.15rem, 1.15vw, 1.25rem);
	width:100%;
	transition:.5s;
	margin-bottom:0;
}
.submit-button:hover {
	background-color:#a2202b;
	transition:.5s;	
}
/*TEXTAREA EDITOR STYLING*/
.toolbar { 
	display:flex; 
	gap:1rem; 
	flex-wrap:wrap; 
	width:50%;
}
.toolbar button { 
	padding:.5rem 1rem;
	flex:1;
	color:#2a3783;
	border-radius:5px;
	border:1px solid #2a3783;
	background-color:white;
	transition:.5s;	
}
.toolbar button:hover { 
	background-color:#2a3783;
	color:#fff;
	transition:.5s;
}
.editor {
    min-height:10rem;
   	padding: .5rem;
    border: 1px solid #c9ccd1;
    border-radius:5px;
    white-space: pre-wrap;
    outline: none;
	font-family: "basic-sans", sans-serif;
	font-style: normal;
	font-weight:300;	
	font-size: clamp(1rem, 1vw, 1.5rem);
  }
.editor:empty:before {
    content: attr(data-placeholder);
    color: #9aa0a6;
  }
.hidden-field { 
	display:none; 
}
.field { 
	margin: 1rem 0; 
}
.field label { 
	display:block; 
	font-weight:600; 
	margin-bottom:.35rem; 
}
/*BULLET LIST EDITOR STYLING*/
.list-block { 
	margin: 1rem 0; 
}
.list-block label { 
	display:block; 
	font-weight:600; 
	margin-bottom:.35rem; 
}
.bullet-editor {
    min-height:10rem;
    padding: .5rem;
    border: 1px solid #c9ccd1;
    border-radius: 5px;
	font-family: "basic-sans", sans-serif;
	font-style: normal;
	font-weight:300;	
	font-size: clamp(1rem, 1vw, 1.5rem);
    outline: none;
    cursor: text;
}
/* Each logical line is a div.li with a bullet */
.bullet-editor .li {
    position: relative;
    padding-left: 1.25em;
    min-height: 1.2em;
}
.bullet-editor .li::before {
    content: "•";
    position: absolute;
    left: 0;
}
/* Placeholder when empty */
.bullet-editor:empty::before {
    content: attr(data-placeholder);
    color: #9aa0a6;
}
.hidden-field { 
	display:none; 
}

#event-form-hold {
	margin:0;
	width:100%;
	background-color:white;
	border:1px solid #ddd;
	padding:2rem;
}
#event-form-hold h1 {
	font-family: eb-garamond, serif;
	font-weight: 700;
	font-style: normal;	
	text-align:center;
	margin-bottom:2rem;
	font-size: clamp(2rem, 2vw, 2.5rem);
	display:block;
	width:100%;
	padding-bottom:1rem;
	border-bottom:2px dotted #70cde2;
}
#event-form-hold h2 {
	font-size: clamp(1.5rem, 1.5vw, 1.5rem);
}
#event-form-hold h3 {
	font-size: clamp(1rem, 1vw, 1.5rem);
	text-transform:uppercase;
}
.registered-style {
	border-bottom:2px solid #e5e7eb;
	padding-bottom:2rem;
	margin-bottom:2rem;
}
#event-form-hold fieldset {
	padding:1rem 1rem 0 1rem;
	border:1px solid #70cde2;
	margin-bottom:1rem;
}
.small-label {
	margin-bottom:2rem;
}
#doc-flex-hold {
	display:flex;
	column-gap:1rem;
}
.doc-flex-one, .doc-flex-two {
	flex:1;
}
/* 1) Neutralize ANY invalid styling until the form has the .submitted class */
form:not(.submitted) input:invalid,
form:not(.submitted) select:invalid,
form:not(.submitted) textarea:invalid {
  border: 1px solid #ccc !important;
  background: #fff !important;
  box-shadow: none !important;   /* kills Chrome/Safari red glow */
  outline: none;                  /* avoids FF outlines */
}

/* 2) Your normal base look */
input:required,
select:required,
textarea:required {
  border: 1px solid #ccc;
}

/* 3) Only after a submit attempt, show errors */
form.submitted input:invalid,
form.submitted select:invalid,
form.submitted textarea:invalid {
  border: 2px solid #e63946;
  background-color: #ffecec;
}

.flex-field-hold {
	display:flex;
	width:100%;
	column-gap:1rem;
}
.flex-field-hold div {
	flex:1;
}
.flex-field-two {
	flex:2 !important;
}
.agreement-policy {
	display:block;
	width:100%;
	padding:1rem;
	font-size: clamp(.75rem, .75vw, .75rem) !important;
	font-weight:300;
	background-color:#eaf8fb;
	margin-bottom:1rem;
}
.agreement-policy p {
	margin-bottom:1rem;
}

/*Specific Styling for Registration Page*/

		/* Submit button loading state */
		.submit-button.loading {
			pointer-events: none;
			opacity: 0.7;
			position: relative;
		}

		/* Spinner animation */
		.submit-button.loading::after {
			content: "";
			position: absolute;
			right: -30px;
			top: 50%;
			width: 18px;
			height: 18px;
			border: 3px solid #fff;
			border-top-color: transparent;
			border-radius: 50%;
			animation: spin 0.6s linear infinite;
			transform: translateY(-50%);
		}

		@keyframes spin {
			to { transform: rotate(360deg); }
		}

      /* Base look */
      #event-form-hold form#eventForm input,
      #event-form-hold form#eventForm select,
      #event-form-hold form#eventForm textarea {
        border: 1px solid #ccc;
        outline: none;
        box-shadow: none;
      }

      /* Explicit invalid state (JS-controlled) */
      #event-form-hold form#eventForm.submitted .is-invalid,
      #event-form-hold form#eventForm .is-invalid {
        border: 1px solid #e63946 !important;
        background-color: #ffecec !important;
        box-shadow: none !important;
        outline: none !important;
      }

      /* Checkbox/radio label framing (JS toggles .label-invalid) */
      #event-form-hold form#eventForm .label-invalid {
        outline: 1px solid #e63946 !important;
        background: #fff5f5;
      }

      .field-hint {
        display: none;
        color: #b00020;
        font-size: 0.9rem;
        margin-top: 4px;
      }
      .is-invalid + .field-hint { display:block; }

      .alert {
        margin: 16px 0;
        padding: 12px 14px;
        border-radius: 6px;
      }
      .alert-error {
        background: #fdecea;
        color: #b32121;
        border: 1px solid #facdcd;
      }
      /* Info banner for Owes */
      .alert-info {
        background: #e8f4ff;
        color: #084b83;
        border: 1px solid #cde6ff;
      }
      .alert-info small code { background:#eef6ff;padding:0 4px;border-radius:3px; }
      /* Optional spacing for membership switch */
      .membership-switch { display:inline-block; margin: 8px 0; }


/*Specific Styling for Confirmation Page*/
    .wrap { max-width: 900px; margin: 32px auto; padding: 24px; }
    .card { border: 1px solid #e5e7eb; border-radius: 12px; padding: 20px 22px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,0.04); margin-bottom: 16px; }
    .head h1 { margin: 0 0 8px; font-size: 1.6rem; }
    .muted { color: #6b7280; }
    .grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); margin-top: 16px; }
    .row { margin: 6px 0; }
    .label { font-size: .86rem; color: #6b7280; }
    .val { font-weight: 600; }
    .actions { margin-top: 16px; display:flex; gap: 10px; padding-bottom:2rem; margin-bottom:2rem; border-bottom:2px solid #e5e7eb;}
    .btn { margin-bottom:0; display:inline-block; padding:1rem; text-decoration:none; background-color:#cc2936; border:1px solid #cc2936; color:#fff; cursor:pointer; }
    .btn-outline { background:#fff; color:#cc2936; border:1px solid #cc2936; }
    .hr { height:1px; background:#e5e7eb; margin: 18px 0; }
    table.summary { width:100%; border-collapse: collapse; margin-top: 10px; }
    table.summary th, table.summary td { text-align:left; padding: 6px 0; border-bottom: 1px dashed #e5e7eb; }
    .code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; }
    .policy h3 { margin: 0 0 8px; }
	  
	.confirmation-details {
		width:100%;
		line-height:1.35;
		font-size: clamp(1rem, 1vw, 1.5rem);
		border-bottom:2px solid #e5e7eb;
		margin-bottom:2rem;		
	 }
	  .confirmation-details tr {
		  border-bottom: 2px dotted #e5e7eb;
	  }
	  .confirmation-details tr:last-child {
		  border-bottom:none;
	  }	  
	  .confirmation-details td {
		  padding:1rem 1rem 1rem 0;
	  }
	  .confirmation-details tr > td:first-child, .confirmation-details tr > td:nth-child(3) {
		  font-weight:900;
		  width:10%;
	  }
	.confirmation-details tr > td:nth-child(2), .confirmation-details tr > td:nth-child(4) {
		  width:40%;	
	}
	  .confirmation-details tr:last-child > td {
		  padding-bottom:2rem;
	  }	  
	  .paragraph-spaces p {
		  margin-bottom:1rem;
	  }
	  .paragraph-spaces p:last-child {
		  margin-bottom:0;
	  }
	  .confirm-spacer {
		  display:block;
		  width:100%;
		  border-bottom:2px solid #e5e7eb;
		  padding-top:1rem;
		  margin-bottom:2rem;
	  }
	  .due-spacer {
		  display:block;
		  width:100%;
		  border-bottom: 2px dotted #e5e7eb;
		  padding-top:1rem;
		  margin-bottom:2rem;
	  }
	  .confirm-header {
		  font-size: clamp(1.75rem, 1.75vw, 1.75rem) !important;
		  color:#70cde2;
	  }
	  .owes-box {
		  padding:1rem;
		  margin-bottom:1rem;
		  border: 2px solid #e5e7eb;
	  }

@media only screen and (max-width: 960px) {
	.poof {
		display:none;
	}
	#event-form-hold {
		max-width:960px;
		min-width:1px;
		padding:1rem;
		margin-top:0;
	}
	header {
		width:100%;
		min-width:1px;
		padding:2rem 1rem;
		background-color:#2a3783;
		background-image:url("../_images/dots-bg.svg");
		background-size:cover;
		color:#fff;
	}	
	nav {
		width:100%;
		min-width:1px;
		margin-bottom:0;
	}	
	nav ul {
		max-width:960px;
		min-width:1px;
	}	
	#dots-banner-hold {
		display:none;
	}
	#doc-flex-hold {
		display:block;
	}
	.toolbar { 
		width:100%;
	}
	#cmit-logo {
		display:block;
		margin:1rem auto;
		width:75%;
		max-width:500px;
	}
/*Specific Styling for Registration Page*/
	.flex-field-hold {
		display:block;
	}
/*Specific Styling for Confirmation Page*/
	.actions {
		display:block;
	}
	.btn {
		width:100% !important;
		margin-bottom:1rem;
	}
	.confirmation-details th, tr, td, .confirmation-details tr > td:first-child, .confirmation-details tr > td:nth-child(3), .confirmation-details tr > td:nth-child(2), .confirmation-details tr > td:nth-child(4) {
		display:block;
		width:100%;
	}
	.confirmation-details tr > td:nth-child(2) {
	  border-bottom: 2px dotted #e5e7eb;
	}
	.confirmation-details tr > td:first-child, .confirmation-details tr > td:nth-child(3) {
		padding-bottom:0;
	}
	.confirm-header {
		font-size: clamp(1.5rem, 1.5vw, 1.5rem) !important;
		padding-bottom:1rem;
	}	
}