/* =============================================
   style_resp.css — 반응형 스타일시트
   Breakpoints:
     - 1600px 이하 : 대형 데스크탑 조정
     - 1280px 이하 : 일반 데스크탑
     - 1024px 이하 : 태블릿 가로
     - 768px  이하 : 태블릿 세로 / 모바일 가로
     - 480px  이하 : 모바일 세로
============================================= */

/* ───────── 1600px 이하 ───────── */
@media (max-width: 1600px) {
  .wrap {
    width: 100%;
    padding: 0 40px;
    box-sizing: border-box;
  }

  .consultation-content {
    width: 100%;
    padding: 0 40px;
    box-sizing: border-box;
  }

  .hero h1 { font-size: 64px; }
  .hero-desc { font-size: 30px; }
  .btn-hero { width: 440px; height: 80px; font-size: 40px; }

  .section-title { font-size: 50px; }

  .services-grid {
    gap: 60px 80px;
    max-width: 100%;
    padding: 0 40px;
    box-sizing: border-box;
  }

  .lawyer-content {
    max-width: 100%;
    padding: 0 40px;
    box-sizing: border-box;
  }
}

/* ───────── 1280px 이하 ───────── */
@media (max-width: 1280px) {
  /* 헤더 */
  .head { height: 80px; }
  .menu_inr { gap: 50px; }
  .menu_inr li a { font-size: 18px; }

  /* 래퍼 */
  .wrap { padding: 0 30px; }
  .consultation-content { padding: 0 30px; }

  /* 히어로 */
  .hero h1 { font-size: 54px; }
  .hero-desc { font-size: 26px; }
  .btn-hero { width: 380px; height: 72px; font-size: 34px; }

  /* 섹션 공통 */
  .section-title { font-size: 44px; }
  .section-label { font-size: 20px; }

  /* 주요업무 */
  .services { padding: 80px 0; }
  .services-grid { gap: 50px 60px; padding: 0 30px; }
  .service-title { font-size: 28px; }
  .service-desc { font-size: 15px; }

  /* 진행절차 */
  .process { padding: 80px 0; }
  .process-subtitle { font-size: 20px; }
  .process-grid { grid-template-columns: repeat(4, 1fr); gap: 1em; }

  /* 변호사 */
  .lawyer { padding: 80px 0; }
  .lawyer-subtitle { font-size: 20px; }
  .lawyer-name { font-size: 36px; }
  .lawyer-list li { font-size: 20px; }

  /* 온라인 상담 */
  .consultation { padding: 80px 0; }
  .consultation-left h2 { font-size: 48px; }
  .consultation-left p { font-size: 20px; }

  /* 연락 바 */
  .contact-number { font-size: 50px; }
  .contact-phone { font-size: 22px; }
}

/* ───────── 1024px 이하 (태블릿 가로) ───────── */
@media (max-width: 1024px) {
  /* 헤더 */
  .head { height: 70px; }
  .menu_inr { gap: 30px; }
  .menu_inr li a { font-size: 16px; }
  .head .logo img { max-height: 40px; }

  /* 래퍼 */
  .wrap { padding: 0 20px; }
  .consultation-content { padding: 0 20px; }

  /* 히어로 */
  .hero { padding-top: 70px; }
  .hero-content { margin: 30px 0; }
  .hero h1 { font-size: 44px; margin-bottom: 30px; }
  .hero-desc { font-size: 22px; }
  .btn-hero { width: 320px; height: 64px; font-size: 28px; }
  .btn-subtitle { font-size: 0.95em; }

  /* 갤러리 */
  .gallery { padding: 30px 0; }
  .gallery-item img { height: 160px; }

  /* 주요업무 */
  .services { padding: 70px 0; }
  .services-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 30px;
    padding: 0 20px;
  }
  .section-title { font-size: 38px; margin-bottom: 50px; }

  /* 진행절차 */
  .process { padding: 70px 0; }
  .process-grid {
    grid-template-columns: repeat(2, 1fr);
    max-width: 100%;
    padding: 0 20px;
    box-sizing: border-box;
  }
  .process-subtitle { font-size: 18px; margin-bottom: 50px; }

  /* 변호사 */
  .lawyer { padding: 70px 0; }
  .lawyer-content {
    flex-direction: column;
    align-items: center;
    gap: 1.5em;
    padding: 0 20px;
  }
  .lawyer-image { text-align: center; }
  .lawyer-image img { max-width: 300px; }
  .lawyer-info { width: 100%; text-align: left; flex-direction: column; align-items: center; }
  .lawyer-name { font-size: 32px; margin-bottom: 30px; }
  .lawyer-list li { font-size: 18px; }
  .btn-lawyer { max-width: 480px; margin: 0 auto; }

  /* 온라인 상담 */
  .consultation { padding: 70px 0; }
  .consultation-content { flex-direction: column; gap: 2em; }
  .consultation-left { width: 100%; text-align: center; }
  .consultation-left h2 { font-size: 40px; margin-bottom: 20px; }
  .consultation-left p { font-size: 18px; }
  .consultation-form { width: 100%; padding-left: 0; }

  /* 연락 바 */
  .contact-bar { padding: 18px 0; gap: 10px; }
  .btn-kakao, .btn-tel { width: 220px; height: 52px; font-size: 14px; }
  .contact-number { font-size: 42px; }
  .contact-phone { font-size: 18px; }
  .contact-bar-inr { gap: 10px; margin-left: 15px; padding-left: 15px; }

  /* 푸터 */
  .footer { padding: 40px 20px; font-size: 0.82em; }
  .ft_info span { padding: 0 12px; }
}

