body.blank-page {
  background: #ffffff !important;
}

/* 페이지 전체 레이아웃 가이드 */
.contact-page-new {
  width: 100%;
  max-width: 1920px;
  margin: 0 auto;
  background: #ffffff;
  color: #000000;
  padding-top: 180px; /* 헤더 텍스트와 콘텐츠 시작점 사이의 간격 조정 */
  overflow: hidden;
}

/* 4컬럼 그리드 시스템 기반 (스크린샷 가이드라인 반영) */
.contact-hero-section,
.contact-about-section,
.contact-engagement-section {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr; /* HIGGS, WORKS, CONTACT, (Empty) 4분할 체계 */
  padding: 0 4%; /* 좌우 여백을 스크린샷의 붉은 선 시작점에 맞춤 */
  gap: 0;
}

/* HERO SECTION - Beyond design 위치 조정 */
.contact-hero-section {
  margin-bottom: 220px; /* 스크린샷의 긴 화살표 여백 반영 */
}

.contact-hero-visual {
  grid-column: 1 / 3;
  display: 100px;
  justify-content: flex-start;
}

.contact-hero-visual img {
  width: 680px;
  height: auto;
}

.contact-hero-copy {
  grid-column: 3 / 5; /* WORKS와 CONTACT 메뉴 라인 사이에서 시작 */
  padding-top: 192px;
}

.contact-hero-copy h1 {
  margin: 0 0 15px;
  font-family: "Poppins", sans-serif;
  font-size: 60px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.03em;
}

.contact-hero-copy p {
  margin: 0;
  padding-top: 20px;
  border-top: 1px solid #adadad;
  font-size: 19px;
  line-height: 1.6;
  max-width: 980px;
}

/* ABOUT SECTION - 타이틀 라인 정밀 맞춤 */
.contact-about-section {
  margin-bottom: 240px; /* 서비스 섹션과의 간격 */
  align-items: start;
}

.contact-about-section h2 {
  grid-column: 1 / 2; /* HIGGS 메뉴 바로 아래 위치 */
  font-size: 50px;
  font-weight: 700;
  margin: 0;
  letter-spacing: -0.04em;
}

.contact-flow-wrap {
  grid-column: 2 / 5; /* WORKS 메뉴 라인부터 시작 */
}

.contact-flow-list {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  width: 100%;
  margin-bottom: 50px;
}
.contact-flow-item {
  position: relative;
  padding-right: 80px; /* 화살표 공간 확보 */
}

.contact-flow-item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: 50px;
  top: 29px;
  width: 10px;
  height: 10px;
  border-top: 1.5px solid #ccc;
  border-right: 1.5px solid #ccc;
  transform: rotate(45deg);
}

.contact-flow-item span {
  display: block;
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 8px;
}

.contact-flow-item strong {
  display: block;
  font-size: 35px;
  font-weight: 600;
}

.contact-about-desc {
  font-size: 18px;
  line-height: 1.65;
  color: #333;
  max-width: 1000px;
}

/* SERVICE STRIP - 이미지 확대 느낌 조정   */
.contact-service-strip {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  width: 100%;
  border-top: 1px solid #000;
  margin-bottom: 200px;
}

.contact-service-card {
  position: relative;
  aspect-ratio: 1 / 1;
  border-right: 1px solid #000;
  overflow: hidden;
  cursor: none;
  padding: 1px; /* 얇은 테두리 효과로 확대 느낌 완화 */
}

.contact-service-card:last-child {
  border-right: none;
}

.contact-service-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.0); /* 기본 상태에서 확대 제거 */
  transition: transform 0.6s cubic-bezier(0.2, 0, 0.2, 1);
}

.contact-service-card:hover img {
  transform: scale(1.33); /* 호버 시에도 아주 살짝만 확대 */
}

/* 이미지 좌하단 고정 타이틀 */
.contact-service-card h3 {
  position: absolute;
  left: 30px;
  bottom: 30px;
  color: #fff;
  font-size: 34px;
  font-weight: 600;
  z-index: 5;
  margin: 0;
  pointer-events: none;
}

/* 마우스 추적 정보 박스 - 호버 시에만 활성화 */
.service-info-overlay {
  position: fixed;
  top: 0;
  left: 0;
  background: rgba(255, 255, 255, 0.96);
  padding: 24px;
  width: 260px;
  z-index: 1000;
  pointer-events: none; /* 커서 트래킹 방해 금지 */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  box-shadow: 0 10px 40px rgba(0,0,0,0.15);
}

