.scroll_on { opacity: 0; transition: all 2s;}
.scroll_on.active {opacity: 1 !important; transform: translate(0, 0) !important;}
.scroll_on.type_top {transform: translate(0, -50px);}
.scroll_on.type_bottom {transform: translate(0, 50px);}
.scroll_on.type_left {transform: translate(-50px, 0);}
.scroll_on.type_right {transform: translate(50px, 0);}

.scroll_on02 { transition: all 1s; }
.scroll_on02.active {  }

.wrap { width: 1600px; margin: 0 auto; }

/* ───────── HEAD ───────── */
.head { position: fixed; left: 0; top: 0; z-index: 9; display: flex; flex-wrap: wrap; align-items: center; width: 100%; height: 100px; border-bottom: 1px solid rgba(255, 255, 255, 0.2); transition: all 0.3s; }
.head.scrolled { background: rgba(0, 0, 0, 0.9); border-bottom: none; }
.head .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; }
.menu_inr { display: flex; flex-wrap: wrap; gap: 80px; }
.menu_inr li a { color: #fff; font-size: 22px; font-weight: 600; }

.mobile_menu { display: none; }

/* ───────── FOOTER SECTION ───────── */
.footer { position: relative; text-align: center; padding: 50px 0; background: #000; color: #fff; font-size: 0.85em; font-weight: 300; }
.ft_logo { margin-bottom: 30px; }
.ft_info span { position: relative; display: inline-block; padding: 0 20px; }
.ft_info span:after { content:''; position: absolute; right: 0px; top: 10%; width: 1px; height: 80%; background: rgba(255, 255, 255, 0.5); }
.ft_info span.noline:after { display: none; }
.ft_info p { margin-top: 15px; color: rgba(255, 255, 255, 0.4); }

/* ───────── HERO SECTION ───────── */
.hero {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	position: relative;
    padding-top: 100px;
	padding-bottom: 0px;
	background: #000 url('../image/main/main_bg01.jpg') top center no-repeat;
	background-size: cover;
}

.hero-content {
	position: relative;
	z-index: 2;
    margin: 50px 0;
}
.hero-icon {
	margin: 0 auto 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero h1 {
    color: #fff;
	font-size: 75px;
	font-weight: 900;
	margin-bottom: 50px;
}
.hero-desc {
	font-size: 36px;
	line-height: 1.4;
	color: #ddd;
	margin-bottom: 30px;
	font-weight: 300;
    word-break: keep-all;
}
.hero-desc strong {
		font-weight: 700;
		color: #fff;
}
.btn-hero {
	display: inline-flex;
	flex-wrap: wrap;
    justify-content: center;
    align-items: center;
	width: 500px;
	height: 90px;
	background: #256be6;
	color: #fff;
	font-size: 48px;
	font-weight: 700;
	border-radius: 500px;
	text-decoration: none;
	position: relative;
}
.btn-subtitle { display: block; margin-top: 20px; color: #fff; font-size: 1.1em; font-weight: 400; }

/* ───────── 갤러리 섹션 ───────── */
.gallery {
	padding: 50px 0;
	overflow: hidden;
	background: rgba(0, 0, 0, 0.8);
}
.gallery-track {
	display: flex;
	gap: 30px;
	animation: scroll 20s linear infinite;
}
.gallery-item {
	overflow: hidden;
	background: #2a2a2a;
	border-radius: 0.5em;
	/* 이미지 자리 */
	background-size: cover;
	background-position: center;
	flex-shrink: 0;
}

@keyframes scroll {
	0% {
		transform: translateX(0);
	}
	100% {
		transform: translateX(calc(-8.75em * 6 - 0.75em * 6));
	}
}

.gallery-track:hover {
	animation-play-state: paused;
}

/* ───────── 연락 바 ───────── */
.contact-bar {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	position: sticky;
	bottom: 0;
	z-index: 999;
	padding: 25px 0;
	background: #040b1c;
	box-shadow: 0 -0.25em 1em rgba(0, 0, 0, 0.3);
}
.btn-kakao, .btn-tel { display: inline-flex; justify-content: center; align-items: center; gap: 0.5em; text-align: center; width: 260px; height: 60px; border-radius: 3px; font-weight: 700; }
.btn-kakao { margin-right: 10px; background: #fee500; color: #2f363e; }
.btn-tel { color: #fff; background: #1447a1; }
.contact-bar-inr { position: relative; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 20px; margin-left: 25px; padding-left: 25px; }
.contact-bar-inr:after { content:''; position: absolute; left: 0px; top: 5%; width: 2px; height: 90%; background: rgba(255, 255, 255, 0.15); }
.contact-phone { display: inline-block; margin-bottom: 5px; color: #fff; font-size: 26px; }
.contact-number { font-family: 'Presentation'; color: #fff; font-size: 62px; font-weight: 800; line-height: 1; }

/* ───────── 주요업무 섹션 ───────── */
.services {
	padding: 120px 0;
	background: #000 url('../image/main/main_bg02.jpg') top center no-repeat;
	background-size: cover;
	text-align: center;
}
.section-label { margin-bottom: 30px; color: #4988c4; font-size: 24px; }
.section-title {
    color: #fff;
	font-size: 58px;
	font-weight: 900;
	margin-bottom: 80px;
}
.services-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 80px 120px;
	max-width: 1120px;
	margin: 0 auto;
}
.service-card {
	overflow: hidden;
	text-align: left;
	transition: transform 0.3s;
}
.service-card:hover {
	transform: translateY(-0.25em);
}
.service-image { overflow: hidden; width: 100%; border-radius: 10px; }
.service-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.service-content {
	display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    align-items: center;
	padding: 1.5em;
}
.service-title {
	text-align: center;
	color: #fff;
	font-size: 32px;
	font-weight: 700;
	margin-bottom: 0.75em;
}
.service-desc {
	text-align: center;
	color: #fff;
	font-weight: 500;
	line-height: 1.5;
	margin-bottom: 1em;
    word-break: keep-all;
}
.service-list { display: flex; flex-direction: column; flex-wrap: wrap; }
.service-list.wh50 { flex-direction: unset; }
.service-list li { position: relative; width: 100%; margin-bottom: 10px; padding-left: 20px; color: rgba(255, 255, 255, 0.7); }
.service-list.wh50 li { width: 50%; }
.service-list li:last-child { margin-bottom: 0px; }
.service-list li::before { content: ''; position: absolute; top: 7px; left: 0; width: 8px; height: 8px; border: 2px solid rgba(255, 255, 255, 0.7); border-radius: 500px; }

/* ───────── 업무 진행절차 섹션 ───────── */
.process {
	padding: 120px 0;
	background: #000 url('../image/main/main_bg03.jpg') top center no-repeat;
	background-size: cover;
	text-align: center;
}

.process .section-title { margin-bottom: 40px; }

.process-subtitle {
	color: #aaa;
    font-size: 24px;
	margin-bottom: 80px;
	line-height: 1.8;
}
.process-subtitle strong {
	color: #fff;
	font-weight: 700;
    text-decoration: underline;
}
.process-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.25em;
	max-width: 75em;
	margin: 0 auto;
}
.process-card {
	background: #fff;
	border-radius: 0.75em;
	padding: 2em 1.25em;
	text-align: center;
}
.process-icon {
	margin: 0 auto 1em;
	display: flex;
	align-items: center;
	justify-content: center;
}
.process-badge {
	display: inline-block;
	background: #2196f3;
	color: #fff;
	font-size: 0.6875em;
	font-weight: 700;
	padding: 0.25em 0.75em;
	border-radius: 0.75em;
	margin-bottom: 0.75em;
}
.process-name {
	font-size: 1em;
	font-weight: 700;
	color: #222;
}
.process-detail {
	font-size: 0.75em;
	color: #666;
}

/* ───────── 변호사 자문 섹션 ───────── */
.lawyer {
	padding: 120px 0;
	background: #fff;
	text-align: center;
}
.lawyer .section-title {
	color: #222;
	margin-bottom: 40px;
}
.lawyer-subtitle {
	font-size: 24px;
	color: #666;
	margin-bottom: 80px;
}
.lawyer-subtitle strong {
	color: #222;
	font-weight: 700;
}
.lawyer-content {
	display: flex;
	flex-wrap: wrap;
	gap: 2.5em;
	max-width: 56.25em;
	margin: 0 auto;
}
.lawyer-image { }
.lawyer-info { flex: 1; display: flex; flex-wrap: wrap; align-content: center; text-align: left; }
.lawyer-name { margin-bottom: 50px; color: #222; font-size: 42px; font-weight: 900; }
.lawyer-list { }
.lawyer-list li {
	color: #555;
	font-size: 24px;
	padding-left: 40px;
	position: relative;
	margin-bottom: 15px;
}
.lawyer-list li:last-child { margin-bottom: 0; }
.lawyer-list li::before {	 content: ''; position: absolute; top: 10px; left: 0; background: #1c4d8d; width: 8px; height: 8px; border-radius: 500px; }
.btn-lawyer {
	display: flex;
	flex-wrap: wrap;
    justify-content: center;
    align-items: center;
	gap: 15px;
	width: 100%;
	height: 60px;
	background: #fee500;
	color: #2f363e;
	font-weight: 700;
	text-align: center;
	border-radius: 5px;
	text-decoration: none;
	transition: background 0.3s;
}
.btn-lawyer:hover {
		background: #ffd400;
}

/* ───────── 온라인 상담 섹션 ───────── */
.consultation {
	padding: 120px 0;
	background: #1a1a1a;
	position: relative;
	background: #000 url('../image/main/main_bg04.jpg') top center no-repeat;
	background-size: cover;
}

.consultation-content {
	position: relative;
	z-index: 2;
	width: 1600px;
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	align-items: flex-start;
}
.consultation-left { width: 40%; }
.consultation-left h2 {
    color: #fff;
	font-size: 58px;
	font-weight: 900;
	margin-bottom: 40px;
}
.consultation-left p {
	font-size: 24px;
	color: #fff;
	line-height: 1.5;
}
.consultation-menu {
	margin-top: 2.5em;
}
.consultation-menu li {
	padding: 1em 0;
	border-bottom: 1px solid #333;
	color: #ccc;
	font-size: 0.875em;
}
.consultation-form { width: 60%; padding-left: 50px; }
.form-group { display: flex; flex-wrap: wrap; margin-bottom: 15px; }
.form-group:last-child { margin-bottom: 0px; }
.form-group label { display: flex; flex-wrap: wrap; align-items: center; width: 150px; height: 60px; color: #fff; font-weight: 500; }
.form-group input,
.form-group textarea {
	width: calc(100% - 150px);
	height: 60px;
	padding: 10px 20px;
	border: none;
	border-radius: 5px;
	font-size: 0.9em;
}
.form-group input:focus,
.form-group textarea:focus {
	outline: none;
	border-color: #2196f3;
}
.form-group textarea {
	min-height: 200px;
	resize: vertical;
}
.form-check {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.5em;
	margin: 20px 0 25px;
	font-size: 0.9em;
	color: #fff;
}
.form-btn {
    text-align: right;
}
.btn-submit {
	width: 240px;
	background: #0f2854;
	color: #fff;
	font-weight: 700;
	padding: 1em;
	border: none;
	border-radius: 3px;
	cursor: pointer;
	transition: background 0.3s;
}
.btn-submit:hover { background: #091833; }
