/* ============================================================
 * BLOS 랜딩페이지 — Global Styles
 *
 * 이 파일의 역할 = "디자인 시스템 + 공통 스타일"
 *
 * 구조:
 *   1) 디자인 토큰 (Figma에서 뽑은 색/폰트/간격을 CSS 변수로)
 *   2) Reset & 기본값 (브라우저 차이 통일)
 *   3) 타이포그래피 유틸 클래스
 *   4) 공통 레이아웃 (.container, .section)
 *   5) Scroll Fade-In 인터랙션 클래스 (.reveal)
 *   6) (다음 단계) 각 섹션별 스타일은 아래에 추가됨
 * ============================================================ */


/* ============================================================
 * 1) 디자인 토큰 — CSS Custom Properties (변수)
 *
 * :root는 HTML 문서 전체를 가리키는 가장 바깥 스코프.
 * 여기 정의한 --변수명 은 페이지 어디서나 var(--변수명) 로 호출.
 *
 * 토큰을 쓰는 이유:
 *   - 색/크기/간격을 한 곳에서 관리 (= 디자인 시스템)
 *   - "메인 색 바꿔봐"라는 요청에 한 줄만 고치면 됨
 *   - Figma의 디자인 토큰 개념을 코드로 그대로 옮긴 것
 * ============================================================ */
:root {
  /* ── Colors ── */
  --color-bg: #FFFFFF;
  --color-text: #191C1D;                  /* Figma fill_YCB5CG */
  --color-text-muted: #5A6166;
  --color-primary: #1B73E8;               /* 임시 (Hero CTA용, 추후 조정) */
  --color-overlay: rgba(0, 0, 0, 0.42);   /* Hero 어두운 오버레이 */

  /* Glass(유리) 효과용 — Hero의 Trust 카드 배경 */
  --color-glass-bg: rgba(255, 255, 255, 0.1);
  --color-glass-border: rgba(255, 255, 255, 0.2);

  /* ── Typography ── */
  --font-kr: 'Pretendard Variable', Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  --font-en: 'Inter', sans-serif;

  /* 반응형 타이포그래피 — 선형 보간 (Fluid Typography)
     320px viewport에서 min, 1440px에서 max로 부드럽게 스케일.
     공식: clamp(min, calc(slope×vw + base), max)
     slope = (max-min)/11.2,  base = min - slope×3.2 (px) */
  --fs-h1: clamp(28px, calc(2.86vw + 18.86px), 60px);    /* 60 → 28 */
  --fs-h2: clamp(22px, calc(2.32vw + 14.57px), 48px);    /* 48 → 22 */
  --fs-h3: clamp(18px, calc(1.25vw + 14px), 32px);       /* 32 → 18 */
  --fs-h4: clamp(16px, calc(0.89vw + 13.14px), 26px);    /* 26 → 16 */
  --fs-body-lg: clamp(15px, calc(0.45vw + 13.57px), 20px); /* 20 → 15 */
  --fs-body: clamp(14px, calc(0.36vw + 12.86px), 18px);  /* 18 → 14 */
  --fs-small: clamp(13px, calc(0.27vw + 12.14px), 16px); /* 16 → 13 */
  --fs-label: clamp(11px, calc(0.09vw + 10.71px), 12px); /* 12 → 11 */

  /* ── Layout ── */
  --container-max: 1280px;     /* 컨텐츠 최대 가로폭 */
  --container-padding: 80px;   /* 좌우 패딩 */

  /* ── Effects ── */
  --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.06);
  --shadow-card-hover: 0 12px 36px rgba(0, 0, 0, 0.12);
  --radius-card: 16px;
  --radius-pill: 9999px;       /* 알약 모양 */

  /* 애니메이션 곡선 (이징 함수)
     - cubic-bezier(x1, y1, x2, y2): 시간/속도 그래프의 곡선
     - 이 값은 처음엔 빠르게 시작해서 끝에서 부드럽게 멈추는 ease-out 계열
     - 페이드인에 자연스러운 느낌을 줌 */
  --transition-base: 280ms cubic-bezier(0.22, 1, 0.36, 1);
}


/* ============================================================
 * 2) Reset & 기본값
 *
 * 브라우저마다 <body> 마진, <h1> 크기, <ul> 들여쓰기가 다 다름.
 * 모든 브라우저가 같은 출발선에서 시작하도록 정리.
 * ============================================================ */
*, *::before, *::after {
  box-sizing: border-box;   /* 패딩/테두리가 width에 포함되도록 (계산이 직관적) */
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;  /* 앵커 링크(#section1) 클릭 시 부드럽게 스크롤 */
}

body {
  font-family: var(--font-kr);
  font-size: var(--fs-body);
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-bg);
  -webkit-font-smoothing: antialiased;   /* 폰트 가장자리를 부드럽게 (Mac/iOS) */
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;                     /* 가로 스크롤 방지 */
}

/* 전역 — 모든 요소가 부모를 넘지 않도록 */
img, video, svg {
  max-width: 100%;
}

img, picture, video {
  display: block;
  max-width: 100%;
  height: auto;             /* 가로세로 비율 자동 유지 */
}

a {
  color: inherit;           /* 부모의 글자색 그대로 (파란색 기본 끔) */
  text-decoration: none;    /* 밑줄 기본 끔 */
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none;
}


/* ============================================================
 * 3) 타이포그래피 유틸 클래스
 *
 * Figma 텍스트 스타일을 1:1 매핑.
 * <h1 class="t-h1">대한민국에서...</h1> 처럼 사용.
 *
 * 이렇게 클래스로 분리하면:
 *   - 같은 스타일을 여러 곳에서 재사용 가능
 *   - 디자인 변경 시 한 클래스만 수정
 * ============================================================ */
.t-h1 {
  font-size: var(--fs-h1);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.05em;
}

.t-h2 {
  font-size: var(--fs-h2);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.0375em;
  text-align: center;
}

.t-h3 {
  font-size: var(--fs-h3);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.0562em;
  text-align: center;
}

.t-h4 {
  font-size: var(--fs-h4);
  font-weight: 500;
  line-height: 1.15;
}

.t-body-lg {
  font-size: var(--fs-body-lg);
  font-weight: 500;
  line-height: 1.625;
}

.t-body {
  font-size: var(--fs-body);
  font-weight: 500;
  line-height: 1.555;
}

.t-small {
  font-size: var(--fs-small);
  font-weight: 500;
  line-height: 1.25;
}

.t-label {
  font-family: var(--font-en);
  font-size: var(--fs-label);
  font-weight: 600;
  line-height: 1.333;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}


/* ============================================================
 * 4) 공통 레이아웃
 *
 * .container: 컨텐츠 가운데 정렬 + 최대 너비 제한
 * .section: 섹션 단위의 위/아래 여백
 * ============================================================ */
.container {
  width: 100%;
  max-width: var(--container-max);
  margin-inline: auto;
  /* 반응형 좌우 padding — 모바일 16px, 데스크톱 80px */
  padding-inline: clamp(16px, 5.56vw, 80px);
}

.section {
  padding-block: clamp(60px, 8.33vw, 120px);
}


/* ============================================================
 * 5) Scroll Fade-In 인터랙션
 *
 * 동작 원리 (3단계):
 *
 *   ① 페이지가 처음 로드되면, .reveal 클래스를 가진 요소는
 *      → opacity: 0 (투명)
 *      → translateY(32px) (32px 아래로 살짝 내려가 있음)
 *      → 즉, 안 보이고 아래로 숨겨진 상태
 *
 *   ② JavaScript의 IntersectionObserver가
 *      "이 요소가 화면 안으로 들어왔어!" 를 감지
 *      → .is-visible 클래스를 붙여줌
 *
 *   ③ CSS transition 덕분에
 *      → opacity 0 → 1, translateY 32px → 0 으로
 *      → 700ms 동안 부드럽게 변화 = "위로 올라오며 페이드인"
 * ============================================================ */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  /* 트랜지션 지속시간 550ms — 너무 길지도 짧지도 않은 산뜻한 느낌
     CSS 변수 --reveal-delay 를 inline style로 받아 시차를 줌 (기본 0ms) */
  transition:
    opacity 550ms var(--transition-base),
    transform 550ms var(--transition-base);
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
  /* will-change: 브라우저에게 "이 속성 곧 바뀐다, GPU 미리 준비해" 힌트.
     애니메이션이 더 부드러워짐. 단, 남발은 메모리 낭비라 꼭 필요할 때만. */
}

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

/* 스태거(stagger) 효과 사용법:
   inline style로 자유롭게 시차 지정:
     <div class="reveal" style="--reveal-delay: 80ms"> → 80ms 후 시작
   기존 data-delay="100" 형태도 호환 유지 (아래 fallback) */
.reveal[data-delay="80"]  { --reveal-delay: 80ms; }
.reveal[data-delay="160"] { --reveal-delay: 160ms; }
.reveal[data-delay="240"] { --reveal-delay: 240ms; }
.reveal[data-delay="320"] { --reveal-delay: 320ms; }
.reveal[data-delay="400"] { --reveal-delay: 400ms; }


/* ============================================================
 * 접근성(Accessibility) — 동작 줄이기 설정 존중
 *
 * OS 설정에 "동작 줄이기 / Reduce motion"이 켜져 있는 사용자
 * (멀미·전정장애·뇌졸중 회복기 등) 를 위해 애니메이션 비활성화.
 *
 * 이런 처리를 해두면 검색엔진/접근성 평가 점수도 올라감.
 * ============================================================ */
