@charset "utf-8";
/* speech3 - 취임사 글래스모피즘 (PC 기준) */

.sp_page{--wide:160rem; --glass:rgba(255,255,255,.72); --glass_bd:rgba(255,255,255,.62); --ink3:#12253d; --ink3_sub:#3d5573; --pt:#1a5fb4; --pt2:#2ba7ac;}

/* ── 배경 ───────────────────────────── */
.sp_page.sub_content{background:linear-gradient(180deg,#fbfcfe 0%,#f4f7fb 55%,#f7fafb 100%); padding:2rem 0 14rem;}
.sp_page .bg_dot{opacity:.3; background-image:radial-gradient(rgba(18,37,61,.09) 1.2px,transparent 1.2px); background-size:26px 26px;}
.sp_page .bg_blur1,
.sp_page .bg_blur2{display:none;}
.sp_page .sp_aur{position:absolute; border-radius:50%; pointer-events:none; filter:blur(11rem); opacity:.55; z-index:0;}
.sp_page .sp_aur.a1{width:62rem; height:62rem; left:-16rem; top:-14rem; background:radial-gradient(circle,rgba(43,167,172,.22),transparent 70%);}
.sp_page .sp_aur.a2{width:70rem; height:70rem; right:-20rem; top:18%; background:radial-gradient(circle,rgba(26,95,180,.16),transparent 70%);}
.sp_page .sp_aur.a3{width:56rem; height:56rem; left:4%; top:52%; background:radial-gradient(circle,rgba(93,124,255,.12),transparent 70%);}
.sp_page .sp_aur.a4{width:64rem; height:64rem; right:2%; bottom:-10rem; background:radial-gradient(circle,rgba(43,167,172,.16),transparent 70%);}
/* .sub_in 폭·좌우 여백은 sub.css 공통 규칙을 그대로 사용한다 (개별 지정 금지) */

/* ── 상단 유틸 ─────────────────────── */
.sp_page .head_util{display:flex; gap:.8rem;}
.sp_page .util_btn{display:grid; place-items:center; width:4.6rem; height:4.6rem; border-radius:50%; color:#1c3a5e;
	background:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.9); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); transition:background .25s,transform .25s;}
.sp_page .util_btn:hover{background:#fff; color:var(--pt); transform:translateY(-2px);}
.sp_page .util_btn svg{width:2rem; height:2rem; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round;}

/* ── 무대 ─────────────────────────── */
.speech_area{position:relative; z-index:2; display:flex; align-items:flex-start; gap:2.4rem; width:100%; max-width:none; margin:0;}

/* ── 본문 글래스 시트 ──────────────── */
.sp_sheet{position:relative; z-index:3; flex:1 1 auto; min-width:0; padding:6.4rem 5.6rem 5.6rem;
	border-radius:3.6rem; background:rgba(255,255,255,.6); border:1px solid rgba(255,255,255,.85);
	backdrop-filter:blur(34px) saturate(150%); -webkit-backdrop-filter:blur(34px) saturate(150%);
	box-shadow:0 3rem 7rem rgba(20,50,90,.14), inset 0 1px 0 rgba(255,255,255,.9);}
.sp_sheet::before{content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
	background:linear-gradient(150deg,rgba(255,255,255,.55),rgba(255,255,255,0) 42%);}
.sp_sheet > *{position:relative;width:auto;/* max-width:98rem; */margin-inline:0 auto;}
.sp_sheet{--col:104rem; container-type:inline-size; container-name:sheet;     word-break: keep-all;}
/* 큰 화면 : 컨테이너는 헤더와 동일하므로 시트 안쪽 여백을 늘려 본문 줄길이를 유지한다 */
	@media (min-width:1600px){
		.sp_sheet{padding:7rem 7rem 6rem;}
		/* 텍스트만 멈추고 원형만 떨어져 보이던 문제 : 두 요소를 함께 키운다 */
		.sp_intro{grid-template-columns:minmax(0,1fr) 40rem; column-gap:4rem;}
		.sp_intro .in_txt{max-width:86rem; padding:5.6rem 0 2rem 6rem;}
		.sp_intro .in_txt::before{width:32rem; height:38rem; border-width:3rem;}
		.sp_intro .in_inner{padding:3rem 0 3.2rem 3.6rem;}
		.sp_intro .in_hi{font-size:3.2rem;}
		.sp_intro .nm_pre{font-size:4rem;}
		.sp_intro .in_name strong{font-size:5rem;}
		.sp_intro .in_name .nm_tail{font-size:3.4rem;}
		.sp_intro .in_lede{max-width:64rem;}
		.sp_intro .in_sub{font-size:2rem;}
		.sp_intro .in_visual{width:40rem; height:40rem; margin-right:3rem;}
		.sp_intro .in_face::after{right:-4rem; width:12.4rem; height:12.4rem;}
		.sp_intro .in_face::before{right:9.6rem; bottom:-5rem; width:4.6rem; height:4.6rem;}
	}

/* 인트로 : 글래스모피즘 */
.sp_intro{position:relative; display:grid; grid-template-columns:minmax(0,1fr) 32rem; align-items:center; column-gap:2.4rem;
	max-width:none; width:auto; margin:0; padding:1rem 0 0; background:none; border:0; border-bottom:0; border-radius:0; box-shadow:none; overflow:visible;
	opacity:0; transform:translateY(2.4rem); transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
.sp_intro.is_in{opacity:1; transform:none;}
.sp_intro::before{display:none;}

.sp_intro .in_txt{position:relative; z-index:2; max-width:none; padding:4.6rem 0 1.5rem 5rem; text-align:left;}
/* 좌상단 각진 프레임 */
.sp_intro .in_txt::before{content:'';position:absolute;z-index:-1;left:0;top:0;width:26rem;height: 31rem;pointer-events:none;border:2.4rem solid #e3e9f1;}
.sp_intro .in_inner{position:relative; z-index:1; background:#fff; padding:2.4rem 3rem 2.6rem 3rem;}
.sp_intro .in_frame{display:none;}

.sp_intro .in_hi{margin: 0.5rem 0 1.5rem;font-size: 3rem;font-weight: 500;line-height:1.5;letter-spacing:.01em;color:#6b7686;font-family: 'YuhanKimberlyPureunSup';}
.sp_intro .in_name{display:block; margin:0; line-height:1.32;}
.sp_intro .nm_pre{display:block;margin: 0 0 1rem;font-size: 3.7rem;font-weight:600;line-height:1.45;letter-spacing: -.025em;color:#12253d;font-family: 'YuhanKimberlyPureunSup';}
.sp_intro .in_name strong{font-size: 4.3rem !important;font-weight:800;line-height:1.1;letter-spacing:-.035em;color:#1a5fa8;font-family: 'YuhanKimberlyPureunSup';/* 배경에 그라디언트 적용 */background: linear-gradient(100deg, var(--point), #2ba7ac);
    
    /* 배경을 글자 모양으로 자르기 (웹키트 브라우저 호환성 포함) */-webkit-background-clip: text;background-clip: text;
    
    /* 원래 글자 색상을 투명하게 만들어 배경이 보이도록 설정 */-webkit-text-fill-color: transparent;color: transparent;}
.sp_intro .in_name .nm_tail{margin-left:1rem;font-size:3rem;font-weight:500;letter-spacing:-.02em;color:#12253d;font-family: 'YuhanKimberlyPureunSup';}

.sp_intro .in_lede{margin-top: 3rem;max-width: 62rem;padding-top:2.4rem;border-top: 1px dotted rgba(18,37,61,.2);}
.sp_intro .in_sub{margin:0; font-size:1.85rem; font-weight:400; line-height:1.95; letter-spacing:-.01em; color:#59708c; text-wrap:pretty;}

.sp_intro .in_visual{position:relative; z-index:3; justify-self:center; width:32rem; height:32rem; margin-right:2.4rem;}
.sp_intro .in_visual::before{content:''; position:absolute; inset:0; border-radius:50%;
	background:linear-gradient(150deg,rgba(255,255,255,.7),rgba(232,247,248,.42));
	border:1px solid rgba(255,255,255,.9);
	backdrop-filter:blur(18px) saturate(150%); -webkit-backdrop-filter:blur(18px) saturate(150%);
	box-shadow:0 1.6rem 3.4rem -1.2rem rgba(20,50,90,.12), inset 0 1px 0 rgba(255,255,255,.95);}
.sp_intro .in_visual::after{display:none;}
.sp_intro .in_chev,.sp_intro .in_tri,.sp_intro .in_dots{display:none;}
.sp_intro .in_face{position:absolute; inset:0; z-index:2; background:none; border:1px solid rgba(255,255,255,.85); border-radius:50%; box-shadow:inset 0 1px 0 rgba(255,255,255,.95), 0 .8rem 2.4rem -1rem rgba(20,50,90,.14); overflow:visible; aspect-ratio:auto;}
.sp_intro .in_face::after{
	content:'';
	position:absolute;
	right:-3.2rem;
	bottom: 0.2rem;
	z-index:3;
	width:10.4rem;
	height:10.4rem;
	border-radius:50%;
	pointer-events:none;
	background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.55),rgba(127,227,232,.24) 48%,rgba(26,95,180,.14) 100%);
	border:1px solid rgba(255,255,255,.7);
	backdrop-filter:blur(10px) saturate(150%);
	-webkit-backdrop-filter:blur(10px) saturate(150%);
	box-shadow:0 1.2rem 2.6rem -1.2rem rgba(20,50,90,.18), inset 0 1px 0 rgba(255,255,255,.85);
	}
.sp_intro .in_face::before{
	content:'';
	position:absolute;
	right:8rem;
	bottom: -4.2rem;
	z-index:3;
	width:3.8rem;
	height:3.8rem;
	border-radius:50%;
	pointer-events:none;
	background:linear-gradient(150deg,rgba(255,255,255,.6),rgba(127,227,232,.2));
	border:1px solid rgba(255,255,255,.7);
	box-shadow:0 .6rem 1.4rem -.6rem rgba(20,50,90,.16);
	}
.sp_intro .in_face img{position:absolute; left:50%; top:50%; width:112%; height:112%; max-width:none; border-radius:50%; object-fit:contain; object-position:50% 50%; transform:translate(-50%,-50%);
	filter:drop-shadow(0 1.2rem 2.4rem rgba(20,50,90,.10));}


/* 본문 단락 */
.sp_part{padding:3.2rem 0; border-bottom:1px solid rgba(18,37,61,.1);
	opacity:0; transform:translateY(3rem); transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1);}
.sp_part.is_in{opacity:1; transform:none;}
.sp_part p{font-size:1.8rem; line-height:2.05; color:black; letter-spacing:-.02rem; text-wrap:pretty;}
.sp_part p + p{/* margin-top:2.2rem; */}
.sp_part .hl{font-style:normal; font-weight:700; color:#0f3f7d; background:linear-gradient(transparent 62%,rgba(127,227,232,.55) 62%); padding:0 .2rem;}
.sp_part:last-of-type{border-bottom:0;}

/* 서명 */
.sp_signline{
	display:flex;
	align-items: flex-end;
	justify-content:flex-end;
	gap:1.6rem;
	margin-top:4rem;
	padding-top:3.2rem;
	border-top:1px solid rgba(18,37,61,.12);
	opacity:0;
	transform:translateY(2rem);
	transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
	}
.sp_signline.is_in{opacity:1; transform:none;}
.sp_signline .sg_date{font-size:1.6rem; color:#61748c;}
.sp_signline .sg_name{font-size:1.9rem;color:var(--ink3);font-weight: 700;}
.sp_signline .sg_name strong{margin-left:.8rem; font-size:2.4rem; font-weight:800; letter-spacing:-.06rem;}

/* ── 우측 축하영상 레일 ────────────── */
.sp_floats{position:relative; flex:0 0 30rem; width:30rem; z-index:4; align-self:stretch; overflow:visible;}
.fl_rail{
	position:sticky;
	top:8rem;
	display:flex;
	flex-direction:column;
	gap:2rem;
	padding:3rem 2.4rem 3.2rem;
	overflow:visible;
	will-change:transform;
	border-radius: 3.2rem;
	border:1px solid rgba(255,255,255,.7);
	background:rgba(255,255,255,.55);
	backdrop-filter:blur(40px) saturate(150%);
	-webkit-backdrop-filter:blur(40px) saturate(150%);
	box-shadow:0 3rem 7rem rgba(16,44,84,.14), inset 0 1px 0 rgba(255,255,255,.9);
	}
.fl_rail::before{content:''; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
	background:linear-gradient(180deg,rgba(255,255,255,.4),rgba(255,255,255,0) 40%);}
.fl_rail::after{content:''; position:absolute; left:8%; right:8%; top:0; height:1px; pointer-events:none;
	background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.95),rgba(255,255,255,0));}
.fl_rail > *{position:relative;}
.sp_floats .fl_list{display:flex; flex-direction:column; gap:2rem; pointer-events:auto;}
.sp_floats .fl_head{display:block; padding-bottom:1.6rem; border-bottom:1px solid rgba(26,95,180,.14);}
.sp_floats .fh_eyebrow{display:inline-flex; align-items:center; height:2.4rem; margin-bottom:.9rem; padding:0 1rem; border-radius:999px;
	background:rgba(26,95,180,.1); font-size:1.1rem; font-weight:700; line-height:1; letter-spacing:.14em; text-transform:uppercase; color:#1a5fb4;}
.sp_floats .fh_tit{font-size: 2rem;font-weight:800;letter-spacing:-.07rem;line-height:1.3;color:#0f2740;word-break:keep-all;font-family: 'YuhanKimberlyPureunSup';}
.sp_floats .fh_desc{margin-top:.5rem; font-size:1.5rem; color:#5b7a9c;}
.sp_floats .fl_item{position:relative; width:100%; opacity:0;}
.sp_floats .fl_item.is_in{opacity:1; animation:figFade .9s cubic-bezier(.16,1,.3,1) both;}
.fl_more{position:relative; display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem;
	min-height:6rem; padding:0 1.4rem 0 2.2rem; border-radius:1.8rem; overflow:hidden;
	font-size:1.6rem; font-weight:700; line-height:1; letter-spacing:-.03rem; color:#0f3f7d; pointer-events:auto;
	border:1px solid rgba(255,255,255,.75); background:rgba(255,255,255,.6);
	backdrop-filter:blur(18px) saturate(170%); -webkit-backdrop-filter:blur(18px) saturate(170%);
	box-shadow:0 1.2rem 2.8rem rgba(16,44,84,.14), inset 0 1px 0 rgba(255,255,255,.95);
	transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s, background .35s, color .3s;}
.fl_more:hover{transform:translateY(-.2rem); color:#0b2f5e;
	background:rgba(255,255,255,.85);
	box-shadow:0 1.8rem 3.6rem rgba(16,44,84,.2), inset 0 1px 0 #fff;}
.fl_more span{display:grid; place-items:center; width:3.2rem; height:3.2rem; border-radius:50%;
	background:rgba(26,95,180,.12); color:#1a5fb4; font-size:1.4rem; transition:transform .3s, background .3s, color .3s;}
.fl_more:hover span{transform:translateX(.3rem); background:#1a5fb4; color:#fff;}

/* 카드 (공통) */
.fl_card{display:block; border-radius:2rem; overflow:hidden; color:#12253d;
	background:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.9);
	backdrop-filter:blur(20px) saturate(160%); -webkit-backdrop-filter:blur(20px) saturate(160%);
	box-shadow:0 2rem 4.4rem rgba(20,50,90,.18), inset 0 1px 0 rgba(255,255,255,.9);
	transition:transform .4s cubic-bezier(.16,1,.3,1), box-shadow .4s, border-color .3s, background .3s;}
.fl_card:hover{transform:translateY(-.8rem); color:#12253d; border-color:#fff; background:rgba(255,255,255,.78);
	box-shadow:0 3rem 6rem rgba(20,50,90,.25), 0 0 0 1px rgba(43,167,172,.3);}
.fl_media{position:relative; display:block; aspect-ratio:16/9; background:rgba(200,216,234,.7); overflow:hidden;}
.fl_media image-slot{display:block; width:100%; height:100%;}
.fl_play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center;
	width:4.4rem; height:4.4rem; border-radius:50%; font-size:1.3rem; color:#0d2540; padding-left:.2rem;
	background:rgba(255,255,255,.85); box-shadow:0 .8rem 2rem rgba(0,0,0,.35); transition:transform .35s,background .3s;}
.fl_card:hover .fl_play{transform:translate(-50%,-50%) scale(1.12); background:#fff;}
.fl_cap{display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.6rem 1.8rem 1.8rem;}
.fl_who{display:flex; flex-direction:column; gap:.3rem; min-width:0;}
.fl_name{font-size:1.55rem; font-weight:700; letter-spacing:-.03rem; color:#12253d; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.fl_role{font-size:1.3rem; color:rgba(18,37,61,.55); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.fl_time{flex:0 0 auto; display:inline-flex; align-items:center; height:2.4rem; font-family:"Pretendard Variable",sans-serif; font-size:1.2rem; font-weight:600; line-height:1; color:#1a5fb4;
	padding:0 .9rem; border-radius:999px; background:rgba(26,95,180,.1); border:1px solid rgba(26,95,180,.16);}

/* ── 축하 영상 메시지 ──────────────── */
.sp_wall{position:relative; z-index:3; width:100%; max-width:none; margin:10rem 0 0; padding:0;
	opacity:0; transform:translateY(3rem); transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1);}
.sp_wall.is_in{opacity:1; transform:none;}
.sp_wall .wl_head{display:flex; align-items:flex-end; justify-content:space-between; gap:3rem; margin-bottom:2.8rem; padding-bottom:2rem;
	border-bottom:1px solid rgba(18,37,61,.14);}
.sp_wall .wl_tit{display:flex; align-items:center; gap:1.1rem; font-size:3.2rem; font-weight:800; letter-spacing:-.1rem; color:#0f2740;}
.sp_wall .wl_tit::before{content:''; width:1rem; height:1rem; border-radius:50%; background:linear-gradient(140deg,#54cdd4,#1a5fb4); box-shadow:0 0 1.6rem rgba(43,167,172,.55);}
.sp_wall .wl_desc{margin-top:.8rem; font-size:1.55rem; color:#5b7a9c;}
.sp_wall .wl_count{display:flex; align-items:baseline; gap:.6rem; font-family:"Pretendard Variable",sans-serif; color:#5b7a9c;}
.sp_wall .wl_count strong{font-size:3.2rem; font-weight:700; letter-spacing:-.1rem; color:#1a5fb4;}
.sp_wall .wl_count span{font-family:"Pretendard Variable",sans-serif; font-size:1.4rem;}
.sp_wall .wl_slider{position:relative;}
.sp_wall .fl_list{display:flex; gap:2rem; overflow-x:auto; overflow-y:visible; scroll-snap-type:x proximity; scroll-behavior:smooth;
	padding:3rem 0 5.5rem; margin:-3rem 0 -5.5rem; scrollbar-width:none;}
.sp_wall .fl_list::-webkit-scrollbar{display:none;}
.sp_wall .fl_item{flex:0 0 calc((100% - 8rem)/5); scroll-snap-align:start; opacity:1;}
.sp_wall .fl_item.is_sm{flex:0 0 calc((100% - 8rem)/5);}
.wl_arw{position:absolute; top:32%; transform:translateY(-50%); display:grid; place-items:center; width:5rem; height:5rem; border-radius:50%;
	font-size:2.4rem; line-height:1; color:#1a5fb4; background:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.95);
	backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 1.4rem 3.2rem rgba(20,50,90,.2);
	transition:opacity .25s,transform .25s,background .25s; z-index:5;}
.wl_arw.is_prev{left:-2.6rem;}
.wl_arw.is_next{right:-2.6rem;}
.wl_arw:hover{background:#fff; transform:translateY(-50%) scale(1.06);}
.wl_arw:disabled{opacity:0; pointer-events:none;}

/* 병합(1400 이하) */
.sp_floats .fl_item.is_merged{position:static; width:auto; transform:none !important;}

/* ── 영상 모달 ─────────────────────── */
.vd_modal{position:fixed; inset:0; z-index:1000; display:grid; place-items:center;}
.vd_modal[hidden]{display:none;}
.vd_dim{position:absolute; inset:0; background:rgba(12,30,56,.42); backdrop-filter:blur(14px) saturate(130%); -webkit-backdrop-filter:blur(14px) saturate(130%); opacity:0; transition:opacity .26s;}
.vd_modal.is_on .vd_dim{opacity:1;}
.vd_panel{position:relative; width:min(96rem,90vw); border-radius:3rem; padding:2.4rem; color:#12253d;
	background:linear-gradient(150deg,rgba(255,255,255,.72),rgba(255,255,255,.5) 46%,rgba(233,242,252,.55));
	border:1px solid rgba(255,255,255,.85);
	backdrop-filter:blur(40px) saturate(165%); -webkit-backdrop-filter:blur(40px) saturate(165%);
	box-shadow:0 4rem 9rem rgba(10,30,60,.32), inset 0 1px 0 rgba(255,255,255,.95);
	opacity:0; transform:translateY(2rem) scale(.98); transition:opacity .26s,transform .26s;}
.vd_modal.is_on .vd_panel{opacity:1; transform:none;}
.vd_close{position:absolute; right:1.6rem; top:-5.6rem; display:grid; place-items:center; width:4.4rem; height:4.4rem; padding:0; line-height:0;
	border-radius:50%; color:#0f2740; font-size:1.6rem;
	background:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.95);
	backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); box-shadow:0 .8rem 2rem rgba(16,44,84,.14);
	transition:background .25s, transform .25s;}
.vd_close svg{display:block; width:1.7rem; height:1.7rem; fill:none; stroke:currentColor; stroke-width:2.8; stroke-linecap:round;}
.vd_close:hover{background:#fff; color:#0f3f7d; transform:rotate(90deg);}
.vd_stage{position:relative; aspect-ratio:16/9; border-radius:1.8rem; overflow:hidden; background:rgba(11,26,44,.82);
	border:1px solid rgba(255,255,255,.35); box-shadow:0 2.4rem 5rem rgba(10,30,60,.3); display:grid; place-items:center;}
.vd_frame{position:absolute; inset:0;}
.vd_frame iframe,.vd_frame video{width:calc(100% + 2px); height:calc(100% + 2px); border:0; display:block;}
.vd_empty{font-size:1.5rem; color:rgba(255,255,255,.62);}
.vd_meta{display:flex; align-items:center; justify-content:space-between; gap:1.6rem; padding:1.8rem .6rem .2rem;}
.vd_who{display:flex; flex-direction:column; gap:.3rem;}
.vd_name{font-size:2rem; font-weight:800; letter-spacing:-.05rem; color:#0f2740;}
.vd_role{font-size:1.4rem; color:rgba(18,37,61,.55);}
.vd_time{font-family:"Pretendard Variable",sans-serif; font-size:1.3rem; font-weight:600; color:#0f3f7d; padding:.5rem 1.1rem; border-radius:999px;
	background:rgba(255,255,255,.6); border:1px solid rgba(255,255,255,.9); box-shadow:0 .6rem 1.6rem rgba(16,44,84,.1);}

/* ── 좁은 화면(간이 대응) ──────────── */
@media (max-width:1600px){
	.sp_sheet{padding:5.6rem 4.4rem 5rem;}
	.sp_floats{flex-basis:27rem; width:27rem;}
	.sp_wall .fl_item,.sp_wall .fl_item.is_sm{flex:0 0 calc((100% - 6rem)/4);}
}
@media (min-width:1281px) and (max-width:1600px){
	.sp_intro{margin:0; grid-template-columns:minmax(0,1fr) 30rem;}
	.sp_intro .in_visual{width:30rem; height:30rem; margin-right:2rem;}
	.sp_intro .in_txt{padding:3.6rem 0 1.5rem 4rem;}
}
@media (max-width:1280px){
	.sp_floats{display:none;}
	.speech_area{display:block;}
	.sp_sheet{padding:4.8rem 3.4rem 4.4rem;}
	.sp_sheet > *{max-width:104rem;}
	.sp_wall .fl_item,.sp_wall .fl_item.is_sm{flex:0 0 calc((100% - 4rem)/3);}
}

/* ── 인트로 : 좁은 폭 세로 구성 ────────────────────────────
   1280px 이하에서는 좌우 2단이 무너지므로, 인물 원형을 카드 위에
   걸치는 세로 구성으로 바꾼다. 크기는 시트(=카드) 폭 기준 cqw 로
   잡아 태블릿~소형 단말까지 한 벌의 규칙으로 연속 변화시킨다. */
@media (max-width:1280px){
/* @intro-mobile-start */
	/* PC 의 "각진 프레임 + 흰 카드 + 원형 인물" 구성을 세로로 접는다.
	   가운데 정렬 대신 PC 와 같은 좌측 정렬을 유지해 국문 가독성을 지키고,
	   인물 원형은 카드 우상단에 살짝 걸쳐 여백을 줄인다.
	   --pic 원형 지름 / --ovl 카드와 겹치는 양 */
	.sp_intro{--pic:clamp(12rem,30cqw,18rem); --ovl:calc(var(--pic) * .32);
		grid-template-columns:minmax(0,1fr); column-gap:0; row-gap:0; justify-items:stretch;
		align-items:start; margin:0; padding:0;}

	/* 인물 원형 : 카드 우상단에 걸친다 */
	.sp_intro .in_visual{order:-1; justify-self:end; width:var(--pic); height:var(--pic);
		margin:0 clamp(.8rem,3cqw,2.4rem) calc(var(--ovl) * -1) 0;}
	.sp_intro .in_visual::before{background:linear-gradient(160deg,#fff,rgba(224,240,247,.92));
		box-shadow:0 1.8rem 3.6rem -1.6rem rgba(20,50,90,.22), inset 0 1px 0 #fff;}
	/* 떠 있는 장식 원은 카드 위에 걸쳐 지저분해지므로 감춘다 */
	.sp_intro .in_face::before,.sp_intro .in_face::after{display:none;}
	/* 이미지가 원 밖으로 넘쳐 카드를 덮으므로 원으로 자른다 */
	.sp_intro .in_face{overflow:hidden; border-color:rgba(255,255,255,.95);}
	.sp_intro .in_face img{width:106%; height:106%;}

	/* 좌상단 각진 프레임 : PC 와 동일한 모티프를 축소해 유지 */
	.sp_intro .in_txt{width:auto; max-width:none; text-align:left;
		padding:clamp(1.2rem,3cqw,2.2rem) 0 0 clamp(1.6rem,4.4cqw,3rem);}
	.sp_intro .in_txt::before{display:block; left:0; top:0;
		width:clamp(9rem,26cqw,15rem); height:clamp(12rem,32cqw,19rem);
		border-width:clamp(1.2rem,3.4cqw,1.9rem);}

	.sp_intro .in_inner{border-radius:0;
		padding:calc(var(--ovl) + clamp(1.4rem,3cqw,2.2rem)) clamp(1.8rem,5cqw,3rem) clamp(2.4rem,5cqw,3.2rem);
		box-shadow:0 2.4rem 5.6rem -3rem rgba(20,50,90,.3);}

	.sp_intro .in_hi{margin:0 0 clamp(.6rem,1.4cqw,1.2rem);
		font-size:clamp(1.7rem,4cqw,2.2rem); letter-spacing:.01em;}
	.sp_intro .nm_pre{margin:0 0 clamp(.3rem,.8cqw,.8rem); font-size:clamp(1.8rem,4.4cqw,2.6rem); line-height:1.4;}
	.sp_intro .in_name{line-height:1.2;}
	.sp_intro .in_name strong{font-size:clamp(3rem,9cqw,4.6rem);}
	.sp_intro .in_name .nm_tail{margin-left:.5rem; font-size:clamp(1.8rem,4.4cqw,2.4rem);}

	/* 점선 대신 짧은 그라디언트 규칙선(좌측 정렬) */
	.sp_intro .in_lede{position:relative; margin:clamp(1.8rem,3.6cqw,2.6rem) 0 0; max-width:none;
		padding-top:clamp(1.8rem,3.2cqw,2.4rem); border-top:0;}
	.sp_intro .in_lede::before{content:''; position:absolute; left:0; top:0; width:4.8rem; height:2px;
		border-radius:2px; background:linear-gradient(90deg,var(--point),#2ba7ac);}
	.sp_intro .in_sub{font-size:clamp(1.65rem,3.8cqw,1.9rem); line-height:1.95; letter-spacing:-.015em;
		word-break:keep-all; text-wrap:pretty;}
	.sp_intro .in_sub br{display:none;}
	/* @intro-mobile-end */
}
@media (max-width:900px){
	.sp_wall .fl_item{flex:0 0 calc((100% - 2rem)/2);}
}
@media (prefers-reduced-motion:reduce){
	.sp_intro,.sp_part,.sp_signline,.sp_wall{opacity:1; transform:none; transition:none;}
}


/* 모바일 전용 전체보기 진입 버튼 (우측 레일이 숨겨지는 구간) */
.sp_more_mo{display:none;}
@media (max-width:1280px){
	.sp_more_mo{display:flex; margin:4rem 0 0;}
}

/* ── 축하 영상 전체보기 모달 ───────── */
.gl_modal{position:fixed; inset:0; z-index:1010; display:grid; place-items:center; padding:4rem 2rem;}
.gl_modal[hidden]{display:none;}
.gl_dim{position:absolute; inset:0; background:rgba(12,30,56,.42); backdrop-filter:blur(14px) saturate(130%); -webkit-backdrop-filter:blur(14px) saturate(130%); opacity:0; transition:opacity .26s;}
.gl_modal.is_on .gl_dim{opacity:1;}
.gl_panel{position:relative; display:flex; flex-direction:column; width:min(124rem,92vw); height:min(86vh,92rem);
	border-radius:3rem; padding:3.2rem 3.2rem 2.8rem; color:#12253d; overflow:hidden;
	background:linear-gradient(150deg,rgba(255,255,255,.72),rgba(255,255,255,.5) 46%,rgba(233,242,252,.55));
	border:1px solid rgba(255,255,255,.85);
	backdrop-filter:blur(40px) saturate(165%); -webkit-backdrop-filter:blur(40px) saturate(165%);
	box-shadow:0 4rem 9rem rgba(10,30,60,.32), inset 0 1px 0 rgba(255,255,255,.95);
	opacity:0; transform:translateY(2rem) scale(.98); transition:opacity .26s,transform .26s;}
.gl_modal.is_on .gl_panel{opacity:1; transform:none;}
.gl_close{flex:0 0 auto; display:grid; place-items:center; width:4.2rem; height:4.2rem; padding:0; line-height:0; border-radius:50%; color:#0f2740;
	background:rgba(255,255,255,.85); border:1px solid rgba(255,255,255,.95);
	box-shadow:0 .8rem 2rem rgba(16,44,84,.14); transition:background .25s, color .25s, transform .25s;}
.gl_close svg{display:block; width:1.6rem; height:1.6rem; fill:none; stroke:currentColor; stroke-width:2.8; stroke-linecap:round;}
.gl_close:hover{background:#0f2740; color:#fff; transform:rotate(90deg);}

.gl_head{display:flex; align-items:center; gap:1.6rem; padding-bottom:1.8rem; margin-bottom:2rem;
	border-bottom:1px solid rgba(255,255,255,.7); box-shadow:0 1px 0 rgba(26,95,180,.1);}
.gl_hstack{position:relative; display:grid; min-width:0;}
.gl_hstack > *{grid-area:1/1; min-width:0; transition:opacity .28s ease;}
.gl_htxt{min-width:0;}
.gl_eyebrow{display:inline-flex; align-items:center; height:2.2rem; margin-bottom:.7rem; padding:0 1rem; border-radius:999px;
	background:rgba(26,95,180,.1); font-size:1.1rem; font-weight:700; line-height:1; letter-spacing:.14em; text-transform:uppercase; color:#1a5fb4;}
.gl_tit{flex:0 0 auto; font-size:2.6rem; font-weight:800; letter-spacing:-.06rem; line-height:1.25; color:#0f2740; font-family:'YuhanKimberlyPureunSup';}
.gl_hswap{display:grid; align-self:center; margin-left:auto; margin-right:.8rem; justify-items:end;}
.gl_hswap > *{grid-area:1/1; transition:opacity .28s ease;}
.gl_count{position:relative; min-width:0; padding-left:1.4rem; font-size:1.5rem; color:#5b7a9c; white-space:nowrap;}
.gl_count::before{content:''; position:absolute; left:0; top:.1em; width:1px; height:1.15em; background:rgba(26,95,180,.28);}
.gl_count strong{margin-right:.2rem; font-size:1.7rem; font-weight:800; color:#1a5fb4; letter-spacing:-.03rem;}
.gl_back{align-self:center; display:inline-flex; align-items:center; gap:.5rem; height:4.2rem; padding:0 1.8rem 0 1.4rem; border-radius:999px;
	opacity:0; visibility:hidden;
	font-size:1.5rem; font-weight:700; letter-spacing:-.03rem; color:#0f3f7d;
	background:rgba(255,255,255,.55); border:1px solid rgba(255,255,255,.9);
	backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%);
	box-shadow:0 1rem 2.4rem rgba(16,44,84,.12), inset 0 1px 0 rgba(255,255,255,.95);
	transition:background .25s, color .25s, transform .25s;}
.gl_back svg{width:1.7rem; height:1.7rem; fill:none; stroke:currentColor; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;}
.gl_back:hover{background:#1a5fb4; color:#fff; transform:translateX(-.3rem);}
/* 재생 중 헤더에 노출되는 화자 정보 */
.gl_hnow{display:flex; flex-direction:column; align-items:flex-start; min-width:0; opacity:0; visibility:hidden;}
.gl_hline{display:flex; align-items:baseline; gap:1.3rem; min-width:0; margin:0; line-height:1.25;}
.gl_hnow .gl_name{flex:0 0 auto; font-size:2.6rem; font-weight:800; letter-spacing:-.06rem; line-height:1.25; color:#0f2740; padding:0;
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-family:'YuhanKimberlyPureunSup';}
.gl_hnow .gl_role{position:relative; min-width:0; padding-left:1.4rem; font-size:1.5rem; color:#5b7a9c;
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.gl_hnow .gl_role::before{content:''; position:absolute; left:0; top:.1em; width:1px; height:1.15em; background:rgba(26,95,180,.28);}
.gl_modal.is_play .gl_hnow{opacity:1; visibility:visible;}
.gl_modal.is_play .gl_htxt{opacity:0; visibility:hidden;}
.gl_modal.is_play .gl_back{opacity:1; visibility:visible;}

.gl_viewport{position:relative; flex:1 1 auto; min-height:0; overflow:hidden; overflow:clip; overflow-clip-margin:3rem;}
.gl_track{display:flex; width:100%; height:100%; transition:transform .42s cubic-bezier(.16,1,.3,1);}
.gl_view{flex:0 0 100%; min-width:0; height:100%; visibility:visible; transition:visibility 0s linear 0s;}
.gl_view_play{visibility:hidden; transition-delay:.45s;}
.gl_modal.is_play .gl_view_list{visibility:hidden; transition-delay:.45s;}
.gl_modal.is_play .gl_view_play{visibility:visible; transition-delay:0s;}
.gl_view_list{overflow-y:auto; overscroll-behavior:contain; padding-right:1rem; -webkit-overflow-scrolling:touch;
	scrollbar-width:thin; scrollbar-color:rgba(26,95,180,.35) rgba(26,95,180,.08);}
.gl_view_list::-webkit-scrollbar{width:.6rem;}
.gl_view_list::-webkit-scrollbar-thumb{background:rgba(26,95,180,.25); border-radius:999px;}
.gl_grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.4rem 2rem; padding-bottom:.6rem;}
.gl_item{margin:0;}
.gl_card{display:block; width:100%; text-align:left; border-radius:1.8rem; overflow:hidden;
	background:rgba(255,255,255,.55); backdrop-filter:blur(18px) saturate(160%); -webkit-backdrop-filter:blur(18px) saturate(160%);
	border:1px solid rgba(255,255,255,.8); color:#12253d;
	box-shadow:0 1.2rem 2.8rem rgba(16,44,84,.12), inset 0 1px 0 rgba(255,255,255,.9);
	transition:transform .35s cubic-bezier(.16,1,.3,1), border-color .3s, box-shadow .35s;}
.gl_card:hover{transform:translateY(-.4rem); background:rgba(255,255,255,.78); border-color:#fff;
	box-shadow:0 2.2rem 4.4rem rgba(16,44,84,.2), inset 0 1px 0 #fff;}
.gl_media{position:relative; display:block; aspect-ratio:16/9; overflow:hidden; background:rgba(200,216,234,.7);}
.gl_media img{width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.16,1,.3,1);}
.gl_card:hover .gl_media img{transform:scale(1.05);}
.gl_play{position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:grid; place-items:center;
	width:4.8rem; height:4.8rem; border-radius:50%; font-size:1.5rem; color:#0f2740; padding-left:.2rem;
	background:rgba(255,255,255,.92); box-shadow:0 1rem 2.4rem rgba(10,30,60,.28); transition:transform .3s, background .3s, color .3s;}
.gl_card:hover .gl_play{transform:translate(-50%,-50%) scale(1.08); background:#1a5fb4; color:#fff;}
.gl_dur{position:absolute; right:.8rem; bottom:.8rem; padding:.3rem .7rem; border-radius:.8rem;
	background:rgba(5,15,28,.72); font-size:1.2rem; font-weight:600; color:#fff;}
.gl_cap{display:block; padding:1.4rem 1.6rem 1.6rem;}
.gl_cname{display:block; font-size:1.6rem; font-weight:700; letter-spacing:-.03rem; color:#12253d;
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.gl_crole{display:block; margin-top:.4rem; font-size:1.3rem; color:rgba(18,37,61,.55);
	white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}

.gl_view_play{display:flex; align-items:center; justify-content:center;}
.gl_stage{position:relative; flex:0 1 auto; height:100%; width:auto; max-width:100%; aspect-ratio:16/9; margin:0 auto;
	border-radius:1.8rem; overflow:hidden; background:rgba(11,26,44,.82); display:grid; place-items:center;
	border:1px solid rgba(255,255,255,.35); box-shadow:0 .5rem 1.2rem rgba(10,30,60,.26);}

.gl_frame{position:absolute; inset:0;}
.gl_frame video, .gl_frame iframe{width:calc(100% + 2px); height:calc(100% + 2px); border:0; object-fit:contain; background:#000;}
.gl_empty{font-size:1.5rem; color:rgba(255,255,255,.62);}
@media (max-width:1024px){
	.gl_panel{padding:2.4rem 2rem 2rem; border-radius:2.2rem;}
	.gl_grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.8rem 1.4rem;}
	.gl_tit,
	.gl_hnow .gl_name{font-size:2.1rem;}
	.gl_hnow .gl_role{font-size:1.4rem;}
}
@media (max-width:640px){
	.gl_modal{padding:1.6rem 1rem;}
	.gl_panel{height:92vh;}
	.gl_grid{grid-template-columns:minmax(0,1fr);}
	.gl_head{padding-right:5rem;}
	.gl_meta{flex-wrap:wrap; gap:1.2rem;}
}


/* 태블릿 이하 : 상단 유틸(공유/인쇄) 숨김 — sub.css 의 숨김 규칙보다 우선순위가 높아 여기서 함께 처리 */
	@media (max-width:1024px){
	}


/* ============================================================
   speech_area 반응형
   1280px 초과 : 우측 레일(.sp_floats) — 1280px 이하 : 가로 슬라이더(.sp_wall)
   두 영역은 같은 내용이므로 항상 하나만 노출한다
   ============================================================ */
.sp_wall{display:none;}
	@media (max-width:1280px){
		.sp_wall{display:block; margin-top:6rem;}
		/* 레일 진입 버튼은 슬라이더가 대신하므로 숨긴다 */
		.sp_more_mo{display:none;}
	}

	/* 태블릿 */
	@media (max-width:1024px){
		.sp_page.sub_content{padding:7rem 0 10rem;}

		.sp_sheet{padding:4.2rem 3.6rem 3.8rem; border-radius:2.8rem;}
		.sp_sheet > *{max-width:none;}
		.sp_part{padding:2.6rem 0;}
		.sp_part p{font-size:1.8rem; line-height:1.95;}
		.sp_signline{margin-top:3.2rem; padding-top:2.6rem;}
		.sp_wall{padding:0;}
		.sp_wall .wl_tit{font-size:2.6rem;}
		.sp_wall .wl_count strong{font-size:2.6rem;}
	}

	/* 모바일 : 줄바꿈(br)은 좁은 폭에서 어색하게 끊기므로 흐르게 두고 단락으로만 구분 */
	@media (max-width:768px){
		.sp_page.sub_content{padding:5.4rem 0 8rem;}
		.sp_sheet{padding:3.4rem 2.8rem 3rem; border-radius:2.2rem;}
		.sp_intro .in_sub br{display:none;}
		.sp_part{padding:2.2rem 0;}
		.sp_part p{font-size:1.75rem; line-height:1.98; letter-spacing:-.015em; word-break:keep-all;}
		.sp_part p + p{margin-top:1.7rem;}
		.sp_part br{display:none;}
		.sp_signline{flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:.8rem 1.2rem; margin-top:2.8rem; padding-top:2.2rem;}
		.sp_signline .sg_date{width:100%; text-align:right; font-size:1.6rem;}
		.sp_signline .sg_name{font-size:1.8rem;}
		.sp_signline img{height:4.4rem;}
		.sp_wall{margin-top:4.4rem;}
		.sp_wall .wl_head{flex-direction:column; align-items:flex-start; gap:1rem; margin-bottom:2rem; padding-bottom:1.6rem;}
		.sp_wall .wl_tit{font-size:2.2rem; letter-spacing:-.06rem;}
		.sp_wall .wl_desc{font-size:1.6rem;}
		.sp_wall .wl_count strong{font-size:2.2rem;}
		.sp_wall .fl_list{gap:1.4rem; padding:2rem 0 3.4rem; margin:-2rem 0 -3.4rem; scroll-snap-type:x mandatory;}
		.sp_wall .fl_item,
		.sp_wall .fl_item.is_sm{flex:0 0 min(30rem, 78%);}
		/* 좁은 폭에서는 화살표가 카드 위를 덮으므로 스와이프만 남긴다 */
		.wl_arw{display:none;}
		.fl_cap{padding:1.3rem 1.4rem 1.5rem;}
	}

	@media (max-width:480px){
		/* 좁은 폭에서는 글자를 줄이기보다 여백과 행간을 늘려 밀도를 낮춘다 */
		.sp_page.sub_content{padding:4.4rem 0 6.4rem;}
		.sp_sheet{padding:2.8rem 2.2rem 2.8rem; border-radius:1.8rem;}
		.sp_part{padding:1.8rem 0;}
		.sp_part p{font-size:1.7rem; line-height:2; letter-spacing:-.02em;}
		.sp_part p + p{margin-top:1.6rem;}

		.sp_wall .fl_item,
		.sp_wall .fl_item.is_sm{flex:0 0 min(27rem, 84%);}
		.sp_signline img{height:3.8rem;}
	}

	/* 소형 단말(SE·폴드 커버 등) : 최소 16px 본문은 유지하고 좌우 여백만 더 좁힌다 */
	@media (max-width:380px){
		.sp_sheet{padding:2.4rem 1.8rem 2.4rem;}
		.sp_part p{font-size:1.65rem; line-height:1.95;}
		.sp_wall .fl_item,
		.sp_wall .fl_item.is_sm{flex:0 0 88%;}
	}

	/* 웹접근성 : 모바일 본문 16px 이상, 보조 텍스트 14px 이상 확보 */
	@media (max-width:768px){
		.fl_name{font-size:1.7rem;}
		.fl_role{font-size:1.45rem;}
		.fl_time{height:2.6rem; font-size:1.35rem;}
	}


/* ============================================================
   취임사 페이지 수정분 (기존 speech.html 인라인 <style> 이전)
   · 원본에서 speech.css 링크 다음에 오던 블록이므로 파일 끝에 둔다
   ============================================================ */
@keyframes figFade{from{opacity:0}to{opacity:1}}
/* 수정 02 : 축하 영상 전체보기 모달 페이지네이션 */
.gl_pager{flex:0 0 auto; display:flex; align-items:center; justify-content:center; gap:1.2rem; margin-top:2rem; padding-top:2rem; border-top:1px solid rgba(26,95,180,.14);}
.gl_modal.is_play .gl_pager{display:none;}

/* 수정 07 : 이름 앞 수식구 줄바꿈 — 어절 단위 유지 */
.sp_intro .nm_pre{word-break:keep-all; letter-spacing:-.04em;}

/* 수정 06 : 1280px 이하 — 전체보기 진입 버튼(모바일용)이 반드시 보이도록 */
@media (max-width:1280px){
	.sp_sheet .sp_more_mo{display:flex !important; margin:4rem 0 0;}
}

/* 수정 05 : 1280px 이하 인트로 — 데스크톱 구성을 끊김 없이 축소한다
   · 사진은 오른쪽 칸 폭에 맞춰 연속 축소 (갑작스런 작아짐 없음)
   · 본문 타이포는 컨테이너 단위(cqw) 대신 vw 로 데스크톱 값과 이어붙인다
   · 680px 아래에서만 세로로 접고, 이때 사진을 크게 키워 상단에 올린다 */
@media (max-width:1280px){
	.sp_intro{position:relative; grid-template-columns:minmax(0,1fr) clamp(21rem,26vw,30rem);
		column-gap:clamp(2rem,3vw,4rem); row-gap:0; align-items:center; margin:0; padding:0;}
	.sp_intro .in_visual{position:relative; inset:auto; order:0; justify-self:center;
		width:100%; height:auto; aspect-ratio:1/1; margin:0;}
	.sp_intro .in_face img{width:108%; height:108%;}
	.sp_intro .in_txt{width:auto; max-width:none;
		padding:clamp(2.2rem,3vw,4.6rem) 0 1.4rem clamp(2.2rem,3.6vw,5rem);}
	.sp_intro .in_txt::before{display:block; left:0; top:0;
		width:clamp(14rem,20vw,26rem); height:clamp(17rem,24vw,31rem);
		border-width:clamp(1.5rem,1.9vw,2.4rem);}
	.sp_intro .in_inner{box-shadow:none; border-radius:0;
		padding:clamp(1.8rem,2.4vw,2.4rem) clamp(2rem,2.6vw,3rem) clamp(2.1rem,2.8vw,2.6rem);}

	/* 타이포 : 1281px 경계에서 값이 튀지 않도록 데스크톱 크기에서 연속 축소 */
	.sp_intro .in_hi{margin:.5rem 0 1.4rem; font-size:clamp(2.3rem,2.6vw,3rem);}
	.sp_intro .nm_pre{margin:0 0 1rem; font-size:clamp(2.7rem,3.2vw,3.7rem); line-height:1.45; word-break:keep-all;}
	.sp_intro .in_name{line-height:1.28;}
	.sp_intro .in_name strong{font-size:clamp(4.6rem,5.6vw,6.4rem);}
	.sp_intro .in_name .nm_tail{margin-left:.8rem; font-size:clamp(2.3rem,2.6vw,3rem);}
	.sp_intro .in_lede{margin-top:clamp(2rem,2.6vw,3rem); max-width:none;
		padding-top:clamp(1.8rem,2.2vw,2.4rem);}
	.sp_intro .in_sub{font-size:clamp(1.85rem,1.8vw,1.95rem); line-height:1.85;}
}

/* 1024px 이하 : 2단으로는 본문이 .sp_part(18px)보다 작아지므로 사진을 위로 올리고
   텍스트에 전체 폭을 준다 — 폰트는 본문보다 항상 크게 유지한다 */
@media (max-width:1024px){
	.sp_intro{--pic:clamp(22rem,44vw,32rem); --ovl:calc(var(--pic) * .22);
		grid-template-columns:minmax(0,1fr); column-gap:0;}
	.sp_intro .in_visual{order:-1; justify-self:center; aspect-ratio:auto;
		width:var(--pic); height:var(--pic); margin:0 0 calc(var(--ovl) * -1);}
	/* 사진 뒤 배경 : 음각(레터프레스) 워드마크로 은은하게 채운다 */
	.sp_intro::after{display:none;}

	/* 각진 프레임 모티프 유지 : 카드 좌측에 걸쳐 세로 구성에서도 여백을 채운다 */
	.sp_intro .in_txt{padding:0 0 0 clamp(1.6rem,4.4vw,3.2rem);}
	.sp_intro .in_txt::before{display:block; left:0; top:calc(var(--ovl) + clamp(1rem,2vw,2rem));
		width:clamp(9rem,22vw,15rem); height:clamp(12rem,26vw,19rem);
		border-width:clamp(1.2rem,3vw,1.9rem);}
	.sp_intro .in_inner{padding:calc(var(--ovl) + clamp(1.8rem,4vw,2.6rem)) clamp(1.8rem,5vw,2.6rem) clamp(2.4rem,5vw,3rem);}
	.sp_intro .in_hi{font-size:clamp(2.4rem,3.4vw,3rem);}
	.sp_intro .nm_pre{font-size:clamp(2.8rem,4vw,3.7rem);}
	.sp_intro .in_name strong{font-size:clamp(4.8rem,6.6vw,6.4rem);}
	.sp_intro .nm_pre{word-break:keep-all;}
	.sp_intro .in_name .nm_tail{font-size:clamp(2.4rem,3.4vw,3rem);}
	.sp_intro .in_sub{font-size:clamp(1.85rem,2vw,1.95rem); line-height:1.85;}
}

/* 수정 04 : 축하 영상 헤드 타이포 — 본문 최소 16px(웹접근성) 준수 */
.sp_wall .wl_ht{display:flex; flex-direction:column; gap:.5rem;}
.sp_wall .wl_tit{font-size:3.2rem; line-height:1.25; letter-spacing:-.08rem;}
.sp_wall .wl_desc{margin-top:0; font-size:1.7rem; line-height:1.45;}
@media (max-width:1024px){
	.sp_wall .wl_ht{gap:.45rem;}
	.sp_wall .wl_tit{font-size:2.7rem; letter-spacing:-.06rem;}
	.sp_wall .wl_desc{font-size:1.65rem;}
}
@media (max-width:768px){
	.sp_wall .wl_ht{gap:.4rem;}
	.sp_wall .wl_tit{font-size:2.4rem;}
	.sp_wall .wl_desc{font-size:1.6rem;}
}
@media (max-width:480px){
	.sp_wall .wl_tit{font-size:2.2rem; letter-spacing:-.04rem;}
	.sp_wall .wl_desc{font-size:1.6rem;}
}

/* 카드 부가정보도 14px 미만이 없도록 상향 */
.sp_wall .fl_name{font-size:1.7rem;}
.sp_wall .fl_role,
.sp_wall .fl_time{font-size:1.45rem;}
.gl_cname{font-size:1.7rem;}
.gl_crole{font-size:1.45rem;}
.gl_dur{font-size:1.35rem;}

/* 수정 03 : 하단 슬라이더 썸네일 + 스크롤 성능 */
.sp_wall .fl_media .fl_thumb{width:100%; height:100%; object-fit:cover; user-select:none; -webkit-user-drag:none;}
.sp_wall .fl_list{overscroll-behavior-x:contain; touch-action:pan-x;}
.sp_wall .fl_list img,
.sp_wall .fl_list a{-webkit-user-drag:none;}
/* 카드 그림자가 잘리지 않도록 여백 확보 + 하단 스크롤바 노출 */
.sp_wall .fl_list{padding:3rem 4rem 5rem; margin:-3rem -4rem -1.5rem; scrollbar-width:none;}
.sp_wall .fl_list::-webkit-scrollbar{display:none;}
/* 카드 바로 아래에 붙는 커스텀 스크롤바 */
.wl_bar{position:relative; height:.6rem; margin:-2.6rem 2rem 0; border-radius:999px; background:rgba(26,95,180,.12); cursor:pointer;}
.wl_bar .wl_thumb{position:absolute; left:0; top:0; height:100%; min-width:4rem; border-radius:999px; background:linear-gradient(90deg,rgba(44,120,205,.9),rgba(26,95,180,.9)); transition:background .25s;}
.wl_bar:hover .wl_thumb{background:#1a5fb4;}
.wl_bar.is_off{display:none;}
@media (max-width:768px){
	.wl_bar{margin:-2.2rem .4rem 0; height:.5rem;}
	.wl_bar .wl_thumb{min-width:3.2rem;}
}
.sp_wall .fl_card{transition:transform .28s cubic-bezier(.16,1,.3,1), box-shadow .28s, border-color .28s, background .28s;}
.gl_pnums{display:flex; align-items:center; gap:.6rem;}
.gl_pnav,
.gl_pnum{display:grid; place-items:center; width:4rem; height:4rem; border:1px solid rgba(26,95,180,.2); border-radius:1.2rem; background:rgba(255,255,255,.7); color:#12253d; font-family:"Pretendard Variable",sans-serif; font-size:1.5rem; font-weight:600; cursor:pointer; transition:background .25s, color .25s, border-color .25s, transform .25s, box-shadow .25s;}
.gl_pnav svg{width:1.8rem; height:1.8rem; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.gl_pnav:hover:not(:disabled),
.gl_pnum:hover:not(.is_on){background:#fff; border-color:rgba(26,95,180,.45); transform:translateY(-.2rem); box-shadow:0 .8rem 1.8rem rgba(16,44,84,.14);}
.gl_pnav:disabled{opacity:.35; cursor:default;}
.gl_pnum.is_on{background:linear-gradient(180deg,#2c78cd,#1a5fb4); border-color:transparent; color:#fff; box-shadow:0 .8rem 1.8rem rgba(26,95,180,.32), inset 0 1px 0 rgba(255,255,255,.35);}
@media (max-width:768px){
	.gl_pager{gap:.8rem; margin-top:2rem; padding-top:1.6rem;}
	.gl_pnav,
	.gl_pnum{width:3.6rem; height:3.6rem; border-radius:1rem; font-size:1.4rem;}
	.gl_pnums{gap:.4rem;}
}
