@charset "utf-8";

/* header */
#header .gnb ul li.depth01 span {
  color: #fff;
}

/* 메인 비쥬얼 */
.hero_section{
  position:relative;
  overflow:hidden;
  background:#0f172a;
}

.hero_swiper{
  position:relative;
  width:100%;
  height:100vh;
  min-height:760px;
  max-height:980px;
}

.hero_swiper .swiper-wrapper,
.hero_swiper .swiper-slide{
  height:100%;
}

.hero_item{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
}

.hero_bg{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
}

.hero_bg picture,
.hero_bg img{
  display:block;
  width:100%;
  height:100%;
}

.hero_bg img{
  object-fit:cover;
  transform:scale(1.02);
  transition:transform 5.6s ease;
}

.hero_item.is_active .hero_bg img{
  transform:scale(1.08);
}

.hero_overlay{
  position:absolute;
  top:0;
  left:0;
  z-index:1;
  width:100%;
  height:100%;
  background:
    linear-gradient(90deg, rgba(3, 10, 24, .78) 0%, rgba(3, 10, 24, .50) 38%, rgba(3, 10, 24, .16) 100%);
}

.hero_inner{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  width:100%;
  max-width:1400px;
  height:100%;
  margin:0 auto;
  padding:0 80px;
  box-sizing:border-box;
}

.hero_content{
  position:relative;
  width:100%;
  max-width:860px;
  color:#fff;
}

.hero_eyebrow{
  margin:0 0 22px;
  font-size:14px;
  font-weight:600;
  line-height:1.2;
  letter-spacing:.22em;
  color:rgba(255, 255, 255, .82);
  opacity:0;
  transform:translateY(30px);
}

.hero_title{
  margin:0;
  font-size:68px;
  font-weight:700;
  line-height:1.2;
  letter-spacing:-0.04em;
  color:#fff;
  word-break:keep-all;
  opacity:0;
  transform:translateY(30px);
}

.hero_desc{
  margin:28px 0 0;
  font-size:20px;
  font-weight:400;
  line-height:1.8;
  color:rgba(255, 255, 255, .88);
  word-break:keep-all;
  opacity:0;
  transform:translateY(30px);
}

.hero_btn_wrap{
  display:flex;
  align-items:center;
  gap:16px;
  margin-top:42px;
  opacity:0;
  transform:translateY(30px);
}

.hero_btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:210px;
  height:60px;
  padding:0 28px;
  box-sizing:border-box;
  border-radius:999px;
  font-size:16px;
  font-weight:600;
  text-decoration:none;
  transition:all .25s ease;
}

.hero_btn_primary{
  background:#fff;
  color:#111827;
}

.hero_btn_primary:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 40px rgba(0, 0, 0, .18);
}

.hero_btn_ghost{
  border:1px solid rgba(255, 255, 255, .34);
  background:rgba(255, 255, 255, .08);
  color:#fff;
  backdrop-filter:blur(8px);
}

.hero_btn_ghost:hover{
  transform:translateY(-2px);
  background:rgba(255, 255, 255, .14);
}

.hero_item.is_active .hero_eyebrow{
  opacity:1;
  transform:translateY(0);
  transition:opacity .6s ease .2s, transform .6s ease .2s;
}

.hero_item.is_active .hero_title{
  opacity:1;
  transform:translateY(0);
  transition:opacity .8s ease .35s, transform .8s ease .35s;
}

.hero_item.is_active .hero_desc{
  opacity:1;
  transform:translateY(0);
  transition:opacity .8s ease .5s, transform .8s ease .5s;
}

.hero_item.is_active .hero_btn_wrap{
  opacity:1;
  transform:translateY(0);
  transition:opacity .8s ease .65s, transform .8s ease .65s;
}

.hero_control{
  position:absolute;
  right:80px;
  bottom:64px;
  z-index:5;
  display:flex;
  align-items:center;
  gap:18px;
}