@media (prefers-reduced-motion: reduce) {
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
  html {
    scroll-behavior: auto;
  }
}


/* ============================================================
 * 6) 섹션별 스타일
 * ============================================================ */


/* ============================================================
 * Section 1 — HERO
 *
 * 구조 (3개의 레이어):
 *   ① .hero__bg      = 배경 이미지 (cover로 꽉 채움)
 *   ② .hero__overlay = 검정 42% 오버레이 (이미지 위에 어둡게 깔아 글자 가독성 ↑)
 *   ③ .hero__content = 실제 텍스트/버튼 (가장 위 레이어)
 *
 * position 기법:
 *   - .hero 자체는 position: relative (자식의 기준점이 됨)
 *   - 배경/오버레이는 position: absolute로 hero 전체에 깔림
 *   - content는 position: relative + z-index로 맨 위에
 * ============================================================ */
.hero {
  position: relative;          /* 자식 absolute의 기준점 */
  /* Figma 1440 × 1179 비율 (vw × 81.875%) — 모바일에선 500px 최소 (1화면) */
  min-height: clamp(500px, 81.875vw, 1179px);
  display: flex;
  align-items: center;
  color: #fff;
  overflow: hidden;
}

/* ============================================================
 * Top Nav (Hero 상단)
 * Figma: 84px 높이, 반투명 검정 50%, 좌측 로고 + 우측 흰 버튼
 * ============================================================ */
.topnav {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 3;             /* hero content보다 위 */
  background: rgba(0, 0, 0, 0.5);
}

/* Topnav 간격 명확 분리 (slim 64px nav) */
.topnav__inner {
  width: 100%;
  /* 자기 자신 크기 — nav 높이 */
  height: clamp(48px, 4.44vw, 64px);
  /* 안쪽 여백 (padding) — 로고/CTA가 nav 테두리에서 떨어진 정도 */
  padding-inline: clamp(16px, 5.56vw, 80px);
  padding-block: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* 자식 간격 (gap) — 로고와 CTA 사이 */
  gap: clamp(16px, 2.78vw, 40px);
}

.topnav__logo {
  display: inline-flex;
  align-items: center;
}

.topnav__logo img {
  /* nav 슬림화에 맞춰 로고도 작게 — 24~32 */
  height: clamp(24px, 2.22vw, 32px);
  width: auto;
  display: block;
}

/* "홈페이지 이동" 버튼 — slim nav에 맞춘 사이즈 (padding 6~10 / 11~16) */
.topnav__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: clamp(6px, calc(0.36vw + 4.86px), 10px) clamp(11px, calc(0.45vw + 9.57px), 16px);
  background: #FFFFFF;
  color: #000000;
  font-family: var(--font-kr);
  font-size: clamp(11px, calc(0.27vw + 10.14px), 14px);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -0.01em;
  border-radius: 0 16px 16px 20px;
  white-space: nowrap;
  transition: background var(--transition-base), transform var(--transition-base), box-shadow var(--transition-base);
}

.topnav__cta:hover {
  background: #F5F9FA;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

/* nav 모든 사이즈는 위 fluid clamp()에서 처리 — 별도 breakpoint 불필요 */

.hero__bg,
.hero__overlay,
.hero__fadeout {
  position: absolute;
  inset: 0;        /* top:0; right:0; bottom:0; left:0 의 단축 표기 */
  z-index: 0;
  pointer-events: none;
}

.hero__bg {
  background-image: url('assets/hero-bg.png');
  background-size: cover;        /* 비율 유지하며 영역 꽉 채움 */
  background-position: center;
  background-repeat: no-repeat;
}

.hero__overlay {
  background: var(--color-overlay);    /* rgba(0,0,0,0.42) */
}

/* Hero 바닥 그라데이션 (Figma Rectangle 1017 매칭)
   transparent → #00030A (Section 2 배경색)으로 부드럽게 연결 */
.hero__fadeout {
  top: auto;
  bottom: 0;
  height: clamp(160px, 22vh, 281px);
  background: linear-gradient(
    180deg,
    rgba(0, 3, 10, 0) 0%,
    rgba(0, 3, 10, 1) 100%
  );
  z-index: 1;     /* 이미지/오버레이 위, 컨텐츠 아래 */
}

.hero__content {
  position: relative;
  z-index: 1;                    /* 배경/오버레이보다 위에 */
  display: flex;
  flex-direction: column;
  align-items: flex-start;       /* 좌측 정렬 */
  /* 자식 간격 (gap) — 라벨/H1/부제/Trust/CTA 사이 */
  gap: clamp(16px, 2.22vw, 32px);
  /* 안쪽 여백 (padding) — 위: nav 다음 여백, 아래: 하단 여백 */
  padding-block: clamp(88px, 11.11vw, 160px) clamp(40px, 5.56vw, 80px);
  max-width: 1120px;
  width: 100%;
}

/* 부제는 그대로 자연 줄바꿈 활용 */
.hero__subtitle {
  max-width: 680px;
}

/* ── 라벨 — Figma layout_F2GL0D: row, gap 8, padding 4 12, glass effect ── */
.hero__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(10px, calc(0.18vw + 9.43px), 12px);
  color: rgba(255, 255, 255, 0.85);
  padding: clamp(3px, 0.28vw + 2.1px, 4px) clamp(8px, 0.36vw + 6.85px, 12px);
  border-radius: var(--radius-pill);
  background: var(--color-glass-bg);
  border: 1px solid var(--color-glass-border);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Figma Background (89:5401): 8×8 #3BA6FF 원형 파란 점 */
.hero__label-dot {
  width: 8px;
  height: 8px;
  border-radius: 9999px;
  background: #3BA6FF;       /* Figma fill_YR8P2T */
  flex-shrink: 0;
}

/* ── H1 헤드라인 ── */
/* Figma style_EH039T: Pretendard Bold 60/60, letter-spacing -5%, color #FFFFFF
   effect_P82A1S: text-shadow 0 0 4px rgba(0,0,0,0.25) */
.hero__title {
  font-family: var(--font-kr);
  font-size: clamp(28px, calc(2.86vw + 18.86px), 60px);
  font-weight: 700;
  line-height: 1;                              /* Figma 60/60 정확 */
  letter-spacing: -0.05em;
  color: #FFFFFF;
  margin: 0;
  word-break: keep-all;
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.25);    /* Figma effect_P82A1S */
}

/* ── 부제 — Figma style_DJX8ND: Pretendard Medium 20/32.5, color #E2E8F0 */
.hero__subtitle {
  font-family: var(--font-kr);
  font-size: clamp(13px, calc(0.63vw + 11px), 20px);
  font-weight: 500;
  line-height: 1.625;                /* Figma 32.5/20 */
  color: #E2E8F0;                    /* Figma fill_2AXTKH */
  margin: 0;
}

/* ── Trust Bar — Figma 정확 매칭 (layout_WRIUIZ + fill_XQ5MGX) ── */
.trust-bar {
  display: inline-flex;
  align-items: center;
  gap: clamp(12px, 2.22vw, 32px);    /* Figma 32 */
  padding: clamp(16px, 2.22vw, 32px); /* Figma 32 */
  background: rgba(0, 0, 0, 0.4);    /* Figma fill_XQ5MGX 40% */
  border-radius: 20px;
  margin-top: 8px;
  max-width: 100%;
}

/* 각 아이템 — 원형 아이콘 + 텍스트 2줄 */
.trust-item {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Figma layout_6C5X6M: 40×40 + bg/border (Overlay+Border) */
.trust-item__icon {
  flex-shrink: 0;
  width: clamp(32px, 2.78vw, 40px);
  height: clamp(32px, 2.78vw, 40px);
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.1);          /* Figma fill_OZ52P3 */
  border: 1px solid rgba(255, 255, 255, 0.2);     /* Figma fill_8067XJ */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #3BA6FF;                                  /* Figma fill_183ZSI */
}

.trust-item__icon svg {
  width: clamp(14px, 1.25vw, 18px);
  height: clamp(14px, 1.25vw, 18px);
}

.trust-item__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

/* Figma style_WTPQFP: Inter Semi Bold 12/16, letter-spacing 10%, UPPER */
.trust-item__label {
  font-family: var(--font-en);
  font-size: clamp(9px, calc(0.27vw + 8.14px), 12px);   /* 9~12 fluid */
  font-weight: 600;
  line-height: 1.333;
  letter-spacing: 0.1em;
  color: #E3E5E8;
  text-transform: uppercase;
}

/* Figma style_EJ0P6D: Pretendard Medium 16/20, color #FFFFFF */
.trust-item__main {
  font-family: var(--font-kr);
  font-size: clamp(11px, calc(0.45vw + 9.57px), 16px);
  font-weight: 500;                   /* Medium */
  line-height: 1.25;                  /* Figma 20/16 */
  color: #FFFFFF;                     /* Figma fill_7L9KWS */
  word-break: keep-all;
}

/* 화면 좁아지면 세로 배치 */
@media (max-width: 768px) {
  .trust-bar {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 20px;
  }
  .trust-item__main {
    white-space: normal;
  }
}

/* ── CTA 버튼 영역 (Figma layout_7HVTIY: padding-top 16, sizing fill) ── */
.hero__cta-wrap {
  padding-top: 16px;
  width: 100%;
  display: flex;
  align-items: flex-start;
}

