:root {
--header-height: 6rem;
}

html {
font-size: 16px;
}

@media (max-width: 1023px) {
html {
font-size: 1.6vw;
}
}

.small-screen-only {
display: none;
}

body {
background-color: #eee;
}

header {
position: relative;
gap: 0.125rem 1rem;
border-top: solid 0.5rem #093;
}

header a#main-logo {
margin-left: 1.5rem;
}

header a#main-logo img {
height: 5rem;
width: 5rem;
margin: 0.5rem 0;
}

p#site-name {
margin: 1rem 0 0;
font-size: 1.2rem;
}

p#site-description {
margin: 0 0 1rem;
}

header nav {
position: absolute;
right: 1.5rem;
align-self: end;
}

header nav ul {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
max-width: calc(100vw - 42rem);
gap: 0rem 1.5rem;
}

header nav ul a {
color: #333;
padding: 0.4rem 0.25rem 0.2rem;
border-bottom: solid 0.2rem rgba(255, 255, 255, 0);
}

li.current-menu-item a {
border-bottom-color: #093;
}


header nav ul a:hover {
animation-name: bounce;
animation-duration: 1s;
animation-iteration-count: infinite;
animation-timing-function: ease-in-out;
}


body::before {
height: 3rem;
}


h1 {
font-size: 1.5rem;
}

.eye-catch-image {
width: calc(100% + 4rem);
max-height: 24rem;
margin: -2rem -2rem 1.5rem;
}

main p.eye-catch-caption {
top: calc(var(--header-height-offset) + 5rem);
font-size: 2rem;
}

main {
width: 95vw;
max-width: 1280px; 
padding: 2rem;
margin-top: 4rem;
border-radius: 1rem;
}

main a img:hover {
opacity: 0.75;
}

main section {
clear: both;
}

main figcaption {
padding: 0.25em;
font-size: 0.75rem;
opacity: 0;
transition: 0.2s ease-in-out 0.1s;
}

main figure:hover figcaption {
opacity: 1;
transition: 0.2s ease-in-out 0.1s;
}

main table {

}

main th, main td {
padding: 0.75rem;
}

main .left {
max-width: 50%;
float: left;
margin: 0 1.5rem 1.5rem 0;
}


main .right {
max-width: 50%;
float: right;
margin: 0 0 1.5rem 1.5rem;
}

.index main {
display: grid;
grid-template-columns: 60% 1fr;
gap: 1rem;
}

.index main h1 {

}

.index main .eye-catch-image {
margin-bottom: 0;
} 

.index main section {
margin-top: 0;
}

.index main .information {
grid-column: 1 / 2;
}

.index main .latest-concert-info {
grid-column: 2 / 3;
border-top: none;
padding-top: 0;
}

.index main .information h2,
.index main .latest-concert-info h2 {
margin-top: 0.75rem;
}

.index main .eye-catch-image, 
.index main .bottom {
grid-column: 1 / 3;
}

main .member-list {
background: #666;
margin-top: 1rem;
}

main .member-list table {
display: flex;
gap: 0.5rem;
}

main .member-list table tbody {

}

main .map {
width: 40%;
}

main .ics-calendar .ics-calendar-month-grid {
line-height: 1.5rem;
margin: 0.5rem 0;
}

main .ics-calendar .ics-calendar-month-grid th {
background: #777;
color: #fff;
}

main .ics-calendar .ics-calendar-month-grid td,
main .ics-calendar .ics-calendar-month-grid th {
border-color: #ddd;
font-size: 0.75rem;
}

main .ics-calendar .ics-calendar-month-grid th[data-dow='0'] {
background: #e88;
}

main .ics-calendar .ics-calendar-month-grid th[data-dow='6'] {
background: #8ad;
}

main .ics-calendar .ics-calendar-month-grid .off {
background: #eee;
}

main .ics-calendar .ics-calendar-month-grid .day {
background: transparent;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 1.25rem;
font-weight: bold;
color: #666;
padding: 0.5rem 0 0.25rem 0.5rem;
}

main .ics-calendar .ics-calendar-month-grid td[data-dow='0'] .day {
color: #f66;
}

main .ics-calendar .ics-calendar-month-grid td[data-dow='6'] .day {
color: #66f;
}

main .ics-calendar .ics-calendar-month-grid .today .day * {
color: #333;
}

.report-list {
display: grid;
grid-template-columns: 24% 24% 24% 24%;
gap: 4%;
}

.report-list > section {

}


main.concert-info,
article.latest-concert-info > section {
display: grid;
grid-template-columns: 25% 1fr;
gap: 2rem;
}

.concert-info h2,
.latest-concert-info > section h2 {
grid-column: 1 / 3;
}

.archive h1 {

}

article.archive-entry {
display: grid;
grid-template-columns: 10% 1fr;
gap: 1rem;
}

.archive-entry .eye-catch-image {
grid-column: 1 / 2;
}

.archive-entry section {
grid-column: 2 / 3;
}


.archive-entry .meta {
grid-column: 1 / 3;
}

.concert-info .eye-catch-image,
.other-info .eye-catch-image,
.archive-entry .eye-catch-image {
width: 100%;
max-height: none;
margin: 0 auto auto;
align-self: start;
}

main .meta {
height: 1.5rem;
}

main .modified-time {
text-align: end;
}

main form {
width: 50%;
min-width: 50vw;
margin: 0 auto 1rem;
}


footer {
display: flex;
justify-content: space-between;
align-content: center;
height: 6rem;
}

footer address {
height: 5rem;
margin: 0 1.5rem;
}

footer address::before {
content: "";
background-image: url(../images/cws-logo_white.svg);
background-size: 4rem;
display: block;
opacity: 0.5;
height: 4rem;
width: 4rem;
margin-right: 1rem;
}

footer address ul {
height: 1.5rem;
}

footer address ul li {
height: auto;
margin-right: 1rem;
font-size: 0.9rem;
line-height: 1.5rem;
}

footer address ul li a::after {
content: attr(title);
line-height: 1.5rem;
}

footer address ul li img {
height: 1.5rem;
width: 1.5rem;
margin-right: 0.5rem;
vertical-align: -0.45rem;
}

footer p#copyright {
max-width: calc(50vw - 1rem);
margin: auto 1.5rem auto;
text-align: right;
font-size: 0.75rem;
}