.hero_arrow{
  position:relative;
  width:56px;
  height:56px;
  border:1px solid rgba(255, 255, 255, .28);
  border-radius:50%;
  background:rgba(255, 255, 255, .08);
  cursor:pointer;
  transition:all .25s ease;
  backdrop-filter:blur(8px);
}

.hero_arrow:hover{
  background:rgba(255, 255, 255, .16);
}

.hero_arrow span{
  position:absolute;
  top:50%;
  left:50%;
  display:block;
  width:12px;
  height:12px;
  margin-top:-6px;
  border-top:2px solid #fff;
  border-right:2px solid #fff;
}

.hero_arrow_prev span{
  margin-left:-3px;
  transform:rotate(-135deg);
}

.hero_arrow_next span{
  margin-left:-9px;
  transform:rotate(45deg);
}

.hero_fraction{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:150px;
  padding:0 8px;
  box-sizing:border-box;
  color:#fff;
  font-size:16px;
  font-weight:600;
}

.hero_fraction .swiper-pagination-current,
.hero_fraction .swiper-pagination-total{
  min-width:24px;
  text-align:center;
}

.hero_fraction_bar{
  display:block;
  width:52px;
  height:1px;
  background:rgba(255, 255, 255, .4);
}

.hero_progress{
  position:absolute;
  left:0;
  bottom:0;
  z-index:6;
  width:100%;
  height:4px;
  background:rgba(255, 255, 255, .14);
}

.hero_progress_bar{
  display:block;
  width:0;
  height:100%;
  background:linear-gradient(90deg, #8eb2ff 0%, #2563eb 100%);
}

.hero_scroll{
  position:absolute;
  left:50%;
  bottom:34px;
  z-index:6;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  transform:translateX(-50%);
  text-decoration:none;
}

.hero_scroll_text{
  font-size:11px;
  font-weight:600;
  letter-spacing:.28em;
  color:rgba(255, 255, 255, .82);
}

.hero_scroll_line{
  position:relative;
  display:block;
  width:1px;
  height:44px;
  background:rgba(255, 255, 255, .34);
  overflow:hidden;
}

.hero_scroll_line::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:18px;
  background:#ffffff;
  animation:hero_scroll_motion 1.8s ease-in-out infinite;
}

@keyframes hero_scroll_motion{
  0%{
    transform:translateY(-18px);
    opacity:0;
  }
  30%{
    opacity:1;
  }
  100%{
    transform:translateY(44px);
    opacity:0;
  }
}


/* 의료광고법 */
.audit_section {
  position: relative;
  margin-top: -40px;
  padding: 180px 0 140px;
  background: #0b1220;
  color: #fff;
  border-radius: 40px 40px 0 0;
  box-shadow: 0 -24px 50px rgba(0, 0, 0, .12);
  overflow: hidden;
  z-index: 10;
}

.audit_bg_glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
}

.audit_bg_glow_01 {
  top: 60px;
  left: -120px;
  width: 300px;
  height: 300px;
  background: rgba(37, 99, 235, .16);
}

.audit_bg_glow_02 {
  right: -100px;
  bottom: 100px;
  width: 260px;
  height: 260px;
  background: rgba(142, 178, 255, .12);
}

.audit_inner {
  position: relative;
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  box-sizing: border-box;
}

.audit_head {
  display: flex;
  justify-content: space-between;
  gap: 60px;
  margin-bottom: 56px;
}

.audit_title_wrap {
  flex: 1 1 auto;
}

.audit_desc_wrap {
  flex: 0 0 420px;
  padding-top: 20px;
}

.audit_eyebrow,
.audit_process_eyebrow {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .22em;
  color: rgba(255, 255, 255, .56);
}

.audit_title {
  margin: 0;
  font-size: 54px;
  font-weight: 700;
  line-height: 1.26;
  letter-spacing: -0.04em;
  word-break: keep-all;
}

.audit_desc {
  margin: 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.9;
  color: rgba(255, 255, 255, .78);
  word-break: keep-all;
}