/* 모바일에선 CTA 버튼 살짝 더 넓게 (가독성) */
@media (max-width: 480px) {
  .btn--cta {
    padding: 14px 28px;
    font-size: 17px;
    line-height: 26px;
  }
}

/* ============================================================
 * 공통 버튼 컴포넌트 (.btn) — 여러 섹션에서 재사용
 * ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: clamp(12px, calc(0.36vw + 10.86px), 16px) clamp(18px, calc(0.89vw + 15.14px), 28px);
  border-radius: var(--radius-pill);
  font-family: var(--font-kr);
  font-weight: 600;
  font-size: var(--fs-body);
  line-height: 1;
  transition:
    transform var(--transition-base),
    box-shadow var(--transition-base),
    background var(--transition-base);
  cursor: pointer;
  white-space: nowrap;
}

.btn--primary {
  background: #fff;
  color: var(--color-text);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.btn--primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.22);
}

.btn--primary:active {
  transform: translateY(0);
}

/* Hero CTA — Figma 정확 매칭
   sizing: horizontal hug (콘텐츠 폭 + padding), Pretendard Medium 18/28
   화면 비율에 따라 자연 스케일 (모바일에선 더 넓은 padding) */
/* Hero CTA — Figma 128:2222 정확 매칭
   layout_0V4M4A: padding 16/32, bg #3BA6FF, radius 0 20 20 20
   style_LOMHHA: Pretendard Medium 18/28, white text
   실측 dimensions: 338.69 × 60 */
.btn--cta {
  background: #3BA6FF;
  color: #FFFFFF;
  border-radius: 0 20px 20px 20px;
  /* padding도 viewport 비례 (Figma 16/32 max) */
  padding: clamp(12px, calc(0.36vw + 10.86px), 16px) clamp(20px, calc(1.07vw + 16.57px), 32px);
  font-family: var(--font-kr);
  font-size: clamp(14px, calc(0.36vw + 12.86px), 18px);
  font-weight: 500;
  line-height: 1.555;                          /* Figma 28/18 */
  letter-spacing: -0.01em;
  width: fit-content;
  min-width: clamp(160px, 23.5vw, 339px);     /* Figma 338.69, 모바일 160 */
  text-align: center;
  justify-content: center;
  box-shadow:
    0 8px 10px -6px rgba(0, 0, 0, 0.1),
    0 20px 25px -5px rgba(0, 0, 0, 0.1);
}

.btn--cta:hover {
  background: #2495F5;
  transform: translateY(-2px);
  box-shadow:
    0 12px 14px -6px rgba(0, 0, 0, 0.15),
    0 28px 32px -5px rgba(0, 0, 0, 0.15);
}

.btn--cta:active {
  transform: translateY(0);
}


/* ============================================================
 * Section 2 — PROBLEM TAGS (Figma 89:5439)
 * #00030A 배경, padding 180/0 (좌우는 컨테이너로), gap 32px
 * 태그: #FF6D6D 빨강 텍스트, Pretendard Medium 26px (글래스 X)
 * ============================================================ */
.problems {
  background: #00030A;
  color: #fff;
  /* Figma 180 top — viewport 비례 */
  padding-block: clamp(80px, 12.5vw, 180px) 0;
  margin-top: -1px;                  /* sub-pixel gap 방지 (Hero와 흰 경계선 차단) */
}

/* 태그 row — Figma layout_RSE3MX: row gap 8, 모두 보이도록 wrap 허용 */
.problems__tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;                /* 모든 태그 보이게 — 자동 줄바꿈 */
  justify-content: center;
  align-items: center;
  gap: clamp(6px, 0.55vw + 4.24px, 8px) clamp(8px, 0.55vw + 6.24px, 16px);
  margin-bottom: clamp(20px, 2.22vw, 32px);
}

/* 태그 — 빨강 텍스트, Pretendard Medium 26px (Figma) → fluid 13~26 */
.tag {
  display: inline-flex;
  align-items: center;
  padding: 0 clamp(4px, 0.55vw + 2.24px, 8px);
  border-radius: 100px;
  background: transparent;
  color: #FF6D6D;
  font-family: var(--font-kr);
  font-size: clamp(13px, calc(1.16vw + 7.43px), 26px);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -0.01em;
  white-space: nowrap;            /* 개별 태그는 줄바꿈 방지 */
}

/* Figma 89:5453 (Frame 1618872293) — 이미지 컨테이너
   mode: row, gap: 42px (반응형 축소)
   3 이미지 한 줄로 컨테이너 너비 분배 */
.problems__images {
  display: flex;
  justify-content: center;
  align-items: stretch;
  gap: clamp(16px, 3vw, 42px);    /* 좁은 화면에선 gap 축소 */
}

/* 각 이미지 — Figma layout_WTW703: 350×320 (aspect 1.094)
   border 제거 (Section 2-3 경계가 흰 줄로 보이지 않게) */
.problem-img {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  max-width: 350px;
  aspect-ratio: 350 / 320;
  overflow: hidden;
  border-radius: 12px;
  /* border 제거 — 흰 보더가 섹션 경계처럼 보이는 문제 해결 */
}

.problem-img::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(0, 0, 0, 0.6) 100%);
  pointer-events: none;
}

.problem-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
/* 호버 효과 제거 (사용자 요청) */

/* 매우 좁은 화면(모바일)에선 세로로 쌓이게 */
@media (max-width: 560px) {
  .problems__images {
    flex-direction: column;
    align-items: center;
  }
  .problem-img {
    flex: 0 0 auto;
    width: 100%;
  }
}


/* ============================================================
 * Section 3 — QUESTION (Figma 89:5460, 1920×986)
 * 배경 이미지 (1710×986, x:105) + 다크 오버레이 + 3 Problem 카드
 * Figma 내부 padding: 200 top / 320 sides / 260 bottom (inner = 1280)
 * ============================================================ */
.question {
  position: relative;
  /* Figma padding 200 top / 260 bottom 비례 */
  padding-block: clamp(80px, 13.9vw, 200px) clamp(100px, 18.05vw, 260px);
  min-height: clamp(480px, 68.5vw, 986px);
  margin-top: -1px;                  /* sub-pixel gap 방지 (Section 2와 흰 줄 안 보이게) */
  display: flex;
  align-items: center;
  color: #fff;
  overflow: hidden;
}


.question__bg,
.question__overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
}

/* Figma image 188 — 1710×986 at x:105 (살짝 우측으로 치우침)
   web에선 center로 두고 cover 사용 (전체 영역 채움) */
.question__bg {
  background-image: url('assets/section3-bg.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  width: 100%;
  height: 100%;
}

/* Section 3 오버레이 — Figma 그라데이션 매칭
   상단: Section 2(#00030A) 와 매끄럽게 연결되도록 1.0 시작
   하단: Section 4 (white) 와 자연 전환 — Figma의 dark→white 그라데이션 적용 */
.question__overlay {
  background: linear-gradient(
    180deg,
    rgba(0, 3, 10, 1) 0%,
    rgba(0, 3, 10, 0.85) 30%,
    rgba(0, 3, 10, 0.5) 69%,
    rgba(255, 255, 255, 0.5) 85%,
    rgba(255, 255, 255, 1) 98%
  );
}

.question__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;                  /* Figma inner content */
  margin-inline: auto;
  padding-inline: clamp(20px, 4vw, 32px);   /* container 의 80px 보다 작게 → 내부 폭 더 넓어짐 */
}

.question__header {
  text-align: center;
  margin-bottom: clamp(40px, 5.56vw, 80px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 1.11vw, 16px);
}

/* Figma 89:5468 — 80×6 #BA1A1A pill divider 아래 강조 */
.question__divider {
  display: block;
  width: clamp(48px, 5.56vw, 80px);
  height: clamp(4px, 0.42vw, 6px);
  border-radius: 9999px;
  background: #BA1A1A;
  margin-top: clamp(8px, 1.11vw, 16px);
}

/* Figma style_8TJJ96: Pretendard Medium 48/60, letter-spacing -3.75%, center, #FFFFFF */
.question__header h2 {
  font-family: var(--font-kr);
  font-size: clamp(24px, calc(2.14vw + 17.14px), 48px);
  font-weight: 500;                  /* Figma Medium 500 */
  line-height: 1.25;                 /* Figma 60/48 */
  letter-spacing: -0.0375em;         /* Figma -3.75% 정확 */
  color: #FFFFFF;
  margin: 0;
  word-break: keep-all;
}

/* Figma style_EE8HPP: Pretendard Medium 32/40, letter-spacing -5.62%, #C0C0C0 */
.question__header p {
  font-family: var(--font-kr);
  font-size: clamp(16px, calc(1.43vw + 11.43px), 32px);
  font-weight: 500;
  line-height: 1.25;                 /* Figma 40/32 */
  letter-spacing: -0.0562em;         /* Figma -5.62% */
  color: #C0C0C0;                    /* Figma fill_Q6YA4U */
  margin: 0;
  word-break: keep-all;
}

.problem-cards {
  display: grid;
  /* minmax(0, 1fr)로 항상 3열 유지하며 동시 축소 */
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.67vw, 24px);
}