.service-info-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

.service-info-overlay p {
  margin: 0 0 12px;
  font-size: 12px;
  line-height: 1.5;
  color: #000;
  font-weight: 600;
}

.service-info-overlay span {
  display: block;
  font-size: 12px;
  line-height: 1.5;
  color: #666;
}

/* ENGAGEMENT SECTION - 그리드 정렬 */
.contact-engagement-section {
  margin-bottom: 200px;
}

.contact-engagement-section h2 {
  grid-column: 1 / 2; /* About HIGGS 타이틀 라인과 일치 */
  font-size: 50px;
  font-weight: 600;
  line-height: 1.05;
  margin: 0;
}

.engagement-list {
  grid-column: 2 / 5; /* Flow 리스트 라인과 일치 */
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 50px;
}

.engagement-item h3 { font-size: 28px; font-weight: 700; margin-bottom: 15px; }
.engagement-item strong { display: block; font-size: 14px; margin-bottom: 25px; }
.engagement-item p { font-size: 14px; line-height: 1.7; color: #444; }

/* MAP SECTION - 그리드 분할 반영 */
.contact-map-section {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  background: #000;
  height: 600px;
}

.contact-map-image {
  grid-column: 1 / 4; /* 3/4 지점까지 지도 */
}

.contact-map-info {
  grid-column: 4 / 5; /* 마지막 1/4 영역 정보 */
  background: #000;
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px;
  gap: 50px;
}

.contact-map-info h3 {
  font-size: 32px;
  font-weight: 700;
  margin-bottom: 12px;
}

.contact-map-info p {
  font-size: 14px;
  color: #aaa;
  line-height: 1.5;
}

/* RESPONSIVE */
@media (max-width: 1400px) {
  .contact-hero-section h1 { font-size: 48px; }
  .contact-engagement-section h2 { font-size: 42px; }
  .contact-about-section h2 { font-size: 36px; }
}

@media (max-width: 1024px) {
  .contact-hero-section { grid-template-columns: 1fr; text-align: center; }
  .contact-hero-copy { margin: 0 auto; }
  .contact-about-section { grid-template-columns: 1fr; }
  .contact-flow-list { flex-direction: column; gap: 30px; }
  .contact-flow-item::after { display: none; }
  .contact-service-strip { grid-template-columns: 1fr 1fr; }
  .contact-engagement-section { grid-template-columns: 1fr; }
  .contact-map-section { grid-template-columns: 1fr; height: auto; }
  .contact-map-info { padding: 40px; }
}
/* ===== CONTACT MAP FULL WIDTH + INFO UP FINAL ===== */

.contact-map-section {
  width: 100vw !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;

  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;

  height: 600px !important;
  background: #000 !important;
  overflow: hidden !important;
}

/* 지도 이미지 영역 */
.contact-map-image {
  grid-column: 1 / 4 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}

.contact-map-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* 우측 Address / Tel / Email */
.contact-map-info {
  grid-column: 4 / 5 !important;
  height: 100% !important;

  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;

  padding: 55px 40px 40px !important;
  gap: 46px !important;

  background: #000 !important;
  color: #fff !important;
}
/* ===== CONTACT MAP TRUE FULL WIDTH FINAL ===== */

/* 상위 부모 제한 해제 */
.contact-page-new {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  overflow-x: hidden !important;
}

/* 맵 섹션을 브라우저 좌우 끝까지 */
.contact-map-section {
  position: relative !important;
  left: 50% !important;
  width: 100vw !important;
  max-width: none !important;
  margin-left: -50vw !important;
  margin-right: 0 !important;

  display: grid !important;
  grid-template-columns: 3fr 1fr !important;

  height: 600px !important;
  background: #000 !important;
  overflow: hidden !important;
}

/* 지도 영역 */
.contact-map-image {
  grid-column: 1 / 2 !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}

.contact-map-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}
/* 우측 정보 영역 */
.contact-map-info {
  grid-column: 2 / 3 !important;
  height: 100% !important;

  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;

  padding: 50px 48px 40px !important;
  gap: 52px !important;

  background: #000 !important;
  color: #fff !important;
}
/* ===== COMPANY MAP PIN ===== */

.contact-map-image {
  position: relative !important;
}

