html {
	height: 100%; 
	background-color: #fff5ec;
}

body {
 font-family: sans-serif;
 line-height: 1.6;
 padding: 0;
 margin: 0;
 box-sizing: border-box;
}

main {
	width: 63%;
	margin: 20px auto;
	border: 1px solid orange;
	padding: 20px;
	border-radius: 20px;
}

img {
 max-width: 100%;
 height: auto;
 display: block;
 margin: 0 auto 20px;
 border-radius: 5px;
}

h1, h2 {
 text-align: center;
}

h1 {
  color: #ed7d1d;
  border-top: 2px solid #ed7d1d;
  border-bottom: 2px solid #ed7d1d;
  width: 64%;
  margin: 50px auto;
}

h2, h3, h4 {
  color: #162f6e;
}

h2 {
  font-size: 33px;
}
h2 + h3, h4 {
  text-align: center;
}
h3 {
  font-size: 24px;
}

h3:not(h3:first-of-type) {
	margin-top: 20px;
}

h4 {
  font-size: 20px;
  font-weight: normal;
  margin-bottom: 38px !important;
  margin: 10px auto !important;
}

h4 span {font-size:16px;}

p:not(details p, footer p)
 color: white;
 margin-bottom: 20px;
 background: #f07b1c;
 padding: 20px;
 text-shadow: 1px -1px 0 #083784, 1px -1px 0 #083784, -1px 1px 0 #083784, 1px 1px 0 #083784;
 font-weight: bold;
 font-size: 22px;
}

p + h3, ol + h3, ul + h3 {
  margin-top: 35px !important;
}


label {
 display: block;
 margin-bottom: 5px;
 font-weight: bold;
 color: #333;
}

label + label:last-of-type {
	margin-bottom:32px;
}

input[type="text"],
input[type="number"], 
input[type="email"],
input[type="password"],
input[type="tel"], select, textarea {
 width: 100%;
 padding: 10px;
 margin-bottom: 15px;
 border: 1px solid #ccc;
 border-radius: 16px;
 box-sizing: border-box;
}

input[type="number"] {
	max-width: 96%;
}

form div {
	margin-bottom: 15px;
}

.button-link, button, .moshikomi {
 display: inline-block;
 padding: 12px;
 background-color: #5cb85c;
 color: white;
 border: none;
 border-radius: 102px;
 font-size: 22px;
 cursor: pointer;
 transition: background-color 0.3s ease;
}
button:hover {
 background-color: #4cae4c;
}

.button-link { 
 background: #f0ad4e; 
	color: white;
	text-decoration: none;
}

.confirm {width: 145px;height: 145px;margin: 0 auto;display: block;}

.moshikomi {
	box-sizing: border-box;
	line-height: 128px;
	text-align: center;
	display: block;
	text-decoration: none;
	margin-top: 25px;
}

.container {
	width: 100%;
	margin: 0 auto 20px;
	padding: 0;
	border-radius: 8px;
	box-sizing: border-box;
}

.banner {
	background:url(/images/yoko.jpg) no-repeat center top;
	width:100%;
	height:30vw;
	margin: 0 auto;
        background-size:contain !important;
}

.event-info {
 margin: 20px auto;
 padding: 0;
 font-family: sans-serif;
 line-height: 1.8;
 color: white;
	padding: 20px;
	width: fit-content;
}

.event-info td {
 font-weight: bold;
 margin: 0 10px 10px 0;
	vertical-align:top;
 color: #3e3a39;
}

.event-info td:first-of-type {
	white-space: nowrap;
	padding-right: 92px;
	text-align: left;
	color: #162f6e;
}

table.confirmtable {
	margin-bottom: 20px;
	width: 100%;
}

table.confirmtable th, table.confirmtable td {
	background: white;
	padding: 5px;
}

table.confirmtable th {
	text-align: left;
	padding-right: 10px;
	border-radius: 10px 0 0 10px;
	width: 30%;
}

details {
  margin: 0 auto 10px;
  width: 65%;
}

details[open] {padding-bottom: 20px;}

summary {
  list-style: disclosure-open;
  padding: 3px 10px;
  cursor: pointer;
  text-indent: 10px;
  color: #ec8432;
  font-weight: bold;
  width: 69%;
  border-bottom: 1px solid #ec8432;
  font-size: 23px;
  margin: 0 auto;
}

#paid_total_display {
  float: right;
  width: 80%;
  height: 38px;
  border-radius: 0 10px 10px 0;
}
#member_count {
  width: 15%;
}

.login p {
	color: blue;
	text-shadow: none;
	text-align: right;
}