/* Figma fill_04HR0Z: rgba(0,0,0,0.6) 다크 글래스
   fill_V3VT9I: linear-gradient(white → #999) gradient border
   effect_H7KMMU: box-shadow 0 24 48 rgba(10,37,64,0.06) */
/* Figma layout_8JDXWF: column, gap 16, padding 40, sizing fill, radius 16
   fill_QVUY8H rgba(0,0,0,0.6), stroke gradient, effect_VIMGLR box-shadow */
.problem-card {
  position: relative;
  background: rgba(0, 0, 0, 0.6);             /* Figma fill_QVUY8H */
  border-radius: 16px;
  padding: clamp(16px, 2.78vw, 40px);          /* Figma 40 */
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 1.11vw, 16px);               /* Figma gap 16 */
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 24px 48px rgba(10, 37, 64, 0.06);   /* Figma effect_VIMGLR */
  transition: transform var(--transition-base);
  min-width: 0;
}

/* Gradient border (Figma fill_V3VT9I) — 1px linear-gradient stroke */
.problem-card::before {
  content: '';
  position: absolute;
  inset: 0;
  padding: 1px;                       /* 테두리 두께 */
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(153, 153, 153, 1) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.problem-card:hover {
  transform: translateY(-6px);
  background: rgba(0, 0, 0, 0.5);
}

/* Figma layout_GN14HH: 56×56, radius 12, bg #FFFFFF (fill_K3A5YM) */
.problem-card__icon {
  width: clamp(32px, 3.89vw, 56px);
  height: clamp(32px, 3.89vw, 56px);
  border-radius: 12px;
  background: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #BA1A1A;                              /* Figma fill_9H3MND */
  flex-shrink: 0;
  margin: 0;                                    /* gap이 spacing 담당 */
}

/* Figma 아이콘 ~22~28px (카드마다 약간 다름) */
.problem-card__icon svg,
.problem-card__icon img {
  width: clamp(14px, 1.94vw, 28px);
  height: clamp(14px, 1.94vw, 28px);
  object-fit: contain;
}

/* Figma style_OO5FUC: Pretendard Medium 24/28 #FFFFFF, padding-top 16 (layout_6JALVI) */
.problem-card__title {
  font-family: var(--font-kr);
  font-size: clamp(13px, calc(0.98vw + 9.86px), 24px);
  font-weight: 500;
  line-height: 1.167;                /* Figma 28/24 */
  color: #FFFFFF;
  margin: 0;
  padding-top: clamp(8px, 1.11vw, 16px);  /* Figma layout_6JALVI: padding 16 0 0 */
  word-break: keep-all;
}

/* Figma style_1A9DYR: Pretendard Medium 16/26 #E9E9E9, padding-bottom 8 (layout_OAU87N) */
.problem-card__desc {
  font-family: var(--font-kr);
  font-size: clamp(10px, calc(0.54vw + 8.27px), 16px);
  font-weight: 500;
  line-height: 1.625;                /* Figma 26/16 */
  color: #E9E9E9;                    /* Figma fill_JVJBVQ */
  margin: 0;
  padding-bottom: 8px;
  word-break: keep-all;
}

/* Figma style_BTZTQR: Pretendard Medium 20/20 #F23737 */
.problem-card__highlight {
  font-family: var(--font-kr);
  font-size: clamp(11px, calc(0.8vw + 8.43px), 20px);
  font-weight: 500;
  line-height: 1;                    /* Figma 20/20 */
  color: #F23737;                    /* Figma fill_EQWE85 */
  margin: 0;
  word-break: keep-all;
}

/* 매우 좁은 화면(480px 이하)에서만 1열로 떨어짐 */
@media (max-width: 480px) {
  .problem-cards {
    grid-template-columns: 1fr;
  }
}


/* ============================================================
 * Section 4 — TRANSITION CTA (Figma 89:5500, 1920×824)
 * 배경 이미지 + 흰 그라데이션 오버레이 (위는 흰색 → 중간부터 투명)
 * Figma 콘텐츠 padding: 100 top/bottom, gap 400 (title↔tags)
 * ============================================================ */
.transition {
  position: relative;
  width: 100%;
  min-height: clamp(420px, 57.2vw, 824px);
  overflow: hidden;
  isolation: isolate;
  background: #fff;
}

/* 배경 이미지 — Figma 89:5501 image 189: 1451×634 width 76%
   물방울이 부제 아래 여백에 더 내려와 보이도록 음수 offset 적용 */
.transition__bg {
  position: absolute;
  inset: 0;
  background-image: url('assets/section4-bg.png');
  background-size: 76% auto;
  /* 이미지를 section 하단보다 더 아래로 살짝 밀어내어 물방울이 더 아래쪽에 보이게 */
  background-position: center calc(100% + clamp(40px, 8vw, 120px));
  background-repeat: no-repeat;
  z-index: -2;
  filter: saturate(1.3) brightness(0.96);
}

/* Figma Rectangle 1025: linear-gradient(180deg, white 23% → transparent 57%)
   상단 흰색(텍스트 영역), 중간부터 transparent(물방울 노출), 하단은 자연스럽게 */
.transition__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 1) 23%,
    rgba(255, 255, 255, 0) 57%
  );
}

/* 콘텐츠 영역 — title 위쪽 + tags 아래쪽 큰 간격 */
.transition__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding: clamp(60px, 6.94vw, 100px) clamp(20px, 4vw, 32px);
  display: flex;
  flex-direction: column;
  align-items: center;
  /* title↔tags 사이 간격 — Figma 400 → viewport 비례 */
  gap: clamp(60px, 27.8vw, 400px);
  text-align: center;
}

/* Title group (title + sub) */
.transition__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(20px, 2.22vw, 32px);
}

/* Figma style_K2JZ6S: Pretendard Bold 60/120% (line-height 72), letter-spacing -4%, center */
.transition__title {
  font-family: var(--font-kr);
  font-size: clamp(28px, calc(2.86vw + 18.86px), 60px);
  font-weight: 700;
  line-height: 1.2;                  /* Figma 120% */
  letter-spacing: -0.04em;
  color: #000000;
  margin: 0;
  word-break: keep-all;
}

/* "수질?" 부분 — Figma ts1 fills: linear-gradient(90deg, #3BA6FF → #00213D) text gradient */
.transition__emphasis {
  background: linear-gradient(90deg, #3BA6FF 0%, #00213D 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* Figma style_9WG2A5: Pretendard Regular 36/48, letter-spacing -6.67%, color #555555 */
.transition__sub {
  font-family: var(--font-kr);
  font-size: clamp(18px, calc(1.61vw + 12.86px), 36px);
  font-weight: 400;
  line-height: 1.333;                /* Figma 48/36 */
  letter-spacing: -0.0667em;         /* Figma -6.67% 정확 */
  color: #555555;                    /* Figma fill_LPF7QO */
  margin: 0;
  word-break: keep-all;
  text-align: center;
}

/* Figma ts2: Bold + #006DC8 — "도와드립니다." 파랑 강조 */
.transition__sub strong {
  font-weight: 700;
  color: #006DC8;
}

/* Figma style_FKQDNS: Pretendard Regular 32/48, letter-spacing -7.5%, color #364557 */
.transition__hashtags {
  font-family: var(--font-kr);
  font-size: clamp(16px, calc(1.43vw + 11.43px), 32px);
  font-weight: 400;
  line-height: 1.5;                  /* Figma 48/32 */
  letter-spacing: -0.075em;          /* Figma -7.5% */
  color: #364557;                    /* Figma fill_OUKI3P */
  margin: 0;
  text-align: center;
  word-break: keep-all;
}


/* ============================================================
 * Section 5 — ABOUT BLOS (Figma 89:5509 Frame 107)
 * 배경 #F5F9FA / 중앙 정렬 / 헤딩 60 + 부제 36 + 이미지 711×435
 * Figma layout_FC2N5O: padding 80px top/bottom
 * ============================================================ */
.about {
  position: relative;
  background: #F5F9FA;
  /* viewport에 비례 — 모바일 24 ~ 데스크톱 80 */
  padding-block: clamp(24px, 5.56vw, 80px);
  overflow: hidden;
}

/* Figma layout_FC2N5O: padding 80 (section padding이 담당), gap 10 (heading group ↔ image)
   매우 작은 gap — 시각 여백은 section padding-block 80 에서 옴 */
.about__content {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 2.22vw, 32px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 0.69vw + 4.79px, 10px);   /* Figma gap 10 */
  text-align: center;
}

/* Heading 그룹 — title↔subtitle gap viewport 비례 */
.about__heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(10px, 2.22vw, 32px);
}

/* Figma style_HRFN2I: Pretendard Bold 60/72, letter-spacing -4%, color #000 */
.about__title {
  font-size: clamp(28px, calc(2.86vw + 18.86px), 60px);
  font-weight: 700;
  font-family: var(--font-kr);
  line-height: 1.2;
  letter-spacing: -0.04em;
  color: #000000;
  margin: 0;
}

/* Figma style_77A9HW: Pretendard Regular 36/48, letter-spacing -6.67%, color #555 */
.about__sub {
  font-size: clamp(18px, calc(1.61vw + 12.86px), 36px);
  font-weight: 400;
  font-family: var(--font-kr);
  line-height: 1.333;
  letter-spacing: -0.067em;
  color: #555555;
  margin: 0;
}

/* 제품 이미지 — viewport에 비례 (Figma 712 max, 모바일 240부터)
   여백과 이미지가 함께 비례 축소 */