.audit_highlight {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 28px;
  margin-bottom: 32px;
}

.audit_alert {
  position: relative;
  min-height: 420px;
  padding: 42px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: 32px;
  background: linear-gradient(135deg, rgba(45, 69, 126, .28) 0%, rgba(9, 16, 31, .90) 100%);
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, .18);
}

.audit_alert::before {
  content: "";
  position: absolute;
  right: -80px;
  bottom: -80px;
  width: 260px;
  height: 260px;
  border-radius: 50%;
  background: rgba(89, 124, 214, .12);
  filter: blur(10px);
}

.audit_alert_badge {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  padding: 0 18px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
  font-size: 14px;
  font-weight: 600;
  color: #d8e4ff;
}

.audit_alert_text {
  position: relative;
  z-index: 1;
  margin: 28px 0 0;
  font-size: 38px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.03em;
  word-break: keep-all;
}

.audit_alert_text strong {
  color: #9fc0ff;
  font-weight: 700;
}

.audit_risk_list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.audit_risk_item {
  display: flex;
  gap: 22px;
  min-height: 129px;
  padding: 28px 30px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: 24px;
  background: rgba(255, 255, 255, .04);
  backdrop-filter: blur(8px);
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.audit_risk_item:hover {
  transform: translateY(-4px);
  border-color: rgba(142, 178, 255, .28);
  background: rgba(255, 255, 255, .06);
}

.audit_risk_num {
  flex: 0 0 52px;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  color: #8eb2ff;
}

.audit_risk_cont {
  flex: 1 1 auto;
}

.audit_risk_title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.4;
  word-break: keep-all;
}

.audit_risk_desc {
  margin: 10px 0 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  color: rgba(255, 255, 255, .72);
  word-break: keep-all;
}

.audit_process {
  position: relative;
  padding: 44px 42px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, .10);
  border-radius: 32px;
  background: rgba(255, 255, 255, .04);
  box-shadow: 0 20px 40px rgba(0, 0, 0, .12);
}

.audit_process_title_wrap {
  margin-bottom: 28px;
}

.audit_process_title {
  margin: 0;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.03em;
  word-break: keep-all;
}

.audit_step_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.audit_step_item {
  position: relative;
  min-height: 230px;
  padding: 28px;
  box-sizing: border-box;
  border-radius: 24px;
  background: #18243f;
  border: 1px solid rgba(255, 255, 255, .06);
  overflow: hidden;
  transition: transform .25s ease, border-color .25s ease, background .25s ease, box-shadow .25s ease;
}

.audit_step_item::before {
  content: "";
  position: absolute;
  top: 0;
  left: 28px;
  right: 28px;
  height: 2px;
  background: linear-gradient(90deg, rgba(142, 178, 255, .85) 0%, rgba(37, 99, 235, .35) 100%);
}

.audit_step_item:hover {
  transform: translateY(-4px);
  border-color: rgba(142, 178, 255, .24);
  background: #1b2a49;
  box-shadow: 0 18px 34px rgba(0, 0, 0, .14);
}

.audit_step_top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}

.audit_step_no {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .08em;
  color: #8eb2ff;
}

.audit_step_icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 68px;
  height: 34px;
  padding: 0 14px;
  box-sizing: border-box;
  border-radius: 999px;
  background: rgba(255, 255, 255, .06);
  font-size: 13px;
  font-weight: 600;
  color: #dfe8ff;
}

.audit_step_title {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.45;
  word-break: keep-all;
}

.audit_step_desc {
  margin: 12px 0 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.75;
  color: rgba(255, 255, 255, .72);
  word-break: keep-all;
}

.audit_motion_item {
  opacity: 0;
  transform: translateY(40px);
}

.audit_section.is_visible .audit_motion_item {
  opacity: 1;
  transform: translateY(0);
}