/* ───────── 768px 이하 (태블릿 세로 / 모바일 가로) ───────── */
@media (max-width: 768px) {
	/* 헤더 — 햄버거 메뉴 기본 숨김 처리 (JS 토글 필요 시 별도 구현) */
	.head { height: 60px; }
	.menu { display: none; } /* 모바일에서 메뉴 숨김 */
	.head .logo img { max-height: 36px; }

	nav.mobile_menu { position: fixed; top: -100vh; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; width: 100%; height: 100vh; z-index: 9998; background: rgba(0, 0, 0, 0.8); border-bottom-right-radius: 100%; border-bottom-left-radius: 100%; transition: all 650ms cubic-bezier(1,0,0,1); }
	nav.mobile_menu.open { top: 0; padding: 80px 0px; border-radius: initial; }

	.nav-inner { display: flex; width: 100%; flex-wrap: wrap; justify-content: space-between; align-items: center; }
	.nav-list { display: flex; justify-content: center; align-items: flex-start; flex-direction: column; width: 100%; height: 100%; }
	.nav-list li { margin-bottom: 20px; width: 100%; text-align: center; }
	.nav-list li:last-child { margin-bottom: 0px; }
	.nav-list li a { position: relative; color: #fff; font-size: 1.3em; font-weight: 600; }

	.nav-link { padding: 1rem; font-size: 2rem; }
	.nav-link:hover, .nav-link:focus { color: #fff; }

	.menu-toggler { position: fixed; top: 20px; right: 2%; width: 30px; height: 19px; display: flex; flex-direction: column; justify-content: space-between; z-index: 9999; transition: all 650ms ease-out; cursor: pointer; }
	.menu-toggler.open { position: fixed; transform: rotate(-45deg); }

	.bar { background-color: #fff; width: 100%; height: 2px; border-radius: 0.8rem; }
	body.scrolled .bar { background-color: #fff; }
	.open .bar { background-color: #fff; }
	body.scrolled .open .bar { background-color: #fff; }
	.bar.half { width: 50%; }
	.bar.top { transform-origin: right; transition: transform 650ms cubic-bezier(0.54, -0.81, 0.57, 0.57); }
	.open .bar.top { transform: rotate(-450deg) translateX(0.45rem); }
	.bar.bottom { align-self: flex-end; transform-origin: left; transition: transform 650ms cubic-bezier(0.54, -0.81, 0.57, 0.57); }
	.open .bar.bottom { transform: rotate(-450deg) translateX(-0.45rem); }

	.nav-inner ul ul { display: none; margin-top: 10px; }
	.nav-inner ul ul li { margin-bottom:0px; }
	.nav-inner ul ul li a { display: inline-block; padding: 0px; color: rgba(255, 255, 255, 0.7); font-size: 1.1em; font-weight: 300; line-height: 1.8; text-decoration: none; -webkit-transition: all 0.5s; -moz-transition: all 0.5s; -o-transition: all 0.5s; -ms-transition: all 0.5s; transition: all 0.5s; }
	.nav-inner ul ul li a:hover { color: rgba(255, 255, 255, 1); }
	.nav-inner ul ul li a:before { display: none; height: 1px; }

	/* 래퍼 */
	.wrap { padding: 0 16px; }
	.consultation-content { padding: 0 16px; flex-direction: column; }

	/* 히어로 */
	.hero { padding-top: 60px; }
	.hero-content { margin: 50px 16px; }
	.hero h1 { font-size: 34px; margin-bottom: 20px; }
	.hero-icon img { width: 120px; }
	.hero-desc { font-size: 17px; }
	.hero-desc br { display: none; }
	.btn-hero { width: 280px; height: 56px; font-size: 22px; }
	.btn-subtitle { font-size: 0.85em; margin-top: 12px; }

	/* 갤러리 */
	.gallery { padding: 20px 0; }
	.gallery-item img { height: 120px; }
	.gallery-track { gap: 15px; }

	/* 주요업무 */
	.services { padding: 60px 0; }
	.services-grid {
		grid-template-columns: 1fr;
		gap: 40px;
		padding: 0 16px;
	}
	.section-title { font-size: 30px; margin-bottom: 40px; }
	.section-label { font-size: 16px; margin-bottom: 15px; }
	.service-title { font-size: 24px; }
	.service-desc { font-size: 14px; }
	.service-list li { font-size: 14px; }

	/* 진행절차 */
	.process { padding: 60px 0; }
	.process-grid {
		grid-template-columns: repeat(2, 1fr);
		padding: 0 16px;
		gap: 0.75em;
	}
	.process-subtitle { font-size: 15px; margin-bottom: 40px; }
	.process-subtitle br { display: none; }
	.process-card { padding: 1.5em 1em; }
	.process-name { font-size: 0.9em; }

	/* 변호사 */
	.lawyer { padding: 60px 0; }
	.lawyer-subtitle { font-size: 16px; margin-bottom: 40px; }
	.lawyer-subtitle br { display: none; }
	.lawyer-content { padding: 0 16px; }
	.lawyer-image img { max-width: 240px; }
	.lawyer-name { font-size: 26px; margin-bottom: 20px; }
	.lawyer-list li { font-size: 16px; padding-left: 28px; }

	/* 온라인 상담 */
	.consultation { padding: 60px 0; }
	.consultation-left h2 { font-size: 30px; }
	.consultation-left p { font-size: 16px; }
	.consultation-left p br { display: none; }
	.form-group label { width: 100px; height: 50px; font-size: 0.9em; }
	.form-group input,
	.form-group textarea { width: calc(100% - 100px); height: 50px; font-size: 0.85em; }
	.form-group textarea { min-height: 150px; }
	.btn-submit { width: 100%; }
	.form-btn { text-align: center; }

	/* 연락 바 */
	.contact-bar { flex-wrap: wrap; justify-content: center; padding: 14px 10px; gap: 8px; }
	.btn-kakao, .btn-tel { width: 46%; height: 48px; font-size: 13px; margin-right: 0; }
	.btn-kakao { margin-right: 4px; }
	.contact-bar-inr { width: 100%; justify-content: center; margin-left: 0; padding-left: 0; margin-top: 8px; }
	.contact-bar-inr:after { display: none; }
	.contact-number { font-size: 38px; }
	.contact-phone { font-size: 15px; }

	/* 푸터 */
	.footer { padding: 30px 16px; }
	.ft_logo img { max-height: 36px; }
	.ft_info span { display: block; padding: 3px 0; font-size: 0.85em; }
	.ft_info span:after { display: none; }
	.ft_info p { font-size: 0.8em; }
}

/* ───────── 480px 이하 (모바일 세로) ───────── */
@media (max-width: 480px) {
  /* 히어로 */
  .hero h1 { font-size: 28px; }
  .hero-desc { font-size: 15px; }
  .btn-hero { width: 240px; height: 50px; font-size: 18px; }
  .hero-icon img { max-width: 80px; }

  /* 섹션 공통 */
  .section-title { font-size: 26px; }

  /* 주요업무 */
  .service-image img { height: auto; }

  /* 진행절차 */
  .process-grid { grid-template-columns: 1fr 1fr; }
  .process-icon img { max-width: 48px; }
  .process-badge { font-size: 0.6em; }
  .process-name { font-size: 0.8em; }

  /* 변호사 */
  .lawyer-image img { max-width: 200px; }
  .lawyer-name { font-size: 22px; }
  .lawyer-list li { font-size: 14px; }

  /* 온라인 상담 */
  .consultation-left h2 { font-size: 26px; }
  .form-group { flex-direction: column; }
  .form-group label { width: 100%; height: auto; margin-bottom: 6px; }
  .form-group input,
  .form-group textarea { width: 100%; box-sizing: border-box; }
  .form-check { justify-content: flex-start; font-size: 0.85em; }

  /* 연락 바 */
  .btn-kakao, .btn-tel { width: 100%; margin-right: 0; }
  .contact-number { font-size: 32px; }

  /* 푸터 */
  .ft_info span { font-size: 0.78em; }
}