/* Ensure images are responsive */
img {
    max-width: 100%;
    height: auto;
}

/* Responsive table */
table {
    width: 100%;
    table-layout: auto;
}

.event .links {
	text-align: right;
}

.event .links > a {
	background-color: #AFDFE4;
}
.event .links > a:hover {
	background-color: #3DAAE4;
}
.event .main_image {
	display: flex;
	position: relative;
}
.event .main_image p{
	position: absolute;/*重ねたい子要素にabsolute*/
	top:50%;
	left: 50%;
    -ms-transform: translate(-50%,-50%);/*ベンダープレフィックス*/
	-webkit-transform: translate(-50%,-50%);/*ベンダープレフィックス*/
	transform: translate(-50%,-50%);/*センター寄せの修正*/
	color: #fff;
	font-size: 1.8rem;
	text-align: center;
	white-space: nowrap;
}
.event .main_image > div {
	width: calc( 100% / 2 );
	margin: 0;
	padding: 0;
}
.event h1 {
    text-align: center;
    font-size: 40px;
    line-height: 1.1;
}

.event .flex {
	display: flex;
	align-items: center;
}

.event .flex > div {
	width: calc( ( 100% - 20px ) / 3 );
	margin-right: 10px;
}

.event .flex > div:nth-child( 3n ) {
    margin-right: 0;
}

.event .intro {
	font-size: 40px;
	color:#00AEEF;
    line-height: 1.2;
}

@media (max-width: 1100px) {
	.event .intro {
		font-size: 30px;
    	line-height: 1;
	}
}

@media (max-width: 1024px) {
	.event .intro {
		font-size: 28px;
    	line-height: 1;
	}
	.event .main_image p{
		font-size: 1.2rem;
        white-space: nowrap;
	}
}

/* Adjust font size and padding for smaller screens */
@media (max-width: 768px) {
    body {
        font-size: 14px;
    }

    .event div {
        padding: 10px;
    }
    .event h1 {
        font-size: 28px;
    }
	.event .flex > div {
		width: calc( ( 100% - 20px ) / 2 );
		margin-right: 10px;
	}
	.event .flex > div:nth-child( 3n ) {
		margin-right: 0;
	}
	.event .flex div {
		padding: 0;
	}
	.event .flex > div {
		width: 100%;
		margin-right: 0;
		padding: 0;
	}
	.event .main_image p{
		font-size: 0.9rem;
        white-space: nowrap;
	}
	.event .intro {
		font-size: 28px;
    	line-height: 1;
	}
    td {
        display: block;
        width: 100%;
        text-align: center;
    }

    td img {
        width: 80%;
		margin-bottom: 2em;
    }

    .event a {
        font-size: 140%;
    }
    .spnone {
        display: none;
    }
}

@media (max-width: 480px) {
    .event h1 {
        font-size: 24px;
    }

	.event .flex {
		display: flex;
		flex-direction: column;
	}
	.event .flex > div {
		width: 100%;
		margin-right: 0;
		padding: 0;
	}
	.event .flex div {
		padding: 0 0 10px 0;
	}
	.event .main_image p{
		font-size: 0.7rem;
        white-space: normal;
        line-height: 1.4;
	}
	.event .intro {
		font-size: 30px;
    	line-height: 1.1;
		text-align: center;
	}
    td {
        font-size: 12px;
    }

    td img {
        width: 100%;
		margin-bottom: 2em;
    }
    .spnone {
        display: none;
    }
}