.about__image {
  width: clamp(220px, 49.4vw, 712px);   /* Figma 712/1440 = 49.4% */
  aspect-ratio: 708 / 424;
  border-radius: clamp(12px, 1.39vw, 20px);
  overflow: hidden;
  background: #fff;
  transition: transform var(--transition-base), box-shadow var(--transition-base);
}

.about__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.about__image:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.08);
}


/* ============================================================
 * Section 6 — DASHBOARD DEMO
 * Figma 원본: 1920×1080, 풀블리드 배관 사진 + 위→아래 그라데이션
 * (위쪽은 완전 흰색, 아래로 갈수록 배관 사진이 점점 드러남)
 * ============================================================ */
.dashboard {
  position: relative;
  width: 100%;
  /* Figma layout_0VJ44S: padding 80 40 */
  padding-block: clamp(40px, 5.56vw, 80px);
  padding-inline: clamp(16px, 2.78vw, 40px);
  /* Figma 1920×1080 비율 정확 (1080/1920 = 56.25%) */
  min-height: clamp(520px, 56.25vw, 1080px);
  overflow: hidden;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.dashboard__bg,
.dashboard__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;     /* 컨테이너보다 아래 */
}

.dashboard__bg {
  background-image: url('assets/section6-bg.png');
  background-size: cover;
  background-position: center;
  filter: grayscale(100%);   /* 배관 사진을 흑백으로 (Figma 매칭) */
}

/* Figma 원본 그라데이션 그대로:
   위는 흰색 → 아래로 갈수록 배관 사진이 드러남 */
.dashboard__overlay {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 1) 0%,
    rgba(255, 255, 255, 1) 28%,
    rgba(255, 255, 255, 0.7) 77%,
    rgba(255, 255, 255, 0.3) 100%
  );
}

/* Figma layout_XH2KDH (header): column, gap 16, fill horizontal
   layout_IBW68B (parent): column align center, gap 24 (header↔device) */
.dashboard__header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(8px, 1.11vw, 16px);
  text-align: center;
  margin-bottom: clamp(16px, 1.67vw, 24px);   /* Figma layout_IBW68B gap 24 */
}

/* Figma style_Q3WRXD: Inter Semi Bold 14/20, letter-spacing 10%, CENTER, #4B4B4B */
.dashboard__header .t-label {
  font-family: var(--font-en);
  font-size: clamp(11px, calc(0.27vw + 10.14px), 14px);
  font-weight: 600;
  line-height: 1.428;                /* Figma 20/14 */
  letter-spacing: 0.1em;             /* Figma 10% 정확 (이전 5%) */
  color: #4B4B4B;                    /* Figma fill_I1F8P8 */
  text-transform: uppercase;
  margin: 0;
  display: inline-block;
}

/* Figma style_YNJRVA: Pretendard Bold 36/40, letter-spacing -5%, #000000 */
.dashboard__header h2 {
  font-family: var(--font-kr);
  font-size: clamp(22px, calc(1.25vw + 18px), 36px);
  font-weight: 700;
  line-height: 1.111;                /* Figma 40/36 */
  letter-spacing: -0.05em;
  color: #000000;
  margin: 0 0 8px 0;                  /* Figma gap 8 between h2 and sub */
  word-break: keep-all;
}

/* Figma style_3LBBIL: Pretendard Regular 16/24, letter-spacing -11.25%, #000000 */
.dashboard__header p {
  font-family: var(--font-kr);
  font-size: clamp(13px, calc(0.27vw + 12.14px), 16px);
  font-weight: 400;
  line-height: 1.5;                  /* Figma 24/16 */
  letter-spacing: -0.1125em;
  color: #000000;
  margin: 0;
}

/* ============================================================
 * Dashboard Stage — 디바이스 카드 + 좌우 화살표 컨테이너
 * 컨테이너 밖, 화면 전체 너비 (100%)
 * ============================================================ */
.dash-stage {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 0;
  flex-grow: 1;
}

/* ── 디바이스 카드 — Figma layout_SM1JQH 정확: width 608.43 fixed, height fill, radius 16
   슬라이드별 다른 이미지 비율 처리 */
.dash-device {
  position: relative;
  z-index: 1;
  --dh: min(788px, 60vw);
  height: var(--dh);
  width: calc(var(--dh) * 1440 / 1865);      /* 기본: 슬라이드 0 (다크 admin) 비율 */
  max-width: min(608px, 88vw);                /* Figma 608.43 max */
  border-radius: 16px;                         /* Figma radius 16 */
  overflow: hidden;
  background: #0E1112;
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 0.18),
    0 4px 12px rgba(0, 0, 0, 0.08);
  transition: width 520ms cubic-bezier(0.22, 1, 0.36, 1);
}

/* 슬라이드별 너비 (각 이미지 원본 비율 그대로) */
.dash-device[data-slide="0"] {
  width: calc(var(--dh) * 1440 / 1865);   /* dashboard.png 비율 */
}
.dash-device[data-slide="1"] {
  width: calc(var(--dh) * 887 / 1576);    /* dashboard-hotel.png 비율 */
}

.dash-device__track {
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.dash-device__slide {
  flex: 0 0 100%;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dash-device__slide img {
  width: 100%;
  height: 100%;
  display: block;
  /* contain: 어떤 경우에도 잘림 방지 (컨테이너 비율이 이미지와 일치하므로 여백도 0) */
  object-fit: contain;
  object-position: center;
}

.dash-device__slide:nth-child(1) { background: #0E1112; }  /* 다크 admin */
.dash-device__slide:nth-child(2) { background: #F5F9FA; }  /* 학교 사이니지 */

/* ── 좌/우 화살표 (Figma: 48px 흰 원형 + 검정 chevron)
       절대 위치로 stage 좌·우 끝에 부착 (디바이스 카드와 멀리 떨어짐) ── */
.dash-arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: transform var(--transition-base), filter var(--transition-base);
  filter: drop-shadow(0 6px 16px rgba(0, 0, 0, 0.18));
}

.dash-arrow:hover {
  transform: translateY(-50%) scale(1.1);
  filter: drop-shadow(0 8px 22px rgba(0, 0, 0, 0.28));
}

.dash-arrow:active {
  transform: translateY(-50%) scale(0.96);
}

.dash-arrow:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.dash-arrow svg {
  width: 48px;
  height: 48px;
  display: block;
}

/* viewport 양 끝에 가깝게 (반응형으로 32~80px) */
.dash-arrow--prev {
  left: clamp(16px, 4vw, 80px);
  transform: translateY(-50%);
}

.dash-arrow--next {
  right: clamp(16px, 4vw, 80px);
  transform: translateY(-50%);
}

/* ── 도트 인디케이터 (디바이스 아래) ── */
.dash-stage__dots {
  position: absolute;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 2;
}

.dash-stage__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.25);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: width var(--transition-base), background var(--transition-base);
}

.dash-stage__dot:hover {
  background: rgba(0, 0, 0, 0.5);
}

.dash-stage__dot.is-active {
  width: 24px;
  border-radius: 4px;
  background: var(--color-text);
}

/* ── 반응형 ── */
@media (max-width: 900px) {
  .dash-stage {
    padding: 24px 0;
  }
  .dash-arrow {
    width: 42px;
    height: 42px;
  }
  .dash-arrow svg {
    width: 42px;
    height: 42px;
  }
}

@media (max-width: 560px) {
  .dash-stage {
    padding: 16px 0;
  }
  .dash-arrow {
    width: 36px;
    height: 36px;
  }
  .dash-arrow svg {
    width: 36px;
    height: 36px;
  }
}


/* ============================================================
 * Section 7 — FEATURES (Figma 89:5528 Frame 107)
 * 배경: section7-bg.png (수도꼭지+물 이미지) — Figma imageRef ab842abc...
 * 좌측 white 오버레이(0.8 opacity)로 텍스트 가독성 확보,
 * 우측은 transparent로 이미지가 그대로 보임
 * padding: 80 196 (Figma layout_L5VOQR)
 * ============================================================ */
.features {
  position: relative;
  padding-block: clamp(40px, 5.56vw, 80px);
  padding-inline: clamp(16px, 13.6vw, 196px);
  /* Figma 비율 1920:942 ≈ 49% — viewport에 비례한 최소 높이 */
  min-height: clamp(400px, 49vw, 942px);
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
}

.features::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url('assets/section7-bg.png');
  background-size: cover;
  background-position: center;
}

.features::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  /* Figma fill_PLNRV4: linear-gradient(-90deg, transparent 7% → rgba(255,255,255,0.8) 93%)
     -90deg = "to left" 방향 → 우측 transparent, 좌측 80% 흰색
     좌측 텍스트 가독성 확보 + 우측 이미지 노출 */
  background: linear-gradient(
    to left,
    rgba(255, 255, 255, 0) 7%,
    rgba(255, 255, 255, 0.8) 93%
  );
}

/* 내부 컨테이너 — Figma layout_ERAJKO: row, gap 64
   양쪽 컬럼 균등 분배(minmax(0,1fr)) — 어느 한쪽이 0으로 짜부되지 않음 */
.features__inner {
  width: 100%;
  max-width: 1528px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(20px, 4.44vw, 64px);
}

/* LEFT 텍스트 컬럼 — 좌측 정렬, 0까지 줄어들 수 있게 min-width: 0 */
.features__text {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.22vw, 32px);
  min-width: 0;
  text-align: left;
  align-items: flex-start;
}

