* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
  	font-size: 62.5%;
}

body {
	font-size: 1.6rem;
	font-family: 'Noto Sans JP', "Helvetica Neue", Arial, sans-serif;
	background-color: #f0f2f5; 
	color: #333;
	line-height: 1.6;
}

.wrapper {
	max-width: 1000px;
	margin: 0 auto;
	background-color: #ffffff;
	box-shadow: 0 0 20px rgba(13, 71, 161, 0.1); 
	min-height: 100vh;
	border-top: 10px solid #574b34; 
}


.header-section {
	padding: 20px 4% 20px 0;
	border-bottom: 1px solid #e0e0e0;
	display: flex;
	align-items: center;
	gap: 20px;
}


.badge {
	flex-shrink: 0;
	width: 150px;
	height: 150px;
	background: linear-gradient( 145deg, #c89b55 0%, #b98945 45%, #a87432 100%) ; 
	color: #fff;
	border-radius: 50%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 3.6rem;
	line-height: 1.2;
	letter-spacing: 0.1em;
	padding-left: 0.1em;
	box-shadow: 0 4px 10px rgba(13, 71, 161, 0.4); 
	transform: rotate(-10deg) translateX(4px);
}


.header-text {
	font-size: 2.8rem;
	font-weight: 900;
	text-align: center;
	color: #333; 
}


.main-content {
	padding: 60px 5%;
	text-align: center;
}

.content-body {
    max-width: 800px;
    margin: 0 auto 40px;
    width: 100%;
}

.content-body iframe,
.content-body video {
    width: 100%;
    max-width: 100%;
	height: auto;
    aspect-ratio: 16 / 9;
    border: none;
    vertical-align: bottom;
	user-select: none;
}

.content-body audio {
    width: 100%;
    max-width: 100%;
    height: 54px; 
    margin-bottom: 20px;
	user-select: none;
}

.content-body img {
    max-width: 100%;
    height: auto;
	user-select: none;
}

.content-body a {
	font-size: 1.6rem;
    color: #0d47a1;
    text-decoration: none;
	user-select: none;
}

.content-body a:hover {
    text-decoration: underline;
}


.cta-section {
	padding: 0 20px 80px; 
	text-align: center;
}


.cta-button {
	display: inline-block;
	width: 100%;
	max-width: 640px; 
	padding: 25px 10px;
	font-size: 2.4rem;
	font-weight: 700;
	color: #fff;
	text-decoration: none;
	background: linear-gradient(180deg, #039741 0%, #04632a 100%);
	border-radius: 10px;
	border: 1px solid #005005; 
	box-shadow: 0 6px 0 #005005, 0 15px 20px rgba(0,200,83,0.3); 
	transition: transform 0.1s, box-shadow 0.1s, margin-top 0.1s;
	position: relative;
	line-height: 1.3;
	user-select: none;
}

.cta-button:hover {
	transform: translateY(4px); 
	box-shadow: 0 2px 0 #005005, 0 5px 10px rgba(0,0,0,0.2);
}

.cta-button:hover {
	color: #fff;
}

.cta-sub {
	display: block;
	font-size: 1.6rem;
	margin-bottom: 8px;
	font-weight: 700;
	text-shadow: 0 1px 2px rgba(0,0,0,0.2);
}

.arrow{
  position:absolute;
  right:20px;
  top:50%;
  transform:translateY(-50%);
  line-height:0; /* 余白防止 */
}
.arrow svg{ display:block; }


@media (max-width: 768px) {
	.wrapper {
		width: 100%;
		max-width: 430px;
		margin: auto;
		border-top: none; 
	}

	.header-section {
		flex-direction: column;
		text-align: center;
		padding: 30px 20px;
		gap: 20px;
	}

	.header-text {
		text-align: center;
		font-size: 1.6rem;
	}

	.badge {
		width: 100px;
		height: 100px;
		font-size: 2rem;
		transform: rotate(-10deg);
	}

	.content-body a {
		margin-top: 1.5em;
		font-size: 1.2rem;
		text-decoration: underline;
	}

	.cta-button {
		font-size: 2rem;
		padding: 20px 10px;
		max-width: 100%; 
	}
	
	.cta-sub {
		font-size: 1.4rem;
	}
}