@charset "utf-8";

@font-face {
    font-family: 'TrumpetCreeper';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_JAMO@1.0/GrandifloraOne-Regular.woff2') format('woff2');
    font-weight: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Thin.woff2') format('woff2');
    font-weight: 100;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraLight.woff2') format('woff2');
    font-weight: 200;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Light.woff2') format('woff2');
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2') format('woff2');
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2') format('woff2');
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Black.woff2') format('woff2');
    font-weight: 900;
    font-display: swap;
}

html {overflow-y:scroll}
body {margin:0;padding:0;font-size:0.75em;font-family: 'Pretendard';/*background:#fbdcde !important*/overflow-x:hidden}


.logo { font-family: 'TrumpetCreeper';letter-spacing:-3px;font-weight:bold}



/* 그누보드 */
.msg_sound_only, .sound_only {display:inline-block !important;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;font-size:0;line-height:0;border:0 !important;overflow:hidden !important}
.btn_admin { display: none; }

/* 캡챠 자동등록(입력)방지 기본 -pc */
#captcha {display:inline-block;position:relative;max-width:none;background:none;text-align:left;}
#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;}
#captcha #captcha_img {height:40px;border:1px solid #ccc;vertical-align:top;padding:0;margin:0;border-radius:3px}
#captcha #captcha_mp3 {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha2.png') no-repeat;text-indent:-999px;border-radius:3px}
#captcha #captcha_reload {margin:0;padding:0;width:40px;height:40px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha2.png') no-repeat  0 -40px;text-indent:-999px;border-radius:3px}
#captcha #captcha_key {margin:0 0 0 3px;padding:0 5px;width:90px;height:40px;border:1px solid #ccc;background:#fff;font-size:1.333em;font-weight:bold;text-align:center;border-radius:3px;vertical-align:top}
#captcha #captcha_info {display:block;margin:5px 0 0;font-size:80%;color:#ff0000;letter-spacing:-0.1em}
@media (max-width: 575px) {	#captcha_audio {display:none !important;} }

/* 커스텀 */
a { text-decoration: none; }
select { font-size: 14px; }

header {background:#fff !important}
#footer {background:#f7f7f7 !important}
.nav-link {font-size:17px;color:#000;letter-spacing:0px;padding-top:20px;font-weight:700}
.navbar-brand {width:20%}
.navbar-brand img {max-width:100%}
.dropdown-toggle::after {display:none}

.dropdown-menu {padding:35px 0}
.menufont {}

@media (min-width: 1200px) {
  .container {
    max-width: 1600px !important;
	width: 90% !important;
  }
}

#container_title  {position:relative;width:100%;background:url('../img/mainbg.jpg')no-repeat;background-size:cover;background-position:center center;}

.navbar-nav .nav-link:hover {color:#40b387 !important}
.navbar-nav .nav-link.active {color:#40b387 !important}
.navbar-nav .nav-link.show {color:#40b387 !important}

.container-fluid {padding:0px}
#main-visual {position:relative;width:100%;background:url('../img/mainbg.jpg')no-repeat;background-size:cover;background-position:center center;}
.main-visual-inner {height: 65vh;display: flex;align-items: center;justify-content: center;width:100%;margin:0 auto}
.main-visual-inner .main-visual-left {padding:0 30px;width:30%}
.main-visual-inner .main-visual-left li {list-style:none;padding:20px 0;overflow:hidden;}
.main-visual-inner .main-visual-left li:nth-child(1) img {max-width:1000px;float:left;width:100%}
.main-visual-inner .main-visual-left li:nth-child(2) img {max-width:800px;float:left;width:100%}
.main-visual-inner .main-visual-right {padding:0 30px;position:relative;overflow:hidden;width:70%}
.main-visual-inner .main-visual-right li {list-style:none;padding:0 0 20px 0;overflow:hidden;}
.main-visual-inner .mv-button {display:flex}
.main-visual-inner .box {margin-right:10px}


/* ———————————————————— */
/* 0) 원하는 높이로 잡아주세요 */
/* (예: 화면 높이의 60% 만큼) */
.new-visual-inner {
  display: flex;
  align-items: stretch; /* 좌우 동일 높이 */
  height: 60vh;         /* 필요에 따라 조정 */
}

/* ———————————————————— */
/* 1) 좌/우 30% / 70% 비율 */
.new-visual-left {
  flex: 0 0 50%;
  max-width: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.new-visual-right {
  flex: 0 0 50%;
  max-width: 50%;
  position: relative;  /* 절대위치 자식 기준 */
}

/* left 내부 처리 */
.new-visual-left li {
  list-style: none;
  line-height:1.4;
  letter-spacing:-1px;
  text-align:center;
}

.new-visual-left li.text00 {margin-bottom:25px}
.new-visual-left li.text00 img {max-width:300px}
.new-visual-left li.text01 {font-size:50px;margin-bottom:30px;}
.new-visual-left li.text02 {font-size:70px;color:#00283c;line-height:1.2}
.new-visual-left li.text03 {font-size:18px;display:block;margin-top:15px}
.new-visual-left li.text03 br {display:none}

.sub-visual-left li.text00 {margin-bottom:25px}
.sub-visual-left li.text00 img {max-width:300px}

.sub-visual-left li.text01 {font-size:24px;margin-bottom:10px;color:#fff}
.sub-visual-left li.text02 {font-size:40px;color:#00283c;}
.sub-visual-left li.text03 {font-size:18px;color:#000}

.sub-visual-left .text02 span {
  display: inline-block;
 color:#000;
  opacity: 0 !important;
  transition: opacity 0.5s ease-in-out !important;

}

.sub-visual-left .text02 span.visible {
  opacity: 1 !important;
}



.new-visual-left li img {
  width: 100%;
  height: auto;
  display: block;
  max-width:80%;
  margin:0 auto;
}

.new-visual-left .text02 span {
  display: inline-block;
 color:#000;
  opacity: 0 !important;
  transition: opacity 0.5s ease-in-out !important;
}

.new-visual-left .text02 span.visible {
  opacity: 1 !important;
}


/* —————————— CSS —————————— */
.new-visual-right {
  position: relative;
  overflow: visible !important;  /* light가 가려지지 않도록 */
}

.new-visual-right li {list-style:none;}

#main-visual {
  position: relative;

}

.new-visual-light {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  pointer-events: none;
  overflow: hidden;
}

.new-visual-light .circle {
  position: absolute;
  border-radius: 50%;
  background-color: rgba(255,255,255,0.3);
  opacity: 0;
  transform: translate(-50%, -50%) scale(0);
}

/* 각 light li 는 절대위치 + 숨김 상태로 시작 */
.new-visual-light li {
  position: absolute;
  list-style: none;
  opacity: 0;
  transform: translate(-50%, -50%) scale(0.5);
  will-change: opacity, transform, left, top;
  z-index: 2;
}

/* 1) keyvisual 중앙 고정 + 떠 있는 애니메이션 */
.new-visual-right .keyvisual {
  position: absolute;
  top: 60%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 600px;
  width: 100%;
  height: auto;
  z-index: 1;
  filter: drop-shadow(0 6px 15px rgba(0, 0, 0, 0.45));
  /* ★ 여기서 애니메이션을 반드시 다시 선언 ★ */
  animation: floating 3s ease-in-out infinite !important;
  will-change: transform, opacity;
}


/* 1) keyvisual 중앙 고정 + 떠 있는 애니메이션 */
.sub-visual-right .keyvisual {
  position: absolute;
  top: 80%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 300px;
  width: 100%;
  height: auto;
  z-index: 1;
  filter: drop-shadow(0 6px 15px rgba(0, 0, 0, 0.45));
  /* ★ 여기서 애니메이션을 반드시 다시 선언 ★ */
  animation: floating 3s ease-in-out infinite !important;
  will-change: transform, opacity;
}


/* 2) 떠 있는 애니메이션 정의 (반드시 .keyvisual 애니메이션 선언 이후에 위치) */
@keyframes floating {
  0%, 100% {
    transform: translate(-50%, -50%) translateY(0);
  }
  50% {
    transform: translate(-50%, -50%) translateY(-15px);
  }
}

#sub-visual {position:relative;width:100%;}
.sub-visual-inner {height: 35vh;display: flex;align-items: center;justify-content: center;width:100%;margin:0 auto}
.sub-visual-inner .sub-visual-left {padding:0 0px;width:70%}
.sub-visual-inner .sub-visual-left li {list-style:none;padding:0px 0;overflow:hidden;}
.sub-visual-inner .sub-visual-left li:nth-child(1) img {max-width:400px;float:left;width:100%}
.sub-visual-inner .sub-visual-left li:nth-child(2) img {max-width:400px;float:left;width:100%}
.sub-visual-inner .sub-visual-right {padding:0 0px;position:relative;width:30%}
.sub-visual-inner .sub-visual-right li {list-style:none;padding:0 0 0px 0;}

.sub-visual-inner .mv-button {display:flex}
.sub-visual-inner .box {margin-right:10px}


.mainMessage {max-width:100%;margin:100px auto}
.mainMessage .media-body {text-align:left !important}

.dropdown-item.active, .dropdown-item:active {background-color:transparent;color:#4b4b4b}
.mvbtn {
  --btn-color: rgb(61 48 49);
  --btn-bg: rgb(87 65 67);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background-color: var(--btn-bg);
  color: #fff;
  padding: 20px 55px 16px 55px;
  border-radius: 8px;
  border: 0;
  cursor: pointer;
  font-weight: 400;
  font-size: 1.1rem;
  border: 2px solid var(--btn-color);
  transition: 100ms ease;
  box-shadow: 5px 5px 0 0 var(--btn-color);
  margin-right:15px;
}

.mvbtn--secondary {
  --btn-color: #444;
  --btn-bg: #fafafa;
}

.mvbtn svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

.mvbtn:hover {
  box-shadow: 2px 2px 0 0 var(--btn-color);
}

.mvbtn:active {
  transition: 50ms ease;
  box-shadow:  0 0 0 0 var(--btn-color);
}

.mvbtn:focus-visible {
  outline: 0;
  --btn-color: #002cc8;
}

.mvbtn:focus-visible::after {
  position: absolute;
  left: 50%;
  top: calc(100% + 12px);
  transform: translateX(-50%);
  content: "\21E7";
  animation: float .5s ease-in-out infinite;
}

@keyframes float {
  0% {
    transform: translateX(-50%) translatey(0px);
  }
  50% {
    transform: translateX(-50%) translatey(-6px);
  }
  100% {
    transform: translateX(-50%) translatey(0px);
  }
}

#footer {padding-left:20px}
#footer .logo img {	}

#latest h4 a { color: #000; }
#latest h4 a:hover { text-decoration: none; }
#latest li a { color: #777; }
.pagination { margin-top: 0rem; margin-bottom: 0rem; }
.ck.ck-editor__editable { min-height: 200px !important; }

/*
.dropdown-item { font-size: 1rem; }
.title { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; width: 100%; }
*/

nav {
	position: relative;

}
nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
nav ul li {
 width:100%;
}
nav ul li a {
	display: block;
	padding:0px;
	color:#111;
	text-decoration: none;
	-webkit-transition: 0.2s linear;
	-moz-transition: 0.2s linear;
	-ms-transition: 0.2s linear;
	-o-transition: 0.2s linear;
	transition: 0.2s linear;
	font-size:30px;
}
nav ul li a:hover {

}
nav ul li a .fa {
	width: 16px;
	text-align: center;
	margin-right: 5px;
	float:right;
}
nav ul ul {

}
nav ul li ul li a {
	color:#fff;
	padding: 5px 20px;
	font-size:14px;
}
nav ul li ul li a:hover {

}

.birdcontainer {
	z-index: 1;
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

.bird {
	 background-image: url(../img/main-visual02.svg);
	 background-size: auto 100%;
	 width: 88px;
	 height: 125px;
	 will-change: background-position;
	 animation-name: fly-cycle;
	 animation-timing-function: steps(10);
	 animation-iteration-count: infinite;
}
 .bird--one {
	 animation-duration: 1s;
	 animation-delay: -0.5s;
}
 .bird--two {
	 animation-duration: 0.9s;
	 animation-delay: -0.75s;
}
 .bird--three {
	 animation-duration: 1.25s;
	 animation-delay: -0.25s;
}
 .bird--four {
	 animation-duration: 1.1s;
	 animation-delay: -0.5s;
}
 .bird-container {
	 position: absolute;
	 top: 40%;
	 left:10%;
	 transform: scale(0) translateX(0vw);
	 will-change: transform;
	animation-timing-function: linear;
	 animation-iteration-count: infinite;
}
 .bird-container--one {
	 animation-duration: 15s;
	 animation-delay: 0;
	  animation-name: fly-right-one;
}
 .bird-container--two {
	 animation-duration: 16s;
	 animation-delay: 1s;
	  animation-name: fly-right-two;
}
 .bird-container--three {
	 animation-duration: 17s;
	 animation-delay: 2s;
	  animation-name: fly-right-three;
}
 .bird-container--four {
	 animation-duration: 16s;
	 animation-delay: 10.25s;
	 
}
 @keyframes fly-cycle {
	 100% {
		 background-position: -900px 0;
	}
}

 @keyframes fly-right-one {
	 0% {
		 transform: scale(0.5) translateX(-10vw);
	}
	 10% {
		 transform: translateY(-10vh) translateX(10vw) scale(1);
	}
	 20% {
		 transform: translateY(-5vh) translateX(30vw) scale(1.2);
	}
	 30% {
		 transform: translateY(0vh) translateX(50vw) scale(1.5);
	}
	 40% {
		 transform: translateY(5vh) translateX(70vw) scale(1.8);
	}
	 50% {
		 transform: translateY(0vh) translateX(90vw) scale(1.5);
	}
	 60% {
		 transform: translateY(-5vh) translateX(110vw) scale(1);
	}
	 100% {
		 transform: translateY(-10vh) translateX(110vw) scale(0.5);
	}
}
 @keyframes fly-right-two {
		 0% {
		 transform: scale(0.5) translateX(-10vw);
	}
	 10% {
		 transform: translateY(15vh) translateX(10vw) scale(1);
	}
	 20% {
		 transform: translateY(10vh) translateX(30vw) scale(1);
	}
	 30% {
		 transform: translateY(0vh) translateX(50vw) scale(1.5);
	}
	 40% {
		 transform: translateY(-15vh) translateX(70vw) scale(1);
	}
	 50% {
		 transform: translateY(0vh) translateX(90vw) scale(0.5);
	}
	 60% {
		 transform: translateY(10vh) translateX(110vw) scale(1);
	}
	 100% {
		 transform: translateY(15vh) translateX(110vw) scale(0.5);
	}
}
 @keyframes fly-right-three {
	 0% {
		 transform: scale(0.5) translateX(-10vw);
	}
	 10% {
		 transform: translateY(15vh) translateX(10vw) scale(1);
	}
	 20% {
		 transform: translateY(10vh) translateX(30vw) scale(1.5);
	}
	 30% {
		 transform: translateY(0vh) translateX(50vw) scale(2);
	}
	 40% {
		 transform: translateY(-15vh) translateX(70vw) scale(2.5);
	}
	 50% {
		 transform: translateY(0vh) translateX(90vw) scale(1.5);
	}
	 60% {
		 transform: translateY(10vh) translateX(110vw) scale(1);
	}
	 100% {
		 transform: translateY(15vh) translateX(110vw) scale(0.5);
	}
}


/* main class name */
.gm-btn{
    background: none;
    border: none;
    padding: 15px 35px;
    font-size: 16px;
    line-height: 24px;
    max-width: 400px;
    transition: 0.3s;
    cursor: pointer;
    position: relative;
    outline: none;
}

.gb-cutter::before
{
    content: "";
    position: absolute;
    z-index: -1;
    transition: 0.5s;
}


/* cutter */

.gb-cutter{
    border: 5px solid #003545;
    border-radius: 10px;
    box-shadow: 5px 5px 0 #c7d5d9;
    font-size: 1.125rem;
    font-weight: 700;
    overflow: hidden;
    color: #003545;
}
.gb-cutter::before{
    top: 100%;
    left: 0;
    width: 150%;
    aspect-ratio: 1;
    background:#003545;
    transform: translate(50%,0%) rotateZ(-45deg);
}
.gb-cutter:hover::before{
    transform: translate(-20%,-60%) rotateZ(-45deg);
}
.gb-cutter:hover{
    box-shadow: 0 0 0;
    color: #eee;
}


/* quiz */
.gm-quiz{
    background: none;
    border: none;
    padding: 25px 55px;
    width: 100%;
    transition: 0.3s;
    cursor: pointer;
    position: relative;
    outline: none;
	margin:0 auto;
}
.gb-quiz{
    border: 2px solid #000;
    border-radius: 5px;
    box-shadow: 5px 5px 0 #000;
    font-size: 24px;
    font-weight: 700;
    overflow: hidden;
    color: #000;
	background-color:#fbdcde;
}
.gb-quiz::before{
    top: 100%;
    left: 0;
    width: 150%;
    aspect-ratio: 1;
    background:#000;
    transform: translate(50%,0%) rotateZ(-45deg);
}
.gb-quiz:hover::before{
    transform: translate(-20%,-60%) rotateZ(-45deg);
}


/* quiz-answer */
.gm-quiz-answer {
    background: none;
    border: none;
    padding: 25px 55px;
    width: 100%;
    transition: 0.3s;
    cursor: pointer;
    position: relative;
    outline: none;
	margin:0 auto;
}
.gb-quiz-answer {
    border: 2px solid #000;
    border-radius: 5px;
    box-shadow: 5px 5px 0 #000;
    font-size: 24px;
    font-weight: 700;
    overflow: hidden;
    color: #fff;
	background-color:#64b980;
}
.gb-quiz-answer ::before{
    top: 100%;
    left: 0;
    width: 150%;
    aspect-ratio: 1;
    background:#000;
    transform: translate(50%,0%) rotateZ(-45deg);
}
.gb-quiz-answer :hover::before{
    transform: translate(-20%,-60%) rotateZ(-45deg);
}
.gb-quiz-answer :hover{
    box-shadow: 0 0 0;
}


/* quiz-score*/
.gm-quiz-score {
    background: none;
    border: none;
    padding: 25px 55px;
    width: 100%;
    transition: 0.3s;
    cursor: pointer;
    position: relative;
    outline: none;
	margin:0 auto;
}
.gb-quiz-score {
    border: 2px solid #000;
    border-radius: 5px;
    box-shadow: 5px 5px 0 #000;
    font-size: 24px;
    font-weight: 700;
    overflow: hidden;
    color: #000;
	background-color:#f2df82;
}
.gb-quiz-score ::before{
    top: 100%;
    left: 0;
    width: 150%;
    aspect-ratio: 1;
    background:#000;
    transform: translate(50%,0%) rotateZ(-45deg);
}
.gb-quiz-score :hover::before{
    transform: translate(-20%,-60%) rotateZ(-45deg);
}
.gb-quiz-score :hover{
    box-shadow: 0 0 0;
}




#mediaPlayer { position:relative;background:url('../img/playerBG3.png')no-repeat center center #000; background-size:50%;padding-bottom:56.25%; height:0px; overflow:hidden;border-radius:50px; max-width:100%;-webkit-box-shadow: 11px 13px 21px 5px rgba(0,0,0,0.64); 
box-shadow: 11px 13px 21px 5px rgba(0,0,0,0.64);}
.normalPlayer { position:absolute; top:0px; left:0px; width:100%; height:100%; display:block; }
.cutPlayer { position:absolute; top:-50%; left:0px; width:100%; height:200%; display:block; }

#mainCenter {position:relative;background-color:#003545;display:block;padding:100px 0 150px 0}
#mainCenter .center-inner {display:flex;max-width:100%;margin:0px auto;align-items: center;justify-content: space-between;    flex-direction: column;}
#mainCenter .center-right {width:100%;padding:0 0px}
#mainCenter .center-left {width:100%;padding:0 0px}

#mainCenter .center-right p {color:#fff;font-size:1.1rem}
#mainCenter .center-right dl {color:#fff;font-size:1rem;display:flex;}
#mainCenter .center-right dt {display:inline-block;width:15%;float:left;letter-spacing:10px}
#mainCenter .center-right dd  {display:inline-block;width:85%;float:left}
#mainCenter .center-right dd br {display:none}
#mainCenter .center-right h2 {color:#fff;font-size:2rem;line-height:1;display:block;margin-bottom:20px}
#mainCenter .center-right h2 br {display:none}
#mainCenter .center-top {width:100%;text-align:center;padding:50px 0}
#mainCenter .center-top h2 {color:#fff;font-size:3rem;line-height:1;display:block;margin-bottom:35px;font-weight:700}
#mainCenter .center-top h2 br {display:none}
#mainCenter .center-top p {color:#fff;font-size:1rem}
#mainCenter .center-top h3 {color:#fff;font-size:2rem;line-height:1.3;display:block;margin-bottom:35px}



#mainBoard {position:relative;display:block;padding:200px 0 0 0;text-align:center;}
#mainBoard h2 {color:#000;font-size:3rem;line-height:1.5;font-weight:700}
#mainBoard h2 br {display:none}
#mainBoard p {color:#000;font-size:1.1rem;display:block;margin-top:15px;letter-spacing:-1px}


#mainCounter {
  width:100%;
  position:relative;
  display:block;
   padding:0rem;
   display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.wrapper::before{
  content:"";
 background-image: url('../img/counterbg.png');
 opacity:0.8;
  position:absolute;
  top:0;
  bottom:0;
  right:0;
  left:0;
  width:auto;
  height:auto;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  z-index:-3;
}



.wrapper {
 width: 100%;
  display: flex;
  justify-content: space-around;
  gap: 0px;
  margin:0 auto 0px auto;
  height:80vh;
}
.containers {
  width: 100%;
  height:80vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding:0;
  position: relative;
  font-size: 16px;

  border:1px solid #fbdcde;

}

span.flower01 {position:absolute;top:-10px;left:-10px}
span.flower01 img {max-width:80px}

span.flower02 {position:absolute;bottom:-70px;left:50px}
span.flower02 img {max-width:90px}

span.flower03 {position:absolute;top:50px;right:20px}
span.flower03 img {max-width:60px}


span.num {
  color: #fff;
  display: grid;
  place-items: center;
  font-weight: 600;
  font-size: 5em;
}

span.text {
  color: #fff;
  font-size: 1.25em;
  text-align: center;
  padding:0;
  line-height: 0;
}


.paper-container {
  width: 100%;
position:relative;
}

.paper-container .intro {
position:relative;
z-index:9900;
  display:flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
  border-radius: 15px;
  padding: 15%;
  min-height: 320px;
  line-height: 1.5em;
  -moz-transition: all 200ms;
  -o-transition: all 200ms;
  -webkit-transition: all 200ms;
  transition: all 200ms;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  min-height:700px;
  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 3px 0px #f8f7f0, 0 4px 1px rgba(0, 0, 0, 0.3), 0 6px 0px #f8f7f0, 0 7px 1px rgba(0, 0, 0, 0.3), 0 6px 5px rgba(0, 0, 0, 0.15), 0 0px 20px rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 3px 0px #f8f7f0, 0 4px 1px rgba(0, 0, 0, 0.3), 0 6px 0px #f8f7f0, 0 7px 1px rgba(0, 0, 0, 0.3), 0 6px 5px rgba(0, 0, 0, 0.15), 0 0px 20px rgba(0, 0, 0, 0.15);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 3px 0px #f8f7f0, 0 4px 1px rgba(0, 0, 0, 0.3), 0 6px 0px #f8f7f0, 0 7px 1px rgba(0, 0, 0, 0.3), 0 6px 5px rgba(0, 0, 0, 0.15), 0 0px 20px rgba(0, 0, 0, 0.15);
}


.paper-container .intro #btnStart {position:relative;z-index:9999}


.quiz-section .intro-title {
    line-height: 44px;
    color:#000;
    border-radius: 28px;
    font-size: 26px;
    letter-spacing: -0.65px;
    margin: 0 auto 24px;
	position:relative;
	z-index:9999;
}

.intro-bg {position:absolute;bottom:0px;right:0px;max-width:450px}
.intro-bg02 {position:absolute;top:30px;left:30px;max-width:100px}
.intro-bg03 {position:absolute;bottom:0px;left:0px;max-width:350px}
.intro-bg04 {position:absolute;top:30px;right:30px;max-width:150px}
.intro-bg05 {position:absolute;bottom:0px;left:0px;max-width:150px}
.intro-bg06 {position:absolute;top:20px;right:20px;max-width:80px}

.quiz-section .start-title {
    line-height: 24px;
    border-radius: 28px;
    font-size: 17px;
    letter-spacing: -1px;
    margin: 0 auto 24px;
    color:#222;
	position:relative;z-index:999;
}


.quiz-section .start-title span {
    line-height:1.2;
    font-size:80px;
    letter-spacing: -1px;
    margin: 0 auto 24px;
	display:block;
	margin-bottom:0px;
}


.quiz-section .start-title span.small {
    font-size:14px;
    letter-spacing: -1px;
	color:#686868;
	display:block;
}



.quiz-section .start-title span.logo {color:#40b387 !important}

.quiz-section .intro-title-large {
    line-height: 100px;
	color:#000;
    border-radius: 28px;
    font-size:85px;
    letter-spacing: -1px;
    margin: 0 auto 24px;
	position:relative;z-index:9999;
}


.quiz-section .join-num {padding:50px 0 0 0;font-size:21px;color:#686868;letter-spacing:-1px;position:relative;z-index:9999}
.gift {display:block;text-align:center}
.gift img {max-width:250px}

.paper-container .paper {
  display:flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
  border-radius: 15px;
  padding:15%;
  min-height: 650px;
  line-height: 1.5em;
  -moz-transition: all 200ms;
  -o-transition: all 200ms;
  -webkit-transition: all 200ms;
  transition: all 200ms;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 3px 0px #f8f7f0, 0 4px 1px rgba(0, 0, 0, 0.3), 0 6px 0px #f8f7f0, 0 7px 1px rgba(0, 0, 0, 0.3), 0 6px 5px rgba(0, 0, 0, 0.15), 0 0px 20px rgba(0, 0, 0, 0.15);
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 3px 0px #f8f7f0, 0 4px 1px rgba(0, 0, 0, 0.3), 0 6px 0px #f8f7f0, 0 7px 1px rgba(0, 0, 0, 0.3), 0 6px 5px rgba(0, 0, 0, 0.15), 0 0px 20px rgba(0, 0, 0, 0.15);
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.3), 0 3px 0px #f8f7f0, 0 4px 1px rgba(0, 0, 0, 0.3), 0 6px 0px #f8f7f0, 0 7px 1px rgba(0, 0, 0, 0.3), 0 6px 5px rgba(0, 0, 0, 0.15), 0 0px 20px rgba(0, 0, 0, 0.15);
}



.quiz-wrapper {position:relative;width:100%;}
.quiz-section {
	text-align: center;
    max-width: 900px;
   margin:150px auto;
	border-radius:3vh;
	}


.quiz-section .quiz-num {padding-top: 2px;
    line-height: 44px;
    width: 96px;
    border: 1px solid #252d32;
    border-radius: 28px;
    font-size: 26px;
    letter-spacing: -0.65px;
    margin: 0 auto 24px;}

.quiz-section .quiz-title {padding-top: 2px;
    line-height: 44px;
    border: 0px solid #252d32;
    border-radius: 28px;
    font-size: 26px;
    letter-spacing: -0.65px;
    margin: 0 auto 24px;font-weight:700}

.quiz-section .question {
	font-size:24px;
    line-height:1.5;
    letter-spacing: -1px;
    font-weight: 500;
    margin-bottom: 60px;
	display:flex;
	text-align:left;
	justify-content: space-between;
}
.quiz-section .question span.qnum {width:10%;font-size:45px}
.quiz-section .question p {width:85%}

.quiz-section .question span {font-size:24px;color:#555;line-height:1;letter-spacing:-1px}
.quiz-section .question .underline {
    display: inline-block;
    position: relative;
	z-index:10;
}
.quiz-section .question .underline::before {
    content: '';
    position: absolute;
    bottom: 0px;
    z-index: -1;
    width: 100%;
    height: 7px;
    left: 50%;
    transform: translateX(-49%);
    background-color: #f3e08c;
}


.hint-wrap {padding:15px;}
.hint-wrap h2 {text-align:center;padding-bottom:20px;font-size:24px;color:#666;padding-top:50px;margin-top:50px;border-top:1px dashed #666}


.quiz-section .btn-box {display:flex}
.quiz-section .btn-box .btn {    width: 48%;
    font-size: 50px;
    line-height: 100px;
    border-radius: 70px;
    background-color: #fff;
    margin: 0 auto;
    color: #222 !important;
	font-weight:bold;
}

.quiz-section .multiple-btn-box {display:flex;flex-wrap: wrap;    flex-direction: column;margin-top:50px;position:relative;z-index:999}
.quiz-section .multiple-btn-box .btn  {width: 100%;
    font-size: 30px;
    line-height: 50px;
    border-radius: 70px;
    background-color: #fff;
    color: #222 !important;
	font-weight:bold;
	text-align:left;
	margin:5px 0;
}

.quiz-section .multiple-btn-box button {margin:5px auto}

.quiz-section .input-box {display:flex;flex-wrap: wrap;}
.quiz-section .input-box input  {width: 100%;
    font-size: 30px;
    line-height: 50px;
    border-radius: 70px;
    background-color: #fff;
    color: #222 !important;
	font-weight:bold;
	border-top:0px;border-left:0px;border-right:0px;border-bottom:1px solid #000;
	text-align:left;
	border-radius:0px;
}

.quiz-section .input-box button {width:100%;background-color:#64b980;border:0px;height:50px;color:#fff;line-height:50px;border-radius:5px;margin-top:15px;font-size:20px;}


.score-section .score {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    font-weight: 500;
    font-size: 48px;
    background: url(../img/score-line.png) no-repeat 48% 100%;
    background-size: 441px 89px;
    padding-bottom: 24px;
    margin-bottom: 47px;
}


.score-section .score .score-num {
    display: block;
    font-size: 180px;
    line-height: 150px;
    margin-bottom: -14px;
    margin-right: 10px;
	font-family: 'TTHakgyoansimMonggeulmonggeulR';
}

.score-section .score .score-unit {
    font-weight: 600;
}

.score-section .answer-board {
    width:100%;

    margin: 100px auto 40px;
    font-weight: 500;
    position: relative;
	}

.score-section .answer-board .answer-box {
    width: 100%;
}
	.score-section .answer-board strong {
    font-weight: 500;
    font-size: 32px;
    line-height: 35px;
    letter-spacing: -1.6px;
}

.score-section .answer-board .answer-list li .answer-num {
	font-size:21px;
	width:10%;
	text-align:center;
	position:relative;

}

.score-section .answer-board .answer-list li.good  .answer-num {background-image:url(../img/good.png);background-size:contain;background-repeat:no-repeat;background-position:top center;background-size:90%}
.score-section .answer-board .answer-list li.wrong  .answer-num  {background-image:url(../img/wrong.png);background-size:contain;background-repeat:no-repeat;background-position:top center;background-size:90%}
.score-section .answer-board .answer-list li.wrong .answer-cont {color:red !important}

.score-section .answer-board .answer-list {
    margin-top: 20px;
    font-size: 16px;
    line-height: 44px;
    letter-spacing: -1.3px;
	padding:0px;
}

.score-section .answer-board .answer-list li {
	display:flex;
    text-align: left;
    position: relative;
	list-style:none;
	padding:10px 0;

}

.score-section .answer-board .answer-list li .answer-cont {width:90%}
.score-section .answer-board .answer-list li .answer-cont .answer {font-size:26px}
.score-section .answer-board .answer-list li .answer-cont p {padding:0px;margin:0px;line-height:1.5}


.score-section .answer-board .answer-list li .wrong + .correct {
    color: #ff0000;
    padding-left: 16px;
	}


.score-section .share-text {
    font-size: 32px;
    line-height: 35px;
    letter-spacing: -1.6px;
    margin-bottom: 30px;
}


/*라디오버튼*/
.radio-buttons 
{
  width: 100%;
  margin: 0 auto;
  text-align: center;
  display:flex;
}

.radio-buttons-flex {display:flex;flex-direction: column;}


.custom-radio {width:50%}


.radio-buttons-flex .custom-radio {width:100%}
.radio-buttons-flex .radio-btn {height:50px;text-align:left}
.radio-buttons-flex .radio-btn .hobbies-icon h3 {font-size:24px}


.custom-radio input 
{
  display: none;
}

.radio-btn 
{
  margin:0px;
  width:100%;
  height: 150px;
  border: 3px solid transparent;
  display: inline-block;
  border-radius: 10px;
  position: relative;
  text-align: center;
  cursor: pointer;
}

.radio-buttons-flex  .radio-btn { width: 85% !important;float: right;}
.radio-buttons-flex .radio-btn .hobbies-icon h3 {width:100% !important}
.radio-btn .hobbies-icon img
{
  display:block;
  width:100%;
  margin-bottom:20px;
  
}

.radio-btn .hobbies-icon h3 
{
  width: 150px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size:80px;
  font-weight:700;
  color:#aaa;
  letter-spacing:-1px;
}

.custom-radio input:checked + .radio-btn 
{

}

.custom-radio input:checked + .radio-btn .hobbies-icon h3
{

  color:#000;
}
.custom-radio input:checked + .radio-btn > i 
{
  opacity: 1;
  transform: translateX(-50%) scale(1);
}



.back-quiz {position:relative;text-align:left;padding-top:50px}
.back-quiz a {font-size:21px;color:#4b4b4b}



.score-text {position:relative;margin-top:10px;letter-spacing:-1px}
.score-text h2 {display:block;font-size:45px}
.score-text p {display:block;font-size:21px;color:#333}




.message-wrap {position:relative;background-color:#f1eaca;padding:55px 35px;border-radius:10px}
.message-wrap h2 {font-size:21px;letter-spacing:-1px}
.message-wrap p {font-size:45px;letter-spacing:-2px;line-height:1.5}
.message-wrap span {font-size:18px;}



.small-title {color:#333;font-size:24px !important}
.small-p {display:block;font-size:21px;color:#333;margin-top:30px}

.small-title-end {color:#333;font-size:24px !important}
.small-p-end {display:block;font-size:21px;color:#333;margin-top:30px}
.logoend {color: #40b387 !important;}

.agree-text {position:relative;margin:80px 0;text-align:left;}
.agree-text h3 {display:block;text-align:left;font-size:17px;color:#555}
.agree-text li {list-style:none;font-size:13px;color:#555}


.agree-form .tables {display:table; width:100%;border-bottom:2px solid #000}
.agree-form .tables .table-row {display:table-row}
.agree-form .tables .table-row .cell {display:table-cell;border-top:2px solid #000;padding:20px}
.agree-form .tables .table-row .cellth {background-color:#f9f9f9;width:30%}

.menu-btn {display:none}
.header__nav {display:none}



@media screen and (max-width: 1600px) {

  .new-visual-left {
  flex: 0 0 55%;
  max-width: 55%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.new-visual-right {
  flex: 0 0 45%;
  max-width: 45%;
  position: relative;  /* 절대위치 자식 기준 */
}

/* left 내부 처리 */
.new-visual-left li {
  list-style: none;
  line-height:1.4;
  letter-spacing:-1px;
}

.new-visual-left li.text01 {font-size:40px;margin-bottom:30px;}
.new-visual-left li.text02 {font-size:60px;color:#00283c;}

}


@media screen and (max-width: 1440px) {
 @keyframes fly-right-one {
	 0% {
		 transform: scale(0.3) translateX(-10vw);
	}
	 10% {
		 transform: translateY(-10vh) translateX(10vw) scale(0.5);
	}
	 20% {
		 transform: translateY(-5vh) translateX(30vw) scale(0.8);
	}
	 30% {
		 transform: translateY(0vh) translateX(50vw) scale(0.6);
	}
	 40% {
		 transform: translateY(5vh) translateX(70vw) scale(0.8);
	}
	 50% {
		 transform: translateY(0vh) translateX(90vw) scale(0.6);
	}
	 60% {
		 transform: translateY(-5vh) translateX(110vw) scale(0.5);
	}
	 100% {
		 transform: translateY(-10vh) translateX(110vw) scale(0.5);
	}
}
 @keyframes fly-right-two {
		 0% {
		 transform: scale(0.5) translateX(-10vw);
	}
	 10% {
		 transform: translateY(15vh) translateX(10vw) scale(0.3);
	}
	 20% {
		 transform: translateY(10vh) translateX(30vw) scale(0.6);
	}
	 30% {
		 transform: translateY(0vh) translateX(50vw) scale(0.8);
	}
	 40% {
		 transform: translateY(-15vh) translateX(70vw) scale(0.6);
	}
	 50% {
		 transform: translateY(0vh) translateX(90vw) scale(0.3);
	}
	 60% {
		 transform: translateY(10vh) translateX(110vw) scale(0.8);
	}
	 100% {
		 transform: translateY(15vh) translateX(110vw) scale(0.5);
	}
}
 @keyframes fly-right-three {
	 0% {
		 transform: scale(0.8) translateX(-10vw);
	}
	 10% {
		 transform: translateY(15vh) translateX(10vw) scale(0.6);
	}
	 20% {
		 transform: translateY(10vh) translateX(30vw) scale(0.9);
	}
	 30% {
		 transform: translateY(0vh) translateX(50vw) scale(1);
	}
	 40% {
		 transform: translateY(-15vh) translateX(70vw) scale(0.9);
	}
	 50% {
		 transform: translateY(0vh) translateX(90vw) scale(0.6);
	}
	 60% {
		 transform: translateY(10vh) translateX(110vw) scale(0.8);
	}
	 100% {
		 transform: translateY(15vh) translateX(110vw) scale(0.3);
	}
}

}


@media screen and (max-width: 1280px) {
	.navbar-brand {width:23%}
	.main-visual-inner {height:90vh}
	#mainCenter .center-right h2 {color:#fff;font-size:1.5rem;line-height:1;display:block;margin-bottom:80px}
	#mainCenter .center-top {width:100%;text-align:center;padding:50px 0}
	#mainCenter .center-top h2 {font-size:2.5rem;line-height:1;display:block;margin-bottom:35px}
	#mainCenter .center-top h3 {font-size:1.5rem}
	#mainCenter .center-top p {color:#fff;font-size:1rem}
	.sub-visual-inner {height: 35vh;display: flex;align-items: center;justify-content: center;width:100%;margin:0 auto}

	span.flower01 {position:absolute;top:-5px;left:-5px}
	span.flower01 img {max-width:50px}

	span.flower02 {position:absolute;bottom:-30px;left:50px}
	span.flower02 img {max-width:70px}

	span.flower03 {position:absolute;top:50px;right:20px}
	span.flower03 img {max-width:40px}


	span.num {
	  color: #fff;
	  display: grid;
	  place-items: center;
	  font-weight: 600;
	  font-size:4em;
	}

	span.text {
	  color: #fff;
	  font-size: 1.25em;
	  text-align: center;
	  padding:0;
	  line-height: 0;
	}

	#mainBoard h2 {color:#000;font-size:2.5rem;line-height:1}
	#mainBoard p {color:#000;font-size:1rem;display:block;margin-top:15px;letter-spacing:-1px}


	  .new-visual-left {
	  flex: 0 0 60%;
	  max-width: 60%;
	  display: flex;
	  flex-direction: column;
	  justify-content: center;
	}
	.new-visual-right {
	  flex: 0 0 40%;
	  max-width: 40%;
	  position: relative;  /* 절대위치 자식 기준 */
	}

	/* left 내부 처리 */
	.new-visual-left li {
	  list-style: none;
	  line-height:1.4;
	  letter-spacing:-1px;
	}

.new-visual-left li.text01 {font-size:30px;margin-bottom:20px;}
.new-visual-left li.text02 {font-size:50px;color:#00283c;}

}

@media screen and (max-width: 1024px) {
  .wrapper {

  }
  .container {
    font-size: 12px;
  }

.nav-link {padding:0px 10px !important;font-size:0.9rem}
  .gb-cutter {font-size:1rem;}
  .main-visual-inner {height:90vh}
  .navbar-brand {width:20%}

	#mainCenter .center-top h2 {font-size:2.2rem;line-height:1;display:block;margin-bottom:15px}
	#mainCenter .center-top h3 {font-size:1.3rem;}
	#mainCenter .center-top p {color:#fff;font-size:0.9rem}

#mainCenter {position:relative;display:block;padding:50px 0}


#footer {font-size:13px; color: #000;letter-spacing:-1px}
#footer strong {font-size:18px}

.mainMessage {max-width:100%;margin:100px auto}


.quiz-section {
	text-align: center;
    max-width: 900px;
	width:90%;
   margin:50px auto;
	border-radius:3vh;
	}


.paper-container .intro {padding:10%}
.quiz-section .intro-title {
    line-height: 44px;
    color:#000;
    border-radius: 28px;
    font-size: 21px;
    letter-spacing: -0.65px;
    margin: 0 auto 15px;
	position:relative;
	z-index:9999;
}

.quiz-section .intro-title-large {
    line-height: 90px;
	color:#000;
    border-radius: 28px;
    font-size:75px;
    letter-spacing: -1px;
    margin: 0 auto 24px;
	position:relative;z-index:9999;
}
.quiz-section .join-num {font-size:18px}
.quiz-section .start-title span {
    line-height:1.2;
    font-size:60px;
    letter-spacing: -1px;
    margin: 0 auto 15px;
	display:block;
	margin-bottom:0px;
}


.quiz-section .start-title span.small {
    font-size:14px;
    letter-spacing: -1px;
	color:#686868;
	display:block;
}


	#aboutTb {position:relative;display:block;padding:0px 0 150px 0}
	#aboutTb .aboutTb-inner {display:flex;width:100%;margin:100px auto;align-items: center;justify-content: space-between;}
	#aboutTb .about-right {width:100%;padding:50px 0px}
	#aboutTb .about-left {width:100%;padding:0 50px 0 0}

	#aboutTb .about-right p {font-size:1rem}
	#aboutTb .about-right p br {display:none}
	#aboutTb .about-right dl {font-size:1rem;display:flex;}
	#aboutTb .schedule-info dt, #aboutTb .schedule-info dd {font-size:15px}

	#aboutTb .messageTitle h2 {font-size:3vw}
	
	.sub-visual-inner .sub-visual-left {width:80%}
	.sub-visual-inner .sub-visual-right {width:20%}
	.sub-visual-left li.text01 {font-size:18px}
	.sub-visual-left li.text02 {font-size:27px}
	.sub-visual-left li.text03 {font-size:16px}

	.messageTitle h2 {font-size:45px}


	.new-visual-left {
	  flex: 0 0 60%;
	  max-width: 60%;
	  display: flex;
	  flex-direction: column;
	  justify-content: center;
	}
	.new-visual-right {
	  flex: 0 0 40%;
	  max-width: 40%;
	  position: relative;  /* 절대위치 자식 기준 */
	}

	/* left 내부 처리 */
	.new-visual-left li {
	  list-style: none;
	  line-height:1.4;
	  letter-spacing:-1px;
	}

.new-visual-left li.text01 {font-size:30px;margin-bottom:20px;}
.new-visual-left li.text02 {font-size:40px;color:#00283c;}

}
@media screen and (max-width: 820px) {


.main-visual-2026 .new-visual-left {height:0}
.main-visual-2026 .new-visual-right {height:100vh}

  .new-visual-inner {
    flex-direction: column;
    height: auto;
    position: relative; /* keyvisual이 튀어나오는 걸 포함하도록 설정 */
	padding-bottom:200px;
  }

  .new-visual-left {
    flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
	padding:100px 0;
	text-align:center;
  }


  .new-visual-right {
     flex: 0 0 auto;
    max-width: 100%;
    width: 100%;
    position: relative;
    padding-bottom: 180px; /* keyvisual이 아래로 튀어나올 수 있는 공간 확보 */
  }

  .new-visual-right .keyvisual {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translate(-50%, -20%);
    max-width: 70%;
    width: 100%;
    height: auto;
    z-index: 1;
    filter: drop-shadow(0 6px 15px rgba(0, 0, 0, 0.45));
    animation: floating 3s ease-in-out infinite !important;
  }

  .new-visual-left li.text01 {font-size:40px}
  .new-visual-left li.text02 {font-size:60px}


	.sub-visual-inner {  flex-direction: column;height:30vh}
  	.sub-visual-inner .sub-visual-left {width:100%;text-align:center}
	.sub-visual-inner .sub-visual-right {width:20%;height:100px}
	.sub-visual-left li.text01 {font-size:18px}
	.sub-visual-left li.text02 {font-size:27px}
	.sub-visual-left li.text03 {font-size:16px}

	.messageTitle {margin-top:100px}
	
	.sub-visual-inner .sub-visual-left li:nth-child(1) img {float:none;margin:0 auto;max-width:300px}
	.navbar-brand {width:40%}
	 .wrapper {width: 100%;gap:0px;flex-direction: column;}
    .navbar-toggler {position:absolute;right:40px}
	.messageTitle p br {display:none}

	
	.main-visual-inner {height:auto;display: flex;align-items: center;justify-content: center;width:90%;margin:100px auto; flex-direction: column-reverse;}
	.main-visual-inner .main-visual-left {padding:0 30px;width:100%}
	.main-visual-inner .main-visual-left li {list-style:none;padding:20px 0;overflow:hidden;}
	.main-visual-inner .main-visual-left li:nth-child(1) img {max-width:1000px;float:left;width:100%}
	.main-visual-inner .main-visual-left li:nth-child(2) img {max-width:800px;float:left;width:100%}
	.main-visual-inner .main-visual-right {padding:0 30px;position:relative;overflow:hidden;width:100%}
	.main-visual-inner .main-visual-right li {list-style:none;padding:0 0 20px 0;overflow:hidden;}
	.main-visual-inner .main-visual-right li:nth-child(1) img {max-width:70%;float:left;width:90%}
	.main-visual-inner .main-visual-right li:nth-child(2) img {max-width:700px;float:right;width:90%}
	.main-visual-inner .mv-button {display:flex;justify-content: space-between}
	.main-visual-inner .box button {width:100%}
	.main-visual-inner .box {margin-right:0px;width:49%}

	#mainCenter .center-top p {color:#fff;font-size:0.8rem}

	#mainCenter .center-inner {flex-direction: column}
	#mainCenter .center-left {width:100%}
	#mainCenter .center-right {width:100%;margin-top:35px}

	#mainCenter .center-right h2 {font-size:1.5rem;line-height:1;letter-spacing:-0.5px;margin-bottom:30px;margin-top:30px}

.new-visual-inner {flex-direction: column}

.header__nav {display:block}
.menu-btn {
  width: 60px;
  height: 30px;
  position: fixed;
  top:35px;
  right:25px;
  overflow: hidden;
  display:block;
  z-index:10020;

}

.menu-btn .bar {
  width: 100%;
  height: 1px;
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 4px;
  transform: translate(-50%, -50%);
  background-color: #000;
  transition: all 0.3s ease-in-out;
}

.menu-btn .bar:nth-of-type(2) {
  top: calc(50% - 8px);
}
.menu-btn .bar:nth-of-type(3) {
  top: calc(50% + 8px);
}

/* Меняем гамбургер иконку, когда меню открыто */
.menu-btn.active .bar:nth-of-type(1) {
  display: none;
}
.menu-btn.active .bar:nth-of-type(2) {
  top: 50%;
  transform: translate(-50%, 0%) rotate(45deg);  
}
.menu-btn.active .bar:nth-of-type(3) {
  top: 50%;
  transform: translate(-50%, 0%) rotate(-45deg); 
}

/* Меню, которое будет появляться */
.nav {
  position: fixed;
  top: 0;
  right: 0;
  left: auto;
  width: calc(100% - clamp(92px, 19vw, 156px));
  height: 100%;
  padding: 55px;
  background: #fdfcf9;
  transform: translateX(100%);
  transition: transform 0.5s; 
  z-index:9990;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.nav.active {
  transform: translateX(0);
}

.nav .nav__list_item {
  list-style-type: none;
}

.nav ul {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    position: relative;
    z-index: 2;
	}

.menu-visual-flower-field {
  display: none;
}

.quiz-section {
	text-align: center;
    max-width: 900px;
   margin:100px auto;
	border-radius:3vh;
	width:90%;

}

.menu-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0, 0, 0, 0.6);
  z-index: 9980;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
  pointer-events: none;
}
.menu-overlay.active {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

.nav .menu-visual-flower-field {
  position: absolute;
  right: -8vw;
  bottom: -4vh;
  z-index: 1;
  display: block;
  width: min(88vw, 720px);
  height: min(58vh, 560px);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.35s ease;
}

body.is-menu-open-2026 .site-header-2026 {
  z-index: 9970;
}

.nav.active .menu-visual-flower-field,
.header__nav.active .menu-visual-flower-field {
  opacity: 1;
}

.nav .menu-visual-flower {
  position: absolute;
  top: var(--flower-y);
  left: var(--flower-x);
  display: block;
  width: var(--flower-size);
  height: var(--flower-size);
  opacity: 0;
  transform: translate(-50%, -50%);
  will-change: opacity;
  animation: menuVisualFlowerFadeIn 1.7s ease var(--flower-fade-delay) forwards;
}

.nav .menu-visual-flower::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: var(--flower-image);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  transform: translate(0, 0) rotate(var(--flower-rotate-start)) scale(0.96);
  animation: menuVisualFlowerDrift var(--flower-duration) ease-in-out var(--flower-float-delay) infinite alternate;
  will-change: transform;
}

@keyframes menuVisualFlowerFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

@keyframes menuVisualFlowerDrift {
  0% {
    transform: translate(0, 0) rotate(var(--flower-rotate-start)) scale(0.9);
  }
  45% {
    transform: translate(calc(var(--flower-drift-x) * -0.62), calc(var(--flower-drift-y) * 0.52)) rotate(var(--flower-rotate-mid)) scale(1.08);
  }
  100% {
    transform: translate(var(--flower-drift-x), var(--flower-drift-y)) rotate(var(--flower-rotate-end)) scale(0.96);
  }
}

	nav ul li a {font-size:50px}
	.quiz-section .intro-title {font-size:18px}
	.quiz-section .intro-title-large {font-size:70px;line-height:75px}
	.quiz-section .join-num {font-size:16px}
	.paper-container .paper {padding:10%}

	#footer .justify-content-end {justify-content: flex-start !important;}
	.quiz-section .question span.qnum {width:10%;font-size:35px}
	.quiz-section .question {font-size:21px}
	.quiz-section .question span {font-size:21px}
	.radio-buttons-flex .radio-btn .hobbies-icon h3 {font-size:18px}
	.radio-buttons-flex .radio-btn {height:30px}
	.score-section .answer-board .answer-list li .answer-cont .answer {font-size:21px}
	.message-wrap h2 {font-size:18px;letter-spacing:-1px}
	.message-wrap p {font-size:33px;letter-spacing:-2px;line-height:1.5}
	.message-wrap span {font-size:16px;}
	.score-section .score .score-num {font-size:120px}


.quiz-section .intro-title {
    line-height: 44px;
    color:#000;
    border-radius: 28px;
    font-size: 19px;
    letter-spacing: -0.65px;
    margin: 0 auto 15px;
	position:relative;
	z-index:9999;
}

.quiz-section .intro-title-large {
    line-height: 90px;
	color:#000;
    border-radius: 28px;
    font-size:65px;
    letter-spacing: -1px;
    margin: 0 auto 24px;
	position:relative;z-index:9999;
}
.quiz-section .join-num {font-size:18px}
.quiz-section .start-title span {
    line-height:1.2;
    font-size:55px;
    letter-spacing: -1px;
    margin: 0 auto 15px;
	display:block;
	margin-bottom:0px;
}

.quiz-section .start-title {font-size:15px}
.quiz-section .start-title span.small {
    font-size:14px;
    letter-spacing: -1px;
	color:#686868;
	display:block;
}

}
@media screen and (max-width: 600px) {
  .wrapper {
    gap: 0px;

  }
  .container {
    width: 100%;
    font-size: 8px;
  }


  .quiz-section {
	text-align: center;
    max-width: 900px;
   margin:30px auto;
	border-radius:3vh;
	width:90%;


}


.new-visual-left li.text00 {margin-bottom:25px}
.new-visual-left li.text00 img {max-width:200px}


.sub-visual-inner .sub-visual-left li:nth-child(1) img {float:none;margin:0 auto;max-width:200px}
#footer strong br {display:block}
#mainCenter .center-top h2 br {display:block}
  .main-visual-inner {height:auto;display: flex;align-items: center;justify-content: center;width:100%;margin:50px auto;    flex-direction: column-reverse}
  .main-visual-inner .mv-button {flex-direction: column}
  .main-visual-inner .box {margin-right:0px;width:100%;margin-top:15px}
  #mainCenter .center-inner {margin:30px auto}
  #mainCenter .center-right {padding:0 30px}
  #mainCenter .center-right p br {display:none}
#mainBoard {padding:100px 20px}
#mainBoard h2 {color:#000;line-height:1.3;font-size:2rem}
#mainBoard h2 br {display:block}
#mainBoard p {color:#000;font-size:0.8rem}
#mainCenter .center-top p {padding:0 50px;}
#mainCenter .center-top p br {display:none}
#mainCenter .center-right h2 {font-size:1.5rem;line-height:1}
#mainCenter .center-right p {color:#fff;font-size:0.8rem;margin:0px}


#mainCenter .center-right dl {font-size:1rem;flex-direction: column;margin:15px 0;letter-spacing:-1px;}
#mainCenter .center-right dt {display:inline-block;width:100%;float:left;margin-bottom:5px}
#mainCenter .center-right dd  {display:inline-block;width:100%;float:left}
#mainCenter .center-top h2 {font-size:2rem}

#mainCenter .center-right h2 br {display:block}
.navbar-brand {width:60%}
.new-visual-inner {padding-bottom:70px}
.new-visual-left {padding:50px 0 20px 0}
.new-visual-left li.text01 {font-size:30px}
.new-visual-left li.text02 {font-size:40px;line-height:1.2}
.new-visual-left li.text03 {font-size:14px;line-height:1.2;display:block;margin-top:15px}
.new-visual-left li.text03 br {display:block}

#mainCenter .center-top h2 br {display:block}
#mainCenter .center-top h2 {font-size:1.8rem;line-height:1.5}
#mainCenter .center-top h3 {font-size:1rem}
#mainCenter .center-top p {padding:0 15px}
nav ul li a {font-size:30px}
nav ul li ul.subs {display:block !important;padding-bottom:15px}
.menu-btn {right:25px}

#footer {padding:50px 25px;font-size:1rem}
#footer .col-lg-10 {font-size:13px;letter-spacing:-0.5px}
#footer .justify-content-end {justify-content: flex-start !important;}

	.quiz-section .intro-title {font-size:16px;margin: 0 auto 0px}
	.quiz-section .intro-title-large {font-size:40px;line-height:45px}
	.quiz-section .join-num {font-size:16px}
	.paper-container .paper {padding:12%}

	#footer .justify-content-end {justify-content: flex-start !important;}
	.quiz-section .question span.qnum {width:10%;font-size:35px}
	.quiz-section .question {font-size:21px}
	.quiz-section .question span {font-size:21px}
	.radio-buttons-flex .radio-btn .hobbies-icon h3 {font-size:18px}
	.score-section .answer-board .answer-list li .answer-cont .answer {font-size:21px}
	.message-wrap h2 {font-size:18px;letter-spacing:-1px}
	.message-wrap p {font-size:33px;letter-spacing:-2px;line-height:1.5}
	.message-wrap span {font-size:16px;}
	.score-section .score .score-num {font-size:120px}

	.gb-quiz {font-size:15px}
	.gb-quiz-answer-no-e {font-size:18px}
	.gb-quiz-answer {font-size:18px}

.quiz-section .start-title span {
    line-height: 35px;
    border-radius: 28px;
    font-size: 30px;
    letter-spacing: -1px;
    margin: 0 auto 24px;
	color:#64b980;
	display:block;margin-bottom:20px;
}


.quiz-section .start-title {
    line-height: 18px;
    border-radius: 28px;
    font-size: 14px;
    letter-spacing: -1px;
    margin: 0 auto 24px;
	color:#666;
}


.radio-btn 
{
  margin:0px;
  width:100%;
  height: 100px;
  border: 3px solid transparent;
  display: inline-block;
  border-radius: 10px;
  position: relative;
  text-align: center;
  cursor: pointer;
}


	.quiz-section .question {margin-bottom:20px}

	.quiz-section .question span.qnum {width:10%;font-size:21px}
	.quiz-section .question {font-size:16px}
	.quiz-section .question span {font-size:16px}
	.radio-buttons-flex .radio-btn {width:100% !important}
	.radio-buttons-flex .radio-btn .hobbies-icon h3 {font-size:16px;letter-spacing:-0.5px}
	.radio-buttons-flex .radio-btn {height:40px}
	.score-section .answer-board .answer-list li .answer-cont .answer {font-size:18px}
	.message-wrap h2 {font-size:13px;letter-spacing:-1px}
	.message-wrap p {font-size:22px;letter-spacing:-2px;line-height:1.5}
	.message-wrap span {font-size:12px;}
	.message-wrap span br {display:none;line-height:1}
	.score-section .score .score-num {font-size:100px}

	.quiz-section .quiz-title {font-size:18px}

	.score-section .score {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    font-weight: 500;
    font-size: 48px;
    background: url(../img/score-line.png) no-repeat 48% 100%;
    background-size: 200px 89px;
    padding-bottom: 24px;
    margin-bottom: 47px;
}


.score-text h2 {display:block;font-size:24px}
.score-text p {display:block;font-size:14px;color:#333}
.score-section .answer-board .answer-list li .answer-num {font-size:14px}
.score-section .answer-board .answer-list li.wrong .answer-num {background-position: left 15px}
.score-section .answer-board .answer-list li.good .answer-num {background-position: left 15px}

.paper-container .intro,
.paper-container .paper {min-height:auto !important}
.back-quiz a {font-size:14px}
.quiz-section .question {flex-direction: column}
.quiz-section .question p {width:100%}

#footer strong {font-size:14px;display:block;margin-bottom:0px}


	span.num {
	  color: #fff;
	  display: grid;
	  place-items: center;
	  font-weight: 600;
	  font-size:3em;
	}

	span.text {
	  color: #fff;
	  font-size: 1.25em;
	  text-align: center;
	  padding:0;
	  line-height: 0;
	}



.intro-bg {position:absolute;bottom:0px;right:0px;max-width:200px}
.intro-bg02 {position:absolute;top:20px;left:20px;max-width:50px}
.intro-bg03 {position:absolute;bottom:0px;left:0px;max-width:200px}
.intro-bg04 {position:absolute;top:20px;right:20px;max-width:50px}
.quiz-section .multiple-btn-box {margin-top:0px}

.gb-quiz-score {font-size:14px}
.quiz-section .btn-box {margin-bottom:30px}


	.media-body {padding:25px !important}
	.quiz-section .start-title br {display:none}
	.message-wrap span br.small {display:block !important}

	.small-title-end {color:#333 !important;font-size:14px !important;margin-bottom:0px !important}
	.small-p-end {display:block;font-size:14px;color:#333;margin-top:0px !important}
	.logoend {color: #40b387 !important;margin-bottom:0px !important}
	.engend {display:block;font-size:30px !important;color:#333 !important;margin-top:0px !important}

	.agree-text {position:relative;margin:80px 0;text-align:left;}
	.agree-text h3 {display:block;text-align:left;font-size:17px;color:#555}
	.agree-text li {list-style:none;font-size:13px;color:#555;line-height:1.3}


	.sub-visual-inner {height:30vh}
	.sub-visual-inner .sub-visual-right {height:60px}
	.sub-visual-right .keyvisual {top:90%}

	.sub-visual-left li.text01 {font-size:13px}
	.sub-visual-left li.text02 {font-size:17px}
	.sub-visual-left li.text03 {font-size:11px}
}
/* 2026 main visual */
.main-visual-2026 {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100vh;
  background: #fdfcf9 !important;
  overflow: hidden;
  isolation: isolate;

}

.main-visual-2026::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: var(--main-visual-sketch);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: cover;
  opacity: 0;
  -webkit-mask-image: linear-gradient(90deg, #000 0%, #000 38%, rgba(0, 0, 0, 0.48) 70%, transparent 98%);
  linear-gradient(90deg, #000 0%, #000 38%, rgba(0, 0, 0, 0.48) 70%, transparent 98%)
  pointer-events: none;
  transition: opacity 1.1s ease;
}

.main-visual-2026.is-bg-ready::before {
  opacity: 0.12;
}

.main-visual-2026 .container,
.main-visual-2026 .container-fluid {
  position: relative;
  z-index: 1;
  height: 100%;
  padding-left: 3vw !important;
  padding-right: 3vw !important;
}

.main-visual-2026 .new-visual-inner {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  width: 100%;
  height: 100% !important;
  margin: 0 auto;
}

.main-visual-2026 .new-visual-left,
.main-visual-2026 .new-visual-right {
  flex: 0 0 50% !important;
  max-width: 50% !important;
  width: 50% !important;
}

.main-visual-2026 .new-visual-left {
  position: relative;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 !important;
  text-align: left;
}

.main-visual-2026 .visual-copy {
  max-width: 760px;
  transform: translateY(20vh);
}

.main-visual-2026 .visual-title {
  margin: 0;
  color: #171717;
  font-size: 90px;
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: 0;
}

.main-visual-2026 .visual-title-row {
  display: block;
  white-space: nowrap;
}

.main-visual-2026 .visual-title-word {
  display: inline-block;
  margin-right: 0.22em;
  white-space: nowrap;
}

.main-visual-2026 .visual-title-word:last-child {
  margin-right: 0;
}

.main-visual-2026 .visual-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.5s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--char-delay, 1s);
}

.main-visual-2026.is-active .visual-char {
  opacity: 1;
  transform: translateY(0);
}

.main-visual-2026 .visual-info {
  position: relative;
  margin: 42px 0 0;
  color: #6D6A6A;
  font-size: 25px;
  line-height: 1.35;
  letter-spacing: -1.2px;
  font-weight:600;
  border-left: 0;
  padding-left:25px;
}

.main-visual-2026 .visual-info::before {
  content: "";
  position: absolute;
  top: 0.12em;
  bottom: 0.12em;
  left: 0;
  width: 3px;
  background:#40B387;
  opacity: 0;
  transform: scaleY(0);
  transform-origin: top center;
  transition: opacity 0.5s ease, transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--info-line-delay, 2.35s);
}

.main-visual-2026.is-active .visual-info::before {
  opacity: 1;
  transform: scaleY(1);
}

.main-visual-2026 .visual-info span {
  display: block;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s ease, transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--info-delay, 2.5s);
}

.main-visual-2026.is-active .visual-info span {
  opacity: 1;
  transform: translateY(0);
}

.main-visual-2026 .new-visual-right {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  overflow: visible !important;
  padding: 0 !important;
}

.main-visual-2026 .visual-loading {
  position: fixed;
  top: 50%;
  left: 50%;
  z-index: 1200;
  width: min(92vw, 980px);
  color: #171717;
  font-size: 54px;
  font-weight: 900;
  line-height: 1.25;
  letter-spacing: 0;
  text-align: center;
  pointer-events: none;
  transform: translate(-50%, -50%);
  transition: opacity 0.45s ease, visibility 0.45s ease;
}

.main-visual-2026 .visual-loading-text {
  display: block;
}

.main-visual-2026 .visual-loading-char {
  display: inline-block;
  opacity: 0;
  transition: opacity 0.45s ease;
  transition-delay: var(--loading-delay, 0s);
}

.main-visual-2026 .visual-loading-space {
  display: inline-block;
  width: 0.34em;
}

.main-visual-2026.is-loading-active .visual-loading-char {
  opacity: 1;
}

.main-visual-2026.is-image-ready .visual-loading {
  opacity: 0;
  visibility: hidden;
}

.main-visual-2026 .visual-image-wrap {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  width: 100%;
  height: 100%;
  padding-right: 0;
  box-sizing: border-box;
}

.main-visual-2026 .new-visual-right .keyvisual {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  width: auto !important;
  max-width: none !important;
  max-height: none;
  height: 90vh;
  margin: 0;
  opacity: 0;
  -webkit-clip-path: inset(100% 0 0 0);
  clip-path: inset(100% 0 0 0);
  filter: none !important;
  transform: translateY(72px);
  transform-origin: center bottom;
  animation: none !important;
  will-change: clip-path, opacity, transform;
}

.main-visual-2026.is-image-ready .new-visual-right .keyvisual {
  animation: visualImageReveal 2.3s cubic-bezier(0.16, 1, 0.3, 1) 0.1s forwards !important;
}

@keyframes visualImageReveal {
  from {
    opacity: 0;
    -webkit-clip-path: inset(100% 0 0 0);
    clip-path: inset(100% 0 0 0);
    transform: translateY(72px);
  }
  to {
    opacity: 1;
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }
}

/* 2026 sub visual */
.sub-visual-2026 {
  position: relative !important;
  width: 100%;
  min-height: 550px;
  padding-top: 84px;
  background: #fdfcf9 !important;
  overflow: hidden;
  isolation: isolate;
}

.sub-visual-2026::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 28%;
  z-index: 0;
  background-image: var(--sub-visual-sketch);
  background-repeat: no-repeat;
  background-position: right center;
  background-size: auto 100%;
  opacity: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.08) 12%, rgba(0, 0, 0, 0.42) 32%, #000 62%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.08) 12%, rgba(0, 0, 0, 0.42) 32%, #000 62%);
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  transition: opacity 1s ease;
}

.sub-visual-2026.is-bg-ready::before {
  opacity: 0.05;
}

.sub-visual-2026.is-visual-ready::before {
  opacity: 0.12;
}

.sub-visual-2026 #sub-visual {
  position: relative;
  z-index: 1;
  width: 100%;
}

.sub-visual-2026 .sub-visual-inner {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  width: 100%;
  min-height: calc(550px - 84px);
  height: auto !important;
  margin: 0;
  padding: 0 0 0 3vw;
}

.sub-visual-2026 .sub-visual-left,
.sub-visual-2026 .sub-visual-right {
  position: relative;
  flex: 0 0 50% !important;
  max-width: 50% !important;
  width: 50% !important;
}

.sub-visual-2026 .sub-visual-left {
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 !important;
  text-align: left;
}

.sub-visual-2026 .sub-visual-copy {
  width: 100%;
  max-width: 620px;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.72s ease, transform 0.82s cubic-bezier(0.22, 1, 0.36, 1);
}

.sub-visual-2026.is-copy-ready .sub-visual-copy {
  opacity: 1;
  transform: translateY(0);
}

.sub-visual-2026 .sub-visual-title {
  margin: 0;
  color: #171717;
  font-size: clamp(42px, 3.8vw, 65px);
  font-weight: 800;
  line-height: 1.26;
  letter-spacing: -3px;
}

.sub-visual-2026 .sub-visual-title-row {
  display: block;
  white-space: nowrap;
}

.sub-visual-2026 .sub-visual-title-word {
  display: inline-block;
  margin-right: 0.2em;
  white-space: nowrap;
}

.sub-visual-2026 .sub-visual-title-word:last-child {
  margin-right: 0;
}

.sub-visual-2026 .sub-visual-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.45s ease, transform 0.58s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--sub-char-delay, 0s);
}

.sub-visual-2026.is-copy-ready .sub-visual-char {
  opacity: 1;
  transform: translateY(0);
}

.sub-visual-2026 .sub-visual-info {
  margin: 30px 0 0;
  color: #242424;
  font-family: 'Pretendard', sans-serif;
  font-size: clamp(18px, 1.35vw, 20px);
  font-weight: 500;
  line-height: 1.35;
  padding-left:25px;
  border-left:1px solid #111;
  letter-spacing:-1px;
}

.sub-visual-2026 .sub-visual-info span {
  display:block;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.48s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--sub-info-delay, 0.6s);
}

.sub-visual-2026.is-copy-ready .sub-visual-info span {
  opacity: 1;
  transform: translateY(0);
}

.sub-visual-2026 .sub-visual-right {
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  overflow: visible !important;
  padding: 0 !important;
  opacity: 1;
  transform: none;
}

.sub-visual-2026.is-visual-ready .sub-visual-right {
  opacity: 1;
  transform: none;
}

.sub-visual-2026 .sub-visual-image-wrap {
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  width: 100%;
  height: 100%;
  padding: 0 clamp(26px, 3vw, 58px) 0 0;
  box-sizing: border-box;
  overflow: hidden;
}

.sub-visual-2026 .subtop-visual {
  display: block;
  width: auto;
  max-width: 92%;
  height: 410px;
  max-height: 410px;
  object-fit: contain;
  object-position: right bottom;
  opacity: 0;
  -webkit-clip-path: inset(100% 0 0 0);
  clip-path: inset(100% 0 0 0);
  transform: translateY(48px);
  will-change: opacity, clip-path, transform;
}

.sub-visual-2026.is-visual-ready .subtop-visual {
  animation: subVisualImageReveal 1.9s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes subVisualImageReveal {
  from {
    opacity: 0;
    -webkit-clip-path: inset(100% 0 0 0);
    clip-path: inset(100% 0 0 0);
    transform: translateY(42px);
  }
  to {
    opacity: 1;
    -webkit-clip-path: inset(0 0 0 0);
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }
}

@media screen and (max-width: 1024px) {
  .sub-visual-2026 {
    min-height: 420px;
    padding-top: 76px;
  }

  .sub-visual-2026::before {
    left: 18%;
    background-size: auto 100%;
  }

  .sub-visual-2026 .sub-visual-inner {
    min-height: calc(420px - 76px);
  }

  .sub-visual-2026 .sub-visual-title {
    font-size: 40px;
  }

  .sub-visual-2026 .subtop-visual {
    height: calc(420px - 76px);
    max-height: calc(420px - 76px);
  }
}

@media screen and (max-width: 820px) {
  .sub-visual-2026 {
    min-height: 0;
    padding-top: 76px;
  }

  .sub-visual-2026::before {
    left: 0;
    background-size: auto 100%;
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.1) 18%, rgba(0, 0, 0, 0.5) 44%, #000 72%);
    mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.1) 18%, rgba(0, 0, 0, 0.5) 44%, #000 72%);
  }

  .sub-visual-2026 .sub-visual-inner {
    flex-direction: column !important;
    min-height: 0;
    padding: 32px 6vw 26px;
  }

  .sub-visual-2026 .sub-visual-left,
  .sub-visual-2026 .sub-visual-right {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .sub-visual-2026 .sub-visual-title {
    font-size: clamp(25px, 7.4vw, 34px);
    white-space: normal;
  }

  .sub-visual-2026 .sub-visual-title-word {
    display: inline-block;
    white-space: nowrap;
  }

  .sub-visual-2026 .sub-visual-info {
    margin-top: 22px;
    font-size: 17px;
  }

  .sub-visual-2026 .sub-visual-right {
    min-height: 170px;
    justify-content: center;
  }

  .sub-visual-2026 .sub-visual-image-wrap {
    justify-content: center;
  }

  .sub-visual-2026 .subtop-visual {
    width: 100%;
    height: auto;
    max-height: 230px;
    object-position: center bottom;
  }
}

/* 2026 challenge guide */
.challenge-guide-2026 {
  background: #fff;
  padding: 140px 3vw 50px;
  color: #111;
  box-sizing: border-box;

  display: flex;
  align-items: center;
  position:relative;
}

.challenge-guide-inner {
  width: 100%;
  margin: 0 auto;
}

.challenge-guide-2026.is-animate-ready .challenge-guide-heading img,
.challenge-guide-2026.is-animate-ready .challenge-guide-heading h2,
.challenge-guide-2026.is-animate-ready .challenge-guide-heading p,
.challenge-guide-2026.is-animate-ready .challenge-step-icon,
.challenge-guide-2026.is-animate-ready .challenge-step-copy,
.challenge-guide-2026.is-animate-ready .challenge-step-arrow {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s ease, transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

.challenge-guide-2026.is-animate-ready.is-visible .challenge-guide-heading img,
.challenge-guide-2026.is-animate-ready.is-visible .challenge-guide-heading h2,
.challenge-guide-2026.is-animate-ready.is-visible .challenge-guide-heading p,
.challenge-guide-2026.is-animate-ready.is-visible .challenge-step-icon,
.challenge-guide-2026.is-animate-ready.is-visible .challenge-step-copy,
.challenge-guide-2026.is-animate-ready.is-visible .challenge-step-arrow {
  opacity: 1;
  transform: translateY(0);
}

.challenge-guide-2026.is-visible .challenge-guide-heading img {
  transition-delay: 0.02s;
}

.challenge-guide-2026.is-visible .challenge-guide-heading h2 {
  transition-delay: 0.16s;
}

.challenge-guide-2026.is-visible .challenge-guide-heading p {
  transition-delay: 0.34s;
}

.challenge-guide-2026.is-visible .challenge-step-item:nth-child(1) .challenge-step-icon,
.challenge-guide-2026.is-visible .challenge-step-item:nth-child(1) .challenge-step-copy {
  transition-delay: 0.48s;
}

.challenge-guide-2026.is-visible .challenge-step-item:nth-child(1) .challenge-step-arrow {
  transition-delay: 0.66s;
}

.challenge-guide-2026.is-visible .challenge-step-item:nth-child(2) .challenge-step-icon,
.challenge-guide-2026.is-visible .challenge-step-item:nth-child(2) .challenge-step-copy {
  transition-delay: 0.84s;
}

.challenge-guide-2026.is-visible .challenge-step-item:nth-child(2) .challenge-step-arrow {
  transition-delay: 1.02s;
}

.challenge-guide-2026.is-visible .challenge-step-item:nth-child(3) .challenge-step-icon,
.challenge-guide-2026.is-visible .challenge-step-item:nth-child(3) .challenge-step-copy {
  transition-delay: 1.2s;
}

.challenge-guide-2026.is-visible .challenge-step-item:nth-child(3) .challenge-step-arrow {
  transition-delay: 1.38s;
}

.challenge-guide-2026.is-visible .challenge-step-item:nth-child(4) .challenge-step-icon,
.challenge-guide-2026.is-visible .challenge-step-item:nth-child(4) .challenge-step-copy {
  transition-delay: 1.56s;
}

.challenge-guide-heading {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  margin-bottom: 58px;
}


.challenge-guide-badge,
.challenge-step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  border-radius: 999px;
  background: #4fa51c;
  color: #fff;
  font-weight: 100;
  line-height: 1;

}

.challenge-guide-badge {
  width: 72px;
  height: 72px;
  font-size: 30px;
}

.challenge-guide-heading > div {
  display: flex;
  align-items: center;
  gap: clamp(10px, 3vw, 10px);
}

.challenge-guide-heading img {width:50px}

.challenge-guide-heading h2 {
  margin: 0;
  font-size: clamp(30px, 4vw, 40px);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -2px;
  color:#111;
  white-space: nowrap;
}

.challenge-guide-heading p {
  margin: 0;
  max-width: 720px;
  color: #111;
  font-size: clamp(15px, 1.25vw, 16px);
  font-weight: 500;
  line-height: 1.35;
  letter-spacing:-1px;
}

.challenge-step-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 70px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.challenge-step-item {
  position: relative;
  min-width: 0;
  text-align: center;
}

.challenge-step-item:not(:last-child)::after {
  display: none;
}

.challenge-step-arrow {
  position: absolute;
  top: clamp(120px, calc(((94vw - 150px) / 4) * 0.65), 280px);
  right: -36px;
  z-index: 4;
  display: block;
  width: 50px;
  transform: translate(50%, -50%);
  pointer-events: none;
}

.challenge-step-arrow img {
  display: block;
  width: 100%;
  height: auto;
}

.challenge-step-number {
  position: static;
  grid-row: 1 / span 2;
  grid-column: 1;
  width: auto;
  height: auto;
  background: transparent;
  box-shadow: none;
  color: #40b387;
  font-size: clamp(38px, 3.4vw, 40px);
  letter-spacing: 0;
  text-shadow: none;
  transform: none;
  pointer-events: auto;
  align-self: start;
}

.challenge-step-icon {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1.1;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 5px;
  background: #111;
}

.challenge-step-icon::before {
  display: none;
}

.challenge-step-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1);
  transition: transform 0.55s ease;
}

.challenge-step-copy {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 5px;
  align-items: start;
  margin-top: 24px;
  text-align: left;
}

.challenge-step-item h3 {
  display: block;
  grid-column: 2;
  margin: 0;
  color: #111;
  font-family: 'Pretendard', sans-serif;
  font-size: clamp(18px, 1.1vw, 18px);
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: 0;
  letter-spacing:-0.5px;
}

.challenge-step-item h3 br {display:none}

.challenge-step-item p {
  grid-column: 2;
  position: static;
  margin: 5px 0 0;
  color: #111;
  font-size: clamp(14px, 0.9vw, 14px);
  font-weight: 500;
  line-height: 1.45;
  text-shadow: none;
  transform: none;
  letter-spacing:-0.5px;
}
.challenge-step-item p br {display:none}
.challenge-step-item:hover .challenge-step-icon img {
  transform: scale(1.08);
}

@media screen and (max-width: 1024px) {
  .challenge-guide-heading > div {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }

  .challenge-guide-heading h2 {
    white-space: normal;
  }

  .challenge-guide-badge {
    width: 58px;
    height: 58px;
    font-size: 24px;
  }

  .challenge-step-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 58px 50px;
  }

  .challenge-step-item:not(:last-child)::after {
    display: none;
  }

  .challenge-step-arrow {
    display: none;
  }
}

@media screen and (max-width: 640px) {
  .challenge-guide-2026 {
    height: auto;

    padding: 56px 6vw 64px;
  }

  .challenge-guide-heading {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 42px;
  }

  .challenge-guide-heading > div {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }

  .challenge-guide-heading h2 {
    font-size: clamp(40px, 12vw, 58px);
    white-space: normal;
  }

  .challenge-guide-heading p {
    font-size: 16px;
  }

  .challenge-guide-heading p br,
  .challenge-step-item p br {
    display: none;
  }

  .challenge-step-list {
    grid-template-columns: 1fr;
    gap: 46px;
  }

  .challenge-step-icon {
    aspect-ratio: 1 / 1.3;
    border-radius: 10px;
  }

  .challenge-step-number {
    font-size: clamp(44px, 14vw, 66px);
  }

  .challenge-step-item p {
    font-size: 15px;
  }
}



/* 2026 challenge guide */
.instagram-guide {
  background: #f9f9f9;
  padding: 100px 3vw 100px;
  color: #111;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  position:relative;
}

.instagram-guide-inner {
  width: 100%;
  margin: 0 auto;
}

.instagram-guide.is-animate-ready .instagram-guide-inner {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.78s ease, transform 0.78s cubic-bezier(0.22, 1, 0.36, 1);
}

.instagram-guide.is-animate-ready.is-visible .instagram-guide-inner {
  opacity: 1;
  transform: translateY(0);
}




/* 2026 footer banner */
.footer-challenge-banner {
  position: relative;
  height: 50vh;
  box-sizing: border-box;
  overflow: hidden;
  background: #111;
  color: #fff;
}

.footer-challenge-banner::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: rgba(0, 0, 0, 0.58);
  opacity: 1;
  pointer-events: none;
  transition: opacity 0.82s ease 0.18s;
}

.footer-challenge-banner::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  background: url('../img/footer_bg.jpg') no-repeat center bottom;
  background-size: cover;
  opacity: 1;
  transform: scale(1);
  pointer-events: none;
  transition: opacity 0.9s ease, transform 1.8s cubic-bezier(0.22, 1, 0.36, 1);
}

.footer-banner-inner {
  position: relative;
  z-index: 2;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  width:90%;
  height: 100%;
  margin: 0 auto;
  padding: 0;
}

.footer-banner-copy strong {
  display: block;
  font-size: clamp(24px, 3vw, 55px);
  font-weight: 900;
  line-height: 1.2;
  letter-spacing: -1px;
}

.footer-banner-copy p {
  margin: 30px 0 0;
  color: #fff;
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 500;
  line-height: 1.45;
}

.footer-banner-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 11px;
  min-width: 300px;
  min-height: 62px;
  padding: 0 30px;
  border-radius: 999px;
  background: transparent;
  border:1px solid #fff;
  border-radius:5px;
  margin-top:15px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;

  transition: transform 0.28s ease, box-shadow 0.28s ease, color 0.28s ease;
}

.footer-banner-button span {
  color: #3dffb5;
  font-size: 21px;
  font-weight: 900;
}

.footer-banner-button i {
  font-style: normal;
  font-size: 22px;
  line-height: 1;
  transition: transform 0.28s ease;
}

.footer-banner-button:hover {
  color: #111;
  text-decoration: none;
  transform: translateY(-3px);
  box-shadow: 0 22px 38px rgba(0, 0, 0, 0.34);
}

.footer-banner-button:hover i {
  transform: translateX(5px);
}

.footer-banner-runner {
  position: absolute;
  top: 18px;
  z-index: 1;
  width: 56px;
  height: 78px;
  opacity: 0.16;
  background: rgba(10, 5, 38, 0.74);
  clip-path: polygon(46% 0, 64% 9%, 58% 27%, 76% 48%, 96% 57%, 88% 68%, 66% 59%, 58% 78%, 68% 100%, 51% 100%, 41% 78%, 29% 100%, 11% 100%, 29% 67%, 23% 45%, 2% 57%, 0 43%, 27% 29%, 37% 9%);
  animation: footerRunnerFloat 3.8s ease-in-out infinite;
}

.footer-banner-runner-left {
  left: 7vw;
}

.footer-banner-runner-right {
  right: 7vw;
  animation-delay: 1.1s;
  transform: scaleX(-1);
}

#footer.site-footer-2026 {
  background: #40b387 !important;
  color: rgba(255, 255, 255, 0.95);
  padding: 0 !important;
  letter-spacing: 0;
}

.footer-inner-2026 {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(120px, 0.5fr) minmax(0, 1fr);
  align-items: center;
  gap: 32px;
  padding:80px 3vw;
  min-height: 118px;
  margin: 0 auto;

}

.footer-office strong {
  display: block;
  margin: 0 0 10px;
  color: #fff;
  font-size: 18px !important;
  font-weight: 800 !important;
  line-height: 1.4;
  letter-spacing:-1px;
}

.footer-office p {
  margin: 4px 0 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  line-height: 1.35;
}

.footer-center-label {
  color: rgba(255, 255, 255, 0.7);
  font-size: 17px;
  font-weight: 600;
  text-align: center;
}

.footer-ministry {
  display: flex;
  justify-content: flex-end;
}

.footer-ministry-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius:5px;
  padding:20px;
}

.footer-ministry-logo img {
  display: block;
  max-width: 170px;
  height: auto;
}

.footer-challenge-banner.is-animate-ready::before,
.footer-challenge-banner.is-animate-ready::after,
.footer-challenge-banner.is-animate-ready .footer-banner-copy strong,
.footer-challenge-banner.is-animate-ready .footer-banner-copy p,
.footer-challenge-banner.is-animate-ready .footer-banner-button,
.site-footer-2026.is-animate-ready .footer-office,
.site-footer-2026.is-animate-ready .footer-center-label,
.site-footer-2026.is-animate-ready .footer-ministry {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.72s ease, transform 0.72s ease;
}

.footer-challenge-banner.is-animate-ready::before,
.footer-challenge-banner.is-animate-ready::after {
  transform: none;
}

.footer-challenge-banner.is-animate-ready::after {
  transform: scale(1.035);
}

.footer-challenge-banner.is-animate-ready.is-visible::before,
.footer-challenge-banner.is-animate-ready.is-visible::after,
.footer-challenge-banner.is-animate-ready.is-visible .footer-banner-copy strong,
.footer-challenge-banner.is-animate-ready.is-visible .footer-banner-copy p,
.footer-challenge-banner.is-animate-ready.is-visible .footer-banner-button,
.site-footer-2026.is-animate-ready.is-visible .footer-office,
.site-footer-2026.is-animate-ready.is-visible .footer-center-label,
.site-footer-2026.is-animate-ready.is-visible .footer-ministry {
  opacity: 1;
  transform: translateY(0);
}

.footer-challenge-banner.is-animate-ready.is-visible::after {
  transform: scale(1);
}

.footer-challenge-banner.is-visible .footer-banner-copy strong {
  transition-delay: 0.42s;
}

.footer-challenge-banner.is-visible .footer-banner-copy p {
  transition-delay: 0.68s;
}

.footer-challenge-banner.is-visible .footer-banner-button {
  transition-delay: 0.94s;
}

.site-footer-2026.is-visible .footer-office {
  transition-delay: 0.08s;
}

.site-footer-2026.is-visible .footer-center-label {
  transition-delay: 0.22s;
}

.site-footer-2026.is-visible .footer-ministry {
  transition-delay: 0.36s;
}

@keyframes footerBannerShimmer {
  0%, 100% {
    transform: translateX(-2%);
    opacity: 0.35;
  }
  50% {
    transform: translateX(2%);
    opacity: 0.62;
  }
}

@keyframes footerRunnerFloat {
  0%, 100% {
    margin-top: 0;
  }
  50% {
    margin-top: 8px;
  }
}

@media screen and (max-width: 900px) {
  .footer-banner-inner {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 22px;
    min-height: 0;
    padding: 34px 0 38px;
  }

  .footer-banner-button {
    min-width: 0;
    width: 100%;
    max-width: 360px;
  }

  .footer-inner-2026 {

    gap: 20px;
    min-height: 0;
    padding: 30px 3vw 34px;
  }

  .footer-center-label {
    text-align: left;
  }

}

@media screen and (max-width: 560px) {
  .footer-banner-runner {
    display: none;
  }

  .footer-banner-copy strong {
    font-size: 24px;
  }

  .footer-banner-button {
    min-height: 56px;
    padding: 0 22px;
    font-size: 15px;
  }

  .footer-banner-button span {
    font-size: 18px;
  }
}

/* 2026 fixed header */
html.site-loader-lock-2026,
html.site-loader-lock-2026 body {
  height: 100%;
  overflow: hidden !important;
  overscroll-behavior: none;
}

.site-loader-2026 {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fdfcf9;
  color: #171717;
  text-align: center;
  transition: opacity 0.75s ease, visibility 0.75s ease;
}

.site-loader-2026.is-done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.site-loader-2026 .site-loader-content {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.8vw, 24px);
  width: min(92vw, 1200px);
}

.site-loader-2026 .site-loader-flower {
  display: block;
  width: clamp(38px, 4.2vw, 62px);
  height: clamp(38px, 4.2vw, 62px);
  object-fit: contain;
  opacity: 0;
  transform: scale(0.72) rotate(-24deg);
  transform-origin: center;
  transition: opacity 0.7s ease, transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  flex: 0 0 auto;
}

.site-loader-2026.is-prepared .site-loader-flower {
  opacity: 1;
  transform: scale(1) rotate(0deg);
  animation: siteLoaderFlowerSpin 15s linear 0.9s infinite;
}

.site-loader-2026 .site-loader-text {
  display: block;
  width: auto;
  min-width: 0;
  opacity: 0;
  font-family: 'TrumpetCreeper';
  font-size: 46px;
  font-weight: bold;
  line-height: 1.3;
  letter-spacing: 0.12em;
}

.site-loader-2026.is-prepared .site-loader-text {
  opacity: 1;
}

.site-loader-2026 .site-loader-char {
  display: inline-block;
  opacity: 0;
  transition: opacity 0.5s ease;
  transition-delay: var(--loader-delay, 0s);
}

.site-loader-2026 .site-loader-word {
  display: inline-block;
  margin-right: 0.34em;
}

.site-loader-2026 .site-loader-word:last-child {
  margin-right: 0;
}

.site-loader-2026.is-active .site-loader-char {
  opacity: 1;
}

@keyframes siteLoaderFlowerSpin {
  from {
    transform: scale(1) rotate(0deg);
  }
  to {
    transform: scale(1) rotate(360deg);
  }
}

.site-header-2026 {
  position: fixed !important;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 100%;
  min-height: 105px;
  background: rgba(253, 252, 249, 0) !important;
  box-shadow: none;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-14px);
  transition: opacity 0.75s ease,
              transform 0.75s cubic-bezier(0.22, 1, 0.36, 1),
              min-height 0.32s ease,
              background-color 0.32s ease,
              box-shadow 0.32s ease;
}

.site-header-2026.is-header-ready {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.site-header-2026.is-scrolled {
  min-height: 72px;
  background: rgba(253, 252, 249, 0.76) !important;
  -webkit-backdrop-filter: blur(18px) saturate(135%);
  backdrop-filter: blur(18px) saturate(135%);
  box-shadow: 0 8px 28px rgba(20, 20, 20, 0.08);
}

.site-header-2026 .container-fluid {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  padding: 0 3vw;
}

.site-header-2026 .navbar-brand {
  flex: 0 0 auto;
  width: auto !important;
  max-width: none;
  margin: 0 64px 0 0;
  padding: 0;
}

.site-header-2026 .site-logo-2026 {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #6D6A6A;
  font-weight: 600;
  letter-spacing: -0.5px;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(-12px);
  animation: none;
  transition: gap 0.32s ease;
}

.site-header-2026 .site-logo-2026:hover {
  color:#6D6A6A;
  text-decoration: none;
}

.site-header-2026 .site-logo-year {
  display: block;
  font-size: 35px;
  line-height: 0.92;
  letter-spacing:-1.5px;
  transition: font-size 0.32s ease, letter-spacing 0.32s ease;
}

.site-header-2026 .site-logo-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 3px;
  font-size: 16px;
  line-height: 1.02;
  font-weight: 900;
  transition: gap 0.32s ease, font-size 0.32s ease;
}

.site-header-2026.is-scrolled .site-logo-2026 {
  gap: 4px;
}

.site-header-2026.is-scrolled .site-logo-year {
  font-size: 29px;
  letter-spacing: -1px;
}

.site-header-2026.is-scrolled .site-logo-text {
  gap: 2px;
  font-size: 13px;
}

.site-header-2026 .site-logo-text span,
.site-header-2026 .site-logo-text strong {
  display: block;
  font-weight: 800;
}

.site-header-2026 .navbar-nav > li {
  opacity: 0;
  transform: translateY(-10px);
  animation: none;
}

.site-header-2026.is-header-ready .site-logo-2026 {
  animation: headerItemFadeIn 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}

.site-header-2026.is-header-ready .navbar-nav > li {
  animation: headerItemFadeIn 0.72s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.site-header-2026.is-header-ready .navbar-nav > li:nth-child(1) {
  animation-delay: 0.62s;
}

.site-header-2026.is-header-ready .navbar-nav > li:nth-child(2) {
  animation-delay: 0.82s;
}

.site-header-2026.is-header-ready .navbar-nav > li:nth-child(3) {
  animation-delay: 1.02s;
}

.site-header-2026.is-header-ready .navbar-nav > li:nth-child(n+4) {
  animation-delay: 1.22s;
}

@keyframes headerItemFadeIn {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.site-header-2026 .navbar-brand img {
  display: block;
  width: auto;
  max-width: none;
  height: 42px;
}

.site-header-2026 .navbar-collapse {
  flex-grow: 0;
}

.site-header-2026 .navbar-nav {
  align-items: center;
  gap: 40px;
}

.site-header-2026 .nav-link {
  padding: 0 !important;
  color: #6D6A6A !important;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -1px;
}

.site-header-2026 .dropdown-menu {
  margin-top: 24px;
}

.main-visual-2026 {
  box-sizing: border-box;
  padding-top: 84px;
}

@media screen and (max-width: 1280px) {
  .site-header-2026 .container-fluid {
    padding: 0 3vw;
  }

  .site-header-2026 .navbar-brand {
    margin-right: 42px;
  }

.main-visual-2026 .visual-title {font-size:65px}
.main-visual-2026 .visual-info {font-size:24px}
.challenge-step-number {font-size:24px}
.challenge-step-item p br {display:block}

.sub-visual-2026 {min-height:350px}
.sub-visual-2026 .sub-visual-inner {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  width: 100%;
  min-height: calc(350px - 84px);
  height: auto !important;
  margin: 0;
  padding: 0 0 0 3vw;
}

.sub-visual-2026 .subtop-visual {
  max-width: 88%;
  height: 230px;
  max-height: 230px;
}

}

@media screen and (max-width:1024px) {
  .site-header-2026 {
    min-height:100px;
  }

  .site-header-2026 .container-fluid {
    padding: 0 3vw;
  }

  .site-header-2026 .navbar-brand img {
    height: 34px;
  }

  .site-header-2026 .site-logo-2026 {
    gap: 10px;
  }

  .site-header-2026 .site-logo-year {
    font-size: 32px;
  }

  .site-header-2026 .site-logo-text {
    gap: 4px;
    font-size: 16px;
  }

  .main-visual-2026 {
    padding-top: 76px;
  }

  .main-visual-2026 .visual-loading {
    font-size: 32px;
  }

  .site-loader-2026 .site-loader-text {
    font-size: 28px;
    letter-spacing: 0.08em;
  }

   .challenge-guide-2026 {height:auto;padding: 80px 3vw 80px;}
  .challenge-step-icon {aspect-ratio: 1 /0.6;}
  .main-visual-2026 .visual-title {font-size:55px}
  .main-visual-2026 .visual-info {font-size:18px}
.footer-banner-copy p {margin-top:15px}

}



@media screen and (max-width: 1600px) {
  .main-visual-2026 .visual-title {
    font-size: 80px;
  }

  .main-visual-2026 .visual-info {
    font-size: 26px;
  }

  .main-visual-2026 .new-visual-right .keyvisual {
    height: 90vh;
  }
}

@media screen and (max-width: 1024px) {
  .main-visual-2026 .visual-title {
    font-size: 52px;
  }

  .main-visual-2026 .visual-info {
    font-size: 20px;
  }
}

/* iPad landscape: keep the copy on the same left line as the header logo. */
@media screen and (min-width: 821px) and (max-width: 1366px) and (orientation: landscape) and (hover: none) and (pointer: coarse) {
  .main-visual-2026 .new-visual-left {
    flex: 0 0 58% !important;
    max-width: 58% !important;
    width: 58% !important;
  }

  .main-visual-2026 .new-visual-right {
    flex: 0 0 42% !important;
    max-width: 42% !important;
    width: 42% !important;
  }

  .main-visual-2026 .visual-copy {
    width: 100%;
    max-width: none;
  }

  .main-visual-2026 .visual-title {
    font-size: clamp(48px, 4.4vw, 60px);
  }

  .main-visual-2026 .visual-image-wrap {
    transform: translateX(7vw);
  }
}

@media screen and (max-width: 820px) {
  .site-loader-2026:not(.is-done) ~ .menu-btn {
    display: none !important;
  }

  .site-loader-2026 .site-loader-content {
    flex-direction: column;
    gap: 16px;
    width: min(86vw, 360px);
  }

  .site-loader-2026 .site-loader-flower {
    width: 42px;
    height: 42px;
  }

  .site-loader-2026 .site-loader-text {
    width: 100%;
    font-size: clamp(42px, 12vw, 54px);
    line-height: 1.14;
    letter-spacing: 0;
    text-align: center;
  }

  .site-loader-2026 .site-loader-word {
    display: block;
    margin-right: 0;
  }

  .site-header-2026.is-scrolled {
    min-height: 64px;
  }

  .site-header-2026.is-scrolled .site-logo-year {
    font-size: 26px;
  }

  .site-header-2026.is-scrolled .site-logo-text {
    font-size: 12px;
  }

  .menu-btn {
    transition: top 0.32s ease;
  }

  .site-header-2026.is-scrolled + .menu-btn {
    top: 17px;
  }

  .main-visual-2026 {
    height: 100vh;
    min-height: 100vh;
    max-height: 100vh;
    padding: 72px 0 0;
    overflow: hidden;
  }

  .main-visual-2026::before {
    -webkit-mask-image: none;
    mask-image: none;
  }

  .challenge-step-icon {
    aspect-ratio: 1 / 1;
    border-radius: 10px;
  }

  .footer-challenge-banner {height:35vh}
  .footer-banner-copy strong {font-size:35px}

  .main-visual-2026 .container,
  .main-visual-2026 .container-fluid {
    height: calc(100vh - 72px);
    width: 100% !important;
    padding-left: 3vw !important;
    padding-right: 3vw !important;
  }

  .main-visual-2026 .new-visual-inner {
    flex-direction: column !important;
    height: 100% !important;
    min-height: 0;
    padding-bottom: 0 !important;
  }

  .main-visual-2026 .new-visual-left,
  .main-visual-2026 .new-visual-right {
    flex: 0 0 auto !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  .main-visual-2026 .new-visual-left {
    flex: 0 0 calc(20vh - 72px) !important;
    height: calc(20vh - 72px);
    min-height: 0;
    box-sizing: border-box;
    padding: 0 !important;
    text-align: left;
  }

  .main-visual-2026 .visual-copy {
    width: 90%;
    transform: none;
	position:absolute;
	top:100px;
	left:50px;
  }

  .main-visual-2026 .visual-title {
    font-size:60px;
    line-height: 1.24;
  }

  .main-visual-2026 .visual-title-row,
  .main-visual-2026 .visual-title-word {
    display: block;
    margin-right: 0;
    white-space: normal;
  }

  .main-visual-2026 .visual-info {
    margin-top: 28px;
    font-size: 18px;
    line-height: 1.55;
  }

  .main-visual-2026 .new-visual-right {
    flex: 0 0 80vh !important;
    height: 80vh;
    max-height: 80vh;
    min-height: 0;
    box-sizing: border-box;
    justify-content: center;
    padding-bottom: 0 !important;
  }

  .main-visual-2026 .visual-image-wrap {
    height: 100%;
    align-items: flex-end;
    justify-content: center;
    padding-right: 0;
  }

  .main-visual-2026 .new-visual-right .keyvisual {
    width: auto !important;
    height: 100%;
    max-width: none !important;
    max-height: 100%;
    flex-shrink: 0;
    margin: 0 auto;
  }
}

@media screen and (max-width: 600px) {
  .main-visual-2026 {
    padding-top: 58px;
  }

  .main-visual-2026 .container,
  .main-visual-2026 .container-fluid {
    height: calc(100vh - 58px);
  }

  .main-visual-2026 .new-visual-left {
    flex-basis: calc(20vh - 58px) !important;
    height: calc(20vh - 58px);
  }

  .main-visual-2026 .visual-title {
    font-size: 55px;
  }

  .main-visual-2026 .visual-copy {left:30px}

  .main-visual-2026 .visual-info {
    font-size: 18px;
	padding-left:15px;
  }

  .main-visual-2026 .new-visual-right .keyvisual {height:60%}
  .challenge-guide-2026 {padding-left:5vw;padding-right:5vw}
  .challenge-guide-heading h2 {font-size:35px}
  .challenge-guide-heading p {font-size:15px;letter-spacing:-0.5px}
  .challenge-step-item p br {display:none}
  .footer-banner-copy {width:100%;text-align:center}
  .footer-banner-copy strong {font-size:25px}
  .footer-inner-2026 {grid-template-columns: 1fr;padding-left:5vw;padding-right:5vw;padding-top:30px}
  .footer-ministry-logo {width:100%;display:block;text-align:center;padding:10px}
  .footer-ministry-logo img {display:inline-block;max-width:150px}

  .nav {padding:80px 45px}
  .nav ul {justify-content: flex-start;}

  .site-header-2026 .container-fluid {padding-left:5vw;padding-right:5vw}

  .sub-visual-2026 .sub-visual-inner {
    position: relative !important;
    min-height: calc(350px - 76px) !important;
    padding: 0 !important;
  }

  .sub-visual-2026 .sub-visual-right {
    position: absolute !important;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 2;
    width: 100% !important;
    max-width: 100% !important;
    height: 100%;
    min-height: 0;
  }

  .sub-visual-2026 .sub-visual-image-wrap {
    align-items: flex-end;
    justify-content: flex-end;
    padding: 0 4vw 0 20vw;
  }

  .sub-visual-2026 .subtop-visual {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 210px;
    object-position: right bottom;
  }

	.instagram-guide {padding-left:5vw;padding-right:5vw;padding-bottom:50px}
	 .sub-visual-2026 .sub-visual-left{
        position:absolute !important;
        top:0 !important;
        left:0 !important;
        width:100% !important;
        height:100% !important;
        padding-left:5vw !important;
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
        transform:none !important;
        z-index:5 !important;
        box-sizing:border-box !important;
    }

    .sub-visual-2026 .sub-visual-copy{
        position:relative !important;
        left:auto !important;
        top:auto !important;
        transform:none !important;
        margin:0 !important;
        padding:0 !important;
        width:100% !important;
    }

    .sub-visual-2026 .sub-visual-title,
    .sub-visual-2026 .sub-visual-info{
        text-align:left !important;
    }
}


@media screen and (max-width: 390px) {

  	.nav {width:90%}
	nav ul li a {font-size:24px}


}

/* 2026 memorial introduction: main-page-only classes */
.memorial-about-2026 {
  --memorial-about-gap: clamp(48px, 6vw, 96px);
  --memorial-poster-width: 700px;
  box-sizing: border-box;
  width: 100%;
  padding: 150px 3vw;
  overflow: hidden;
  background: #fff;
  color: #111;
}

.memorial-about-2026 *,
.memorial-about-2026 *::before,
.memorial-about-2026 *::after {
  box-sizing: border-box;
}

.memorial-about-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--memorial-about-gap);
  width: 100%;
  max-width: 1600px;
  margin: 0 auto;
}

.memorial-about-poster {
  flex: 0 0 var(--memorial-poster-width);
  width: var(--memorial-poster-width);
  max-width: var(--memorial-poster-width);
  border-radius: 10px;
  box-shadow: 22px 26px 46px rgba(32, 28, 20, 0.16);
}

.memorial-about-poster img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

.memorial-about-content {
  flex: 1 1 0;
  min-width: 0;
  max-width: 760px;
  text-align: left;
}

.memorial-about-message {
  position: relative;
  margin: 0 0 34px;
  padding-top: 25px;
}

.memorial-about-message::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 30px;
  height: 1px;
  background: #111;
}

.memorial-about-message h2 {
  margin: 0 0 20px;
  color: #222;
  font-size: clamp(25px, 4vw, 40px);
  font-weight: 800;
  line-height: 1.18;
  letter-spacing: -1.5px;
}

.memorial-about-message p {
  margin: 0;
  color: #111;
  font-size: 17px;
  line-height: 1.45;
  word-break: keep-all;
}

.memorial-about-schedule {
  margin-top: 80px;
  padding: clamp(28px, 3vw, 44px);
  border-radius: 10px;
  background: #40b387;
  color: #fff;
  text-align: left;
}

.memorial-about-schedule h2 {
  margin: 0 0 24px;
  color: #fff;
  font-size: clamp(24px, 3vw, 40px);
  font-weight: 800;
  line-height: 1.35;
  letter-spacing: -1.5px;
  word-break: keep-all;
}

.memorial-about-schedule dl {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 18px;
  margin: 0;
  padding: 5px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  background: transparent;
}

.memorial-about-schedule dt,
.memorial-about-schedule dd {
  margin: 0;
  color: #fff;
  font-size: 17px;
  line-height: 1.55;
  word-break: keep-all;
}

.memorial-about-schedule dt {
  font-weight: 500;
  white-space: nowrap;
}

.memorial-about-schedule i {
  color: #fff;
}

.memorial-about-reveal {
  opacity: 1;
  transform: translateY(0);
}

.memorial-about-2026.is-reveal-ready .memorial-about-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 0.72s ease var(--memorial-reveal-delay, 0s),
    transform 0.82s cubic-bezier(0.22, 1, 0.36, 1) var(--memorial-reveal-delay, 0s);
  will-change: opacity, transform;
}

.memorial-about-2026.is-reveal-ready.is-visible .memorial-about-reveal {
  opacity: 1;
  transform: translateY(0);
}

.memorial-about-delay-1 { --memorial-reveal-delay: 0.15s; }
.memorial-about-delay-2 { --memorial-reveal-delay: 0.55s; }
.memorial-about-delay-3 { --memorial-reveal-delay: 1s; }

@media screen and (max-width: 1500px) {
  .memorial-about-2026 {
    --memorial-poster-width: 600px;
  }

  .memorial-about-schedule h2 {
    font-size: 30px;
  }

  .memorial-about-message p br {
    display: none;
  }
}

@media screen and (max-width: 1280px) {
  .memorial-about-2026 {
    --memorial-poster-width: 500px;
    --memorial-about-gap: 80px;
    padding-top: 100px;
    padding-bottom: 100px;
  }
}

@media screen and (max-width: 1024px) {
  .memorial-about-2026 {
    --memorial-poster-width: 400px;
    --memorial-about-gap: 50px;
  }

  .memorial-about-inner {
    align-items: flex-start;
  }
}

@media screen and (max-width: 820px) {
  .memorial-about-2026 {
    --memorial-poster-width: 100%;
    --memorial-about-gap: 50px;
    padding: 80px 5vw;
  }

  .memorial-about-inner {
    flex-direction: column;
  }

  .memorial-about-poster {
    max-width: 520px;
    margin: 0 auto;
  }

  .memorial-about-content {
    width: 100%;
    max-width: 100%;
  }

  .memorial-about-schedule {
    margin-top: 54px;
    padding: 30px 26px;
  }

  .memorial-about-schedule h2 br {
    display: none;
  }
}

@media screen and (max-width: 575px) {
  .memorial-about-2026 {
    padding-top: 60px;
    padding-bottom: 60px;
  }

  .memorial-about-message {
    margin-bottom: 28px;
  }

  .memorial-about-message h2 {
    font-size: 27px;
  }

  .memorial-about-message p {
    font-size: 16px;
    line-height: 1.75;
  }

  .memorial-about-schedule {
    margin-top: 42px;
    padding: 26px 22px;
  }

  .memorial-about-schedule h2 {
    font-size: 27px;
  }

  .memorial-about-schedule dl {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 14px 0;
  }

  .memorial-about-schedule dt,
  .memorial-about-schedule dd {
    font-size: 16px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .memorial-about-2026.is-reveal-ready .memorial-about-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* 2026 main visual ceremony title and single-line slogan */
.main-visual-2026 .visual-copy {
  width: max-content;
  max-width: none;
}

.main-visual-2026 .visual-kicker {
  display: flex;
  align-items: baseline;
  gap: 0.34em;
  margin: 0 0 18px;
  color: #626262;
  font-size: clamp(26px, 1.75vw, 34px);
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: -0.045em;
  white-space: nowrap;
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.55s ease 0.75s, transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.75s;
}

.main-visual-2026 .visual-kicker strong {
  font-weight: 600;
}

.main-visual-2026.is-active .visual-kicker {
  opacity: 1;
  transform: translateY(0);
}

.main-visual-2026 .visual-title {
  font-size: clamp(42px, 3vw, 60px);
}

.main-visual-2026 .visual-title-row {
  display: flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 0.22em;
  white-space: nowrap;
}

.main-visual-2026 .visual-title-word,
.main-visual-2026 .visual-title-word:last-child {
  display: inline-block;
  margin-right: 0;
  white-space: nowrap;
}

@media screen and (max-width: 1366px) {
  .main-visual-2026 .visual-title {
    font-size: clamp(36px, 3.5vw, 48px);
  }

  .main-visual-2026 .visual-kicker {
    font-size: clamp(22px, 1.8vw, 26px);
  }
}

@media screen and (max-width: 820px) {
  .main-visual-2026 .visual-copy {
    width: calc(100vw - 100px);
    max-width: none;
  }

  .main-visual-2026 .visual-kicker {
    margin-bottom: 12px;
    font-size: clamp(16px, 2.6vw, 20px);
  }

  .main-visual-2026 .visual-title {
    font-size: clamp(18px, 4vw, 32px);
  }

  .main-visual-2026 .visual-title-row {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.18em;
    white-space: nowrap;
  }

  .main-visual-2026 .visual-title-word,
  .main-visual-2026 .visual-title-word:last-child {
    display: inline-block;
    white-space: nowrap;
  }

  .main-visual-2026 .visual-info {
    margin-top: 20px;
    font-size: 16px;
  }
}

@media screen and (max-width: 600px) {
  .main-visual-2026 .visual-copy {
    width: calc(100vw - 60px);
  }

  .main-visual-2026 .visual-kicker {
    display: block;
    max-width: 100%;
    margin-bottom: 10px;
    font-size: 15px;
    white-space: normal;
  }

  .main-visual-2026 .visual-kicker > * {
    margin-right: 0.25em;
  }

  .main-visual-2026 .visual-title {
    font-size: clamp(16px, 4.8vw, 24px);
  }

  .main-visual-2026 .visual-info {
    margin-top: 16px;
    font-size: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .main-visual-2026 .visual-kicker {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* Main visual height: compact desktop, full-height mobile */
@media screen and (min-width: 821px) {
  .main-visual-2026 {
    height: 80vh;
    min-height: 560px;
  }

  .main-visual-2026 .new-visual-left {
    position: relative;
    height: 100% !important;
    align-items: stretch;
  }

  .main-visual-2026 .visual-copy {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
  }

  .main-visual-2026 .new-visual-right .keyvisual {
    width: auto !important;
    height: 100%;
    max-width: none !important;
    max-height: 100%;
    object-fit: contain;
    object-position: right bottom;
  }
}

@media screen and (max-width: 820px) {
  .main-visual-2026 {
    height: 100vh;
    min-height: 100vh;
    max-height: 100vh;
  }

  .main-visual-2026 .visual-title-row {
    display: grid;
    grid-template-columns: max-content max-content;
    column-gap: 0.18em;
    row-gap: 0.02em;
    white-space: normal;
  }

  .main-visual-2026 .visual-title-word,
  .main-visual-2026 .visual-title-word:last-child {
    display: block;
    margin-right: 0;
    white-space: nowrap;
  }
}

/* Final mobile main-copy overrides: keep this block at the end of the file. */
@media screen and (max-width: 820px) {
  .main-visual-2026 .visual-copy {
    top: clamp(150px, 20vh, 185px) !important;
    transform: none !important;
  }

  .main-visual-2026 .visual-kicker {
    display: grid !important;
    grid-template-columns: max-content max-content;
    align-items: baseline;
    column-gap: 0.3em;
    row-gap: 0.05em;
    margin: 0 0 14px;
    font-size: clamp(21px, 3.6vw, 28px) !important;
    line-height: 1.25;
    white-space: nowrap;
  }

  .main-visual-2026 .visual-kicker > span:first-child {
    grid-column: 1 / -1;
  }

  .main-visual-2026 .visual-kicker > * {
    margin: 0;
  }

  .main-visual-2026 .visual-title {
    font-size: clamp(28px, 6vw, 42px) !important;
    line-height: 1.15;
  }

  .main-visual-2026 .visual-info {
    margin-top: 22px !important;
    font-size: 20px !important;
    line-height: 1.5;
  }
}

@media screen and (max-width: 600px) {
  .main-visual-2026 .visual-copy {
    top: clamp(150px, 20vh, 175px) !important;
  }

  .main-visual-2026 .visual-kicker {
    margin-bottom: 12px;
    font-size: 21px !important;
  }

  .main-visual-2026 .visual-title {
    font-size: clamp(28px, 8.3vw, 36px) !important;
  }

  .main-visual-2026 .visual-info {
    margin-top: 20px !important;
    font-size: 19px !important;
  }
}

/* Keep each mobile slogan line independent so word spacing stays natural. */
.main-visual-2026 .visual-title-line {
  display: inline-flex;
  align-items: baseline;
  gap: 0.22em;
  white-space: nowrap;
}

@media screen and (max-width: 820px) {
  .main-visual-2026 .visual-kicker {
    display: flex !important;
    flex-wrap: wrap;
    column-gap: 0.24em;
    row-gap: 0.05em;
  }

  .main-visual-2026 .visual-kicker > span:first-child {
    grid-column: auto;
    flex: 0 0 100%;
  }

  .main-visual-2026 .visual-title-row {
    display: block !important;
  }

  .main-visual-2026 .visual-title-line {
    display: flex;
    width: max-content;
    gap: 0.12em;
  }

  .main-visual-2026 .visual-title-line + .visual-title-line {
    margin-top: 0.02em;
  }
}