/* "BLOS" — 더 크게 (80 → 110), Figma gradient #1A2027 → #2978DB */
.features__brand {
  font-family: var(--font-kr);
  font-size: clamp(40px, calc(6.25vw + 10px), 110px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.03em;
  text-align: left;
  background: linear-gradient(26deg, #1A2027 0%, #2978DB 78%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  display: inline-block;
  white-space: nowrap;
}

/* 헤딩 — 더 크게 (48 → 60) */
.features__title {
  font-family: var(--font-kr);
  font-size: clamp(24px, calc(3.21vw + 13.71px), 60px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.05em;
  text-align: left;
  color: #000F22;
  margin: 0;
  word-break: keep-all;
}

.features__title-accent {
  color: #278CDE;        /* Figma ts4 fill */
}

/* 부제 — 더 크게 (26 → 32) */
.features__sub {
  font-family: var(--font-kr);
  font-size: clamp(14px, calc(1.61vw + 8.85px), 32px);
  font-weight: 700;
  line-height: 1.35;
  text-align: left;
  color: #373737;
  margin: 0;
  word-break: keep-all;
}

.features__sub-light {
  font-weight: 400;       /* Figma ts5: Regular */
}

/* RIGHT 카드 — 엇갈린 staggered 2-column (Figma 696×782)
   좌측 컬럼 아래로 offset, 우측 컬럼 top 정렬 */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: clamp(16px, 1.94vw, 28px);
  width: 100%;
  max-width: 696px;
  align-items: start;
}

.feature-col {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 2.22vw, 32px);
}

/* Figma: 좌측 컬럼이 y:182 (아래로 182px) */
.feature-col--left {
  margin-top: clamp(40px, 12.64vw, 182px);
}

/* (offset 해제는 위 미디어쿼리에서 이미 처리됨) */

/* 카드 — Figma layout_KHH84N: padding 32, radius 32, gap 8
   배경: rgba(255,255,255,0.8) Figma fill_4JVWB5 (dim 80%)
   글씨 밑 여백 늘림 (padding-bottom 강조) */
.feature-card {
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid #E7E8E9;
  border-radius: clamp(20px, 2.22vw, 32px);
  /* padding-top 일반, padding-bottom 더 크게 (글씨 밑 여백 강조) */
  padding: clamp(18px, 2.22vw, 32px) clamp(18px, 2.22vw, 32px) clamp(32px, 4.44vw, 64px);
  display: flex;
  flex-direction: column;
  gap: clamp(6px, 0.55vw + 4.24px, 8px);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}
/* 호버 효과 제거 */

/* 아이콘 — 48×48 light blue bg + #2978DB icon (flex gap이 spacing 담당) */
.feature-card__icon {
  width: clamp(36px, 3.33vw, 48px);
  height: clamp(36px, 3.33vw, 48px);
  border-radius: 12px;
  background: rgba(41, 120, 219, 0.1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #2978DB;
  flex-shrink: 0;
}

/* 아이콘 호버 효과도 제거 */

.feature-card__icon svg {
  width: clamp(18px, 1.67vw, 24px);
  height: clamp(18px, 1.67vw, 24px);
}

/* 카드 제목 — Figma 26px Bold, 한 줄 유지 (overflow 방지 위해 fluid 작게 시작) */
.feature-card__title {
  font-family: var(--font-kr);
  /* 한 줄 유지를 위해 좁은 화면에선 더 작게 */
  font-size: clamp(13px, calc(1.16vw + 9px), 26px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.03em;
  margin: 0;
  color: #000F22;
  white-space: nowrap;          /* 한 줄 강제 */
  overflow: hidden;             /* 넘치면 잘림 (좁은 viewport 안전장치) */
  text-overflow: ellipsis;      /* 잘리는 부분 ... 표시 */
}

/* 카드 desc — Figma style_LIDIJG: Pretendard Regular 18/24, #43474D */
.feature-card__desc {
  font-family: var(--font-kr);
  font-size: clamp(12px, calc(0.54vw + 10.27px), 18px);
  font-weight: 400;            /* Figma Regular */
  line-height: 1.333;          /* Figma 24/18 */
  color: #43474D;              /* Figma fill_M6TYA1 */
  margin: 0;
  word-break: keep-all;
}

/* 960px 이하: 텍스트/카드 세로 stack (카드가 너무 짜부되는 것 방지) */
@media (max-width: 960px) {
  .features__inner {
    grid-template-columns: 1fr;
    gap: clamp(24px, 4.44vw, 48px);
  }
  .feature-grid {
    max-width: 100%;
  }
}

/* 480px 이하: 카드도 1열 */
@media (max-width: 480px) {
  .feature-grid {
    grid-template-columns: 1fr;
  }
  .feature-col--left { margin-top: 0; }
}


/* ============================================================
 * Section 8 — CUSTOMER CASES (Figma 89:5570 Group 103, 1739×699)
 * 배경: 학교 + BLOS 인증판 이미지 (Figma imageRef 717b2f52...)
 * 그라데이션: 225deg white 43% → transparent 70% (우상단 흰색 → 좌하단 이미지)
 * 학교 사례 4개 (별점 + 인용 + 태그) — E 대학교 제거
 * ============================================================ */
.cases {
  position: relative;
  padding-block: clamp(40px, 6.67vw, 96px);
  /* Figma 비율 1739:699 = 2.487 → height = width × 40.2% */
  min-height: clamp(380px, 40.2vw, 699px);
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
}

/* 배경 이미지 — 잘림 방지를 위해 contain + 하단 정렬
   화면이 좁아져도 전체 이미지가 잘리지 않고 보임 (위쪽은 단색 배경) */
.cases::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image: url('assets/section8-bg.png');
  background-size: 100% auto;            /* width 100%, 비율 자동 */
  background-position: center bottom;     /* 하단 고정 */
  background-repeat: no-repeat;
  background-color: #F5F9FA;              /* 이미지 외 영역 단색 */
}

.cases::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  /* 상단 흰 영역 축소 — 50% → 20% (이미지 더 잘 보이게)
     + 우상단 → 좌하단 그라데이션 */
  background:
    linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 20%, rgba(255,255,255,0) 50%),
    linear-gradient(225deg, rgba(255, 255, 255, 0.85) 30%, rgba(255, 255, 255, 0) 65%);
}

/* 좌측 정렬로 변경 (살짝 안쪽으로) */
.cases__header {
  text-align: left;
  margin-bottom: clamp(32px, 4.44vw, 64px);
  padding-left: clamp(0px, 2vw, 32px);   /* 살짝 좌측 안쪽 패딩 */
}

.cases__header .t-label {
  display: inline-block;
  margin-bottom: 16px;
  color: #4B4B4B;
}

/* 배지 — 흰 배경 + 진한 파랑 outline + 진한 파랑 글씨 (cleaner look) */
.cases__badge {
  display: inline-flex;
  align-items: center;
  gap: clamp(6px, 0.55vw + 4.24px, 8px);
  padding: clamp(6px, 0.55vw + 4.24px, 8px) clamp(12px, 0.36vw + 10.86px, 16px);
  border-radius: 9999px;
  background: #FFFFFF;                         /* 흰 배경 */
  border: 1px solid #3BA6FF;                   /* 진한 파랑 outline */
  font-family: var(--font-kr);
  font-size: clamp(11px, calc(0.27vw + 10.14px), 14px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.01em;
  color: #3BA6FF;                              /* 진한 파랑 글씨 */
  margin-bottom: clamp(12px, 1.11vw, 16px);
  white-space: nowrap;
}

.cases__badge-icon {
  width: clamp(11px, calc(0.18vw + 10.43px), 13px);
  height: clamp(10px, calc(0.18vw + 9.43px), 12px);
  color: #3BA6FF;
  flex-shrink: 0;
}

/* H2 — 좌측 정렬 */
.cases__header h2 {
  font-family: var(--font-kr);
  font-size: clamp(22px, calc(1.79vw + 16.27px), 36px);
  font-weight: 700;
  line-height: 1.11;
  letter-spacing: -0.05em;
  text-align: left;
  margin-bottom: 12px;
  color: #000000;
}

/* 부제 — 좌측 정렬 */
.cases__header p {
  font-size: clamp(13px, calc(0.27vw + 12.14px), 16px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.1125em;
  text-align: left;
  color: #555555;
}

.case-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.67vw, 24px);
}

/* 4개 카드 — 데스크톱 1줄, 태블릿 2x2, 모바일 1열 */

/* 카드 — 옅은 dimed 흰 (거의 투명) + soft shadow */
.case-card {
  background: rgba(255, 255, 255, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border-radius: var(--radius-card);
  padding: clamp(14px, 1.94vw, 28px);
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.83vw, 12px);
  min-width: 0;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 8px 24px rgba(20, 40, 100, 0.06);
}

/* 별 — Figma 디자인 네이비 블루 */
.case-card__stars {
  color: #1E3A8A;
  font-size: clamp(14px, 1.39vw, 20px);
  letter-spacing: 2px;
  line-height: 1;
}

.case-card__school {
  font-size: clamp(18px, 1.53vw, 22px);
  font-weight: 700;
  color: var(--color-text);
}

.case-card__quote {
  font-size: var(--fs-small);
  line-height: 1.65;
  color: var(--color-text-muted);
  font-style: normal;
  flex-grow: 1;
}