.audit_section.is_visible .audit_motion_item_01 {
  transition: opacity .7s ease .1s, transform .7s ease .1s;
}

.audit_section.is_visible .audit_motion_item_02 {
  transition: opacity .8s ease .2s, transform .8s ease .2s;
}

.audit_section.is_visible .audit_motion_item_03 {
  transition: opacity .8s ease .35s, transform .8s ease .35s;
}

.audit_section.is_visible .audit_motion_item_04 {
  transition: opacity .8s ease .5s, transform .8s ease .5s;
}


/* 서비스 */
.service_section {
  position: relative;
  padding: 140px 0;
  background: #f6f8fc;
}

.service_inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  box-sizing: border-box;
}

.service_head {
  margin-bottom: 56px;
}

.service_eyebrow {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .22em;
  color: rgba(17, 24, 39, .48);
}

.service_title {
  margin: 0;
  font-size: 54px;
  font-weight: 700;
  line-height: 1.26;
  letter-spacing: -0.04em;
  color: #111827;
  word-break: keep-all;
}

.service_desc {
  max-width: 760px;
  margin: 24px 0 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.9;
  color: #4b5563;
  word-break: keep-all;
}

.service_list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}

.service_item {
  display:flex;
  flex-direction:column;
  min-height:460px;
  padding:28px;
  box-sizing:border-box;
  border:1px solid #e6ebf2;
  border-radius:28px;
  background:#fff;
  text-decoration:none;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.service_item:hover {
  transform: translateY(-6px);
  border-color: #d7e3ff;
  box-shadow: 0 24px 40px rgba(17, 24, 39, .08);
}

.service_item:hover .service_more {
  color: #3b82f6;
}

.service_item_top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 42px;
}

.service_num {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
  color: #7c94c9;
}

.service_more {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .08em;
  color: #9aa4b2;
}

.service_item_body {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.service_item_title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.4;
  color: #111827;
  word-break: keep-all;
}

.service_item_desc {
  margin:14px 0 0;
  font-size:16px;
  font-weight:400;
  line-height:1.8;
  color:#4b5563;
  word-break:keep-all;
}

.service_item_sub{
  margin:0 0 12px;
  font-size:14px;
  font-weight:600;
  line-height:1.6;
  color:#6b8bd6;
  word-break:keep-all;
}

.service_keyword_list {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:22px 0 0;
  padding:0;
  list-style:none;
}

.service_keyword_item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  box-sizing: border-box;
  border-radius: 999px;
  background: #f3f6fb;
  font-size: 14px;
  font-weight: 600;
  color: #4b5563;
}

.service_feature_list{
  margin:24px 0 0;
  padding:18px 0 0;
  list-style:none;
  border-top:1px solid #eef2f7;
}

.service_feature_item{
  position:relative;
  margin-top:10px;
  padding-left:14px;
  font-size:14px;
  font-weight:400;
  line-height:1.7;
  color:#4b5563;
  word-break:keep-all;
}

.service_feature_item:first-child{
  margin-top:0;
}

.service_feature_item::before{
  content:"";
  position:absolute;
  top:10px;
  left:0;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#6b8bd6;
}

.service_point{
  margin:22px 0 0;
  font-size:14px;
  font-weight:600;
  line-height:1.7;
  color:#111827;
  word-break:keep-all;
}

.service_item:hover .service_more{
  color:#3b82f6;
  letter-spacing:.12em;
}

.service_item:hover .service_num{
  color:#3b82f6;
}

.service_item:hover .service_point{
  color:#2563eb;
}


/* 포트폴리오 */
.portfolio_section {
  position: relative;
  padding: 140px 0;
  background: #ffffff;
}

.portfolio_inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  box-sizing: border-box;
}

.portfolio_head {
  margin-bottom: 38px;
}

.portfolio_title_wrap {
  width: 100%;
}

.portfolio_eyebrow {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .22em;
  color: rgba(17, 24, 39, .48);
}

