/*
Theme Name: Harubin
Theme URI: https://example.com/harubin
Author: Harubin Dev
Author URI: https://example.com
Description: Minimal one-page WordPress theme for Harubin
Version: 1.0
Text Domain: harubin
*/

@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
@font-face {
  font-family: 'Yeongwol';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/2507-2@1.0/YeongwolTTF-Regular.woff2') format('woff2');
  font-weight: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cafe24Dangdanghae';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.2/Cafe24Dangdanghae.woff') format('woff');
  font-weight: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cafe24ClassicType';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2210-2@1.0/Cafe24ClassicType-Regular.woff2') format('woff2');
  font-weight: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Yeonseong';
  src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_one@1.0/BMYEONSUNG.woff') format('woff');
  font-weight: normal;
  font-display: swap;
}

body {
  margin: 0;
  padding: 0;
  font-family: Arial, sans-serif;
}

/* =========================================================
   HERO SECTION
   ========================================================= */

.harubin-hero {
  position: relative;
  height: 100vh;
  background: url("/wp-content/uploads/2025/12/section_01_background.png") center / cover no-repeat;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ===============================
   패턴 (4방 코너)
   =============================== */

.harubin-hero__pattern {
  position: absolute;
  width: 20%;
  opacity: 0.8;
  z-index: 1;
  pointer-events: none;
}

.harubin-hero__pattern--top-left {
  top: 40px;
  left: 40px;
}

.harubin-hero__pattern--top-right {
  top: 40px;
  right: 40px;
}

.harubin-hero__pattern--bottom-left {
  bottom: 40px;
  left: 40px;
}

.harubin-hero__pattern--bottom-right {
  bottom: 40px;
  right: 40px;
}

/* ===============================
   콘텐츠 래퍼
   =============================== */

.harubin-hero__content {
  position: relative;
  text-align: center;
  z-index: 3;
}

/* =========================================================
   GOLD SHINE TEXT (로봇 위 겹침)
   ========================================================= */

.harubin-hero__headline {
  position: absolute;
  top: 20%;
  left: -25%;
  /* 디자인에 맞게 왼쪽으로 빼둔 상태 */
  z-index: 6;
  font-family: "Cafe24ClassicType", serif;
  font-size: 100px;
  white-space: nowrap;
  width: max-content;
  /* GOLD SHINE 핵심 */
  background-image: linear-gradient( 120deg, #6b4b16 0%, #e7c873 20%, #fff6c1 40%, #e7c873 60%, #6b4b16 80%, #e7c873 100%);
  background-size: 200% 100%;
  background-position: 0% 50%;
  color: transparent;
  -webkit-text-fill-color: transparent;
  -webkit-background-clip: text;
  background-clip: text;
  animation: gold-shine 3s linear infinite;
  /* 가독성 및 입체감 */
  filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.85)) drop-shadow(0 0 6px rgba(231, 200, 115, 0.6));
}

.harubin-hero__headline br {
  display: none !important;
}

@keyframes gold-shine {
  0% {
    background-position: 0% 50%;
  }
  100% {
    background-position: 200% 50%;
  }
}

/* =========================================================
   ROBOT
   ========================================================= */

.harubin-hero__robot-wrap {
  position: relative;
  display: inline-block;
  z-index: 4;
}

.harubin-hero__robot {
  width: 600px;
  opacity: 0;
  transform: translateY(50px);
  animation: robot-enter 1s ease-out forwards, robot-floating 3s ease-in-out infinite;
  animation-delay: 0s, 1s;
  z-index: 2;
  position: relative;
}

/* 아래에서 등장 */

@keyframes robot-enter {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 둥둥 플로팅 */

@keyframes robot-floating {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0);
  }
}

/* =========================================================
   LIGHTS (top_light / bottom_light)
   ========================================================= */

.harubin-hero__light {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

/* 상단 조명: 치-직 켜졌다가 브리딩 */

.harubin-hero__light--top {
  top: -220px;
  width: 720px;
  opacity: 0;
  filter: brightness(0.3);
  z-index: 3;
  animation: light-on 0.6s cubic-bezier(0.25, 0.8, 0.45, 1.4) forwards, light-breath 3.5s ease-in-out infinite;
  animation-delay: 0.2s, 0.8s;
}

/* 치-직 점등 */

@keyframes light-on {
  0% {
    opacity: 0;
    filter: brightness(0.2);
  }
  60% {
    opacity: 1;
    filter: brightness(1.6);
  }
  100% {
    opacity: 0.9;
    filter: brightness(1);
  }
}

/* 미세한 숨쉬기 */

@keyframes light-breath {
  0% {
    filter: brightness(1);
  }
  50% {
    filter: brightness(1.12);
  }
  100% {
    filter: brightness(1);
  }
}

/* 하단 조명: 로봇 등장과 함께 아래를 받쳐줌 */

.harubin-hero__light--bottom {
  bottom: -90px;
  width: 700px;
  opacity: 0;
  filter: brightness(0.6);
  z-index: 1;
  animation: bottom-light-in 1s ease-out forwards;
  animation-delay: 0.4s;
}

@keyframes bottom-light-in {
  to {
    opacity: 0.8;
    filter: brightness(1);
  }
}

/* =========================================================
   NOODLE (우측에서 통~ 튕기는 이미지)
   ========================================================= */

.harubin-hero__noodle {
  position: absolute;
  right: -100%;
  bottom: -120px;
  width: 600px;
  transform: translate(120px, 120px) scale(0.9);
  opacity: 0;
  z-index: 5;
  animation: noodle-pop 0.9s cubic-bezier(0.175, 0.885, 0.32, 1.4) forwards;
  animation-delay: 0.5s;
}

/* 통~ 튕기듯 등장 */

@keyframes noodle-pop {
  to {
    transform: translate(0, 0) scale(1);
    opacity: 1;
  }
}

/* ===============================
   RESPONSIVE
   =============================== */

@media (max-width: 1024px) {
  .harubin-hero__headline {
    font-size: 64px;
    left: 0;
    top: 12%;
    word-break: keep-all;
    width: 100%;
    text-align: center;
  }
  .harubin-hero__robot {
    width: 320px;
  }
  .harubin-hero__noodle {
    width: 220px;
    right: -40px;
    bottom: -100px;
  }
  .harubin-hero__pattern {
    width: 60%;
  }
  .harubin-hero__pattern--top-left {
    top: 40px;
    left: 8px;
  }
  .harubin-hero__pattern--top-right {
    top: 40px;
    right: 8px;
  }
  .harubin-hero__pattern--bottom-left {
    bottom: 40px;
    left: 8px;
  }
  .harubin-hero__pattern--bottom-right {
    bottom: 40px;
    right: 8px;
  }
}

.harubin-intro {
  position: relative;
  width: 100%;
  min-height: 100%;
  box-sizing: border-box;
  padding: 72px 16px 64px;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  color: #ffffff;
  word-break: keep-all;
}

.harubin-intro__inner {
  max-width: 800px;
  margin: 0 auto;
  text-align: center;
}

/* 타이틀 영역 */

.harubin-intro__header {
  margin-bottom: 0px;
}

.harubin-intro__tagline-wrap {
  display: inline-block;
  margin-bottom: 2px;
}

.harubin-intro__tagline {
  display: inline-block;
  padding: 10px 22px;
  border-radius: 4px;
  font-weight: 700;
  font-size: 1.05rem;
}

.harubin-intro__tagline {
  position: relative;
  display: inline-block;
  padding: 0px 0px;
  font-weight: 700;
  font-size: 56px;
  font-family: "Inter", sans-serif;
  z-index: 0;
}

/* 형광펜 하이라이트 기본 상태 (숨겨진 상태) */

.harubin-intro__tagline::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0em;
  width: 100%;
  height: 100%;
  background: #f83a2a;
  border-radius: 8px;
  transform-origin: left center;
  transform: scaleX(0);
  z-index: -1;
}

@keyframes harubin-highlight-wipe {
  0% {
    transform: scaleX(0);
  }
  100% {
    transform: scaleX(1);
  }
}

.harubin-intro__tagline.is-highlight-animated::before {
  animation: harubin-highlight-wipe 0.8s ease-out 0.5s forwards;
}

.harubin-intro__title {
  margin: 0 0 0 0;
  font-size: 56px;
  line-height: 1;
  font-weight: 700;
  font-family: "Inter", sans-serif;
}

.harubin-intro__sub {
  margin: 0;
  font-size: 32px;
  line-height: 1.2;
  color: #e3ddca;
  padding: 56px 0 0 0;
  font-weight: 700;
  font-family: "Inter", sans-serif;
}

/* 본문 영역 */

.harubin-intro__body {
  margin-top: 40px;
  font-size: 24px;
  line-height: 1.2;
  color: #e3ddca;
}

.harubin-intro__body p {
  margin: 0 auto;
  line-height: 1.5;
  width: 80%;
  font-family: "Inter", sans-serif;
}

/* 하단 로고 */

.harubin-intro__logo {
  margin-top: 40px;
}

.harubin-intro__logo-text {
  display: inline-block;
  padding: 10px 18px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.5);
  font-size: 0.95rem;
}

.harubin-menu {
  width: 100%;
  padding: 0;
  margin: 0;
  overflow: hidden;
  background: #000;
  /* 필요하면 제거 */
}

.harubin-menu__image-wrap {
  width: 100%;
  height: auto;
  overflow: hidden;
}

.harubin-menu__image {
  width: 100%;
  height: auto;
  display: block;
  transform: scale(1.1);
  /* 🔥 처음엔 110% */
  transition: transform 1.8s ease-out;
  /* 스크롤 후 천천히 축소 */
  will-change: transform;
}

/* JS가 추가해줄 클래스 */

.harubin-menu__image.is-zoomed-out {
  transform: scale(1.0);
  /* 🔥 원본 크기 */
}

/* 섹션 베이스 */

