@charset "UTF-8";
/**
 * ==============================================================================
 * File Name: common.scss
 * Description: 프로젝트 전역 공통 스타일 진입점 (Global Entry Point)
 * Unit Rule: Layout(rem), Font/Border(px) -> 1rem = 10px 기준
 * Note: Load 순서(Cascade)가 스타일 우선순위를 결정하므로 순서 변경 금지
 * ==============================================================================
 */
/**
 * ==============================================================================
 * Directory: /abstracts
 * File Name: _index.scss
 * Description: Sass Module System의 통합 로드 파일 (Forwarding)
 * Usage: 다른 파일에서 @use '../abstracts' as *; 를 통해 이 파일의 모든 내용을 사용함
 * ==============================================================================
 */
/**
 * ==============================================================================
 * File Name: _variables.scss
 * Description: 프로젝트 전역 변수 및 테마 정의
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 0. Layout
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 1. Color Palette (Static Variables)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 2. Typography (Sass Tokens)
 * - 숫자 토큰(=전역 공용) + semantic(alias) 토큰 구조
 * ------------------------------------------------------------------------------ */
/* 소셜 버튼용 OS 폰트 스택 (웹폰트 추가 로드 없음) */
/* 2-1. Font size scale (1rem=10px 전제) */
/* 2-2. Semantic aliases */
/* ------------------------------------------------------------------------------
 * 3. Radius
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 4. Z-index Hierarchy
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 5. Shadow (px 유지 권장)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 6. CSS Custom Properties (Theme Mapping)
 * - :root에 매핑하여 런타임 테마/JS 연동 가능
 * ------------------------------------------------------------------------------ */
:root {
  /* Primary */
  --primary: #FF66CC;
  --primary-50: #FFF1FB;
  --primary-100: #FFE3F7;
  --primary-200: #FFAEE6;
  --primary-300: #FF66CC;
  --primary-400: #FF38BB;
  --primary-500: #FF00A7;
  --primary-600: #F500A1;
  --primary-700: #DC0098;
  --primary-800: #C40192;
  --primary-900: #A7007C;
  --primary-dark: rgb(255, 66.3, 192.1);
  --primary-light: rgba(255, 102, 204, 0.1);
  /* Secondary */
  --secondary: #A4EBF2;
  --secondary-50: #DAF7FA;
  --secondary-100: #A4EBF2;
  --secondary-200: #6EDFEA;
  --secondary-300: #3AD0E1;
  --secondary-400: #0BC6DA;
  --secondary-500: #00BCD4;
  --secondary-600: #00AABF;
  --secondary-700: #0093A2;
  --secondary-800: #007E89;
  --secondary-900: #005B5D;
  /* Gray */
  --gray-50: #F9F9F9;
  --gray-100: #F7F7F7;
  --gray-200: #F0F0F0;
  --gray-300: #E0E0E0;
  --gray-400: #C8C8C8;
  --gray-500: #ADADAD;
  --gray-600: #838383;
  --gray-700: #6B6B6B;
  --gray-800: #404040;
  --gray-900: #2B2B2B;
  --gray-dark: rgb(38.7, 38.7, 38.7);
  --gray-light: rgba(43, 43, 43, 0.1);
  /* System */
  --error: #EE443F;
  --success: #2ECC71;
  /* Background */
  --bg-page: #ffffff;
  --bg-app: #FAF7F9;
  --bg-element: #F7F7F7;
  /* Text */
  --text-primary: #2B2B2B;
  --text-body: #404040;
  --text-sub: #838383;
  --text-caption: #ADADAD;
  /* Border */
  --border-default: #DDDDDD;
  --divider: #F2F2F2;
  /* Gutter */
  --page-gutter: 1.6rem;
  /*
   * ============================================================================
   * Safe Area 설정
   * ----------------------------------------------------------------------------
    * iOS (html[data-os="ios"])
    * - env(safe-area-inset-bottom) 신뢰 가능 → env 값만 사용
    * - 디자인 추가 패딩은 0(=env 그대로)
    *
    * Android WebView (html[data-os="aos"])
    * - env(safe-area-inset-bottom)이 0/불안정한 케이스가 많아 CSS만으로 정확한 보정이 어려움
    * - 네이티브 WindowInsets 주입이 불가(또는 미적용)한 환경을 전제로 최소 여백을 고정값으로 적용
    * - 일부 기기에서 여백 과/부족이 있을 수 있으나 footer 겹침/클릭 불가 등 레이아웃 깨짐 방지를 우선
   * ============================================================================
   */
  --aos-safe-padding: 1.2rem; /* Android 고정 패딩 */
}

/**
 * ==============================================================================
 * Directory: /abstracts
 * File Name: _index.scss
 * Description: Sass Module System의 통합 로드 파일 (Forwarding)
 * Usage: 다른 파일에서 @use '../abstracts' as *; 를 통해 이 파일의 모든 내용을 사용함
 * ==============================================================================
 */
/**
 * ==============================================================================
 * File Name: _mixins.scss
 * Description: 재사용 가능한 스타일 패턴 및 헬퍼 함수 모음
 * Usage: @include mixin-name(params...);
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Layout & Positioning (레이아웃 및 배치)
 * ------------------------------------------------------------------------------ */
/* Flexbox */
/**
 * Absolute Positioning (중앙 정렬)
 * 부모 요소에 position: relative 필요
 */
/* ------------------------------------------------------------------------------
 * 2. Typography (텍스트 처리)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 3. Mobile & Interaction (모바일 및 인터랙션)
 * ------------------------------------------------------------------------------ */
/**
 * Touch Area Extension
 * 시각적 크기는 유지하되, 터치 영역만 확장 (가상요소 ::after 사용)
 * @param $size: 최소 터치 영역 크기 (기본값: 44px)
 * @param $debug: 영역 시각화 여부 (기본값: false)
 */
/**
 * Scrollbar Custom
 * Webkit 브라우저용 스크롤바 커스텀
 */
/* ------------------------------------------------------------------------------
 * 4. Safe Area (디바이스별 분기)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 5. Breakpoints (반응형)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 6. Accessibility (접근성)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 7. Component Patterns (공통 컴포넌트 스타일)
 * ------------------------------------------------------------------------------ */
/**
 * Input Base Style
 * (Input, Select, Datepicker 등 폼 요소 공통 스타일)
 */
/**
 * ==============================================================================
 * Directory: /abstracts
 * File Name: _index.scss
 * Description: Sass Module System의 통합 로드 파일 (Forwarding)
 * Usage: 다른 파일에서 @use '../abstracts' as *; 를 통해 이 파일의 모든 내용을 사용함
 * ==============================================================================
 */
/**
 * ==============================================================================
 * File Name: _functions.scss
 * Description: 스타일 계산 및 로직 처리를 위한 함수 (Helper Functions)
 * Usage:
 *  - @use 'abstracts/functions' as func;
 *  - font-size: func.rem(14);   // 14px -> 1.4rem (1rem = 10px 기준)
 *  - margin-top: func.space(2); // 2step -> 16px -> 1.6rem
 * ==============================================================================
 */
/* 1. Base Settings ----------------------------------------------------------- */
/* 1rem 이 몇 px 인지 정의 (현재 10px 기준) */
/* spacing 유닛 (예: 1step = 8px) */
/* 2. Unit Helpers ------------------------------------------------------------ */
/* 단위 제거용 유틸 (strip-unit) */
/* px -> rem 변환 (1rem = $rem-base px) */
/* px -> em 변환 (컨텍스트 폰트 크기 기준) */
/* spacing step -> rem (디자인 시스템용 여백 단위) */
/* 예) space(2) = 2 * 8px = 16px = 1.6rem */
/**
 * ==============================================================================
 * Directory: /abstracts
 * File Name: _index.scss
 * Description: Sass Module System의 통합 로드 파일 (Forwarding)
 * Usage: 다른 파일에서 @use '../abstracts' as *; 를 통해 이 파일의 모든 내용을 사용함
 * ==============================================================================
 */
/**
 * ==============================================================================
 * File Name: _spacing.scss
 * Description: 여백(Spacing) 디자인 토큰 및 유틸리티 헬퍼 클래스
 * Note:
 *  - 8px 베이스 스케일 기준 공통 마진/패딩 유틸리티 정의
 *  - 컴포넌트 외부 간격 조정 시 className 으로 호출해서 사용
 * Usage:
 *  - abstracts/_index.scss 에서 @forward 'spacing';
 *  - 전역 엔트리(common.scss 등)에서 @use '../abstracts' as *;
 * ==============================================================================
 */
/* 1. Spacing Scale Tokens ---------------------------------------------------- */
/* 2. Margin / Padding Utility Helpers ---------------------------------------- */
/*  - u-mt-*, u-mr-*, u-mb-*, u-ml-* : 개별 방향 마진
 *  - u-pt-*, u-pr-*, u-pb-*, u-pl-* : 개별 방향 패딩
 *  - !important: 컴포넌트 기본 스타일 위에 덮어쓰기 용도
 */
.u-mt-xs {
  margin-top: 4px !important;
}

.u-mr-xs {
  margin-right: 4px !important;
}

.u-mb-xs {
  margin-bottom: 4px !important;
}

.u-ml-xs {
  margin-left: 4px !important;
}

.u-pt-xs {
  padding-top: 4px !important;
}

.u-pr-xs {
  padding-right: 4px !important;
}

.u-pb-xs {
  padding-bottom: 4px !important;
}

.u-pl-xs {
  padding-left: 4px !important;
}

.u-mt-sm {
  margin-top: 8px !important;
}

.u-mr-sm {
  margin-right: 8px !important;
}

.u-mb-sm {
  margin-bottom: 8px !important;
}

.u-ml-sm {
  margin-left: 8px !important;
}

.u-pt-sm {
  padding-top: 8px !important;
}

.u-pr-sm {
  padding-right: 8px !important;
}

.u-pb-sm {
  padding-bottom: 8px !important;
}

.u-pl-sm {
  padding-left: 8px !important;
}

.u-mt-md {
  margin-top: 12px !important;
}

.u-mr-md {
  margin-right: 12px !important;
}

.u-mb-md {
  margin-bottom: 12px !important;
}

.u-ml-md {
  margin-left: 12px !important;
}

.u-pt-md {
  padding-top: 12px !important;
}

.u-pr-md {
  padding-right: 12px !important;
}

.u-pb-md {
  padding-bottom: 12px !important;
}

.u-pl-md {
  padding-left: 12px !important;
}

.u-mt-lg {
  margin-top: 16px !important;
}

.u-mr-lg {
  margin-right: 16px !important;
}

.u-mb-lg {
  margin-bottom: 16px !important;
}

.u-ml-lg {
  margin-left: 16px !important;
}

.u-pt-lg {
  padding-top: 16px !important;
}

.u-pr-lg {
  padding-right: 16px !important;
}

.u-pb-lg {
  padding-bottom: 16px !important;
}

.u-pl-lg {
  padding-left: 16px !important;
}

.u-mt-xl {
  margin-top: 24px !important;
}

.u-mr-xl {
  margin-right: 24px !important;
}

.u-mb-xl {
  margin-bottom: 24px !important;
}

.u-ml-xl {
  margin-left: 24px !important;
}

.u-pt-xl {
  padding-top: 24px !important;
}

.u-pr-xl {
  padding-right: 24px !important;
}

.u-pb-xl {
  padding-bottom: 24px !important;
}

.u-pl-xl {
  padding-left: 24px !important;
}

.u-mt-xxl {
  margin-top: 32px !important;
}

.u-mr-xxl {
  margin-right: 32px !important;
}

.u-mb-xxl {
  margin-bottom: 32px !important;
}

.u-ml-xxl {
  margin-left: 32px !important;
}

.u-pt-xxl {
  padding-top: 32px !important;
}

.u-pr-xxl {
  padding-right: 32px !important;
}

.u-pb-xxl {
  padding-bottom: 32px !important;
}

.u-pl-xxl {
  padding-left: 32px !important;
}

.u-mt-xxxl {
  margin-top: 48px !important;
}

.u-mr-xxxl {
  margin-right: 48px !important;
}

.u-mb-xxxl {
  margin-bottom: 48px !important;
}

.u-ml-xxxl {
  margin-left: 48px !important;
}

.u-pt-xxxl {
  padding-top: 48px !important;
}

.u-pr-xxxl {
  padding-right: 48px !important;
}

.u-pb-xxxl {
  padding-bottom: 48px !important;
}

.u-pl-xxxl {
  padding-left: 48px !important;
}

/* 3. Margin / Padding Utility Helpers ---------------------------------------- */
/*  0 ~ 100px 까지 동적 생성 */
.u-mt-0 {
  margin-top: 0px !important;
}

.u-mb-0 {
  margin-bottom: 0px !important;
}

.u-ml-0 {
  margin-left: 0px !important;
}

.u-mr-0 {
  margin-right: 0px !important;
}

.u-pt-0 {
  padding-top: 0px !important;
}

.u-pb-0 {
  padding-bottom: 0px !important;
}

.u-pl-0 {
  padding-left: 0px !important;
}

.u-pr-0 {
  padding-right: 0px !important;
}

.u-mt-1 {
  margin-top: 1px !important;
}

.u-mb-1 {
  margin-bottom: 1px !important;
}

.u-ml-1 {
  margin-left: 1px !important;
}

.u-mr-1 {
  margin-right: 1px !important;
}

.u-pt-1 {
  padding-top: 1px !important;
}

.u-pb-1 {
  padding-bottom: 1px !important;
}

.u-pl-1 {
  padding-left: 1px !important;
}

.u-pr-1 {
  padding-right: 1px !important;
}

.u-mt-2 {
  margin-top: 2px !important;
}

.u-mb-2 {
  margin-bottom: 2px !important;
}

.u-ml-2 {
  margin-left: 2px !important;
}

.u-mr-2 {
  margin-right: 2px !important;
}

.u-pt-2 {
  padding-top: 2px !important;
}

.u-pb-2 {
  padding-bottom: 2px !important;
}

.u-pl-2 {
  padding-left: 2px !important;
}

.u-pr-2 {
  padding-right: 2px !important;
}

.u-mt-3 {
  margin-top: 3px !important;
}

.u-mb-3 {
  margin-bottom: 3px !important;
}

.u-ml-3 {
  margin-left: 3px !important;
}

.u-mr-3 {
  margin-right: 3px !important;
}

.u-pt-3 {
  padding-top: 3px !important;
}

.u-pb-3 {
  padding-bottom: 3px !important;
}

.u-pl-3 {
  padding-left: 3px !important;
}

.u-pr-3 {
  padding-right: 3px !important;
}

.u-mt-4 {
  margin-top: 4px !important;
}

.u-mb-4 {
  margin-bottom: 4px !important;
}

.u-ml-4 {
  margin-left: 4px !important;
}

.u-mr-4 {
  margin-right: 4px !important;
}

.u-pt-4 {
  padding-top: 4px !important;
}

.u-pb-4 {
  padding-bottom: 4px !important;
}

.u-pl-4 {
  padding-left: 4px !important;
}

.u-pr-4 {
  padding-right: 4px !important;
}

.u-mt-5 {
  margin-top: 5px !important;
}

.u-mb-5 {
  margin-bottom: 5px !important;
}

.u-ml-5 {
  margin-left: 5px !important;
}

.u-mr-5 {
  margin-right: 5px !important;
}

.u-pt-5 {
  padding-top: 5px !important;
}

.u-pb-5 {
  padding-bottom: 5px !important;
}

.u-pl-5 {
  padding-left: 5px !important;
}

.u-pr-5 {
  padding-right: 5px !important;
}

.u-mt-6 {
  margin-top: 6px !important;
}

.u-mb-6 {
  margin-bottom: 6px !important;
}

.u-ml-6 {
  margin-left: 6px !important;
}

.u-mr-6 {
  margin-right: 6px !important;
}

.u-pt-6 {
  padding-top: 6px !important;
}

.u-pb-6 {
  padding-bottom: 6px !important;
}

.u-pl-6 {
  padding-left: 6px !important;
}

.u-pr-6 {
  padding-right: 6px !important;
}

.u-mt-7 {
  margin-top: 7px !important;
}

.u-mb-7 {
  margin-bottom: 7px !important;
}

.u-ml-7 {
  margin-left: 7px !important;
}

.u-mr-7 {
  margin-right: 7px !important;
}

.u-pt-7 {
  padding-top: 7px !important;
}

.u-pb-7 {
  padding-bottom: 7px !important;
}

.u-pl-7 {
  padding-left: 7px !important;
}

.u-pr-7 {
  padding-right: 7px !important;
}

.u-mt-8 {
  margin-top: 8px !important;
}

.u-mb-8 {
  margin-bottom: 8px !important;
}

.u-ml-8 {
  margin-left: 8px !important;
}

.u-mr-8 {
  margin-right: 8px !important;
}

.u-pt-8 {
  padding-top: 8px !important;
}

.u-pb-8 {
  padding-bottom: 8px !important;
}

.u-pl-8 {
  padding-left: 8px !important;
}

.u-pr-8 {
  padding-right: 8px !important;
}

.u-mt-9 {
  margin-top: 9px !important;
}

.u-mb-9 {
  margin-bottom: 9px !important;
}

.u-ml-9 {
  margin-left: 9px !important;
}

.u-mr-9 {
  margin-right: 9px !important;
}

.u-pt-9 {
  padding-top: 9px !important;
}

.u-pb-9 {
  padding-bottom: 9px !important;
}

.u-pl-9 {
  padding-left: 9px !important;
}

.u-pr-9 {
  padding-right: 9px !important;
}

.u-mt-10 {
  margin-top: 10px !important;
}

.u-mb-10 {
  margin-bottom: 10px !important;
}

.u-ml-10 {
  margin-left: 10px !important;
}

.u-mr-10 {
  margin-right: 10px !important;
}

.u-pt-10 {
  padding-top: 10px !important;
}

.u-pb-10 {
  padding-bottom: 10px !important;
}

.u-pl-10 {
  padding-left: 10px !important;
}

.u-pr-10 {
  padding-right: 10px !important;
}

.u-mt-11 {
  margin-top: 11px !important;
}

.u-mb-11 {
  margin-bottom: 11px !important;
}

.u-ml-11 {
  margin-left: 11px !important;
}

.u-mr-11 {
  margin-right: 11px !important;
}

.u-pt-11 {
  padding-top: 11px !important;
}

.u-pb-11 {
  padding-bottom: 11px !important;
}

.u-pl-11 {
  padding-left: 11px !important;
}

.u-pr-11 {
  padding-right: 11px !important;
}

.u-mt-12 {
  margin-top: 12px !important;
}

.u-mb-12 {
  margin-bottom: 12px !important;
}

.u-ml-12 {
  margin-left: 12px !important;
}

.u-mr-12 {
  margin-right: 12px !important;
}

.u-pt-12 {
  padding-top: 12px !important;
}

.u-pb-12 {
  padding-bottom: 12px !important;
}

.u-pl-12 {
  padding-left: 12px !important;
}

.u-pr-12 {
  padding-right: 12px !important;
}

.u-mt-13 {
  margin-top: 13px !important;
}

.u-mb-13 {
  margin-bottom: 13px !important;
}

.u-ml-13 {
  margin-left: 13px !important;
}

.u-mr-13 {
  margin-right: 13px !important;
}

.u-pt-13 {
  padding-top: 13px !important;
}

.u-pb-13 {
  padding-bottom: 13px !important;
}

.u-pl-13 {
  padding-left: 13px !important;
}

.u-pr-13 {
  padding-right: 13px !important;
}

.u-mt-14 {
  margin-top: 14px !important;
}

.u-mb-14 {
  margin-bottom: 14px !important;
}

.u-ml-14 {
  margin-left: 14px !important;
}

.u-mr-14 {
  margin-right: 14px !important;
}

.u-pt-14 {
  padding-top: 14px !important;
}

.u-pb-14 {
  padding-bottom: 14px !important;
}

.u-pl-14 {
  padding-left: 14px !important;
}

.u-pr-14 {
  padding-right: 14px !important;
}

.u-mt-15 {
  margin-top: 15px !important;
}

.u-mb-15 {
  margin-bottom: 15px !important;
}

.u-ml-15 {
  margin-left: 15px !important;
}

.u-mr-15 {
  margin-right: 15px !important;
}

.u-pt-15 {
  padding-top: 15px !important;
}

.u-pb-15 {
  padding-bottom: 15px !important;
}

.u-pl-15 {
  padding-left: 15px !important;
}

.u-pr-15 {
  padding-right: 15px !important;
}

.u-mt-16 {
  margin-top: 16px !important;
}

.u-mb-16 {
  margin-bottom: 16px !important;
}

.u-ml-16 {
  margin-left: 16px !important;
}

.u-mr-16 {
  margin-right: 16px !important;
}

.u-pt-16 {
  padding-top: 16px !important;
}

.u-pb-16 {
  padding-bottom: 16px !important;
}

.u-pl-16 {
  padding-left: 16px !important;
}

.u-pr-16 {
  padding-right: 16px !important;
}

.u-mt-17 {
  margin-top: 17px !important;
}

.u-mb-17 {
  margin-bottom: 17px !important;
}

.u-ml-17 {
  margin-left: 17px !important;
}

.u-mr-17 {
  margin-right: 17px !important;
}

.u-pt-17 {
  padding-top: 17px !important;
}

.u-pb-17 {
  padding-bottom: 17px !important;
}

.u-pl-17 {
  padding-left: 17px !important;
}

.u-pr-17 {
  padding-right: 17px !important;
}

.u-mt-18 {
  margin-top: 18px !important;
}

.u-mb-18 {
  margin-bottom: 18px !important;
}

.u-ml-18 {
  margin-left: 18px !important;
}

.u-mr-18 {
  margin-right: 18px !important;
}

.u-pt-18 {
  padding-top: 18px !important;
}

.u-pb-18 {
  padding-bottom: 18px !important;
}

.u-pl-18 {
  padding-left: 18px !important;
}

.u-pr-18 {
  padding-right: 18px !important;
}

.u-mt-19 {
  margin-top: 19px !important;
}

.u-mb-19 {
  margin-bottom: 19px !important;
}

.u-ml-19 {
  margin-left: 19px !important;
}

.u-mr-19 {
  margin-right: 19px !important;
}

.u-pt-19 {
  padding-top: 19px !important;
}

.u-pb-19 {
  padding-bottom: 19px !important;
}

.u-pl-19 {
  padding-left: 19px !important;
}

.u-pr-19 {
  padding-right: 19px !important;
}

.u-mt-20 {
  margin-top: 20px !important;
}

.u-mb-20 {
  margin-bottom: 20px !important;
}

.u-ml-20 {
  margin-left: 20px !important;
}

.u-mr-20 {
  margin-right: 20px !important;
}

.u-pt-20 {
  padding-top: 20px !important;
}

.u-pb-20 {
  padding-bottom: 20px !important;
}

.u-pl-20 {
  padding-left: 20px !important;
}

.u-pr-20 {
  padding-right: 20px !important;
}

.u-mt-21 {
  margin-top: 21px !important;
}

.u-mb-21 {
  margin-bottom: 21px !important;
}

.u-ml-21 {
  margin-left: 21px !important;
}

.u-mr-21 {
  margin-right: 21px !important;
}

.u-pt-21 {
  padding-top: 21px !important;
}

.u-pb-21 {
  padding-bottom: 21px !important;
}

.u-pl-21 {
  padding-left: 21px !important;
}

.u-pr-21 {
  padding-right: 21px !important;
}

.u-mt-22 {
  margin-top: 22px !important;
}

.u-mb-22 {
  margin-bottom: 22px !important;
}

.u-ml-22 {
  margin-left: 22px !important;
}

.u-mr-22 {
  margin-right: 22px !important;
}

.u-pt-22 {
  padding-top: 22px !important;
}

.u-pb-22 {
  padding-bottom: 22px !important;
}

.u-pl-22 {
  padding-left: 22px !important;
}

.u-pr-22 {
  padding-right: 22px !important;
}

.u-mt-23 {
  margin-top: 23px !important;
}

.u-mb-23 {
  margin-bottom: 23px !important;
}

.u-ml-23 {
  margin-left: 23px !important;
}

.u-mr-23 {
  margin-right: 23px !important;
}

.u-pt-23 {
  padding-top: 23px !important;
}

.u-pb-23 {
  padding-bottom: 23px !important;
}

.u-pl-23 {
  padding-left: 23px !important;
}

.u-pr-23 {
  padding-right: 23px !important;
}

.u-mt-24 {
  margin-top: 24px !important;
}

.u-mb-24 {
  margin-bottom: 24px !important;
}

.u-ml-24 {
  margin-left: 24px !important;
}

.u-mr-24 {
  margin-right: 24px !important;
}

.u-pt-24 {
  padding-top: 24px !important;
}

.u-pb-24 {
  padding-bottom: 24px !important;
}

.u-pl-24 {
  padding-left: 24px !important;
}

.u-pr-24 {
  padding-right: 24px !important;
}

.u-mt-25 {
  margin-top: 25px !important;
}

.u-mb-25 {
  margin-bottom: 25px !important;
}

.u-ml-25 {
  margin-left: 25px !important;
}

.u-mr-25 {
  margin-right: 25px !important;
}

.u-pt-25 {
  padding-top: 25px !important;
}

.u-pb-25 {
  padding-bottom: 25px !important;
}

.u-pl-25 {
  padding-left: 25px !important;
}

.u-pr-25 {
  padding-right: 25px !important;
}

.u-mt-26 {
  margin-top: 26px !important;
}

.u-mb-26 {
  margin-bottom: 26px !important;
}

.u-ml-26 {
  margin-left: 26px !important;
}

.u-mr-26 {
  margin-right: 26px !important;
}

.u-pt-26 {
  padding-top: 26px !important;
}

.u-pb-26 {
  padding-bottom: 26px !important;
}

.u-pl-26 {
  padding-left: 26px !important;
}

.u-pr-26 {
  padding-right: 26px !important;
}

.u-mt-27 {
  margin-top: 27px !important;
}

.u-mb-27 {
  margin-bottom: 27px !important;
}

.u-ml-27 {
  margin-left: 27px !important;
}

.u-mr-27 {
  margin-right: 27px !important;
}

.u-pt-27 {
  padding-top: 27px !important;
}

.u-pb-27 {
  padding-bottom: 27px !important;
}

.u-pl-27 {
  padding-left: 27px !important;
}

.u-pr-27 {
  padding-right: 27px !important;
}

.u-mt-28 {
  margin-top: 28px !important;
}

.u-mb-28 {
  margin-bottom: 28px !important;
}

.u-ml-28 {
  margin-left: 28px !important;
}

.u-mr-28 {
  margin-right: 28px !important;
}

.u-pt-28 {
  padding-top: 28px !important;
}

.u-pb-28 {
  padding-bottom: 28px !important;
}

.u-pl-28 {
  padding-left: 28px !important;
}

.u-pr-28 {
  padding-right: 28px !important;
}

.u-mt-29 {
  margin-top: 29px !important;
}

.u-mb-29 {
  margin-bottom: 29px !important;
}

.u-ml-29 {
  margin-left: 29px !important;
}

.u-mr-29 {
  margin-right: 29px !important;
}

.u-pt-29 {
  padding-top: 29px !important;
}

.u-pb-29 {
  padding-bottom: 29px !important;
}

.u-pl-29 {
  padding-left: 29px !important;
}

.u-pr-29 {
  padding-right: 29px !important;
}

.u-mt-30 {
  margin-top: 30px !important;
}

.u-mb-30 {
  margin-bottom: 30px !important;
}

.u-ml-30 {
  margin-left: 30px !important;
}

.u-mr-30 {
  margin-right: 30px !important;
}

.u-pt-30 {
  padding-top: 30px !important;
}

.u-pb-30 {
  padding-bottom: 30px !important;
}

.u-pl-30 {
  padding-left: 30px !important;
}

.u-pr-30 {
  padding-right: 30px !important;
}

.u-mt-31 {
  margin-top: 31px !important;
}

.u-mb-31 {
  margin-bottom: 31px !important;
}

.u-ml-31 {
  margin-left: 31px !important;
}

.u-mr-31 {
  margin-right: 31px !important;
}

.u-pt-31 {
  padding-top: 31px !important;
}

.u-pb-31 {
  padding-bottom: 31px !important;
}

.u-pl-31 {
  padding-left: 31px !important;
}

.u-pr-31 {
  padding-right: 31px !important;
}

.u-mt-32 {
  margin-top: 32px !important;
}

.u-mb-32 {
  margin-bottom: 32px !important;
}

.u-ml-32 {
  margin-left: 32px !important;
}

.u-mr-32 {
  margin-right: 32px !important;
}

.u-pt-32 {
  padding-top: 32px !important;
}

.u-pb-32 {
  padding-bottom: 32px !important;
}

.u-pl-32 {
  padding-left: 32px !important;
}

.u-pr-32 {
  padding-right: 32px !important;
}

.u-mt-33 {
  margin-top: 33px !important;
}

.u-mb-33 {
  margin-bottom: 33px !important;
}

.u-ml-33 {
  margin-left: 33px !important;
}

.u-mr-33 {
  margin-right: 33px !important;
}

.u-pt-33 {
  padding-top: 33px !important;
}

.u-pb-33 {
  padding-bottom: 33px !important;
}

.u-pl-33 {
  padding-left: 33px !important;
}

.u-pr-33 {
  padding-right: 33px !important;
}

.u-mt-34 {
  margin-top: 34px !important;
}

.u-mb-34 {
  margin-bottom: 34px !important;
}

.u-ml-34 {
  margin-left: 34px !important;
}

.u-mr-34 {
  margin-right: 34px !important;
}

.u-pt-34 {
  padding-top: 34px !important;
}

.u-pb-34 {
  padding-bottom: 34px !important;
}

.u-pl-34 {
  padding-left: 34px !important;
}

.u-pr-34 {
  padding-right: 34px !important;
}

.u-mt-35 {
  margin-top: 35px !important;
}

.u-mb-35 {
  margin-bottom: 35px !important;
}

.u-ml-35 {
  margin-left: 35px !important;
}

.u-mr-35 {
  margin-right: 35px !important;
}

.u-pt-35 {
  padding-top: 35px !important;
}

.u-pb-35 {
  padding-bottom: 35px !important;
}

.u-pl-35 {
  padding-left: 35px !important;
}

.u-pr-35 {
  padding-right: 35px !important;
}

.u-mt-36 {
  margin-top: 36px !important;
}

.u-mb-36 {
  margin-bottom: 36px !important;
}

.u-ml-36 {
  margin-left: 36px !important;
}

.u-mr-36 {
  margin-right: 36px !important;
}

.u-pt-36 {
  padding-top: 36px !important;
}

.u-pb-36 {
  padding-bottom: 36px !important;
}

.u-pl-36 {
  padding-left: 36px !important;
}

.u-pr-36 {
  padding-right: 36px !important;
}

.u-mt-37 {
  margin-top: 37px !important;
}

.u-mb-37 {
  margin-bottom: 37px !important;
}

.u-ml-37 {
  margin-left: 37px !important;
}

.u-mr-37 {
  margin-right: 37px !important;
}

.u-pt-37 {
  padding-top: 37px !important;
}

.u-pb-37 {
  padding-bottom: 37px !important;
}

.u-pl-37 {
  padding-left: 37px !important;
}

.u-pr-37 {
  padding-right: 37px !important;
}

.u-mt-38 {
  margin-top: 38px !important;
}

.u-mb-38 {
  margin-bottom: 38px !important;
}

.u-ml-38 {
  margin-left: 38px !important;
}

.u-mr-38 {
  margin-right: 38px !important;
}

.u-pt-38 {
  padding-top: 38px !important;
}

.u-pb-38 {
  padding-bottom: 38px !important;
}

.u-pl-38 {
  padding-left: 38px !important;
}

.u-pr-38 {
  padding-right: 38px !important;
}

.u-mt-39 {
  margin-top: 39px !important;
}

.u-mb-39 {
  margin-bottom: 39px !important;
}

.u-ml-39 {
  margin-left: 39px !important;
}

.u-mr-39 {
  margin-right: 39px !important;
}

.u-pt-39 {
  padding-top: 39px !important;
}

.u-pb-39 {
  padding-bottom: 39px !important;
}

.u-pl-39 {
  padding-left: 39px !important;
}

.u-pr-39 {
  padding-right: 39px !important;
}

.u-mt-40 {
  margin-top: 40px !important;
}

.u-mb-40 {
  margin-bottom: 40px !important;
}

.u-ml-40 {
  margin-left: 40px !important;
}

.u-mr-40 {
  margin-right: 40px !important;
}

.u-pt-40 {
  padding-top: 40px !important;
}

.u-pb-40 {
  padding-bottom: 40px !important;
}

.u-pl-40 {
  padding-left: 40px !important;
}

.u-pr-40 {
  padding-right: 40px !important;
}

.u-mt-41 {
  margin-top: 41px !important;
}

.u-mb-41 {
  margin-bottom: 41px !important;
}

.u-ml-41 {
  margin-left: 41px !important;
}

.u-mr-41 {
  margin-right: 41px !important;
}

.u-pt-41 {
  padding-top: 41px !important;
}

.u-pb-41 {
  padding-bottom: 41px !important;
}

.u-pl-41 {
  padding-left: 41px !important;
}

.u-pr-41 {
  padding-right: 41px !important;
}

.u-mt-42 {
  margin-top: 42px !important;
}

.u-mb-42 {
  margin-bottom: 42px !important;
}

.u-ml-42 {
  margin-left: 42px !important;
}

.u-mr-42 {
  margin-right: 42px !important;
}

.u-pt-42 {
  padding-top: 42px !important;
}

.u-pb-42 {
  padding-bottom: 42px !important;
}

.u-pl-42 {
  padding-left: 42px !important;
}

.u-pr-42 {
  padding-right: 42px !important;
}

.u-mt-43 {
  margin-top: 43px !important;
}

.u-mb-43 {
  margin-bottom: 43px !important;
}

.u-ml-43 {
  margin-left: 43px !important;
}

.u-mr-43 {
  margin-right: 43px !important;
}

.u-pt-43 {
  padding-top: 43px !important;
}

.u-pb-43 {
  padding-bottom: 43px !important;
}

.u-pl-43 {
  padding-left: 43px !important;
}

.u-pr-43 {
  padding-right: 43px !important;
}

.u-mt-44 {
  margin-top: 44px !important;
}

.u-mb-44 {
  margin-bottom: 44px !important;
}

.u-ml-44 {
  margin-left: 44px !important;
}

.u-mr-44 {
  margin-right: 44px !important;
}

.u-pt-44 {
  padding-top: 44px !important;
}

.u-pb-44 {
  padding-bottom: 44px !important;
}

.u-pl-44 {
  padding-left: 44px !important;
}

.u-pr-44 {
  padding-right: 44px !important;
}

.u-mt-45 {
  margin-top: 45px !important;
}

.u-mb-45 {
  margin-bottom: 45px !important;
}

.u-ml-45 {
  margin-left: 45px !important;
}

.u-mr-45 {
  margin-right: 45px !important;
}

.u-pt-45 {
  padding-top: 45px !important;
}

.u-pb-45 {
  padding-bottom: 45px !important;
}

.u-pl-45 {
  padding-left: 45px !important;
}

.u-pr-45 {
  padding-right: 45px !important;
}

.u-mt-46 {
  margin-top: 46px !important;
}

.u-mb-46 {
  margin-bottom: 46px !important;
}

.u-ml-46 {
  margin-left: 46px !important;
}

.u-mr-46 {
  margin-right: 46px !important;
}

.u-pt-46 {
  padding-top: 46px !important;
}

.u-pb-46 {
  padding-bottom: 46px !important;
}

.u-pl-46 {
  padding-left: 46px !important;
}

.u-pr-46 {
  padding-right: 46px !important;
}

.u-mt-47 {
  margin-top: 47px !important;
}

.u-mb-47 {
  margin-bottom: 47px !important;
}

.u-ml-47 {
  margin-left: 47px !important;
}

.u-mr-47 {
  margin-right: 47px !important;
}

.u-pt-47 {
  padding-top: 47px !important;
}

.u-pb-47 {
  padding-bottom: 47px !important;
}

.u-pl-47 {
  padding-left: 47px !important;
}

.u-pr-47 {
  padding-right: 47px !important;
}

.u-mt-48 {
  margin-top: 48px !important;
}

.u-mb-48 {
  margin-bottom: 48px !important;
}

.u-ml-48 {
  margin-left: 48px !important;
}

.u-mr-48 {
  margin-right: 48px !important;
}

.u-pt-48 {
  padding-top: 48px !important;
}

.u-pb-48 {
  padding-bottom: 48px !important;
}

.u-pl-48 {
  padding-left: 48px !important;
}

.u-pr-48 {
  padding-right: 48px !important;
}

.u-mt-49 {
  margin-top: 49px !important;
}

.u-mb-49 {
  margin-bottom: 49px !important;
}

.u-ml-49 {
  margin-left: 49px !important;
}

.u-mr-49 {
  margin-right: 49px !important;
}

.u-pt-49 {
  padding-top: 49px !important;
}

.u-pb-49 {
  padding-bottom: 49px !important;
}

.u-pl-49 {
  padding-left: 49px !important;
}

.u-pr-49 {
  padding-right: 49px !important;
}

.u-mt-50 {
  margin-top: 50px !important;
}

.u-mb-50 {
  margin-bottom: 50px !important;
}

.u-ml-50 {
  margin-left: 50px !important;
}

.u-mr-50 {
  margin-right: 50px !important;
}

.u-pt-50 {
  padding-top: 50px !important;
}

.u-pb-50 {
  padding-bottom: 50px !important;
}

.u-pl-50 {
  padding-left: 50px !important;
}

.u-pr-50 {
  padding-right: 50px !important;
}

.u-mt-51 {
  margin-top: 51px !important;
}

.u-mb-51 {
  margin-bottom: 51px !important;
}

.u-ml-51 {
  margin-left: 51px !important;
}

.u-mr-51 {
  margin-right: 51px !important;
}

.u-pt-51 {
  padding-top: 51px !important;
}

.u-pb-51 {
  padding-bottom: 51px !important;
}

.u-pl-51 {
  padding-left: 51px !important;
}

.u-pr-51 {
  padding-right: 51px !important;
}

.u-mt-52 {
  margin-top: 52px !important;
}

.u-mb-52 {
  margin-bottom: 52px !important;
}

.u-ml-52 {
  margin-left: 52px !important;
}

.u-mr-52 {
  margin-right: 52px !important;
}

.u-pt-52 {
  padding-top: 52px !important;
}

.u-pb-52 {
  padding-bottom: 52px !important;
}

.u-pl-52 {
  padding-left: 52px !important;
}

.u-pr-52 {
  padding-right: 52px !important;
}

.u-mt-53 {
  margin-top: 53px !important;
}

.u-mb-53 {
  margin-bottom: 53px !important;
}

.u-ml-53 {
  margin-left: 53px !important;
}

.u-mr-53 {
  margin-right: 53px !important;
}

.u-pt-53 {
  padding-top: 53px !important;
}

.u-pb-53 {
  padding-bottom: 53px !important;
}

.u-pl-53 {
  padding-left: 53px !important;
}

.u-pr-53 {
  padding-right: 53px !important;
}

.u-mt-54 {
  margin-top: 54px !important;
}

.u-mb-54 {
  margin-bottom: 54px !important;
}

.u-ml-54 {
  margin-left: 54px !important;
}

.u-mr-54 {
  margin-right: 54px !important;
}

.u-pt-54 {
  padding-top: 54px !important;
}

.u-pb-54 {
  padding-bottom: 54px !important;
}

.u-pl-54 {
  padding-left: 54px !important;
}

.u-pr-54 {
  padding-right: 54px !important;
}

.u-mt-55 {
  margin-top: 55px !important;
}

.u-mb-55 {
  margin-bottom: 55px !important;
}

.u-ml-55 {
  margin-left: 55px !important;
}

.u-mr-55 {
  margin-right: 55px !important;
}

.u-pt-55 {
  padding-top: 55px !important;
}

.u-pb-55 {
  padding-bottom: 55px !important;
}

.u-pl-55 {
  padding-left: 55px !important;
}

.u-pr-55 {
  padding-right: 55px !important;
}

.u-mt-56 {
  margin-top: 56px !important;
}

.u-mb-56 {
  margin-bottom: 56px !important;
}

.u-ml-56 {
  margin-left: 56px !important;
}

.u-mr-56 {
  margin-right: 56px !important;
}

.u-pt-56 {
  padding-top: 56px !important;
}

.u-pb-56 {
  padding-bottom: 56px !important;
}

.u-pl-56 {
  padding-left: 56px !important;
}

.u-pr-56 {
  padding-right: 56px !important;
}

.u-mt-57 {
  margin-top: 57px !important;
}

.u-mb-57 {
  margin-bottom: 57px !important;
}

.u-ml-57 {
  margin-left: 57px !important;
}

.u-mr-57 {
  margin-right: 57px !important;
}

.u-pt-57 {
  padding-top: 57px !important;
}

.u-pb-57 {
  padding-bottom: 57px !important;
}

.u-pl-57 {
  padding-left: 57px !important;
}

.u-pr-57 {
  padding-right: 57px !important;
}

.u-mt-58 {
  margin-top: 58px !important;
}

.u-mb-58 {
  margin-bottom: 58px !important;
}

.u-ml-58 {
  margin-left: 58px !important;
}

.u-mr-58 {
  margin-right: 58px !important;
}

.u-pt-58 {
  padding-top: 58px !important;
}

.u-pb-58 {
  padding-bottom: 58px !important;
}

.u-pl-58 {
  padding-left: 58px !important;
}

.u-pr-58 {
  padding-right: 58px !important;
}

.u-mt-59 {
  margin-top: 59px !important;
}

.u-mb-59 {
  margin-bottom: 59px !important;
}

.u-ml-59 {
  margin-left: 59px !important;
}

.u-mr-59 {
  margin-right: 59px !important;
}

.u-pt-59 {
  padding-top: 59px !important;
}

.u-pb-59 {
  padding-bottom: 59px !important;
}

.u-pl-59 {
  padding-left: 59px !important;
}

.u-pr-59 {
  padding-right: 59px !important;
}

.u-mt-60 {
  margin-top: 60px !important;
}

.u-mb-60 {
  margin-bottom: 60px !important;
}

.u-ml-60 {
  margin-left: 60px !important;
}

.u-mr-60 {
  margin-right: 60px !important;
}

.u-pt-60 {
  padding-top: 60px !important;
}

.u-pb-60 {
  padding-bottom: 60px !important;
}

.u-pl-60 {
  padding-left: 60px !important;
}

.u-pr-60 {
  padding-right: 60px !important;
}

.u-mt-61 {
  margin-top: 61px !important;
}

.u-mb-61 {
  margin-bottom: 61px !important;
}

.u-ml-61 {
  margin-left: 61px !important;
}

.u-mr-61 {
  margin-right: 61px !important;
}

.u-pt-61 {
  padding-top: 61px !important;
}

.u-pb-61 {
  padding-bottom: 61px !important;
}

.u-pl-61 {
  padding-left: 61px !important;
}

.u-pr-61 {
  padding-right: 61px !important;
}

.u-mt-62 {
  margin-top: 62px !important;
}

.u-mb-62 {
  margin-bottom: 62px !important;
}

.u-ml-62 {
  margin-left: 62px !important;
}

.u-mr-62 {
  margin-right: 62px !important;
}

.u-pt-62 {
  padding-top: 62px !important;
}

.u-pb-62 {
  padding-bottom: 62px !important;
}

.u-pl-62 {
  padding-left: 62px !important;
}

.u-pr-62 {
  padding-right: 62px !important;
}

.u-mt-63 {
  margin-top: 63px !important;
}

.u-mb-63 {
  margin-bottom: 63px !important;
}

.u-ml-63 {
  margin-left: 63px !important;
}

.u-mr-63 {
  margin-right: 63px !important;
}

.u-pt-63 {
  padding-top: 63px !important;
}

.u-pb-63 {
  padding-bottom: 63px !important;
}

.u-pl-63 {
  padding-left: 63px !important;
}

.u-pr-63 {
  padding-right: 63px !important;
}

.u-mt-64 {
  margin-top: 64px !important;
}

.u-mb-64 {
  margin-bottom: 64px !important;
}

.u-ml-64 {
  margin-left: 64px !important;
}

.u-mr-64 {
  margin-right: 64px !important;
}

.u-pt-64 {
  padding-top: 64px !important;
}

.u-pb-64 {
  padding-bottom: 64px !important;
}

.u-pl-64 {
  padding-left: 64px !important;
}

.u-pr-64 {
  padding-right: 64px !important;
}

.u-mt-65 {
  margin-top: 65px !important;
}

.u-mb-65 {
  margin-bottom: 65px !important;
}

.u-ml-65 {
  margin-left: 65px !important;
}

.u-mr-65 {
  margin-right: 65px !important;
}

.u-pt-65 {
  padding-top: 65px !important;
}

.u-pb-65 {
  padding-bottom: 65px !important;
}

.u-pl-65 {
  padding-left: 65px !important;
}

.u-pr-65 {
  padding-right: 65px !important;
}

.u-mt-66 {
  margin-top: 66px !important;
}

.u-mb-66 {
  margin-bottom: 66px !important;
}

.u-ml-66 {
  margin-left: 66px !important;
}

.u-mr-66 {
  margin-right: 66px !important;
}

.u-pt-66 {
  padding-top: 66px !important;
}

.u-pb-66 {
  padding-bottom: 66px !important;
}

.u-pl-66 {
  padding-left: 66px !important;
}

.u-pr-66 {
  padding-right: 66px !important;
}

.u-mt-67 {
  margin-top: 67px !important;
}

.u-mb-67 {
  margin-bottom: 67px !important;
}

.u-ml-67 {
  margin-left: 67px !important;
}

.u-mr-67 {
  margin-right: 67px !important;
}

.u-pt-67 {
  padding-top: 67px !important;
}

.u-pb-67 {
  padding-bottom: 67px !important;
}

.u-pl-67 {
  padding-left: 67px !important;
}

.u-pr-67 {
  padding-right: 67px !important;
}

.u-mt-68 {
  margin-top: 68px !important;
}

.u-mb-68 {
  margin-bottom: 68px !important;
}

.u-ml-68 {
  margin-left: 68px !important;
}

.u-mr-68 {
  margin-right: 68px !important;
}

.u-pt-68 {
  padding-top: 68px !important;
}

.u-pb-68 {
  padding-bottom: 68px !important;
}

.u-pl-68 {
  padding-left: 68px !important;
}

.u-pr-68 {
  padding-right: 68px !important;
}

.u-mt-69 {
  margin-top: 69px !important;
}

.u-mb-69 {
  margin-bottom: 69px !important;
}

.u-ml-69 {
  margin-left: 69px !important;
}

.u-mr-69 {
  margin-right: 69px !important;
}

.u-pt-69 {
  padding-top: 69px !important;
}

.u-pb-69 {
  padding-bottom: 69px !important;
}

.u-pl-69 {
  padding-left: 69px !important;
}

.u-pr-69 {
  padding-right: 69px !important;
}

.u-mt-70 {
  margin-top: 70px !important;
}

.u-mb-70 {
  margin-bottom: 70px !important;
}

.u-ml-70 {
  margin-left: 70px !important;
}

.u-mr-70 {
  margin-right: 70px !important;
}

.u-pt-70 {
  padding-top: 70px !important;
}

.u-pb-70 {
  padding-bottom: 70px !important;
}

.u-pl-70 {
  padding-left: 70px !important;
}

.u-pr-70 {
  padding-right: 70px !important;
}

.u-mt-71 {
  margin-top: 71px !important;
}

.u-mb-71 {
  margin-bottom: 71px !important;
}

.u-ml-71 {
  margin-left: 71px !important;
}

.u-mr-71 {
  margin-right: 71px !important;
}

.u-pt-71 {
  padding-top: 71px !important;
}

.u-pb-71 {
  padding-bottom: 71px !important;
}

.u-pl-71 {
  padding-left: 71px !important;
}

.u-pr-71 {
  padding-right: 71px !important;
}

.u-mt-72 {
  margin-top: 72px !important;
}

.u-mb-72 {
  margin-bottom: 72px !important;
}

.u-ml-72 {
  margin-left: 72px !important;
}

.u-mr-72 {
  margin-right: 72px !important;
}

.u-pt-72 {
  padding-top: 72px !important;
}

.u-pb-72 {
  padding-bottom: 72px !important;
}

.u-pl-72 {
  padding-left: 72px !important;
}

.u-pr-72 {
  padding-right: 72px !important;
}

.u-mt-73 {
  margin-top: 73px !important;
}

.u-mb-73 {
  margin-bottom: 73px !important;
}

.u-ml-73 {
  margin-left: 73px !important;
}

.u-mr-73 {
  margin-right: 73px !important;
}

.u-pt-73 {
  padding-top: 73px !important;
}

.u-pb-73 {
  padding-bottom: 73px !important;
}

.u-pl-73 {
  padding-left: 73px !important;
}

.u-pr-73 {
  padding-right: 73px !important;
}

.u-mt-74 {
  margin-top: 74px !important;
}

.u-mb-74 {
  margin-bottom: 74px !important;
}

.u-ml-74 {
  margin-left: 74px !important;
}

.u-mr-74 {
  margin-right: 74px !important;
}

.u-pt-74 {
  padding-top: 74px !important;
}

.u-pb-74 {
  padding-bottom: 74px !important;
}

.u-pl-74 {
  padding-left: 74px !important;
}

.u-pr-74 {
  padding-right: 74px !important;
}

.u-mt-75 {
  margin-top: 75px !important;
}

.u-mb-75 {
  margin-bottom: 75px !important;
}

.u-ml-75 {
  margin-left: 75px !important;
}

.u-mr-75 {
  margin-right: 75px !important;
}

.u-pt-75 {
  padding-top: 75px !important;
}

.u-pb-75 {
  padding-bottom: 75px !important;
}

.u-pl-75 {
  padding-left: 75px !important;
}

.u-pr-75 {
  padding-right: 75px !important;
}

.u-mt-76 {
  margin-top: 76px !important;
}

.u-mb-76 {
  margin-bottom: 76px !important;
}

.u-ml-76 {
  margin-left: 76px !important;
}

.u-mr-76 {
  margin-right: 76px !important;
}

.u-pt-76 {
  padding-top: 76px !important;
}

.u-pb-76 {
  padding-bottom: 76px !important;
}

.u-pl-76 {
  padding-left: 76px !important;
}

.u-pr-76 {
  padding-right: 76px !important;
}

.u-mt-77 {
  margin-top: 77px !important;
}

.u-mb-77 {
  margin-bottom: 77px !important;
}

.u-ml-77 {
  margin-left: 77px !important;
}

.u-mr-77 {
  margin-right: 77px !important;
}

.u-pt-77 {
  padding-top: 77px !important;
}

.u-pb-77 {
  padding-bottom: 77px !important;
}

.u-pl-77 {
  padding-left: 77px !important;
}

.u-pr-77 {
  padding-right: 77px !important;
}

.u-mt-78 {
  margin-top: 78px !important;
}

.u-mb-78 {
  margin-bottom: 78px !important;
}

.u-ml-78 {
  margin-left: 78px !important;
}

.u-mr-78 {
  margin-right: 78px !important;
}

.u-pt-78 {
  padding-top: 78px !important;
}

.u-pb-78 {
  padding-bottom: 78px !important;
}

.u-pl-78 {
  padding-left: 78px !important;
}

.u-pr-78 {
  padding-right: 78px !important;
}

.u-mt-79 {
  margin-top: 79px !important;
}

.u-mb-79 {
  margin-bottom: 79px !important;
}

.u-ml-79 {
  margin-left: 79px !important;
}

.u-mr-79 {
  margin-right: 79px !important;
}

.u-pt-79 {
  padding-top: 79px !important;
}

.u-pb-79 {
  padding-bottom: 79px !important;
}

.u-pl-79 {
  padding-left: 79px !important;
}

.u-pr-79 {
  padding-right: 79px !important;
}

.u-mt-80 {
  margin-top: 80px !important;
}

.u-mb-80 {
  margin-bottom: 80px !important;
}

.u-ml-80 {
  margin-left: 80px !important;
}

.u-mr-80 {
  margin-right: 80px !important;
}

.u-pt-80 {
  padding-top: 80px !important;
}

.u-pb-80 {
  padding-bottom: 80px !important;
}

.u-pl-80 {
  padding-left: 80px !important;
}

.u-pr-80 {
  padding-right: 80px !important;
}

.u-mt-81 {
  margin-top: 81px !important;
}

.u-mb-81 {
  margin-bottom: 81px !important;
}

.u-ml-81 {
  margin-left: 81px !important;
}

.u-mr-81 {
  margin-right: 81px !important;
}

.u-pt-81 {
  padding-top: 81px !important;
}

.u-pb-81 {
  padding-bottom: 81px !important;
}

.u-pl-81 {
  padding-left: 81px !important;
}

.u-pr-81 {
  padding-right: 81px !important;
}

.u-mt-82 {
  margin-top: 82px !important;
}

.u-mb-82 {
  margin-bottom: 82px !important;
}

.u-ml-82 {
  margin-left: 82px !important;
}

.u-mr-82 {
  margin-right: 82px !important;
}

.u-pt-82 {
  padding-top: 82px !important;
}

.u-pb-82 {
  padding-bottom: 82px !important;
}

.u-pl-82 {
  padding-left: 82px !important;
}

.u-pr-82 {
  padding-right: 82px !important;
}

.u-mt-83 {
  margin-top: 83px !important;
}

.u-mb-83 {
  margin-bottom: 83px !important;
}

.u-ml-83 {
  margin-left: 83px !important;
}

.u-mr-83 {
  margin-right: 83px !important;
}

.u-pt-83 {
  padding-top: 83px !important;
}

.u-pb-83 {
  padding-bottom: 83px !important;
}

.u-pl-83 {
  padding-left: 83px !important;
}

.u-pr-83 {
  padding-right: 83px !important;
}

.u-mt-84 {
  margin-top: 84px !important;
}

.u-mb-84 {
  margin-bottom: 84px !important;
}

.u-ml-84 {
  margin-left: 84px !important;
}

.u-mr-84 {
  margin-right: 84px !important;
}

.u-pt-84 {
  padding-top: 84px !important;
}

.u-pb-84 {
  padding-bottom: 84px !important;
}

.u-pl-84 {
  padding-left: 84px !important;
}

.u-pr-84 {
  padding-right: 84px !important;
}

.u-mt-85 {
  margin-top: 85px !important;
}

.u-mb-85 {
  margin-bottom: 85px !important;
}

.u-ml-85 {
  margin-left: 85px !important;
}

.u-mr-85 {
  margin-right: 85px !important;
}

.u-pt-85 {
  padding-top: 85px !important;
}

.u-pb-85 {
  padding-bottom: 85px !important;
}

.u-pl-85 {
  padding-left: 85px !important;
}

.u-pr-85 {
  padding-right: 85px !important;
}

.u-mt-86 {
  margin-top: 86px !important;
}

.u-mb-86 {
  margin-bottom: 86px !important;
}

.u-ml-86 {
  margin-left: 86px !important;
}

.u-mr-86 {
  margin-right: 86px !important;
}

.u-pt-86 {
  padding-top: 86px !important;
}

.u-pb-86 {
  padding-bottom: 86px !important;
}

.u-pl-86 {
  padding-left: 86px !important;
}

.u-pr-86 {
  padding-right: 86px !important;
}

.u-mt-87 {
  margin-top: 87px !important;
}

.u-mb-87 {
  margin-bottom: 87px !important;
}

.u-ml-87 {
  margin-left: 87px !important;
}

.u-mr-87 {
  margin-right: 87px !important;
}

.u-pt-87 {
  padding-top: 87px !important;
}

.u-pb-87 {
  padding-bottom: 87px !important;
}

.u-pl-87 {
  padding-left: 87px !important;
}

.u-pr-87 {
  padding-right: 87px !important;
}

.u-mt-88 {
  margin-top: 88px !important;
}

.u-mb-88 {
  margin-bottom: 88px !important;
}

.u-ml-88 {
  margin-left: 88px !important;
}

.u-mr-88 {
  margin-right: 88px !important;
}

.u-pt-88 {
  padding-top: 88px !important;
}

.u-pb-88 {
  padding-bottom: 88px !important;
}

.u-pl-88 {
  padding-left: 88px !important;
}

.u-pr-88 {
  padding-right: 88px !important;
}

.u-mt-89 {
  margin-top: 89px !important;
}

.u-mb-89 {
  margin-bottom: 89px !important;
}

.u-ml-89 {
  margin-left: 89px !important;
}

.u-mr-89 {
  margin-right: 89px !important;
}

.u-pt-89 {
  padding-top: 89px !important;
}

.u-pb-89 {
  padding-bottom: 89px !important;
}

.u-pl-89 {
  padding-left: 89px !important;
}

.u-pr-89 {
  padding-right: 89px !important;
}

.u-mt-90 {
  margin-top: 90px !important;
}

.u-mb-90 {
  margin-bottom: 90px !important;
}

.u-ml-90 {
  margin-left: 90px !important;
}

.u-mr-90 {
  margin-right: 90px !important;
}

.u-pt-90 {
  padding-top: 90px !important;
}

.u-pb-90 {
  padding-bottom: 90px !important;
}

.u-pl-90 {
  padding-left: 90px !important;
}

.u-pr-90 {
  padding-right: 90px !important;
}

.u-mt-91 {
  margin-top: 91px !important;
}

.u-mb-91 {
  margin-bottom: 91px !important;
}

.u-ml-91 {
  margin-left: 91px !important;
}

.u-mr-91 {
  margin-right: 91px !important;
}

.u-pt-91 {
  padding-top: 91px !important;
}

.u-pb-91 {
  padding-bottom: 91px !important;
}

.u-pl-91 {
  padding-left: 91px !important;
}

.u-pr-91 {
  padding-right: 91px !important;
}

.u-mt-92 {
  margin-top: 92px !important;
}

.u-mb-92 {
  margin-bottom: 92px !important;
}

.u-ml-92 {
  margin-left: 92px !important;
}

.u-mr-92 {
  margin-right: 92px !important;
}

.u-pt-92 {
  padding-top: 92px !important;
}

.u-pb-92 {
  padding-bottom: 92px !important;
}

.u-pl-92 {
  padding-left: 92px !important;
}

.u-pr-92 {
  padding-right: 92px !important;
}

.u-mt-93 {
  margin-top: 93px !important;
}

.u-mb-93 {
  margin-bottom: 93px !important;
}

.u-ml-93 {
  margin-left: 93px !important;
}

.u-mr-93 {
  margin-right: 93px !important;
}

.u-pt-93 {
  padding-top: 93px !important;
}

.u-pb-93 {
  padding-bottom: 93px !important;
}

.u-pl-93 {
  padding-left: 93px !important;
}

.u-pr-93 {
  padding-right: 93px !important;
}

.u-mt-94 {
  margin-top: 94px !important;
}

.u-mb-94 {
  margin-bottom: 94px !important;
}

.u-ml-94 {
  margin-left: 94px !important;
}

.u-mr-94 {
  margin-right: 94px !important;
}

.u-pt-94 {
  padding-top: 94px !important;
}

.u-pb-94 {
  padding-bottom: 94px !important;
}

.u-pl-94 {
  padding-left: 94px !important;
}

.u-pr-94 {
  padding-right: 94px !important;
}

.u-mt-95 {
  margin-top: 95px !important;
}

.u-mb-95 {
  margin-bottom: 95px !important;
}

.u-ml-95 {
  margin-left: 95px !important;
}

.u-mr-95 {
  margin-right: 95px !important;
}

.u-pt-95 {
  padding-top: 95px !important;
}

.u-pb-95 {
  padding-bottom: 95px !important;
}

.u-pl-95 {
  padding-left: 95px !important;
}

.u-pr-95 {
  padding-right: 95px !important;
}

.u-mt-96 {
  margin-top: 96px !important;
}

.u-mb-96 {
  margin-bottom: 96px !important;
}

.u-ml-96 {
  margin-left: 96px !important;
}

.u-mr-96 {
  margin-right: 96px !important;
}

.u-pt-96 {
  padding-top: 96px !important;
}

.u-pb-96 {
  padding-bottom: 96px !important;
}

.u-pl-96 {
  padding-left: 96px !important;
}

.u-pr-96 {
  padding-right: 96px !important;
}

.u-mt-97 {
  margin-top: 97px !important;
}

.u-mb-97 {
  margin-bottom: 97px !important;
}

.u-ml-97 {
  margin-left: 97px !important;
}

.u-mr-97 {
  margin-right: 97px !important;
}

.u-pt-97 {
  padding-top: 97px !important;
}

.u-pb-97 {
  padding-bottom: 97px !important;
}

.u-pl-97 {
  padding-left: 97px !important;
}

.u-pr-97 {
  padding-right: 97px !important;
}

.u-mt-98 {
  margin-top: 98px !important;
}

.u-mb-98 {
  margin-bottom: 98px !important;
}

.u-ml-98 {
  margin-left: 98px !important;
}

.u-mr-98 {
  margin-right: 98px !important;
}

.u-pt-98 {
  padding-top: 98px !important;
}

.u-pb-98 {
  padding-bottom: 98px !important;
}

.u-pl-98 {
  padding-left: 98px !important;
}

.u-pr-98 {
  padding-right: 98px !important;
}

.u-mt-99 {
  margin-top: 99px !important;
}

.u-mb-99 {
  margin-bottom: 99px !important;
}

.u-ml-99 {
  margin-left: 99px !important;
}

.u-mr-99 {
  margin-right: 99px !important;
}

.u-pt-99 {
  padding-top: 99px !important;
}

.u-pb-99 {
  padding-bottom: 99px !important;
}

.u-pl-99 {
  padding-left: 99px !important;
}

.u-pr-99 {
  padding-right: 99px !important;
}

.u-mt-100 {
  margin-top: 100px !important;
}

.u-mb-100 {
  margin-bottom: 100px !important;
}

.u-ml-100 {
  margin-left: 100px !important;
}

.u-mr-100 {
  margin-right: 100px !important;
}

.u-pt-100 {
  padding-top: 100px !important;
}

.u-pb-100 {
  padding-bottom: 100px !important;
}

.u-pl-100 {
  padding-left: 100px !important;
}

.u-pr-100 {
  padding-right: 100px !important;
}

/**
 * ==============================================================================
 * File Name: _reset.scss
 * Description: 브라우저 기본 스타일 초기화
 * Usage: common.scss에서 가장 먼저 로드되어 전역에 기본 적용됨
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Box Sizing & Root Element
 * ------------------------------------------------------------------------------ */
*, *::before, *::after {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

html {
  font-size: 100%;
  line-height: 1.15;
}

html, body {
  height: 100%;
}

/* ------------------------------------------------------------------------------
 * 2. HTML5 Element Reset (Margin/Padding/Border 초기화)
 * ------------------------------------------------------------------------------ */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

/* HTML5 Block Role */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

/* ------------------------------------------------------------------------------
 * 3. Body (UA/Device behavior only)
 * - 타이포(폰트/색/line-height/letter-spacing/word-break)는 typography에서 담당
 * ------------------------------------------------------------------------------ */
body {
  -webkit-text-size-adjust: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
   -ms-user-select: none;
       user-select: none;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
}

/* 편집/클릭 가능한 요소는 반드시 예외 (UX/기능 유지) */
input,
textarea,
select,
button,
a,
[contenteditable=true] {
  -webkit-user-select: text;
  -moz-user-select: text;
   -ms-user-select: text;
       user-select: text;
  -webkit-touch-callout: default;
}

/* ------------------------------------------------------------------------------
 * 4. Lists / Tables
 * ------------------------------------------------------------------------------ */
ol, ul {
  list-style: none;
}

table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
}

/* ------------------------------------------------------------------------------
 * 5. Form Elements Reset
 * - 폼 요소는 UA 영향이 커서, 타이포 상속을 명시적으로 강제하는 게 안전
 * - appearance는 iOS/Safari에서 select, input 타입별로 영향이 큼
 * ------------------------------------------------------------------------------ */
input, select, textarea, button {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
}
input:focus, select:focus, textarea:focus, button:focus {
  outline: none;
}

/* 버튼은 UA border/background 제거 외에도 “tap highlight”가 종종 남음 */
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
}

/* iOS textarea resize 제거 */
textarea {
  resize: none;
}

/* 폼의 IE/Edge 기본 X 버튼 제거 */
input::-ms-clear,
input::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}

/* ------------------------------------------------------------------------------
 * 6. Link & Media
 * ------------------------------------------------------------------------------ */
a {
  color: inherit;
  text-decoration: none;
  line-height: inherit;
  letter-spacing: inherit;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

/* span은 원래 상속이지만 “규칙 통일” 목적이면 유지 */
span {
  line-height: inherit;
  letter-spacing: inherit;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

/* ------------------------------------------------------------------------------
 * 7. Optional: Hidden Attribute (접근성/시멘틱 안전)
 * - [hidden]은 브라우저마다 display 처리 차이가 있어 안전망으로 두는 경우 많음
 * ------------------------------------------------------------------------------ */
[hidden] {
  display: none !important;
}

/* ------------------------------------------------------------------------------
 * 8. body scroll lock (iOS safe)
 * ------------------------------------------------------------------------------ */
body.is-scroll-lock {
  position: fixed;
  left: 0;
  right: 0;
  width: 100%;
  overflow: hidden;
  /* iOS 바운스/overscroll로 인한 레이아웃 흔들림 방지 */
  -ms-scroll-chaining: none;
      overscroll-behavior: none;
  /*
   * touch-action:none은 탭/포커스 부작용 가능
   * 클릭 반응 유지용으로 최소(manipulation)만 적용
   */
  -ms-touch-action: manipulation;
      touch-action: manipulation;
}

/**
 * ==============================================================================
 * File Name: _fonts.scss
 * Description: 웹 폰트 (@font-face) 선언
 * Usage: _reset.scss 다음, _typography.scss 이전에 로드
 * ==============================================================================
 */
@font-face {
  font-family: "Noto Sans JP";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansJP-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans JP";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansJP-Medium.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans JP";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansJP-SemiBold.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans JP";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansJP-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans KR";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansKR-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans KR";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansKR-Medium.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans KR";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansKR-SemiBold.woff2") format("woff2");
}
@font-face {
  font-family: "Noto Sans KR";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/NotoSansKR-Bold.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-Regular.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-weight: 500;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-Medium.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-weight: 600;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-SemiBold.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("../fonts/Inter-Bold.woff2") format("woff2");
}
/**
 * ==============================================================================
 * File Name: _typography.scss
 * Description: 전역 텍스트 스타일 및 타이틀 유틸리티 클래스
 * Class Rule: .t-{role}-{size} (ex: .t-h1, .t-body-sm)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * Base Tokens (typography only)
 * - 프로젝트 전역 기본 타이포 값(상속 기반)
 * ------------------------------------------------------------------------------ */
html {
  font-size: 62.5%;
}

body {
  background-color: var(--bg-page);
  color: var(--text-body);
  font-family: "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.4rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.03em;
  word-break: keep-all;
  overflow-wrap: break-word;
  -webkit-overflow-scrolling: touch;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

html[lang=ko] body {
  font-family: "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

html[lang=ja] body {
  font-family: "Noto Sans JP", "Noto Sans KR", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

/* ==============================================================================
 * 1. Heading Tags (Semantic base)
 * - SEO 목적의 시멘틱 태그 기본 스타일
 * ============================================================================== */
h1, h2, h3, h4, h5, h6 {
  color: var(--text-primary);
  font-weight: 600;
  line-height: 1.5;
}

/* 태그별 기본 사이즈 매핑 */
h1 {
  font-size: 2.4rem;
}

h2 {
  font-size: 2rem;
}

h3 {
  font-size: 1.8rem;
}

h4 {
  font-size: 1.6rem;
}

h5 {
  font-size: 1.5rem;
}

h6 {
  font-size: 1.4rem;
}

/* ==============================================================================
 * 2. Typography Utilities
 * ============================================================================== */
.t-wrap.is-right {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.t-wrap.is-both {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.t-wrap.is-center {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.t-title {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 1.6rem;
}
.t-title h2, .t-title h3 {
  margin-bottom: 0;
}

/* 리스트형 타이포 (dl/dt/dd) */
.t-list dl {
  line-height: 1.5;
}
.t-list dl dt {
  color: var(--text-primary);
  font-size: 1.5rem;
  font-weight: 600;
}
.t-list dl dd {
  margin-top: 0.2rem;
  color: var(--text-sub);
  font-size: 1.4rem;
}
.t-list dl:has(.c-icon) dt {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
}
.t-list dl:has(.c-icon) dt .c-icon {
  --icon-size: 24px;
}
.t-list dl:has(.c-icon) dd {
  padding-left: 3.6rem;
}
.t-list dl + dl {
  margin-top: 1.2rem;
}

/* title 공통 마진/버튼 대응 */
.t-h3, .t-h4, .t-h5 {
  margin-bottom: 1.2rem;
}
.t-h3:has(.c-btn), .t-h4:has(.c-btn), .t-h5:has(.c-btn) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.t-h3 .c-btn--text, .t-h4 .c-btn--text, .t-h5 .c-btn--text {
  color: var(--text-caption);
}

/* title tone */
.t-hero, .t-h1, .t-h2, .t-h3, .t-h4, .t-h5 {
  color: var(--text-primary);
}

/* [Hero] 메인 비주얼 */
.t-hero {
  font-size: 2.8rem;
  font-weight: 700;
  line-height: 1.3;
}

/* [H1] 페이지 타이틀 */
.t-h1 {
  font-size: 2.4rem;
  font-weight: 400;
  line-height: 1.35;
}
.t-h1 > .bold {
  font-weight: 700;
}

/* [H2] 섹션 타이틀 */
.t-h2 {
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
}

/* [H3] 서브 섹션 / 카드 타이틀 */
.t-h3 {
  font-size: 1.8rem;
  font-weight: 600;
}

/* [H4] 소제목 */
.t-h4 {
  font-size: 1.6rem;
  font-weight: 500;
}

/* [H5] 리스트 타이틀 */
.t-h5 {
  font-size: 1.5rem;
  font-weight: 500;
}

/* [H6] 작은 타이틀 */
.t-h6 {
  color: var(--text-body);
  font-size: 1.4rem;
  font-weight: 500;
}

/* ==============================================================================
 * 3. Body Text Utilities
 * ============================================================================== */
.t-body {
  color: var(--text-caption);
  font-size: 1.4rem;
  font-weight: 400;
}

.t-body-sm {
  color: var(--text-sub);
  font-size: 1.3rem;
  font-weight: 400;
}

.t-caption {
  color: var(--text-caption);
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.4;
}

.t-caption-xs {
  color: var(--text-caption);
  font-size: 1.1rem;
  line-height: 1.25;
}

/* ==============================================================================
 * 4. Common Modifiers
 * ============================================================================== */
.t-regular {
  font-weight: 400 !important;
}

.t-medium {
  font-weight: 500 !important;
}

.t-semibold {
  font-weight: 600 !important;
}

.t-bold {
  font-weight: 700 !important;
}

.t-light {
  color: var(--text-caption) !important;
}

/* ------------------------------------------------------------------------------
 * Social Font Helper
 * - 소셜 로그인 버튼 등에서 OS 네이티브 폰트 느낌을 사용할 때 적용
 * - 예) <button class="c-btn ... t-social">Google 계정으로 로그인</button>
 * ------------------------------------------------------------------------------ */
.t-social {
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans KR", "Noto Sans JP", sans-serif !important;
  letter-spacing: -0.01em;
}

/* ------------------------------------------------------------------------------
 * Optional: number helper
 * ------------------------------------------------------------------------------ */
.t-num {
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
}

/**
 * ==============================================================================
 * File Name: _icons.scss
 * Description: SVG 아이콘 시스템 (CSS mask + fallback)
 * Usage: <i class="c-icon icon-search"></i>
 *
 * - 색상: background-color 로 제어
 * - 경로: 각 .icon-* 에서 --icon-url 로만 지정
 *
 * [Flicker Patch]
 * - shimmer/transform 등 GPU 레이어와 mask 합성 충돌로 깜빡임이 발생할 수 있음
 * - 아이콘에 isolation:isolate 적용해 독립 스태킹 컨텍스트로 분리
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 내부 유틸: mask 지원 브라우저 분기
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * Base Icon
 * ------------------------------------------------------------------------------ */
.c-icon {
  display: inline-block;
  vertical-align: middle;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  /* 합성 레이어 충돌(깜빡임) 방지 */
  isolation: isolate;
  /* size */
  --icon-size: 24px;
  width: var(--icon-size);
  height: var(--icon-size);
  /* 기본 색상 (mask 지원 브라우저에서 사용) */
  background-color: #2B2B2B;
  /* 아이콘 파일 URL 을 담는 CSS 변수 */
  --icon-url: none;
  /* fallback: mask 미지원 브라우저는 background-image 사용 */
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: var(--icon-url);
  /* mask 지원 브라우저: mask-image 로 전환 */
}
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .c-icon {
    background-image: none;
    -webkit-mask-image: var(--icon-url);
    mask-image: var(--icon-url);
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-position: center;
    -webkit-mask-size: contain;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
  }
}
.c-icon--xxs {
  --icon-size: 12px;
}
.c-icon--xs {
  --icon-size: 14px;
}
.c-icon--sm {
  --icon-size: 16px;
}
.c-icon--md {
  --icon-size: 20px;
}
.c-icon--lg {
  --icon-size: 24px;
}
.c-icon--xl {
  --icon-size: 32px;
}
.c-icon--xxl {
  --icon-size: 56px;
}
.c-icon--primary {
  background-color: var(--primary);
}
.c-icon--white {
  background-color: #ffffff;
}
.c-icon--gray {
  background-color: #ADADAD;
}
.c-icon--gray-9 {
  background-color: #2B2B2B;
}
.c-icon--gray-8 {
  background-color: #404040;
}
.c-icon--gray-7 {
  background-color: #6B6B6B;
}
.c-icon--gray-6 {
  background-color: #838383;
}
.c-icon--gray-5 {
  background-color: #ADADAD;
}
.c-icon--gray-4 {
  background-color: #C8C8C8;
}
.c-icon--gray-3 {
  background-color: #E0E0E0;
}
.c-icon--gray-2 {
  background-color: #F0F0F0;
}
.c-icon--gray-1 {
  background-color: #F7F7F7;
}
.c-icon--danger {
  background-color: #EE443F;
}
.c-icon.is-active {
  background-color: var(--primary);
}

/* ------------------------------------------------------------------------------
 * Sprite Icons (outline + filled, 2 rows)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * Icon Mapping
 *  - 각 아이콘은 --icon-url만 세팅
 * ------------------------------------------------------------------------------ */
/* [Bottom Navigation] */
.icon-home {
  --icon-url: url("../images/icons/icon_home.svg");
}

.icon-hospital {
  --icon-url: url("../images/icons/icon_hospital.svg");
}

.icon-review {
  --icon-url: url("../images/icons/icon_review.svg");
}

.icon-counsel {
  --icon-url: url("../images/icons/icon_counsel.svg");
}

.icon-user {
  --icon-url: url("../images/icons/icon_user.svg");
}

/* [Header & Action] */
.icon-search {
  --icon-url: url("../images/icons/icon_search.svg");
}

.icon-bell {
  --icon-url: url("../images/icons/icon_bell.svg");
}

.icon-bell-new {
  --icon-url: url("../images/icons/icon_bell-new.svg");
}

.icon-back {
  --icon-url: url("../images/icons/icon_arr-left.svg");
}

.icon-menu {
  --icon-url: url("../images/icons/icon_menu.svg");
}

.icon-share {
  --icon-url: url("../images/icons/icon_share.svg");
}

.icon-share-ios {
  --icon-url: url("../images/icons/icon_share-ios.svg");
}

.icon-share-aos {
  --icon-url: url("../images/icons/icon_share-aos.svg");
}

.icon-edit {
  --icon-url: url("../images/icons/icon_edit.svg");
}

.icon-close {
  --icon-url: url("../images/icons/icon_close.svg");
}

.icon-kebab {
  --icon-url: url("../images/icons/icon_kebab.svg");
}

.icon-index {
  --icon-url: url("../images/icons/icon_index.svg");
}

/* [Quick Menu] */
.icon-counsel_primary {
  --icon-url: url("../images/icons/icon_counsel_primary.svg");
}

.icon-list_primary {
  --icon-url: url("../images/icons/icon_list_primary.svg");
}

.icon-heart_primary {
  --icon-url: url("../images/icons/icon_heart_primary.svg");
}

.icon-help_primary {
  --icon-url: url("../images/icons/icon_help_primary.svg");
}

/* [Status & Misc] */
.icon-star {
  --icon-url: url("../images/icons/icon_star.svg");
}

.icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark.svg");
}

.icon-bookmark-on {
  --icon-url: url("../images/icons/icon_bookmark-fill.svg");
}

.icon-bookmark-white {
  --icon-url: url("../images/icons/icon_bookmark-white.svg");
}

.icon-bookmark-gray {
  --icon-url: url("../images/icons/icon_bookmark-gray.svg");
}

.icon-check {
  --icon-url: url("../images/icons/icon_check.svg");
}

.icon-arr-top {
  --icon-url: url("../images/icons/icon_arr-top.svg");
}

.icon-arr-right {
  --icon-url: url("../images/icons/icon_arr-right.svg");
}

.icon-arr-left {
  --icon-url: url("../images/icons/icon_arr-left.svg");
}

.icon-arr-bottom {
  --icon-url: url("../images/icons/icon_arr-bottom.svg");
}

/* [Etc] */
.icon-like {
  --icon-url: url("../images/icons/icon_like.svg");
}

.icon-filter {
  --icon-url: url("../images/icons/icon_filter.svg");
}

.icon-calendar {
  --icon-url: url("../images/icons/icon_calendar.svg");
}

.icon-report {
  --icon-url: url("../images/icons/icon_report.svg");
}

.icon-delete {
  --icon-url: url("../images/icons/icon_delete.svg");
}

.icon-change {
  --icon-url: url("../images/icons/icon_change.svg");
}

.icon-eye {
  --icon-url: url("../images/icons/icon_eye.svg");
}

.icon-eye-off {
  --icon-url: url("../images/icons/icon_eye-off.svg");
}

.icon-time {
  --icon-url: url("../images/icons/icon_time.svg");
}

.icon-chat {
  --icon-url: url("../images/icons/icon_chat.svg");
}

.icon-phone {
  --icon-url: url("../images/icons/icon_phone.svg");
}

.icon-save {
  --icon-url: url("../images/icons/icon_save.svg");
}

.icon-camera {
  --icon-url: url("../images/icons/icon_camera.svg");
}

.icon-plus {
  --icon-url: url("../images/icons/icon_plus.svg");
}

.icon-counsel {
  --icon-url: url("../images/icons/icon_counsel.svg");
}

.icon-consult {
  --icon-url: url("../images/icons/icon_consult.svg");
}

.icon-copy {
  --icon-url: url("../images/icons/icon_copy.svg");
}

.icon-note {
  --icon-url: url("../images/icons/icon_note.svg");
}

.icon-location {
  --icon-url: url("../images/icons/icon_location.svg");
}

.icon-location-fill {
  --icon-url: url("../images/icons/icon_location_fill.svg");
}

.icon-grade_empty {
  --icon-url: url("../images/icons/icon_grade-empty.svg");
}

.icon-grade_half {
  --icon-url: url("../images/icons/icon_grade-half.svg");
}

.icon-grade_full {
  --icon-url: url("../images/icons/icon_grade-full.svg");
}

/* [카드컴포넌트 - 병원] */
.icon-injection {
  --icon-url: url("../images/icons/icon_injection.svg");
}

.icon-plus-bold {
  --icon-url: url("../images/icons/icon_plus_bold.svg");
}

.icon-globe {
  --icon-url: url("../images/icons/icon_globe.svg");
}

.icon-user-check {
  --icon-url: url("../images/icons/icon_user-check.svg");
}

.icon-night {
  --icon-url: url("../images/icons/icon_night.svg");
}

.icon-emergency {
  --icon-url: url("../images/icons/icon_emergency.svg");
}

.icon-group {
  --icon-url: url("../images/icons/icon_group.svg");
}

.icon-rest {
  --icon-url: url("../images/icons/icon_rest.svg");
}

.icon-care {
  --icon-url: url("../images/icons/icon_care.svg");
}

.icon-mapinfo {
  --icon-url: url("../images/icons/icon_mapinfo.svg");
}

.icon-beauty {
  --icon-url: url("../images/icons/icon_beauty.svg");
}

.icon-woman {
  --icon-url: url("../images/icons/icon_woman.svg");
}

.icon-train {
  --icon-url: url("../images/icons/icon_train.svg");
}

.icon-mortarboard {
  --icon-url: url("../images/icons/icon_mortarboard.svg");
}

.icon-doctor {
  --icon-url: url("../images/icons/icon_doctor.svg");
}

/* [마이페이지] */
.icon-receipt {
  --icon-url: url("../images/icons/icon_receipt.svg");
}

.icon-heart {
  --icon-url: url("../images/icons/icon_heart.svg");
}

.icon-history {
  --icon-url: url("../images/icons/icon_history.svg");
}

.icon-lock {
  --icon-url: url("../images/icons/icon_lock.svg");
}

.icon-checklist {
  --icon-url: url("../images/icons/icon_checklist.svg");
}

.icon-speaker {
  --icon-url: url("../images/icons/icon_speaker.svg");
}

.icon-customer {
  --icon-url: url("../images/icons/icon_customer.svg");
}

.icon-info {
  --icon-url: url("../images/icons/icon_info.svg");
}

.icon-user-x {
  --icon-url: url("../images/icons/icon_user-x.svg");
}

.icon-camera-fill {
  --icon-url: url("../images/icons/icon_camera_fill.svg");
}

.icon-alert {
  --icon-url: url("../images/icons/icon_alert.svg");
}

/* ------------------------------------------------------------------------------
 * Multi-color / Image Icon Mode
 *  - mask를 끄고 원본 이미지를 그대로 표시
 *  - ex) <i class="c-icon c-icon--img icon-bell-new"></i>
 * ------------------------------------------------------------------------------ */
.c-icon--img {
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: var(--icon-url);
  /* 합성 레이어 충돌(깜빡임) 방지 */
  isolation: isolate;
}
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .c-icon--img {
    -webkit-mask-image: none;
    mask-image: none;
    background-image: var(--icon-url);
  }
}

/**
 * ==============================================================================
 * File Name: _animations.scss
 * Description: 재사용 가능한 Keyframes 애니메이션 정의
 * Usage: Components/_overlays.scss (모달, 토스트) 등에서 사용
 * ==============================================================================
 */
@-webkit-keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@-webkit-keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3);
            transform: scale(0.3);
  }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
  70% {
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes bounceIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.3);
            transform: scale(0.3);
  }
  50% {
    opacity: 1;
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
  70% {
    -webkit-transform: scale(0.9);
            transform: scale(0.9);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@-webkit-keyframes scaleUp {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes scaleUp {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }
  60% {
    opacity: 1;
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@-webkit-keyframes popIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }
  70% {
    opacity: 1;
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@keyframes popIn {
  0% {
    opacity: 0;
    -webkit-transform: scale(0.5);
            transform: scale(0.5);
  }
  70% {
    opacity: 1;
    -webkit-transform: scale(1.1);
            transform: scale(1.1);
  }
  100% {
    -webkit-transform: scale(1);
            transform: scale(1);
  }
}
@-webkit-keyframes slide-up {
  from {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes slide-up {
  from {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
  }
  to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes scale-in {
  from {
    -webkit-transform: scale(0.95);
            transform: scale(0.95);
    opacity: 0.8;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
@keyframes scale-in {
  from {
    -webkit-transform: scale(0.95);
            transform: scale(0.95);
    opacity: 0.8;
  }
  to {
    -webkit-transform: scale(1);
            transform: scale(1);
    opacity: 1;
  }
}
@-webkit-keyframes toast-fade-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes toast-fade-in {
  from {
    opacity: 0;
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes toast-slide-down {
  from {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    opacity: 0;
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}
@keyframes toast-slide-down {
  from {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
  to {
    opacity: 0;
    -webkit-transform: translateY(8px);
            transform: translateY(8px);
  }
}
@-webkit-keyframes panelFadeUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes panelFadeUp {
  from {
    opacity: 0;
    -webkit-transform: translateY(10px);
            transform: translateY(10px);
  }
  to {
    opacity: 1;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@-webkit-keyframes btn-dot-bounce {
  0%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 0.4;
  }
  40% {
    -webkit-transform: translateY(-0.2rem);
            transform: translateY(-0.2rem);
    opacity: 1;
  }
}
@keyframes btn-dot-bounce {
  0%, 80%, 100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 0.4;
  }
  40% {
    -webkit-transform: translateY(-0.2rem);
            transform: translateY(-0.2rem);
    opacity: 1;
  }
}
@-webkit-keyframes btn-shimmer {
  from {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  to {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}
@keyframes btn-shimmer {
  from {
    -webkit-transform: translateX(-100%);
            transform: translateX(-100%);
  }
  to {
    -webkit-transform: translateX(100%);
            transform: translateX(100%);
  }
}
/**
 * ==============================================================================
 * File Name: _container.scss
 * Description: 프로젝트 전체 레이아웃 구조 및 컨테이너 스타일
 * Prefix: .l- (Layout)
 * ==============================================================================
 *
 * [--l-bottom-h]
 * JS(syncBottomHeight)가 l-bottom-fixed | l-footer의 offsetHeight를 실측하여
 * <html>에 세팅. 요소가 없으면 0px. safe-area 패딩 포함.
 * → l-container padding-bottom, scroll-padding-bottom 자동 보정에 사용.
 * ==============================================================================
 */
/* 앵커 이동 / scrollIntoView() 시 하단 고정 영역에 가리지 않도록 보정 */
html {
  scroll-padding-bottom: var(--l-bottom-h, 0px);
}

/* ------------------------------------------------------------------------------
 * 1. Wrapper
 * ------------------------------------------------------------------------------ */
.l-wrapper {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  min-height: 100vh;
}
@supports (min-height: 100dvh) {
  .l-wrapper {
    min-height: 100dvh;
  }
}
.l-wrapper.l-wrapper--popup .l-footer {
  display: none;
}
.l-wrapper {
  /* l-bottom-fixed와 l-footer가 동시에 존재하면 footer 숨김 (이중 보정 방지) */
}
.l-wrapper:has(.l-bottom-fixed) .l-footer {
  display: none;
}

/* ------------------------------------------------------------------------------
 * 2. Container
 * ------------------------------------------------------------------------------ */
.l-container {
  position: relative;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  width: 100%;
  min-height: 0;
  --container-bottom-gap: 2.4rem;
  padding: 1.2rem var(--page-gutter);
  /* 하단 고정 영역 실측 높이 + 시각적 여백(토큰 분리, 페이지별 오버라이드 가능) */
  padding-bottom: calc(var(--l-bottom-h, 0px) + var(--container-bottom-gap));
}
.l-container .l-section:not(:last-child) {
  margin-bottom: 3.4rem;
}

/* ------------------------------------------------------------------------------
 * 3. Background Utilities
 * ------------------------------------------------------------------------------ */
.u-bg-gray .l-header {
  background-color: #F7F7F7;
}

/**
 * ==============================================================================
 * File Name: _header.scss
 * Description: 상단 헤더 컴포넌트 스타일
 * Prefix: .l- (Layout)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Header Base
 * ------------------------------------------------------------------------------ */
.l-header {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  background-color: #ffffff;
  padding-top: 0;
}
html[data-os=ios] .l-header {
  padding-top: calc(0 + env(safe-area-inset-top, 0px));
}
.l-header.is-scrolled {
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.l-header {
  /* ----------------------------------------------------------------------------
   * 1-1. Common Elements
   * -------------------------------------------------------------------------- */
}
.l-header .btn-icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.l-header .btn-icon .c-icon {
  --icon-size: 22px;
}
.l-header .btn-icon .c-icon.icon-back {
  --icon-size: 24px;
}
.l-header .btn-icon .c-icon:not(.c-icon--img) {
  background-color: #6B6B6B;
}
.l-header .btn-icon.is-show {
  display: -webkit-inline-box !important;
  display: -ms-inline-flexbox !important;
  display: inline-flex !important;
}
.l-header .btn-icon.is-hidden {
  display: none !important;
}
.l-header {
  /* ----------------------------------------------------------------------------
   * 1-2. Layout
   * -------------------------------------------------------------------------- */
}
.l-header__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  position: relative;
  width: 100%;
  height: 4.8rem;
  padding: 0 1rem;
}
.l-header__side {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}
.l-header__side--left {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.l-header__side--right {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  margin-left: auto;
}
.l-header__center {
  position: absolute;
  top: 50%;
  left: 50%;
  max-width: calc(100% - 19.2rem);
  text-align: center;
  pointer-events: none;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.l-header__center .l-header__title {
  pointer-events: auto;
}
.l-header {
  /* ----------------------------------------------------------------------------
   * 1-3. Brand / Logo
   * -------------------------------------------------------------------------- */
}
.l-header__brand {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  margin: 0 0 0 1rem;
}
.l-header__brand-label {
  color: #2B2B2B;
  font-size: 2rem;
  font-weight: 700;
  line-height: 1.4;
}
.l-header__logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 4rem;
}
.l-header__logo img {
  display: block;
  width: auto;
  height: 1.9rem;
  -o-object-fit: contain;
     object-fit: contain;
}
.l-header {
  /* ----------------------------------------------------------------------------
   * 1-4. Title
   * -------------------------------------------------------------------------- */
}
.l-header__title {
  margin: 0;
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.l-header {
  /* ----------------------------------------------------------------------------
   * 1-5. Utility Area
   * -------------------------------------------------------------------------- */
}
.l-header__util {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  gap: 0.4rem;
}
.l-header__util .btn-alarm.is-active .icon-bell {
  --icon-url: url("../images/icons/icon_bell-new.svg");
}
.l-header__util .btn-bookmark .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark.svg");
}
.l-header__util .btn-bookmark.is-active .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark_fill.svg");
}

/* ------------------------------------------------------------------------------
 * 2. Header Variants (data-header-type)
 * ------------------------------------------------------------------------------ */
.l-header[data-header-type=nav] .btn-back,
.l-header[data-header-type=nav] .btn-edit,
.l-header[data-header-type=nav] .btn-share,
.l-header[data-header-type=nav] .btn-close {
  display: none;
}
.l-header[data-header-type=nav] .l-header__center {
  display: none;
}

.l-header[data-header-type=sub] .l-header__center {
  display: block;
}
.l-header[data-header-type=sub] .l-header__brand {
  display: none;
}
.l-header[data-header-type=sub] .btn-search,
.l-header[data-header-type=sub] .btn-alarm,
.l-header[data-header-type=sub] .btn-menu {
  display: none;
}
.l-header[data-header-type=sub] .l-header__side--left .btn-close {
  display: none;
}

.l-header[data-header-type=detail] .l-header__center {
  display: block;
}
.l-header[data-header-type=detail] .l-header__brand {
  display: none;
}
.l-header[data-header-type=detail] .btn-search,
.l-header[data-header-type=detail] .btn-alarm,
.l-header[data-header-type=detail] .btn-menu,
.l-header[data-header-type=detail] .btn-close {
  display: none;
}

.l-header[data-header-type=popup] .l-header__brand {
  display: none;
}

/* ------------------------------------------------------------------------------
 * 3. Background Context Overrides
 * ------------------------------------------------------------------------------ */
.u-bg .l-header:not([data-header-type=popup]) .l-header__inner {
  background-color: #FAF7F9;
}

/**
 * ==============================================================================
 * File Name: _footer.scss
 * Description: 하단 고정 네비게이션 (Bottom Navigation Bar)
 * Prefix: .l- (Layout)
 * ==============================================================================
 *
 * [Safe Area - 디바이스별 분기]
 * - iOS: env(safe-area-inset-bottom)만 사용 (추가 패딩 0)
 * - Android: 1.2rem 고정 패딩 (--aos-safe-padding)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Bottom Navigation
 * ------------------------------------------------------------------------------ */
.l-footer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 200;
  width: 100%;
  border-radius: 1.7rem 1.7rem 0 0;
  background-color: #ffffff;
  -webkit-box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
          box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
  /* 기본 패딩 (fallback) */
  padding-bottom: 0;
  /* 모바일 웹뷰에서 탭 하이라이트 등 시각 노이즈 방지 */
  -webkit-tap-highlight-color: transparent;
  /* iOS: safe-area만 (추가 패딩 0) */
}
html[data-os=ios] .l-footer {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.l-footer {
  /* Android: 1.2rem 고정 */
}
html[data-os=aos] .l-footer {
  padding-bottom: var(--aos-safe-padding);
}
.l-footer {
  /* PC: Android와 동일 */
}
body.is-desktop .l-footer {
  padding-bottom: var(--aos-safe-padding);
}

.l-footer-nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  height: 5.8rem;
  padding: 1.2rem var(--page-gutter) 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.l-footer-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 100%;
  color: #C8C8C8;
  text-decoration: none;
  cursor: pointer;
  -webkit-transition: color 0.2s;
  transition: color 0.2s;
}
.l-footer-item__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.l-footer-item .c-icon {
  margin-bottom: 0.4rem;
  background-color: #C8C8C8;
  -webkit-transition: background-color 0.2s;
  transition: background-color 0.2s;
}
.l-footer-item span {
  font-size: 12px;
  font-weight: 500;
}
.l-footer-item.is-active {
  color: #2B2B2B;
}
.l-footer-item.is-active .c-icon {
  background-color: #2B2B2B;
}
.l-footer-item.is-active span {
  font-weight: 700;
}

/* ------------------------------------------------------------------------------
 * 2. Bottom Fixed Action Area
 * ------------------------------------------------------------------------------ */
.l-bottom-fixed {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 200;
  width: 100%;
  padding: 1.2rem 1.6rem 0;
  padding-bottom: 0;
  background: #ffffff;
  /* iOS: safe-area만 */
}
html[data-os=ios] .l-bottom-fixed {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.l-bottom-fixed {
  /* Android: 1.2rem 고정 */
}
html[data-os=aos] .l-bottom-fixed {
  padding-bottom: var(--aos-safe-padding);
}
.l-bottom-fixed {
  /* PC: Android와 동일 */
}
body.is-desktop .l-bottom-fixed {
  padding-bottom: var(--aos-safe-padding);
}
.l-bottom-fixed:has(.c-btn--social) {
  padding: 1.2rem 2.4rem 0;
  padding-bottom: 0;
}
html[data-os=ios] .l-bottom-fixed:has(.c-btn--social) {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
html[data-os=aos] .l-bottom-fixed:has(.c-btn--social) {
  padding-bottom: var(--aos-safe-padding);
}
body.is-desktop .l-bottom-fixed:has(.c-btn--social) {
  padding-bottom: var(--aos-safe-padding);
}
.l-bottom-fixed .c-bottom-text {
  color: #ADADAD;
  font-size: 12px;
  font-weight: 400;
  text-align: center;
  word-break: keep-all;
}
.l-bottom-fixed .c-btn-group.has-line {
  margin: 1.8rem 0 2.4rem;
}
.l-bottom-fixed .c-btn-group.has-line .c-btn--text {
  color: #ADADAD;
}

/**
 * ==============================================================================
 * File Name: _badges.scss
 * Description: 상태 표시용 라벨(뱃지) 컴포넌트
 * Prefix: .c- (Component)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Badges
 * ------------------------------------------------------------------------------ */
.c-badges {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}
.c-badges__more {
  color: #6EDFEA;
  font-size: 1.3rem;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 500;
  line-height: 1;
}
.c-badges__more--outline {
  color: #ADADAD;
}

.c-badge {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  height: 21px;
  padding: 0 0.8rem;
  border: 1px solid transparent;
  border-radius: 0.8rem;
  background-color: #ffffff;
  color: #404040;
  font-size: 1.1rem;
  font-weight: 400;
  white-space: nowrap;
  line-height: 1;
}
.c-badge--gray {
  border-color: #F0F0F0;
  background-color: #F7F7F7;
  color: #838383;
}
.c-badge--primary {
  background-color: #FFF1FB;
  color: #FF66CC;
}
.c-badge--secondary {
  background-color: #DAF7FA;
  color: #00AABF;
}
.c-badge--success {
  border-color: rgba(46, 204, 113, 0.2);
  background-color: rgba(46, 204, 113, 0.1);
  color: rgb(41.4, 183.6, 101.7);
}
.c-badge--danger {
  border-color: rgba(238, 68, 63, 0.2);
  background-color: rgba(238, 68, 63, 0.1);
  color: #EE443F;
}
.c-badge--info {
  border-color: rgba(52, 152, 219, 0.2);
  background-color: rgba(52, 152, 219, 0.1);
  color: #3498DB;
}
.c-badge--black {
  border-color: #000000;
  background-color: #000000;
  color: #ffffff;
}
.c-badge--outline {
  border-color: #DDDDDD;
  background-color: transparent;
  color: #838383;
}
.c-badge--outline.c-badge--sm {
  color: #ADADAD;
}
.c-badge--pill {
  border-radius: 9999px;
}
.c-badge--square {
  border-radius: 0;
}
.c-badge--sm {
  height: 21px;
}
.c-badge--md {
  height: 27px;
}

/* ------------------------------------------------------------------------------
 * 2. Chips
 * ------------------------------------------------------------------------------ */
.c-chip-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.4rem;
}
.c-chip-list .c-chip {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 2.8rem;
  padding: 0 1.3rem;
  border: 1px solid #DDDDDD;
  border-radius: 1rem;
  background-color: #ffffff;
  color: #ADADAD;
  font-size: 1.4rem;
  font-weight: 500;
  white-space: nowrap;
  cursor: pointer;
}
.c-chip-list .c-chip.is-active {
  border-color: #FFAEE6;
  background-color: #FFF1FB;
  color: #FF66CC;
}
.c-chip-list--md .c-chip {
  min-width: 4.8rem;
  height: 3.5rem;
  padding: 0 1.2rem;
  font-weight: 400;
}

/* ------------------------------------------------------------------------------
 * 3. Summary Box
 * ------------------------------------------------------------------------------ */
.c-summary-box {
  border: 1px solid #DDDDDD;
  border-radius: 1.6rem;
  background-color: #ffffff;
  overflow: hidden;
}
.c-summary-box .c-summary-box__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
}
.c-summary-box .c-summary-box__item {
  position: relative;
  padding: 1.25rem 1rem;
  text-align: center;
}
.c-summary-box .c-summary-box__item:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: inline-block;
  width: 1px;
  height: 100%;
  background: #F2F2F2;
}
.c-summary-box .c-summary-box__item:first-child::before {
  display: none;
}
.c-summary-box .c-summary-box__label {
  display: block;
  color: #404040;
  font-size: 1.2rem;
  font-weight: 500;
}
.c-summary-box .c-summary-box__value {
  display: inline-block;
  width: auto;
  margin-top: 0.4rem;
  color: #404040;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.c-summary-box .c-summary-box__value.is-active {
  border-bottom: 1px solid #404040;
}

/* ------------------------------------------------------------------------------
 * 4. Keyword List
 * ------------------------------------------------------------------------------ */
.c-keyword-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.6rem;
}
.c-keyword-list .c-keyword-tag {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 2.8rem;
  padding: 0 0.8rem;
  border-radius: 0.8rem;
  background-color: #FFF1FB;
  color: #FF66CC;
  font-size: 1.3rem;
}
.c-keyword-list .c-keyword-tag .btn-del {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2rem;
  height: 2rem;
  margin-left: 0.4rem;
  border: none;
  background: none;
  color: #FFAEE6;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
}
.c-keyword-list .c-keyword-tag .btn-del .c-icon {
  --icon-size: 11px;
  background-color: #FFAEE6;
}
.c-keyword-list .c-keyword-tag:has(.btn-del) {
  padding-right: 0.3rem;
}
.c-keyword-list--sm .c-keyword-tag {
  gap: 0.3rem;
  height: 3.5rem;
  padding: 0 0.4rem 0 1em;
  background-color: #ffffff;
  border: 1px solid #E0E0E0;
  color: #2B2B2B;
}
.c-keyword-list--sm .c-keyword-tag .btn-del .icon-close {
  background-color: #838383;
}
.c-keyword-list--md .c-keyword-tag {
  gap: 0;
  height: 3.5rem;
  padding: 0 1.2rem;
  background-color: #FFF1FB;
  border: 1px solid #FFF1FB;
  color: #FF66CC;
}
.c-keyword-list.is-scroll-x {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  overflow-x: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.c-keyword-list.is-scroll-x::-webkit-scrollbar {
  display: none;
}
.c-keyword-list.is-scroll-x .c-keyword-tag {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

/**
 * ==============================================================================
 * Component: Buttons
 * Description: 공통 및 전용 버튼 스타일
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 내부 유틸
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 1. Base Button (.c-btn)
 * ------------------------------------------------------------------------------ */
.c-btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  position: relative;
  padding: 0.6rem 1rem;
  border: 1px solid transparent;
  border-radius: 1rem;
  background-color: transparent;
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: -0.03em;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out;
}
.c-btn .c-icon {
  --icon-size: 16px;
}
.c-btn:has(.c-icon) {
  gap: 0.4rem;
}
.c-btn:disabled, .c-btn.is-disabled {
  background-color: #F0F0F0;
  border-color: #F0F0F0;
  color: #C8C8C8;
  pointer-events: none;
  cursor: not-allowed;
}
.c-btn:disabled .c-icon, .c-btn.is-disabled .c-icon {
  background-color: #C8C8C8 !important;
}
.c-btn.is-loading {
  pointer-events: none;
  overflow: hidden;
}
.c-btn.is-loading .c-btn__text {
  visibility: hidden;
}
.c-btn.is-loading .c-btn__loader {
  position: absolute;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
}
.c-btn.is-loading .c-btn__loader span {
  width: 0.7rem;
  height: 0.7rem;
  border-radius: 50%;
  background-color: currentColor;
  -webkit-animation: btn-dot-bounce 0.7s ease-in-out infinite;
          animation: btn-dot-bounce 0.7s ease-in-out infinite;
}
.c-btn.is-loading .c-btn__loader span:nth-child(2) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}
.c-btn.is-loading .c-btn__loader span:nth-child(3) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}
.c-btn.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: -webkit-gradient(linear, left top, right top, from(transparent), color-stop(50%, rgba(255, 255, 255, 0.2)), to(transparent));
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.2) 50%, transparent 100%);
  -webkit-animation: btn-shimmer 1s ease-in-out infinite;
          animation: btn-shimmer 1s ease-in-out infinite;
}
.c-btn--primary {
  background-color: #FF66CC;
  border-color: #FF66CC;
  color: #ffffff;
}
.c-btn--primary-100 {
  background-color: #FFE3F7;
  border-color: #FFE3F7;
  color: #FF66CC;
}
.c-btn--gray-100 {
  background-color: #F7F7F7;
  border-color: #F7F7F7;
  color: #838383;
}
.c-btn--gray-200 {
  background-color: #F0F0F0;
  border-color: #F0F0F0;
  color: #838383;
}
.c-btn--gray-300 {
  background-color: #E0E0E0;
  border-color: #E0E0E0;
  color: #838383;
}
.c-btn--gray-400 {
  background-color: #C8C8C8;
  border-color: #C8C8C8;
  color: #838383;
}
.c-btn--secondary {
  background-color: #2B2B2B;
  border-color: #2B2B2B;
  color: #ffffff;
}
.c-btn--outline {
  background-color: #ffffff;
  border-color: #2B2B2B;
  color: #2B2B2B;
}
.c-btn--outline.c-btn--primary {
  background-color: #ffffff;
  border-color: #FF66CC;
  color: #FF66CC;
}
.c-btn--outline.c-btn--gray-100 {
  background-color: #ffffff;
  border-color: #F7F7F7;
  color: #838383;
}
.c-btn--outline.c-btn--gray-200 {
  background-color: #ffffff;
  border-color: #F0F0F0;
  color: #838383;
}
.c-btn--outline.c-btn--gray-300 {
  background-color: #ffffff;
  border-color: #E0E0E0;
  color: #838383;
}
.c-btn--outline.c-btn--gray-400 {
  background-color: #ffffff;
  border-color: #C8C8C8;
  color: #838383;
}
.c-btn--outline.c-btn--bdline {
  background-color: #ffffff;
  border-color: #DDDDDD;
  color: #838383;
}
.c-btn--text {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none !important;
  color: #838383;
  font-size: 1.2rem;
  font-weight: 400;
}
.c-btn--text:has(.c-icon) {
  padding: 0;
}
.c-btn--text:has(.c-icon) .c-icon:not(.c-icon--primary) {
  background-color: #838383;
}
.c-btn--text.c-btn--primary:not(:disabled), .c-btn--text.c-btn--primary:not(.is-disabled) {
  color: #FF66CC;
  background: none;
}
.c-btn--sm {
  height: 2.8rem;
  padding: 0 1rem;
  font-size: 1.2rem;
  font-weight: 400;
  border-radius: 1rem;
}
.c-btn--sm .c-icon {
  --icon-size: 16px;
}
.c-btn--md {
  height: 3.5rem;
  padding: 0 1.2rem;
  font-size: 1.2rem;
  font-weight: 400;
  border-radius: 1rem;
}
.c-btn--lg {
  height: 4.8rem;
  padding: 0 1.2rem;
  font-size: 1.4rem;
  font-weight: 600;
  border-radius: 1.6rem;
}
.c-btn--xl {
  height: 6rem;
  padding: 0 1.6rem;
  font-size: 1.4rem;
  font-weight: 600;
  border-radius: 1.6rem;
}
.c-btn--full {
  width: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.c-btn--radius-sm {
  border-radius: 1rem;
}
.c-btn--radius-md {
  border-radius: 1.6rem;
}
.c-btn--radius-lg {
  border-radius: 2rem;
}
.c-btn--radius-full {
  border-radius: 9999px;
}
.c-btn--icon {
  width: 4rem;
  height: 4rem;
  padding: 0;
}
.c-btn--icon.c-btn--xs {
  width: 2.8rem;
  height: 2.8rem;
}
.c-btn--icon.c-btn--sm {
  width: 3.5rem;
  height: 3.5rem;
}
.c-btn--icon.c-btn--lg {
  width: 4.8rem;
  height: 4.8rem;
}
.c-btn--icon-text {
  gap: 0.4rem;
  padding: 0.7rem 1rem;
  border-color: #DDDDDD;
  font-size: 1.2rem;
}
.c-btn--icon-text .c-icon {
  --icon-size: 16px;
}
.c-btn--icon-text.c-btn--primary {
  border-color: #FF66CC;
}
.c-btn--social {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 4.4rem;
  padding: 0 1.2rem;
  background-color: #ffffff;
  border: 1px solid #DDDDDD;
  border-radius: 1.2rem;
  color: #404040;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans KR", "Noto Sans JP", sans-serif !important;
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.c-btn--social .c-icon-social {
  position: absolute;
  left: 0;
  display: inline-block;
  width: 16px;
  height: 16px;
  margin-right: 0.8rem;
  background-repeat: no-repeat;
  background-size: contain;
}
.c-btn--social-line {
  background-color: #06C755;
  border-color: #06C755;
  color: #FFFBFB;
}
.c-btn--social-line .c-icon-social {
  width: 44px;
  height: 44px;
  border-right: 1px solid rgba(0, 0, 0, 0.0784313725);
  background-size: 32px 30px;
  background-position: 50%;
  background-image: url("../images/icons/icon_social-line.svg");
}
.c-btn--social-kakao {
  background-color: #FEE500;
  border-color: #FEE500;
  color: rgba(0, 0, 0, 0.8509803922);
}
.c-btn--social-kakao .c-icon-social {
  left: 1.4rem;
  width: 1.8rem;
  height: 1.8rem;
  background-image: url("../images/icons/icon_social-kakao.svg");
}
.c-btn--social-apple {
  background-color: #1F1F1F;
  border-color: #1F1F1F;
  color: #ffffff;
}
.c-btn--social-apple .c-icon-social {
  left: 1.2rem;
  background-image: url("../images/icons/icon_social-apple.svg");
}
.c-btn--social-google {
  background-color: #F2F2F2;
  border-color: #F2F2F2;
  color: #1F1F1F;
}
.c-btn--social-google .c-icon-social {
  position: static;
  background-image: url("../images/icons/icon_social-google.svg");
}
.c-btn--social-email {
  background-color: #fff;
  border-color: #C8C8C8;
  color: rgba(0, 0, 0, 0.8509803922);
}
.c-btn--social-email .c-icon-social {
  left: 1.2rem;
  background-image: url("../images/icons/icon_social-email.svg");
}

html[data-os=aos] .c-btn-group--col .c-btn--social {
  height: 4rem;
  border-radius: 0.4rem;
  font-size: 1.4rem;
  font-weight: 500;
}
html[data-os=aos] .c-btn--social-email .c-icon-social {
  position: static;
}
html[data-os=aos] .c-btn--social-kakao .c-icon-social {
  position: static;
  margin-right: 0.6rem;
}
html[data-os=aos] .c-btn--social-line .c-icon-social {
  width: 40px;
  height: 40px;
}

/* ------------------------------------------------------------------------------
 * 2. Specialized Button Components (Separate Blocks)
 * ------------------------------------------------------------------------------ */
.c-category-section {
  margin-bottom: 3rem;
}
.c-category-section__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1.2rem;
}
.c-category-section__title {
  color: #2B2B2B;
  font-size: 1.6rem;
}
.c-category-section .btn-clear-all {
  padding: 0;
  border: none;
  background: none;
  color: #ADADAD;
  font-size: 1.2rem;
  cursor: pointer;
}

.c-category-group {
  margin-bottom: 1.6rem;
}
.c-category-group__label {
  display: block;
  margin-bottom: 1.2rem;
  color: #838383;
  font-size: 1.4rem;
  font-weight: 500;
}

.c-btn-keyword {
  margin-bottom: 3rem;
}
.c-btn-keyword__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.4rem;
}
.c-btn-keyword__list .c-btn-keyword__item {
  padding: 1rem 1.2rem;
  font-weight: 500;
}
.c-btn-keyword__item {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 4.8rem;
  padding: 0.6rem 1.2rem;
  border: 1px solid #DDDDDD;
  border-radius: 1rem;
  background-color: #ffffff;
  color: #ADADAD;
  font-size: 1.4rem;
  white-space: nowrap;
  cursor: pointer;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.c-btn-keyword__item.is-active {
  background-color: #FFF1FB;
  border-color: #FFAEE6;
  color: #FF66CC;
}
.c-btn-keyword .is-scroll-x {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  overflow-x: auto;
  -ms-overflow-style: none;
  scrollbar-width: none;
}
.c-btn-keyword .is-scroll-x::-webkit-scrollbar {
  display: none;
}
.c-btn-keyword .is-scroll-x .c-btn-keyword__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.c-btn-more {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 3.5rem;
  border: 1px solid #FF66CC;
  border-radius: 1rem;
  background-color: #ffffff;
  color: #FF66CC;
  font-size: 1.2rem;
}
.c-btn-more .icon-arr-bottom {
  width: 16px;
  height: 16px;
  background-color: #FF66CC;
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
}
.c-btn-more.is-expanded .icon-arr-bottom {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.c-btn-more:active {
  background-color: #F9F9F9;
}

.c-card__more {
  padding: 0;
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 400;
}

.c-btn-like {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  padding: 0.8rem 1.3rem;
  border: 1px solid #DDDDDD;
  border-radius: 1rem;
  background-color: #ffffff;
  color: #2B2B2B;
  font-size: 1.2rem;
  font-weight: 600;
  cursor: pointer;
}
.c-btn-like:has(.c-icon) {
  gap: 0.6rem;
}
.c-btn-like .c-icon {
  --icon-size: 16px;
}
.c-btn-like.is-active {
  background-color: rgba(255, 102, 204, 0.06);
  border-color: rgba(255, 102, 204, 0.4);
  color: #FF66CC;
}
.c-btn-like.is-active .icon-like {
  --icon-url: url("../images/icons/icon_like_fill.svg");
}

.c-btn-bookmark {
  position: relative;
}
.c-btn-bookmark::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  min-width: 40px;
  min-height: 40px;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.c-btn-bookmark {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  cursor: pointer;
}
.c-btn-bookmark .c-icon {
  --icon-size: 20px;
}
.c-btn-bookmark .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark.svg");
}
.c-btn-bookmark.is-active .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark_fill.svg");
}

.c-btn-report {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  font-size: 1.2rem;
  color: #ADADAD;
  cursor: pointer;
}
.c-btn-report:before {
  content: "";
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 2px;
  height: 2px;
  margin: 0 4px;
  background: #C8C8C8;
  border-radius: 50%;
}
.c-btn-report .c-icon {
  --icon-size: 16px;
}

.c-btn-trigger {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.2rem;
  padding: 0.4rem 0;
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 500;
}
.c-btn-trigger .c-icon {
  --icon-size: 16px;
}

.c-btn-password {
  position: relative;
}
.c-btn-password::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  min-width: 40px;
  min-height: 40px;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.c-btn-password .c-icon {
  --icon-size: 20px;
  background-color: #ADADAD;
}

.c-btn-clear .c-icon {
  --icon-size: 20px;
  background-color: #ADADAD;
}

/* ------------------------------------------------------------------------------
 * 3. Layout Group (.c-btn-group)
 * ------------------------------------------------------------------------------ */
.c-btn-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
}
.c-btn-group--col {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
}
.c-btn-group--col .c-btn {
  width: 100%;
}
.c-btn-group--fit .c-btn {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.c-btn-group.is-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.c-btn-group.is-right {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.c-btn-group.has-line .c-btn + .c-btn:before {
  content: "";
  display: inline-block;
  position: absolute;
  left: -0.6rem;
  top: 50%;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  width: 1px;
  height: 10px;
  background: #E0E0E0;
}

/* ------------------------------------------------------------------------------
 * Scroll Top Button
 * ------------------------------------------------------------------------------ */
.c-btn-scroll-top {
  position: fixed;
  right: 1.6rem;
  /* --l-bottom-h: 하단 고정 영역 실측 높이(safe-area 포함), 없으면 0px */
  bottom: calc(var(--l-bottom-h, 0px) + 1.6rem);
  z-index: 300;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4.4rem;
  height: 4.4rem;
  padding: 0;
  border: 1px solid #F0F0F0;
  border-radius: 50%;
  background-color: #ffffff;
  -webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
          box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  -webkit-transform: translateY(2rem);
          transform: translateY(2rem);
  -webkit-transition: opacity 0.25s ease, visibility 0.25s ease, -webkit-transform 0.25s ease;
  transition: opacity 0.25s ease, visibility 0.25s ease, -webkit-transform 0.25s ease;
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease;
  transition: opacity 0.25s ease, visibility 0.25s ease, transform 0.25s ease, -webkit-transform 0.25s ease;
}
.c-btn-scroll-top .c-icon {
  --icon-size: 2rem;
  background-color: #6B6B6B;
}
.c-btn-scroll-top.is-visible {
  opacity: 1;
  visibility: visible;
  -webkit-transform: translateY(0);
          transform: translateY(0);
}
.c-btn-scroll-top:active {
  -webkit-transform: scale(0.95);
          transform: scale(0.95);
}

/* ------------------------------------------------------------------------------
 * FAB (Floating Action Button)
 * ------------------------------------------------------------------------------ */
.c-fab {
  position: fixed;
  right: var(--page-gutter);
  /* --l-bottom-h: 하단 고정 영역 실측 높이(safe-area 포함), 없으면 0px */
  bottom: calc(var(--l-bottom-h, 0px) + 2rem);
  z-index: 300;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  border: 1px solid #FFDAF4;
  background-color: #FFE3F7;
  text-decoration: none;
  cursor: pointer;
}
.c-fab .c-icon {
  --icon-size: 28px;
  background-color: #FF66CC;
}
.c-fab ~ .c-btn-scroll-top {
  bottom: calc(var(--l-bottom-h, 0px) + 8rem);
}

/**
 * ==============================================================================
 * Component: Cards
 * Description: 카드 UI 컴포넌트 모음
 *
 * Variants:
 *  - .c-card--hospital / --doctor / --event / --counsel / --review
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Base Card (.c-card)
 * ------------------------------------------------------------------------------ */
.c-card {
  display: block;
  position: relative;
  overflow: hidden;
  background-color: #ffffff;
}
.c-card:is(a), .c-card.is-link {
  cursor: pointer;
}
.c-card .c-btn-bookmark {
  position: absolute;
  top: 1.6rem;
  right: 0.8rem;
  z-index: 10;
  width: 2rem;
  height: 2rem;
  cursor: pointer;
}
.c-card .c-btn-bookmark .c-icon {
  --icon-size: 20px;
}
.c-card .c-btn-bookmark .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark-white.svg");
}
.c-card .c-btn-bookmark.is-active .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark_fill.svg");
}
.c-card--radius-none {
  border-radius: 0;
}
.c-card--radius-xs {
  border-radius: 0.4rem;
}
.c-card--radius-sm {
  border-radius: 0.8rem;
}
.c-card--radius-md {
  border-radius: 1.6rem;
}
.c-card--radius-lg {
  border-radius: 2rem;
}
.c-card--radius-xl {
  border-radius: 3.2rem;
}
.c-card--radius-full {
  border-radius: 9999px;
}

/* ------------------------------------------------------------------------------
 * 2. Shared Child Elements
 * ------------------------------------------------------------------------------ */
.c-card__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.c-card__head.c-form-group__row .c-form-group__label {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.c-card__head.c-form-group__row .c-select {
  width: auto;
  padding: 0;
  border: 0;
  background-position: right 0 center;
}
.c-card__head .c-form-group__label {
  margin-bottom: 0;
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 500;
}
.c-card__head .c-form-group__label .c-form-group__category {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #2B2B2B;
}

.c-card__info .c-card__title {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-card__info .c-card__title .c-card__name {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3rem;
  color: #2B2B2B;
  font-size: 1.8rem;
  font-weight: 600;
}
.c-card__info .c-card__title .c-card__license {
  color: #838383;
  font-size: 1.2rem;
  font-weight: 400;
}
.c-card__info .c-card__title .c-card__license:before {
  content: "·";
  display: inline-block;
  margin-right: 0.3rem;
  color: #838383;
  font-size: 1.2rem;
}
.c-card__info .c-card__subtitle {
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 20px;
  word-break: break-all;
}
.c-card__info .c-card__stats {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem 1rem;
  margin-top: 0.6rem;
  color: #838383;
  font-size: 1.3rem;
  font-weight: 500;
  line-height: 20px;
}
.c-card__info .c-card__stats .c-card__stat-value {
  color: #404040;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.c-card__info .c-card__stats .c-card__stat--rating {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.1rem;
  color: #838383;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 400;
  letter-spacing: -0.01em;
}
.c-card__info .c-card__stats .c-card__stat--rating .c-icon.icon-star {
  --icon-size: 16px;
  background-color: #FFBE4F;
}
.c-card__info .c-card__stats .c-card__rating-score {
  color: #404040;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.c-card__info .c-card__stats .c-card__rating-count {
  color: #838383;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 400;
  letter-spacing: -0.01em;
}
.c-card__info .c-badges {
  margin-top: 0.8rem;
}
.c-card__info .c-badges .c-badge .c-icon {
  --icon-size: 16px;
  margin-right: 0.2rem;
  background-color: #838383;
}

/* ------------------------------------------------------------------------------
 * 3. Card List Layout (.c-card-list)
 * ------------------------------------------------------------------------------ */
.c-card-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-card-list--row {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}
.c-card-list--grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.2rem;
}
.c-card-list--grid > li {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.c-card-list--grid .c-card {
  width: 100%;
}
.c-card-list--grid.c-card-list--cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.c-card-list--grid.c-card-list--cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.c-card-list--grid.c-card-list--cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.c-card-list--grid.c-card-list--cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.c-card-list--line > li {
  padding: 2.4rem 0;
  border-bottom: 1px solid #F2F2F2;
}
.c-card-list--line > li:first-child {
  padding-top: 0;
}
.c-card-list--line > li:last-child {
  border-bottom: 0;
}
.c-card-list .c-card .c-card-close {
  position: absolute;
  top: 0;
  right: 0;
  width: 3.2rem;
  height: 3.2rem;
  margin-right: -0.6rem;
}
.c-card-list .c-card .c-card-close .c-icon.icon-close {
  --icon-size: 20px;
  background-color: #ADADAD;
}
.c-card-list .c-card.c-card--hospital .c-card-close {
  top: 1.2rem;
  right: 1.8rem;
  z-index: 1;
}
.c-card-list .c-card.c-card--hospital .c-card-close .c-icon.icon-close {
  background-color: #ffffff;
}

.c-card-list__acco .c-card-list {
  gap: 0;
}
.c-card-list__acco .c-card-list--review {
  padding-top: 1.6rem;
}
.c-card-list__acco .c-card-list--review > li:last-child {
  padding-bottom: 0;
}
.c-card-list__acco .c-card-list--review + .c-btn-more.is-expanded {
  margin-top: 2.4rem;
}

/* ------------------------------------------------------------------------------
 * 4. Card Variants (Types)
 * ------------------------------------------------------------------------------ */
/* ------------------------------------------------------------------------------
 * 4.1 Hospital Card (병원)
 * ------------------------------------------------------------------------------ */
.c-card--hospital {
  border-radius: 2.8rem;
  -webkit-box-shadow: 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549), 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863);
          box-shadow: 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549), 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863);
  -webkit-transition: -webkit-transform 0.2s, -webkit-box-shadow 0.2s;
  transition: -webkit-transform 0.2s, -webkit-box-shadow 0.2s;
  transition: transform 0.2s, box-shadow 0.2s;
  transition: transform 0.2s, box-shadow 0.2s, -webkit-transform 0.2s, -webkit-box-shadow 0.2s;
}
.c-card--hospital .c-card__thumb {
  position: relative;
  width: 100%;
  background-color: #F7F7F7;
}
@supports (aspect-ratio: 1/1) {
  .c-card--hospital .c-card__thumb {
    aspect-ratio: 343/149;
  }
}
@supports not (aspect-ratio: 1/1) {
  .c-card--hospital .c-card__thumb {
    padding-top: 43.44%;
  }
}
.c-card--hospital .c-card__thumb img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--hospital .c-card__info {
  position: relative;
  padding: 1.5rem 2rem 2rem;
}
.c-card--hospital .c-card__info .c-card__head {
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  gap: 0.6rem;
}
.c-card--hospital .c-card__info .c-card__head .c-card__title {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  word-break: break-all;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.c-card--hospital .c-card__info .c-card__head .c-card__location {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.2rem;
  color: #838383;
  font-size: 1.1rem;
  font-weight: 400;
}
.c-card--hospital .c-card__info .c-card__head .c-card__location .c-icon {
  --icon-size: 16px;
  background-color: #ADADAD;
}
.c-card--hospital .c-card__info .c-card__stats {
  margin-top: 0.7rem;
}
.c-card--hospital .c-card__info .c-badges {
  margin-top: 1.5rem;
}
.c-card--hospital .c-card__info .c-badges .c-badge {
  height: 27px;
  padding: 0 0.8rem;
  line-height: 1;
}
.c-card--hospital .c-card__info .c-card__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  margin-top: 0.5rem;
  color: #ADADAD;
  font-size: 1.1rem;
  font-weight: 400;
}
.c-card--hospital .c-btn-bookmark {
  top: 1.8rem;
  right: 1.8rem;
}

/* ------------------------------------------------------------------------------
 * 4.2 Doctor Card (의사)
 * ------------------------------------------------------------------------------ */
.c-card--doctor {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 1.6rem 4rem 1.6rem 0.8rem;
}
.c-card--doctor .c-card__profile {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  width: 7.5rem;
  height: 7.5rem;
  margin-right: 1.6rem;
  overflow: hidden;
  border-radius: 50%;
}
.c-card--doctor .c-card__profile img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--doctor .c-card__info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.c-card--doctor .c-card__info .c-card__title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 0.2rem;
}
.c-card--doctor .c-card__info .c-card__position {
  display: block;
  color: #2B2B2B;
  font-size: 1.3rem;
  font-weight: 400;
}
.c-card--doctor .c-card__info .c-card__stats {
  gap: 0.4rem 0.8rem;
}
.c-card--doctor .c-card__info .c-card__stats .c-card__rating-count {
  color: #404040;
}
.c-card--doctor .c-card__info .c-badges {
  gap: 0.3rem;
}
.c-card--doctor .c-card__info .c-badges .c-badge {
  height: 21px;
  padding: 0 0.8rem;
  line-height: 1;
}
.c-card--doctor .c-btn-bookmark .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark-gray.svg");
}
.c-card--doctor .c-btn-bookmark.is-active .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark_fill.svg");
}

/* ------------------------------------------------------------------------------
 * 4.3 Event Card (이벤트)
 * ------------------------------------------------------------------------------ */
.c-card--event .c-card__thumb {
  position: relative;
  overflow: hidden;
  border-radius: 2rem;
}
.c-card--event .c-card__thumb > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--event .c-card__thumb .c-btn-bookmark {
  top: 0.8rem;
}
.c-card--event .c-card__info {
  margin-top: 1.2rem;
  padding-right: 2rem;
}
.c-card--event .c-card__info .c-card__title {
  margin-bottom: 0.2rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 1.4rem;
}
.c-card--event .c-card__info .c-card__subtitle {
  font-size: 1.2rem;
  line-height: 1.8rem;
}
.c-card--event .c-card__info .c-card__price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0 0.4rem;
  margin-top: 0.4rem;
  color: #2B2B2B;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 2.2rem;
}
.c-card--event .c-card__info .c-card__price .c-card__price-value {
  font-weight: 700;
}
.c-card--event .c-card__info .c-card__price .c-card__price-discount {
  color: #FF66CC;
}
.c-card--event .c-card__info .c-card__stats {
  margin-top: 0.4rem;
}
.c-card--event .c-card__info .c-card__stats .c-card__rating-count {
  color: #404040;
}
.c-card--event .c-card__info .c-badges {
  margin-top: 0.4rem;
}

.c-card--event-banner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 1.2rem;
  border-radius: 1.6rem;
  background-color: #F7F7F7;
  -webkit-box-shadow: none;
          box-shadow: none;
}
.c-card--event-banner .c-card__thumb {
  position: relative;
  width: 5.6rem;
  height: 5.6rem;
  margin-right: 1.6rem;
  overflow: hidden;
  border-radius: 0.8rem;
}
.c-card--event-banner .c-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--event-banner .c-card__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  margin-top: 0;
}
.c-card--event-banner .c-card__subinfo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.8rem;
}
.c-card--event-banner .c-card__subinfo .c-badges {
  margin-top: 0;
}
.c-card--event-banner .c-card__subinfo .c-card__price {
  min-width: -webkit-fit-content;
  min-width: -moz-fit-content;
  min-width: fit-content;
  margin-top: 0;
  font-size: 1.3rem;
}
.c-card--event-banner .c-card__title {
  font-size: 1.3rem;
  font-weight: 500;
}
.c-card--event-banner .c-card__price-value {
  white-space: nowrap;
}
.c-card--event-banner .c-icon.icon-arr-right {
  --icon-size: 20px;
  background-color: #ADADAD;
}

.c-swiper.c-event-slider .swiper-slide {
  border-radius: 0;
}

.c-card-list--col {
  gap: 2.4rem;
}
.c-card-list--col .c-card--event {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  padding: 0;
}
.c-card-list--col .c-card--event .c-card__thumb {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  width: 10rem;
  height: 10rem;
  margin-right: 1.6rem;
  overflow: hidden;
  border-radius: 1.4rem;
}
.c-card-list--col .c-card--event .c-card__thumb img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card-list--col .c-card--event .c-card__info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  margin-top: 0;
  padding: 0.3rem 3rem 0.3rem 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.c-card-list--col .c-card--event .c-card__stats {
  gap: 0.4rem;
}
.c-card-list--col .c-card--event .c-card__stats .c-badges {
  margin-top: 0;
}
.c-card-list--col .c-card--event .c-btn-bookmark {
  top: 0.4rem;
  right: 0;
}
.c-card-list--col .c-card--event .c-btn-bookmark .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark-gray.svg");
}
.c-card-list--col .c-card--event .c-btn-bookmark.is-active .icon-bookmark {
  --icon-url: url("../images/icons/icon_bookmark_fill.svg");
}

/* ------------------------------------------------------------------------------
 * 4.4 Counsel Card (상담/예약)
 * ------------------------------------------------------------------------------ */
.c-card--counsel {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  gap: 0.4rem;
}
.c-card--counsel .c-card__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  gap: 1.2rem;
  min-width: 0;
}
.c-card--counsel .c-card__thumb {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 4.2rem;
  height: 4.2rem;
  overflow: hidden;
  border-radius: 50%;
  background-color: #F7F7F7;
}
.c-card--counsel .c-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--counsel .c-card__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}
.c-card--counsel .c-card__title {
  font-size: 1.4rem;
}
.c-card--counsel .c-card__subtitle {
  margin-top: 0.2rem;
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
}
.c-card--counsel .c-card__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 0.8rem 0 0;
  padding: 0;
}
.c-card--counsel .c-card__meta-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.4rem;
  color: #2B2B2B;
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: -0.01em;
}
.c-card--counsel .c-card__meta-item > .c-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  margin-top: 2px;
  --icon-size: 16px;
  background-color: #838383;
}
.c-card--counsel .c-card__action {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 0.4rem;
  min-width: 11rem;
  margin-left: auto;
}
.c-card--counsel .c-card__action .c-btn {
  gap: 0;
  padding: 0.8rem 1.2rem;
  font-size: 1.2rem;
  line-height: 1.5;
}
.c-card--counsel .c-card__action .c-btn.c-btn--primary {
  border-color: #FF66CC;
}
.c-card--counsel .c-card__action .c-btn.c-btn--icon-text {
  padding-right: 0.8rem;
}
.c-card--counsel .c-card__action .c-btn--outline.u-text-primary {
  border-color: #FF66CC;
}
.c-card--counsel .c-btn-counsel:not(.c-btn--primary) {
  padding: 0.2rem 0 0;
  font-size: 1.2rem;
  background: none;
  border: 0;
}
.c-card--counsel.is-counsel-all .c-btn-counsel {
  background-color: #FF66CC;
  border-color: #FF66CC;
  color: #ffffff;
}
.c-card--counsel.is-counsel-scheduled .c-btn-counsel {
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  color: #FF66CC;
  letter-spacing: -0.01em;
}
.c-card--counsel.is-counsel-done .c-btn-counsel, .c-card--counsel.is-counsel-canceled .c-btn-counsel {
  color: #C8C8C8;
}
.c-card--counsel.is-counsel-approve-wait .c-btn-counsel, .c-card--counsel.is-counsel-cancel-wait .c-btn-counsel {
  color: #838383;
}
.c-card--counsel.is-anon .c-card__thumb {
  display: none;
}
.c-card--counsel.is-anon .c-card__meta {
  margin: 0 !important;
}
.c-card--counsel:has(.c-card__action) {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.c-card__action--bottom {
  margin-top: 1.2rem;
}
.c-card__action--bottom > .c-btn {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.6rem;
  width: 100%;
  padding: 0.8rem 1rem;
  min-height: 4rem;
  background-color: #fff;
  border: 1px solid #DDDDDD;
  color: #2B2B2B;
  font-size: 1.3rem;
  line-height: 1.5;
}
.c-card__action--bottom > .c-btn.c-btn--primary {
  color: #FF66CC;
  background-color: #fff;
}
.c-card__action--bottom > .c-btn span {
  display: block;
  color: #838383;
  font-size: 1.1rem;
  font-weight: 400;
}

.is-counsel-pay-wait .c-card__action .c-btn-counsel {
  color: #C8C8C8;
}
.is-counsel-pay-wait + .c-card__action--bottom .c-btn-counsel {
  color: #FF66CC;
}

/* ------------------------------------------------------------------------------
 * 4.5 Review Card (후기/비포애프터)
 * ------------------------------------------------------------------------------ */
.c-card--review {
  margin-bottom: 2.4rem;
  padding: 0 0 2.4rem;
  border-bottom: 1px solid #F2F2F2;
}
.c-card--review:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
}
.c-card--review .c-card__head {
  display: block;
  margin-bottom: 1.6rem;
}
.c-card--review .c-card__head .c-card__user {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 0.8rem;
}
.c-card--review .c-card__head .c-card__user-info {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
}
.c-card--review .c-card__head .c-card__user-info .c-card-avatar {
  width: 2rem;
  height: 2rem;
  overflow: hidden;
  border-radius: 50%;
}
.c-card--review .c-card__head .c-card__user-info .c-card-avatar > img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--review .c-card__head .c-card__user .c-card__actions {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}
.c-card--review .c-card__head .c-card__user-name {
  color: #ADADAD;
  font-size: 1.4rem;
  font-weight: 500;
}
.c-card--review .c-card__head .c-card__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.2rem;
  color: #ADADAD;
  font-size: 1.2rem;
}
.c-card--review .c-card__head .c-card__rating {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #ADADAD;
  font-size: 1.2rem;
}
.c-card--review .c-card__head .c-card__rating .c-icon {
  --icon-size: 16px;
  background-color: transparent;
}
.c-card--review .c-card__head .c-card__rating .icon_grade {
  background-image: url("../images/icons/icon_grade.svg");
}
.c-card--review .c-card__head .c-card__rating .icon_grade_half {
  background-image: url("../images/icons/icon_grade_half.svg");
}
.c-card--review .c-card__head .c-card__rating .icon_grade_full {
  background-image: url("../images/icons/icon_grade_full.svg");
}
.c-card--review .c-card__head .c-card__date {
  white-space: nowrap;
}
.c-card--review .c-card__body {
  margin-top: 0.8rem;
}
.c-card--review .c-review-photo {
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  overflow: hidden;
  border-radius: 1.6rem;
}
@supports (aspect-ratio: 1/1) {
  .c-card--review .c-review-photo {
    aspect-ratio: 343/224;
  }
}
@supports not (aspect-ratio: 1/1) {
  .c-card--review .c-review-photo {
    padding-top: 65.3%;
  }
}
.c-card--review .c-review-photo__item {
  position: relative;
  padding: 0;
  border: 0;
  background-color: #F7F7F7;
  cursor: pointer;
}
.c-card--review .c-review-photo__item--main {
  grid-row: 1/3;
  grid-column: 1/2;
}
.c-card--review .c-review-photo__item--sub:nth-of-type(2) {
  grid-row: 1/2;
  grid-column: 2/3;
}
.c-card--review .c-review-photo__item--sub:nth-of-type(3) {
  grid-row: 2/3;
  grid-column: 2/3;
}
.c-card--review .c-review-photo__item--more {
  position: relative;
}
.c-card--review .c-review-photo__item--more .c-review-photo__more {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5019607843);
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.c-card--review .c-review-photo--single {
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
}
.c-card--review .c-review-photo--single .c-review-photo__item--main {
  grid-row: 1/2;
  grid-column: 1/2;
}
.c-card--review .c-review-photo--double {
  grid-template-columns: 1fr 1fr;
}
.c-card--review .c-review-photo--double .c-review-photo__item--sub:nth-of-type(2) {
  grid-row: 1/3;
  grid-column: 2/3;
}
.c-card--review .c-review-photo__img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--review .c-review-photo__badge {
  position: absolute;
  top: 0;
  left: 0;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 3.2rem;
  height: 3.5rem;
  padding: 0 0.8rem;
  border-radius: 0 0 1.2rem 0;
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 600;
}
.c-card--review .c-review-photo__badge--after {
  background-color: #FF66CC;
}
.c-card--review .c-review-photo__badge--before {
  background-color: rgba(0, 0, 0, 0.8);
}
.c-card--review .c-review-photo + .c-event-item {
  margin-top: 0.8rem;
}
.c-card--review .c-review-photo__slider {
  position: relative;
}
.c-card--review .c-review-photo__slider .c-review-photo__badge {
  z-index: 1;
}
.c-card--review .c-card__title {
  margin-bottom: 1.6rem;
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-card--review .c-card__more {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  height: auto;
}
.c-card--review .c-card__more .c-icon.icon-arr-bottom {
  --icon-size: 16px;
  background-color: #838383;
}

.c-card-list--review > li {
  padding: 2.4rem 0;
  border-bottom: 1px solid #F2F2F2;
}
.c-card-list--review > li:first-child {
  padding-top: 0;
}
.c-card-list--review > li:last-child {
  border-bottom: 0;
}

/* ------------------------------------------------------------------------------
 * 4.6 Payment Cards
 * ------------------------------------------------------------------------------ */
.c-card--payment-wrap .c-card--payment-meta {
  margin-bottom: 1.6rem;
  color: #838383;
  font-size: 1.5rem;
  font-weight: 500;
}

.c-card-list--payment .c-card--payment-meta {
  margin-bottom: 1.2rem;
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
}
.c-card-list--payment .c-card--payment-meta span {
  letter-spacing: -0.01em;
}
.c-card-list--payment.c-card-list--line {
  gap: 0;
}

/* Doctor / Event 공통 베이스 (중복 제거) */
.c-card--payment-doctor,
.c-card--payment-event {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.6rem;
  padding: 0;
  overflow: visible;
  background-color: transparent;
  -webkit-box-shadow: none;
          box-shadow: none;
}
.c-card--payment-doctor .c-card__thumb,
.c-card--payment-event .c-card__thumb {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  width: 8.8rem;
  height: 8.8rem;
  overflow: hidden;
  border-radius: 1.2rem;
  background-color: #F7F7F7;
}
.c-card--payment-doctor .c-card__thumb img,
.c-card--payment-event .c-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--payment-doctor .c-card__info,
.c-card--payment-event .c-card__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  margin-top: 0;
  padding-right: 0;
}
.c-card--payment-doctor .c-card__title,
.c-card--payment-event .c-card__title {
  margin: 0;
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-card--payment-doctor .c-card__price,
.c-card--payment-event .c-card__price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem 0.8rem;
  margin-top: 0.4rem;
  color: #2B2B2B;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Event 전용(할인 표시) */
.c-card--payment-event .c-card__price .c-card__price-discount {
  margin-left: -0.4rem;
  color: #FF66CC;
  font-weight: 700;
}

/* ------------------------------------------------------------------------------
 * 4.7 Payment Detail
 * ------------------------------------------------------------------------------ */
.c-card--payment-detail .c-card--payment-meta {
  margin-bottom: 2rem;
}
.c-card--payment-detail .c-card--payment-meta span {
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
}
.c-card--payment-detail .c-card__main {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 1.6rem;
  padding: 0.9rem 0.4rem;
}
.c-card--payment-detail .c-card__thumb {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  width: 6.7rem;
  height: 6.7rem;
  overflow: hidden;
  border-radius: 1rem;
  background-color: #F7F7F7;
}
.c-card--payment-detail .c-card__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-card--payment-detail .c-card__info {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  margin-top: 0;
  padding-right: 0;
}
.c-card--payment-detail .c-card__title {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 2.3rem;
}
.c-card--payment-detail .c-card__price {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem 0.8rem;
  margin-top: 0.3rem;
  color: #2B2B2B;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 2.3rem;
}
.c-card--payment-detail .c-card__price .c-card__price-discount {
  margin-left: -0.4rem;
  color: #FF66CC;
  font-weight: 700;
}
.c-card--payment-detail .c-card__desc {
  margin-top: 0.3rem;
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 400;
}
.c-card--payment-detail .c-card__actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.6rem;
  margin-top: 1.2rem;
  padding: 0 0.4rem;
}
.c-card--payment-detail .c-card__actions .c-btn {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  height: 3.5rem;
  padding: 0.8rem 1rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-size: 1.2rem;
  font-weight: 400;
  line-height: 1.4;
  white-space: nowrap;
}
.c-card--payment-detail .c-card__actions .c-btn--outline {
  color: #838383;
  border-color: #DDDDDD;
}

/**
 * ==============================================================================
 * File Name: _empty.scss
 * Description: 데이터 없음 (No Data) 상태 화면 스타일
 * Prefix: .c- (Component)
 * 
 * Usage:
 *  - .c-empty: 기본 (인라인/블록, 높이 자동)
 *  - .c-empty--full: 전체 화면 중앙 정렬
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Empty State Base (.c-empty)
 * ------------------------------------------------------------------------------ */
.c-empty {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.8rem;
  padding: 6.4rem 0;
  text-align: center;
  /* ----------------------------------------------------------------------------
   * Elements
   * --------------------------------------------------------------------------- */
}
.c-empty__icon {
  width: 2.4rem;
  height: 2.4rem;
}
.c-empty__icon.icon-chat {
  background-color: transparent;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  background-image: url("../images/icons/icon_message.svg");
  --icon-url: url(../images/icons/icon_message.svg);
  isolation: isolate;
}
.c-empty__icon.icon-chat supports-mask {
  -webkit-mask-image: none;
  mask-image: none;
  background-image: url("../images/icons/icon_message.svg");
}
.c-empty__text {
  margin: 0;
  font-size: 1.4rem;
  color: #ADADAD;
}

/* ------------------------------------------------------------------------------
 * 2. Variants
 * ------------------------------------------------------------------------------ */
.c-empty--full {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 0;
  margin-top: -3rem;
  min-height: calc(100vh - 4.8rem - var(--l-bottom-h, 0px));
}
@supports (min-height: 100dvh) {
  .c-empty--full {
    min-height: calc(100dvh - 4.8rem - var(--l-bottom-h, 0px));
  }
}

.c-empty--compact {
  padding: 2.4rem 0;
}

/**
 * ==============================================================================
 * File Name: _forms.scss
 * Description: Input, Select, Checkbox, Radio, Range, Textarea, Upload, Star, Switch
 * Prefix: .c- (Component)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * Form Group & Layouts
 * ------------------------------------------------------------------------------ */
.c-form-area {
  padding: 0 0.8rem;
}

.c-form-group {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin-bottom: 2.4rem;
}
.c-form-group__label {
  display: block;
  margin-bottom: 0.6rem;
  color: #838383;
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: -0.02em;
}
.c-form-group__label .is-required {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 0.4rem;
  height: 0.4rem;
  margin-left: 0.2rem;
  border-radius: 50%;
  background: #FF66CC;
  color: var(--primary);
  font-size: 0;
  vertical-align: top;
}
.c-form-group__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.4rem;
  width: 100%;
}
.c-form-group__row .c-select-wrap {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.c-form-group__row.has-select {
  margin-bottom: 0.8rem;
  padding: 0.8rem 0.4rem;
}
.c-form-group__row.has-select .c-form-group__label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.2rem;
  font-size: 1.5rem;
}
.c-form-group__row.has-select .c-form-group__label .c-form-group__category + span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-form-group__row.has-select .c-form-group__label .c-form-group__category + span:before {
  content: "";
  display: inline-block;
  width: 1.4rem;
  height: 1.4rem;
  background: url("../images/icons/icon_chevron_right.svg") 50%/1.4rem no-repeat;
}
.c-form-group__row.has-select + .c-card-list--review {
  gap: 0;
  margin-top: 2.4rem;
}
.c-form-group__col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 2rem;
}
.c-form-group__both {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.c-form-group__msg {
  margin-top: 0.6rem;
  color: #ADADAD;
  font-size: 1.2rem;
}
.c-form-group__msg--error {
  color: #EE443F;
}
.c-form-group__msg--success {
  color: #FF66CC;
}
.c-form-group__msg:empty {
  display: none !important;
}
.c-form-group.is-gap-sm {
  gap: 2rem;
}
.c-form-group.is-gap-md {
  gap: 2.8rem;
}
.c-form-group.is-gap-lg {
  gap: 3.2rem;
}
.c-form-group--error .c-input {
  border-color: #EE443F;
}
.c-form-group--error .c-input--line {
  border-bottom-color: #EE443F;
}
.c-form-group--error .c-textarea-box {
  -webkit-box-shadow: 0 0 0 0.1px #EE443F;
          box-shadow: 0 0 0 0.1px #EE443F;
}
.c-form-group--success .c-input {
  border-color: #FF66CC;
}
.c-form-group--focus .c-input {
  border-color: #FF66CC;
}

/* ------------------------------------------------------------------------------
 * Input Fields
 * ------------------------------------------------------------------------------ */
.c-input-item {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
}
.c-input-item .c-btn-clear {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.c-input-item .c-btn-clear.is-active {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.c-input-item .c-btn-clear .icon-delete {
  background-color: #C8C8C8;
  background-image: url("../images/icons/icon_delete.svg");
}
.c-input-item .c-btn-password {
  padding: 0;
}
.c-input-item:not(.c-input-item--slot) .c-btn-clear {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-input-item__action .c-input {
  padding-right: 6rem;
}

/* ============================================================
 * End-slot 구조 (clear/timer/auth/status)
 * ============================================================ */
.c-input-item--slot {
  position: relative;
}
.c-input-item--slot .c-input {
  padding-right: calc(var(--end-w, 0px) + 1rem);
}
.c-input-item--slot .c-input:disabled + .c-input-item__end .c-btn-clear, .c-input-item--slot .c-input[readonly] + .c-input-item__end .c-btn-clear {
  display: none !important;
}
.c-input-item--slot .c-input-item__end {
  position: absolute;
  top: 50%;
  right: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  white-space: nowrap;
  z-index: 5;
}
.c-input-item--slot .c-btn-clear,
.c-input-item--slot .c-btn-auth,
.c-input-item--slot .c-input-item__timer,
.c-input-item--slot .c-input-item__status {
  position: static !important;
  top: auto !important;
  right: auto !important;
  left: auto !important;
  bottom: auto !important;
  -webkit-transform: none !important;
          transform: none !important;
  margin: 0;
}
.c-input-item--slot .c-btn-auth.c-btn--text {
  padding: 0;
}
.c-input-item--slot .c-btn-clear {
  z-index: 1;
  width: 2.4rem;
  height: 2.4rem;
  pointer-events: none;
}
.c-input-item--slot .c-btn-clear.is-active {
  pointer-events: auto;
}
.c-input-item--slot .c-btn-auth {
  position: relative;
  z-index: 2;
  padding: 1rem 0.8rem;
  color: #FF66CC;
}
.c-input-item--slot .c-btn-auth.is-disabled {
  color: #C8C8C8;
}
.c-input-item--slot .c-input-item__timer {
  display: none;
  color: #404040;
  font-size: 1.2rem;
}
.c-input-item--slot .c-input-item__status {
  display: none;
  --icon-url: url(../images/icons/icon_checkbox_on.svg);
  width: 2rem;
  height: 2rem;
}
.c-input-item--slot.is-sent .c-input-item__timer {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}
.c-input-item--slot.is-verified .c-btn-clear,
.c-input-item--slot.is-verified .c-btn-auth,
.c-input-item--slot.is-verified .c-input-item__timer {
  display: none !important;
}
.c-input-item--slot.is-verified .c-input-item__status {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}
.c-input-item--slot.is-verified .c-input--line:disabled, .c-input-item--slot.is-verified .c-input--line[readonly] {
  color: #2B2B2B;
}

.c-input {
  width: 100%;
  padding: 1.2rem 1.6rem;
  border: 1px solid #DDDDDD;
  border-radius: 0.8rem;
  background-color: #ffffff;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 500;
  -webkit-transition: border-color 0.2s, -webkit-box-shadow 0.2s;
  transition: border-color 0.2s, -webkit-box-shadow 0.2s;
  transition: border-color 0.2s, box-shadow 0.2s;
  transition: border-color 0.2s, box-shadow 0.2s, -webkit-box-shadow 0.2s;
}
.c-input::-webkit-input-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-input::-moz-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-input:-ms-input-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-input::-ms-input-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-input::placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-input:focus {
  border-color: var(--primary);
  outline: none;
}
.c-input:-moz-read-only {
  background-color: #F9F9F9;
  color: #838383;
  cursor: not-allowed;
}
.c-input:read-only, .c-input:disabled {
  background-color: #F9F9F9;
  color: #838383;
  cursor: not-allowed;
}
.c-input:-moz-read-only:focus {
  border-color: #DDDDDD;
  box-shadow: none;
}
.c-input:read-only:focus, .c-input:disabled:focus {
  border-color: #DDDDDD;
  -webkit-box-shadow: none;
          box-shadow: none;
}
.c-input.is-error {
  border-color: #EE443F;
}
.c-input.is-error:focus {
  -webkit-box-shadow: 0 0 0 1px #EE443F;
          box-shadow: 0 0 0 1px #EE443F;
}
.c-input {
  height: 4rem;
}
.c-input::-webkit-input-placeholder {
  color: #C8C8C8;
}
.c-input::-moz-placeholder {
  color: #C8C8C8;
}
.c-input:-ms-input-placeholder {
  color: #C8C8C8;
}
.c-input::-ms-input-placeholder {
  color: #C8C8C8;
}
.c-input::placeholder {
  color: #C8C8C8;
}
.c-input:disabled, .c-input[readonly] {
  background-color: #F9F9F9;
  color: #ADADAD;
  cursor: not-allowed;
}
.c-input:disabled + .c-btn-clear, .c-input[readonly] + .c-btn-clear {
  display: none;
}
.c-input:focus {
  border-color: #FF66CC;
}
.c-input.is-active {
  border-color: #FF66CC;
}
.c-input--line {
  width: 100%;
  padding: 1.2rem 0;
  border: 0;
  border-bottom: 1px solid #DDDDDD;
  border-radius: 0;
  background-color: transparent;
}
.c-input--line:focus {
  -webkit-box-shadow: none;
          box-shadow: none;
}
.c-input--line:disabled, .c-input--line[readonly] {
  border-bottom-color: #DDDDDD;
  background-color: transparent;
  color: #ADADAD;
  cursor: not-allowed;
}
.c-input--line:disabled + .c-btn-clear, .c-input--line[readonly] + .c-btn-clear {
  display: none;
}

/* ------------------------------------------------------------------------------
 * Textarea
 * ------------------------------------------------------------------------------ */
.c-textarea-box {
  position: relative;
  width: calc(100% + 0.8rem);
  margin: 0 -0.4rem;
  padding: 1.2rem 1.6rem 3.2rem;
  border: none;
  border-radius: 1rem;
  background-color: #F7F7F7;
  overflow: hidden;
}
.c-textarea-box:focus-within {
  -webkit-box-shadow: 0 0 0 0.1px #F0F0F0;
          box-shadow: 0 0 0 0.1px #F0F0F0;
}
.c-textarea-box__label {
  margin-bottom: 1.6rem;
  color: #404040;
  font-size: 1.5rem;
  font-weight: 500;
}
.c-textarea-box .c-textarea {
  display: block;
  width: 100%;
  min-height: 8rem;
  padding: 0;
  border: 0;
  background-color: transparent;
  color: #2B2B2B;
  font-size: 1.4rem;
  resize: none;
  outline: none;
}
.c-textarea-box .c-textarea::-webkit-input-placeholder {
  color: #ADADAD;
  white-space: pre-line;
}
.c-textarea-box .c-textarea::-moz-placeholder {
  color: #ADADAD;
  white-space: pre-line;
}
.c-textarea-box .c-textarea:-ms-input-placeholder {
  color: #ADADAD;
  white-space: pre-line;
}
.c-textarea-box .c-textarea::-ms-input-placeholder {
  color: #ADADAD;
  white-space: pre-line;
}
.c-textarea-box .c-textarea::placeholder {
  color: #ADADAD;
  white-space: pre-line;
}
.c-textarea-box__count {
  position: absolute;
  right: 1.6rem;
  bottom: 1.2rem;
  color: #ADADAD;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.2rem;
}

.c-form-group--error .c-textarea-box {
  -webkit-box-shadow: 0 0 0 0.1px #EE443F;
          box-shadow: 0 0 0 0.1px #EE443F;
}
.c-form-group--error .c-form-group__msg--error {
  margin-top: 0.6rem;
}

/* ------------------------------------------------------------------------------
 * Checkbox & Radio
 * ------------------------------------------------------------------------------ */
/* 기본 체크박스 */
.c-check {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: pointer;
}
.c-check input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-check input:checked + .c-check-icon {
  background-image: url("../images/icons/icon_check_on.svg");
}
.c-check input:checked + .c-check-icon + span, .c-check input:checked + .c-check-icon + span * {
  color: #2B2B2B;
}
.c-check input:checked + .c-check-round, .c-check input:checked + .box .c-check-round {
  border-color: transparent;
  background-color: var(--primary);
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.99988 3L4.49988 8.5L1.99988 6' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.2rem;
}
.c-check input:disabled + .c-check-icon {
  opacity: 0.5;
  cursor: not-allowed;
}
.c-check input:disabled + .c-check-round {
  border-color: #E0E0E0;
  background-color: #E0E0E0;
  cursor: not-allowed;
}
.c-check input:disabled:checked + .c-check-icon {
  opacity: 0.5;
  cursor: not-allowed;
}
.c-check input:disabled:checked + .c-check-round {
  border-color: transparent;
  background-color: #FFAEE6;
  cursor: not-allowed;
}
.c-check input:disabled + i + span, .c-check input:disabled + .c-check-icon + span, .c-check input:disabled + .c-check-round + span {
  color: #C8C8C8;
  cursor: not-allowed;
}
.c-check span {
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 400;
}
.c-check .c-check-icon {
  position: relative;
}
.c-check .c-check-icon::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  min-width: 3.2rem;
  min-height: 3.2rem;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.c-check .c-check-icon {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin-right: 0.6rem;
  background-image: url("../images/icons/icon_check.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 2rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: background-color 0.2s ease, border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;
}
.c-check .c-check-round {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin-right: 0.6rem;
  border: 2px solid #C8C8C8;
  border-radius: 50%;
  background-color: #C8C8C8;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M9.99988 3L4.49988 8.5L1.99988 6' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.2rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: background-color 0.2s ease, border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;
}
.c-check--sm i:not(.c-icon) {
  width: 1.4rem;
  height: 1.4rem;
  margin-right: 0.4rem;
}
.c-check--sm span {
  font-size: 1.3rem;
}

/* 체크박스 BOX 타입 (모두 동의하기) */
.c-check-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
}
.c-check-group__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  min-height: 3.2rem;
  padding-left: 0.8rem;
}
.c-check-group__item .c-check {
  min-width: 0;
  padding-right: 1rem;
}
.c-check-group__item .c-btn {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  margin-right: 0.2rem;
  color: #C8C8C8;
  position: relative;
}
.c-check-group__item .c-btn::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  min-width: 4rem;
  min-height: 4rem;
  width: 100%;
  height: 100%;
  z-index: 1;
}
.c-check-group__item + .c-check-group__item {
  margin-top: 0.4rem;
  padding-top: 0.8rem;
  border-top: 0.1px solid #F7F7F7;
}
.c-check-group {
  /* 박스형 체크박스 */
}
.c-check-group .c-check-box input:checked + .box {
  background-color: #FFF1FB;
  border-color: #FFAEE6;
  color: #FF66CC;
}
.c-check-group .c-check-box input:checked + .box span {
  color: #FF66CC;
}
.c-check-group .c-check-box .box {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  width: 100%;
  margin-bottom: 2.4rem;
  padding: 1.9rem 1.4rem;
  border: 1px solid #DDDDDD;
  border-radius: 1.6rem;
  background-color: #ffffff;
  color: #2B2B2B;
  font-size: 1.6rem;
  -webkit-transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.c-check-group .c-check-box .box .c-check-round {
  margin-right: 0;
}
.c-check-group .c-check-box .box span {
  font-size: 1.6rem;
  font-weight: 600;
}
.c-check-group .c-check-box__label {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
}

/* 라디오 */
.c-radio {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: pointer;
}
.c-radio input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-radio input:checked + i {
  border-color: var(--primary);
  background-color: var(--primary);
}
.c-radio input:checked + i::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.8rem;
  height: 0.8rem;
  border-radius: 50%;
  background-color: #ffffff;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
}
.c-radio input:disabled + i {
  border-color: #F0F0F0;
  background-color: #F9F9F9;
  opacity: 0.9;
  cursor: not-allowed;
}
.c-radio input:disabled:checked + i {
  border-color: var(--primary);
  background-color: var(--primary);
  opacity: 0.5;
  cursor: not-allowed;
}
.c-radio input:disabled:checked + i::after {
  background-color: #ffffff;
}
.c-radio input:disabled + i + span {
  color: #C8C8C8;
  cursor: not-allowed;
}
.c-radio i {
  position: relative;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin-right: 0.6rem;
  border: 2px solid #C8C8C8;
  border-radius: 50%;
  background-color: #ffffff;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-transition: background-color 0.2s ease, border-color 0.2s ease;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
.c-radio span {
  color: #2B2B2B;
  font-size: 1.4rem;
}

/* ==========================================================================
  Select List Component (박스형 라디오/체크박스 리스트)
========================================================================== */
.c-select-list__group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
}

/* 개별 아이템 (라디오/체크박스 래퍼) */
.c-select-item {
  display: block;
  width: 100%;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: pointer;
  /* 실제 인풋 숨김 */
}
.c-select-item__input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-select-item {
  /* 박스 디자인 (기본 상태) */
}
.c-select-item__box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.2rem;
  width: 100%;
  min-height: 4.8rem;
  padding: 1.4rem 1.6rem;
  border: 1px solid #DDDDDD;
  border-radius: 1rem;
  background: #ffffff;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
.c-select-item {
  /* 텍스트 */
}
.c-select-item__text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  color: #ADADAD;
  font-size: 1.5rem;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.c-select-item {
  /* 체크 아이콘 (기본: 숨김) */
}
.c-select-item__icon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  background-color: #FF66CC;
  opacity: 0;
  -webkit-transform: translateY(0.1px);
          transform: translateY(0.1px);
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}
.c-select-item {
  /* [State: Checked] 선택된 상태 스타일 */
}
.c-select-item__input:checked + .c-select-item__box {
  border-color: #FFAEE6;
  background: #FFF1FB;
}
.c-select-item__input:checked + .c-select-item__box .c-select-item__text {
  color: #FF66CC;
  font-weight: 500;
}
.c-select-item__input:checked + .c-select-item__box .c-select-item__icon {
  opacity: 1;
}
.c-select-item {
  /* [State: Disabled] 비활성 상태 (필요 시 사용) */
}
.c-select-item__input:disabled + .c-select-item__box {
  border-color: #F7F7F7;
  background-color: #F9F9F9;
  cursor: not-allowed;
}
.c-select-item__input:disabled + .c-select-item__box .c-select-item__text {
  color: #C8C8C8;
}

/* ------------------------------------------------------------------------------
 * Rangeslider
 * ------------------------------------------------------------------------------ */
.c-range-slider-wrap {
  width: 100%;
}

.c-range-slider-item {
  padding: 0 1em;
}

.c-range-slider-wrap .c-range-slider.noUi-target {
  height: 0.6rem;
  margin: 3rem 0;
  border: none;
  border-radius: 0.2rem;
  background: #F7F7F7;
  -webkit-box-shadow: none;
          box-shadow: none;
}

.c-range-slider-wrap .c-range-slider .noUi-connect {
  background: #FF66CC;
}

.c-range-slider-wrap .c-range-slider .noUi-handle {
  top: -1rem;
  right: -1.4rem;
  width: 2.8rem;
  height: 2.8rem;
  border: none;
  border-radius: 50%;
  background: #ffffff;
  -webkit-box-shadow: 0 0.6rem 1.3rem 0 rgba(0, 0, 0, 0.1215686275), 0 0.05rem 0.4rem 0 rgba(0, 0, 0, 0.1215686275);
          box-shadow: 0 0.6rem 1.3rem 0 rgba(0, 0, 0, 0.1215686275), 0 0.05rem 0.4rem 0 rgba(0, 0, 0, 0.1215686275);
  cursor: pointer;
}

.c-range-slider-wrap .c-range-slider .noUi-handle::before,
.c-range-slider-wrap .c-range-slider .noUi-handle::after {
  display: none;
}

.c-range-slider-wrap .c-range-slider .noUi-handle:focus {
  outline: none;
}

.c-range-slider-wrap .c-range-slider__values {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 3.2rem;
}

.c-range-slider-wrap .c-range-slider__input {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  width: 100%;
  padding: 0.5rem 0;
  border: none;
  border-bottom: 1px solid #DDDDDD;
  background: transparent;
  color: #2B2B2B;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  text-align: right;
  outline: none;
}

.c-range-slider-wrap .c-range-slider__field {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

.c-range-slider-wrap .c-range-slider__label {
  display: block;
  margin-top: 0.4rem;
  color: #FF66CC;
  font-size: 1.2rem;
  font-weight: 500;
}

.c-range-slider-wrap .c-range-slider__field:first-child .c-range-slider__label {
  text-align: left;
}

.c-range-slider-wrap .c-range-slider__field:last-child .c-range-slider__label {
  text-align: right;
}

/* 구분자 (-) */
.c-range-slider-wrap .c-range-slider__separator {
  color: #2B2B2B;
  font-weight: 400;
}

/* ------------------------------------------------------------------------------
 * Star Rating
 * ------------------------------------------------------------------------------ */
.c-star-rating {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 0.8rem;
}
.c-star-rating input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-star-rating input:checked ~ label .c-icon {
  background-color: var(--primary);
}
.c-star-rating label {
  width: 3.2rem;
  height: 3.2rem;
  cursor: pointer;
}
.c-star-rating label .c-icon {
  width: 100%;
  height: 100%;
  background-color: #F0F0F0;
  -webkit-mask-image: url("/assets/icons/icon_star.svg");
  mask-image: url("/assets/icons/icon_star.svg");
  -webkit-transition: background-color 0.2s;
  transition: background-color 0.2s;
}

/* ------------------------------------------------------------------------------
 * Switch Toggle (Toggle Switch)
 * ------------------------------------------------------------------------------ */
.c-switch {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: pointer;
}
.c-switch input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-switch input:checked + .c-switch__track {
  background-color: var(--primary);
}
.c-switch input:checked + .c-switch__track::after {
  -webkit-transform: translateX(2.5rem);
          transform: translateX(2.5rem);
}
.c-switch input:disabled + .c-switch__track {
  opacity: 0.5;
  cursor: not-allowed;
}
.c-switch__track {
  position: relative;
  width: 5.5rem;
  height: 3rem;
  border-radius: 1.5rem;
  background-color: #E0E0E0;
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}
.c-switch__track::after {
  content: "";
  position: absolute;
  top: 2.5px;
  left: 2.5px;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background-color: #ffffff;
  -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}
.c-switch__label {
  margin-left: 0.6rem;
  color: #2B2B2B;
  font-size: 1.4rem;
}

/* ------------------------------------------------------------------------------
 * Select Box (Custom Select)
 * ------------------------------------------------------------------------------ */
.c-select {
  width: 100%;
  height: 4rem;
  padding: 0 2.2rem 0 1.6rem;
  border: 1px solid #DDDDDD;
  border-radius: 0.8rem;
  background-color: #ffffff;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 400;
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  background-image: url("../images/icons/icon_arr-bottom.svg");
  background-repeat: no-repeat;
  background-size: 1.6rem;
  background-position: right 1.6rem center;
}
.c-select:focus {
  outline: none;
  border-color: var(--primary);
}
.c-select:disabled {
  background-color: #F9F9F9;
  color: #ADADAD;
  cursor: not-allowed;
}
.c-select:invalid {
  color: #C8C8C8;
}
.c-select--line {
  width: 100%;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #DDDDDD;
  border-radius: 0;
  background-color: transparent;
  background-image: url("../images/icons/icon_chevron_down.svg");
  background-position: right 0.4rem center;
}

.c-select-custom {
  position: relative;
  width: 100%;
}
.c-select-custom__trigger {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  height: 4.8rem;
  padding: 0 1.6rem;
  border: 1px solid #F0F0F0;
  border-radius: 0.8rem;
  background-color: #ffffff;
  color: #2B2B2B;
  font-size: 1.4rem;
  cursor: pointer;
  -webkit-transition: border-color 0.2s;
  transition: border-color 0.2s;
}
.c-select-custom__trigger.is-placeholder {
  color: #C8C8C8;
}
.c-select-custom__trigger::after {
  content: "";
  width: 0.8rem;
  height: 0.8rem;
  margin-top: -0.4rem;
  border-bottom: 0.2rem solid #C8C8C8;
  border-right: 0.2rem solid #C8C8C8;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transition: -webkit-transform 0.2s;
  transition: -webkit-transform 0.2s;
  transition: transform 0.2s;
  transition: transform 0.2s, -webkit-transform 0.2s;
}
.c-select-custom.is-open .c-select-custom__trigger {
  border-color: var(--primary);
}
.c-select-custom.is-open .c-select-custom__trigger::after {
  margin-top: 0.4rem;
  -webkit-transform: rotate(-135deg);
          transform: rotate(-135deg);
}
.c-select-custom__options {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 500;
  display: none;
  max-height: 24rem;
  margin-top: 0.4rem;
  border: 1px solid #F0F0F0;
  border-radius: 0.8rem;
  background-color: #ffffff;
  -webkit-box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.1);
          box-shadow: 0 0.4rem 1.2rem rgba(0, 0, 0, 0.1);
  overflow-y: auto;
}
.c-select-custom__options::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.c-select-custom__options::-webkit-scrollbar-track {
  background: transparent;
}
.c-select-custom__options::-webkit-scrollbar-thumb {
  background: #E0E0E0;
  border-radius: 3px;
}
.c-select-custom.is-open .c-select-custom__options {
  display: block;
}
.c-select-custom__option {
  display: block;
  width: 100%;
  padding: 1.2rem 1.6rem;
  border: 0;
  background: none;
  color: #404040;
  font-size: 1.4rem;
  text-align: left;
  cursor: pointer;
  -webkit-transition: background-color 0.1s;
  transition: background-color 0.1s;
}
.c-select-custom__option.is-selected {
  background-color: var(--primary-light);
  color: var(--primary);
  font-weight: 500;
}

.c-input-item--slot .c-input {
  padding-right: calc(var(--end-w, 0px) + 0.8rem);
}

/**
 * ==============================================================================
 * File Name: _modules.scss
 * Description: 복합 모듈 (탭, 아코디언, 검색바, 카테고리 네비게이션 등)
 * Prefix: .c- (Component)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Tabs
 * Types: Default(Line) / Pill(Filter) / Sticky
 * 상태: .is-active(탭/패널), .c-tab--pill, .c-tab--full
 * ------------------------------------------------------------------------------ */
.c-tab {
  width: 100%;
  /* Tab List */
}
.c-tab__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 2rem;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.c-tab__list::-webkit-scrollbar {
  display: none;
}
.c-tab__list--sm {
  gap: 1.6rem;
}
.c-tab__list--sm .c-tab__link {
  padding: 0.8rem 0;
  font-size: 1.4rem;
  border-bottom-width: 2px;
}
.c-tab__list--md .c-tab__link {
  padding: 0.9rem 0;
  font-size: 1.6rem;
  border-bottom-width: 2px;
}
.c-tab {
  /* Tab Item */
}
.c-tab__item {
  min-width: -webkit-fit-content;
  min-width: -moz-fit-content;
  min-width: fit-content;
}
.c-tab {
  /* Tab Link */
}
.c-tab__link {
  display: block;
  width: 100%;
  padding: 1rem 0;
  color: #ADADAD;
  font-size: 1.8rem;
  font-weight: 600;
  text-align: center;
  border: 0;
  border-bottom: 3px solid transparent;
  background-color: #ffffff;
  white-space: nowrap;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
  cursor: pointer;
}
.c-tab__link.is-active {
  color: #FF66CC;
  border-bottom-color: #FF66CC;
}
.c-tab {
  /* Tab Panel */
}
.c-tab__panel {
  display: none;
  padding: 2rem 0 0;
  -webkit-animation: fade-in 0.3s ease-out;
          animation: fade-in 0.3s ease-out;
}
.c-tab__panel.is-active {
  display: block;
}
.c-tab {
  /* Variant: Pill */
}
.c-tab--pill .c-tab__list {
  gap: 0.4rem;
  border-bottom: 0;
  /* Size variants for pill type */
}
.c-tab--pill .c-tab__list--sm .c-tab__link {
  padding: 0.4rem 1.3rem;
  font-size: 1.4rem;
  border-radius: 1rem;
}
.c-tab--pill .c-tab__list--md .c-tab__link {
  padding: 0.6rem 1.2rem;
  font-size: 1.6rem;
  border-radius: 1rem;
}
.c-tab--pill .c-tab__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}
.c-tab--pill .c-tab__link {
  padding: 0.9rem 2rem;
  color: #ADADAD;
  font-size: 1.6rem;
  font-weight: 600;
  border: 1px solid #ffffff;
  border-radius: 1.6rem;
  background-color: #ffffff;
}
.c-tab--pill .c-tab__link.is-active {
  color: #ffffff;
  border-color: #FF66CC;
  background-color: #FF66CC;
}
.c-tab {
  /* Variant: Full Width */
}
.c-tab--full .c-tab__item {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}

/* ------------------------------------------------------------------------------
 * Variant: c-tab-nav (sticky)
 * Prefix: .c-tab-nav
 * ------------------------------------------------------------------------------ */
.c-tab-nav {
  position: sticky;
  top: var(--header-h, 0px);
  z-index: 30;
  width: 100%;
  background: #ffffff;
  border-bottom: 1px solid #F2F2F2;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}
.c-tab-nav .c-tab__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  white-space: nowrap;
  scrollbar-width: none;
}
.c-tab-nav .c-tab__list::-webkit-scrollbar {
  display: none;
}
.c-tab-nav .c-tab__item {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

.c-tab-nav--full {
  width: auto;
  margin-left: calc(-1 * var(--page-gutter));
  margin-right: calc(-1 * var(--page-gutter));
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

@supports (margin-inline: 1px) {
  .c-tab-nav--full {
    margin-inline: calc(-1 * var(--page-gutter));
  }
}
/* ------------------------------------------------------------------------------
 * Variant: c-tab--sticky
 * - 탭 네비게이션만 sticky, 나머지는 기본 탭 UI 유지
 * ------------------------------------------------------------------------------ */
.c-tab--sticky .c-tab-nav {
  position: sticky;
  top: var(--header-h, 4.8rem);
  z-index: 30;
  background: #ffffff;
  border-bottom: 1px solid #F2F2F2;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}

/* ------------------------------------------------------------------------------
 * Variant: c-tab--scroll
 * - 기존 tabs의 show/hide UI는 무시하고, 패널 항상 노출
 * - sticky/nav 유지: overflow/height 강제값 제거
 * ------------------------------------------------------------------------------ */
.c-tab.c-tab--scroll {
  overflow: visible;
}
.c-tab.c-tab--scroll .c-tab__panels {
  overflow: visible;
  height: auto;
}
.c-tab.c-tab--scroll .c-tab__panel,
.c-tab.c-tab--scroll .c-tab__panel:not(.is-active) {
  display: block;
  opacity: 1;
  height: auto;
  overflow: visible;
}
.c-tab.c-tab--scroll .c-tab__panel {
  scroll-margin-top: calc(var(--header-h, 0px) + var(--tab-nav-h, 0px) + 8px);
}
.c-tab.c-tab--scroll .c-tab__panel {
  position: relative;
}
.c-tab.c-tab--scroll {
  /* 첫 패널은 제외하고 싶으면 :not(:first-child) 유지 */
}
.c-tab.c-tab--scroll .c-tab__panel:not(:first-child)::before {
  content: "";
  display: block;
  height: 0.8rem;
  background: #F2F2F2;
  border-top: 1px solid #F2F2F2;
  border-bottom: 1px solid #F2F2F2;
  margin-left: calc(-1 * var(--page-gutter));
  margin-right: calc(-1 * var(--page-gutter));
  /* 구분선 아래 여백 */
  margin-bottom: 3rem;
}
.c-tab.c-tab--scroll .c-tab__panel + .c-tab__panel {
  margin-top: 2.4rem;
}

/* ------------------------------------------------------------------------------
 * 2. Accordion (FAQ)
 * ------------------------------------------------------------------------------ */
.c-accordion {
  border-top: 1px solid #F2F2F2;
}
.c-accordion__item {
  border-bottom: 1px solid #F2F2F2;
  background: #ffffff;
}
.c-accordion__item.is-open .c-accordion__btn {
  color: #404040;
  font-size: 1.5rem;
  font-weight: 500;
}
.c-accordion__item.is-open .c-accordion__icon {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.c-accordion__item.is-open .c-accordion__panel {
  display: block;
}
.c-accordion__btn {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.2rem;
  padding: 0.4rem 0.4rem;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 500;
  border: 0;
  background: transparent;
  text-align: left;
  cursor: pointer;
}
.c-accordion__title {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  min-width: 0;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.c-accordion__icon {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
  background-image: url("../images/icons/icon_acco_down.svg");
}
.c-accordion__panel {
  display: none;
  padding: 2.4rem 0.4rem;
  background: #ffffff;
  color: #838383;
  font-size: 1.4rem;
  word-break: keep-all;
}

.c-faq {
  background: #ffffff;
  margin-top: 1.2rem;
}
.c-faq .c-faq__list .c-faq__item {
  border-bottom: 1px solid #F2F2F2;
}
.c-faq .c-faq__list .c-faq__item.is-open {
  border-bottom: 0;
}
.c-faq .c-faq__list .c-faq__item.is-open .c-faq__panel {
  display: block;
}
.c-faq .c-faq__list .c-faq__item.is-open .c-faq__chev {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}
.c-faq .c-faq__list .c-faq__item:last-child {
  border-bottom: 0;
}
.c-faq .c-faq__btn {
  width: 100%;
  display: grid;
  grid-template-columns: 2.2rem 1fr 2.4rem;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 1.2rem;
  padding: 2rem 0;
  color: #2B2B2B;
  background: transparent;
  cursor: pointer;
}
.c-faq .c-faq__q {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  margin-right: 1rem;
  color: #2B2B2B;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
  letter-spacing: -0.01em;
}
.c-faq .c-faq__question {
  min-width: 0;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 500;
  text-align: left;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.c-faq .c-faq__chev {
  width: 1.6rem;
  height: 1.6rem;
  justify-self: end;
  -webkit-transition: -webkit-transform 0.2s ease;
  transition: -webkit-transform 0.2s ease;
  transition: transform 0.2s ease;
  transition: transform 0.2s ease, -webkit-transform 0.2s ease;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
}
.c-faq .c-faq__panel {
  display: none;
  background: #F9F9F9;
  margin: 0 calc(-1 * var(--page-gutter));
  padding: 0 var(--page-gutter);
}
.c-faq .c-faq__answer {
  display: grid;
  grid-template-columns: 2.2rem minmax(0, 1fr);
  gap: 1rem;
  padding: 2rem 0 2.4rem;
}
.c-faq .c-faq__a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.2rem;
  height: 2.2rem;
  margin-right: 1rem;
  color: #2B2B2B;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: 1;
}
.c-faq .c-faq__text {
  min-width: 0;
  color: #838383;
  font-size: 1.4rem;
  word-break: break-all;
  overflow-wrap: break-word;
  white-space: normal;
}

/* ------------------------------------------------------------------------------
 * 3. Category Navigation
 * ------------------------------------------------------------------------------ */
.c-category-nav {
  width: calc(100% + var(--page-gutter) * 2);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0 calc(-1 * var(--page-gutter));
  padding: 0 0 0.6rem;
}
.c-category-nav__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
}
.c-category-nav__list::before, .c-category-nav__list::after {
  content: "";
  -webkit-box-flex: 0;
      -ms-flex: 0 0 var(--page-gutter);
          flex: 0 0 var(--page-gutter);
}
.c-search-layer .c-category-nav__list::before, .c-search-layer .c-category-nav__list::after {
  -ms-flex-preferred-size: 0.8rem;
      flex-basis: 0.8rem;
}
.c-category-nav__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 6rem;
  min-width: 6rem;
}
.c-category-nav__btn {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  width: 100%;
  color: #404040;
  text-decoration: none;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
  cursor: pointer;
}
.c-category-nav__btn .c-category-nav__text {
  background-color: #2B2B2B;
  border-radius: 50%;
  color: #ffffff;
  letter-spacing: -0.03em;
  word-break: break-all;
}
.c-category-nav__btn.is-active .c-category-nav__label {
  color: #2B2B2B;
  border-bottom-color: #2B2B2B;
}
.c-category-nav__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 5.3rem;
  height: 5.3rem;
  background-color: #F7F7F7;
  border-radius: 50%;
}
.c-category-nav__icon > img {
  width: 3.5rem;
  height: 3.5rem;
}
.c-category-nav__text {
  font-size: 1.3rem;
  font-weight: 700;
}
.c-category-nav__label {
  padding-bottom: 0.8rem;
  color: #ADADAD;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.3;
  border-bottom: 2px solid transparent;
  white-space: pre-line;
  word-break: break-all;
}
.c-category-nav + .c-tab__panel {
  padding-top: 0;
}

/* ------------------------------------------------------------------------------
 * 4. Search Bar
 * ------------------------------------------------------------------------------ */
.c-search-bar {
  position: relative;
  width: 100%;
}
.c-search-bar__input {
  width: 100%;
  padding: 1.2rem 1.6rem;
  border: 1px solid #DDDDDD;
  border-radius: 0.8rem;
  background-color: #ffffff;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 500;
  -webkit-transition: border-color 0.2s, -webkit-box-shadow 0.2s;
  transition: border-color 0.2s, -webkit-box-shadow 0.2s;
  transition: border-color 0.2s, box-shadow 0.2s;
  transition: border-color 0.2s, box-shadow 0.2s, -webkit-box-shadow 0.2s;
}
.c-search-bar__input::-webkit-input-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-search-bar__input::-moz-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-search-bar__input:-ms-input-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-search-bar__input::-ms-input-placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-search-bar__input::placeholder {
  color: #C8C8C8;
  font-weight: 400;
}
.c-search-bar__input:focus {
  border-color: var(--primary);
  outline: none;
}
.c-search-bar__input:-moz-read-only {
  background-color: #F9F9F9;
  color: #838383;
  cursor: not-allowed;
}
.c-search-bar__input:read-only, .c-search-bar__input:disabled {
  background-color: #F9F9F9;
  color: #838383;
  cursor: not-allowed;
}
.c-search-bar__input:-moz-read-only:focus {
  border-color: #DDDDDD;
  box-shadow: none;
}
.c-search-bar__input:read-only:focus, .c-search-bar__input:disabled:focus {
  border-color: #DDDDDD;
  -webkit-box-shadow: none;
          box-shadow: none;
}
.c-search-bar__input.is-error {
  border-color: #EE443F;
}
.c-search-bar__input.is-error:focus {
  -webkit-box-shadow: 0 0 0 1px #EE443F;
          box-shadow: 0 0 0 1px #EE443F;
}
.c-search-bar__input {
  height: 5.2rem;
  padding-right: 8.4rem;
  font-size: 1.4rem;
  border-radius: 1.8rem;
  border-color: #DDDDDD;
  background-color: #ffffff;
}
.c-search-bar__input:focus {
  background-color: #ffffff;
  border-color: var(--primary);
}
.c-search-bar__input {
  /* IE 'X' */
}
.c-search-bar__input::-ms-clear, .c-search-bar__input::-ms-reveal {
  display: none;
  width: 0;
  height: 0;
}
.c-search-bar__input {
  /* Chrome 'X' (custom clear btn) */
}
.c-search-bar__input::-webkit-search-decoration, .c-search-bar__input::-webkit-search-cancel-button, .c-search-bar__input::-webkit-search-results-button, .c-search-bar__input::-webkit-search-results-decoration {
  display: none;
}
.c-search-bar__submit {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4rem;
  height: 4rem;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.c-search-bar .c-input-item__end {
  margin-right: 0.8rem;
}
.c-search-bar + .c-quick-menu {
  margin-top: 1rem;
}

/* ------------------------------------------------------------------------------
 * 5. Swiper Slider Custom
 * ------------------------------------------------------------------------------ */
.c-swiper:has(.swiper-pagination) {
  padding-bottom: 3.2rem;
}
.c-swiper .swiper-slide {
  border-radius: 1.6rem;
  overflow: hidden;
}
.c-swiper .swiper-slide a > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-swiper .swiper-pagination-bullet {
  opacity: 1;
  width: 0.5rem;
  height: 0.5rem;
  background: #E0E0E0;
}
.c-swiper .swiper-pagination-bullet-active {
  background: #2B2B2B;
}

/* ------------------------------------------------------------------------------
 * 6. Page Header
 * ------------------------------------------------------------------------------ */
.c-page-header {
  margin-top: 2.4rem;
  margin-bottom: 4rem;
}
.c-page-header .c-page-title {
  color: #2B2B2B;
  font-size: 2rem;
  font-weight: 600;
  white-space: pre-line;
  line-height: 1.4;
  letter-spacing: -0.03em;
}
.c-page-header .c-page-desc {
  color: #ADADAD;
  margin-top: 0.8rem;
  font-size: 1.4rem;
}

/* ------------------------------------------------------------------------------
 * 7. Etc
 * ------------------------------------------------------------------------------ */
/* Divider */
.c-divider {
  display: block;
  width: calc(100% + 3.2rem);
  height: 1px;
  border: 0;
  background: #F2F2F2;
  margin: 2.4rem -1.6rem;
}
.c-divider__bold {
  height: 8px;
  margin-bottom: 3rem;
}

.c-divider--section {
  margin: 1.6rem 0 0;
  border: 0;
  border-top: 1px solid #F7F7F7;
}

/* Quick Menu */
.c-quick-menu {
  padding: 1.6rem 0.8rem;
  border-radius: 1.8rem;
  background: #ffffff;
  -webkit-box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
          box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
}
.c-quick-menu__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.c-quick-menu__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  gap: 0.4rem;
}
.c-quick-menu__item > a {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  padding: 0 1rem;
}
.c-quick-menu__item > a::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  height: 53px;
  background-image: url("../images/pages/line_quickmenu.svg");
}
.c-quick-menu__item:last-child > a::after {
  display: none;
}
.c-quick-menu__item .c-icon {
  background-color: transparent;
}
.c-quick-menu__item .icon-counsel_primary {
  background-image: url("../images/icons/icon_counsel_primary.svg");
}
.c-quick-menu__item .icon-list_primary {
  background-image: url("../images/icons/icon_list_primary.svg");
}
.c-quick-menu__item .icon-heart_primary {
  background-image: url("../images/icons/icon_heart_primary.svg");
}
.c-quick-menu__item .icon-help_primary {
  background-image: url("../images/icons/icon_help_primary.svg");
}
.c-quick-menu__title {
  margin-top: 0.4rem;
  color: #404040;
  font-size: 1.2rem;
  font-weight: 500;
}

/* Shadow helper */
.c-shadow .c-scard {
  -webkit-box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
          box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
}

/* Sort trigger */
.c-sort-trigger {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.5;
}
.c-sort-trigger .c-icon {
  --icon-size: 16px;
}

.c-box {
  padding: 2rem;
  color: #404040;
  font-size: 1.4rem;
  border-radius: 1.2rem;
  background-color: #F7F7F7;
}
.c-box--line {
  background-color: transparent;
  border-radius: 1.6rem;
  border: 1px solid #DDDDDD;
}
.c-box--alert {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4rem;
  margin-top: 2rem;
}
.c-box--alert__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.2rem;
  padding: 1rem 1.2rem;
  border-radius: 1rem;
  background: rgba(238, 68, 63, 0.1019607843);
}
.c-box--alert__item .c-icon {
  --icon-size: 16px;
  background-color: #EE443F;
}
.c-box--alert__text {
  color: #EE443F;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 2rem;
}

/* ------------------------------------------------------------------------------
 * Rating
 * ------------------------------------------------------------------------------ */
.c-rating {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.c-rating .icon-rating {
  width: 1.6rem;
  height: 1.6rem;
}
.c-rating--sm .icon-rating {
  width: 1.2rem;
  height: 1.2rem;
}
.c-rating--md .icon-rating {
  width: 1.6rem;
  height: 1.6rem;
}
.c-rating--lg .icon-rating {
  width: 2rem;
  height: 2rem;
}
.c-rating--xl .icon-rating {
  width: 3.2rem;
  height: 3.2rem;
}

/* Rating icon states */
.icon-rating {
  --icon-url: url("../images/icons/icon_grade-empty.svg");
}
.icon-rating.is-full {
  --icon-url: url("../images/icons/icon_grade-full.svg");
}
.icon-rating.is-half {
  --icon-url: url("../images/icons/icon_grade-half.svg");
}
.icon-rating.is-empty {
  --icon-url: url("../images/icons/icon_grade-empty.svg");
}

/* ------------------------------------------------------------------------------
 * Rating Input (Radio 기반 별점 입력)
 * ------------------------------------------------------------------------------ */
.c-rating-input {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  width: 3.2rem;
  height: 3.2rem;
}
.c-rating-input__radio {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-rating-input__star {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  cursor: pointer;
  -webkit-transition: -webkit-transform 0.1s ease;
  transition: -webkit-transform 0.1s ease;
  transition: transform 0.1s ease;
  transition: transform 0.1s ease, -webkit-transform 0.1s ease;
}
.c-rating-input__star .icon-rating {
  width: 3.2rem;
  height: 3.2rem;
}
.c-rating-input__star:hover {
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.c-rating-input__star:active {
  -webkit-transform: scale(0.95);
          transform: scale(0.95);
}
.c-rating-input__star:focus-within {
  outline: 2px solid #FF66CC;
  outline-offset: 2px;
  border-radius: 2px;
}

/* ------------------------------------------------------------------------------
 * Rating Summary
 * ------------------------------------------------------------------------------ */
.c-rating-summary {
  margin-top: 1.2rem;
}
.c-rating-summary__score {
  line-height: 1.2;
}
.c-rating-summary__value {
  font-size: 4rem;
  font-weight: 500;
  color: #2B2B2B;
  letter-spacing: -0.01em;
}
.c-rating-summary__meta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  margin-top: 0.2rem;
}
.c-rating-summary__count {
  color: #838383;
  font-size: 1.3rem;
  font-weight: 500;
}
.c-rating-summary__count-number {
  color: #2B2B2B;
  font-weight: 600;
}

/* ------------------------------------------------------------------------------
 * Review Summary
 * ------------------------------------------------------------------------------ */
.c-review-summary {
  padding-bottom: 2.4rem;
  margin-bottom: 2.4rem;
  border-bottom: 1px solid #F2F2F2;
}
.c-review-summary__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.c-review-summary__head .t-h5 {
  margin-bottom: 0;
}
.c-review-summary__head .c-btn-trigger {
  gap: 0.2rem;
  padding: 0.1rem 0;
  font-weight: 400;
  line-height: 1.5;
}
.c-review-summary__head .c-btn-trigger .c-icon {
  background-color: #ADADAD;
}

/* ------------------------------------------------------------------------------
 * Text Clamp
 * - role: 지정 줄수로 텍스트를 접고, 더보기 버튼과 조합
 * - state: .is-clamped / .is-expanded
 * - 변수(JS/옵션): --line-clamp, --text-more-space, --text-more-bg
 * ------------------------------------------------------------------------------ */
.c-text-clamp-wrap {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

.c-text-clamp.is-clamped + .js-text-more-toggle {
  position: absolute;
  right: 0;
  bottom: 0.3rem;
  margin-top: 0;
  border-radius: 0;
  background-color: var(--text-more-bg, #ffffff);
}
.c-text-clamp.is-clamped + .js-text-more-toggle::before {
  content: "";
  position: absolute;
  left: -1.2rem;
  top: 0;
  bottom: 0;
  width: 1.2rem;
  pointer-events: none;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(var(--text-more-bg, #ffffff)));
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), var(--text-more-bg, #ffffff));
}

.c-text-clamp.is-expanded + .js-text-more-toggle {
  position: static;
  background-color: transparent;
}
.c-text-clamp.is-expanded + .js-text-more-toggle::before {
  display: none;
}

.c-text-clamp {
  margin-top: 1.6rem;
  color: #838383;
  font-size: 1.4rem;
  overflow-wrap: break-word;
  word-break: break-all;
}
.c-text-clamp.is-clamped {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: var(--line-clamp, 3);
  overflow: hidden;
  padding-right: var(--text-more-space, 3.3rem);
}
.c-text-clamp.is-expanded {
  display: block;
  padding-right: 0;
}
.c-text-clamp .c-desc__item:not(:last-child) {
  margin-bottom: 2.5rem;
}

/* ------------------------------------------------------------------------------
 * Collapse (accordion 모드 컨테이너)
 * - role: UiTextMore의 accordion 모드에서 max-height 트랜지션 제공
 * - state: .is-collapsed / .is-expanded
 * - 변수(JS/옵션): --collapse-max
 * ------------------------------------------------------------------------------ */
.c-collapse {
  display: block;
  overflow: hidden;
  -webkit-transition: max-height 0.25s ease, opacity 0.25s ease;
  transition: max-height 0.25s ease, opacity 0.25s ease;
  will-change: max-height, opacity;
  /* 닫힘 */
}
.c-collapse.is-collapsed {
  max-height: 0;
  opacity: 0;
  pointer-events: none;
  margin-top: 0;
}
.c-collapse {
  /* 열림 */
}
.c-collapse.is-expanded {
  max-height: var(--collapse-max, 2000px);
  opacity: 1;
}
.c-collapse + .js-text-more-toggle {
  margin-top: 2.4rem;
}

.c-card-list .c-collapse.is-collapsed {
  padding: 0;
}

/* ------------------------------------------------------------------------------
 * c-desc (공통 소개/설명 섹션)
 * - 마크업 구조 대응:
 *   dl.c-desc__item (요약)
 *   div.c-text-more (펼치기)
 *     dl.c-desc__item ... (복수)
 * ------------------------------------------------------------------------------ */
.c-desc {
  /* Item spacing (구조 대응) */
}
.c-desc > .c-desc__item + .c-text-more {
  margin-top: 2.4rem;
}
.c-desc .c-text-more .c-desc__item + .c-desc__item {
  margin-top: 2.4rem;
}
.c-desc__item {
  margin: 0;
}
.c-desc__title {
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 500;
}
.c-desc__title:has(.c-btn) {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
.c-desc__text {
  margin-top: 0.8rem;
  color: #838383;
  font-size: 1.4rem;
  font-weight: 400;
  overflow-wrap: break-word; /* 긴 문자열(URL/영문/연속문자)만 안전하게 줄바꿈 */
  word-break: keep-all; /* 한글은 단어 단위(가능한 범위)로 줄바꿈 → 가독성 좋음 */
}
.c-desc__text .c-desc__subtext {
  display: block;
}
.c-desc {
  /* c-text-more(더보기 컨테이너) 내부 텍스트 톤 통일 */
}
.c-desc .c-text-more {
  color: #838383;
  font-size: 1.4rem;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.c-desc {
  /* Media */
}
.c-desc__media {
  margin-top: 2.4rem;
}
.c-desc__media + .c-desc {
  margin-top: 3.2rem;
}
.c-desc__media-wrap {
  position: relative;
  width: 100%;
  overflow: hidden;
  background-color: #000;
}
@supports (aspect-ratio: 1/1) {
  .c-desc__media-wrap {
    aspect-ratio: 343/192;
  }
}
@supports not (aspect-ratio: 1/1) {
  .c-desc__media-wrap {
    padding-top: 56.25%;
  }
}
.c-desc__media-frame {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.c-desc {
  /* List (Dot / Dash) */
}
.c-desc__list {
  margin: 0.4rem 0 0;
  padding: 0;
  color: #838383;
  font-size: 1.4rem;
}
.c-desc__list > li {
  position: relative;
  padding-left: 1.2rem;
}
.c-desc__list > li + li {
  margin-top: 0.2rem;
}
.c-desc__list > li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.8em;
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 999px;
  background-color: #E0E0E0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-desc__list--dot > li::before {
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 999px;
  background-color: #E0E0E0;
}
.c-desc__list--dash > li::before {
  width: 0.5rem;
  height: 1px;
  border-radius: 0;
  background-color: #C8C8C8;
  top: 0.9em;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}
.c-desc__list--none li {
  padding-left: 0;
}
.c-desc__list--none li::before {
  display: none;
}
.c-desc__list--none li:not(:first-child) {
  margin-top: 0.4rem;
}
.c-desc.c-desc--hospital + .c-desc__media {
  margin-top: 3.2rem;
}

.c-desc--detail {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
  margin-top: 1.6rem;
}

/* ------------------------------------------------------------------------------
 * c-stepper
 * - is-complete : 완료, is-current : 현재, is-disabled : 비활성
 * ------------------------------------------------------------------------------ */
.c-stepper {
  /* pill stepper 기본(=stepper_set) */
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  width: 100%;
  gap: var(--stepper-gap);
  /* 연결선 길이 */
  --stepper-gap: 2rem;
}
.c-stepper__item {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  /* connector (pill only) */
}
.c-stepper__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  width: var(--stepper-gap);
  height: 1px;
  background-color: #F0F0F0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  pointer-events: none;
}
.c-stepper__item {
  /* 완료 구간 선은 primary */
}
.c-stepper__item.is-complete:not(:last-child)::after {
  background-color: #FF66CC;
}
.c-stepper__label {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  min-height: 4.4rem;
  padding: 0 1rem;
  color: #C8C8C8;
  font-size: 1.4rem;
  font-weight: 500;
  border-radius: 1rem;
  border: 1px solid transparent;
  background-color: #ffffff;
  /* button reset */
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}
.c-stepper__label:disabled {
  cursor: not-allowed;
}
.c-stepper {
  /* states */
}
.c-stepper__item.is-complete .c-stepper__label {
  background-color: #ffffff;
  border-color: #FF66CC;
  color: #FF66CC;
}
.c-stepper__item.is-current .c-stepper__label {
  background-color: #FF66CC;
  border-color: #FF66CC;
  color: #ffffff;
}
.c-stepper__item.is-disabled .c-stepper__label {
  background-color: #F7F7F7;
  border-color: #F7F7F7;
  color: #C8C8C8;
}
.c-stepper--square {
  gap: 1.6rem;
  /* square는 연결선 없음 */
}
.c-stepper--square .c-stepper__item {
  margin-right: 0;
  padding-right: 0;
}
.c-stepper--square .c-stepper__item::after {
  display: none;
}
.c-stepper--square .c-stepper__label {
  width: 4.8rem;
  height: 4.8rem;
  min-height: auto;
  padding: 0;
  border-radius: 1.2rem;
}

/* ------------------------------------------------------------------------------
 * c-map-block (지도 블록)
 * ------------------------------------------------------------------------------ */
.c-map-block {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
}
.c-map-block__bar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
}
.c-map-block__addr {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  margin: 0;
  min-width: 0; /* flex item ellipsis */
  color: #838383;
  font-size: 1.4rem;
}
.c-map-block__addr .icon-location {
  width: 1.6rem;
  height: 1.6rem;
  background-color: #ADADAD;
}
.c-map-block__addr-text {
  display: inline-block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.c-map-block__map {
  overflow: hidden;
  min-height: 16rem;
}
.c-map-block__canvas {
  width: 100%;
  height: 100%;
  min-height: 16rem;
  background: #F9F9F9;
  -ms-touch-action: pan-x pan-y;
      touch-action: pan-x pan-y;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
}
.c-map-block .c-btn-copy {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  height: 3rem;
  color: #838383;
  font-size: 1.2rem;
  font-weight: 400;
  border-color: #DDDDDD;
}

.c-map-block--multiline .c-map-block__addr-text {
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.c-map-block__canvas {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 16rem;
  background: #F9F9F9 no-repeat center/cover;
  -ms-touch-action: pan-x pan-y;
      touch-action: pan-x pan-y;
  /* 이미지 플레이스홀더 */
}
.c-map-block__canvas[data-placeholder=image] {
  background-image: url("https://placehold.co/1200x600?text=MAP+AREA");
}
.c-map-block__canvas {
  /* 패턴 플레이스홀더 */
}
.c-map-block__canvas.is-placeholder {
  background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.02)), to(rgba(0, 0, 0, 0.02))), repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.04) 0px, rgba(0, 0, 0, 0.04) 10px, rgba(0, 0, 0, 0.02) 10px, rgba(0, 0, 0, 0.02) 20px);
  background-image: linear-gradient(0deg, rgba(0, 0, 0, 0.02), rgba(0, 0, 0, 0.02)), repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.04) 0px, rgba(0, 0, 0, 0.04) 10px, rgba(0, 0, 0, 0.02) 10px, rgba(0, 0, 0, 0.02) 20px);
}
.c-map-block__canvas.is-placeholder::after {
  content: "MAP AREA";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #6B6B6B;
  font-weight: 700;
  letter-spacing: 0.08em;
}

/* --------------------------------------------------------------------------
  Payment Head (상단 결제 정보)
-------------------------------------------------------------------------- */
.c-payment-head {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  padding: 1.6rem 0 2.4rem;
}
.c-payment-head::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: -1.6rem;
  width: calc(100% + 3.2rem);
  height: 8px;
  background-color: #F2F2F2;
}
.c-payment-head .c-badge {
  height: 27px;
  margin-right: 1rem;
  font-size: 1.4rem;
  line-height: 1.5;
}
.c-payment-head__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.c-payment-head {
  /* 결제 일시 */
}
.c-payment-head__title {
  color: #2B2B2B;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.6rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.c-payment-head {
  /* 결제 코드 */
}
.c-payment-head__meta {
  color: #ADADAD;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: -0.01em;
}
.c-payment-head.is-sub {
  padding: 3rem 0 1.6rem;
}
.c-payment-head.is-sub::after {
  left: 0;
  width: 100%;
  height: 1px;
}

/* --------------------------------------------------------------------------
  Payment Box (총 결제금액 및 상세 내역 박스)
-------------------------------------------------------------------------- */
.c-payment-box {
  padding: 1.8rem 2rem;
  border-radius: 1.6rem;
  background-color: #F9F9F9;
  /* 상단 헤더 (총 결제금액 라인) */
}
.c-payment-box__head {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #F0F0F0;
}
.c-payment-box {
  /* 라벨 그룹 (아이콘 + 텍스트 등 확장성 고려) */
}
.c-payment-box__label-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}
.c-payment-box__label {
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 500;
}
.c-payment-box__total {
  color: #FF66CC;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
}
.c-payment-box {
  /* 상세 내역 리스트 */
}
.c-payment-box__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  margin: 0;
  gap: 0.4rem; /* 항목 간 간격 추가 (선택사항) */
}
.c-payment-box {
  /* 상세 내역 행 (dt: 항목명, dd: 금액) */
}
.c-payment-box__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  font-size: 1.4rem;
}
.c-payment-box__row dt {
  color: #838383;
  font-weight: 400;
}
.c-payment-box__row dd {
  margin: 0;
  color: #2B2B2B;
  font-weight: 400;
}
.c-payment-box__row dd.c-payment-box__amount {
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-weight: 600;
  font-size: 1.5rem;
}

/* --------------------------------------------------------------------------
  List / Text
-------------------------------------------------------------------------- */
.c-list__wrap .c-list--bullet li {
  position: relative;
  padding-left: 1rem;
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 400;
}
.c-list__wrap .c-list--bullet li::before {
  content: "·";
  position: absolute;
  top: 0.15rem;
  left: 0;
  display: inline-block;
  width: 0.6rem;
  height: 1.8rem;
  margin-right: 0.4rem;
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 400;
  text-align: center;
}
.c-list__wrap .c-list--bullet li + li {
  margin-top: 0.2rem;
}

.c-help {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0.4rem;
  margin: 2.4rem 0 0;
  color: #ADADAD;
  font-size: 1.3rem;
}
.c-help .c-icon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  --icon-size: 16px;
  background-color: #ADADAD;
  margin-top: 0.2rem;
}

.c-summary {
  padding-bottom: 3rem;
  border-bottom: 1px solid #F2F2F2;
}
.c-summary__row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0.2rem 0;
}
.c-summary__key {
  color: #838383;
  font-size: 1.4rem;
}
.c-summary__val {
  margin: 0;
  color: #2B2B2B;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
}

.c-agree {
  position: relative;
  padding: 3rem 0 0;
}
.c-agree::before {
  content: "";
  position: absolute;
  top: 0;
  left: -1.6rem;
  width: calc(100% + 3.2rem);
  height: 1px;
  background-color: #F2F2F2;
}
.c-agree .c-form-group__both {
  margin-bottom: 1.6rem;
}
.c-agree .ai-link {
  color: #838383;
  font-size: 1.2rem;
  text-decoration: underline;
}
.c-agree .ai-link .icon-info {
  margin-right: 0.4rem;
  --icon-size: 18px;
  background-color: #C8C8C8;
}

.l-section:has(.c-agree) + .l-section:has(.c-agree) .c-agree {
  padding-top: 0;
}
.l-section:has(.c-agree) + .l-section:has(.c-agree) .c-agree::before {
  display: none;
}

/* --------------------------------------------------------------------------
  Media Fold (긴 이미지 접기/펼치기)
  - markup: .c-media-fold[data-media-fold]
  - state : .is-collapsible / .is-expanded
  - 변수(JS): --fold-h(접힘 높이), --fade-h(그라데이션 높이)
-------------------------------------------------------------------------- */
.c-media-fold {
  /* JS에서 --fold-h 주입, 없으면 기본값 */
  --fold-h: 520px;
  --fade-h: 30px; /* 접힘 상태에서 그라데이션 높이 */
  position: relative;
}

/* 실제로 잘리는 영역(클리핑) */
.c-media-fold__view {
  position: relative;
  overflow: hidden;
  max-height: var(--fold-h);
}
.c-media-fold__view .c-media-fold__text {
  padding: 0 1.6rem;
}

/* 펼침: 전체 노출 */
.c-media-fold.is-expanded .c-media-fold__view {
  max-height: none;
}

.c-media-fold__img {
  display: block;
  width: 100%;
  height: auto;
}

/* 접힘 + 접기/펼치기 필요할 때만 페이드 오버레이 표시 */
.c-media-fold.is-collapsible:not(.is-expanded) .c-media-fold__view::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--fade-h);
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(#FFFFFF));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #FFFFFF 100%);
  pointer-events: none;
}

.c-media-fold__actions {
  margin-top: 1.6rem;
}

.c-media-fold__toggle {
  width: 100%;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.4rem;
}

.c-media-fold__toggle .icon-arr-bottom {
  display: inline-block;
  -webkit-transform: rotate(0deg);
          transform: rotate(0deg);
  -webkit-transition: -webkit-transform 180ms ease;
  transition: -webkit-transform 180ms ease;
  transition: transform 180ms ease;
  transition: transform 180ms ease, -webkit-transform 180ms ease;
  -webkit-transform-origin: 50% 50%;
          transform-origin: 50% 50%;
}

.c-media-fold.is-expanded .c-media-fold__toggle .icon-arr-bottom {
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

/* 토글이 필요 없으면 액션 영역 숨김 (JS가 hidden 처리하지만 스타일 안전망) */
.c-media-fold:not(.is-collapsible) .c-media-fold__actions {
  display: none;
}

/**
 * ==============================================================================
 * File Name: _overlays.scss
 * Description: 현재 화면 위 레이어 컴포넌트 (Modal, BottomSheet, Popup, Toast, Tooltip)
 * Prefix: .c- (Component)
 * Usage: .c-modal, .c-bottom-sheet, .c-popup, .c-toast-container
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Modal / Bottom Sheet
 * ------------------------------------------------------------------------------ */
/* Modal */
.c-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000;
  width: 100%;
  height: 100%;
}
.c-modal.is-open {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.c-modal.is-open .c-modal__dim {
  opacity: 1;
}
.c-modal__dim {
  position: absolute;
  inset: 0;
  z-index: 1000;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.2);
  opacity: 0;
  -webkit-transition: opacity 0.2s;
  transition: opacity 0.2s;
}
.c-modal__content {
  position: relative;
  z-index: 1001;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 85%;
  max-width: 50rem;
  max-height: 90vh;
  border-radius: 2rem;
  background-color: #ffffff;
  overflow: hidden;
}
.c-modal__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  position: relative;
  padding: 1.6rem 1.6rem 0;
  text-align: center;
}
.c-modal__header .c-modal__close {
  position: absolute;
  right: 1.6rem;
  display: none;
}
.c-modal__header .c-modal__close .c-icon {
  --icon-size: 16px;
  background-color: #838383;
}
.c-modal__header h3 {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-modal__body {
  padding: 3rem 1.6rem 2rem;
  color: #838383;
  font-size: 1.4rem;
  text-align: center;
  overflow-y: auto;
}
.c-modal__body::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.c-modal__body::-webkit-scrollbar-track {
  background: transparent;
}
.c-modal__body::-webkit-scrollbar-thumb {
  background: #E0E0E0;
  border-radius: 3px;
}
.c-modal__body .c-form-group {
  margin-bottom: 0;
}
.c-modal__body .c-form-group + .c-form-group {
  margin-top: 2rem;
}
.c-modal__body .c-form-group .c-form-group__msg {
  text-align: left;
}
.c-modal__footer {
  padding: 0 1.6rem 1.6rem;
  text-align: center;
}
.c-modal__footer__inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 0.6rem;
}
.c-modal__footer__inner .c-btn {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  padding: 1.6rem 2rem;
  border: 1px solid transparent;
  border-radius: 1.6rem;
  font-size: 1.4rem;
  font-weight: 600;
}
.c-modal__footer__inner .c-btn--secondary {
  color: #838383;
  background-color: #ffffff;
  border: 1px solid #DDDDDD;
}
.c-modal__close::before, .c-modal__close::after {
  background-color: #404040;
}
.c-modal__msg {
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 400;
}
.c-modal__msg + .c-form-group {
  margin-top: 1rem;
}
.c-modal:has(.c-modal__header) .c-modal__body {
  padding-top: 1.2rem;
}

/* Bottom Sheet */
.c-bottom-sheet {
  position: fixed;
  inset: 0;
  z-index: 1000;
  width: 100%;
  height: 100%;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: opacity 0.3s ease, visibility 0s linear 0.3s;
  transition: opacity 0.3s ease, visibility 0s linear 0.3s;
}
.c-bottom-sheet.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  -webkit-transition: opacity 0.3s ease, visibility 0s;
  transition: opacity 0.3s ease, visibility 0s;
}
.c-bottom-sheet.is-open .c-bottom-sheet__dim {
  opacity: 1;
}
.c-bottom-sheet.is-open .c-bottom-sheet__content {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}
.c-bottom-sheet.is-expanded .c-bottom-sheet__content {
  max-height: 95vh;
}
.c-bottom-sheet:has(.c-bottom-sheet__handle) .c-bottom-sheet__header {
  padding-top: 1.2rem;
}
.c-bottom-sheet__dim {
  position: absolute;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.2);
  opacity: 0;
  -webkit-transition: opacity 0.3s ease;
  transition: opacity 0.3s ease;
}
.c-bottom-sheet__content {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 1001;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  max-height: 85vh;
  /* iOS: safe-area만 (추가 패딩 0) */
}
html[data-os=ios] .c-bottom-sheet__content {
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.c-bottom-sheet__content {
  /* Android: 1.2rem 고정 */
}
html[data-os=aos] .c-bottom-sheet__content {
  padding-bottom: var(--aos-safe-padding);
}
.c-bottom-sheet__content {
  /* PC: Android와 동일 */
}
body.is-desktop .c-bottom-sheet__content {
  padding-bottom: var(--aos-safe-padding);
}
.c-bottom-sheet__content {
  border-radius: 2rem 2rem 0 0;
  background-color: #ffffff;
  -webkit-box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
          box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
  -webkit-transform: translate3d(0, 100%, 0);
          transform: translate3d(0, 100%, 0);
  will-change: transform;
  -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition: -webkit-transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
}
.c-bottom-sheet__handle {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100%;
  height: 2.4rem;
  cursor: -webkit-grab;
  cursor: grab;
}
.c-bottom-sheet__handle::after {
  content: "";
  width: 4rem;
  height: 0.4rem;
  border-radius: 0.2rem;
  background-color: #E0E0E0;
}
.c-bottom-sheet__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 3rem 2.4rem 2.4rem;
}
.c-bottom-sheet__header h3 {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 500;
}
.c-bottom-sheet__header .c-btn--icon {
  width: 2rem;
  height: 2rem;
}
.c-bottom-sheet__header .c-btn--icon .icon-close {
  --icon-size: 20px;
}
.c-bottom-sheet__body {
  padding: 0 2.4rem 1.2rem;
  overflow-y: auto;
}
.c-bottom-sheet__body::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
.c-bottom-sheet__body::-webkit-scrollbar-track {
  background: transparent;
}
.c-bottom-sheet__body::-webkit-scrollbar-thumb {
  background: #E0E0E0;
  border-radius: 3px;
}
.c-bottom-sheet__footer {
  padding: 1.2rem 2.4rem;
}
.c-bottom-sheet__footer .c-btn-group .c-btn {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.c-bottom-sheet {
  /* Sort Sheet (radio/checkbox list) */
}
.c-bottom-sheet .c-sort-sheet__item {
  position: relative;
}
.c-bottom-sheet .c-sort-sheet__radio, .c-bottom-sheet .c-sort-sheet__checkbox {
  position: absolute;
  inset: 0;
  opacity: 0;
  pointer-events: none;
}
.c-bottom-sheet .c-sort-sheet__label {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 0.4rem;
  width: 100%;
  padding: 0.6em 0;
  color: #838383;
  font-size: 1.5rem;
  font-weight: 500;
  -webkit-transition: color 0.15s ease;
  transition: color 0.15s ease;
  cursor: pointer;
}
.c-bottom-sheet .c-sort-sheet__label .icon-check {
  width: 2rem;
  height: 2rem;
}
.c-bottom-sheet .c-sort-sheet__label .c-icon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  opacity: 0;
  -webkit-transition: opacity 0.15s ease, -webkit-transform 0.15s ease;
  transition: opacity 0.15s ease, -webkit-transform 0.15s ease;
  transition: opacity 0.15s ease, transform 0.15s ease;
  transition: opacity 0.15s ease, transform 0.15s ease, -webkit-transform 0.15s ease;
}
.c-bottom-sheet .c-sort-sheet__radio:checked + .c-sort-sheet__label, .c-bottom-sheet .c-sort-sheet__checkbox:checked + .c-sort-sheet__label {
  color: #2B2B2B;
}
.c-bottom-sheet .c-sort-sheet__radio:checked + .c-sort-sheet__label .c-icon, .c-bottom-sheet .c-sort-sheet__checkbox:checked + .c-sort-sheet__label .c-icon {
  opacity: 1;
}
.c-bottom-sheet {
  /* Action Sheet (option list) */
}
.c-bottom-sheet.type-action .c-action-sheet__btn {
  width: 100%;
  padding: 1rem 0;
  text-align: left;
}
.c-bottom-sheet {
  /* Share Sheet (공유하기) */
}
.c-bottom-sheet .c-share-sheet {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem 0.6rem;
  padding: 0.8rem 0 2rem;
}
.c-bottom-sheet .c-share-sheet__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  padding: 0 0.2rem;
  border: 0;
  background: transparent;
  color: #2B2B2B;
  font-size: 1.2rem;
  font-weight: 400;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.c-bottom-sheet .c-share-sheet__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: clamp(4.4rem, 13.867vw, 5.7rem);
  height: clamp(4.1rem, 13.6vw, 5.5rem);
  border-radius: 50%;
  overflow: hidden;
}
.c-bottom-sheet .c-share-sheet__icon img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.c-bottom-sheet .c-share-sheet__label {
  color: #2B2B2B;
  font-size: 1.1rem;
  font-weight: 500;
  text-align: center;
}

/* ------------------------------------------------------------------------------
 * 2. Full Popup
 * ------------------------------------------------------------------------------ */
.c-popup {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: block;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: opacity 0.25s ease, visibility 0s linear 0.25s;
  transition: opacity 0.25s ease, visibility 0s linear 0.25s;
}
.c-popup::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  -webkit-transition: opacity 0.25s ease;
  transition: opacity 0.25s ease;
  pointer-events: none;
}
.c-popup:focus {
  outline: none;
}
.c-popup__content {
  position: relative;
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  -ms-scroll-chaining: none;
      overscroll-behavior: contain;
  -webkit-transform: translate3d(0, 16px, 0);
          transform: translate3d(0, 16px, 0);
  -webkit-transition: -webkit-transform 0.25s ease;
  transition: -webkit-transform 0.25s ease;
  transition: transform 0.25s ease;
  transition: transform 0.25s ease, -webkit-transform 0.25s ease;
}
.c-popup.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  -webkit-transition: opacity 0.25s ease, visibility 0s;
  transition: opacity 0.25s ease, visibility 0s;
}
.c-popup.is-open::before {
  opacity: 1;
}
.c-popup.is-open .c-popup__content {
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
}
@media (prefers-reduced-motion: reduce) {
  .c-popup {
    -webkit-transition: none;
    transition: none;
  }
  .c-popup::before, .c-popup__content {
    -webkit-transition: none;
    transition: none;
    -webkit-transform: none;
            transform: none;
  }
}
.c-popup.c-popup--dark {
  background: #2B2B2B;
  color: #ffffff;
}
.c-popup.c-popup--dark .l-header {
  background: #2B2B2B;
}
.c-popup.c-popup--dark .l-header .l-header__title {
  color: #ffffff;
}
.c-popup.c-popup--dark .l-wrapper--popup {
  background: #2B2B2B;
}
.c-popup.c-popup--dark .btn-icon > .c-icon {
  background-color: #ffffff;
}

.c-popup .l-wrapper--popup {
  min-height: 100%;
  background-color: #ffffff;
}

/* ------------------------------------------------------------------------------
 * 3. Toast Message
 * ------------------------------------------------------------------------------ */
.c-toast-container {
  position: fixed;
  left: 50%;
  bottom: calc(max(var(--l-bottom-h, 0px), env(safe-area-inset-bottom, 0px)) + 1.5rem);
  z-index: 2000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1rem;
  width: auto;
  max-width: calc(100% - var(--page-gutter) * 2);
  padding: 0 var(--page-gutter);
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  pointer-events: none;
}

.c-toast {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 1.2rem 1.6rem;
  border-radius: 1rem;
  background-color: #404040;
  color: #ffffff;
  font-size: 1.4rem;
  font-weight: 400;
  white-space: nowrap;
  pointer-events: auto;
  -webkit-animation: toast-fade-in 0.2s ease-out;
          animation: toast-fade-in 0.2s ease-out;
}
.c-toast::before {
  content: "";
  display: inline-block;
  width: 1.6rem;
  height: 1.6rem;
  margin-right: 0.8rem;
  background: url("../images/icons/icon_check-white.svg") 50%/100% no-repeat;
}
.c-toast--success {
  background-color: #2ECC71;
}
.c-toast--error {
  background-color: #EE443F;
}
.c-toast--info {
  background-color: #3498DB;
}

/* ------------------------------------------------------------------------------
 * 4. Tooltip
 * ------------------------------------------------------------------------------ */
.c-tooltip__icon {
  background-color: #F0F0F0;
  color: #838383;
}
.c-tooltip__content {
  z-index: 1000;
  background-color: #2B2B2B;
  color: #ffffff;
  font-size: 1.2rem;
}
.c-tooltip__content::after {
  border-top-color: #2B2B2B;
}

/**
 * ==============================================================================
 * File Name: _tables.scss
 * Description: 데이터 리스트 표시를 위한 테이블 컴포넌트
 * Prefix: .c- (Component)
 * Usage:
 * - .c-table (기본)
 * - .c-table--head-dark (어두운 헤더)
 * - .c-table--bordered (테두리형)
 * - .c-table-responsive (모바일 가로 스크롤 래퍼)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Table Responsive Wrapper (Mobile Safe)
 * 모바일에서 테이블이 화면을 넘어갈 때 가로 스크롤 생성
 * ------------------------------------------------------------------------------ */
.c-table-responsive {
  display: block;
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.c-table-responsive::-webkit-scrollbar {
  height: 6px;
}
.c-table-responsive::-webkit-scrollbar-thumb {
  background-color: #E0E0E0;
  border-radius: 3px;
}

/* ------------------------------------------------------------------------------
 * 2. Base Table Style
 * ------------------------------------------------------------------------------ */
.c-table {
  width: 100%;
  background-color: #ffffff;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
}
.c-table thead th {
  height: 48px;
  padding: 10px 12px;
  background-color: #F9F9F9;
  border-bottom: 1px solid #F0F0F0;
  color: #6B6B6B;
  font-size: 1.3rem;
  font-weight: 500;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}
.c-table tbody td {
  height: 52px;
  padding: 12px;
  border-bottom: 1px solid #F7F7F7;
  color: #404040;
  font-size: 1.3rem;
  text-align: center;
  vertical-align: middle;
}
.c-table tbody tr.is-checked td {
  background-color: var(--primary-light);
  color: var(--primary);
  font-weight: 500;
}
.c-table--head-dark thead th {
  background-color: #404040;
  color: #ffffff;
  border-bottom-color: #838383;
}
.c-table--bordered {
  border: 1px solid #F0F0F0;
}
.c-table--bordered thead th {
  border-left: 1px solid #F0F0F0;
}
.c-table--bordered thead th:first-child {
  border-left: 0;
}
.c-table--bordered tbody td {
  border-left: 1px solid #F0F0F0;
}
.c-table--bordered tbody td:first-child {
  border-left: 0;
}
.c-table--bordered.c-table--head-dark thead th {
  border-left-color: #838383;
}
.c-table--left th, .c-table--left td {
  text-align: left;
}
.c-table--striped tbody tr:nth-child(even) td {
  background-color: #F9F9F9;
}
.c-table__nodata {
  padding: 60px 0;
  text-align: center;
  color: #ADADAD;
  font-size: 1.3rem;
  background-color: #ffffff;
  border-bottom: 1px solid #F0F0F0;
}
.c-table__nodata i {
  display: block;
  margin-bottom: 8px;
  font-size: 24px;
  color: #E0E0E0;
}

/**
 * ==============================================================================
 * File Name: _uploads.scss
 * Description: 파일(이미지) 업로더, 썸네일 미리보기
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * File Upload (Preview)
 * ------------------------------------------------------------------------------ */
.c-file-upload {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1em;
}
.c-file-upload .c-file-upload__trigger {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 7.2rem;
  height: 7.2rem;
  border-radius: 1.6rem;
  border: 1px dashed #E0E0E0;
  background-color: #ffffff;
  cursor: pointer;
  overflow: hidden;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
  /**
   * 클릭/터치 영역 100% 보장 (label + input 조합 안정화)
   * - mixins.blind(clip/1px 숨김) 대신, 트리거 전체를 투명 input이 덮도록 오버레이
   */
}
.c-file-upload .c-file-upload__trigger input[type=file] {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
  /* mixins.blind가 들어오더라도 무효화 */
  clip: auto;
  clip-path: none;
  overflow: visible;
  white-space: normal;
  margin: 0;
  padding: 0;
  border: 0;
  -webkit-tap-highlight-color: transparent;
}
.c-file-upload .c-file-upload__trigger-inner {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.2rem;
  color: #ADADAD;
  font-weight: 400;
  position: relative;
  z-index: 1; /* img(0) 위 */
  pointer-events: none; /* 클릭은 input(2)가 받도록 */
  -webkit-transition: opacity 0.15s ease;
  transition: opacity 0.15s ease;
}
.c-file-upload .c-file-upload__icon {
  font-size: 2.4rem;
  line-height: 1;
  width: 2rem;
  height: 2rem;
}
.c-file-upload .c-file-upload__icon .c-icon {
  --icon-size: 20px;
  background-color: #ADADAD;
  vertical-align: top;
}
.c-file-upload .c-file-upload__count {
  color: #ADADAD;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.2rem;
  font-weight: 400;
}
.c-file-upload .c-file-upload__preview {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 1rem;
}
.c-file-upload .c-file-upload__item {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  position: relative;
  width: 7.2rem;
  height: 7.2rem;
  border-radius: 1.6rem;
  overflow: hidden;
  background-color: #F7F7F7;
}
.c-file-upload {
  /**
   * 타일(slot) / 리스트(preview) 공용 이미지 스타일
   * - slot: label 안에 img가 동적으로 생성됨
   * - list: item 안에 img가 생성됨
   */
}
.c-file-upload .c-file-upload__img {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.c-file-upload .c-file-upload__delete {
  position: absolute;
  top: 0.4rem;
  right: 0.4rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2rem;
  height: 2rem;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.7490196078);
  cursor: pointer;
  z-index: 3; /* input(2) 보다 위로 */
}
.c-file-upload .c-file-upload__delete .c-icon {
  --icon-size: 12px;
  background-color: #ffffff;
}
.c-file-upload.is-full .c-file-upload__trigger {
  opacity: 0.4;
  pointer-events: none;
}
.c-file-upload:not(.c-file-upload--tile) {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

.c-file-upload-wrap:not(:last-child) {
  margin-bottom: 1.6rem;
}
.c-file-upload-wrap .c-file-upload-title {
  margin-bottom: 0.8rem;
  color: #838383;
  font-size: 1.3rem;
  font-weight: 400;
}

/* ------------------------------------------------------------------------------
 * .c-file-upload row override (tile grid)
 * ------------------------------------------------------------------------------ */
.c-file-upload.is-row .c-file-upload__tiles {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0.8rem 1.6rem;
}

.c-file-upload.is-row .c-file-upload__trigger {
  overflow: hidden;
}

.c-file-upload.is-row .c-file-upload__label {
  display: block;
  margin-top: 0.4rem;
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 400;
  text-align: center;
}

/* ------------------------------------------------------------------------------
 * Tile selected state
 * ------------------------------------------------------------------------------ */
.c-file-upload__tile.is-selected .c-file-upload__trigger-inner {
  opacity: 0;
}

/**
 * ==============================================================================
 * File Name: _menu.scss
 * Description: 알림, 전체메뉴, 검색화면
 * Prefix: .c- (Component)
 * ==============================================================================
 */
/* --------------------------------------------------------------------------
 * 1. Notification Layer (알림)
 * - fixed full layer, slide-in from right
 * - state: .is-open
 * -------------------------------------------------------------------------- */
.c-noti-layer {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  height: 100%;
  background-color: #F7F7F7;
  visibility: hidden;
  -webkit-transform: translateX(100%);
          transform: translateX(100%);
  -webkit-box-shadow: -10px 0 20px rgba(0, 0, 0, 0);
          box-shadow: -10px 0 20px rgba(0, 0, 0, 0);
  will-change: transform;
  -webkit-transition: visibility 0s 0.4s, -webkit-transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), -webkit-box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  transition: visibility 0s 0.4s, -webkit-transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), -webkit-box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s 0.4s;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s 0.4s, -webkit-transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), -webkit-box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.c-noti-layer.is-open {
  visibility: visible;
  -webkit-transform: translateX(0);
          transform: translateX(0);
  -webkit-box-shadow: -10px 0 20px rgba(0, 0, 0, 0.05);
          box-shadow: -10px 0 20px rgba(0, 0, 0, 0.05);
  -webkit-transition: visibility 0s, -webkit-transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), -webkit-box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  transition: visibility 0s, -webkit-transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), -webkit-box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s, -webkit-transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), -webkit-box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.c-noti-layer__header {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 4.8rem;
  background-color: #F7F7F7;
}
.c-noti-layer__header .c-btn-actions {
  position: absolute;
  left: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.c-noti-layer__header .c-btn-actions .btn-icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4rem;
  height: 4rem;
}
.c-noti-layer__header .c-btn-actions .btn-icon .c-icon {
  background-color: #6B6B6B;
}
.c-noti-layer__header .c-btn-actions .btn-icon .c-icon.icon-index {
  --icon-size: 22px;
}
.c-noti-layer__title {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-noti-layer__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow-y: auto;
}
.c-noti-layer .c-noti-container {
  padding: 2.4rem 1.6rem;
}
.c-noti-layer .c-noti-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
}
.c-noti-layer .c-noti-card {
  position: relative;
  display: block;
  padding: 1.6rem;
  border-radius: 1.6rem;
  background-color: #ffffff;
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}
.c-noti-layer .c-noti-card__header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 1.2rem;
}
.c-noti-layer .c-noti-card__category {
  color: #FF66CC;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.c-noti-layer .c-noti-card__meta {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding-right: 0.6rem;
}
.c-noti-layer .c-noti-card__date {
  color: #ADADAD;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.2rem;
  font-weight: 400;
  letter-spacing: -0.01em;
}
.c-noti-layer .c-noti-card__title {
  display: block;
  margin-bottom: 0.4rem;
  color: #2B2B2B;
  font-size: 1.3rem;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.c-noti-layer .c-noti-card__desc {
  margin: 0;
  color: #838383;
  font-size: 1.3rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  word-break: keep-all;
}
.c-noti-layer .c-noti-card.is-unread .c-noti-card__dot {
  position: absolute;
  top: 0;
  right: -0.2rem;
  display: block;
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background-color: #FF66CC;
}

/* --------------------------------------------------------------------------
 * 2. Full Menu (전체 메뉴)
 * - fixed full layer, fade-in
 * - state: .is-open
 * -------------------------------------------------------------------------- */
.c-full-menu {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity 0.1s ease-out, visibility 0s 0.1s;
  transition: opacity 0.1s ease-out, visibility 0s 0.1s;
}
.c-full-menu.is-open {
  visibility: visible;
  opacity: 1;
  -webkit-transition: opacity 0.1s ease-out, visibility 0s;
  transition: opacity 0.1s ease-out, visibility 0s;
}
.c-full-menu__header {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 4.8rem;
}
.c-full-menu__header .btn-close {
  position: absolute;
  top: 50%;
  right: 1.8rem;
  width: 2.4rem;
  height: 2.4rem;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
  cursor: pointer;
}
.c-full-menu__header .btn-close .c-icon {
  background-color: #6B6B6B;
}
.c-full-menu__title {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-full-menu__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  overflow: hidden;
  padding-top: 1.2rem;
}
.c-full-menu__nav {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 11.5rem;
          flex: 0 0 11.5rem;
  overflow-y: auto;
  background-color: #F9F9F9;
}
.c-full-menu__tab {
  position: relative;
  display: block;
  width: 100%;
  padding: 1.6rem 2rem;
  border: none;
  color: #ADADAD;
  font-size: 1.5rem;
  font-weight: 500;
  text-align: left;
  background: transparent;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
  cursor: pointer;
}
.c-full-menu__tab.is-active {
  color: #FF66CC;
  font-weight: 600;
  background-color: #ffffff;
}
.c-full-menu__tab.is-active::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 0.5rem;
  background-color: #FFAEE6;
}
.c-full-menu__content {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow-y: auto;
  padding: 0 2rem 2rem;
  background-color: #ffffff;
}
.c-full-menu__panel {
  display: none;
}
.c-full-menu__panel.is-active {
  display: block;
  -webkit-animation: panelFadeUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
          animation: panelFadeUp 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
.c-full-menu .c-menu-section {
  margin-bottom: 1.2rem;
}
.c-full-menu .c-menu-section__title {
  display: block;
  padding: 1.3rem 0;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 600;
}
.c-full-menu .c-menu-list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.c-full-menu .c-menu-list__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  padding: 1.2rem 0;
  color: #6B6B6B;
  font-size: 1.4rem;
  font-weight: 400;
  text-decoration: none;
}
.c-full-menu .c-menu-list__item::after {
  content: "";
  width: 1.6rem;
  height: 1.6rem;
  background: url("../images/icons/icon_chevron_right.svg") 50%/100% no-repeat;
}

/* --------------------------------------------------------------------------
 * 3. Search Layer (검색 화면)
 * - fixed full layer, fade-in
 * - state: .is-open
 * -------------------------------------------------------------------------- */
.c-search-layer {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  visibility: hidden;
  opacity: 0;
  -webkit-transition: opacity 0.25s ease-out, visibility 0s 0.25s;
  transition: opacity 0.25s ease-out, visibility 0s 0.25s;
}
.c-search-layer.is-open {
  visibility: visible;
  opacity: 1;
  -webkit-transition: opacity 0.25s ease-out, visibility 0s;
  transition: opacity 0.25s ease-out, visibility 0s;
}
.c-search-layer__header {
  position: relative;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: 4.8rem;
  border-bottom: none;
}
.c-search-layer__header .c-search-layer__title {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.c-search-layer__header .c-btn-actions {
  position: absolute;
  left: 1rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.c-search-layer__header .c-btn-actions .btn-icon {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 4rem;
  height: 4rem;
}
.c-search-layer__header .c-btn-actions .btn-icon .c-icon {
  background-color: #6B6B6B;
}
.c-search-layer__header .c-btn-actions .btn-icon .c-icon.icon-index {
  --icon-size: 22px;
}
.c-search-layer__body {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  overflow-y: auto;
  padding: 1.2rem 1.6rem;
}
.c-search-layer__body .c-search-content {
  padding: 0 0.4rem;
}
.c-search-layer__body .c-search-content .c-category-section:nth-child(1) {
  margin-top: 0.8rem;
}
.c-search-layer__body .c-search-content .c-category-group.c-category-nav {
  overflow-x: hidden;
  padding-bottom: 0;
}
.c-search-layer__body .c-search-content .c-category-group.c-category-nav .c-category-nav__list {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin: 0;
  padding: 0;
}
.c-search-layer__body .c-search-content .c-category-group.c-category-nav + .c-category-group.c-category-nav {
  margin-top: 1.2rem;
}
.c-search-layer__body .c-search-content .c-category-nav .c-category-group__label {
  padding-left: 1.6rem;
}
.c-search-layer__body .c-search-content .c-category-nav .c-category-nav__list .c-category-nav__label {
  color: #404040;
  font-weight: 400;
}
.c-search-layer__body .c-search-content .c-card__head.c-form-group__row.has-select {
  min-height: 4rem;
  margin-bottom: 1.2rem;
  padding: 0.8rem 0;
}
.c-search-layer {
  /* 검색 입력 폼 (search layer 전용 마크업) */
}
.c-search-layer .c-search-bar {
  margin-bottom: 2.4rem;
}
.c-search-layer .c-search-bar .c-input-item__end {
  gap: 0;
}
.c-search-layer {
  /* 검색 결과 없음(Empty State) */
}
.c-search-layer .c-search-empty {
  padding: 10rem 0;
  color: #ADADAD;
  font-size: 1.4rem;
  text-align: center;
}
.c-search-layer .c-search-empty .msg {
  margin-bottom: 0.8rem;
  color: #2B2B2B;
  font-size: 1.4rem;
}
.c-search-layer .c-search-empty .msg .keyword {
  font-weight: 500;
}
.c-search-layer .c-search-empty .sub {
  color: #ADADAD;
  font-size: 1.4rem;
}
.c-search-layer .c-search-empty.inline {
  padding: 0 0 3rem;
  text-align: left;
}
.c-search-layer {
  /* 검색 결과 내 정렬 필터(카드 리스트 헤더 오버라이딩) */
}
.c-search-layer .c-card__head.has-select .c-form-group__category {
  color: #838383;
}
.c-search-layer .c-card__head.has-select .c-form-group__category + span:before {
  display: none;
}

/**
 * ==============================================================================
 * File Name: _home.scss
 * Description: 메인 홈
 * Prefix: .p-home
 * ==============================================================================
 */
.p-home {
  /* ----------------------------------------------------------------------------
   * 1. Search Bar
   * -------------------------------------------------------------------------- */
}
.p-home .c-search-bar .c-search-bar__input:-moz-read-only {
  background-color: #ffffff;
  cursor: pointer;
}
.p-home .c-search-bar .c-search-bar__input:read-only {
  background-color: #ffffff;
  cursor: pointer;
}
.p-home {
  /* ----------------------------------------------------------------------------
   * 2. Card Info Slider (카드 슬라이더)
   * -------------------------------------------------------------------------- */
}
.p-home__card-info {
  margin-top: -1.6rem;
}
.p-home__card-info .p-home_slider {
  margin-left: calc(var(--page-gutter) * -1);
  margin-right: calc(var(--page-gutter) * -1);
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
  padding-bottom: 0;
}
.p-home__card-info .p-home_slider .swiper-slide {
  padding: 1rem 0;
  border-radius: 0;
  overflow: visible;
}
.p-home__card-info .p-home_slider .swiper-slide .c-card {
  padding: 1.5rem var(--page-gutter);
  border-radius: 1.8rem;
  background: #ffffff;
}
.p-home__card-info .p-home_slider .swiper-slide .c-card__profile {
  width: 5.6rem;
  height: 5.6rem;
  margin-right: 1.2rem;
  border-radius: 1.5rem;
}
.p-home__card-info .p-home_slider .swiper-slide .c-card__title {
  margin-bottom: 0;
  font-size: 1.2rem;
  font-weight: 500;
}
.p-home__card-info .p-home_slider .swiper-slide .c-card__hospital {
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 400;
}
.p-home__card-info .p-home_slider .swiper-slide .c-card__schedule {
  margin-top: 0.2rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}
.p-home__card-info .p-home_slider .swiper-slide .c-card__schedule span {
  color: #404040;
  font-size: 1.2rem;
  font-weight: 600;
}
.p-home__card-info .p-home_slider .swiper-slide .c-badge {
  height: 2.8rem;
  padding: 0.4rem 1rem;
}
.p-home__card-info .p-home_slider .swiper-slide:not(:only-child) .c-card {
  padding-bottom: 3rem;
}
.p-home__card-info .p-home_slider .swiper-pagination {
  bottom: 1.5rem;
}
.p-home {
  /* ----------------------------------------------------------------------------
   * 3. Main Slider (메인 배너)
   * -------------------------------------------------------------------------- */
}
.p-home .c-main-slider {
  margin-left: calc(var(--page-gutter) * -1);
  margin-right: calc(var(--page-gutter) * -1);
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
}
.p-home .c-main-slider .swiper-slide {
  overflow: visible;
  border-radius: 0;
}
.p-home .c-main-slider .swiper-slide > a {
  display: block;
  overflow: hidden;
  border-radius: 2.8rem;
  -webkit-box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
          box-shadow: 0px 0px 16.5px 0px rgba(0, 0, 0, 0.0392156863), 0px 0px 4.5px 0px rgba(0, 0, 0, 0.031372549);
}
@supports (aspect-ratio: 1/1) {
  .p-home .c-main-slider .swiper-slide > a > img {
    aspect-ratio: 343/175;
  }
}
@supports not (aspect-ratio: 1/1) {
  .p-home .c-main-slider .swiper-slide > a > img {
    padding-top: 51.02%;
  }
}
.p-home {
  /* ----------------------------------------------------------------------------
   * 4. Recommend Slider (하드코딩 등록 영역 슬라이더)
   * -------------------------------------------------------------------------- */
}
.p-home .c-recommend-slider {
  padding: 1.8rem 1.6rem 1.6rem 1.6rem;
  background: #A4EBF2;
  border-radius: 2.8rem;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.p-home .c-recommend-slider .t-h3 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  margin-bottom: 1rem;
  color: #005B5D;
  font-size: 1.6rem;
  font-weight: 600;
}
.p-home .c-recommend-slider .avatar {
  width: 3.2rem;
  height: 3.2rem;
  border: 1px solid #0BC6DA;
  border-radius: 1.3rem;
  overflow: hidden;
}
.p-home .c-recommend-slider .avatar > img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-home .c-recommend-slider .swiper-slide {
  background-color: #ffffff;
  border-radius: 2rem;
  overflow: hidden;
  -webkit-box-shadow: 0px 0px 16.5px 0px rgba(0, 126, 137, 0.0784313725), 0px 0px 4.5px 0px rgba(0, 126, 137, 0.1019607843);
          box-shadow: 0px 0px 16.5px 0px rgba(0, 126, 137, 0.0784313725), 0px 0px 4.5px 0px rgba(0, 126, 137, 0.1019607843);
  aspect-ratio: 140/135;
}
@supports not (aspect-ratio: 1/1) {
  .p-home .c-recommend-slider .swiper-slide {
    padding-top: 43.44%;
  }
}
.p-home .c-recommend-slider .swiper-slide a > img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-home {
  /* ----------------------------------------------------------------------------
   * 5. Event Slider (이벤트)
   * -------------------------------------------------------------------------- */
}
.p-home .c-event-slider {
  margin-left: calc(var(--page-gutter) * -1);
  margin-right: calc(var(--page-gutter) * -1);
  padding-left: var(--page-gutter);
}
.p-home .c-event-slider .swiper-slide .c-card {
  background-color: transparent;
}
.p-home {
  /* ----------------------------------------------------------------------------
   * 6. Doctor Card List (의사 카드 리스트)
   * -------------------------------------------------------------------------- */
}
.p-home .c-card--doctor {
  padding: 1.6rem 3.6rem 1.6rem 1.6rem;
  border-radius: 2.8rem;
}
.p-home .c-card--doctor .c-btn-bookmark {
  right: 1.6rem;
}
.p-home {
  /* ----------------------------------------------------------------------------
  * 6-1. Hospital & Doctor Slider (병원/의사 슬라이더)
  * -------------------------------------------------------------------------- */
}
.p-home .c-hospital-slider,
.p-home .c-doctor-slider {
  margin-left: calc(var(--page-gutter) * -1);
  margin-right: calc(var(--page-gutter) * -1);
  padding-left: var(--page-gutter);
  padding-right: var(--page-gutter);
}
.p-home .c-hospital-slider .swiper-slide,
.p-home .c-doctor-slider .swiper-slide {
  height: auto !important;
  overflow: visible;
  border-radius: 0;
}
.p-home .c-hospital-slider .swiper-slide .c-card,
.p-home .c-doctor-slider .swiper-slide .c-card {
  height: 100%;
}

/* ----------------------------------------------------------------------------
  * 7. 상담일정 바텀시트
  * -------------------------------------------------------------------------- */
.c-bottom-sheet.c-bottom-counsel .p-counsel-info {
  padding: 2.4rem 0;
  border-top: 1px solid #F2F2F2;
}
.c-bottom-sheet.c-bottom-counsel .p-counsel-info .p-counsel-info__item + .p-counsel-info__item {
  padding-top: 1.6rem;
  border-top: 1px solid #F2F2F2;
}

/**
 * ==============================================================================
 * File Name: _landing.scss
 * Description: Adaptive landing page
 * Prefix: .p-ls
 * ==============================================================================
 */
.p-landing-page {
  --ls-brand: #ff66cc;
  --ls-title: #4D4D4D;
  --ls-ink: #6B6B6B;
  --ls-text: #6B6B6B;
  --ls-font-body: "Pretendard Variable", "Pretendard", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ls-font-title: "Pretendard Variable", "Pretendard", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ls-ink);
}

.p-landing-page[data-landing-lang=ja] {
  --ls-font-body: "Pretendard Variable", "Pretendard", "Noto Sans JP", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ls-font-title: "Pretendard Variable", "Pretendard", "Noto Sans JP", "Noto Sans KR", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.is-desktop.p-landing-page {
  min-width: 0;
}

.p-landing-page .c-bottom-sheet__dim {
  background-color: rgba(0, 0, 0, 0.25);
}

a, button {
  font-family: var(--ls-font-body);
}

.p-ls {
  min-height: 100svh;
  overflow-x: clip;
  font-family: var(--ls-font-body);
}

.p-ls :where(a) {
  color: inherit;
  text-decoration: none;
}

.p-ls img {
  display: block;
  max-width: 100%;
}

.p-ls__subtit,
.p-ls__section-title,
.p-ls__download-kicker,
.p-ls__feature-core strong,
.p-ls__feature-card strong,
.p-ls__download-copy strong {
  font-family: var(--ls-font-title);
}

.p-ls__hero-title {
  font-family: var(--ls-font-body);
}

.p-ls__hero-title-desktop {
  display: block;
}

.p-ls__hero-title-mobile {
  display: none;
}

.p-ls__hero-title-break--xs {
  display: none;
}

.p-landing-page[data-landing-lang=ja] .p-ls__hero-title {
  font-family: "M PLUS 1", var(--ls-font-body);
}

[data-landing-section] {
  scroll-margin-top: 8rem;
}

.p-ls__shell {
  width: min(104rem, 100% - 4.8rem);
  margin: 0 auto;
}

.p-ls__shell--wide {
  width: min(144rem, 100% - 8rem);
}

.p-ls__shell--edge {
  width: 100%;
}

.p-ls__shell--copy {
  width: min(120rem, 100% - 4.8rem);
  text-align: center;
}

.p-ls__shell--visual {
  width: min(120rem, 100%);
}

.p-ls__shell--stage {
  width: min(124rem, 100% - 4.8rem);
}

.p-ls__shell--focus {
  width: min(104rem, 100% - 4.8rem);
}

.p-ls__top {
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 0;
  background-color: rgb(249, 238, 245);
}

.p-ls__top.is-stuck {
  background-color: rgba(249, 238, 245, 0.86);
}

.p-ls__top-inner {
  width: min(103.8rem, 100% - 4.8rem);
  min-height: 10.8rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.6rem;
  -webkit-transition: min-height 0.24s ease;
  transition: min-height 0.24s ease;
}

.p-ls__top-actions {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  margin-left: auto;
  gap: 0.6rem;
}

.p-ls__brand {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-ls__brand img {
  width: auto;
  height: 4rem;
  -webkit-transition: height 0.24s ease;
  transition: height 0.24s ease;
}

.p-ls__store-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 0.6rem;
}

.p-ls__lang-switch {
  --ls-lang-switch-padding: 0.4rem;
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: var(--ls-lang-switch-padding);
  border-radius: 1.2rem;
  background: #fff;
  overflow: hidden;
  isolation: isolate;
  -webkit-transition: padding 0.24s ease, border-radius 0.24s ease;
  transition: padding 0.24s ease, border-radius 0.24s ease;
}

.p-ls__lang-switch::before {
  content: "";
  position: absolute;
  top: var(--ls-lang-switch-padding);
  left: var(--ls-lang-switch-padding);
  width: calc(50% - var(--ls-lang-switch-padding));
  height: calc(100% - var(--ls-lang-switch-padding) - var(--ls-lang-switch-padding));
  border-radius: 1rem;
  background: var(--ls-brand);
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  -webkit-transition: border-radius 0.24s ease, -webkit-transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  transition: border-radius 0.24s ease, -webkit-transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), border-radius 0.24s ease;
  transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), border-radius 0.24s ease, -webkit-transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 0;
}

.p-ls__lang-switch[data-active-lang=ko]::before {
  -webkit-transform: translate3d(100%, 0, 0);
          transform: translate3d(100%, 0, 0);
}

.p-ls__lang-button {
  position: relative;
  z-index: 1;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 3.6rem;
  height: 4rem;
  padding: 0 0.8rem;
  border: 0;
  border-radius: 1rem;
  background: transparent;
  color: var(--ls-brand);
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: 0;
  cursor: pointer;
  -webkit-transition: min-width 0.24s ease, height 0.24s ease, padding 0.24s ease, color 0.2s ease;
  transition: min-width 0.24s ease, height 0.24s ease, padding 0.24s ease, color 0.2s ease;
}

.p-ls__lang-button.is-active {
  color: #fff;
}

.p-ls__store {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  min-height: 4.8rem;
  padding: 0 1.6rem;
  border-radius: 1.2rem;
  background: #1F1F1F;
  color: #fff;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0;
  -webkit-transition: min-height 0.24s ease, padding 0.24s ease, font-size 0.24s ease, background-color 0.2s ease;
  transition: min-height 0.24s ease, padding 0.24s ease, font-size 0.24s ease, background-color 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  .p-ls__store:hover,
  .p-ls__store:focus-visible {
    background-color: #2F2F2F;
  }
  .p-ls__store:active {
    background-color: #0B0B0B;
  }
}
.p-ls__store img {
  width: 2.2rem;
  height: 2.2rem;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: width 0.24s ease, height 0.24s ease;
  transition: width 0.24s ease, height 0.24s ease;
}

.p-ls__store-group span {
  color: #fff;
}

.p-ls__store--utility {
  min-width: 4.8rem;
  padding: 0;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-transition: min-width 0.24s ease;
  transition: min-width 0.24s ease;
}

@media (min-width: 768px) {
  .p-ls__top.is-stuck .p-ls__top-inner {
    min-height: 8rem;
  }
  .p-ls__top.is-stuck .p-ls__brand img {
    height: 3.2rem;
  }
  .p-ls__top.is-stuck .p-ls__lang-switch {
    --ls-lang-switch-padding: 0.35rem;
  }
  .p-ls__top.is-stuck .p-ls__lang-button {
    min-width: 3.4rem;
    height: 3.4rem;
    padding: 0 0.7rem;
  }
  .p-ls__top.is-stuck .p-ls__store {
    min-height: 4.2rem;
    padding: 0 1.4rem;
    font-size: 1.4rem;
  }
  .p-ls__top.is-stuck .p-ls__store img {
    width: 2rem;
    height: 2rem;
  }
  .p-ls__top.is-stuck .p-ls__store--utility {
    min-width: 4.2rem;
  }
}
.p-ls__quick-download {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 14rem;
  min-height: 4rem;
  padding: 0 1.2rem;
  color: #fff;
  font-size: 1.2rem;
  font-weight: 700;
  border: 0;
  border-radius: 1.2rem;
  background: var(--ls-brand);
  white-space: nowrap;
  cursor: pointer;
}

.p-ls__main {
  --ls-hero-design-width: 1919;
  --ls-hero-design-width-px: 1919px;
  --ls-hero-design-height: 1606;
  --ls-hero-render-width: 100vw;
  --ls-hero-bg-height: calc(var(--ls-hero-render-width) * var(--ls-hero-design-height) / var(--ls-hero-design-width));
  --ls-hero-overflow-width: max(0px, calc(var(--ls-hero-render-width) - var(--ls-hero-design-width-px)));
  --ls-hero-header-offset: 10.8rem;
  --ls-hero-top-fill: 0rem;
  --ls-hero-copy-offset: min(15.3rem, 15vh);
  --ls-hero-copy-offset: min(15.3rem, 15svh);
  --ls-hero-height: calc(var(--ls-hero-bg-height) - var(--ls-hero-header-offset) - (var(--ls-hero-overflow-width) * 0.5) + var(--ls-hero-top-fill));
  position: relative;
}

.p-ls__main::before {
  content: "";
  position: absolute;
  top: var(--ls-hero-height);
  right: 0;
  bottom: 0;
  left: 0;
  background: -webkit-gradient(linear, left top, left bottom, from(#FFF5FD), color-stop(12.5%, #FFFFFF), color-stop(27.59%, #FFF1FB), color-stop(50.28%, #FFFFFF), color-stop(55.82%, #ADCFFF), color-stop(61.84%, #FFFFFF), color-stop(68.23%, #A4EBF2), color-stop(72.59%, #F9FEFF), color-stop(82.43%, #FCD6F3), color-stop(86.06%, #FFF1FB), to(#A4EBF2));
  background: linear-gradient(180deg, #FFF5FD 0%, #FFFFFF 12.5%, #FFF1FB 27.59%, #FFFFFF 50.28%, #ADCFFF 55.82%, #FFFFFF 61.84%, #A4EBF2 68.23%, #F9FEFF 72.59%, #FCD6F3 82.43%, #FFF1FB 86.06%, #A4EBF2 100%);
  pointer-events: none;
  z-index: 0;
}

.p-ls__section {
  position: relative;
  z-index: 1;
  padding: 14rem 2rem;
}

.p-ls__section--hero {
  min-height: 0;
  padding: 0;
  background-color: #F9EEF5;
}

.p-ls__section--about {
  padding-bottom: 10rem;
}

.p-ls__section--features {
  background: -webkit-gradient(linear, left top, left bottom, color-stop(17.31%, rgba(255, 255, 255, 0)), to(#ff66cc));
  background: linear-gradient(180deg, rgba(255, 255, 255, 0) 17.31%, #ff66cc 100%);
}

.p-ls__section--concern,
.p-ls__section--flow,
.p-ls__section--guide,
.p-ls__section--live {
  padding-bottom: 7rem;
}

.p-ls__section--download {
  padding-top: 0;
  padding-bottom: 24rem;
}

.p-ls__subtit {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  color: var(--ls-brand);
  font-size: clamp(1.6rem, 3.1vw, 3.6rem);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.p-ls__head {
  margin-bottom: 4.4rem;
  text-align: center;
}

.p-ls__head--flow {
  margin-bottom: 0;
}

.p-ls__flow-stage {
  display: grid;
  place-items: center;
  gap: 12rem;
}

.p-ls__flow-layout {
  width: 100%;
  max-width: 119rem;
  display: grid;
  grid-template-columns: minmax(0, 33.1rem) minmax(0, 25rem) minmax(0, 25rem) minmax(0, 28.7rem);
  -webkit-column-gap: 2.4rem;
     -moz-column-gap: 2.4rem;
          column-gap: 2.4rem;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: start;
}

.p-ls__flow-col {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  opacity: 0;
  -webkit-transform: translate3d(0, 3.2rem, 0);
          transform: translate3d(0, 3.2rem, 0);
}

.p-ls__section--flow.is-flow-in .p-ls__flow-col {
  -webkit-animation: ls-flow-fade-in 0.72s cubic-bezier(0.22, 1, 0.36, 1) forwards;
          animation: ls-flow-fade-in 0.72s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.p-ls__section--flow.is-flow-in .p-ls__flow-col:nth-child(2) {
  -webkit-animation-delay: 0.12s;
          animation-delay: 0.12s;
}

.p-ls__section--flow.is-flow-in .p-ls__flow-col:nth-child(3) {
  -webkit-animation-delay: 0.24s;
          animation-delay: 0.24s;
}

.p-ls__section--flow.is-flow-in .p-ls__flow-col:nth-child(4) {
  -webkit-animation-delay: 0.36s;
          animation-delay: 0.36s;
}

.p-ls__flow-col--home {
  gap: 2rem;
}

.p-ls__flow-col--doctor {
  gap: 2rem;
  padding-top: 11rem;
}

.p-ls__flow-col--prepare {
  gap: 2rem;
}

.p-ls__flow-col--side {
  padding-top: 9.6rem;
}

.p-ls__flow-copy-block {
  width: 100%;
  color: #4c4954;
  text-align: center;
}

.p-ls__flow-copy-block--home {
  max-width: 32rem;
  margin-left: 4rem;
}

.p-ls__flow-copy-block--doctor {
  max-width: 28rem;
}

.p-ls__flow-copy-block--prepare {
  max-width: 28rem;
}

.p-ls__flow-copy-title {
  display: block;
  color: var(--ls-brand);
  font-family: var(--ls-font-title);
  font-size: clamp(1.6rem, 2.07vw, 2.4rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.03em;
}

.p-ls__flow-copy-title.fc_secondary {
  color: #00AABF;
}

.p-ls__flow-copy-desc {
  margin-top: 1.2rem;
  color: #6B6B6B;
  font-size: clamp(1.4rem, 1.72vw, 2rem);
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: -0.03em;
  word-break: keep-all;
}

.p-ls__flow-visual {
  margin: 0;
}

.p-ls__flow-visual img {
  display: block;
  width: 100%;
  height: auto;
}

.p-ls__flow-visual--home {
  width: 100%;
  max-width: 33.1rem;
}

.p-ls__flow-visual--doctor {
  width: 100%;
  max-width: 25rem;
}

.p-ls__flow-visual--form {
  width: 100%;
  max-width: 25rem;
  margin-left: 0;
}

.p-ls__flow-visual--side {
  width: 100%;
  max-width: 28.7rem;
  margin-left: 0;
}

.p-ls__section-title {
  margin: 3.2rem 0 0;
  color: var(--ls-title);
  font-size: clamp(2.8rem, 6.55vw, 7.6rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.p-ls__hero-title {
  margin-top: 3.2rem;
  color: var(--ls-brand);
  font-size: clamp(3.4rem, 6.55vw, 7.6rem);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.03em;
  text-align: center;
  opacity: 0;
  -webkit-transform: translate3d(0, 2.4rem, 0);
          transform: translate3d(0, 2.4rem, 0);
  -webkit-animation: ls-fade-up 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
          animation: ls-fade-up 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.12s forwards;
}

.p-ls__hero-copy .p-ls__subtit {
  font-size: clamp(1.8rem, 3.28vw, 3.8rem);
}

.p-landing-page[data-landing-lang=ko] .p-ls__hero-copy .p-ls__subtit {
  letter-spacing: -0.03em;
}

.p-landing-page[data-landing-lang=ko] .p-ls__hero-title {
  letter-spacing: -0.02em;
}

.p-ls__section-desc {
  margin: 6rem auto 0;
  color: var(--ls-text);
  font-size: clamp(1.4rem, 2.76vw, 3.2rem);
  line-height: 1.5;
  letter-spacing: -0.03em;
  text-align: center;
}

.p-ls__hero-stage {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: var(--ls-hero-height);
  background-color: #F9EEF5;
  background-image: url("../../assets/images/landing/main_visual.png");
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: var(--ls-hero-render-width) auto;
  overflow: hidden;
}

.p-ls__hero-figure {
  display: none;
}

.p-ls__hero-image {
  display: none;
}

.p-ls__hero-copy {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: 96.1rem;
  padding-top: var(--ls-hero-copy-offset);
  text-align: center;
}

.p-ls__about-stage {
  text-align: center;
}

.p-ls__about-visual {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 0;
}

.p-ls__about-image {
  width: 24.8rem;
  height: auto;
}

.p-ls__section--about .p-ls__section-title--line {
  position: relative;
  display: inline-block;
  margin-top: 10rem;
  padding: 0 2rem 1.8rem;
  color: #404040;
  font-size: clamp(1.8rem, 3.62vw, 4.2rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.01em;
}

.p-ls__section--about .p-ls__section-title--line::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  width: min(24rem, 100%);
  height: 8px;
  border-radius: 999px;
  background: #FFAEE6;
  -webkit-transform: translateX(-50%) scaleX(0);
          transform: translateX(-50%) scaleX(0);
  -webkit-transform-origin: left center;
          transform-origin: left center;
  -webkit-transition: -webkit-transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
  transition: -webkit-transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
  transition: transform 0.72s cubic-bezier(0.22, 1, 0.36, 1), -webkit-transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
}

.p-ls__section--about.is-line-in .p-ls__section-title--line::after {
  -webkit-transform: translateX(-50%) scaleX(1);
          transform: translateX(-50%) scaleX(1);
}

.p-landing-page[data-landing-lang=ko] .p-ls__section--about.is-line-in .p-ls__section-title--line::after {
  width: min(32rem, 100%);
}

.p-ls__about-desc {
  margin-top: 5.6rem;
  color: #6B6B6B;
  font-size: clamp(1.6rem, 3.45vw, 4rem);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.03em;
}

.p-landing-page[data-landing-lang=ko] .p-ls__section--about .p-ls__section-title--line {
  letter-spacing: -0.03em;
}

.p-landing-page[data-landing-lang=ko] .p-ls__about-desc {
  letter-spacing: -0.04em;
}

.p-ls__features-stage,
.p-ls__concern-stage {
  display: grid;
  place-items: center;
}

.p-ls__head--features {
  margin-bottom: 8rem;
}

.p-ls__head--concern {
  margin-bottom: 0;
  text-align: center;
}

.p-ls__features-layout {
  position: relative;
  width: 100%;
  max-width: 116rem;
  padding-top: 0;
}

.p-ls__feature-core {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  width: 100%;
  max-width: clamp(34.3rem, 87vw, 101rem);
  aspect-ratio: 1001/1317;
  margin: 0 auto;
  padding-top: clamp(20rem, 42vw, 50rem);
  background: url("../../assets/images/landing/obj02.png") center top/100% auto no-repeat;
  text-align: center;
}

.p-ls__feature-core strong,
.p-ls__feature-core p {
  position: relative;
  z-index: 1;
  width: auto;
  height: auto;
  padding: 0;
  margin: 0;
  overflow: visible;
  clip: auto;
  clip-path: none;
  white-space: normal;
  border: 0;
}

.p-ls__feature-core p {
  max-width: clamp(33rem, 67vw, 78.2rem);
  color: #fff;
  font-size: clamp(1.8rem, 3.6vw, 4.2rem);
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.04em;
}

.p-ls__feature-grid {
  position: relative;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.55vw, 3rem);
  width: 100%;
  max-width: clamp(34rem, 99vw, 115rem);
  margin: clamp(-51rem, -44vw, -4rem) auto 0;
}

.p-ls__feature-card {
  min-height: clamp(24.3rem, 44.8vw, 52rem);
  padding: clamp(3rem, 6.29vw, 7.3rem) clamp(1.2rem, 2.59vw, 3rem) clamp(4rem, 7.76vw, 9rem);
  border-radius: 18rem;
  background: #fff;
  text-align: center;
}

.p-ls__feature-icon {
  display: block;
  width: clamp(5rem, 11.2vw, 13rem);
  height: clamp(5rem, 11.2vw, 13rem);
  margin: 0 auto;
  -webkit-transform-origin: 50% 82%;
          transform-origin: 50% 82%;
  will-change: transform;
}

.p-ls__feature-icon img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

@media (hover: hover) and (pointer: fine) {
  .p-ls__feature-card:hover .p-ls__feature-icon {
    -webkit-animation: ls-icon-wiggle 0.56s cubic-bezier(0.34, 1.56, 0.64, 1) both;
            animation: ls-icon-wiggle 0.56s cubic-bezier(0.34, 1.56, 0.64, 1) both;
  }
}
.p-ls__feature-card strong {
  display: block;
  margin-top: 2.4rem;
  color: #373737;
  font-size: clamp(1.8rem, 3.3vw, 3.8rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.p-ls__feature-card p {
  margin-top: 3.2rem;
  color: #373737;
  font-size: clamp(1.3rem, 2.07vw, 2.4rem);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.p-ls__concern-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 4rem;
  width: 100%;
  max-width: 67rem;
  min-width: 0;
  margin: 5rem auto 0;
}

.p-ls__concern-top {
  margin: 12rem 0;
  width: 71.8rem;
}

.p-ls__concern-top img {
  width: 100%;
  height: auto;
}

.p-ls__concern-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 0.6rem;
  width: 100%;
  min-width: 0;
  opacity: 0;
  -webkit-transform: translate3d(0, 3.2rem, 0);
          transform: translate3d(0, 3.2rem, 0);
}

.p-ls__section--concern.is-concern-in .p-ls__concern-item {
  -webkit-animation: ls-concern-stack 0.42s ease-out forwards;
          animation: ls-concern-stack 0.42s ease-out forwards;
}

.p-ls__section--concern.is-concern-in .p-ls__concern-item:nth-of-type(2) {
  -webkit-animation-delay: 0.1s;
          animation-delay: 0.1s;
}

.p-ls__section--concern.is-concern-in .p-ls__concern-item:nth-of-type(3) {
  -webkit-animation-delay: 0.2s;
          animation-delay: 0.2s;
}

.p-ls__section--concern.is-concern-in .p-ls__concern-item:nth-of-type(4) {
  -webkit-animation-delay: 0.3s;
          animation-delay: 0.3s;
}

.p-ls__section--concern.is-concern-in .p-ls__concern-item:nth-of-type(5) {
  -webkit-animation-delay: 0.4s;
          animation-delay: 0.4s;
}

.p-ls__concern-item:nth-of-type(even) {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.p-ls__concern-char {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  width: 15.6rem;
  margin: 0;
}

.p-ls__concern-char img {
  width: 100%;
  height: auto;
}

.p-ls__concern-bubble {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 50.8rem;
          flex: 0 0 50.8rem;
  width: 50.8rem;
  max-width: calc(100% - 15.6rem);
  min-width: 0;
  padding: 0 4rem 0 8.7rem;
  min-height: 15.6rem;
  text-align: left;
}

.p-ls__concern-bubble::before {
  content: "";
  position: absolute;
  inset: 0;
  min-height: 15.6rem;
  background-image: url("../../assets/images/landing/bg_bubble.svg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100%;
  pointer-events: none;
  z-index: -1;
}

.p-ls__concern-item:nth-of-type(even) .p-ls__concern-bubble {
  padding: 3.8rem 8.7rem 3.6rem 4rem;
  text-align: right;
}

.p-ls__concern-item:nth-of-type(even) .p-ls__concern-bubble::before {
  -webkit-transform: scaleX(-1);
          transform: scaleX(-1);
}

.p-ls__concern-bubble strong {
  display: block;
  color: var(--ls-brand);
  font-size: clamp(1.6rem, 2.59vw, 3rem);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.03em;
}

.p-ls__concern-bubble p {
  margin-top: 1rem;
  color: #6B6B6B;
  font-size: clamp(1.4rem, 1.9vw, 2.2rem);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.03em;
}

.p-landing-page[data-landing-lang=ko] .p-ls__concern-bubble strong,
.p-landing-page[data-landing-lang=ko] .p-ls__concern-bubble p {
  letter-spacing: -0.03em;
}

.p-ls__download-copy strong {
  display: block;
  margin-bottom: 3rem;
  color: var(--ls-title);
  font-weight: 600;
  line-height: 1.4;
}

.p-ls__guide-stage {
  overflow: hidden;
}

.p-ls__head--live {
  margin-bottom: 6rem;
}

.p-ls__live-stage {
  display: grid;
  place-items: center;
}

.p-ls__live-visual {
  --ls-live-visual-offset-x: -5.2%;
  position: relative;
  width: 100%;
  max-width: 74rem;
  aspect-ratio: 740/689.51;
  margin: 0;
  -webkit-transform: translateX(var(--ls-live-visual-offset-x));
          transform: translateX(var(--ls-live-visual-offset-x));
}

.p-ls__live-image {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center bottom;
     object-position: center bottom;
}

.p-ls__live-wave {
  position: absolute;
  top: 5%;
  left: 55%;
  z-index: 2;
  display: block;
  width: 26.7rem;
  height: 7.1rem;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  pointer-events: none;
}

.p-ls__head--report {
  margin-bottom: 10rem;
}

.p-ls__report-stage {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  gap: 1rem;
  width: 100%;
  max-width: 68.8rem;
  margin: 0 auto;
}

.p-ls__report-visual,
.p-ls__report-object {
  margin: 0;
}

.p-ls__report-visual {
  position: relative;
  display: inline-block;
  vertical-align: top;
  --ls-report-side-gap: 1.2rem;
  --ls-report-frame-width: 33.2rem;
  --ls-report-side-width: calc(var(--ls-report-frame-width) * 74 / 332);
  --ls-report-frame-border-width: 0.33rem;
  --ls-report-frame-radius-x: 13.253012%;
  --ls-report-frame-radius-y: 6.25%;
  border-radius: var(--ls-report-frame-radius-x)/var(--ls-report-frame-radius-y);
}

.p-ls__report-side {
  position: absolute;
  top: 50%;
  width: var(--ls-report-side-width);
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
  pointer-events: none;
  z-index: 0;
  -webkit-transform: translateY(-50%);
          transform: translateY(-50%);
}

.p-ls__report-side--left {
  left: calc((var(--ls-report-side-width) + var(--ls-report-side-gap)) * -1);
}

.p-ls__report-side--right {
  right: calc((var(--ls-report-side-width) + var(--ls-report-side-gap)) * -1);
}

.p-ls__report-frame {
  position: relative;
  width: var(--ls-report-frame-width);
  max-width: 100%;
  aspect-ratio: 332/704;
  isolation: isolate;
  border-radius: var(--ls-report-frame-radius-x)/var(--ls-report-frame-radius-y);
  background-color: #fff;
  z-index: 1;
}

.p-ls__report-media {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: inherit;
  -webkit-box-shadow: 0 0 48px 0 rgba(255, 102, 204, 0.22), 0 0 14px 0 rgba(255, 102, 204, 0.1);
          box-shadow: 0 0 48px 0 rgba(255, 102, 204, 0.22), 0 0 14px 0 rgba(255, 102, 204, 0.1);
  z-index: 1;
}

.p-ls__report-object {
  position: relative;
  left: 5rem;
  width: 100%;
  max-width: 37.9rem;
  margin-bottom: 0.8rem;
  opacity: 0;
  -webkit-transform: translate3d(0, 2rem, 0);
          transform: translate3d(0, 2rem, 0);
}

.p-ls__section--report.is-report-in .p-ls__report-object {
  -webkit-animation: ls-report-object-fade-up 0.68s cubic-bezier(0.22, 1, 0.36, 1) forwards;
          animation: ls-report-object-fade-up 0.68s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.p-ls__report-media img,
.p-ls__report-object img {
  display: block;
  width: 100%;
  height: auto;
}

.p-ls__report-media > img {
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: inherit;
}

.p-ls__report-outline {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  border-radius: inherit;
  clip-path: inset(0 round var(--ls-report-frame-radius-x)/var(--ls-report-frame-radius-y));
  overflow: hidden;
  z-index: 3;
}

.p-ls__report-outline-base {
  fill: none;
  stroke: rgba(255, 255, 255, 0.14);
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
}

.p-ls__report-outline-glow {
  fill: none;
  stroke: rgba(255, 102, 204, 0.34);
  stroke-width: 3.6;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 124 876;
  stroke-dashoffset: 0;
  vector-effect: non-scaling-stroke;
  will-change: stroke-dashoffset;
  -webkit-animation: ls-report-outline-trace 5s linear infinite;
          animation: ls-report-outline-trace 5s linear infinite;
}

.p-ls__report-outline-line {
  fill: none;
  stroke: #ff66cc;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 112 888;
  stroke-dashoffset: 0;
  vector-effect: non-scaling-stroke;
  will-change: stroke-dashoffset;
  -webkit-animation: ls-report-outline-trace 5s linear infinite;
          animation: ls-report-outline-trace 5s linear infinite;
}

.p-ls__download-card {
  width: 100%;
  max-width: 104rem;
  margin: 0 auto;
  padding: 8rem 7rem;
  border-radius: 5rem;
  background: #FFF1FB;
}

.p-ls__download-copy {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-areas: "visual kicker" "visual brand" "visual title" "visual stores";
  -webkit-column-gap: 3.2rem;
     -moz-column-gap: 3.2rem;
          column-gap: 3.2rem;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

.p-ls__download-kicker {
  grid-area: kicker;
  margin-bottom: 2rem;
  color: var(--ls-brand);
  font-size: clamp(1.8rem, 2.41vw, 2.8rem);
  font-weight: 600;
  line-height: 1.2;
}

.p-ls__download-brand {
  grid-area: brand;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 4rem;
}

.p-ls__download-logo {
  width: auto;
  height: 6rem;
}

.p-ls__download-visual {
  grid-area: visual;
  margin: 0;
  width: 100%;
  max-width: 33.5rem;
}

.p-ls__download-visual img {
  width: 100%;
  height: auto;
}

.p-ls__download-copy strong {
  grid-area: title;
  color: var(--ls-title);
  font-size: clamp(2rem, 2.76vw, 3.2rem);
  line-height: 1;
}

.p-ls__store-group--cta {
  grid-area: stores;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  gap: 0.8rem;
}

.p-ls__store-group--cta .p-ls__store {
  min-height: 7rem;
  padding: 0 2.2rem;
  font-size: clamp(1.5rem, 1.9vw, 2.2rem);
}

.p-ls__store-group--cta .p-ls__store img {
  width: 3.5rem;
  height: 3.5rem;
}

.p-ls__store--apple img,
.p-ls__store-group--cta .p-ls__store--apple img {
  width: 18.46px;
  height: 23.08px;
}

.p-ls__store--google img,
.p-ls__store-group--cta .p-ls__store--google img {
  width: 18.46px;
  height: 19.38px;
}

.p-ls__store--utility img,
.p-ls__store-group--cta .p-ls__store--utility img {
  width: 22.15px;
  height: 22.15px;
}

.p-ls__download-card .p-ls__store--apple img {
  width: 28.49px;
  height: 35.61px;
}

.p-ls__download-card .p-ls__store--google img {
  width: 28.49px;
  height: 29.91px;
}

.p-ls__download-card .p-ls__store--utility img {
  width: 34.18px;
  min-width: 34.18px;
  height: 34.18px;
  min-height: 34.18px;
}

.p-ls__download-primary {
  display: none;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 6.2rem;
  padding: 0 2rem;
  border: 0;
  border-radius: 1.6rem;
  background: var(--ls-brand);
  color: #fff;
  font-size: 2.1rem;
  font-weight: 700;
  cursor: pointer;
}

.p-ls__download-sheet .c-bottom-sheet__content {
  left: 50%;
  width: min(100%, 37.5rem);
  padding-bottom: max(1.2rem, env(safe-area-inset-bottom, 0px));
  border-radius: 2.8rem 2.8rem 0 0;
  -webkit-transform: translate3d(-50%, 100%, 0);
          transform: translate3d(-50%, 100%, 0);
}

.p-ls__download-sheet.is-open .c-bottom-sheet__content {
  -webkit-transform: translate3d(-50%, 0, 0);
          transform: translate3d(-50%, 0, 0);
}

.p-ls__download-sheet .c-bottom-sheet__body {
  padding: 0;
}

.p-ls__download-sheet-card {
  padding: 3rem 2rem;
  text-align: center;
}

.p-ls__download-sheet-brand {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 6rem;
  height: 6rem;
  margin: 0 auto;
}

.p-ls__download-sheet-brand img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-ls__download-sheet-title {
  display: block;
  margin-top: 1.6rem;
  color: var(--ls-title);
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1.25;
}

.p-ls__download-sheet-desc {
  margin-top: 0.8rem;
  color: var(--ls-text);
  font-size: 1.5rem;
  font-weight: 500;
  line-height: 1.5;
}

.p-ls__download-sheet-cta {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: 5.6rem;
  margin-top: 2rem;
  padding: 0 2rem;
  border-radius: 2.2rem;
  background: var(--ls-brand);
  color: #fff;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.4rem;
  letter-spacing: -0.03em;
}

.p-ls__download-sheet-close {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 1.4rem;
  border: 0;
  background: transparent;
  color: #8b8796;
  font-size: 1.4rem;
  font-weight: 500;
  line-height: 1.4;
  cursor: pointer;
  font-family: var(--ls-font-body);
}

.p-ls__qr-modal .c-modal__content {
  width: min(100%, 46.3rem);
  max-width: 46.3rem;
  border-radius: 2.5rem;
  background: transparent;
  overflow: visible;
  -webkit-box-shadow: none;
          box-shadow: none;
}

body.is-desktop .p-ls__qr-modal.c-modal {
  max-width: none;
  left: 0 !important;
  right: 0;
  -webkit-transform: none !important;
          transform: none !important;
}

.p-ls__qr-modal .c-modal__dim {
  background-color: rgba(0, 0, 0, 0.25);
}

.p-ls__qr-modal-card {
  position: relative;
  padding: 6.8rem 3.2rem 7rem;
  border-radius: 2.5rem;
  background: #fff;
  text-align: center;
}

.p-ls__qr-modal-close {
  position: absolute;
  top: 2rem;
  right: 2rem;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 3.2rem;
  height: 3.2rem;
  border: 0;
  background: transparent;
}

.p-ls__qr-modal-close::before,
.p-ls__qr-modal-close::after {
  display: none;
}

.p-ls__qr-modal-close img {
  display: block;
  width: 2.8rem;
  height: 2.8rem;
  -o-object-fit: contain;
     object-fit: contain;
}

.p-ls__qr-modal-code {
  width: 16.8rem;
  margin: 0 auto;
}

.p-ls__qr-modal-code img {
  display: block;
  width: 100%;
  height: auto;
}

.p-ls__qr-modal-title {
  display: block;
  margin-top: 3.2rem;
  color: #2B2B2B;
  font-size: 2.5rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: -0.01em;
}

.p-ls__qr-modal-desc {
  margin-top: 2rem;
  color: #2B2B2B;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.03em;
}

.p-ls__footer {
  padding: 0;
  background: #1C1C1C;
}

.p-ls__footer-inner {
  min-height: 45.6rem;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 4rem;
  padding: 3.8rem 0 5.8rem;
}

.p-ls__footer-copy {
  display: grid;
  max-width: 58rem;
}

.p-ls__footer-group {
  display: grid;
}

.p-ls__footer-group + .p-ls__footer-group {
  margin-top: 1.6rem;
}

.p-ls__footer-copy p {
  color: #838383;
  font-size: 1.4rem;
  line-height: 1.5;
}

.p-ls__footer-title {
  color: #838383;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
}

.p-ls__footer-meta span,
.p-ls__footer-links span {
  margin: 0 1.2rem;
  color: #838383;
}

.p-ls__footer-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-top: 1.2rem;
}

.p-ls__footer-links a {
  font-weight: 600;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}

.p-ls__footer-note {
  margin-top: 1rem;
}

.p-ls__footer-clinic-link {
  color: #838383;
  line-height: 1;
  text-decoration: underline;
  text-underline-offset: 0.2rem;
  -webkit-transition: color 0.2s ease;
  transition: color 0.2s ease;
}

.p-ls__footer-clinic-head {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 4px;
  line-height: 1;
}

.p-ls__footer-clinic-icon {
  display: block;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 24px;
          flex: 0 0 24px;
  width: 24px;
  height: 24px;
  background: url("../../assets/images/landing/icon_intake.svg") no-repeat 50% 50%/24px 24px;
}

.p-ls__footer-clinic-label {
  color: #838383;
}

@media (hover: hover) and (pointer: fine) {
  .p-ls__footer-links a:hover,
  .p-ls__footer-links a:focus-visible,
  .p-ls__footer-clinic-link:hover,
  .p-ls__footer-clinic-link:focus-visible {
    color: #f2f2f2;
  }
}
.p-ls__footer-clinic {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-column-gap: 8px;
     -moz-column-gap: 8px;
          column-gap: 8px;
  row-gap: 4px;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-top: 1.4rem;
  font-weight: 600;
}

.p-ls__social {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.1rem;
  margin-bottom: 0.8rem;
}

.p-ls__social a {
  display: grid;
  place-items: center;
  width: 5.6rem;
  height: 5.6rem;
  border-radius: 50%;
}

.p-ls__social img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -webkit-transition: -webkit-filter 0.2s ease;
  transition: -webkit-filter 0.2s ease;
  transition: filter 0.2s ease;
  transition: filter 0.2s ease, -webkit-filter 0.2s ease;
}

@media (hover: hover) and (pointer: fine) {
  .p-ls__social a:hover img,
  .p-ls__social a:focus-visible img {
    -webkit-filter: brightness(0.86) saturate(1.18);
            filter: brightness(0.86) saturate(1.18);
  }
}
@media (max-width: 767px) {
  .p-ls__shell,
  .p-ls__shell--wide,
  .p-ls__shell--copy,
  .p-ls__shell--stage,
  .p-ls__shell--focus {
    width: min(100%, 100% - 4rem);
  }
  .p-ls__shell--visual {
    width: min(100%, 100% - 0rem);
  }
  .p-ls {
    --ls-mobile-top-height: 6.5rem;
  }
  .p-ls__main {
    --ls-hero-render-width: 100vw;
    --ls-hero-header-offset: 0rem;
    --ls-hero-top-fill: 7.2rem;
    --ls-hero-copy-offset: 7.2rem;
    padding-top: var(--ls-mobile-top-height);
  }
  .p-ls__top {
    position: fixed;
    inset: 0 0 auto;
    width: 100%;
    padding: 1.25rem 2rem;
    background-color: rgb(249, 238, 245);
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
    will-change: transform;
    -webkit-transition: background-color 0.2s ease;
    transition: background-color 0.2s ease;
  }
  .p-ls__top.is-stuck {
    background-color: rgba(249, 238, 245, 0.76);
  }
  .p-ls__top-inner {
    width: 100%;
    min-height: auto;
    gap: 1rem;
  }
  .p-ls__top-actions {
    gap: 0.8rem;
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    min-width: 0;
  }
  .p-ls__brand img {
    height: 1.8rem;
  }
  .p-ls__lang-switch {
    min-width: 6.6rem;
    --ls-lang-switch-padding: 0.4rem;
    border-radius: 1.2rem;
  }
  .p-ls__store-group {
    display: none;
  }
  .p-ls__lang-button {
    min-width: 2.8rem;
    height: 3.2rem;
    padding: 0 0.6rem;
    border-radius: 1rem;
  }
  .p-ls__section {
    padding: 6rem 0 8rem;
  }
  .p-ls__section--hero {
    padding: 0;
  }
  .p-ls__section--about {
    padding-top: 5rem;
    padding-bottom: 3rem;
  }
  .p-ls__section--features {
    background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 143, 228, 0)), to(#FF8FE4));
    background: linear-gradient(180deg, rgba(255, 143, 228, 0) 0%, #FF8FE4 100%);
  }
  .p-ls__section--flow {
    padding-bottom: 4rem;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(12.98%, #FFFFFF), color-stop(75.48%, #ADCFFF), to(#FFFFFF));
    background: linear-gradient(180deg, #FFFFFF 12.98%, #ADCFFF 75.48%, #FFFFFF 100%);
  }
  .p-ls__section--guide {
    background: -webkit-gradient(linear, left top, left bottom, color-stop(12.02%, #FFFFFF), color-stop(70.19%, #A4EBF2), to(#FFFFFF));
    background: linear-gradient(180deg, #FFFFFF 12.02%, #A4EBF2 70.19%, #FFFFFF 100%);
  }
  .p-ls__section--live {
    padding-bottom: 4rem;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(18.75%, #FFFFFF), color-stop(69.23%, #FCD6F3), to(#FFFFFF));
    background: linear-gradient(180deg, #FFFFFF 18.75%, #FCD6F3 69.23%, #FFFFFF 100%);
  }
  .p-ls__section--report {
    padding-bottom: 6rem;
    background: -webkit-gradient(linear, left top, left bottom, color-stop(21.63%, #FFFFFF), color-stop(68.75%, #A4EBF2), to(#FFFFFF));
    background: linear-gradient(180deg, #FFFFFF 21.63%, #A4EBF2 68.75%, #FFFFFF 100%);
  }
  .p-ls__section--download {
    padding: 0;
    background-color: #FFF1FB;
  }
  .p-ls__quick-download {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
  }
  .p-ls__qr-modal {
    display: none !important;
  }
  .p-ls__hero-stage {
    width: 100%;
    min-height: 100vh;
    min-height: 100svh;
    background-size: cover;
  }
  .p-ls__section--download .p-ls__shell--focus {
    width: 100%;
  }
  .p-ls__hero-copy {
    width: calc(100% - 4rem);
    padding-top: var(--ls-hero-copy-offset);
  }
  .p-ls__hero-copy .p-ls__subtit {
    font-size: 1.8rem;
    font-weight: 700;
  }
  .p-ls__hero-title .p-ls__hero-title-mobile {
    font-size: 2.8rem;
    line-height: 1.5;
  }
  .p-landing-page[data-landing-lang=ja] .p-ls__hero-copy .p-ls__subtit {
    display: none;
  }
  .p-ls__head .p-ls__subtit {
    font-size: 2rem;
  }
  .p-landing-page[data-landing-lang=ko] .p-ls__head .p-ls__subtit {
    font-size: 1.6rem;
  }
  .p-landing-page[data-landing-lang=ja] .p-ls__hero-title-desktop {
    display: none;
  }
  .p-landing-page[data-landing-lang=ja] .p-ls__hero-title-mobile {
    display: block;
  }
  .p-ls__about-image {
    width: 12rem;
  }
  .p-ls__section--about .p-ls__section-title--line {
    margin-top: 5rem;
    font-size: 2.4rem;
    padding-bottom: 0.8rem;
  }
  .p-landing-page[data-landing-lang=ko] .p-ls__section--about .p-ls__section-title--line {
    font-size: 1.8rem;
  }
  .p-ls__section--about .p-ls__section-title--line::after {
    width: min(13.2rem, 100%);
    height: 3px;
  }
  .p-landing-page[data-landing-lang=ko] .p-ls__section--about .p-ls__section-title--line::after {
    width: min(14rem, 100%);
  }
  .p-landing-page[data-landing-lang=ko] .p-ls__section--about.is-line-in .p-ls__section-title--line::after {
    width: min(14rem, 100%);
  }
  .p-ls__about-desc {
    margin-top: 2rem;
    font-size: 1.6rem;
  }
  .p-ls__section-title {
    font-size: 2.6rem;
  }
  .p-landing-page[data-landing-lang=ko] .p-ls__section-title {
    font-size: 2.8rem;
  }
  .p-ls__section-desc {
    margin-top: 3rem;
    font-size: 1.4rem;
  }
  .p-ls__concern-list {
    width: calc(100% - 4rem);
    max-width: 34rem;
    gap: 1.8rem;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .p-ls__concern-top {
    width: 30.3rem;
    margin: 5rem 0;
  }
  .p-ls__concern-char {
    width: 7rem;
  }
  .p-ls__concern-bubble {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    width: auto;
    max-width: none;
    min-height: 7.3rem;
    padding: 0 2rem 0 4rem;
  }
  .p-ls__concern-bubble::before {
    min-height: 7.3rem;
    background-image: url("../../assets/images/landing/bg_bubble-mo.svg");
  }
  .p-ls__concern-item:nth-of-type(even) .p-ls__concern-bubble {
    padding: 0 4rem 0 2rem;
    text-align: right;
  }
  .p-ls__concern-bubble strong {
    font-size: 1.6rem;
  }
  .p-ls__concern-bubble p {
    margin-top: 0.6rem;
    font-size: 1.4rem;
  }
  .p-ls__flow-stage {
    gap: 5rem;
    padding: 0 2rem;
  }
  .p-ls__flow-layout {
    width: min(100%, 33.5rem);
    grid-template-columns: minmax(0, 16rem) minmax(0, 15.6rem);
    grid-template-areas: "home-copy home-copy" "home doctor" ". doctor-copy" "prepare-copy prepare-copy" "form side";
    gap: 1.6rem 1.6rem;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
  }
  .p-ls__flow-col {
    display: contents;
  }
  .p-ls__flow-copy-block,
  .p-ls__flow-visual {
    opacity: 0;
    -webkit-transform: translate3d(0, 2rem, 0);
            transform: translate3d(0, 2rem, 0);
  }
  .p-ls__section--flow.is-flow-in .p-ls__flow-copy-block,
  .p-ls__section--flow.is-flow-in .p-ls__flow-visual {
    -webkit-animation: ls-flow-fade-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
            animation: ls-flow-fade-in 0.6s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  }
  .p-ls__section--flow.is-flow-in .p-ls__flow-visual--home {
    -webkit-animation-delay: 0.08s;
            animation-delay: 0.08s;
  }
  .p-ls__section--flow.is-flow-in .p-ls__flow-visual--doctor {
    -webkit-animation-delay: 0.16s;
            animation-delay: 0.16s;
  }
  .p-ls__section--flow.is-flow-in .p-ls__flow-copy-block--doctor {
    -webkit-animation-delay: 0.24s;
            animation-delay: 0.24s;
  }
  .p-ls__section--flow.is-flow-in .p-ls__flow-copy-block--prepare {
    -webkit-animation-delay: 0.32s;
            animation-delay: 0.32s;
  }
  .p-ls__section--flow.is-flow-in .p-ls__flow-visual--form {
    -webkit-animation-delay: 0.4s;
            animation-delay: 0.4s;
  }
  .p-ls__section--flow.is-flow-in .p-ls__flow-visual--side {
    -webkit-animation-delay: 0.48s;
            animation-delay: 0.48s;
  }
  .p-ls__flow-copy-block--home,
  .p-ls__flow-copy-block--prepare {
    min-width: 0;
    text-align: left;
    justify-self: start;
  }
  .p-ls__flow-copy-block--home {
    width: 100%;
    max-width: 21rem;
    margin-left: 1rem;
  }
  .p-ls__flow-copy-block--prepare {
    width: 100%;
    max-width: 20rem;
    margin-top: 2rem;
  }
  .p-ls__flow-copy-block--doctor {
    justify-self: center;
    width: 100%;
    min-width: 0;
    max-width: 18rem;
    margin-top: -10rem;
    text-align: center;
  }
  .p-ls__flow-copy-title {
    font-size: 1.6rem;
  }
  .p-ls__flow-copy-desc {
    margin-top: 0.8rem;
    font-size: 1.4rem;
    word-break: normal;
    overflow-wrap: anywhere;
  }
  .p-ls__flow-copy-block--home {
    grid-area: home-copy;
  }
  .p-ls__flow-copy-block--doctor {
    grid-area: doctor-copy;
  }
  .p-ls__flow-copy-block--prepare {
    grid-area: prepare-copy;
  }
  .p-ls__flow-visual--home,
  .p-ls__flow-visual--doctor,
  .p-ls__flow-visual--form,
  .p-ls__flow-visual--side {
    width: 100%;
    max-width: none;
  }
  .p-ls__flow-visual--home {
    grid-area: home;
    width: calc(100% + 4rem);
    margin-left: -4rem;
  }
  .p-ls__flow-visual--doctor {
    grid-area: doctor;
  }
  .p-ls__flow-visual--form {
    grid-area: form;
    margin-left: 0;
    align-self: start;
  }
  .p-ls__flow-visual--side {
    grid-area: side;
    margin-left: 0;
    align-self: start;
  }
  .p-ls__features-stage {
    gap: 2.4rem;
  }
  .p-ls__head--features {
    margin-bottom: 3.2rem;
  }
  .p-ls__section--concern {
    background-color: #FFF1FB;
  }
  .p-ls__features-layout {
    width: min(100%, 34.3rem);
    padding-top: 0;
  }
  .p-ls__feature-core {
    width: 100%;
    padding-top: 24rem;
    background-image: url("../../assets/images/landing/obj02-mo.png");
    background-size: 100% auto;
  }
  .p-ls__feature-core strong {
    max-width: 20rem;
    font-size: 1.8rem;
    line-height: 1.4;
  }
  .p-ls__feature-core p {
    max-width: 33rem;
    font-size: 1.8rem;
  }
  .p-ls__feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    width: calc(100vw - 4rem);
    max-width: 34.3rem;
    margin: -4rem auto 0;
  }
  .p-ls__feature-card {
    min-height: 24.3rem;
    padding: 2.4rem 1.2rem;
    border-radius: 99rem;
  }
  .p-ls__feature-icon {
    width: 7rem;
    height: 7rem;
  }
  .p-ls__feature-icon img {
    width: 100%;
    height: 100%;
  }
  .p-ls__feature-card strong {
    margin-top: 0.8rem;
    font-size: 1.8rem;
  }
  .p-ls__feature-card p {
    margin-top: 1.2rem;
    font-size: 1.3rem;
    line-height: 1.5;
    word-break: keep-all;
  }
  .p-ls__head--live {
    margin-bottom: 2.4rem;
  }
  .p-ls__head--live .p-ls__section-desc {
    max-width: 31rem;
  }
  .p-ls__live-visual {
    width: min(100%, 32.678rem);
    aspect-ratio: 326.78/345.87;
  }
  .p-ls__live-wave {
    top: 6%;
    width: 16rem;
    height: auto;
  }
  .p-ls__head--report {
    margin-bottom: 5rem;
  }
  .p-ls__report-stage {
    display: grid;
    justify-items: center;
    gap: 1.6rem;
    width: min(100%, 34.6rem);
  }
  .p-ls__report-visual {
    --ls-report-side-gap: 0.8rem;
    --ls-report-frame-width: 22.8rem;
    --ls-report-frame-border-width: 0rem;
  }
  .p-ls__report-frame::before {
    background: none;
  }
  .p-ls__report-outline {
    -webkit-transform: translateY(0.1rem);
            transform: translateY(0.1rem);
  }
  .p-ls__report-object {
    left: 0;
    width: min(100%, 27.9rem);
    margin-bottom: 0;
  }
  .p-ls__download-card {
    width: 100%;
    max-width: 100%;
    padding: 8rem 2rem 10rem;
    text-align: center;
    border-radius: 0;
  }
  .p-ls__download-copy {
    grid-template-columns: 1fr;
    grid-template-areas: "kicker" "brand" "visual" "title" "primary";
    justify-items: center;
  }
  .p-ls__download-kicker {
    font-size: 1.8rem;
    text-align: center;
  }
  .p-ls__download-brand {
    margin-bottom: 5rem;
  }
  .p-ls__download-logo {
    height: 5.1rem;
  }
  .p-ls__download-visual {
    width: min(100%, 21rem);
    margin-bottom: 5.2rem;
  }
  .p-ls__store-group--cta {
    display: none;
  }
  .p-ls__download-primary {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    width: 100%;
    max-width: 33.4rem;
    grid-area: primary;
  }
  .p-ls__download-copy strong {
    margin-bottom: 2rem;
    font-size: 2rem;
  }
  .p-ls__download-sheet .c-bottom-sheet__content {
    width: 100%;
    border-radius: 2.4rem 2.4rem 0 0;
  }
  .p-ls__footer {
    padding: 0;
  }
  .p-ls__footer-inner {
    width: 100%;
    min-height: 0;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 3.2rem;
    padding: 3.8rem 2rem 6rem;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
  .p-ls__footer-copy {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }
  .p-ls__footer-copy p {
    font-size: 1.3rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
    word-break: keep-all;
  }
  .p-ls__footer-note {
    max-width: 100%;
  }
  .p-ls__footer-group + .p-ls__footer-group {
    margin-top: 1.2rem;
  }
  .p-ls__footer-title {
    font-size: 1.8rem;
  }
  .p-ls__footer-links {
    margin-top: 1.2rem;
  }
  .p-ls__footer-clinic {
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 12px 4px;
  }
  .p-ls__social {
    width: 100%;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
    gap: 1rem;
    margin-bottom: 0;
  }
  .p-ls__social a {
    width: 4rem;
    height: 4rem;
  }
  .p-ls__section-title {
    margin-top: 1.6rem;
    font-size: 3.2rem;
  }
}
.p-ls__guide-stage {
  overflow: visible;
}

.p-ls__guide-board {
  position: relative;
  width: min(100%, 115.2rem);
  margin: 0 auto;
}

.p-ls__head--guide {
  margin-bottom: 12rem;
}

.p-ls__guide-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3rem;
  width: min(100%, 115.2rem);
  margin: 0 auto;
}

.p-ls__guide-image,
.p-ls__guide-slide {
  margin: 0;
  height: 100%;
}

.p-ls__guide-card {
  --ls-guide-card-stroke: 3px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  height: 100%;
  min-height: 40rem;
  padding: 2.7rem 2rem 0;
  border-radius: 3rem;
  background: #fff;
  -webkit-box-shadow: inset 0 0 0 var(--ls-guide-card-stroke) #daf7fa, 0 0 0.6rem rgba(164, 235, 242, 0.6), 0 2.4rem 4.8rem rgba(67, 176, 190, 0.16);
          box-shadow: inset 0 0 0 var(--ls-guide-card-stroke) #daf7fa, 0 0 0.6rem rgba(164, 235, 242, 0.6), 0 2.4rem 4.8rem rgba(67, 176, 190, 0.16);
  overflow: hidden;
  text-align: center;
  -webkit-transition: -webkit-box-shadow 0.24s ease;
  transition: -webkit-box-shadow 0.24s ease;
  transition: box-shadow 0.24s ease;
  transition: box-shadow 0.24s ease, -webkit-box-shadow 0.24s ease;
}

.p-ls__guide-step {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 10.4rem;
  min-height: 3.4rem;
  padding: 0 2rem;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  color: #fff;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1;
  border-radius: 999px;
  background: #00BCD4;
  border: 1px solid #3AD0E1;
  overflow: hidden;
  -webkit-transition: background-color 0.24s ease, border-color 0.24s ease, -webkit-box-shadow 0.24s ease;
  transition: background-color 0.24s ease, border-color 0.24s ease, -webkit-box-shadow 0.24s ease;
  transition: background-color 0.24s ease, border-color 0.24s ease, box-shadow 0.24s ease;
  transition: background-color 0.24s ease, border-color 0.24s ease, box-shadow 0.24s ease, -webkit-box-shadow 0.24s ease;
}

.p-ls__guide-step::after {
  content: "";
  position: absolute;
  inset: -0.5rem auto -0.5rem -45%;
  width: 38%;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), color-stop(rgba(255, 255, 255, 0.72)), to(rgba(255, 255, 255, 0)));
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0));
  -webkit-transform: translate3d(-120%, 0, 0) skewX(-18deg);
          transform: translate3d(-120%, 0, 0) skewX(-18deg);
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  .p-ls__guide-card:hover {
    -webkit-box-shadow: inset 0 0 0 0.3rem #61DCE8, 0 0 1rem rgba(0, 188, 212, 0.36), 0 2.4rem 4.8rem rgba(67, 176, 190, 0.2);
            box-shadow: inset 0 0 0 0.3rem #61DCE8, 0 0 1rem rgba(0, 188, 212, 0.36), 0 2.4rem 4.8rem rgba(67, 176, 190, 0.2);
  }
  .p-ls__guide-card:hover .p-ls__guide-step {
    background-color: #00AABF;
    -webkit-box-shadow: 0 0 1.4rem rgba(0, 188, 212, 0.34);
            box-shadow: 0 0 1.4rem rgba(0, 188, 212, 0.34);
  }
  .p-ls__guide-card:hover .p-ls__guide-step::after {
    -webkit-animation: ls-step-shine 0.72s ease-out both;
            animation: ls-step-shine 0.72s ease-out both;
  }
}
.p-ls__guide-copy {
  margin-top: 1.2rem;
  color: #404040;
  font-size: 2rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.03em;
}

.p-ls__guide-visual {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 100%;
  max-width: 33rem;
  aspect-ratio: 330/263;
  margin: auto 0 var(--ls-guide-card-stroke);
  padding-bottom: 2px;
  overflow: hidden;
}

.p-ls__guide-visual img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  -o-object-position: center center;
     object-position: center center;
}

.p-ls__guide-swiper,
.p-ls__guide-pagination {
  display: none;
}

@media (min-width: 768px) and (max-width: 1024px) {
  .p-ls__concern-top {
    width: clamp(42rem, 58vw, 58rem);
    max-width: 100%;
    margin: 8rem auto;
  }
  .p-ls__concern-bubble strong {
    font-size: clamp(2.2rem, 3.1vw, 2.8rem);
  }
  .p-ls__concern-bubble p {
    font-size: clamp(1.6rem, 2.2vw, 2rem);
  }
  .p-ls__guide-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.4rem;
    width: min(100%, 78rem);
  }
  .p-ls__guide-card {
    min-height: 38rem;
  }
  .p-ls__guide-visual {
    max-width: 30rem;
    aspect-ratio: 330/263;
    margin: auto 0 var(--ls-guide-card-stroke);
  }
}
@media (max-width: 767px) {
  .p-ls__guide-board {
    width: 100%;
    aspect-ratio: auto;
    padding: 4.4rem 0 0;
  }
  .p-ls__head--guide {
    margin-bottom: 2.8rem;
    padding: 0 2rem;
  }
  .p-ls__guide-gallery {
    display: none;
  }
  .p-ls__guide-swiper {
    display: block;
    padding: 0 2rem;
    overflow: visible;
  }
  .p-ls__guide-slide {
    height: auto;
  }
  .p-ls__guide-card {
    --ls-guide-card-stroke: 0.25rem;
    min-height: 31.8rem;
    padding: 2rem 1rem 0;
    border-radius: 2.4rem;
    -webkit-box-shadow: inset 0 0 0 var(--ls-guide-card-stroke) #daf7fa, 0 0 0.4rem rgba(164, 235, 242, 0.5), 0 1.8rem 3rem rgba(67, 176, 190, 0.18);
            box-shadow: inset 0 0 0 var(--ls-guide-card-stroke) #daf7fa, 0 0 0.4rem rgba(164, 235, 242, 0.5), 0 1.8rem 3rem rgba(67, 176, 190, 0.18);
  }
  .p-ls__guide-step {
    min-width: 8.5rem;
    min-height: 3rem;
    font-size: 1.4rem;
  }
  .p-ls__guide-copy {
    margin-top: 1rem;
    font-size: 1.4rem;
  }
  .p-ls__guide-visual {
    max-width: 26.2rem;
    aspect-ratio: 262/209;
    margin: auto 0 var(--ls-guide-card-stroke);
    padding-bottom: 0;
  }
  .p-ls__guide-pagination {
    display: none;
  }
}
@media (max-width: 374px) {
  .p-ls__hero-title {
    margin-top: 2.4rem;
  }
}
@media (max-width: 360px) {
  .p-ls__hero-title-break--xs {
    display: block;
  }
}
@-webkit-keyframes ls-icon-wiggle {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg);
            transform: translate3d(0, 0, 0) rotate(0deg);
  }
  22% {
    -webkit-transform: translate3d(-0.5rem, 0, 0) rotate(-4deg);
            transform: translate3d(-0.5rem, 0, 0) rotate(-4deg);
  }
  48% {
    -webkit-transform: translate3d(0.45rem, 0, 0) rotate(3deg);
            transform: translate3d(0.45rem, 0, 0) rotate(3deg);
  }
  72% {
    -webkit-transform: translate3d(-0.22rem, 0, 0) rotate(-1.6deg);
            transform: translate3d(-0.22rem, 0, 0) rotate(-1.6deg);
  }
}
@keyframes ls-icon-wiggle {
  0%, 100% {
    -webkit-transform: translate3d(0, 0, 0) rotate(0deg);
            transform: translate3d(0, 0, 0) rotate(0deg);
  }
  22% {
    -webkit-transform: translate3d(-0.5rem, 0, 0) rotate(-4deg);
            transform: translate3d(-0.5rem, 0, 0) rotate(-4deg);
  }
  48% {
    -webkit-transform: translate3d(0.45rem, 0, 0) rotate(3deg);
            transform: translate3d(0.45rem, 0, 0) rotate(3deg);
  }
  72% {
    -webkit-transform: translate3d(-0.22rem, 0, 0) rotate(-1.6deg);
            transform: translate3d(-0.22rem, 0, 0) rotate(-1.6deg);
  }
}
@-webkit-keyframes ls-step-shine {
  from {
    -webkit-transform: translate3d(-120%, 0, 0) skewX(-18deg);
            transform: translate3d(-120%, 0, 0) skewX(-18deg);
  }
  to {
    -webkit-transform: translate3d(420%, 0, 0) skewX(-18deg);
            transform: translate3d(420%, 0, 0) skewX(-18deg);
  }
}
@keyframes ls-step-shine {
  from {
    -webkit-transform: translate3d(-120%, 0, 0) skewX(-18deg);
            transform: translate3d(-120%, 0, 0) skewX(-18deg);
  }
  to {
    -webkit-transform: translate3d(420%, 0, 0) skewX(-18deg);
            transform: translate3d(420%, 0, 0) skewX(-18deg);
  }
}
@-webkit-keyframes ls-flow-fade-in {
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@keyframes ls-flow-fade-in {
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@-webkit-keyframes ls-concern-stack {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2rem, 0);
            transform: translate3d(0, 2rem, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@keyframes ls-concern-stack {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2rem, 0);
            transform: translate3d(0, 2rem, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@-webkit-keyframes ls-report-object-fade-up {
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@keyframes ls-report-object-fade-up {
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@-webkit-keyframes ls-report-outline-trace {
  from {
    stroke-dashoffset: 0;
  }
  to {
    stroke-dashoffset: -1000;
  }
}
@keyframes ls-report-outline-trace {
  from {
    stroke-dashoffset: 0;
  }
  to {
    stroke-dashoffset: -1000;
  }
}
@-webkit-keyframes ls-fade-up {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2.4rem, 0);
            transform: translate3d(0, 2.4rem, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@keyframes ls-fade-up {
  from {
    opacity: 0;
    -webkit-transform: translate3d(0, 2.4rem, 0);
            transform: translate3d(0, 2.4rem, 0);
  }
  to {
    opacity: 1;
    -webkit-transform: translate3d(0, 0, 0);
            transform: translate3d(0, 0, 0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .p-ls__hero-title {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
    -webkit-animation: none;
            animation: none;
  }
  .p-ls__store,
  .p-ls__social a,
  .p-ls__social img,
  .p-ls__download-primary,
  .p-ls__quick-download,
  .p-ls__feature-card:hover .p-ls__feature-icon,
  .p-ls__guide-step,
  .p-ls__guide-card:hover .p-ls__guide-step::after,
  .p-ls__section--about .p-ls__section-title--line::after,
  .p-ls__section--flow.is-flow-in .p-ls__flow-col,
  .p-ls__section--flow.is-flow-in .p-ls__flow-copy-block,
  .p-ls__section--flow.is-flow-in .p-ls__flow-visual,
  .p-ls__section--concern.is-concern-in .p-ls__concern-item,
  .p-ls__section--report.is-report-in .p-ls__report-object {
    -webkit-transition: none;
    transition: none;
    -webkit-animation: none;
            animation: none;
  }
  .p-ls__section--about .p-ls__section-title--line::after {
    -webkit-transform: translateX(-50%) scaleX(1);
            transform: translateX(-50%) scaleX(1);
  }
  .p-ls__flow-col {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
  .p-ls__flow-copy-block,
  .p-ls__flow-visual {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
  .p-ls__concern-item {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
  .p-ls__report-object {
    opacity: 1;
    -webkit-transform: none;
            transform: none;
  }
  .p-ls__live-wave {
    display: none;
  }
}
/**
 * ==============================================================================
 * File Name: _signup.scss
 * Description: 회원가입, 로그인, 앱권한허용
 * Prefix: .p-signup
 * ==============================================================================
 */
.p-signup:has(.c-page-header) {
  padding-top: 0;
}
.p-signup .c-page-header {
  margin-top: 3rem;
  margin-bottom: 4.6rem;
  padding: 0 0.6rem;
}
.p-signup.p-intro {
  padding-top: 3rem;
}
.p-signup.p-intro .c-page-header {
  margin-bottom: 4rem;
  padding: 0 0.8rem;
}
.p-signup.p-intro .t-list {
  padding: 0 0.8rem;
}
.p-signup.p-intro .t-list dl + dl {
  margin-top: 1.6rem;
}
.p-signup.p-login .p-login__logo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin: 5.6rem 0 4rem;
}
.p-signup.p-login .c-form-group {
  margin-bottom: 2rem;
}
.p-signup.p-login .c-btn-login {
  margin-top: 3rem;
}
.p-signup.p-login .c-btn-login .c-btn--full.c-btn--lg {
  height: 5.3rem;
  border-radius: 1.6rem;
}
.p-signup__form {
  padding: 0 0.8rem;
}
.p-signup .c-form-group {
  margin-bottom: 3.8rem;
}
.p-signup .c-form-group.has-loginutil {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  margin-top: 1.5rem;
  padding: 0 0.2rem;
}
.p-signup .c-form-group.has-loginutil .c-check span {
  color: #ADADAD;
  font-size: 1.3rem;
}
.p-signup .c-form-group.has-loginutil .c-btn--text {
  color: #ADADAD;
}
.p-signup .c-form-group.has-loginutil .c-btn-group.has-line {
  gap: 1.3rem;
}
.p-signup .c-form-group.has-loginutil .c-btn-group.has-line + .c-check-group__item {
  border-top: 0;
}
.p-signup .c-form-group.has-loginutil.is-center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.p-signup .c-form-group.has-loginutil.is-end {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}
.p-signup .c-form-group--success {
  border-color: #FF66CC;
}
.p-signup .c-form-group__msg--success {
  color: #FF66CC;
}
.p-signup .c-form-group__msg--error {
  color: #EE443F;
}
.p-signup .c-check-group .c-check-group__item {
  margin: 0;
  padding: 0 1rem;
}
.p-signup .c-check-group .c-check-group__item .c-check {
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
.p-signup .c-check-group .c-check-group__item .c-btn.c-btn--icon {
  margin-right: 0;
}
.p-signup .c-check-group .c-check-group__item + .c-check-group__item {
  border-top: 0;
}
.p-signup:not(.p-intro) .c-page-title {
  font-size: 2.4rem;
  line-height: 1.5;
}

/**
 * ==============================================================================
 * File Name: _complete.scss
 * Description: 결과 완료 페이지
 * Prefix: .p-complete
 * ==============================================================================
 */
.p-complete {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  min-height: calc(100vh - 4.8rem);
}
@supports (min-height: 100dvh) {
  .p-complete {
    min-height: calc(100dvh - 4.8rem);
  }
}
.p-complete {
  padding-top: 0;
  padding-left: 1.6rem;
  padding-right: 1.6rem;
  text-align: center;
}
.p-complete::before, .p-complete::after {
  content: "";
}
.p-complete::before {
  -webkit-box-flex: 9;
      -ms-flex: 9;
          flex: 9;
}
.p-complete::after {
  -webkit-box-flex: 10;
      -ms-flex: 10;
          flex: 10;
}
.p-complete__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 2.2rem;
}
.p-complete__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.p-complete__icon i {
  display: block;
  width: 5.6rem;
  height: 5.6rem;
  background-image: url("../images/icons/icon_complete.svg");
  background-repeat: no-repeat;
  background-position: center;
  -webkit-animation: popIn 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) both;
          animation: popIn 0.8s cubic-bezier(0.215, 0.61, 0.355, 1) both;
}
.p-complete__text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
}
.p-complete__title {
  color: #2B2B2B;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.4;
}
.p-complete__desc {
  color: #ADADAD;
  font-size: 1.4rem;
  white-space: pre-line;
}

/**
 * ==============================================================================
 * File Name: _error.scss
 * Description: 에러 페이지
 * Prefix: .p-error
 * ==============================================================================
 */
.p-error {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-height: calc(100dvh - 4.8rem);
  min-height: calc(100dvh - 4.8rem);
  padding: 1.2rem 1.6rem 0;
  text-align: center;
}
.p-error__content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
  margin-top: -3.2rem;
}
.p-error__icon {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}
.p-error__icon i {
  display: block;
  width: 5.4rem;
  height: 5.4rem;
  background-image: url("../images/icons/icon_error.svg");
  background-repeat: no-repeat;
  background-position: center;
}
.p-error__text {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
}
.p-error__title {
  color: #2B2B2B;
  font-size: 1.8rem;
  font-weight: 600;
  line-height: 1.5;
}
.p-error__desc {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  color: #ADADAD;
  font-size: 1.4rem;
  white-space: pre-line;
  gap: 0.8rem;
}
.p-error__desc p {
  font-size: 1.4rem;
  white-space: pre-line;
  word-break: keep-all;
}
.p-error .c-btn-group {
  margin-top: 1.8rem;
}
.p-error .c-btn-group .c-btn {
  min-width: 16rem;
  border-radius: 1.6rem;
}

/**
 * ==============================================================================
 * File Name: _hospital.scss
 * Description: 의사,병원 메인/상세
 * Prefix: .p-hospital, .p-hospital--detail
 * ==============================================================================
 */
.p-hospital--detail {
  padding-top: 0;
}
.p-hospital--detail .l-section:not(:last-child) {
  margin-bottom: 2.4rem;
}
.p-hospital--detail .c-card__thumb.is-covered {
  overflow: hidden;
}
@supports (aspect-ratio: 1/1) {
  .p-hospital--detail .c-card__thumb.is-covered {
    aspect-ratio: 1/1;
  }
}
@supports not (aspect-ratio: 1/1) {
  .p-hospital--detail .c-card__thumb.is-covered {
    padding-top: 43.44%;
  }
}
.p-hospital--detail .c-card__thumb.is-covered img {
  width: 100%;
  height: 100%;
  display: block;
  -o-object-fit: cover;
     object-fit: cover;
}
.p-hospital--detail .c-card__thumb.is-covered + .c-card__top.c-card__info {
  margin-top: 1.6rem;
}
.p-hospital--detail .c-card__top.c-card__info {
  padding: 1.6rem 0;
}
.p-hospital--detail .c-card__top.c-card__info .c-card__title {
  font-size: 1.8rem;
}
.p-hospital--detail .c-card__top.c-card__info .c-card__subtitle {
  margin-top: 0.2rem;
}
.p-hospital--detail .c-card__top.c-card__info .c-card__location {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.3rem;
  margin-top: 0.7rem;
  color: #838383;
  font-size: 1.1rem;
  font-weight: 400;
}
.p-hospital--detail .c-card__top.c-card__info .c-card__location .c-icon {
  --icon-size: 16px;
  background: #ADADAD;
}
.p-hospital--detail .c-card__top.c-card__info .c-card__stats {
  margin-top: 0.7rem;
}
.p-hospital--detail .c-card__top.c-card__info .c-badges {
  margin-top: 1.5rem;
}
.p-hospital--detail .c-card__top.c-card__info .c-card__position {
  display: block;
  margin-top: 0.2rem;
  color: #2B2B2B;
  font-size: 1.3rem;
  font-weight: 400;
  line-height: 20px;
}
.p-hospital--detail .c-card__top.c-card__info .c-card__rating-count {
  color: #404040;
}
.p-hospital--detail .c-text-clamp.js-text-more.is-expanded {
  margin-top: 2.4rem;
}
.p-hospital--detail .c-tab__list {
  margin-left: 0;
}
.p-hospital--detail .c-card-list--col {
  margin-top: 1.6rem;
}
.p-hospital--detail .c-hospital-slider .swiper-slide {
  border-radius: 0;
}
.p-hospital--detail .c-hospital-slider .swiper-slide a > img,
.p-hospital--detail .c-hospital-slider .swiper-slide > img {
  width: 100%;
}
@supports (aspect-ratio: 375/240) {
  .p-hospital--detail .c-hospital-slider .swiper-slide a > img,
  .p-hospital--detail .c-hospital-slider .swiper-slide > img {
    aspect-ratio: 375/240;
  }
}
@supports not (aspect-ratio: 375/240) {
  .p-hospital--detail .c-hospital-slider .swiper-slide a > img,
  .p-hospital--detail .c-hospital-slider .swiper-slide > img {
    padding-top: 64%;
  }
}
.p-hospital--detail .c-map-block {
  margin: 3.2rem 0 3.2rem;
}
.p-hospital--detail .c-desc__item .c-desc__text .c-badge.c-badge--outline {
  height: 27px;
  padding: 0 0.8rem;
  line-height: 1;
}
.p-hospital--detail .c-desc__item .c-desc__text .c-badge.c-badge--outline .c-icon {
  --icon-size: 16px;
  margin-right: 0.2rem;
  background-color: #838383;
}
.p-hospital--detail .c-desc__item + .c-desc__item {
  margin-top: 2.4rem;
}
.p-hospital--detail .c-card-list.c-card-list--line li:last-child {
  padding-bottom: 0;
}
.p-hospital--detail .c-desc--hospital .c-desc__item + .c-desc__item {
  margin-top: 3.2rem;
}

/**
 * ==============================================================================
 * File Name: _review.scss
 * Description: 후기 메인/상세, 신고하기, 상세이미지 팝업
 * Prefix: .p-review
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Review Page
 * ------------------------------------------------------------------------------ */
.p-review .l-section:not(:last-child) {
  margin-bottom: 3.2rem;
}
.p-review .t-title .t-h5 {
  color: #404040;
}
.p-review .t-title .t-body-sm {
  color: #ADADAD;
}
.p-review .c-card__head.has-select .c-form-group__label .c-form-group__category {
  color: #838383;
}
.p-review .c-card__head.has-select .c-form-group__label .c-form-group__category + span:before {
  display: none;
}
.p-review-content:not(:first-child) {
  margin-top: 1.6rem;
}
.p-review-content .t-h5 {
  margin-bottom: 1.6rem;
  color: #404040;
}
.p-review-content .t-h6 {
  margin-bottom: 1.6rem;
  color: #838383;
  font-weight: 400;
}
.p-review {
  /* review summary override */
}
.p-review .c-review-summary {
  padding-bottom: 0;
  margin-top: 1.2rem;
  margin-bottom: 0;
  border-bottom: 0;
}
.p-review .c-review-summary .c-review-summary__head .t-title {
  margin-bottom: 1.2rem;
}
.p-review .c-review-summary .c-review-summary__head .t-title .t-h3 {
  font-size: 2.4rem;
  font-weight: 400;
}
.p-review .c-review-summary .c-review-summary__head .t-title .c-review-summary-name {
  font-weight: 700;
}
.p-review .c-textarea-box {
  min-height: 30rem;
}
.p-review--detail .c-card--review > .c-card__title {
  font-size: 1.8rem;
}
@supports (aspect-ratio: 1/1) {
  .p-review--detail .c-review-slider .swiper-slide {
    aspect-ratio: 343/343;
  }
}
@supports not (aspect-ratio: 1/1) {
  .p-review--detail .c-review-slider .swiper-slide {
    padding-top: 100%;
  }
}

/* ------------------------------------------------------------------------------
 * 2. 신고하기 팝업
 * ------------------------------------------------------------------------------ */
.c-form-group--report {
  margin-bottom: 0;
}
.c-form-group--report .c-form-group__label {
  margin: 2.4rem 0;
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}

.c-report__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.8rem;
}
.c-report__etc {
  margin-top: 0.8rem;
}

.c-report-item {
  display: block;
  width: 100%;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: pointer;
}
.c-report-item__input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.c-report-item__box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.2rem;
  width: 100%;
  min-height: 4.8rem;
  padding: 1.4rem 1.6rem;
  border: 1px solid #DDDDDD;
  border-radius: 1rem;
  background: #ffffff;
}
.c-report-item__text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  color: #ADADAD;
  font-size: 1.5rem;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.c-report-item {
  /* check icon (default: hidden) */
}
.c-report-item__check {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  opacity: 0;
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
  background-color: #FF66CC;
}
.c-report-item {
  /* selected */
}
.c-report-item__input:checked + .c-report-item__box {
  border-color: #FFAEE6;
  background: #FFF1FB;
}
.c-report-item__input:checked + .c-report-item__box .c-report-item__text {
  color: #FF66CC;
}
.c-report-item__input:checked + .c-report-item__box .c-report-item__check {
  opacity: 1;
}

/* ------------------------------------------------------------------------------
 * 3. 이미지 상세보기 팝업
 * ------------------------------------------------------------------------------ */
.c-popup--dark .p-review-photo {
  padding: 0;
  padding-bottom: 0 !important;
}
.c-popup--dark .p-review-photo .l-section {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  height: calc(100dvh - 4.8rem);
}
.c-popup--dark .p-review-photo .c-review-photo__slider {
  position: relative;
  height: 100%;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .c-review-detail-slider {
  height: 100%;
  margin-top: -2.4rem;
  padding: 0;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .swiper-wrapper {
  height: 100%;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .swiper-slide {
  height: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding-bottom: 0;
  border-radius: 0;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .swiper-slide > a {
  display: block;
  position: relative;
  width: 100%;
}
.c-popup--dark .p-review-photo .c-review-photo__slider img {
  width: 100%;
  height: auto;
  max-height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
  aspect-ratio: auto;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .swiper-pagination,
.c-popup--dark .p-review-photo .c-review-photo__slider .swiper-pagination-fraction {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2rem;
  font-size: 1.5rem;
  font-weight: 600;
  text-align: center;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .swiper-pagination .swiper-pagination-total,
.c-popup--dark .p-review-photo .c-review-photo__slider .swiper-pagination-fraction .swiper-pagination-total {
  color: #C8C8C8;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .c-review-photo__badge {
  position: absolute;
  left: 0;
  top: 0;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  min-width: 3.2rem;
  height: 3.5rem;
  padding: 0 0.8rem;
  border-radius: 0 0 1.2rem 0;
  font-size: 1.4rem;
  font-weight: 600;
  color: #ffffff;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .c-review-photo__badge--after {
  background-color: #FF66CC;
}
.c-popup--dark .p-review-photo .c-review-photo__slider .c-review-photo__badge--before {
  background-color: rgba(0, 0, 0, 0.8);
}

/**
 * ==============================================================================
 * File Name: _counsel.scss
 * Description: 상담 메인/신청/상세/결제/이벤트
 * Prefix: .p-counsel
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. 상담 공통
 * ------------------------------------------------------------------------------ */
.p-counsel .t-wrap {
  margin-bottom: 2.4rem;
}
.p-counsel .t-wrap .t-h3 {
  margin-bottom: 0.2rem;
  font-weight: 500;
}
.p-counsel .t-wrap .t-body {
  color: #838383;
}
.p-counsel .c-stepper-wrap {
  padding-bottom: 2rem;
  margin-bottom: 2rem;
  border-bottom: 1px solid #F2F2F2;
}
.p-counsel {
  /* Accordion (c-accordion) in Counsel */
}
.p-counsel .c-accordion {
  border-top: 0;
}
.p-counsel .c-accordion .c-accordion__item {
  border-bottom: 0;
}
.p-counsel .c-accordion .c-accordion__item.is-open .c-accordion__panel {
  padding-bottom: 0;
}
.p-counsel .c-summary-box {
  margin: 1.6rem 0 2.9rem;
}
.p-counsel .c-card--event-wrap {
  margin-top: 1.6rem;
}
.p-counsel {
  /* 결제 리스트(카드) 간격 조정 */
}
.p-counsel .c-card-list-payment {
  gap: 0;
}
.p-counsel .c-card-list-payment > li {
  padding: 3rem 0;
}
.p-counsel .c-card-list-payment > li:last-child {
  border-bottom: 1px solid #F2F2F2;
}
.p-counsel .c-card-list-payment .c-card--counsel .c-card__meta {
  margin-top: 1.6rem;
}
.p-counsel {
  /* 상담 정보(의사 카드 등) */
}
.p-counsel .p-counsel-info {
  margin-bottom: 2.4rem;
  padding-bottom: 2.4rem;
  border-bottom: 1px solid #F2F2F2;
}
.p-counsel .p-counsel-info .p-counsel-info__item {
  margin-bottom: 1.6rem;
}
.p-counsel .p-counsel-info .p-counsel-info__item:last-child {
  margin-bottom: 0;
}
.p-counsel .p-counsel-info .p-counsel-info__item .c-card--doctor {
  padding: 0.4rem 0;
}
.p-counsel .p-counsel-info .p-counsel-info__item .c-card--doctor .c-card__profile {
  width: 4.2rem;
  height: 4.2rem;
  margin-right: 1.2rem;
}
.p-counsel .p-counsel-info .p-counsel-info__item .c-card--doctor .c-card__title {
  font-size: 1.4rem;
}
.p-counsel {
  /* Empty State */
}
.p-counsel .p-counsel__empty {
  margin-top: 9rem;
}
.p-counsel .p-counsel__empty .c-empty__title {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 500;
}
.p-counsel .p-counsel__empty .c-empty__desc {
  margin-top: 0.8rem;
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
}
.p-counsel .p-counsel__empty .p-counsel__cta {
  margin-top: 2.4rem;
  padding: 1.2rem 3.4rem;
  border-radius: 1.6rem;
  font-size: 1.4rem;
  font-weight: 600;
  line-height: 1.5;
}
.p-counsel {
  /* 상담 상세 - 결제하기 */
}
.p-counsel.p-counsel--payment .l-section:not(:last-child) {
  margin-bottom: 3rem;
}
.p-counsel {
  /* 상담 요청 일정 바텀시트(footer 버튼 상태) */
}
.p-counsel .c-bottom-sheet .c-bottom-sheet__footer .btn-reset {
  color: #838383;
  border-color: #DDDDDD;
}
.p-counsel .c-bottom-sheet .c-bottom-sheet__footer .btn-reset.is-disabled, .p-counsel .c-bottom-sheet .c-bottom-sheet__footer .btn-reset:disabled {
  color: #C8C8C8;
  border-color: #F7F7F7;
}

/* ------------------------------------------------------------------------------
 * 2. 상담 상세
 * ------------------------------------------------------------------------------ */
.p-counsel-detail .l-section:not(:last-child) {
  margin-bottom: 3rem;
}
.p-counsel-detail {
  /* Counsel Stage (상담 단계별 내역 공통)
   * 상태: .is-current(강조), .is-done(완료 요약), .is-pay-wait(결제대기)
   */
}
.p-counsel-detail .btn-counsel-copy {
  font-weight: 500;
}
.p-counsel-detail .p-counsel-stage-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
}
.p-counsel-detail .p-counsel-copy {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  margin-bottom: 0.8rem;
}
.p-counsel-detail .p-counsel-copy .btn-counsel-copy {
  margin-left: auto;
}
.p-counsel-detail .p-counsel-stage {
  padding: 1.6rem;
  background-color: #ffffff;
  border: 1px solid #DDDDDD;
  border-radius: 1.6rem;
}
.p-counsel-detail .p-counsel-stage.is-current {
  border-color: #FFAEE6;
}
.p-counsel-detail .p-counsel-stage__title {
  margin-bottom: 1.2rem;
  font-size: 1.5rem;
  font-weight: 600;
}
.p-counsel-detail .p-counsel-stage__text {
  color: #838383;
  font-size: 1.3rem;
}
.p-counsel-detail .p-counsel-stage__text + .p-counsel-stage__text {
  margin-top: 0.4rem;
}
.p-counsel-detail {
  /* ===== 완료(요약 카드) ===== */
}
.p-counsel-detail .p-counsel-stage--summary .p-counsel-stage__badge-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  margin-bottom: 1.2rem;
}
.p-counsel-detail .p-counsel-stage--summary .p-counsel-stage__badge {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.4rem 0.8rem;
  color: #FF66CC;
  font-size: 1.2rem;
  font-weight: 500;
  background: #FFF1FB;
  border-radius: 0.8rem;
}
.p-counsel-detail .p-counsel-stage--summary .p-counsel-stage__type {
  color: #838383;
  font-size: 1.2rem;
  font-weight: 400;
}
.p-counsel-detail .p-counsel-stage--summary .p-counsel-stage__state-title {
  color: #2B2B2B;
  font-size: 1.6rem;
  font-weight: 600;
}
.p-counsel-detail .p-counsel-stage--summary .p-counsel-stage__meta {
  margin-top: 0.4rem;
  color: #ADADAD;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.3rem;
  letter-spacing: -0.01em;
}
.p-counsel-detail .p-counsel-stage--summary .p-counsel-stage__desc {
  margin-top: 1.2rem;
  color: #838383;
  font-size: 1.4rem;
}
.p-counsel-detail .p-counsel-stage--summary .p-counsel-stage__more {
  margin-top: 0.6rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #ADADAD;
  font-size: 1.2rem;
  font-weight: 500;
  text-align: left;
}
.p-counsel-detail {
  /* ===== 시술예약(결제대기) ===== */
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait {
  border: 3px solid #FFAEE6;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__badge-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.6rem;
  margin-bottom: 1.2rem;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__badge-row .p-counsel-stage__badge {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.4rem 0.8rem;
  color: #FF66CC;
  font-size: 1.2rem;
  font-weight: 500;
  background: #FFF1FB;
  border-radius: 9999px;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__type {
  color: #2B2B2B;
  font-size: 1.2rem;
  font-weight: 400;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-title {
  margin-top: 1.2rem;
  color: #FF66CC;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.4;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-list {
  margin-top: 1.6rem;
  padding-top: 0.4rem;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.2rem;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-row.is-strong {
  margin-top: 0.4rem;
  padding-top: 0.4rem;
  border-top: 1px solid #DDDDDD;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-label {
  color: #838383;
  font-size: 1.3rem;
  font-weight: 400;
  white-space: nowrap;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-label.u-text-primary {
  font-size: 1.4rem;
  font-weight: 500;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-value {
  color: #2B2B2B;
  font-size: 1.3rem;
  font-weight: 500;
  text-align: right;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__pay-amount {
  color: #FF66CC;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: right;
}
.p-counsel-detail .p-counsel-stage--payment.is-pay-wait .p-counsel-stage__desc {
  margin-top: 1.2rem;
  color: #838383;
  font-size: 1.4rem;
}
.p-counsel-detail {
  /* TextMore(Clamp) - 버튼 위치/스타일 조정 */
}
.p-counsel-detail .c-text-clamp-wrap .c-card__more {
  position: static;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  background: transparent;
  margin-top: 1rem;
}
.p-counsel-detail .c-text-clamp-wrap .c-card__more .js-text-more-label {
  color: #ADADAD;
  font-size: 1.2rem;
}
.p-counsel-detail .c-text-clamp-wrap .c-card__more:before {
  display: none;
}
.p-counsel-detail .c-desc__title + .c-desc__text {
  margin-top: 1.6rem;
}

/* 상담 상세 결제 레이아웃: 하단 여백 확장 */
/* ------------------------------------------------------------------------------
 * 3. 상담 이벤트 상세
 * ------------------------------------------------------------------------------ */
.p-counsel--event-detail {
  padding-top: 0;
}
.p-counsel--event-detail .c-event-slider .swiper-slide {
  border-radius: 0;
}
.p-counsel--event-detail .c-event-slider .swiper-slide a > img,
.p-counsel--event-detail .c-event-slider .swiper-slide > img {
  width: 100%;
}
@supports (aspect-ratio: 1/1) {
  .p-counsel--event-detail .c-event-slider .swiper-slide a > img,
  .p-counsel--event-detail .c-event-slider .swiper-slide > img {
    aspect-ratio: 1/1;
  }
}
@supports not (aspect-ratio: 1/1) {
  .p-counsel--event-detail .c-event-slider .swiper-slide a > img,
  .p-counsel--event-detail .c-event-slider .swiper-slide > img {
    padding-top: 43.44%;
  }
}
.p-counsel--event-detail .c-card--event-detail {
  margin-bottom: 3rem;
}
.p-counsel--event-detail .c-card--event-detail .c-card__info .c-card__title {
  display: block;
  font-size: 1.8rem;
}
.p-counsel--event-detail .c-card--event-detail .c-card__info .c-card__subtitle {
  font-size: 1.3rem;
}
.p-counsel--event-detail .c-card--event-detail .c-card__info .c-card__stats {
  margin-top: 0.8rem;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info {
  margin-top: 1.6rem;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 0.6rem 0;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--origin .c-card__price-label {
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--origin .c-card__price-amount {
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--origin .c-card__price-amount .u-text-number {
  color: #ADADAD;
  font-size: 1.3rem;
  font-weight: 400;
  text-decoration: line-through;
  letter-spacing: -0.01em;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--final {
  border-top: 1px solid #F2F2F2;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--final .c-card__price-row_item {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--final .c-card__price-label {
  color: #2B2B2B;
  font-size: 1.3rem;
  font-weight: 500;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--final .c-card__price-label .c-badge {
  margin-left: 0.4rem;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--final .c-card__price-discount {
  color: #FF66CC;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--final .c-card__price-amount,
.p-counsel--event-detail .c-card--event-detail .c-card__detail-info .c-card__price-row--final .c-card__price-amount .u-text-number {
  color: #2B2B2B;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.p-counsel--event-detail .c-card-list--review > li:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab-nav {
  border-bottom: 0;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab__panel {
  padding-top: 0;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab__panel .c-desc {
  padding: 3rem 0 2rem;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab__panel .c-card-list--more {
  padding-top: 2rem;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab__panel .c-collapse + .js-text-more-toggle {
  margin-top: 0;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab__panel .c-btn-more {
  color: #838383;
  font-weight: 400;
  border-color: #DDDDDD;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab__panel .c-btn-more .c-icon {
  background-color: #838383;
}
.p-counsel--event-detail .c-tab.c-tab--scroll .c-tab__panel .c-card-list.c-card-list--review {
  gap: 0;
}

/* ------------------------------------------------------------------------------
 * 4. 상담 결제
 * ------------------------------------------------------------------------------ */
.p-counsel--payment .p-payment-select {
  gap: 2rem;
  margin-bottom: 3rem;
}
.p-counsel--payment .c-card--payment-wrap .c-card--counsel-payment .c-card__main {
  padding-left: 0.8rem;
}
.p-counsel--payment .c-card--payment-wrap .c-card--counsel-payment .c-card__main .c-card__info .c-card__meta {
  margin-left: -4.2rem;
}
.p-counsel--payment .c-card-list--payment li:last-child {
  padding-bottom: 0;
}

/* ------------------------------------------------------------------------------
 * 5. 상담 결제 상세
 * ------------------------------------------------------------------------------ */
.p-counsel--payment-detail .t-h5 {
  margin-bottom: 1.6rem;
}
.p-counsel--payment-detail .c-card--payment-wrap {
  padding: 3rem 0;
}
.p-counsel--payment-detail .c-card-list-payment {
  border-top: 1px solid #F2F2F2;
}
.p-counsel--payment-detail .c-card-list-payment > li {
  padding: 0;
}
.p-counsel--payment-detail .c-card-list-payment > li .c-card--counsel-payment .c-card__main {
  padding-left: 0.8rem;
}
.p-counsel--payment-detail .c-card-list-payment > li .c-card--counsel-payment .c-card__meta {
  margin-top: 1.6rem;
  margin-left: -4.2rem;
}
.p-counsel--payment-detail .c-form-group__col {
  gap: 1.2rem;
  margin-top: 2rem;
}
.p-counsel--payment-detail .c-form-group__col .c-radio span {
  margin-bottom: 1px;
}
.p-counsel--payment-detail .c-form-group__col .c-radio .u-fw-medium {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  margin-right: 0.4rem;
}
.p-counsel--payment-detail .c-list__wrap {
  margin-top: 3rem;
}
.p-counsel--payment-detail .c-payment-refund .c-payment-refund__item {
  padding-top: 3rem;
}
.p-counsel--payment-detail .c-payment-refund .c-payment-refund__item + .c-payment-refund__item {
  margin-top: 3rem;
  border-top: 1px solid #F2F2F2;
}
.p-counsel--payment-detail .c-box--alert + .c-card--payment-wrap {
  padding-top: 1.6rem;
}

/* ------------------------------------------------------------------------------
 * 6. 상담 신청
 * ------------------------------------------------------------------------------ */
.p-counsel--apply .l-section:not(:last-child) {
  margin-bottom: 3rem;
}
.p-counsel--apply .c-card--doctor {
  padding: 0;
}
.p-counsel--apply .t-wrap {
  margin-bottom: 1.6rem;
}
.p-counsel--apply .c-card--payment-wrap .c-card--payment-meta {
  color: #2B2B2B;
}
.p-counsel--apply .c-btn-select {
  font-weight: 400;
}
.p-counsel--apply .c-btn-select .c-icon {
  --icon-size: 16px;
  background-color: #FF66CC;
}
.p-counsel--apply__item {
  position: relative;
  padding: 3rem 0;
}
.p-counsel--apply__item::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: -1.6rem;
  width: calc(100% + 3.2rem);
  height: 1px;
  background-color: #F2F2F2;
}
.p-counsel--apply__item .t-wrap .t-h5 {
  margin-bottom: 0.2rem;
}
.p-counsel--apply__item:last-child {
  padding-bottom: 0;
}
.p-counsel--apply__item:last-child::before {
  display: none;
}
.p-counsel--apply .c-card-list-select .c-card .c-btn.is-active {
  color: #ffffff;
  background-color: #FF66CC;
}
.p-counsel--apply .c-btn-keyword {
  margin-bottom: 2.4rem;
}
.p-counsel--apply {
  /* 사전 문진 선택 */
}
.p-counsel--apply .t-title + .c-option-list {
  margin-top: 2.4rem;
}
.p-counsel--apply .c-card-list.c-card-list-select {
  gap: 2.4rem;
}
.p-counsel--apply .c-card-list.c-card-list-select .c-card.c-card--doctor .c-card__profile {
  margin-top: 0.4rem;
}

/* ------------------------------------------------------------------------------
 * 7. 상담 플로우 전용 컴포넌트
 * ------------------------------------------------------------------------------ */
/* 일정 선택: 날짜 셀렉트 바 */
.c-datebar {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-bottom: 2.4rem;
}

/* 일정 선택: 시간 그리드 */
.c-time {
  padding-bottom: 0.8rem;
}
.c-time__group + .c-time__group {
  margin-top: 2.4rem;
}
.c-time__title {
  margin: 0 0 0.8rem;
  color: #838383;
  font-size: 1.3rem;
  font-weight: 400;
}
.c-time__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.4rem;
}
.c-time__btn {
  height: 4.3rem;
  border-radius: 1rem;
  border: 1px solid #DDDDDD;
  background: #ffffff;
  color: #ADADAD;
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: -0.01em;
  -webkit-transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
  transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.c-time__btn:disabled {
  color: #C8C8C8;
  background: #F7F7F7;
  border-color: #F7F7F7;
}
.c-time__btn.is-selected {
  border-color: #FFAEE6;
  color: #FF66CC;
  background-color: #FFF1FB;
}

.c-box--picked {
  padding: 1.6rem;
  background-color: #F9F9F9;
}
.c-box--picked .c-picked {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 0.4rem;
}
.c-box--picked .c-picked span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.4rem;
  color: #2B2B2B;
  font-size: 1.4rem;
}
.c-box--picked .c-picked span .c-icon {
  --icon-size: 16px;
  background-color: #838383;
}

/* 사전 문진 선택 */
.c-option-list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 1.6rem;
}

.c-option-card {
  position: relative;
}

.c-option-card__input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.c-option-card__box {
  display: block;
  padding: 1.6rem;
  border: 1px solid #DDDDDD;
  border-radius: 1.6rem;
  background-color: #ffffff;
  -webkit-transition: border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: border-color 0.2s ease, -webkit-box-shadow 0.2s ease;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, -webkit-box-shadow 0.2s ease;
}
.c-option-card__box:active {
  -webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
          box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
}

.c-option-card__title {
  display: block;
  padding-right: 6.2rem; /* 우측 상단 수정하기 버튼 자리 */
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 600;
}

.c-option-card__meta {
  margin-top: 1.2rem;
  color: #838383;
  font-size: 1.3rem;
  font-weight: 500;
}

.c-option-card__box .c-keyword-list {
  margin-top: 0.8rem;
}

.c-option-card__edit {
  position: absolute;
  top: 1.2rem;
  right: 0;
  padding: 1rem 1.6rem;
  color: #FF66CC;
  font-size: 1.2rem;
  font-weight: 400;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.c-option-card__edit:active {
  color: #FF00A7;
}

/* 선택 상태 */
.c-option-card__input:checked + .c-option-card__box {
  border-color: #FFAEE6;
}

/* 고민부위 선택 모달 */
.c-bottom-sheet.c-bottom-sheet--selection .c-sort-sheet__list .c-sort-sheet__item .c-sort-sheet__checkbox:checked + .c-sort-sheet__label {
  color: #FF66CC;
}
.c-bottom-sheet.c-bottom-sheet--selection .c-sort-sheet__list .c-sort-sheet__item .c-sort-sheet__checkbox:checked + .c-sort-sheet__label .c-icon.icon-check {
  --icon-size: 16px;
  background-color: #FF66CC;
}

.l-bottom-fixed .c-btn .icon-counsel {
  --icon-size: 22px;
  margin-right: 0.6rem;
}

/**
 * ==============================================================================
 * File Name: _mypage.scss
 * Description: 마이페이지 메인/상세
 * Prefix: .p-mypage
 * ==============================================================================
 */
.p-mypage .c-tab.is-fit .c-tab__item {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
}
.p-mypage .c-tab.is-fit .c-tab__panel {
  padding: 3rem 0;
}
.p-mypage .c-btn-more {
  color: #838383;
  border-color: #DDDDDD;
}
.p-mypage .c-btn-more .icon-arr-bottom {
  width: 1.6rem;
  height: 1.6rem;
  margin-left: 0.4rem;
  background-color: #838383;
}
.p-mypage.p-mypage-main {
  padding-top: 1.6rem;
  --container-bottom-gap: 0rem;
}
.p-mypage.p-mypage-main .l-section {
  margin-bottom: 3rem;
}
.p-mypage.p-mypage-main .l-section .t-body-sm {
  margin-bottom: 0.8rem;
}
.p-mypage.p-mypage-main .p-my-menu {
  padding: 1.2rem 0;
  border-radius: 2.8rem;
  background: #ffffff;
}
.p-mypage.p-mypage-main .p-my-menu .p-my-menu__list .p-my-menu__link {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  padding: 1.45rem 2rem;
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 500;
}
.p-mypage.p-mypage-main .p-my-menu .p-my-menu__list .p-my-menu__left {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1rem;
  min-width: 0;
}
.p-mypage.p-mypage-main .p-my-menu .p-my-menu__list .p-my-menu__text {
  font-size: 1.4rem;
  font-weight: 500;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.p-mypage.p-mypage-main .p-my-menu .p-my-menu__list .p-my-menu__link > .c-icon,
.p-mypage.p-mypage-main .p-my-menu .p-my-menu__list .p-my-menu__left .c-icon {
  --icon-size: 16px;
}
.p-mypage.p-mypage-main .p-mypage__logout {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 2.4rem;
}
.p-mypage.p-mypage-main .p-mypage__logout .p-mypage__logout-btn {
  padding: 0.2rem 0.8rem;
  color: #ADADAD;
  line-height: 1.5;
}
.p-mypage .p-mypage__intro {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1.2rem;
  padding: 1.9rem 2rem;
  background: #ffffff;
  border-radius: 2.8rem;
}
.p-mypage .p-mypage__intro .p-mypage__profile-card {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  width: 100%;
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 400;
}
.p-mypage .p-mypage__intro .p-mypage__profile-card .c-icon {
  --icon-size: 16px;
}
.p-mypage .p-mypage__intro .p-mypage__profile-card .p-mypage__avatar {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 1.2rem;
}
.p-mypage .p-mypage__intro .p-mypage__profile-card .p-mypage__avatar > img {
  width: 4.4rem;
  height: 4.4rem;
  border-radius: 50%;
  overflow: hidden;
}
.p-mypage .p-mypage__avatar-wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 1.8rem;
}
.p-mypage .p-mypage__avatar-wrap .p-mypage__avatar {
  position: relative;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  width: 7rem;
  height: 7rem;
  background: #F7F7F7;
  border-radius: 50%;
}
.p-mypage .p-mypage__avatar-wrap .p-mypage__avatar img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  border-radius: 50%;
  overflow: hidden;
}
.p-mypage .p-mypage__avatar-wrap .p-mypage__avatar--editable {
  padding: 0;
  border: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background: transparent;
  cursor: pointer;
}
.p-mypage .p-mypage__avatar-wrap .p-mypage__avatar--editable .p-mypage__avatar-thumb {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
}
.p-mypage .p-mypage__avatar-wrap .p-mypage__avatar--editable:focus-visible {
  outline: 2px solid #E0E0E0;
  outline-offset: 4px;
  border-radius: 9999px;
}
.p-mypage .p-mypage__avatar-wrap .p-mypage__avatar--editable .p-mypage__avatar-edit {
  position: absolute;
  right: -0.4rem;
  bottom: -0.4rem;
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 9999px;
  background: #ffffff;
}
.p-mypage .p-mypage__avatar-wrap .p-mypage__avatar--editable .p-mypage__avatar-edit .c-icon {
  --icon-size: 14px;
  background-color: #C8C8C8;
}
.p-mypage .p-mypage-form {
  margin-top: 3rem;
  padding: 0 0.8rem;
}
.p-mypage .p-mypage-form .c-form-group .c-form-group__row {
  margin-bottom: 0;
  padding-bottom: 0;
  gap: 2.4rem;
}
.p-mypage .p-mypage-form .c-form-group.c-form-group__row {
  padding: 0 0 1.2rem;
}
.p-mypage .p-mypage-form .c-form-group__row {
  gap: 0;
  padding-bottom: 1.2rem;
  margin-bottom: 1.2rem;
  border-bottom: 1px solid #F2F2F2;
}
.p-mypage .p-mypage-form .c-form-group__row:last-child {
  border-bottom: 0;
}
.p-mypage .p-mypage-form .c-form-group__row .c-form-group__label {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 30%;
          flex: 0 0 30%;
  min-width: 0;
  padding: 0.95rem 0;
  margin-bottom: 0;
  font-size: 1.4rem;
}
.p-mypage .p-mypage-form .c-form-group__row .c-input-item.is-text {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 70%;
          flex: 0 0 70%;
  min-width: 0;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  padding: 0.85rem 0 0.85rem 0.8rem;
}
.p-mypage .p-mypage-form .c-form-group__row .c-input-item.is-text > span {
  display: block;
  width: 100%;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 500;
  word-break: break-word;
  overflow-wrap: break-word;
  text-align: right;
}
.p-mypage .c-setting-list {
  margin-top: 2.8rem;
}
.p-mypage .c-setting-list .c-setting-item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  gap: 1rem;
  padding: 1.6rem 0;
  border-bottom: 1px solid #DDDDDD;
}
.p-mypage .c-setting-list .c-setting-item:last-child {
  border-bottom: 0;
}
.p-mypage .c-setting-list .c-setting-item__text {
  -webkit-box-flex: 1;
      -ms-flex: 1;
          flex: 1;
  min-width: 0;
  color: #838383;
  font-size: 1.4rem;
}
.p-mypage .c-notice-list {
  margin-top: 1.2rem;
  margin-bottom: 2.4rem;
}
.p-mypage .c-notice-list .c-notice-item {
  border-bottom: 1px solid #F2F2F2;
}
.p-mypage .c-notice-list .c-notice-item.is-pinned .c-notice-title {
  font-weight: 600;
}
.p-mypage .c-notice-list .c-notice-link {
  display: block;
  padding: 1.6rem 0;
}
.p-mypage .c-notice-list .c-notice-title {
  display: block;
  color: #2B2B2B;
  font-size: 1.5rem;
  font-weight: 400;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
}
.p-mypage .c-notice-list .c-notice-date {
  display: block;
  margin-top: 0.6rem;
  font-size: 1.1rem;
  color: #ADADAD;
}
.p-mypage .c-notice-detail .c-notice-detail__head {
  padding: 1.6rem 0;
  border-bottom: 1px solid #F2F2F2;
}
.p-mypage .c-notice-detail .c-notice-title {
  font-size: 1.6rem;
  font-weight: 600;
}
.p-mypage .c-notice-detail .c-notice-detail__date {
  margin: 0.8rem 0 0;
  color: #838383;
  font-size: 1.2rem;
}
.p-mypage .c-notice-detail .c-notice-detail__body {
  padding: 1.6rem 0 0;
}
.p-mypage .c-notice-detail .c-notice-detail__content {
  color: #838383;
  font-size: 1.4rem;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.p-mypage .c-notice-detail .c-notice-detail__content p {
  margin: 0;
}
.p-mypage .c-notice-detail .c-notice-detail__content p + p {
  margin-top: 1.2rem;
}
.p-mypage .c-terms__head {
  margin-bottom: 2.4rem;
}
.p-mypage .c-terms__title {
  margin: 0;
  color: #2B2B2B;
  font-size: 1.4rem;
  font-weight: 600;
}
.p-mypage .c-terms__body {
  color: #838383;
}
.p-mypage .c-terms__h3 {
  margin: 1.6rem 0 0.8rem;
  color: #2B2B2B;
  font-size: 1.3rem;
  font-weight: 600;
}
.p-mypage .c-terms__h3:first-child {
  margin-top: 0;
}
.p-mypage .c-terms__p {
  margin: 0.6rem 0 0;
  color: #838383;
  font-size: 1.3rem;
  font-weight: 400;
  word-break: keep-all;
}
.p-mypage .c-terms__ol {
  list-style: decimal;
  list-style-position: outside;
  margin: 1.2rem 0 0;
  padding-left: 1.8rem;
}
.p-mypage .c-terms__ol > li {
  margin: 1.2rem 0;
}
.p-mypage .c-terms__ol > li .c-terms__p > strong {
  font-weight: 400;
}
.p-mypage .c-terms__ol .c-terms__p {
  margin-top: 0;
}
.p-mypage.p-withdrawal {
  padding-top: 2.4rem;
}
.p-mypage.p-withdrawal .c-box--alert {
  margin-top: 2.4rem;
}
.p-mypage.p-withdrawal .c-box--alert .c-box--alert__item {
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
.p-mypage.p-withdrawal .p-withdrawal__agree {
  margin-top: 2.4rem;
}
.p-mypage.p-withdrawal .p-withdrawal__agree .c-check {
  gap: 0;
}
.p-mypage-terms {
  padding-top: 0;
}
.p-mypage-terms .c-tab--sticky .c-tab-nav {
  top: var(--header-h, 4.8rem);
  padding-top: 1.2rem;
  -webkit-transform: translateZ(0);
          transform: translateZ(0);
}
.p-mypage-terms .c-tab__panel {
  padding: 3rem 0 0;
}
.p-mypage .p-mypage__footer {
  margin: 5rem calc(-1 * var(--page-gutter)) 0;
  padding: 3rem var(--page-gutter) 5rem;
  background: #F0F0F0;
}
.p-mypage .p-mypage__footer p {
  margin: 0;
  color: #838383;
  font-size: 1.1rem;
  font-weight: 400;
  line-height: 1.6;
}
.p-mypage .p-mypage__footer a {
  color: inherit;
  text-decoration: none;
}
.p-mypage .p-mypage__footer .p-mypage__footer-corp {
  margin-bottom: 1.2rem;
  font-style: normal;
}
.p-mypage .p-mypage__footer .p-mypage__footer-corp .p-mypage__footer-corp-name {
  display: block;
  margin-bottom: 0.4rem;
  color: #838383;
  font-size: 1.2rem;
  font-weight: 600;
}
.p-mypage .p-mypage__footer .p-mypage__footer-corp .line {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1.2rem;
}
.p-mypage .p-mypage__footer .p-mypage__footer-corp .line span {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}
.p-mypage .p-mypage__footer .p-mypage__footer-corp .line span + span:before {
  display: inline-block;
  width: 1px;
  height: 10px;
  margin: 0 0.8rem;
  background: #C8C8C8;
  content: "";
}
.p-mypage .p-mypage__footer .p-mypage__footer-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  margin-bottom: 1.2rem;
}
.p-mypage .p-mypage__footer .p-mypage__footer-links a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  color: #838383;
  font-size: 1.1rem;
  font-weight: 600;
}
.p-mypage .p-mypage__footer .p-mypage__footer-links a + a:before {
  display: inline-block;
  width: 1px;
  height: 10px;
  margin: 0 0.8rem;
  background: #C8C8C8;
  content: "";
}
.p-mypage .p-mypage__footer .p-mypage__footer-contact {
  margin-bottom: 1.2rem;
  font-style: normal;
}
.p-mypage .p-mypage__footer .p-mypage__footer-notice {
  margin-bottom: 0;
}
.p-mypage .p-mypage__footer .p-mypage__footer-sns {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  gap: 0.8rem;
  margin-top: 2rem;
}
.p-mypage .p-mypage__footer .p-mypage__footer-sns a {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
}
.p-mypage .p-mypage__footer .p-mypage__footer-sns img {
  width: 4rem;
  height: 4rem;
}

.p-ai-report-body,
.p-ai-report-page {
  min-height: 100vh;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(10%, #FFFFFF), color-stop(85%, #FFAEE6));
  background: linear-gradient(180deg, #FFFFFF 10%, #FFAEE6 85%);
}

.l-section:not(:last-child).p-ai-report__hero {
  margin-bottom: 2.4rem;
}

.p-ai-report-page .l-header,
.p-ai-report-page .l-container,
.p-ai-report-page .l-section {
  background: transparent;
}
.p-ai-report-page .l-header {
  background: #fff;
  border-bottom: 1px solid #F0F0F0;
}
.p-ai-report-page .l-header__title {
  overflow: visible;
  text-overflow: initial;
}

.p-ai-report {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  gap: 2.4rem;
  min-height: calc(100vh - var(--header-h, 4.8rem));
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
}
@supports (min-height: 100dvh) {
  .p-ai-report {
    min-height: calc(100dvh - var(--header-h, 4.8rem));
  }
}
.p-ai-report__hero {
  padding-top: 3rem;
  text-align: center;
}
.p-ai-report__desc {
  padding: 0 0.2rem;
  color: #838383;
  font-size: 1.3rem;
  line-height: 1.5;
  letter-spacing: -0.03em;
  word-break: break-all;
}
.p-ai-report__example {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
  overflow: hidden;
}
.p-ai-report__label {
  margin-bottom: 1rem;
  color: #FF66CC;
  font-size: 1.2rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.03em;
  text-align: center;
}
.p-ai-report__media {
  width: min(66.1538461538vw, 100%);
  margin: 0 auto;
  overflow: hidden;
}
.p-ai-report__media img {
  display: block;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  -o-object-position: top;
     object-position: top;
}

@media (max-width: 375px) {
  .p-ai-report__desc .u-mo-only {
    display: none;
  }
}
@media (max-width: 374px) {
  .p-ai-report__desc .br {
    display: none;
  }
}
@media (min-width: 426px) {
  .p-ai-report__desc .br {
    display: none;
  }
}
html[lang=ko] .p-ai-report-page .p-ai-report__desc {
  word-break: keep-all;
}

/**
 * ==============================================================================
 * File Name: _utils.scss
 * Description: 유틸리티 및 헬퍼 클래스 (u- 접두사, !important 사용 허용)
 * Prefix: .u- (Utility), .is- (State)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 1. Text Colors & Align
 * ------------------------------------------------------------------------------ */
.u-text-primary {
  color: var(--primary) !important;
}

.u-text-secondary {
  color: var(--secondary) !important;
}

.u-text-danger {
  color: #EE443F !important;
}

.u-text-warning {
  color: #FFBE4F !important;
}

.u-text-success {
  color: #2ECC71 !important;
}

.u-text-info {
  color: #3498DB !important;
}

.u-text-gray-9 {
  color: #2B2B2B !important;
}

.u-text-gray-8 {
  color: #404040 !important;
}

.u-text-gray-7 {
  color: #6B6B6B !important;
}

.u-text-gray-6 {
  color: #838383 !important;
}

.u-text-gray-5 {
  color: #ADADAD !important;
}

.u-text-gray-4 {
  color: #C8C8C8 !important;
}

.u-text-gray-3 {
  color: #E0E0E0 !important;
}

.u-text-gray-2 {
  color: #F0F0F0 !important;
}

.u-text-gray-1 {
  color: #F7F7F7 !important;
}

.u-text-center {
  text-align: center !important;
}

.u-text-right {
  text-align: right !important;
}

.u-text-left {
  text-align: left !important;
}

/* ------------------------------------------------------------------------------
 * 1-A. Text Decoration & Weight (New)
 * ------------------------------------------------------------------------------ */
.u-text-underline {
  text-decoration: underline !important;
}

.u-text-del {
  text-decoration: line-through !important;
}

.u-fw-bold {
  font-weight: 700 !important;
}

.u-fw-semibold {
  font-weight: 600 !important;
}

.u-fw-medium {
  font-weight: 500 !important;
}

.u-fw-regular {
  font-weight: 400 !important;
}

.u-fw-light {
  font-weight: 300 !important;
}

/* ------------------------------------------------------------------------------
 * 1-B. Text Truncation (New)
 * ------------------------------------------------------------------------------ */
.u-ellipsis {
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.u-line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ------------------------------------------------------------------------------
 * 2. Visibility & Accessibility (State Prefix 적용)
 * ------------------------------------------------------------------------------ */
.is-hidden {
  display: none !important;
}

.is-blind {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* ------------------------------------------------------------------------------
 * 2-A. Scrollbar Hidden
 * ------------------------------------------------------------------------------ */
.u-scrollbar-hide {
  -ms-overflow-style: none !important;
  scrollbar-width: none !important;
}

.u-scrollbar-hide::-webkit-scrollbar {
  display: none !important;
}

/* ------------------------------------------------------------------------------
 * 3. Responsive Helpers
 * ------------------------------------------------------------------------------ */
@media (min-width: 768px) {
  .u-mo-only {
    display: none !important;
  }
}

@media (max-width: 767px) {
  .u-pc-only {
    display: none !important;
  }
}

/* ------------------------------------------------------------------------------
 * 4. Font Size Helpers
 * ------------------------------------------------------------------------------ */
.u-text-fs-0 {
  font-size: 0px !important;
}

.u-text-fs-1 {
  font-size: 1px !important;
}

.u-text-fs-2 {
  font-size: 2px !important;
}

.u-text-fs-3 {
  font-size: 3px !important;
}

.u-text-fs-4 {
  font-size: 4px !important;
}

.u-text-fs-5 {
  font-size: 5px !important;
}

.u-text-fs-6 {
  font-size: 6px !important;
}

.u-text-fs-7 {
  font-size: 7px !important;
}

.u-text-fs-8 {
  font-size: 8px !important;
}

.u-text-fs-9 {
  font-size: 9px !important;
}

.u-text-fs-10 {
  font-size: 10px !important;
}

.u-text-fs-11 {
  font-size: 11px !important;
}

.u-text-fs-12 {
  font-size: 12px !important;
}

.u-text-fs-13 {
  font-size: 13px !important;
}

.u-text-fs-14 {
  font-size: 14px !important;
}

.u-text-fs-15 {
  font-size: 15px !important;
}

.u-text-fs-16 {
  font-size: 16px !important;
}

.u-text-fs-17 {
  font-size: 17px !important;
}

.u-text-fs-18 {
  font-size: 18px !important;
}

.u-text-fs-19 {
  font-size: 19px !important;
}

.u-text-fs-20 {
  font-size: 20px !important;
}

.u-text-fs-21 {
  font-size: 21px !important;
}

.u-text-fs-22 {
  font-size: 22px !important;
}

.u-text-fs-23 {
  font-size: 23px !important;
}

.u-text-fs-24 {
  font-size: 24px !important;
}

.u-text-fs-25 {
  font-size: 25px !important;
}

.u-text-fs-26 {
  font-size: 26px !important;
}

.u-text-fs-27 {
  font-size: 27px !important;
}

.u-text-fs-28 {
  font-size: 28px !important;
}

.u-text-fs-29 {
  font-size: 29px !important;
}

.u-text-fs-30 {
  font-size: 30px !important;
}

.u-text-fs-31 {
  font-size: 31px !important;
}

.u-text-fs-32 {
  font-size: 32px !important;
}

.u-text-fs-33 {
  font-size: 33px !important;
}

.u-text-fs-34 {
  font-size: 34px !important;
}

.u-text-fs-35 {
  font-size: 35px !important;
}

.u-text-fs-36 {
  font-size: 36px !important;
}

.u-text-fs-37 {
  font-size: 37px !important;
}

.u-text-fs-38 {
  font-size: 38px !important;
}

.u-text-fs-39 {
  font-size: 39px !important;
}

.u-text-fs-40 {
  font-size: 40px !important;
}

.u-text-fs-41 {
  font-size: 41px !important;
}

.u-text-fs-42 {
  font-size: 42px !important;
}

.u-text-fs-43 {
  font-size: 43px !important;
}

.u-text-fs-44 {
  font-size: 44px !important;
}

.u-text-fs-45 {
  font-size: 45px !important;
}

.u-text-fs-46 {
  font-size: 46px !important;
}

.u-text-fs-47 {
  font-size: 47px !important;
}

.u-text-fs-48 {
  font-size: 48px !important;
}

.u-text-fs-49 {
  font-size: 49px !important;
}

.u-text-fs-50 {
  font-size: 50px !important;
}

.u-text-fs-51 {
  font-size: 51px !important;
}

.u-text-fs-52 {
  font-size: 52px !important;
}

.u-text-fs-53 {
  font-size: 53px !important;
}

.u-text-fs-54 {
  font-size: 54px !important;
}

.u-text-fs-55 {
  font-size: 55px !important;
}

.u-text-fs-56 {
  font-size: 56px !important;
}

.u-text-fs-57 {
  font-size: 57px !important;
}

.u-text-fs-58 {
  font-size: 58px !important;
}

.u-text-fs-59 {
  font-size: 59px !important;
}

.u-text-fs-60 {
  font-size: 60px !important;
}

.u-text-fs-61 {
  font-size: 61px !important;
}

.u-text-fs-62 {
  font-size: 62px !important;
}

.u-text-fs-63 {
  font-size: 63px !important;
}

.u-text-fs-64 {
  font-size: 64px !important;
}

.u-text-fs-65 {
  font-size: 65px !important;
}

.u-text-fs-66 {
  font-size: 66px !important;
}

.u-text-fs-67 {
  font-size: 67px !important;
}

.u-text-fs-68 {
  font-size: 68px !important;
}

.u-text-fs-69 {
  font-size: 69px !important;
}

.u-text-fs-70 {
  font-size: 70px !important;
}

.u-text-fs-71 {
  font-size: 71px !important;
}

.u-text-fs-72 {
  font-size: 72px !important;
}

.u-text-fs-73 {
  font-size: 73px !important;
}

.u-text-fs-74 {
  font-size: 74px !important;
}

.u-text-fs-75 {
  font-size: 75px !important;
}

.u-text-fs-76 {
  font-size: 76px !important;
}

.u-text-fs-77 {
  font-size: 77px !important;
}

.u-text-fs-78 {
  font-size: 78px !important;
}

.u-text-fs-79 {
  font-size: 79px !important;
}

.u-text-fs-80 {
  font-size: 80px !important;
}

.u-text-fs-81 {
  font-size: 81px !important;
}

.u-text-fs-82 {
  font-size: 82px !important;
}

.u-text-fs-83 {
  font-size: 83px !important;
}

.u-text-fs-84 {
  font-size: 84px !important;
}

.u-text-fs-85 {
  font-size: 85px !important;
}

.u-text-fs-86 {
  font-size: 86px !important;
}

.u-text-fs-87 {
  font-size: 87px !important;
}

.u-text-fs-88 {
  font-size: 88px !important;
}

.u-text-fs-89 {
  font-size: 89px !important;
}

.u-text-fs-90 {
  font-size: 90px !important;
}

.u-text-fs-91 {
  font-size: 91px !important;
}

.u-text-fs-92 {
  font-size: 92px !important;
}

.u-text-fs-93 {
  font-size: 93px !important;
}

.u-text-fs-94 {
  font-size: 94px !important;
}

.u-text-fs-95 {
  font-size: 95px !important;
}

.u-text-fs-96 {
  font-size: 96px !important;
}

.u-text-fs-97 {
  font-size: 97px !important;
}

.u-text-fs-98 {
  font-size: 98px !important;
}

.u-text-fs-99 {
  font-size: 99px !important;
}

.u-text-fs-100 {
  font-size: 100px !important;
}

/* ------------------------------------------------------------------------------
 * 5. Border Radius (New - Requested)
 * ------------------------------------------------------------------------------ */
.u-radius-none {
  border-radius: 0 !important;
}

.u-radius-xs {
  border-radius: 0.4rem !important;
}

.u-radius-sm {
  border-radius: 0.8rem !important;
}

.u-radius-md {
  border-radius: 1.6rem !important;
}

.u-radius-lg {
  border-radius: 2rem !important;
}

.u-radius-xl {
  border-radius: 3.2rem !important;
}

.u-radius-full {
  border-radius: 9999px !important;
}

.u-radius-circle {
  border-radius: 50% !important;
}

/* ------------------------------------------------------------------------------
 * 6. Layout & Display
 * ------------------------------------------------------------------------------ */
.u-block {
  display: block !important;
}

.u-inline-block {
  display: inline-block !important;
}

.u-inline {
  display: inline !important;
}

.u-flex {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
}

.u-flex-center {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: flex !important;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

/* ------------------------------------------------------------------------------
 * 7. Etc
 * ------------------------------------------------------------------------------ */
.u-bg {
  background-color: #FAF7F9 !important;
}

.u-bg-gray {
  background-color: #F7F7F7 !important;
}

.u-text-number {
  font-family: "Inter", "Noto Sans KR", "Noto Sans JP", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

.is-covered {
  margin: 0 calc(-1 * var(--page-gutter)) !important;
}

.u-pos-rel {
  position: relative !important;
}

.u-pos-abs {
  position: absolute !important;
}

/* ------------------------------------------------------------------------------
 * 8. Borders
 * ------------------------------------------------------------------------------ */
.u-border {
  border: 1px solid #F2F2F2 !important;
}

.u-border-top {
  border-top: 1px solid #F2F2F2 !important;
}

.u-border-bottom {
  border-bottom: 1px solid #F2F2F2 !important;
}

.u-border-left {
  border-left: 1px solid #F2F2F2 !important;
}

.u-border-right {
  border-right: 1px solid #F2F2F2 !important;
}

.u-border-none {
  border: none !important;
}

.u-border-0 {
  border: 0 !important;
}

/* ------------------------------------------------------------------------------
 * Device Visibility Utilities
 * - 동일 마크업을 유지하고, 디바이스 상태(data-os)에 따라 노출만 제어한다.
 * ------------------------------------------------------------------------------ */
.u-only-ios { /* iOS에서만 노출 */ }

.u-only-aos { /* AOS에서만 노출 */ }

/* OS별 노출 제어(전역) */
html[data-os=ios] .u-only-aos {
  display: none !important;
}

html[data-os=aos] .u-only-ios {
  display: none !important;
}

/* 로그인 화면에서만: OS 판별 전 Apple/Google 버튼 깜빡임 방지 */
html:not([data-os]) .p-login .u-only-ios, html:not([data-os]) .p-login .u-only-aos {
  display: none !important;
}

/**
 * ==============================================================================
 * File Name: common.scss
 * Description: 프로젝트 전역 공통 스타일 진입점 (Global Entry Point)
 * Unit Rule: Layout(rem), Font/Border(px) -> 1rem = 10px 기준
 * Note: Load 순서(Cascade)가 스타일 우선순위를 결정하므로 순서 변경 금지
 * ==============================================================================
 */
/* =============================================================================
 * PC View Simulation
 * - JS(ui_common.js)에서 감지한 .is-desktop 클래스가 있을 때만 작동
 * - 모바일 기기(터치 등)에서는 적용되지 않음
 * ========================================================================== */
@media (min-width: 601px) {
  body.is-desktop .l-wrapper {
    position: relative;
    max-width: 600px;
    margin: 0 auto;
    min-height: 100vh;
    -webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.05);
  }
  body.is-desktop .l-footer,
  body.is-desktop .l-bottom-fixed,
  body.is-desktop .c-modal {
    max-width: 600px;
    left: 50% !important;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    right: auto;
  }
  body.is-desktop .c-bottom-sheet__content {
    left: 0;
    right: 0;
    width: calc(100% - 4.8rem);
    max-width: 600px;
    margin: 0 auto;
  }
  body.is-desktop .u-bg .l-container {
    background-color: #FAF7F9;
  }
  body.is-desktop .u-bg-gray .l-container {
    background-color: #F7F7F7;
  }
  body.is-desktop .c-noti-layer {
    max-width: 600px;
    left: calc(50% - 300px) !important;
    right: auto;
  }
  body.is-desktop .c-full-menu,
  body.is-desktop .c-search-layer {
    max-width: 600px;
    left: 50% !important;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
    right: auto;
  }
  body.is-desktop .c-fab,
  body.is-desktop .c-btn-scroll-top {
    right: calc(50% - 300px + 1.6rem);
  }
}

/**
 * ==============================================================================
 * File Name: _responsive.scss
 * Description: 320px 이하 초소형 디바이스 최적화 (iPhone SE 등)
 * ==============================================================================
 */
/* ------------------------------------------------------------------------------
 * 360px 이하
 * ------------------------------------------------------------------------------ */
@media (max-width: 360px) {
  /* c-stepper */
  .c-stepper-wrap .c-stepper__label {
    min-height: 4rem;
    padding: 0 0.4rem;
    font-size: 1.3rem;
  }
}
/* ------------------------------------------------------------------------------
 * 320px 이하
 * ------------------------------------------------------------------------------ */
@media (max-width: 320px) {
  :root {
    --page-gutter: 1.4rem;
  }
  .p-ls__brand img {
    height: 3.6rem;
  }
  /* tab */
  .c-tab__panel {
    padding: 1.6rem 0;
  }
  /* card */
  .c-badge {
    height: 20px;
  }
  .c-category-nav {
    padding-left: 1.2rem;
  }
  .c-card--doctor {
    padding: 1.2rem 3.6rem 1.2rem 0.6rem;
  }
  .c-card--hospital .c-card__info {
    padding: 1.2rem 1.6rem 1.6rem;
  }
  .c-card--hospital .c-card__info .c-card__stats {
    gap: 0.4rem 0.6rem;
  }
  .c-card--hospital .c-card__info .c-badges {
    margin-top: 1.2rem;
  }
  .c-card--hospital .c-card__info .c-badges .c-badge {
    height: 25px;
    padding: 0 0.6rem;
  }
  .c-card--counsel .c-card__main {
    gap: 0.8rem;
  }
  .c-card--counsel .c-card__action {
    min-width: 10rem;
  }
  .c-card--counsel .c-card__action .c-btn-counsel {
    padding: 0.6rem 1rem;
  }
  .c-card-list--line > li {
    padding: 2rem 0;
  }
  .c-summary-box .c-summary-box__item {
    padding: 1rem 0.6rem;
  }
}/*# sourceMappingURL=ui_common.css.map */