.case-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

/* 태그 — 파랑 outline (배경 투명) + 파랑 글씨 */
.case-card__tags span {
  font-size: clamp(10px, 0.9vw, 13px);
  font-weight: 500;
  color: #3BA6FF;
  padding: 3px 10px;
  border-radius: 6px;                   /* 알약(pill) 대신 약간 둥근 사각 */
  background: transparent;
  border: 1px solid #3BA6FF;
}

/* 480px 이하에서만 stack — 그 외엔 4열 비율 유지 */
@media (max-width: 480px) {
  .case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ============================================================
 * Section 9 — USE CASES (Figma 89:5698 Frame 1618872299)
 * 배경: 강물 이미지 + linear-gradient(180deg, white 0% → rgba(255,255,255,0.2) 70%)
 * 헤딩 36px Bold center / 4 카드를 하나의 반투명 컨테이너에 담음
 * ============================================================ */
.usecases {
  position: relative;
  /* Figma 비율 1672:758 = 0.453 → height = width × 45.3% */
  min-height: clamp(400px, 45.3vw, 758px);
  padding-block: clamp(48px, 6.67vw, 96px);
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
}

.usecases__bg,
.usecases__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.usecases__bg {
  background-image: url('assets/section9-bg.png');
  background-size: cover;
  background-position: center;
  z-index: -2;
}

/* Figma fill_O6USR0: linear-gradient(180deg, white 0% → rgba(255,255,255,0.2) 70%) */
.usecases__overlay {
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 1) 0%,
    rgba(255, 255, 255, 0.2) 70%
  );
}

.usecases__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 2.22vw, 32px);
  display: flex;
  flex-direction: column;
  align-items: center;                   /* 컨텐츠 가운데 정렬 */
  gap: clamp(32px, 4.44vw, 64px);
}

.usecases__header {
  text-align: center;
}

/* Figma style_YX0OME: Pretendard Bold 36/40, center */
/* Figma style_YX0OME: Pretendard Bold 36/40, letter-spacing -2.5% */
.usecases__title {
  font-family: var(--font-kr);
  font-size: clamp(22px, calc(1.25vw + 18px), 36px);
  font-weight: 700;
  line-height: 1.11;
  letter-spacing: -0.025em;
  text-align: center;
  color: #000000;
  margin: 0;
  word-break: keep-all;
}

/* Figma fill_UHGSGF: rgba(255,255,255,0.6) 반투명 흰 panel 복원 */
.usecases__panel {
  width: 100%;
  max-width: 1200px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.67vw, 24px);
  background: rgba(255, 255, 255, 0.6);
  border-radius: 24px;
  padding: clamp(20px, 2.78vw, 40px);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06);
}

.usecase-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  transition: transform var(--transition-base), box-shadow var(--transition-base);
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.usecase-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.1);
}

.usecase-card__img {
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #eee;
}

.usecase-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms var(--transition-base);
}

.usecase-card:hover .usecase-card__img img {
  transform: scale(1.06);
}

.usecase-card__body {
  padding: clamp(12px, 1.67vw, 24px);
}

/* Pretendard Bold, 색상 검정, 자간 음수 (한글 친화) */
.usecase-card__title {
  font-family: var(--font-kr);
  font-size: clamp(14px, calc(0.54vw + 12.27px), 20px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.025em;
  margin-bottom: clamp(6px, 0.55vw + 4.24px, 8px);
  color: #000000;
}

.usecase-card__desc {
  font-family: var(--font-kr);
  font-size: clamp(11px, calc(0.27vw + 10.14px), 14px);
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: #555555;
  word-break: keep-all;
}

/* 480px 이하에서만 2x2로 떨어짐 — 그 외엔 4열 비율 축소 유지 */
@media (max-width: 480px) {
  .usecases__panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ============================================================
 * Section 10 — BEFORE / AFTER
 * 좌(Before) / 우(After) 대비
 * ============================================================ */
.ba {
  position: relative;
  padding-block: clamp(40px, 5.56vw, 80px);
  /* Figma 1440:811 비율 = 56.3% — viewport 비례 */
  min-height: clamp(420px, 56.3vw, 811px);
  color: #fff;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
}

.ba__bg,
.ba__overlay {
  position: absolute;
  inset: 0;
  z-index: -1;
}

/* Figma 레이어 2장 stack:
   ① image 196 (section10-bg.png 등하교) base
   ② image 197 (section10-overlay.png 교실 활동) 살짝 offset */
.ba__bg {
  z-index: -2;
  background-image:
    url('assets/section10-overlay.png'),
    url('assets/section10-bg.png');
  background-size: cover, cover;
  background-position: center, center;
  background-repeat: no-repeat, no-repeat;
}

/* Figma fill_XQIZYM: linear-gradient(90deg, black 0% → rgba(80,80,80,0.7) 100%) */
.ba__overlay {
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.88) 0%,
    rgba(80, 80, 80, 0.65) 100%
  );
}

.ba__content {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 2.22vw, 32px);
}

.ba__header {
  text-align: center;
  margin-bottom: clamp(28px, 4.44vw, 64px);
}

.ba__header h2 {
  font-family: var(--font-kr);
  font-size: clamp(20px, calc(2.32vw + 12.57px), 36px);
  font-weight: 700;
  line-height: 1.11;
  letter-spacing: -0.04em;
  margin-bottom: 12px;
  word-break: keep-all;
}

.ba__header p {
  font-size: clamp(13px, calc(0.27vw + 12.14px), 16px);
}

/* 외곽 글라스 — 더 투명한 버전 (Figma layout_AT2TYN row gap 48) */
.ba-glass {
  width: 100%;
  max-width: 1216px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;                  /* 화살표 수직 중앙 */
  gap: clamp(8px, 3.33vw, 48px);
  padding: clamp(12px, 3.33vw, 48px);
  background: rgba(255, 255, 255, 0.02);   /* 더 투명 (5% → 2%) */
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: clamp(16px, 1.67vw, 24px);
  backdrop-filter: blur(8px);              /* blur도 더 약하게 */
  -webkit-backdrop-filter: blur(8px);
}

/* 가운데 화살표 — 수직 중앙 정렬 보장 */
.ba-arrow {
  width: clamp(36px, 3.33vw, 48px);
  height: clamp(36px, 3.33vw, 48px);
  border-radius: 9999px;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;                  /* 그리드 셀 안에서 수직 중앙 */
  color: #fff;
  flex-shrink: 0;
}

.ba-arrow svg {
  width: clamp(18px, 1.67vw, 24px);
  height: clamp(18px, 1.67vw, 24px);
}

/* AFTER wrapper — 강조용 추가 glass (Figma fill_8GSITT 0.4 검정 + 파랑 글로우) */
.ba-after-wrap {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(123, 178, 244, 0.35);
  border-radius: 20px;
  padding: clamp(4px, 0.83vw, 12px);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 0 32px rgba(41, 120, 219, 0.2);
}

/* 480px 이하에서만 세로 stack + 화살표 회전 (그 외엔 row 비율 유지) */
@media (max-width: 480px) {
  .ba-glass {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .ba-arrow svg {
    transform: rotate(90deg);
  }
}

/* 카드 자체는 투명 — 외곽 ba-glass가 배경 담당, 패딩만 fluid */
.ba-card {
  background: transparent;
  border: none;
  padding: clamp(10px, 2.22vw, 32px);
  transition: none;
  min-width: 0;
}

/* After 카드 — 단독 표시 (wrapper 없음, 깔끔한 plain) */
.ba-card--after {
  background: transparent;
  border: none;
  border-radius: 16px;
}

.ba-card__head {
  margin-bottom: clamp(14px, 1.67vw, 24px);
}

.ba-card__chip {
  display: inline-block;
  padding: 4px 12px;
  border-radius: var(--radius-pill);
  background: rgba(255, 255, 255, 0.1);
  font-family: var(--font-en);
  font-size: clamp(9px, calc(0.18vw + 8.43px), 11px);
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: clamp(8px, 1.11vw, 16px);
  color: rgba(255, 255, 255, 0.8);
}

.ba-card__chip--accent {
  background: var(--color-primary);
  color: #fff;
}

/* BEFORE chip — 빨강 (위험·문제 상황 시그널) */
.ba-card__chip--danger {
  background: #EF4444;          /* 진한 빨강 */
  color: #FFFFFF;
  border: none;
}

.ba-card__title {
  font-size: clamp(16px, calc(0.89vw + 13.14px), 26px);
  font-weight: 700;
  line-height: 1.3;
  color: #fff;
  word-break: keep-all;
}

.ba-card__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.97vw, 14px);
}

.ba-card__list li {
  position: relative;
  padding-left: clamp(20px, 1.94vw, 28px);
  font-size: clamp(12px, calc(0.36vw + 10.86px), 16px);
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.85);
  word-break: keep-all;
}

.ba-card--before .ba-card__list li::before {
  content: '✕';
  position: absolute;
  left: 0;
  top: 0;
  color: #ff6b6b;
  font-weight: 700;
}

.ba-card--after .ba-card__list li::before {
  content: '✓';
  position: absolute;
  left: 0;
  top: 0;
  color: #4ade80;
  font-weight: 700;
}

@media (max-width: 768px) {
  .ba__grid {
    grid-template-columns: 1fr;
  }
}