.harubin-flavor {
  position: relative;
  width: 100%;
  padding: 80px 16px;
  box-sizing: border-box;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  color: #fff;
  text-align: center;
}

.harubin-flavor__inner {
  max-width: 900px;
  margin: 0 auto;
}

/* 초기 상태: 전부 안 보이게 */

.harubin-flavor__title,
.harubin-flavor__line {
  opacity: 0;
  transform: translateY(-16px);
}

/* 1. 첫 번째 줄: 위에서 아래로 부드럽게 페이드 인 */

.harubin-flavor.is-visible .harubin-flavor__title {
  animation: harubin-flavor-fade-down 0.8s ease-out 0s forwards;
}

/* 2. 두 번째 줄: 빠르게 등장 */

.harubin-flavor.is-visible .harubin-flavor__line--1 {
  animation: harubin-flavor-fade-up-fast 0.6s ease-out 0.6s forwards;
}

/* 3. 세 번째 줄: 조금 더 묵직하게 등장 */

.harubin-flavor.is-visible .harubin-flavor__line--2 {
  animation: harubin-flavor-fade-up-heavy 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) 1.2s forwards;
}

/* 기본 글자 스타일 */

.harubin-flavor__title {
  font-size: 72px;
  font-weight: 700;
  padding: 0 0 32px 0;
  margin: 0 0;
  color: #E0BB90;
  font-family: "Inter", sans-serif;
}

.harubin-flavor__line {
  font-size: 64px;
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0;
  color: #E3DDCA;
  font-family: "Inter", sans-serif;
}

/* '불맛' 스페셜 효과 준비 */

.harubin-flavor__fireword {
  display: inline-block;
  color: #E3DDCA;
  /* 처음엔 다른 글자와 동일 */
  padding: 0 2px;
}

/* '불맛' 효과: 색상 → 붉은색 + Glow + 짧은 떨림 */

.harubin-flavor.is-visible .harubin-flavor__fireword {
  animation: harubin-fire-glow 0.4s ease-out 2.1s forwards, /* 색+글로우 */
  harubin-fire-shake 0.4s ease-out 2.1s 1;
  /* 떨림 */
}

/* === Keyframes === */

/* 타이틀: 위에서 아래로 */