.portfolio_title {
  margin: 0;
  font-size: 54px;
  font-weight: 700;
  line-height: 1.26;
  letter-spacing: -0.04em;
  color: #111827;
  word-break: keep-all;
}

.portfolio_desc {
  max-width: 760px;
  margin: 24px 0 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.9;
  color: #4b5563;
  word-break: keep-all;
}

.portfolio_list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.portfolio_item {
  display: block;
  overflow: hidden;
  text-decoration: none;
}

.portfolio_thumb {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  background: #e5e7eb;
  transform: translateZ(0);
}

.portfolio_thumb::before {
  content: "";
  display: block;
  padding-top: 72%;
}

.portfolio_thumb img {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

.portfolio_label {
  position: absolute;
  top: 18px;
  left: 18px;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  padding: 0 14px;
  box-sizing: border-box;
  border-radius: 999px;
  background: rgba(17, 24, 39, .78);
  backdrop-filter: blur(8px);
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}

.portfolio_overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: inherit;
  background: rgba(9, 16, 31, .36);
  opacity: 0;
  transition: opacity .3s ease;
}

.portfolio_view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 150px;
  height: 48px;
  padding: 0 18px;
  box-sizing: border-box;
  border: 1px solid rgba(255, 255, 255, .34);
  border-radius: 999px;
  background: rgba(255, 255, 255, .12);
  backdrop-filter: blur(8px);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #fff;
  transition: transform .25s ease, background .25s ease, border-color .25s ease;
  transform: translateY(8px);
}

.portfolio_info {
  padding: 22px 6px 0;
}

.portfolio_category {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  color: #a98c48;
}

.portfolio_item_title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.42;
  color: #111827;
  word-break: keep-all;
}

.portfolio_item_desc {
  margin: 14px 0 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  color: #4b5563;
  word-break: keep-all;
}

.portfolio_item:hover .portfolio_thumb img {
  transform: scale(1.06);
}

.portfolio_item:hover .portfolio_overlay {
  opacity: 1;
}

.portfolio_item:hover .portfolio_view {
  transform: translateY(0);
  background: rgba(255, 255, 255, .18);
  border-color: rgba(255, 255, 255, .5);
}

.portfolio_more_wrap {
  margin-top: 60px;
  text-align: center;
}

.portfolio_more_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 54px;
  padding: 0 28px;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all .25s ease;
}

.portfolio_more_btn:hover {
  background: #a98c48;
  transform: translateY(-2px);
}

.portfolio_empty{
  grid-column:1 / -1;
  padding:80px 20px;
  border:1px solid #e5e7eb;
  border-radius:28px;
  text-align:center;
}

.portfolio_empty_text{
  margin:0;
  font-size:16px;
  font-weight:500;
  color:#6b7280;
}


/* 의료광고 */
.law_feed_section {
  position: relative;
  padding: 140px 0;
  background: #f6f8fc;
}

.law_feed_inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  box-sizing: border-box;
}

.law_feed_head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 38px;
}

.law_feed_title_wrap {
  flex: 1 1 auto;
}

.law_feed_link_wrap {
  flex: 0 0 auto;
}

.law_feed_eyebrow {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .22em;
  color: rgba(17, 24, 39, .48);
}

.law_feed_title {
  margin: 0;
  font-size: 54px;
  font-weight: 700;
  line-height: 1.26;
  letter-spacing: -0.04em;
  color: #111827;
  word-break: keep-all;
}

.law_feed_desc {
  max-width: 760px;
  margin: 24px 0 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.9;
  color: #4b5563;
  word-break: keep-all;
}

.law_feed_link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 190px;
  height: 56px;
  padding: 0 24px;
  box-sizing: border-box;
  border: 1px solid #d8dfeb;
  border-radius: 999px;
  background: #fff;
  font-size: 15px;
  font-weight: 600;
  color: #111827;
  text-decoration: none;
  transition: all .25s ease;
}

.law_feed_link:hover {
  border-color: #b7c9ef;
  color: #a98c48;
}