.container.login {
	width: 35%;
}

.error {
	color: red !important;
	background: white;
	border: 1px solid red;
	text-align: center !important;
}

.success {color:green;}

.hidden {
    display: none;
  }

.bango {
  margin-bottom: 0;
}
.bango + .bango {
  margin-top: 8px;
}

  .disabled-link {
    pointer-events: none;
    opacity: 0.5;
  }

.detailscontainer {
	width: 82%;
	margin: 0 auto;
}

#confirmation-area {
	text-align: right;
	width: 50%;
	margin: 0 auto;
       white-space: nowrap;
}

#confirmation-area input {
  margin-right: 10px !important;
}

#duration_minutes, #duration_seconds {
	width: 47%;
}

.profile {
	width: 68%;
	padding: 25px;
}

.profile form + p {
	display: block;
	text-align: center;
	margin-left: 20% !important;
	margin-top: 35px;
}

.red {color:red;}

.marker {background:#d2cbcb;}

.moshikomi + a {
	display: block;
	width: 50%;
	margin: 30px auto;
	text-align: right;
	color: #c3181f;
}

.thanks {
	text-align: center;
}

footer {
   text-align: center;
   margin-top: 50px;
}

footer div {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.1rem 1rem;
	margin: 1rem auto;
	width: auto; /* let it size naturally */
	max-width: 51%; /* optionally cap at full width */
}

footer div img {
	flex: 0 0 auto;
  height: auto;
  width: auto;
  max-width: none;      /* Important: don't cap the size */
  max-height: none;
  object-fit: contain;
}

.challengers{
 background-color: #cfeacc;
}

.challengers h1 {
 color: #ed4e1d;
 width: 100%;
}

@media (min-width: 1100px) {
 details *:not(summary, span, h3, h4, h5, ul, ol, li, u, strong, a) {
  margin-left: 125px !important;
 }

 details *:not(summary, a, strong, u) {
  margin: 10px 50px;
}

 h4 {
  width: 70%;
 }

 footer br {
  display: none;
 }
}

@media (max-width: 1100px) {
  .container {
    width: 100%;
  }

  .2banner {
   height: 64vw;
  }

  footer div {
  max-width: fit-content;
 }
}

@media (max-width: 720px) {
  html {
   background-color: #ec8432;
  }
       h1:not(.profile h1) {
  color: white;
  border-top: 2px solid white;
  border-bottom: 2px solid white;
  width: 90%;
  margin: 20px auto;
}

.event-info {
  background: white;
  border-radius: 10px;
  width: 90%;
}
.event-info td:first-of-type {
  padding-right: 10vw;
}
.event-info td {
  font-size: 3vw;
  padding-bottom: 1vw;
}
details {
  width: 90%;
  background: white;
  border-radius: 10px;
  padding-bottom: 0;
}
summary {
  list-style: none;
  border: none;
  text-align: center;
  padding: 1.1vw 0 0 0;
}
details:not(summary, a) {
  margin: inherit;
}
.detailscontainer {
  width: 94%;
}
p {
  margin-left: 5vw !important;
  width: 92%;
}
main {
	width: 88%;
}

.container:first-of-type:not(h2 + .container, .container.index) {
	background: white;
	padding: 3vw;
}

#confirmation-area {
	text-align: center;
	width: 90%;
	margin: 0 auto;
	white-space: nowrap;
}

	label {
	 color: white;
	 text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000;
	}
	
	.container {width:100%;padding: 0;background: transparent;box-shadow: none;}
	
        .banner {
	 background:url(/images/tate.jpg) no-repeat center top;
	 height:105vw;
	 margin: 0 auto;
	}

       .container.login {
	width: 98%;
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%,-50%);
}
	
	p { 
	 padding: 0; 
		font-size: 14px;
		display: block;
	}

        p:not(details p, footer p) {
	 margin-left: 0 !important;
        }
	
	table.confirmtable {
		background: wheat;
		padding: 10px;
		border-radius: 20px;
	}

       #paid_total_display, #mics {
	 width: 75%;
        }

     input[type="number"] {width:95%;}

.profile {
	width: 98%;
}

.moshikomi + a {
	width: 100%;
	text-align: center;
	color: white;
}

.login h1 {
  color: #ed7d1d;
}

#duration_minutes, #duration_seconds {
 width: 40%;
}

#image_preview_container + small {
	display: block;
}

footer {
  background: white;
  padding-bottom: 0.5rem;
}
footer div {
  max-width: 79%;
}

footer p {
  margin: 0 auto !important;
  display: block;
}
footer img {
  margin-bottom: 0;
}
}