@keyframes harubin-flavor-fade-down {
  0% {
    opacity: 0;
    transform: translateY(-16px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 2번째 줄: 빠르게 튕기듯 */

@keyframes harubin-flavor-fade-up-fast {
  0% {
    opacity: 0;
    transform: translateY(12px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 3번째 줄: 묵직하게 */

@keyframes harubin-flavor-fade-up-heavy {
  0% {
    opacity: 0;
    transform: translateY(18px) scale(0.96);
  }
  60% {
    opacity: 1;
    transform: translateY(-3px) scale(1.02);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* 불맛: 붉은색 + 글로우 */

@keyframes harubin-fire-glow {
  0% {
    color: #ffffff;
    text-shadow: none;
  }
  40% {
    color: #ff7043;
    text-shadow: 0 0 6px rgba(255, 112, 67, 0.4);
  }
  100% {
    color: #ff4b2b;
    text-shadow: 0 0 4px rgba(255, 75, 43, 0.4), 0 0 10px rgba(255, 160, 122, 0.4);
  }
}

/* 불맛: 좌우로 '드르륵' 짧게 떨리는 효과 */

@keyframes harubin-fire-shake {
  0% {
    transform: translateX(0);
  }
  20% {
    transform: translateX(-2px);
  }
  40% {
    transform: translateX(2px);
  }
  60% {
    transform: translateX(-2px);
  }
  80% {
    transform: translateX(1px);
  }
  100% {
    transform: translateX(0);
  }
}

/* 섹션 기본 */

.harubin-menu-grid {
  padding: 0 0 0 0;
  background: #000;
  box-sizing: border-box;
}

.harubin-menu-grid__inner {
  max-width: 100%;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0;
}

/* 메뉴 아이템 */

.menu-item {
  position: relative;
  /* 텍스트 위치 조정을 위한 기준점 */
  opacity: 0;
  transform: translateY(30px);
  transition: transform 0.5s ease, opacity 0.5s ease;
  cursor: pointer;
}

/* 이미지 래퍼 */

.menu-img-wrap {
  position: relative;
  overflow: hidden;
}

.menu-img-wrap img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.5s ease;
  transform: scale(1.0);
}

/* 메뉴명: 이미지 위 오버레이 */

.menu-name {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  margin: 0;
  padding: 6px 14px;
  font-size: 40px;
  color: #ffffff;
  font-weight: 600;
  transition: all 0.35s ease;
  pointer-events: none;
  font-family: 'Yeonseong';
  text-shadow: -1.5px 0 0 #000, 1.5px 0 0 #000, 0 -1.5px 0 #000, 0 1.5px 0 #000;
}

/* 등장 애니메이션 */

.menu-item.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Hover 효과 */

.menu-item:hover .menu-img-wrap img {
  transform: scale(1.1);
}

.menu-item:hover .menu-name {
  bottom: 20px;
  color: #fff;
}

/* 섹션 베이스 */

.harubin-faq {
  position: relative;
  padding: 90px 16px 80px;
  box-sizing: border-box;
  text-align: center;
  color: #ffffff;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
}

.harubin-faq__inner {
  max-width: 900px;
  margin: 0 auto;
}

/* Q/A 블록 간 간격 */

.harubin-faq__block {
  margin-bottom: 120px;
}

/* 질문 공통 스타일 */

.harubin-faq__question {
  margin: 0 0 16px 0;
  font-size: 56px;
  font-weight: 700;
  color: #ffffff;
  opacity: 0;
  transform: translateY(12px);
  font-family: "Inter", sans-serif;
}

/* Q1, Q2 애니메이션 */

.harubin-faq.is-active .harubin-faq__question--1 {
  animation: harubin-faq-question-in 0.6s ease-out 0s forwards, harubin-faq-question-float 3s ease-in-out 0.6s infinite;
}

.harubin-faq.is-active .harubin-faq__question--2 {
  animation: harubin-faq-question-in 0.6s ease-out 1.2s forwards, harubin-faq-question-float 3s ease-in-out 1.8s infinite;
}

/* 답변 박스 공통 */

.harubin-faq__answer {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}

/* 개별 라인 */

.harubin-faq__answer-main,
.harubin-faq__answer-sub {
  display: inline-block;
  font-family: "Inter", sans-serif;
  padding: 8px 18px;
  border-radius: 8px;
  background: #260604;
  color: #E0BB90;
  font-size: 64px;
  font-weight: 700;
  word-break: keep-all;
}

.harubin-faq__answer--1 {
  transform: scale(0);
  opacity: 0;
}

.harubin-faq.is-active .harubin-faq__answer--1 {
  animation: harubin-faq-answer-pop 0.5s cubic-bezier(0.2, 0.8, 0.2, 1.3) 0.5s forwards;
}

.harubin-faq__answer--2 {
  margin-top: 16px;
  transform-origin: top center;
  transform: rotateX(90deg);
  opacity: 0;
}

.harubin-faq.is-active .harubin-faq__answer--2 {
  animation: harubin-faq-answer-flip 0.7s cubic-bezier(0.25, 0.7, 0.2, 1.3) 1.9s forwards;
}

.harubin-faq__bottom {
  margin-top: 40px;
}

.harubin-faq__note {
  margin: 0 0 16px;
  font-size: 0.9rem;
  color: #f6e1d1;
}

.harubin-faq__logo-wrap {
  display: flex;
  justify-content: center;
}

.harubin-faq__logo-mask {
  display: inline-block;
  overflow-x: hidden;
  overflow-y: visible;
  width: 0;
  vertical-align: middle;
}

.harubin-faq__logo-text {
  font-family: 'Yeongwol';
  font-size: 80px;
  color: #fff;
  white-space: nowrap;
  display: inline-block;
  padding: 0;
  margin: 0;
}

.harubin-faq.is-active .harubin-faq__logo-mask {
  animation: harubin-faq-logo-reveal 1.2s ease-out 2.8s forwards;
}

@keyframes harubin-faq-logo-reveal {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

@keyframes harubin-faq-question-in {
  0% {
    opacity: 0;
    transform: translateY(12px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes harubin-faq-question-float {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
  100% {
    transform: translateY(0);
  }
}

@keyframes harubin-faq-answer-pop {
  0% {
    opacity: 0;
    transform: scale(0);
  }
  70% {
    opacity: 1;
    transform: scale(1.2);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes harubin-faq-answer-flip {
  0% {
    opacity: 0;
    transform: rotateX(90deg);
  }
  60% {
    opacity: 1;
    transform: rotateX(-10deg);
  }
  80% {
    transform: rotateX(6deg);
  }
  100% {
    opacity: 1;
    transform: rotateX(0deg);
  }
}

@keyframes harubin-faq-logo-reveal {
  0% {
    width: 0;
  }
  100% {
    width: 560px;
  }
}

/* 반응형 */

@media (max-width: 768px) {
  .harubin-faq {
    padding: 56px 16px 56px 16px;
  }
  .harubin-faq__question {
    font-size: 32px;
    word-break: keep-all;
  }
  .harubin-faq__answer-main,
  .harubin-faq__answer-sub {
    font-size: 32px;
  }
  .harubin-faq__bottom {
    margin-top: 0px;
  }
  .harubin-faq__block {
    margin-bottom: 80px;
  }
  .harubin-faq__logo-text {
    font-size: 56px;
  }
  @keyframes harubin-faq-logo-reveal {
    0% {
      width: 0;
    }
    100% {
      width: 310px;
    }
  }
}

/* Section 07 */

.harubin-invest {
  position: relative;
  overflow: hidden;
  min-height: 100%;
  padding: 80px 16px 72px;
  box-sizing: border-box;
  color: #fff;
  display: flex;
  align-items: center;
}

.harubin-invest__bg {
  position: absolute;
  inset: 0;
  background: url("/wp-content/uploads/2025/12/section_07_background.jpg") center/cover no-repeat;
  opacity: 0;
  transform: scale(0.8);
  transform-origin: center center;
  transition: none;
  overflow: hidden;
}

.harubin-invest__bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 1;
  pointer-events: none;
}

.harubin-invest__inner {
  position: relative;
  z-index: 1;
  max-width: 1100px;
  margin: 0 auto;
  text-align: center;
  justify-content: center;
  display: flex;
  flex-direction: column;
}

.harubin-invest__headline {
  margin: 0 0 0 0;
}

.harubin-invest__headline-main {
  display: inline-block;
  font-size: 72px;
  font-family: 'Cafe24Dangdanghae';
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.1;
  background: linear-gradient( 120deg, #f9e9a1, #f1c86a, #b8860b, #f9e9a1);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  opacity: 0;
}

.harubin-invest__hero {
  margin: 0 auto 0;
  max-width: 640px;
}

.harubin-invest__hero-img {
  width: 100%;
  height: auto;
  display: block;
  opacity: 0;
  transform: scale(0.9);
}

.harubin-invest__subcopy {
  font-family: "Inter", sans-serif;
  margin: 0;
  font-size: 32px;
  line-height: 1.4;
  font-weight: 500;
  color: #E3DDCA;
  text-shadow: 0 0 6px rgba(0, 0, 0, 0.7);
  opacity: 0;
  transform: translateY(18px);
}

.harubin-invest.is-active .harubin-invest__bg {
  animation: harubin-invest-bg-in 0.9s ease-out forwards;
}

.harubin-invest.is-active .harubin-invest__headline-main {
  animation: harubin-invest-headline-in 0.7s ease-out 0.7s forwards, harubin-invest-headline-shine 3s linear 1.1s infinite;
}

.harubin-invest.is-active .harubin-invest__hero-img {
  animation: harubin-invest-hero-pop 0.7s cubic-bezier(0.2, 0.85, 0.25, 1.2) 1.3s forwards, harubin-invest-hero-float 4.5s ease-in-out 2.2s infinite;
}

.harubin-invest.is-active .harubin-invest__subcopy {
  animation: harubin-invest-subcopy-in 0.7s ease-out 1.8s forwards;
}

/* === Keyframes 정의 === */

/* 1. 배경: opacity + scale 0.8 → 1 */

@keyframes harubin-invest-bg-in {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* 2. 헤드라인: 살짝 위에서 내려오며 등장 */

@keyframes harubin-invest-headline-in {
  0% {
    opacity: 0;
    transform: translateY(18px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 헤드라인 금빛 샤인 */

@keyframes harubin-invest-headline-shine {
  0% {
    background-position: -120% 0;
  }
  100% {
    background-position: 120% 0;
  }
}

/* 3. 음식 이미지: 팝-인 + 이후 플로팅 */

@keyframes harubin-invest-hero-pop {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  70% {
    opacity: 1;
    transform: scale(1.05);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes harubin-invest-hero-float {
  0% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-6px) scale(1.01);
  }
  100% {
    transform: translateY(0) scale(1);
  }
}

/* 4. 하단 서브 카피: 아래에서 위로 부드럽게 */

@keyframes harubin-invest-subcopy-in {
  0% {
    opacity: 0;
    transform: translateY(18px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 기본 상태: 애니메이션 없음 */

.harubin-chef__headline-main {
  transform: scale(1.2);
  opacity: 0;
}

.harubin-chef__list li {
  opacity: 0;
  transform: translateY(20px);
}

/* 화면에 들어왔을 때 */

.harubin-chef.is-visible .harubin-chef__headline-main {
  animation: harubin-chef-zoom-out 0.9s ease-out forwards;
}

.harubin-chef.is-visible .harubin-chef__list li {
  animation: harubin-chef-list-up 0.6s ease-out forwards;
}

/* 순차 딜레이 */

.harubin-chef.is-visible .harubin-chef__list li:nth-child(1) {
  animation-delay: 0.3s;
}

.harubin-chef.is-visible .harubin-chef__list li:nth-child(2) {
  animation-delay: 0.55s;
}

.harubin-chef.is-visible .harubin-chef__list li:nth-child(3) {
  animation-delay: 0.8s;
}

/* 키프레임 */

@keyframes harubin-chef-zoom-out {
  0% {
    transform: scale(1.25);
    opacity: 0;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes harubin-chef-list-up {
  0% {
    opacity: 0;
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* SECTION */

.harubin-chef {
  position: relative;
  overflow: hidden;
  min-height: 600px;
  color: #fff;
}

/* BACKGROUND IMAGE */

.harubin-chef__bg {
  position: absolute;
  inset: 0;
  background-image: url("/wp-content/uploads/2025/12/section_09_background.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}

/* GRADIENT OVERLAY (선택) */

.harubin-chef::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient( to left, rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0));
  z-index: 2;
}

/* INNER */

.harubin-chef__inner {
  position: relative;
  z-index: 3;
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 80px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  box-sizing: border-box;
  gap: 24px;
}

/* HEADLINE */

.harubin-chef__headline {
  margin: 0 0;
}

.harubin-chef__headline-main {
  display: inline-block;
  font-family: 'Cafe24Dangdanghae';
  font-size: 64px;
  line-height: 1.2;
  font-weight: 700;
  transform: scale(1.2);
  opacity: 0;
  text-shadow: -1px -1px 0 #000, 0 -1px 0 #000, 1px -1px 0 #000, -1px 0 0 #000, 1px 0 0 #000, -1px 1px 0 #000, 0 1px 0 #000, 1px 1px 0 #000;
}

/* LIST */

.harubin-chef__list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 24px;
  line-height: 1.2;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.harubin-chef__list li {
  position: relative;
  font-family: "Inter", sans-serif;
  padding-left: 1.3em;
  opacity: 0;
  transform: translateY(20px);
}

.harubin-chef__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
}

/* ANIMATION ACTIVE */

.harubin-chef.is-visible .harubin-chef__headline-main {
  animation: chef-zoom-out 0.9s ease-out forwards;
}

.harubin-chef.is-visible .harubin-chef__list li {
  animation: chef-list-up 0.6s ease-out forwards;
}

/* DELAY */

.harubin-chef.is-visible .harubin-chef__list li:nth-child(1) {
  animation-delay: 0.3s;
}

.harubin-chef.is-visible .harubin-chef__list li:nth-child(2) {
  animation-delay: 0.55s;
}

.harubin-chef.is-visible .harubin-chef__list li:nth-child(3) {
  animation-delay: 0.8s;
}

/* KEYFRAMES */

@keyframes chef-zoom-out {
  from {
    transform: scale(1.25);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes chef-list-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* RESPONSIVE */

@media (max-width: 768px) {
  .harubin-chef__inner {
    align-items: end;
    padding: 140px 40px
  }
  .harubin-chef__headline-main,
  .harubin-chef__list {
    text-align: left;
  }
  .harubin-chef__headline-main {
    font-size: 40px;
    word-break: keep-all;
  }
  .harubin-chef__list {
    font-size: 15px;
  }
}

/* SECTION 기본 */

.harubin-flame {
  position: relative;
  overflow: hidden;
  min-height: 480px;
  color: #fff;
}

/* 배경 이미지 */

.harubin-flame__bg {
  position: absolute;
  inset: 0;
  background-image: url("/wp-content/uploads/2025/12/section_10_background.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: 1;
}

/* 왼쪽 영역만 살짝 어둡게 */

.harubin-flame::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient( to right, rgba(0, 0, 0, 0.85), rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0));
  z-index: 2;
}

/* 콘텐츠 래퍼 */

.harubin-flame__inner {
  position: relative;
  z-index: 3;
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* 헤드라인 */

.harubin-flame__headline {
  margin: 0 0 24px 0;
  font-weight: 700;
}

.harubin-flame__line {
  display: block;
  font-size: 40px;
  line-height: 1.3;
  font-family: 'Cafe24Dangdanghae';
  font-size: 64px;
  letter-spacing: -0.02em;
  transform: scale(0.9);
  opacity: 0;
}

/* "불맛 자동화" 기본 색상은 흰색 */

.harubin-flame__highlight {
  color: #ffffff;
}

/* 하단 카피 */

.harubin-flame__subcopy {
  font-family: "Inter", sans-serif;
  margin: 0;
  font-size: 18px;
  line-height: 1.7;
  opacity: 0;
  transform: translateY(16px);
}

/* === 애니메이션 트리거: 섹션이 보일 때 === */

.harubin-flame.is-visible .harubin-flame__line:nth-child(1) {
  animation: flame-zoom-in 0.6s ease-out forwards;
  animation-delay: 0s;
}

.harubin-flame.is-visible .harubin-flame__line:nth-child(2) {
  animation: flame-zoom-in 0.6s ease-out forwards;
  animation-delay: 0.2s;
}

.harubin-flame.is-visible .harubin-flame__line:nth-child(3) {
  animation: flame-zoom-in 0.6s ease-out forwards;
  animation-delay: 0.4s;
}

/* 세 줄이 다 나온 뒤 "불맛 자동화"만 빨간색으로 변경 */

.harubin-flame.is-visible .harubin-flame__highlight {
  animation: flame-highlight-red 0.35s ease-out forwards;
  animation-delay: 1s;
  /* 마지막 줄 끝난 뒤 타이밍 */
}

/* 빨간색으로 바뀐 뒤 하단 카피가 아래에서 위로 빠르게 */

.harubin-flame.is-visible .harubin-flame__subcopy {
  animation: flame-sub-up 0.35s ease-out forwards;
  animation-delay: 1.25s;
}

/* === KEYFRAMES === */

@keyframes flame-zoom-in {
  0% {
    transform: scale(0.8);
    opacity: 0;
  }
  60% {
    transform: scale(1.05);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}

@keyframes flame-highlight-red {
  0% {
    color: #ffffff;
  }
  100% {
    color: #ff3b30;
    /* 강한 레드 */
  }
}

@keyframes flame-sub-up {
  0% {
    opacity: 0;
    transform: translateY(16px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 섹션 베이스 */

.harubin-4in1 {
  position: relative;
  overflow: hidden;
  min-height: 640px;
  color: #fff;
  text-align: center;
}

/* 배경 */

.harubin-4in1__bg {
  position: absolute;
  inset: 0;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  z-index: 1;
}

/* 내용 래퍼 */

.harubin-4in1__inner {
  position: relative;
  z-index: 3;
  max-width: 1200px;
  margin: 0 auto;
  padding: 80px 20px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* 상단 문구: 위에서 떨어져 튕김 */

.harubin-4in1__eyebrow {
  margin: 0 0 16px;
  font-family: 'Yeongwol';
  font-size: 48px;
  letter-spacing: 0.04em;
  opacity: 1;
  transform: translateY(-60px);
}

/* 메인 타이틀: 큰 스케일에서 쿵! */

.harubin-4in1__title {
  margin: 0 0 24px;
  font-size: 72px;
  font-weight: 700;
  letter-spacing: -0.02em;
  opacity: 0;
  transform: scale(2);
  font-family: "Inter", sans-serif;
}

.harubin-4in1__title-accent {
  color: #f7d49a;
}

/* 타원형 박스 */

.harubin-4in1__pill {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 8px;
  padding: 12px 40px;
  border-radius: 999px;
  overflow: hidden;
}

/* 박스 라인/배경 애니메이션용 */

.harubin-4in1__pill::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid #f7d49a;
  background: rgba(0, 0, 0, 0.18);
  transform-origin: center;
  transform: scaleX(0);
  opacity: 0;
}

/* 박스 안 텍스트 */

.harubin-4in1__pill-text {
  position: relative;
  font-size: 16px;
  letter-spacing: 0.08em;
  color: #f7d49a;
  opacity: 0;
  font-family: "Inter", sans-serif;
}

/* 음식 영역 */

.harubin-4in1__foods {
  position: relative;
  width: 100%;
  max-width: 840px;
  height: 340px;
  margin-top: 8px;
  margin-bottom: 48px;
}

.harubin-4in1__food {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0;
}

.harubin-4in1__food img {
  display: block;
  max-width: 320px;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 18px 32px rgba(0, 0, 0, 0.45));
}

.harubin-4in1__food--center {
  z-index: 3;
}

.harubin-4in1__food--top-left,
.harubin-4in1__food--top-right {
  z-index: 2;
}

.harubin-4in1__food--bottom-right,
.harubin-4in1__food--bottom-left {
  z-index: 1;
}

.harubin-4in1__food--bottom-right,
.harubin-4in1__food--bottom-left {
  top: 65%;
}

.harubin-4in1__food--top-left,
.harubin-4in1__food--top-right {
  top: 61%;
}

.harubin-4in1__food--bottom-left {
  left: 53%;
}

.harubin-4in1__food--bottom-right {
  left: 47%;
}

.harubin-4in1__food--top-left img {
  max-width: 250px;
}

.harubin-4in1__food--top-right img {
  max-width: 300px;
}

/* === is-visible 되었을 때 애니메이션들 === */

/* 상단 문구: 떨어져서 튕김 */

.harubin-4in1.is-visible .harubin-4in1__eyebrow {
  animation: h4in1-eyebrow-drop 0.7s cubic-bezier(0.22, 0.85, 0.35, 1.2) forwards;
}

/* 타이틀: 임팩트 줌인 */

.harubin-4in1.is-visible .harubin-4in1__title {
  animation: h4in1-title-impact 0.45s cubic-bezier(0.18, 0.89, 0.32, 1.5) forwards;
  animation-delay: 0.15s;
}

/* 타원형 박스 라인 */

.harubin-4in1.is-visible .harubin-4in1__pill::before {
  animation: h4in1-pill-grow 0.5s ease-out forwards;
  animation-delay: 0.45s;
}

/* 박스 텍스트 페이드인 */

.harubin-4in1.is-visible .harubin-4in1__pill-text {
  animation: h4in1-pill-text 0.35s ease-out forwards;
  animation-delay: 0.85s;
}

/* 중앙 그릇 먼저 등장 */

.harubin-4in1.is-visible .harubin-4in1__food--center {
  animation: h4in1-food-center 0.5s ease-out forwards;
  animation-delay: 0.6s;
}

/* 나머지 네 그릇이 꽃처럼 펼쳐지기 */

.harubin-4in1.is-visible .harubin-4in1__food--top-left {
  animation: h4in1-food-spread-tl 0.5s cubic-bezier(0.2, 0.8, 0.2, 1.1) forwards;
  animation-delay: 1.1s;
}

.harubin-4in1.is-visible .harubin-4in1__food--top-right {
  animation: h4in1-food-spread-tr 0.5s cubic-bezier(0.2, 0.8, 0.2, 1.1) forwards;
  animation-delay: 1.1s;
}

.harubin-4in1.is-visible .harubin-4in1__food--bottom-left {
  animation: h4in1-food-spread-bl 0.5s cubic-bezier(0.2, 0.8, 0.2, 1.1) forwards;
  animation-delay: 1.1s;
}

.harubin-4in1.is-visible .harubin-4in1__food--bottom-right {
  animation: h4in1-food-spread-br 0.5s cubic-bezier(0.2, 0.8, 0.2, 1.1) forwards;
  animation-delay: 1.1s;
}

/* === KEYFRAMES === */

/* 위에서 떨어지고 살짝 튕김 */

@keyframes h4in1-eyebrow-drop {
  0% {
    opacity: 0;
    transform: translateY(-60px);
  }
  65% {
    opacity: 1;
    transform: translateY(0);
  }
  82% {
    transform: translateY(-8px);
  }
  100% {
    transform: translateY(0);
  }
}

/* 제목 임팩트 줌인 */

@keyframes h4in1-title-impact {
  0% {
    opacity: 0;
    transform: scale(2);
  }
  70% {
    opacity: 1;
    transform: scale(0.95);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* 타원 박스가 가운데 점에서 좌우로 쭉 */

@keyframes h4in1-pill-grow {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }
  100% {
    opacity: 1;
    transform: scaleX(1);
  }
}

/* 박스 텍스트 */

@keyframes h4in1-pill-text {
  0% {
    opacity: 0;
    transform: translateY(6px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 중앙 그릇 */

@keyframes h4in1-food-center {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.7);
  }
  100% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
}

/* 펼쳐지는 네 그릇: 카드처럼 튀어나오기 */

@keyframes h4in1-food-spread-tl {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.7);
  }
  100% {
    opacity: 1;
    transform: translate(calc(-50% - 220px), calc(-50% - 40px)) scale(1);
  }
}

@keyframes h4in1-food-spread-tr {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.7);
  }
  100% {
    opacity: 1;
    transform: translate(calc(-50% + 220px), calc(-50% - 40px)) scale(1);
  }
}

@keyframes h4in1-food-spread-bl {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.7);
  }
  100% {
    opacity: 1;
    transform: translate(calc(-50% - 150px), calc(-50% + 80px)) scale(1);
  }
}

@keyframes h4in1-food-spread-br {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.7);
  }
  100% {
    opacity: 1;
    transform: translate(calc(-50% + 150px), calc(-50% + 80px)) scale(1);
  }
}

/* 섹션 베이스 */

.harubin-brand {
  position: relative;
  overflow: hidden;
  color: #fff;
}

/* 타일 패턴 배경 */

.harubin-brand__bg {
  position: absolute;
  inset: 0;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  z-index: 1;
}

.harubin-brand__inner {
  position: relative;
  z-index: 2;
  max-width: 1200px;
  margin: 0 auto;
  padding: 180px 16px 80px 16px;
}

/* 헤드라인 */

.harubin-brand__headline {
  text-align: center;
  margin: 0 0 48px;
  font-weight: 700;
  line-height: 1.4;
  font-family: "Inter", sans-serif;
}

.harubin-brand__headline span:first-child {
  display: block;
  font-size: 48px;
  line-height: 1.2;
  font-family: "Inter", sans-serif;
}

.harubin-brand__headline span:last-child {
  display: block;
  font-size: 48px;
  line-height: 1.2;
  color: #E5B17B;
  font-family: "Inter", sans-serif;
}

/* 카드 레이아웃 */

.harubin-brand__cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
}

/* 카드 래퍼 (hover용) */

.harubin-brand__card {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.harubin-brand__card:hover {
  transform: translateY(-10px);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.55);
}

/* 카드 내부 – 애니메이션 대상 */

.harubin-brand__card-inner {
  background: rgba(0, 0, 0, 0.7);
  border-radius: 24px;
  border: 2px solid #E1AF78;
  overflow: hidden;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.4);
  opacity: 0;
  transform: translateY(40px);
}

/* 음식 이미지 */

.harubin-brand__image {
  position: relative;
  overflow: hidden;
}

.harubin-brand__image img {
  display: block;
  width: 100%;
  height: auto;
  transform: scale(1);
}

/* 하단 영역 */

.harubin-brand__info {
  position: relative;
  padding: 16px 18px 22px;
  text-align: center;
  position: absolute;
  width: 100%;
  box-sizing: border-box;
  bottom: 0%;
  background: rgba(0, 0, 0, 0.7);
}

/* 로고 뱃지 */

.harubin-brand__badge {
  position: absolute;
  left: 50%;
  top: -28px;
  transform: translateX(-50%) scale(0);
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.35);
  opacity: 0;
}

.harubin-brand__badge img {
  max-width: 70%;
  height: auto;
}

/* 설명 텍스트 */

.harubin-brand__desc {
  margin: 20px 0 0;
  font-size: 14px;
  line-height: 1.7;
  font-family: "Inter", sans-serif;
}

/* ========================= */

/*  애니메이션 트리거: is-visible */

/* ========================= */

/* 1. 카드 슬라이드 업 + 텐션 (stagger) */

.harubin-brand.is-visible .harubin-brand__card:nth-child(1) .harubin-brand__card-inner {
  animation: brand-card-up 0.6s cubic-bezier(0.2, 0.8, 0.25, 1.15) forwards;
  animation-delay: 0s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(2) .harubin-brand__card-inner {
  animation: brand-card-up 0.6s cubic-bezier(0.2, 0.8, 0.25, 1.15) forwards;
  animation-delay: 0.2s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(3) .harubin-brand__card-inner {
  animation: brand-card-up 0.6s cubic-bezier(0.2, 0.8, 0.25, 1.15) forwards;
  animation-delay: 0.4s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(4) .harubin-brand__card-inner {
  animation: brand-card-up 0.6s cubic-bezier(0.2, 0.8, 0.25, 1.15) forwards;
  animation-delay: 0.6s;
}

/* 2. 음식 이미지 천천히 줌인 (카드 자리 잡은 후 시작) */

.harubin-brand.is-visible .harubin-brand__card:nth-child(1) .harubin-brand__image img {
  animation: brand-food-zoom 6s ease-in-out infinite alternate;
  animation-delay: 0.6s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(2) .harubin-brand__image img {
  animation: brand-food-zoom 6s ease-in-out infinite alternate;
  animation-delay: 0.8s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(3) .harubin-brand__image img {
  animation: brand-food-zoom 6s ease-in-out infinite alternate;
  animation-delay: 1s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(4) .harubin-brand__image img {
  animation: brand-food-zoom 6s ease-in-out infinite alternate;
  animation-delay: 1.2s;
}

/* 3. 로고 뱃지 팝업 (카드 이후) */

.harubin-brand.is-visible .harubin-brand__card:nth-child(1) .harubin-brand__badge {
  animation: brand-badge-pop 0.4s cubic-bezier(0.23, 1.4, 0.32, 1.01) forwards;
  animation-delay: 0.7s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(2) .harubin-brand__badge {
  animation: brand-badge-pop 0.4s cubic-bezier(0.23, 1.4, 0.32, 1.01) forwards;
  animation-delay: 0.9s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(3) .harubin-brand__badge {
  animation: brand-badge-pop 0.4s cubic-bezier(0.23, 1.4, 0.32, 1.01) forwards;
  animation-delay: 1.1s;
}

.harubin-brand.is-visible .harubin-brand__card:nth-child(4) .harubin-brand__badge {
  animation: brand-badge-pop 0.4s cubic-bezier(0.23, 1.4, 0.32, 1.01) forwards;
  animation-delay: 1.3s;
}

/* ========================= */

/* KEYFRAMES */

/* ========================= */

/* 카드 슬라이드 업 + Overshoot */

@keyframes brand-card-up {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  70% {
    opacity: 1;
    transform: translateY(-6px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 음식 이미지 천천히 줌인 */

@keyframes brand-food-zoom {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(1.1);
  }
}

/* 로고 뱃지 퐁! */

@keyframes brand-badge-pop {
  0% {
    opacity: 0;
    transform: translateX(-50%) scale(0);
  }
  70% {
    opacity: 1;
    transform: translateX(-50%) scale(1.1);
  }
  100% {
    opacity: 1;
    transform: translateX(-50%) scale(1);
  }
}

/* SECTION BASE */

.harubin-table {
  position: relative;
  overflow: hidden;
  color: #fff;
  text-align: center;
}

.harubin-table__bg {
  position: absolute;
  inset: 0;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  z-index: 1;
}

.harubin-table__inner {
  position: relative;
  z-index: 2;
  max-width: 960px;
  margin: 0 auto;
  padding: 80px 16px 80px 16px;
}

/* HEADLINE */

.harubin-table__headline {
  margin: 0 0 56px;
  font-size: 48px;
  font-weight: 700;
  font-family: "Inter", sans-serif;
}

/* CARD WRAPPER */

.harubin-table__card {
  background: #ffffff;
  border-radius: 18px;
  padding: 24px 28px 28px;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
  overflow: hidden;
  max-width: 960px;
}

/* TABLE BASE */

.harubin-table__grid {
  width: 100%;
  border-collapse: collapse;
  color: #4a2e22;
  table-layout: fixed;
  font-size: 22px;
  font-family: "Inter", sans-serif;
}

.harubin-table__grid th,
.harubin-table__grid td {
  padding: 16px 16px;
}

/* align */

.harubin-table__grid th:first-child,
.harubin-table__grid td:first-child {
  text-align: left;
  width: 36%;
}

.harubin-table__grid th:nth-child(2),
.harubin-table__grid td:nth-child(2) {
  width: 28%;
}

.harubin-table__grid th:nth-child(3),
.harubin-table__grid td:nth-child(3) {
  width: 36%;
}

/* HEADER STYLE */

.harubin-table__grid th {
  font-weight: 700;
  color: #b25b38;
  font-family: "Inter", sans-serif;
}

/* === LINE DRAWING === */

/* each row gets its own horizontal line via ::after */

.harubin-table__row {
  position: relative;
}

/* hide default borders; we’ll draw them ourselves */

.harubin-table__grid tr+tr th,
.harubin-table__grid tr+tr td {
  border-top: none;
}

/* header bottom line */

.harubin-table__row--head::after,
.harubin-table__row:not(.harubin-table__row--head)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: #ead9cf;
  transform-origin: left;
  transform: scaleX(0);
  opacity: 0;
}

/* last row: keep border as well */

.harubin-table__row:last-child::after {
  opacity: 0;
}

/* we draw header bottom + body row separators */

.harubin-table.is-visible .harubin-table__row--head::after {
  animation: table-line-draw 0.45s ease-out forwards;
  animation-delay: 0s;
}

.harubin-table.is-visible tbody .harubin-table__row:nth-child(1)::after {
  animation: table-line-draw 0.45s ease-out forwards;
  animation-delay: 0.15s;
}

.harubin-table.is-visible tbody .harubin-table__row:nth-child(2)::after {
  animation: table-line-draw 0.45s ease-out forwards;
  animation-delay: 0.3s;
}

.harubin-table.is-visible tbody .harubin-table__row:nth-child(3)::after {
  animation: table-line-draw 0.45s ease-out forwards;
  animation-delay: 0.45s;
}

/* === ROW CONTENT DROP === */

.harubin-table__row th,
.harubin-table__row td {
  opacity: 0;
  transform: translateY(-12px);
}

/* after lines done, drop each row (cascade) */

.harubin-table.is-visible .harubin-table__row--head th {
  animation: table-row-drop 0.4s ease-out forwards;
  animation-delay: 0.4s;
}

.harubin-table.is-visible tbody .harubin-table__row:nth-child(1) td {
  animation: table-row-drop 0.4s ease-out forwards;
  animation-delay: 0.6s;
}

.harubin-table.is-visible tbody .harubin-table__row:nth-child(2) td {
  animation: table-row-drop 0.4s ease-out forwards;
  animation-delay: 0.75s;
}

.harubin-table.is-visible tbody .harubin-table__row:nth-child(3) td {
  animation: table-row-drop 0.4s ease-out forwards;
  animation-delay: 0.9s;
}

.harubin-table.is-visible tbody .harubin-table__row:nth-child(4) td {
  animation: table-row-drop 0.4s ease-out forwards;
  animation-delay: 1.05s;
}

/* KEYFRAMES */

@keyframes table-line-draw {
  0% {
    opacity: 0;
    transform: scaleX(0);
  }
  100% {
    opacity: 1;
    transform: scaleX(1);
  }
}

@keyframes table-row-drop {
  0% {
    opacity: 0;
    transform: translateY(-12px);
  }
  70% {
    opacity: 1;
    transform: translateY(3px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* RESPONSIVE */

@media (max-width: 768px) {
  .harubin-table__inner {
    padding: 40px 16px 40px 16px;
  }
  .harubin-table__headline {
    font-size: 32px;
    word-break: keep-all;
    margin: 0 0 32px 0;
  }
  .harubin-table__card {
    padding: 18px 14px 20px;
  }
  .harubin-table__grid {
    font-size: 12px;
    word-break: keep-all;
  }
}

/* 섹션 베이스 */

.harubin-strategy {
  position: relative;
  overflow: hidden;
  color: #fff;
}

.harubin-strategy__bg {
  position: absolute;
  inset: 0;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  z-index: 1;
}

.harubin-strategy__inner {
  position: relative;
  z-index: 2;
  max-width: 960px;
  margin: 0 auto;
  padding: 80px 16px 80px 16px;
}

/* 헤드라인 */

.harubin-strategy__headline {
  text-align: center;
  margin: 0 0 40px;
  font-weight: 700;
  line-height: 1.2;
  font-family: "Inter", sans-serif;
}

.harubin-strategy__headline span:first-child {
  display: block;
  font-size: 48px;
  font-family: "Inter", sans-serif;
}

.harubin-strategy__headline span:last-child {
  display: block;
  font-size: 48px;
  color: #E5B17B;
  font-family: "Inter", sans-serif;
}

/* 상단 카드 영역 */

.harubin-strategy__top {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  margin-bottom: 32px;
}

.harubin-strategy__cook-card {
  background: #fff;
  border-radius: 26px;
  padding: 16px 16px 22px;
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.4);
  text-align: center;
  color: #3b2a22;
  position: relative;
}

.harubin-strategy__cook-imgwrap {
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  background: #ffffff;
}

.harubin-strategy__cook-imgwrap img {
  display: block;
  width: 100%;
  height: auto;
}

/* AI 스캔바 */

.harubin-strategy__scan-bar {
  position: absolute;
  left: 0;
  right: 0;
  height: 18%;
  top: -20%;
  background: linear-gradient( to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 45%, rgba(255, 255, 255, 0) 100%);
  mix-blend-mode: screen;
  opacity: 0;
}

/* 원팩 손 이미지 틸트용 */

.harubin-strategy__pack-img {
  transform-origin: top left;
}

/* 하단 라벨 */

.harubin-strategy__cook-label {
  margin-top: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 26px;
  border-radius: 999px;
  background: #f6c85a;
  font-size: 15px;
  font-weight: 600;
}

/* 중앙 정보 박스 – 블라인드 언폴드 대상 */

.harubin-strategy__info {
  margin: 32px auto 0;
  max-width: 960px;
  transform-origin: top;
  transform: scaleY(0);
  opacity: 0;
}

.harubin-strategy__info-inner {
  display: flex;
  padding: 20px 26px 22px;
  border-radius: 18px;
  background: rgba(38, 10, 5, 0.85);
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.45);
}

.harubin-strategy__info-left {
  flex: 0 0 40%;
  text-align: left;
  border-right: 1px solid rgba(255, 255, 255, 0.15);
  padding-right: 18px;
}

.harubin-strategy__info-tag {
  margin: 0 0 4px;
  font-size: 32px;
  opacity: 0.8;
}

.harubin-strategy__info-title {
  margin: 0;
  font-size: 32px;
  font-weight: 700;
  color: #E5B17B;
  font-family: "Inter", sans-serif;
}

.harubin-strategy__info-right {
  flex: 1;
  padding-left: 18px;
}

.harubin-strategy__info-right ul {
  margin: 0;
  padding-left: 24px;
  font-size: 24px;
  line-height: 1.7;
  font-family: "Inter", sans-serif;
}

/* ===== is-visible 시 애니메이션 ===== */

/* 1. AI 스캔 효과 */

.harubin-strategy.is-visible .harubin-strategy__scan-bar {
  animation: strategy-scan 0.9s ease-out forwards;
  animation-delay: 0.2s;
}

/* 2. 원팩 손 좌우 틸트 (반복) */

.harubin-strategy.is-visible .harubin-strategy__pack-img {
  animation: strategy-pack-tilt 2.4s ease-in-out 0.5s infinite alternate;
}

/* 3. 중앙 박스 블라인드 언폴드 */

.harubin-strategy.is-visible .harubin-strategy__info {
  animation: strategy-info-unfold 0.5s ease-out forwards;
  animation-delay: 0.5s;
}

/* ===== KEYFRAMES ===== */

/* AI 스캔바 */

@keyframes strategy-scan {
  0% {
    opacity: 0;
    top: -20%;
  }
  10% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    top: 120%;
  }
}

/* 원팩 손 좌우 살짝 틸트 */

@keyframes strategy-pack-tilt {
  0% {
    transform: rotate(-3deg);
  }
  100% {
    transform: rotate(3deg);
  }
}

/* 중앙 박스 블라인드 오픈 (scaleY 사용) */

@keyframes strategy-info-unfold {
  0% {
    opacity: 0;
    transform: scaleY(0);
  }
  100% {
    opacity: 1;
    transform: scaleY(1);
  }
}

/* 반응형 */

@media (max-width: 1024px) {
  .harubin-strategy__top {
    grid-template-columns: 1fr;
  }
  .harubin-strategy__info-inner {
    flex-direction: column;
  }
  .harubin-strategy__info-left {
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
    margin-bottom: 12px;
    padding-bottom: 12px;
  }
  .harubin-strategy__info-right {
    padding-left: 0;
  }
}

/* 섹션 베이스 */

.harubin-profit {
  position: relative;
  overflow: hidden;
  color: #fff;
}

.harubin-profit__bg {
  position: absolute;
  inset: 0;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  z-index: 1;
}

.harubin-profit__inner {
  position: relative;
  z-index: 2;
  max-width: 960px;
  margin: 0 auto;
  padding: 80px 16px 80px 16px;
}

/* 헤드라인 */

.harubin-profit__headline {
  text-align: center;
  font-size: 48px;
  font-weight: 700;
  margin: 0 0 40px;
  font-family: "Inter", sans-serif;
}

.harubin-profit__headline span {
  color: #f4c467;
}

/* 카드 그리드 */

.harubin-profit__cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 72px 16px;
}

/* 카드 */

.harubin-profit__card {
  background: #fff;
  color: #3b2a22;
  border-radius: 24px;
  padding: 20px 18px 22px;
  border: 1px solid transparent;
  box-shadow: 0 12px 26px rgba(0, 0, 0, 0.3);
  opacity: 0;
  transform: scale(0.8);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  align-self: flex-start;
  gap: 8px;
  justify-content: center;
}

/* 아이콘 */

.harubin-profit__icon {
  width: 50%;
  height: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(0);
}

.harubin-profit__icon img {
  max-width: 100%;
  height: auto;
  filter: brightness(0) saturate(100%) invert(17%) sepia(92%) saturate(2992%) hue-rotate(355deg) brightness(94%) contrast(98%);
}

/* 텍스트 */

.harubin-profit__title {
  margin: 0 0 0 0;
  font-size: 24px;
  font-weight: 700;
  font-family: "Inter", sans-serif;
}

.harubin-profit__text {
  margin: 0;
  font-size: 16px;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  min-height: 80px;
  text-align: center;
  font-family: "Inter", sans-serif;
  word-break: keep-all;
}

/* 호버: 테두리 글로우 */

.harubin-profit__card:hover {
  border-color: #d53a2b;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
  transform: translateY(-6px) scale(1.02);
}

/* ========== is-visible: 등장 애니메이션 ========== */

/* 4. 카드 순차 팝업 (1–6, 0.15초 간격) */

.harubin-profit.is-visible .harubin-profit__card:nth-child(1) {
  animation: profit-card-pop 0.35s cubic-bezier(0.22, 0.9, 0.3, 1.3) forwards;
  animation-delay: 0s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(2) {
  animation: profit-card-pop 0.35s cubic-bezier(0.22, 0.9, 0.3, 1.3) forwards;
  animation-delay: 0.15s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(3) {
  animation: profit-card-pop 0.35s cubic-bezier(0.22, 0.9, 0.3, 1.3) forwards;
  animation-delay: 0.3s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(4) {
  animation: profit-card-pop 0.35s cubic-bezier(0.22, 0.9, 0.3, 1.3) forwards;
  animation-delay: 0.45s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(5) {
  animation: profit-card-pop 0.35s cubic-bezier(0.22, 0.9, 0.3, 1.3) forwards;
  animation-delay: 0.6s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(6) {
  animation: profit-card-pop 0.35s cubic-bezier(0.22, 0.9, 0.3, 1.3) forwards;
  animation-delay: 0.75s;
}

/* 5. 아이콘 점프 (카드가 다 나온 뒤 한 번 점프) */

.harubin-profit.is-visible .harubin-profit__card:nth-child(1) .harubin-profit__icon {
  animation: profit-icon-bounce 0.4s cubic-bezier(0.2, 0.9, 0.25, 1.4) forwards;
  animation-delay: 1.0s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(2) .harubin-profit__icon {
  animation: profit-icon-bounce 0.4s cubic-bezier(0.2, 0.9, 0.25, 1.4) forwards;
  animation-delay: 1.05s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(3) .harubin-profit__icon {
  animation: profit-icon-bounce 0.4s cubic-bezier(0.2, 0.9, 0.25, 1.4) forwards;
  animation-delay: 1.1s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(4) .harubin-profit__icon {
  animation: profit-icon-bounce 0.4s cubic-bezier(0.2, 0.9, 0.25, 1.4) forwards;
  animation-delay: 1.15s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(5) .harubin-profit__icon {
  animation: profit-icon-bounce 0.4s cubic-bezier(0.2, 0.9, 0.25, 1.4) forwards;
  animation-delay: 1.2s;
}

.harubin-profit.is-visible .harubin-profit__card:nth-child(6) .harubin-profit__icon {
  animation: profit-icon-bounce 0.4s cubic-bezier(0.2, 0.9, 0.25, 1.4) forwards;
  animation-delay: 1.25s;
}

/* 카드 팝업 */

@keyframes profit-card-pop {
  0% {
    opacity: 0;
    transform: scale(0.8);
  }
  70% {
    opacity: 1;
    transform: scale(1.04);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* 아이콘 점프 */

@keyframes profit-icon-bounce {
  0% {
    transform: translateY(0);
  }
  60% {
    transform: translateY(-6px);
  }
  100% {
    transform: translateY(0);
  }
}

:root {
  --cost-line: rgba(249, 195, 142, 0.9);
}

/* 섹션 배경 */

.harubin-cost {
  position: relative;
  overflow: hidden;
  color: #fff;
}

.harubin-cost__bg {
  position: absolute;
  inset: 0;
  background-image: url(/wp-content/uploads/2025/12/section_background.jpg);
  background-repeat: repeat;
  background-size: 400px 400px;
  z-index: 1;
}

.harubin-cost__inner {
  position: relative;
  z-index: 2;
  max-width: 960px;
  margin: 0 auto;
  padding: 80px 16px;
}

/* 헤더: 로고 + 타이틀 (낙하) */

.harubin-cost__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  margin-bottom: 48px;
  opacity: 0;
  transform: translateY(-40px);
}

.harubin-cost__logo {
  height: 72px;
  width: auto;
}

.harubin-cost__title {
  margin: 0;
  font-size: 48px;
  font-weight: 700;
  text-align: center;
  font-family: "Inter", sans-serif;
  word-break: keep-all;
  line-height: 1.2;
}

/* 테이블 */

.harubin-cost__table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 24px;
  font-family: "Inter", sans-serif;
  color: #fbe3c5;
}

/* 행 기본: 가로선은 border-bottom으로 처리 */

.harubin-cost__table thead tr,
.harubin-cost__table tbody tr {
  border-bottom: 1px solid transparent;
  /* 초기엔 안 보이게 */
}

/* 셀 공통 */

.harubin-cost__table th,
.harubin-cost__table td {
  padding: 10px 14px;
  text-align: left;
  position: relative;
  /* 내용 드롭 애니메이션용 초기 상태 */
  opacity: 0;
  transform: translateY(-10px);
}

/* 헤더 셀 스타일 */

.harubin-cost__table th {
  font-weight: 600;
  color: #fcd39a;
}

/* 열 너비 */

.harubin-cost__table th:nth-child(1),
.harubin-cost__table td:nth-child(1) {
  width: 18%;
}

.harubin-cost__table th:nth-child(2),
.harubin-cost__table td:nth-child(2) {
  width: 28%;
}

.harubin-cost__table th:nth-child(3),
.harubin-cost__table td:nth-child(3) {
  width: 18%;
}

.harubin-cost__table th:nth-child(4),
.harubin-cost__table td:nth-child(4) {
  width: 36%;
}

/* 금액 셀 & 숫자 */

.harubin-cost__cell-amount {
  text-align: right;
}

.harubin-cost__amount {
  display: inline-block;
  font-weight: 700;
}

/* 행 hover: 포커스 바 */

.harubin-cost__table tbody tr:hover {
  background-color: rgba(255, 255, 255, 0.06);
}

/* 하단 주석 */

.harubin-cost__note {
  margin: 14px 0 0;
  text-align: right;
  font-size: 12px;
  color: #fbe3c5;
  opacity: 0;
  transform: translateY(8px);
}

/* ============================ */

/*  is-visible 애니메이션      */

/* ============================ */

/* 1. 헤더 낙하 */

.harubin-cost.is-visible .harubin-cost__header {
  animation: cost-header-drop 0.6s cubic-bezier(0.22, 0.8, 0.3, 1.2) forwards;
}

/* 2. 가로선 보이기 (위에서 아래로 순차) */

.harubin-cost.is-visible .harubin-cost__table thead tr {
  animation: cost-hline-show 0.35s ease-out forwards;
  animation-delay: 0.1s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(1) {
  animation: cost-hline-show 0.35s ease-out forwards;
  animation-delay: 0.2s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(2) {
  animation: cost-hline-show 0.35s ease-out forwards;
  animation-delay: 0.3s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(3) {
  animation: cost-hline-show 0.35s ease-out forwards;
  animation-delay: 0.4s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(4) {
  animation: cost-hline-show 0.35s ease-out forwards;
  animation-delay: 0.5s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(5) {
  animation: cost-hline-show 0.35s ease-out forwards;
  animation-delay: 0.6s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(6) {
  animation: cost-hline-show 0.35s ease-out forwards;
  animation-delay: 0.7s;
}

/* 3. 행 내용 드롭 */

.harubin-cost.is-visible .harubin-cost__table thead th {
  animation: cost-row-drop 0.4s ease-out forwards;
  animation-delay: 0.45s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(1) td {
  animation: cost-row-drop 0.4s ease-out forwards;
  animation-delay: 0.6s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(2) td {
  animation: cost-row-drop 0.4s ease-out forwards;
  animation-delay: 0.75s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(3) td {
  animation: cost-row-drop 0.4s ease-out forwards;
  animation-delay: 0.9s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(4) td {
  animation: cost-row-drop 0.4s ease-out forwards;
  animation-delay: 1.05s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(5) td {
  animation: cost-row-drop 0.4s ease-out forwards;
  animation-delay: 1.2s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(6) td {
  animation: cost-row-drop 0.4s ease-out forwards;
  animation-delay: 1.35s;
}

/* 3-1. 금액 숫자 팝업 */

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(1) .harubin-cost__amount {
  animation: cost-amount-pop 0.35s ease-out forwards;
  animation-delay: 0.7s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(2) .harubin-cost__amount {
  animation: cost-amount-pop 0.35s ease-out forwards;
  animation-delay: 0.85s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(3) .harubin-cost__amount {
  animation: cost-amount-pop 0.35s ease-out forwards;
  animation-delay: 1s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(4) .harubin-cost__amount {
  animation: cost-amount-pop 0.35s ease-out forwards;
  animation-delay: 1.15s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(5) .harubin-cost__amount {
  animation: cost-amount-pop 0.35s ease-out forwards;
  animation-delay: 1.3s;
}

.harubin-cost.is-visible .harubin-cost__table tbody tr:nth-child(6) .harubin-cost__amount {
  animation: cost-amount-pop 0.35s ease-out forwards;
  animation-delay: 1.45s;
}

/* 4. 하단 주석 */

.harubin-cost.is-visible .harubin-cost__note {
  animation: cost-note-in 0.4s ease-out forwards, cost-note-breath 3s ease-in-out 1.5s infinite alternate;
}

/* ===== KEYFRAMES ===== */

@keyframes cost-header-drop {
  0% {
    opacity: 0;
    transform: translateY(-40px);
  }
  70% {
    opacity: 1;
    transform: translateY(4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 가로선 색이 켜지는 애니메이션 */

@keyframes cost-hline-show {
  0% {
    border-bottom-color: transparent;
  }
  100% {
    border-bottom-color: var(--cost-line);
  }
}

@keyframes cost-row-drop {
  0% {
    opacity: 0;
    transform: translateY(-10px);
  }
  70% {
    opacity: 1;
    transform: translateY(3px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes cost-amount-pop {
  0% {
    transform: scale(1);
  }
  60% {
    transform: scale(1.12);
  }
  100% {
    transform: scale(1);
  }
}

@keyframes cost-note-in {
  0% {
    opacity: 0;
    transform: translateY(8px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes cost-note-breath {
  0% {
    opacity: 0.7;
  }
  100% {
    opacity: 1;
  }
}

/* =========================================================
   하루빈 가맹문의 폼 전체 스타일
   ========================================================= */

/* ====== 섹션 기본 ====== */

.harubin-contact {
  position: relative;
  overflow: hidden;
  color: #ffffff;
  font-family: "Pretendard", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* 배경 */

.harubin-contact__bg {
  position: absolute;
  inset: 0;
  background: #05060a url("https://harubin.com/wp-content/uploads/2025/12/contact_background.jpg") center / cover no-repeat;
  opacity: 0.95;
  z-index: 1;
}

/* 섹션 내부 */

.harubin-contact__inner {
  position: relative;
  z-index: 2;
  max-width: 840px;
  margin: 0 auto;
  padding: 80px 20px 120px;
}

/* ====== 헤더 ====== */

.harubin-contact__header {
  text-align: center;
  margin-bottom: 40px;
}

.harubin-contact__logo {
  height: 72px;
  margin-bottom: 14px;
}

.harubin-contact__subtitle {
  margin: 0;
  font-size: 18px;
  letter-spacing: 0.08em;
  opacity: 0.85;
}

.harubin-contact__title {
  margin: 6px 0 0;
  font-size: 40px;
  font-weight: 700;
  font-family: "Inter", sans-serif;
}

/* ====== FORM ====== */

.harubin-contact__form {
  margin-top: 10px;
}

/* ====== 개인정보 동의 ====== */

.harubin-contact__privacy {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  padding: 10px 14px;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.35);
}

.harubin-contact__checkbox-wrap {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  flex: 1;
}

.harubin-contact__checkbox-wrap input[type="checkbox"] {
  display: none;
}

.harubin-contact__checkbox {
  width: 18px;
  height: 18px;
  border-radius: 3px;
  border: 1px solid rgba(255, 255, 255, 0.4);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-family: "Inter", sans-serif;
}

.harubin-contact__checkbox-wrap input[type="checkbox"]:checked+.harubin-contact__checkbox {
  background: #f53c3c;
  border-color: #f53c3c;
}

.harubin-contact__checkbox-wrap input[type="checkbox"]:checked+.harubin-contact__checkbox::after {
  content: "✓";
  color: #fff;
  font-size: 12px;
}

.harubin-contact__privacy-text {
  font-size: 13px;
  opacity: 0.9;
}

.harubin-contact__privacy-btn {
  border: 1px solid rgba(255, 255, 255, 0.45);
  background: rgba(255, 255, 255, 0.06);
  color: #ffffff;
  font-size: 13px;
  padding: 6px 12px;
  border-radius: 2px;
  cursor: pointer;
  white-space: nowrap;
  font-family: "Inter", sans-serif;
}

/* ====== 입력 필드 ====== */

.harubin-contact__fields-title {
  margin: 0 0 12px;
  font-size: 14px;
}

.harubin-contact__fields-note {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
}

.harubin-contact__field {
  margin-bottom: 14px;
}

.harubin-contact__field label {
  display: block;
  font-size: 13px;
  margin-bottom: 6px;
}

.harubin-contact__field input,
.harubin-contact__field textarea {
  width: 100%;
  border-radius: 2px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: rgba(0, 0, 0, 0.4);
  color: #ffffff;
  font-size: 14px;
  padding: 8px 10px;
  outline: none;
  box-sizing:border-box;
}

.harubin-contact__field textarea {
  resize: vertical;
  min-height: 140px;
}

.harubin-contact__field input:focus,
.harubin-contact__field textarea:focus {
  border-color: #f53c3c;
  box-shadow: 0 0 0 1px rgba(245, 60, 60, 0.4);
}

/* 필수 오류 */

.harubin-contact__field--error input,
.harubin-contact__field--error textarea {
  border-color: #ff6b6b;
}

/* ====== 제출 버튼 ====== */

.harubin-contact__submit-wrap {
  text-align: center;
  margin-top: 28px;
}

.harubin-contact__submit {
  cursor: pointer;
  border: none;
  border-radius: 3px;
  padding: 12px 60px;
  font-size: 16px;
  font-weight: 600;
  background: #f53c3c;
  color: #ffffff;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.5);
  transition: all 0.15s ease;
}

.harubin-contact__submit:hover {
  background: #ff5050;
  transform: translateY(-1px);
}

.harubin-contact__submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* =========================================================
   개인정보처리방침 모달
   ========================================================= */

.harubin-privacy-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 9999;
}

.harubin-privacy-modal.is-open {
  display: block;
}

.harubin-privacy-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
}

.harubin-privacy-modal__content {
  position: relative;
  max-width: 640px;
  max-height: 80vh;
  margin: 60px auto;
  background: #111219;
  border-radius: 8px;
  padding: 20px 24px 24px;
  color: #ffffff;
  overflow-y: auto;
}

.harubin-privacy-modal__title {
  margin: 0 0 12px;
  font-size: 18px;
  font-weight: 600;
  font-family: "Inter", sans-serif;
}

.harubin-privacy-modal__close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: transparent;
  border: none;
  color: #ffffff;
  font-size: 22px;
  font-family: "Inter", sans-serif;
  cursor: pointer;
}

/* =========================================================
   ✅ 전송 결과 모달 (성공/실패)
   ========================================================= */

.harubin-contact-result-modal {
  position: fixed;
  inset: 0;
  display: none;
  z-index: 10000;
}

.harubin-contact-result-modal.is-open {
  display: block;
}

.harubin-contact-result-modal__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
}

.harubin-contact-result-modal__content {
  position: relative;
  max-width: 420px;
  margin: 120px auto;
  background: #111219;
  border-radius: 8px;
  padding: 22px 24px 24px;
  color: #ffffff;
  text-align: center;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.7);
  font-family: "Inter", sans-serif;
}

.harubin-contact-result-modal__title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: 600;
  font-family: "Inter", sans-serif;
}

.harubin-contact-result-modal__message {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  font-family: "Inter", sans-serif;
}

.harubin-contact-result-modal__close {
  position: absolute;
  top: 8px;
  right: 10px;
  background: transparent;
  border: none;
  color: #ffffff;
  font-size: 22px;
  font-family: "Inter", sans-serif;
  cursor: pointer;
}

/* ====== 반응형 ====== */

@media (max-width: 768px) {
  .harubin-contact__inner {
    padding: 60px 16px 80px;
  }
  .harubin-contact__title {
    font-size: 32px;
  }
  .harubin-privacy-modal__content {
    margin: 40px 12px;
  }
  .harubin-contact-result-modal__content {
    margin: 80px 16px;
  }
}

/* ================================
   하루빈 Footer
   ================================ */

.harubin-footer {
  background: #17161A;
  color: rgba(255, 255, 255, 0.75);
  font-size: 12px;
  font-family: "Inter", sans-serif;
}

.harubin-footer__inner {
  max-width: 1320px;
  margin: 0 auto;
  padding: 32px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

/* 좌측 */

.harubin-footer__left {
  line-height: 1.6;
}

.harubin-footer__info {
  margin: 0 0 4px;
}

.harubin-footer__copyright {
  margin: 0;
  opacity: 0.6;
  font-size: 11px;
}

/* 우측 */

.harubin-footer__right {
  display: flex;
  align-items: center;
  gap: 18px;
}

.harubin-footer__privacy {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  font-size: 12px;
  transition: opacity 0.2s ease;
  font-family: "Inter", sans-serif;
}

.harubin-footer__privacy:hover {
  opacity: 1;
}

/* SNS */

.harubin-footer__sns {
  display: flex;
  gap: 12px;
}

.harubin-footer__sns-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: all 0.2s ease;
}

.harubin-footer__sns-icon:hover {
  background: #f53c3c;
  border-color: #f53c3c;
  transform: translateY(-2px);
}

/* ================================
   모바일 반응형
   ================================ */

@media (max-width: 768px) {
  .harubin-footer__inner {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .harubin-footer__right {
    width: 100%;
    justify-content: space-between;
  }
}

/* ===== 상단 네비게이션 헤더 ===== */

.harubin-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: auto;
  /* 얇은 바 느낌 */
  background: #3b160c;
  /* 이미지 비슷한 브라운 */
  z-index: 9990;
  font-family: "Pretendard", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* 헤더 아래 컨텐츠가 가려지지 않도록 padding-top 추가 */

body {
  padding-top: 32px;
  /* 헤더 높이만큼 */
}

.harubin-header__inner {
  max-width: 1280px;
  margin: 0 auto;
  height: 100%;
  display: flex;
  align-items: stretch;
  justify-content: center;
}

/* 메뉴 전체 */

.harubin-gnb {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

/* 개별 아이템 */

.harubin-gnb__item {
  flex: 1;
  text-align: center;
  font-size: 24px;
  color: #ffffff;
  text-decoration: none;
  padding: 24px 16px;
  line-height: 1;
  white-space: nowrap;
  border-left: 1px solid rgba(255, 255, 255, 0.06);
  transition: background 0.15s ease, color 0.15s ease;
}

/* 첫 번째는 왼쪽 보더 제거 */

.harubin-gnb__item:first-child {
  border-left: none;
}

.harubin-gnb__item:hover {
  background: rgba(255, 255, 255, 0.08);
}

/* 현재 섹션에 도착했을 때 강조하고 싶으면 이 클래스 JS로 붙여도 됨 */

.harubin-gnb__item.is-active {
  background: unset;
  color: #ffe2c0;
}

/* 모바일에서 가로 스크롤 허용 (메뉴 많을 때) */

@media (max-width: 768px) {
  .harubin-header__inner {
    padding: 0 6px;
  }
  .harubin-gnb {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .harubin-gnb__item {
    flex: 0 0 auto;
    padding: 24px 16px;
  }
}

/* 반응형 */

@media (max-width: 768px) {
  .harubin-cost__inner {
    padding: 40px 16px 40px 16px;
  }
  .harubin-cost__title {
    font-size: 48px;
  }
}

/* 반응형 */

@media (max-width: 1024px) {
  .harubin-profit__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .harubin-profit__cards {
    grid-template-columns: 1fr;
  }
}

/* 반응형 */

@media (max-width: 1024px) {
  .harubin-brand__cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 32px;
  }
}

@media (max-width: 640px) {
  .harubin-brand__cards {
    grid-template-columns: 1fr;
  }
  .harubin-brand__headline span:first-child {
    font-size: 32px;
  }
  .harubin-brand__headline span:last-child {
    font-size: 32px;
  }
}

/* 반응형 대략값 조정 */

@media (max-width: 768px) {
  .harubin-4in1 {
    min-height: 500px;
  }
  .harubin-4in1__inner {
    padding: 64px 16px 32px;
  }
  .harubin-4in1__eyebrow {
    font-size: 18px;
  }
  .harubin-4in1__title {
    font-size: 32px;
  }
  .harubin-4in1__foods {
    height: 230px;
    margin-top: 0px;
  }
  .harubin-4in1__food img {
    max-width: 170px;
  }
  .harubin-4in1__food--bottom-right,
  .harubin-4in1__food--bottom-left {
    top: 50%;
  }
  .harubin-4in1__food--top-left,
  .harubin-4in1__food--top-right {
    top: 64%;
  }
  .harubin-4in1__food--top-left {
    left: 82%;
    width: 130px;
  }
  .harubin-4in1__food--top-right {
    left: 15%;
    width: 150px;
  }
  .harubin-4in1__food--bottom-left {
    left: 73%;
    width: 170px;
  }
  .harubin-4in1__food--bottom-right {
    left: 24%;
    width: 150px;
  }
  .harubin-4in1__food--top-left img {
    max-width: 250px;
  }
  .harubin-4in1__food--top-right img {
    max-width: 300px;
  }
  .harubin-brand__inner {
    padding: 40px 16px 40px 16px;
  }
}

/* 반응형 */

@media (max-width: 768px) {
  .harubin-flame {
    min-height: auto;
  }
  .harubin-flame__inner {
    padding: 80px 16px;
  }
  .harubin-flame__line {
    font-size: 40px;
  }
  .harubin-flame__subcopy {
    font-size: 15px;
  }
}

/* 반응형 */

@media (max-width: 768px) {
  .harubin-invest {
    padding: 72px 20px 64px;
  }
  .harubin-invest__hero {
    max-width: 320px;
  }
  .harubin-invest__subcopy {
    font-size: 0.95rem;
  }
}

/* 반응형 */

@media (max-width: 768px) {
  .harubin-menu-grid__inner {
    grid-template-columns: repeat(2, 1fr);
    gap: 0px;
  }
  .menu-item {
    transform: translateY(22px);
  }
}

/* 반응형 */

@media (max-width: 768px) {
  .harubin-intro {
    padding: 56px 20px 48px;
  }
  .harubin-intro__title {
    font-size: 1.8rem;
  }
  .harubin-intro__sub {
    font-size: 20px;
    padding: 32px 0 0 0;
    line-height: 1.4;
  }
  .harubin-intro__body {
    font-size: 16px;
  }
  .harubin-intro__body p {
    width: 100%;
  }
  .harubin-intro__tagline,
  .harubin-intro__title {
    font-size: 32px;
    word-break: keep-all;
    line-height: 1.2;
  }
  .harubin-flavor__title {
    font-size: 32px;
    padding: 0 0 16px 0;
  }
  .harubin-flavor {
    padding: 48px 16px;
  }
  .harubin-flavor__line {
    font-size: 24px;
  }
  .menu-name {
    font-size: 16px;
    width: max-content;
  }
  .harubin-invest__headline-main {
    font-size: 48px;
    word-break: keep-all;
  }
  .harubin-strategy__headline span:first-child {
    font-size: 32px;
  }
  .harubin-strategy__headline span:last-child {
    font-size: 32px;
  }
  .harubin-strategy__inner {
    padding: 40px 16px;
  }
  .harubin-strategy__info-right ul {
    padding-left: 16px;
    font-size: 16px;
    word-break: keep-all;
  }
  .harubin-profit__text {
    min-height: auto;
  }
  .harubin-cost__table {
    font-size: 14px;
    word-break: keep-all;
  }
  .harubin-gnb__item {
    font-size: 16px;
  }
  .harubin-hero__headline br {
    display: block !important;
  }
  .harubin-contact__logo {
    height: 56px;
    margin-bottom: 8px;
}
}