/* ============================================================
 * Section 11 — LEAD FORM (Figma 89:6042, 1440 wide)
 * Figma fill_SNCWRP: radial-gradient(circle at 71% 53%, #254E7C 0% → #0A2540 100%)
 * Dark navy 배경 + 흰 글씨 / 폼은 살짝 어두운 톤
 * ============================================================ */
.lead {
  background: radial-gradient(circle at 71% 53%, #254E7C 0%, #0A2540 100%);
  padding-block: clamp(64px, 6.67vw, 96px);
  padding-inline: clamp(20px, 2.22vw, 32px);
  color: #FFFFFF;
}

/* Figma layout_PQGM78: row, gap: 64, alignSelf: stretch */
.lead__inner {
  width: 100%;
  max-width: 1376px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 4.44vw, 64px);
  align-items: center;
}

/* Figma style_RARZ7Z: Pretendard Medium 48/48, letter-spacing -5%, LEFT
   "우리 학교 BLOS 도입," white / "편하게 문의해보세요" #3BA6FF (ts8) */
.lead__title {
  font-family: var(--font-kr);
  font-size: clamp(24px, calc(2.14vw + 17.14px), 48px);
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.05em;
  text-align: left;
  color: #FFFFFF;
  margin: 0 0 clamp(16px, 1.67vw, 24px) 0;
  word-break: keep-all;
}

.lead__title-accent {
  color: #3BA6FF;     /* Figma ts8 */
}

/* Figma 89:6048 Button: stroke #FFFFFF 1px, radius 20, padding 16 32
   style_OSY6PA: Pretendard Medium 18/28, white text */
.btn-text {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: clamp(10px, 1.11vw, 16px) clamp(18px, 2.22vw, 32px);
  border: 1px solid #FFFFFF;
  border-radius: 20px;
  background: transparent;
  color: #FFFFFF;
  font-family: var(--font-kr);
  font-size: clamp(14px, calc(0.36vw + 12.86px), 18px);
  font-weight: 500;
  line-height: 1.555;
  letter-spacing: -0.01em;
  transition: background var(--transition-base), transform var(--transition-base), color var(--transition-base);
  white-space: nowrap;
}

.btn-text:hover {
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-2px);
}

/* Figma layout_BTK8ND: padding 40 40 56, gap 32, radius 16, bg #FFFFFF */
.lead-form {
  background: #FFFFFF;
  border-radius: 16px;
  padding: clamp(24px, 2.78vw, 40px) clamp(20px, 2.78vw, 40px) clamp(32px, 3.89vw, 56px);
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25);
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 2.22vw, 32px);
}

/* Figma style_26E8LJ: Pretendard Medium 24/32, center, #000F22 */
.lead-form__title {
  font-family: var(--font-kr);
  font-size: clamp(18px, calc(0.54vw + 16.27px), 24px);
  font-weight: 500;
  line-height: 1.333;
  text-align: center;
  margin-bottom: clamp(20px, 2.22vw, 32px);
  color: #000F22;
}

.lead-form__field {
  display: block;
  border: none;
  padding: 0;
  margin: 0;
}

/* Figma style_E1NANQ: Pretendard Medium 14/20 — fluid 11~14 */
.lead-form__label {
  display: block;
  font-family: var(--font-kr);
  font-size: clamp(11px, calc(0.27vw + 10.14px), 14px);
  font-weight: 500;
  line-height: 1.428;
  margin-bottom: clamp(6px, 0.55vw + 4.24px, 8px);
  color: #000F22;
}

/* Figma layout_RY9260: padding 14 16, bg #F8FAFC, radius 8 — fluid */
.lead-form__input {
  width: 100%;
  padding: clamp(10px, calc(0.36vw + 8.86px), 14px) clamp(12px, calc(0.36vw + 10.86px), 16px);
  border: 1px solid transparent;
  border-radius: 8px;
  font-family: var(--font-kr);
  font-size: clamp(13px, calc(0.27vw + 12.14px), 16px);
  background: #F8FAFC;
  color: #000F22;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}

.lead-form__input::placeholder {
  /* Figma style_7WYQHP: Inter Regular 16, #6B7280 — fluid */
  font-family: 'Inter', var(--font-kr);
  font-size: clamp(13px, calc(0.27vw + 12.14px), 16px);
  font-weight: 400;
  color: #6B7280;
}

.lead-form__input:focus {
  outline: none;
  border-color: #3BA6FF;
  box-shadow: 0 0 0 3px rgba(59, 166, 255, 0.15);
}

/* Figma layout_4BTGNG: row, gap 9, hug — fluid 6~9 */
.role-options {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 0.36vw + 4.86px, 9px);
}

.role-chip {
  position: relative;
  cursor: pointer;
}

.role-chip input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

/* Figma layout_CJSFIO: padding 4 12, radius 100 (pill)
   style_UB34V2: Pretendard Medium 16/24 — fluid 12~16 */
.role-chip span {
  display: inline-block;
  padding: clamp(4px, 0.36vw + 2.86px, 6px) clamp(10px, 0.45vw + 8.57px, 14px);
  border: 1px solid #3BA6FF;
  border-radius: 100px;
  background: #F8FAFC;
  font-family: var(--font-kr);
  font-size: clamp(12px, calc(0.36vw + 10.86px), 16px);
  font-weight: 500;
  line-height: 1.5;
  color: #3BA6FF;
  transition: all var(--transition-base);
  white-space: nowrap;
}

/* 호버 — 더 진한 파랑 배경 + 흰 글씨 (selected 직전 단계) */
.role-chip:hover span {
  background: #2E8DD4;            /* selected 보다 살짝 어둡지 않게 — selected와 동일 톤 */
  border-color: #2E8DD4;
  color: #FFFFFF;
}

/* Selected: bg #3BA6FF + white text */
.role-chip input:checked + span {
  background: #3BA6FF;
  border-color: #3BA6FF;
  color: #FFFFFF;
}

/* Selected 상태에서도 hover 시 더 진하게 */
.role-chip input:checked + span:hover,
.role-chip:hover input:checked + span {
  background: #1E7AC2;            /* selected hover — 더 진한 파랑 */
  border-color: #1E7AC2;
}

.role-chip input:focus-visible + span {
  box-shadow: 0 0 0 3px rgba(59, 166, 255, 0.3);
}

.lead-form__note {
  font-size: clamp(11px, calc(0.18vw + 10.43px), 13px);
  color: #6B7280;
  margin: 0;
  text-align: left;
}

.lead-form__submit {
  width: 100%;
  justify-content: center;
}

.btn--dark {
  background: var(--color-text);
  color: #fff;
}

.btn--dark:hover {
  background: #2b3033;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.18);
}

/* 좁은 화면 — 세로 stack (Figma 데스크톱 row → 모바일 column) */
@media (max-width: 768px) {
  .lead__inner {
    grid-template-columns: 1fr;
    gap: clamp(24px, 4.44vw, 40px);
  }
  .lead__title {
    text-align: center;
  }
  .lead__header {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
}


/* ============================================================
 * Section 12 — FOOTER (Figma 89:5790)
 * 배경 #262626, 로고 + 메타 모두 가운데 정렬
 * ============================================================ */
.footer {
  background: #262626;
  color: rgba(255, 255, 255, 0.75);
  padding-block: clamp(20px, 2.22vw, 32px);
  padding-inline: clamp(16px, 4vw, 80px);
}

.footer__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(12px, 1.67vw, 20px);
  text-align: center;
}

.footer__logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.footer__logo img {
  height: clamp(28px, 2.92vw, 42px);
  width: auto;
  display: block;
  /* 다크 배경 위에서 흰색 GEOGRID 로고가 잘 보이도록 (이미 흰 부분 포함) */
  filter: brightness(0) invert(1);
}

.footer__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(12px, 1.67vw, 24px);
  font-size: clamp(11px, calc(0.18vw + 10.43px), 13px);
  color: rgba(255, 255, 255, 0.7);
}

.footer__meta a {
  color: rgba(255, 255, 255, 0.85);
  transition: color var(--transition-base);
}

.footer__meta a:hover {
  color: #fff;
}


/* ============================================================
 * Floating CTA — 우측 하단 플로팅 상담문의 버튼
 * 기본 숨김. .is-visible 가 붙으면 부드럽게 등장.
 * ============================================================ */
.floating-cta {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 100;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  border-radius: var(--radius-pill);
  background: var(--color-text);  /* 어두운 배경 (대비 강조) */
  color: #fff;
  font-family: var(--font-kr);
  font-weight: 600;
  font-size: var(--fs-small);
  line-height: 1;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
  /* 기본 숨김 상태: 투명 + 살짝 아래로 내려가 있음 + 클릭 방지 */
  opacity: 0;
  transform: translateY(16px);
  pointer-events: none;
  transition:
    opacity 320ms var(--transition-base),
    transform 320ms var(--transition-base),
    background var(--transition-base);
}

.floating-cta.is-visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.floating-cta:hover {
  background: #2b3033;
  transform: translateY(-2px);
}

.floating-cta svg {
  flex-shrink: 0;
}

/* 모바일에선 아이콘만 (텍스트 숨김)
   화면 좁을 때 손가락 누르기 좋게 원형으로 */
@media (max-width: 640px) {
  .floating-cta {
    padding: 14px;
    border-radius: 50%;
  }
  .floating-cta span {
    display: none;
  }
}