.law_feed_body {
  display: grid;
  grid-template-columns: 1.05fr .95fr;
  gap: 24px;
}

.law_feed_featured {
  display: flex;
  flex-direction: column;
  min-height: 420px;
  padding: 38px;
  box-sizing: border-box;
  border-radius: 32px;
  background: linear-gradient(135deg, #0f172a 0%, #182642 100%);
  text-decoration: none;
  color: #fff;
  transition: transform .25s ease, box-shadow .25s ease;
}

.law_feed_featured:hover {
  transform: translateY(-4px);
  box-shadow: 0 24px 40px rgba(15, 23, 42, .16);
}

.law_feed_badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  height: 38px;
  padding: 0 16px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .10);
  font-size: 13px;
  font-weight: 600;
  color: #dbe7ff;
}

.law_feed_featured_date {
  margin: 26px 0 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.2;
  color: rgba(255, 255, 255, .62);
}

.law_feed_featured_title {
  margin: 18px 0 0;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: -0.03em;
  word-break: keep-all;
}

.law_feed_featured_desc {
  margin: 18px 0 0;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.9;
  color: rgba(255, 255, 255, .78);
  word-break: keep-all;
}

.law_feed_featured_more {
  display: inline-flex;
  align-items: center;
  margin-top: auto;
  padding-top: 34px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .08em;
  color: #9fc0ff;
}

.law_feed_list {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.law_feed_item {
  display: block;
  padding: 28px 30px;
  box-sizing: border-box;
  border: 1px solid #e6ebf2;
  border-radius: 26px;
  background: #fff;
  text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.law_feed_item:hover {
  transform: translateY(-4px);
  border-color: #d7e3ff;
  box-shadow: 0 18px 34px rgba(17, 24, 39, .06);
}

.law_feed_item_top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.law_feed_item_badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 34px;
  padding: 0 14px;
  border-radius: 999px;
  background: #eef4ff;
  font-size: 13px;
  font-weight: 600;
  color: #18243f;
}

.law_feed_item_title {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.5;
  color: #111827;
  word-break: keep-all;
}

.law_feed_item_desc {
  margin: 14px 0 0;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  color: #4b5563;
  word-break: keep-all;
}


/* 오시는 길 */
.location_section {
  position: relative;
  padding: 140px 0;
  background: #ffffff;
}

.location_inner {
  width: 100%;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 80px;
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

.location_info {
  width: 100%;
}

.location_eyebrow {
  margin: 0 0 18px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .22em;
  color: #9aa4b2;
}

.location_title {
  margin: 0;
  font-size: 54px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.04em;
  color: #111827;
  word-break: keep-all;
}

.location_address {
  margin: 30px 0 0;
  font-size: 18px;
  line-height: 1.8;
  color: #4b5563;
}

.location_btn_wrap {
  margin-top: 40px;
  display: flex;
  gap: 14px;
}

.location_btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 56px;
  padding: 0 28px;
  border: 1px solid #d8dfeb;
  border-radius: 999px;
  background: #ffffff;
  font-size: 15px;
  font-weight: 600;
  color: #111827;
  text-decoration: none;
  transition: all .25s ease;
}

.location_btn:hover {
  border-color: #b6ab90;
  color: #a98c48;
}

.location_btn.primary {
  background: #111827;
  border-color: #111827;
  color: #ffffff;
}

.location_btn.primary:hover {
  background: #a98c48;
  border-color: #a98c48;
}

.location_map_wrap {
  width: 100%;
}

.location_map {
  width: 100%;
  height: 420px;
  border-radius: 24px;
  overflow: hidden;
}

.location_map_btn_wrap {
  margin-top: 18px;
  display: flex;
  gap: 10px;
}

.location_map_btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 46px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

.location_map_btn.kakao {
  background: #fee500;
  color: #111;
}

.location_map_btn.naver {
  background: #03c75a;
  color: #fff;
}