.map-company-pin {
  position: absolute;
  left: 37%;
  top: 48%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #ffffff;
  z-index: 20;
  transform: translate(-50%, -50%);
  pointer-events: none;
}

.map-company-pin::before,
.map-company-pin::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 10px;
  height: 10px;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(1);
  opacity: 0.9;
  animation: mapPinPulse 2.2s ease-out infinite;
}

.map-company-pin::after {
  animation-delay: 1.1s;
}

@keyframes mapPinPulse {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.9;
  }

  100% {
    transform: translate(-50%, -50%) scale(20);
    opacity: 0;
  }
}
/* ===== CONTACT MOBILE FIX ===== */
@media (max-width: 768px) {
  .contact-page-new {
    padding-top: 140px !important;
    max-width: none !important;
  }

  .contact-hero-section,
  .contact-about-section,
  .contact-engagement-section {
    display: block !important;
    padding: 0 20px !important;
  }

  .contact-hero-section {
    margin-bottom: 120px !important;
  }

  .contact-hero-visual {
    display: block !important;
    margin-bottom: 48px;
  }

  .contact-hero-visual img {
    width: 100% !important;
    max-width: 420px;
    height: auto;
  }

  .contact-hero-copy {
    padding-top: 0 !important;
  }

  .contact-hero-copy h1 {
    font-size: clamp(38px, 12vw, 56px) !important;
    line-height: 1.05;
  }

  .contact-hero-copy p {
    font-size: 14px !important;
    line-height: 1.65;
    word-break: keep-all;
  }

  .contact-about-section {
    margin-bottom: 120px !important;
  }

  .contact-about-section h2 {
    font-size: 36px !important;
    margin-bottom: 44px !important;
  }

  .contact-flow-list {
    grid-template-columns: 1fr !important;
    gap: 28px;
    margin-bottom: 44px !important;
  }

  .contact-flow-item {
    padding-right: 0 !important;
    padding-bottom: 24px;
    border-bottom: 1px solid #dddddd;
  }

  .contact-flow-item::after {
    display: none !important;
  }

  .contact-flow-item span {
    font-size: 15px !important;
  }

  .contact-flow-item strong {
    font-size: 30px !important;
  }

  .contact-about-desc {
    font-size: 14px !important;
    line-height: 1.7;
  }

  .contact-service-strip {
    grid-template-columns: 1fr !important;
    margin-bottom: 120px !important;
  }

  .contact-service-card {
    border-right: none !important;
    border-bottom: 1px solid #000;
  }

  .contact-service-card h3 {
    left: 22px !important;
    bottom: 22px !important;
    font-size: 28px !important;
  }

  .service-info-overlay {
    display: none !important;
  }

  .contact-map-section {
    display: block !important;
    width: 100% !important;
    margin-left: 0 !important;
  }

  .contact-map-image {
    width: 100% !important;
  }

  .contact-map-image img {
    width: 100% !important;
    height: auto !important;
    display: block;
  }

  .contact-map-info {
    padding: 28px 20px 60px !important;
  }
}
/* ===== CONTACT MOBILE MAP FIX ===== */
@media (max-width: 768px) {
  .contact-map-section {
    position: relative !important;
    left: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;

    display: block !important;
    height: auto !important;
    background: #000 !important;
    overflow: visible !important;
  }

  .contact-map-image {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    overflow: hidden !important;
    background: #000 !important;
  }

  .contact-map-image img {
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
  }

  .map-company-pin {
    left: 37% !important;
    top: 48% !important;
  }

  .contact-map-info {
    width: 100% !important;
    height: auto !important;
    padding: 34px 22px 42px !important;
    gap: 28px !important;

    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;

    background: #000 !important;
    color: #fff !important;
  }

  .contact-map-info h3 {
    font-size: 22px !important;
    margin: 0 0 8px 0 !important;
  }

  .contact-map-info p {
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin: 0 !important;
  }
}
/* ===== MOBILE CONTACT HERO TEXT SIZE ===== */
@media (max-width: 768px) {
  .contact-hero-copy h1 {
    font-size: 42px !important;
    line-height: 1.08 !important;
    letter-spacing: -0.045em !important;
  }

  .contact-hero-copy p {
    font-size: 13px !important;
    line-height: 1.55 !important;
    text-align: center !important;
    word-break: keep-all !important;
  }
}
/* ===== MOBILE CONTACT HERO RIGHT ALIGN ===== */
@media (max-width: 768px) {
  .contact-hero-copy {
    text-align: right !important;
  }

  .contact-hero-copy h1 {
    text-align: left !important;
  }

  .contact-hero-copy p {
    text-align: left !important;
    margin-left: auto !important;
    margin-right: 0 !important;
  }
}
/* ===== MOBILE CONTACT FLOW PILL DIAGRAM ===== */
@media (max-width: 768px) {
  .contact-about-section {
    padding: 0 24px !important;
  }

  .contact-about-section h2 {
    font-size: 32px !important;
    margin-bottom: 42px !important;
  }

  .contact-flow-list {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    column-gap: 28px !important;
    row-gap: 26px !important;
    position: relative !important;
    margin-bottom: 52px !important;
  }

  .contact-flow-item {
    position: relative !important;
    padding: 10px 12px 12px !important;
    border: 1.5px solid #111 !important;
    border-radius: 999px !important;
    text-align: center !important;
    background: #fff !important;
    min-height: 54px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .contact-flow-item span {
    margin: 0 0 3px !important;
    font-size: 10px !important;
    line-height: 1 !important;
    font-weight: 600 !important;
  }

  .contact-flow-item strong {
    font-size: 18px !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    letter-spacing: -0.025em !important;
  }

  /* 기존 화살표 제거 */
  .contact-flow-item::after {
    display: none !important;
  }

  /* 순서 재배치 */
  .contact-flow-item:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }

  .contact-flow-item:nth-child(2) {
    grid-column: 2;
    grid-row: 1;
  }

  .contact-flow-item:nth-child(4) {
    grid-column: 1;
    grid-row: 2;
  }

  .contact-flow-item:nth-child(3) {
    grid-column: 2;
    grid-row: 2;
  }

  .contact-flow-item:nth-child(5) {
    grid-column: 1;
    grid-row: 3;
  }

  /* 가로 연결선 1행 */
  .contact-flow-item:nth-child(1)::before {
    content: "";
    position: absolute;
    left: 100%;
    top: 50%;
    width: 28px;
    height: 1.5px;
    background: #111;
    transform: translateY(-50%);
  }

  /* 가로 연결선 2행 */
  .contact-flow-item:nth-child(4)::before {
    content: "";
    position: absolute;
    left: 100%;
    top: 50%;
    width: 28px;
    height: 1.5px;
    background: #111;
    transform: translateY(-50%);
  }

  /* 세로 연결선 */
  .contact-flow-item:nth-child(4)::after {
    content: "";
    display: block !important;
    position: absolute;
    left: 50%;
    top: 100%;
    width: 1.5px;
    height: 26px;
    background: #111;
    transform: translateX(-50%);
  }

  .contact-about-desc {
    font-size: 13px !important;
    line-height: 1.7 !important;
    text-align: left !important;
    word-break: keep-all !important;
  }
}
/* ===== MOBILE CONTACT FLOW RIGHT VERTICAL LINE FIX ===== */
@media (max-width: 768px) {
  .contact-flow-item:nth-child(2)::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 50% !important;
    top: 100% !important;
    width: 1.5px !important;
    height: 26px !important;
    background: #111 !important;
    transform: translateX(-50%) !important;
  }
}
/* ===== MOBILE CONTACT MAP IMAGE ZOOM ===== */
@media (max-width: 768px) {
  .contact-map-image {
    height: 300px !important;
    overflow: hidden !important;
  }

  .contact-map-image img {
    width: 155% !important;
    height: 140% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: translateX(-10%) !important;
  }
}
/* ===== CONTACT MOBILE LANDSCAPE FINAL ===== */
@media (max-width: 1024px) and (max-height: 500px) and (orientation: landscape),
       (orientation: landscape) and (hover: none) and (pointer: coarse) and (max-width: 950px) {

  /* 전체 시작 위치 */
  .contact-page-new {
    padding-top: 120px !important;
    max-width: none !important;
    width: 100% !important;
    overflow-x: hidden !important;
  }

  /* HERO */
  .contact-hero-section {
    display: grid !important;
    grid-template-columns: 0.9fr 1.1fr !important;
    gap: 28px !important;
    padding: 0 44px !important;
    margin-bottom: 90px !important;
    align-items: center !important;
    text-align: left !important;
  }

  .contact-hero-visual {
    grid-column: 1 / 2 !important;
    display: block !important;
  }

  .contact-hero-visual img {
    width: 100% !important;
    max-width: 300px !important;
    height: auto !important;
    display: block !important;
  }

  .contact-hero-copy {
    grid-column: 2 / 3 !important;
    padding-top: 0 !important;
  }

  .contact-hero-copy h1 {
    font-size: 34px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    margin-bottom: 14px !important;
  }

  .contact-hero-copy p {
    font-size: 11px !important;
    line-height: 1.55 !important;
    padding-top: 14px !important;
    max-width: 100% !important;
    word-break: keep-all !important;
  }

  /* ABOUT */
  .contact-about-section {
    display: grid !important;
    grid-template-columns: 0.8fr 1.2fr !important;
    gap: 32px !important;
    padding: 0 44px !important;
    margin-bottom: 90px !important;
    align-items: start !important;
  }

  .contact-about-section h2 {
    grid-column: 1 / 2 !important;
    font-size: 30px !important;
    line-height: 1.05 !important;
    margin: 0 !important;
  }

  .contact-flow-wrap {
    grid-column: 2 / 3 !important;
  }

  .contact-flow-list {
    display: grid !important;
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 0 !important;
    margin-bottom: 28px !important;
  }

  .contact-flow-item {
    padding-right: 20px !important;
    padding-bottom: 0 !important;
    border-bottom: none !important;
  }

  .contact-flow-item span {
    font-size: 10px !important;
    line-height: 1.1 !important;
    margin-bottom: 4px !important;
  }

  .contact-flow-item strong {
    font-size: 17px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.04em !important;
  }

  .contact-flow-item::before,
  .contact-flow-item::after {
    display: none !important;
  }

  .contact-about-desc {
    font-size: 11px !important;
    line-height: 1.6 !important;
    max-width: 100% !important;
    word-break: keep-all !important;
  }

  /* SERVICE STRIP - 현재 HTML에 카드가 있으면 4열 유지 */
  .contact-service-strip {
    grid-template-columns: repeat(4, 1fr) !important;
    margin-bottom: 90px !important;
  }

  .contact-service-card h3 {
    left: 18px !important;
    bottom: 18px !important;
    font-size: 20px !important;
    line-height: 1.05 !important;
  }

  .service-info-overlay {
    display: none !important;
  }

  /* ENGAGEMENT */
  .contact-engagement-section {
    display: grid !important;
    grid-template-columns: 0.8fr 1.2fr !important;
    gap: 32px !important;
    padding: 0 44px !important;
    margin-bottom: 90px !important;
  }

  .contact-engagement-section h2 {
    font-size: 30px !important;
    line-height: 1.05 !important;
  }

  .engagement-list {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 22px !important;
  }

  .engagement-item h3 {
    font-size: 18px !important;
    margin-bottom: 8px !important;
  }

  .engagement-item strong {
    font-size: 10px !important;
    margin-bottom: 12px !important;
  }

  .engagement-item p {
    font-size: 10px !important;
    line-height: 1.55 !important;
  }

  /* MAP */
  .contact-map-section {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    margin-left: -50vw !important;
    display: grid !important;
    grid-template-columns: 2fr 1fr !important;
    height: 360px !important;
  }

  .contact-map-image {
    grid-column: 1 / 2 !important;
    height: 100% !important;
  }

  .contact-map-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transform: none !important;
  }

  .contact-map-info {
    grid-column: 2 / 3 !important;
    padding: 30px 28px !important;
    gap: 26px !important;
  }

  .contact-map-info h3 {
    font-size: 20px !important;
    margin-bottom: 8px !important;
  }

  .contact-map-info p {
    font-size: 10px !important;
    line-height: 1.45 !important;
  }

  .map-company-pin {
    left: 37% !important;
    top: 48% !important;
  }
}
/* ===== CONTACT TABLET LANDSCAPE FINAL ===== */
@media (min-width: 768px) and (max-width: 1366px) and (min-height: 600px) and (orientation: landscape) {

  .contact-page-new {
    padding-top: 210px !important;
    max-width: none !important;
    width: 100% !important;
    overflow-x: hidden !important;
    background: #ffffff !important;
  }

  /* HERO */
  .contact-hero-section {
    grid-template-columns: 1fr 1fr !important;
    padding: 0 56px !important;
    gap: 48px !important;
    margin-bottom: 150px !important;
    align-items: center !important;
  }

  .contact-hero-visual {
    grid-column: 1 / 2 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }

  .contact-hero-visual img {
    width: 100% !important;
    max-width: 430px !important;
    height: auto !important;
    display: block !important;
  }

  .contact-hero-copy {
    grid-column: 2 / 3 !important;
    padding-top: 0 !important;
  }

  .contact-hero-copy h1 {
    font-size: 48px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    margin: 0 0 18px !important;
  }

  .contact-hero-copy p {
    font-size: 14px !important;
    line-height: 1.65 !important;
    padding-top: 18px !important;
    max-width: 100% !important;
    word-break: keep-all !important;
  }

  .pc-scroll-cue-contact {
    display: none !important;
  }

  /* ABOUT */
  .contact-about-section {
    grid-template-columns: 0.8fr 1.2fr !important;
    padding: 0 56px !important;
    gap: 48px !important;
    margin-bottom: 150px !important;
    align-items: start !important;
  }

  .contact-about-section h2 {
    grid-column: 1 / 2 !important;
    font-size: 42px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    margin: 0 !important;
  }

  .contact-flow-wrap {
    grid-column: 2 / 3 !important;
  }

  .contact-flow-list {
    grid-template-columns: repeat(5, 1fr) !important;
    gap: 0 !important;
    margin-bottom: 36px !important;
  }

  .contact-flow-item {
    padding-right: 18px !important;
  }

  .contact-flow-item:not(:last-child)::after {
    display: none !important;
  }

  .contact-flow-item span {
    font-size: 13px !important;
    line-height: 1.2 !important;
    margin-bottom: 6px !important;
  }

  .contact-flow-item strong {
    font-size: 24px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
  }

  .contact-about-desc {
    font-size: 14px !important;
    line-height: 1.7 !important;
    max-width: 100% !important;
    word-break: keep-all !important;
  }

  /* SERVICE STRIP - HTML에 카드가 있을 경우 대비 */
  .contact-service-strip {
    grid-template-columns: repeat(4, 1fr) !important;
    margin-bottom: 150px !important;
  }

  .contact-service-card h3 {
    left: 22px !important;
    bottom: 22px !important;
    font-size: 26px !important;
    line-height: 1.05 !important;
  }

  .service-info-overlay {
    display: none !important;
  }

  /* ENGAGEMENT */
  .contact-engagement-section {
    grid-template-columns: 0.8fr 1.2fr !important;
    padding: 0 56px !important;
    gap: 48px !important;
    margin-bottom: 150px !important;
  }

  .contact-engagement-section h2 {
    grid-column: 1 / 2 !important;
    font-size: 42px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
  }

  .engagement-list {
    grid-column: 2 / 3 !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px !important;
  }

  .engagement-item h3 {
    font-size: 22px !important;
    line-height: 1.15 !important;
    margin-bottom: 10px !important;
  }

  .engagement-item strong {
    font-size: 11px !important;
    line-height: 1.4 !important;
    margin-bottom: 14px !important;
  }

  .engagement-item p {
    font-size: 12px !important;
    line-height: 1.65 !important;
  }

  /* MAP */
  .contact-map-section {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    margin-left: -50vw !important;

    display: grid !important;
    grid-template-columns: 2fr 1fr !important;
    height: 460px !important;
  }

  .contact-map-image {
    grid-column: 1 / 2 !important;
    height: 100% !important;
  }

  .contact-map-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transform: none !important;
  }

  .contact-map-info {
    grid-column: 2 / 3 !important;
    padding: 44px 40px !important;
    gap: 32px !important;
  }

  .contact-map-info h3 {
    font-size: 26px !important;
    line-height: 1.15 !important;
    margin-bottom: 10px !important;
  }

  .contact-map-info p {
    font-size: 12px !important;
    line-height: 1.55 !important;
  }

  .map-company-pin {
    left: 37% !important;
    top: 48% !important;
  }
}
/* ===== CONTACT TABLET PORTRAIT FINAL ===== */
@media (min-width: 768px) and (max-width: 1024px) and (min-height: 900px) and (orientation: portrait) {

  .contact-page-new {
    padding-top: 170px !important;
    width: 100% !important;
    max-width: none !important;
    overflow-x: hidden !important;
    background: #ffffff !important;
  }

  /* HERO */
  .contact-hero-section {
    display: block !important;
    padding: 0 44px !important;
    margin-bottom: 150px !important;
  }

  .contact-hero-visual {
    display: flex !important;
    justify-content: center !important;
    margin-bottom: 56px !important;
  }

  .contact-hero-visual img {
    width: 100% !important;
    max-width: 520px !important;
    height: auto !important;
  }

  .contact-hero-copy {
    padding-top: 0 !important;
    text-align: left !important;
  }

  .contact-hero-copy h1 {
    font-size: 54px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
    margin: 0 0 22px !important;
  }

  .contact-hero-copy p {
    font-size: 15px !important;
    line-height: 1.7 !important;
    padding-top: 18px !important;
    max-width: 100% !important;
  }

  .pc-scroll-cue-contact {
    display: none !important;
  }

  /* ABOUT */
  .contact-about-section {
    display: block !important;
    padding: 0 44px !important;
    margin-bottom: 150px !important;
  }

  .contact-about-section h2 {
    font-size: 46px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
    margin: 0 0 44px !important;
  }

  .contact-flow-wrap {
    width: 100% !important;
  }

  .contact-flow-list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 28px 32px !important;
    margin-bottom: 44px !important;
  }

  .contact-flow-item {
    padding-right: 0 !important;
  }

  .contact-flow-item:not(:last-child)::after {
    display: none !important;
  }

  .contact-flow-item span {
    font-size: 14px !important;
    margin-bottom: 6px !important;
  }

  .contact-flow-item strong {
    font-size: 30px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
  }

  .contact-about-desc {
    font-size: 15px !important;
    line-height: 1.75 !important;
    max-width: 100% !important;
  }

  /* SERVICE STRIP */
  .contact-service-strip {
    grid-template-columns: repeat(2, 1fr) !important;
    margin-bottom: 150px !important;
  }

  .contact-service-card h3 {
    left: 24px !important;
    bottom: 24px !important;
    font-size: 30px !important;
    line-height: 1.05 !important;
  }

  .service-info-overlay {
    display: none !important;
  }

  /* ENGAGEMENT */
  .contact-engagement-section {
    display: block !important;
    padding: 0 44px !important;
    margin-bottom: 150px !important;
  }

  .contact-engagement-section h2 {
    font-size: 46px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
    margin: 0 0 44px !important;
  }

  .engagement-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 36px !important;
  }

  .engagement-item h3 {
    font-size: 28px !important;
    line-height: 1.15 !important;
    margin-bottom: 12px !important;
  }

  .engagement-item strong {
    font-size: 13px !important;
    margin-bottom: 14px !important;
  }

  .engagement-item p {
    font-size: 14px !important;
    line-height: 1.7 !important;
  }

  /* MAP */
  .contact-map-section {
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    margin-left: -50vw !important;

    display: block !important;
    height: auto !important;
  }

  .contact-map-image {
    width: 100% !important;
    height: 420px !important;
  }

  .contact-map-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transform: none !important;
  }

  .contact-map-info {
    width: 100% !important;
    padding: 44px !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 32px !important;
  }

  .contact-map-info h3 {
    font-size: 28px !important;
    margin-bottom: 10px !important;
  }

  .contact-map-info p {
    font-size: 13px !important;
    line-height: 1.6 !important;
  }

  .map-company-pin {
    left: 50% !important;
    top: 50% !important;
  }
}
/* ===== CONTACT TABLET PORTRAIT : PHONE PORTRAIT BASE ADAPT ===== */
@media (min-width: 768px) and (max-width: 1024px) and (min-height: 900px) and (orientation: portrait) {

  .contact-page-new {
    padding-top: 170px !important;
    width: 100% !important;
    max-width: none !important;
    background: #ffffff !important;
    overflow-x: hidden !important;
  }

  /* 폰 세로처럼 전체를 위→아래 흐름으로 */
  .contact-hero-section,
  .contact-about-section,
  .contact-engagement-section {
    display: block !important;
    padding: 0 44px !important;
  }

  /* HERO */
  .contact-hero-section {
    margin-bottom: 150px !important;
  }

  .contact-hero-visual {
    display: flex !important;
    justify-content: center !important;
    margin-bottom: 56px !important;
  }

  .contact-hero-visual img {
    width: 100% !important;
    max-width: 520px !important;
    height: auto !important;
    display: block !important;
  }

  .contact-hero-copy {
    padding-top: 0 !important;
    max-width: 100% !important;
    text-align: left !important;
  }

  .contact-hero-copy h1 {
    font-size: 54px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
    margin: 0 0 22px !important;
  }

  .contact-hero-copy p {
    font-size: 15px !important;
    line-height: 1.7 !important;
    padding-top: 18px !important;
    max-width: 100% !important;
    word-break: keep-all !important;
  }

  .pc-scroll-cue-contact {
    display: none !important;
  }

  /* ABOUT */
  .contact-about-section {
    margin-bottom: 150px !important;
  }

  .contact-about-section h2 {
    font-size: 46px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
    margin: 0 0 44px !important;
  }

  .contact-flow-wrap {
    width: 100% !important;
  }

  .contact-flow-list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 30px 34px !important;
    margin-bottom: 46px !important;
  }

  .contact-flow-item {
    padding: 0 0 22px !important;
    border-bottom: 1px solid #dddddd !important;
  }

  .contact-flow-item::before,
  .contact-flow-item::after,
  .contact-flow-item:not(:last-child)::after {
    display: none !important;
    content: none !important;
  }

  .contact-flow-item span {
    font-size: 14px !important;
    line-height: 1.2 !important;
    margin-bottom: 7px !important;
  }

  .contact-flow-item strong {
    font-size: 30px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
  }

  .contact-about-desc {
    font-size: 15px !important;
    line-height: 1.75 !important;
    max-width: 100% !important;
    word-break: keep-all !important;
  }

  /* SERVICE STRIP */
  .contact-service-strip {
    grid-template-columns: repeat(2, 1fr) !important;
    margin-bottom: 150px !important;
  }

  .contact-service-card h3 {
    left: 24px !important;
    bottom: 24px !important;
    font-size: 30px !important;
    line-height: 1.05 !important;
  }

  .service-info-overlay {
    display: none !important;
  }

  /* ENGAGEMENT */
  .contact-engagement-section {
    margin-bottom: 150px !important;
  }

  .contact-engagement-section h2 {
    font-size: 46px !important;
    line-height: 1.05 !important;
    letter-spacing: -0.05em !important;
    margin: 0 0 44px !important;
  }

  .engagement-list {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 38px !important;
  }

  .engagement-item h3 {
    font-size: 30px !important;
    line-height: 1.15 !important;
    margin-bottom: 12px !important;
  }

  .engagement-item strong {
    font-size: 13px !important;
    line-height: 1.45 !important;
    margin-bottom: 14px !important;
  }

  .engagement-item p {
    font-size: 14px !important;
    line-height: 1.75 !important;
    max-width: 100% !important;
  }

  /* MAP - 폰 세로처럼 지도 위 / 정보 아래 */
  .contact-map-section {
    position: relative !important;
    left: auto !important;
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;

    display: block !important;
    height: auto !important;
    background: #000 !important;
    overflow: hidden !important;
  }

  .contact-map-image {
    width: 100% !important;
    height: 460px !important;
    overflow: hidden !important;
    background: #000 !important;
  }

  .contact-map-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    transform: none !important;
    display: block !important;
  }

  .map-company-pin {
    left: 50% !important;
    top: 50% !important;
  }

  .contact-map-info {
    width: 100% !important;
    height: auto !important;
    padding: 44px !important;

    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 34px !important;

    background: #000 !important;
    color: #fff !important;
  }

  .contact-map-info h3 {
    font-size: 28px !important;
    line-height: 1.15 !important;
    margin: 0 0 10px !important;
  }

  .contact-map-info p {
    font-size: 13px !important;
    line-height: 1.6 !important;
    margin: 0 !important;
  }
}
/* ===== CONTACT IPAD MINI PORTRAIT FIX ===== */
@media (min-width: 768px) and (max-width: 820px) and (min-height: 1000px) and (orientation: portrait) {

  .contact-page-new {
    padding-top: 170px !important;
  }

  .contact-hero-section,
  .contact-about-section,
  .contact-engagement-section {
    display: block !important;
    padding: 0 44px !important;
  }

  .contact-hero-copy h1 {
    display: block !important;
    font-size: 50px !important;
    line-height: 1.05 !important;
    margin: 0 0 22px !important;
  }

  .contact-flow-list {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 30px 34px !important;
  }

  .contact-flow-item {
    padding: 0 0 22px !important;
    border-bottom: 1px solid #ddd !important;
    border-radius: 0 !important;
  }

  .contact-flow-item strong {
    font-size: 30px !important;
    line-height: 1.05 !important;
  }

  .contact-flow-item span {
    font-size: 14px !important;
  }
}
