@charset "utf-8";


/* =========================
   스킨 독립화 - custom.css 없이도 작동
   외부 의존 변수 자체 정의
========================= */
:root {
    --background-color: #ffffff;
    --background-color-gray: #dadada;
    --base-color-black: #000000;
    --base-color-white: #fff;
    --color-accent-blue: #3a8afd;
    --color-accent-red: #c43a31;
    --color-black-rgb: 0, 0, 0;
    --color-gray-100: #f4f4f4;
    --color-gray-150: #ececec;
    --color-gray-200: #eeeeee;
    --color-gray-210: #ddd;
    --color-gray-270: #b8bfc4;
    --color-gray-280: #b5b8bb;
    --color-gray-290: #b3b3b3;
    --color-gray-300: #C0C0C0;
    --color-gray-310: #b2b2b2;
    --color-gray-350: #ccc;
    --color-gray-380: #777;
    --color-gray-400: #919191;
    --color-gray-420: #6b757c;
    --color-gray-440: #656565;
    --color-gray-500: #666666;
    --color-gray-600: #555555;
    --color-gray-900: #333333;
    --color-hex-222: #222;
    --color-hex-7d7d7d: #7d7d7d;
    --color-hex-d0d0d0: #d0d0d0;
    --color-hex-e0ddd9: #e0ddd9;
    --color-hex-e0e0e0: #e0e0e0;
    --color-ui-dde7e9: #dde7e9;
    --color-ui-e2eaf6: #e2eaf6;
    --color-ui-f0f0f0: #f0f0f0;
    --color-ui-f1f1f1: #f1f1f1;
    --color-ui-input-bg: #d0d3db;
    --color-ui-light-bg-alt: #f6f6f6;
    --color-ui-line: #e8e8e8;
    --color-white-rgb: 255, 255, 255;
    --font-KR-base: "europa", sans-serif;
    --signature-color: #181d60;

    --header-height-min: 5.5rem;
    --header-height-pref: 6.7708vw;
    --header-height-max: 8.125rem;
    --header-height: clamp(var(--header-height-min), var(--header-height-pref), var(--header-height-max));

    --padding-pc-min: 2.5rem;
    --padding-pc-pref: 3.26vw;
    --padding-pc-max: 3.125rem;
    --padding-pc: clamp(var(--padding-pc-min), var(--padding-pc-pref), var(--padding-pc-max));

    --text-font-size-s-min: 0.875rem;
    --text-font-size-s-pref: 0.7552vw;
    --text-font-size-s-max: 0.9375rem;
    --text-font-size-s: clamp(var(--text-font-size-s-min), var(--text-font-size-s-pref), var(--text-font-size-s-max));

    --text-font-title-size-min: 1.125rem;
    --text-font-title-size-pref: 1.0417vw;
    --text-font-title-size-max: 1.375rem;
    --text-font-title-size: clamp(var(--text-font-title-size-min), var(--text-font-title-size-pref), var(--text-font-title-size-max));

    --text-font-title-size-line-min: 1.875rem;
    --text-font-title-size-line-pref: 1.6667vw;
    --text-font-title-size-line-max: 2.125rem;
    --text-font-title-size-line: clamp(var(--text-font-title-size-line-min), var(--text-font-title-size-line-pref), var(--text-font-title-size-line-max));

    --space-20-min: 1rem;
    --space-20-pref: 1.3vw;
    --space-20-max: 1.25rem;
    --space-20: clamp(var(--space-20-min), var(--space-20-pref), var(--space-20-max));

    --space-25-min: 1.25rem;
    --space-25-pref: 1.63vw;
    --space-25-max: 1.5625rem;
    --space-25: clamp(var(--space-25-min), var(--space-25-pref), var(--space-25-max));

    --sidebar-width-min: 14rem;
    --sidebar-width-pref: 18vw;
    --sidebar-width-max: 20rem;
    --sidebar-width: clamp(var(--sidebar-width-min), var(--sidebar-width-pref), var(--sidebar-width-max));

    --svh-100: 100svh;

    /* hardcode 변환 신규 토큰 (자동 추가) */
    --space-1: 0.0625rem;
    --space-2-min: 0.0625rem;
    --space-2-pref: 0.13vw;
    --space-2-max: 0.125rem;
    --space-2: clamp(var(--space-2-min), var(--space-2-pref), var(--space-2-max));
    --space-3-min: 0.125rem;
    --space-3-pref: 0.2vw;
    --space-3-max: 0.1875rem;
    --space-3: clamp(var(--space-3-min), var(--space-3-pref), var(--space-3-max));
    --space-4-min: 0.1875rem;
    --space-4-pref: 0.26vw;
    --space-4-max: 0.25rem;
    --space-4: clamp(var(--space-4-min), var(--space-4-pref), var(--space-4-max));
    --space-5-min: 0.25rem;
    --space-5-pref: 0.33vw;
    --space-5-max: 0.3125rem;
    --space-5: clamp(var(--space-5-min), var(--space-5-pref), var(--space-5-max));
    --space-6-min: 0.3125rem;
    --space-6-pref: 0.39vw;
    --space-6-max: 0.375rem;
    --space-6: clamp(var(--space-6-min), var(--space-6-pref), var(--space-6-max));
    --space-7-min: 0.3125rem;
    --space-7-pref: 0.46vw;
    --space-7-max: 0.4375rem;
    --space-7: clamp(var(--space-7-min), var(--space-7-pref), var(--space-7-max));
    --space-8-min: 0.375rem;
    --space-8-pref: 0.52vw;
    --space-8-max: 0.5rem;
    --space-8: clamp(var(--space-8-min), var(--space-8-pref), var(--space-8-max));
    --space-10-min: 0.5rem;
    --space-10-pref: 0.65vw;
    --space-10-max: 0.625rem;
    --space-10: clamp(var(--space-10-min), var(--space-10-pref), var(--space-10-max));
    --space-12-min: 0.625rem;
    --space-12-pref: 0.78vw;
    --space-12-max: 0.75rem;
    --space-12: clamp(var(--space-12-min), var(--space-12-pref), var(--space-12-max));
    --space-13-min: 0.625rem;
    --space-13-pref: 0.85vw;
    --space-13-max: 0.8125rem;
    --space-13: clamp(var(--space-13-min), var(--space-13-pref), var(--space-13-max));
    --space-14-min: 0.6875rem;
    --space-14-pref: 0.91vw;
    --space-14-max: 0.875rem;
    --space-14: clamp(var(--space-14-min), var(--space-14-pref), var(--space-14-max));
    --space-15-min: 0.75rem;
    --space-15-pref: 0.98vw;
    --space-15-max: 0.9375rem;
    --space-15: clamp(var(--space-15-min), var(--space-15-pref), var(--space-15-max));
    --space-16-min: 0.8125rem;
    --space-16-pref: 1.04vw;
    --space-16-max: 1rem;
    --space-16: clamp(var(--space-16-min), var(--space-16-pref), var(--space-16-max));
    --space-17-min: 0.875rem;
    --space-17-pref: 1.1vw;
    --space-17-max: 1.0625rem;
    --space-17: clamp(var(--space-17-min), var(--space-17-pref), var(--space-17-max));
    --space-18-min: 0.875rem;
    --space-18-pref: 1.17vw;
    --space-18-max: 1.125rem;
    --space-18: clamp(var(--space-18-min), var(--space-18-pref), var(--space-18-max));
    --space-24-min: 1.125rem;
    --space-24-pref: 1.56vw;
    --space-24-max: 1.5rem;
    --space-24: clamp(var(--space-24-min), var(--space-24-pref), var(--space-24-max));
    --space-26-min: 1.3125rem;
    --space-26-pref: 1.69vw;
    --space-26-max: 1.625rem;
    --space-26: clamp(var(--space-26-min), var(--space-26-pref), var(--space-26-max));
    --space-30-min: 1.5rem;
    --space-30-pref: 1.95vw;
    --space-30-max: 1.875rem;
    --space-30: clamp(var(--space-30-min), var(--space-30-pref), var(--space-30-max));
    --space-32-min: 1.625rem;
    --space-32-pref: 2.08vw;
    --space-32-max: 2rem;
    --space-32: clamp(var(--space-32-min), var(--space-32-pref), var(--space-32-max));
    --space-38-min: 1.875rem;
    --space-38-pref: 2.47vw;
    --space-38-max: 2.375rem;
    --space-38: clamp(var(--space-38-min), var(--space-38-pref), var(--space-38-max));
    --space-40-min: 2rem;
    --space-40-pref: 2.6vw;
    --space-40-max: 2.5rem;
    --space-40: clamp(var(--space-40-min), var(--space-40-pref), var(--space-40-max));
    --space-45-min: 2.25rem;
    --space-45-pref: 2.93vw;
    --space-45-max: 2.8125rem;
    --space-45: clamp(var(--space-45-min), var(--space-45-pref), var(--space-45-max));
    --space-48-min: 2.5rem;
    --space-48-pref: 3.13vw;
    --space-48-max: 3rem;
    --space-48: clamp(var(--space-48-min), var(--space-48-pref), var(--space-48-max));
    --space-50-min: 2.5rem;
    --space-50-pref: 3.26vw;
    --space-50-max: 3.125rem;
    --space-50: clamp(var(--space-50-min), var(--space-50-pref), var(--space-50-max));
    --space-80-min: 4rem;
    --space-80-pref: 5.21vw;
    --space-80-max: 5rem;
    --space-80: clamp(var(--space-80-min), var(--space-80-pref), var(--space-80-max));
    --space-88-min: 4.375rem;
    --space-88-pref: 5.73vw;
    --space-88-max: 5.5rem;
    --space-88: clamp(var(--space-88-min), var(--space-88-pref), var(--space-88-max));
    --space-90-min: 4.5rem;
    --space-90-pref: 5.86vw;
    --space-90-max: 5.625rem;
    --space-90: clamp(var(--space-90-min), var(--space-90-pref), var(--space-90-max));
    --space-100-min: 5rem;
    --space-100-pref: 6.51vw;
    --space-100-max: 6.25rem;
    --space-100: clamp(var(--space-100-min), var(--space-100-pref), var(--space-100-max));
    --space-120-min: 6rem;
    --space-120-pref: 7.81vw;
    --space-120-max: 7.5rem;
    --space-120: clamp(var(--space-120-min), var(--space-120-pref), var(--space-120-max));
    --space-200-min: 10rem;
    --space-200-pref: 13vw;
    --space-200-max: 12.5rem;
    --space-200: clamp(var(--space-200-min), var(--space-200-pref), var(--space-200-max));
    --space-300-min: 15rem;
    --space-300-pref: 19.53vw;
    --space-300-max: 18.75rem;
    --space-300: clamp(var(--space-300-min), var(--space-300-pref), var(--space-300-max));
    --space-400-min: 20rem;
    --space-400-pref: 26.04vw;
    --space-400-max: 25rem;
    --space-400: clamp(var(--space-400-min), var(--space-400-pref), var(--space-400-max));
    --transition-fast: 0.3s ease;
    --transition-base: 0.4s ease;
    --transition-medium: 0.5s ease;

    /* hardcode 변환 신규 토큰 (자동 추가) */
    --space-half: 0.0313rem;
    --space-5-alt-min: 0.25rem;
    --space-5-alt-pref: 0.3vw;
    --space-5-alt-max: 0.3rem;
    --space-5-alt: clamp(var(--space-5-alt-min), var(--space-5-alt-pref), var(--space-5-alt-max));
    --space-180-min: 9rem;
    --space-180-pref: 11.72vw;
    --space-180-max: 11.25rem;
    --space-180: clamp(var(--space-180-min), var(--space-180-pref), var(--space-180-max));
    --space-250-min: 12.5rem;
    --space-250-pref: 16.28vw;
    --space-250-max: 15.625rem;
    --space-250: clamp(var(--space-250-min), var(--space-250-pref), var(--space-250-max));
    --space-330-min: 16.5rem;
    --space-330-pref: 21.48vw;
    --space-330-max: 20.625rem;
    --space-330: clamp(var(--space-330-min), var(--space-330-pref), var(--space-330-max));
    --space-870-min: 43.5rem;
    --space-870-pref: 56.64vw;
    --space-870-max: 54.375rem;
    --space-870: clamp(var(--space-870-min), var(--space-870-pref), var(--space-870-max));
    --transition-quick: 0.15s ease;
    --transition-snappy: 0.2s ease;

    /* hardcode 변환 신규 토큰 (자동 추가) */
    --px-2: 2px;
    --px-3: 3px;
    --px-4: 4px;
    --px-6: 6px;
    --px-8: 8px;
    --px-10: 10px;
    --px-20: 20px;

    /* hardcode 변환 신규 토큰 (자동 추가) */
    --px-18: 18px;
    --px-100: 100px;

    /* 누락 토큰 추가 - min/pref/max 분리 */
    --card-padding-min: 1.875rem;
    --card-padding-pref: 2.5vw;
    --card-padding-max: 3.125rem;
    --card-padding: clamp(var(--card-padding-min), var(--card-padding-pref), var(--card-padding-max));

    --card-padding-lg-min: 2.5rem;
    --card-padding-lg-pref: 4vw;
    --card-padding-lg-max: 4.375rem;
    --card-padding-lg: clamp(var(--card-padding-lg-min), var(--card-padding-lg-pref), var(--card-padding-lg-max));

    --spacing-section-xl-min: 5rem;
    --spacing-section-xl-pref: 8vw;
    --spacing-section-xl-max: 8.75rem;
    --spacing-section-xl: clamp(var(--spacing-section-xl-min), var(--spacing-section-xl-pref), var(--spacing-section-xl-max));

    /* animation duration 토큰 */
    --anim-spin-slow: 4s linear infinite;

    /* 사용처 clamp 토큰화 (자동 추가) */
    --cv-cm-work-1-min: 1rem;
    --cv-cm-work-1-pref: 1.5vw;
    --cv-cm-work-1-max: 1.5rem;
    --cv-cm-work-1: clamp(var(--cv-cm-work-1-min), var(--cv-cm-work-1-pref), var(--cv-cm-work-1-max));
    --cv-cm-work-2-min: 1.75rem;
    --cv-cm-work-2-pref: 2.5vw;
    --cv-cm-work-2-max: 2.5rem;
    --cv-cm-work-2: clamp(var(--cv-cm-work-2-min), var(--cv-cm-work-2-pref), var(--cv-cm-work-2-max));
    --cv-cm-work-3-min: 2rem;
    --cv-cm-work-3-pref: 3vw;
    --cv-cm-work-3-max: 3rem;
    --cv-cm-work-3: clamp(var(--cv-cm-work-3-min), var(--cv-cm-work-3-pref), var(--cv-cm-work-3-max));
    --cv-cm-work-4-min: 0.75rem;
    --cv-cm-work-4-pref: 0.9vw;
    --cv-cm-work-4-max: 0.875rem;
    --cv-cm-work-4: clamp(var(--cv-cm-work-4-min), var(--cv-cm-work-4-pref), var(--cv-cm-work-4-max));
    --cv-cm-work-5-min: 1.25rem;
    --cv-cm-work-5-pref: 1.75vw;
    --cv-cm-work-5-max: 1.75rem;
    --cv-cm-work-5: clamp(var(--cv-cm-work-5-min), var(--cv-cm-work-5-pref), var(--cv-cm-work-5-max));
    --cv-cm-work-6-min: 1.25rem;
    --cv-cm-work-6-pref: 2vw;
    --cv-cm-work-6-max: 2.1875rem;
    --cv-cm-work-6: clamp(var(--cv-cm-work-6-min), var(--cv-cm-work-6-pref), var(--cv-cm-work-6-max));
    --cv-cm-work-7-min: 1.25rem;
    --cv-cm-work-7-pref: 2vw;
    --cv-cm-work-7-max: 2.5rem;
    --cv-cm-work-7: clamp(var(--cv-cm-work-7-min), var(--cv-cm-work-7-pref), var(--cv-cm-work-7-max));
    --cv-cm-work-8-min: 0.625rem;
    --cv-cm-work-8-pref: 1vw;
    --cv-cm-work-8-max: 1.25rem;
    --cv-cm-work-8: clamp(var(--cv-cm-work-8-min), var(--cv-cm-work-8-pref), var(--cv-cm-work-8-max));
    --cv-cm-work-9-min: 1.875rem;
    --cv-cm-work-9-pref: 3vw;
    --cv-cm-work-9-max: 3.75rem;
    --cv-cm-work-9: clamp(var(--cv-cm-work-9-min), var(--cv-cm-work-9-pref), var(--cv-cm-work-9-max));
    --cv-cm-work-10-min: 1.5625rem;
    --cv-cm-work-10-pref: 2.5vw;
    --cv-cm-work-10-max: 2.5rem;
    --cv-cm-work-10: clamp(var(--cv-cm-work-10-min), var(--cv-cm-work-10-pref), var(--cv-cm-work-10-max));
    --cv-cm-work-11-min: 1.25rem;
    --cv-cm-work-11-pref: 2vw;
    --cv-cm-work-11-max: 1.875rem;
    --cv-cm-work-11: clamp(var(--cv-cm-work-11-min), var(--cv-cm-work-11-pref), var(--cv-cm-work-11-max));
    --cv-cm-work-12-min: 10rem;
    --cv-cm-work-12-pref: 15vw;
    --cv-cm-work-12-max: 15rem;
    --cv-cm-work-12: clamp(var(--cv-cm-work-12-min), var(--cv-cm-work-12-pref), var(--cv-cm-work-12-max));
    --cv-cm-work-13-min: 0.8125rem;
    --cv-cm-work-13-pref: 0.85vw;
    --cv-cm-work-13-max: 0.9375rem;
    --cv-cm-work-13: clamp(var(--cv-cm-work-13-min), var(--cv-cm-work-13-pref), var(--cv-cm-work-13-max));
    --cv-cm-work-14-min: 0.9375rem;
    --cv-cm-work-14-pref: 1.5vw;
    --cv-cm-work-14-max: 1.5625rem;
    --cv-cm-work-14: clamp(var(--cv-cm-work-14-min), var(--cv-cm-work-14-pref), var(--cv-cm-work-14-max));
    --cv-cm-work-15-min: 0.5rem;
    --cv-cm-work-15-pref: 0.6vw;
    --cv-cm-work-15-max: 0.75rem;
    --cv-cm-work-15: clamp(var(--cv-cm-work-15-min), var(--cv-cm-work-15-pref), var(--cv-cm-work-15-max));
    --cv-cm-work-16-min: 0.75rem;
    --cv-cm-work-16-pref: 0.7vw;
    --cv-cm-work-16-max: 0.875rem;
    --cv-cm-work-16: clamp(var(--cv-cm-work-16-min), var(--cv-cm-work-16-pref), var(--cv-cm-work-16-max));
    --cv-cm-work-17-min: 0.25rem;
    --cv-cm-work-17-pref: 0.5vw;
    --cv-cm-work-17-max: 0.5rem;
    --cv-cm-work-17: clamp(var(--cv-cm-work-17-min), var(--cv-cm-work-17-pref), var(--cv-cm-work-17-max));
    --cv-cm-work-18-min: 1.875rem;
    --cv-cm-work-18-pref: 3vw;
    --cv-cm-work-18-max: 3.125rem;
    --cv-cm-work-18: clamp(var(--cv-cm-work-18-min), var(--cv-cm-work-18-pref), var(--cv-cm-work-18-max));
    --cv-cm-work-19-min: 1.5625rem;
    --cv-cm-work-19-pref: 3vw;
    --cv-cm-work-19-max: 3.125rem;
    --cv-cm-work-19: clamp(var(--cv-cm-work-19-min), var(--cv-cm-work-19-pref), var(--cv-cm-work-19-max));
    --cv-cm-work-20-min: 20rem;
    --cv-cm-work-20-pref: 32vw;
    --cv-cm-work-20-max: 32rem;
    --cv-cm-work-20: clamp(var(--cv-cm-work-20-min), var(--cv-cm-work-20-pref), var(--cv-cm-work-20-max));
    --cv-cm-work-21-min: 0.5rem;
    --cv-cm-work-21-pref: 0.6vw;
    --cv-cm-work-21-max: 0.875rem;
    --cv-cm-work-21: clamp(var(--cv-cm-work-21-min), var(--cv-cm-work-21-pref), var(--cv-cm-work-21-max));
    --cv-cm-work-22-min: 0.625rem;
    --cv-cm-work-22-pref: 1vw;
    --cv-cm-work-22-max: 1rem;
    --cv-cm-work-22: clamp(var(--cv-cm-work-22-min), var(--cv-cm-work-22-pref), var(--cv-cm-work-22-max));
    --cv-cm-work-23-min: 0.625rem;
    --cv-cm-work-23-pref: 1.5vw;
    --cv-cm-work-23-max: 1.25rem;
    --cv-cm-work-23: clamp(var(--cv-cm-work-23-min), var(--cv-cm-work-23-pref), var(--cv-cm-work-23-max));
    --cv-cm-work-24-min: 0.5rem;
    --cv-cm-work-24-pref: 0.8vw;
    --cv-cm-work-24-max: 0.875rem;
    --cv-cm-work-24: clamp(var(--cv-cm-work-24-min), var(--cv-cm-work-24-pref), var(--cv-cm-work-24-max));
    --cv-cm-work-25-min: 0.75rem;
    --cv-cm-work-25-pref: 1.2vw;
    --cv-cm-work-25-max: 1.125rem;
    --cv-cm-work-25: clamp(var(--cv-cm-work-25-min), var(--cv-cm-work-25-pref), var(--cv-cm-work-25-max));
    --cv-cm-work-26-min: 0.875rem;
    --cv-cm-work-26-pref: 0.9vw;
    --cv-cm-work-26-max: 1rem;
    --cv-cm-work-26: clamp(var(--cv-cm-work-26-min), var(--cv-cm-work-26-pref), var(--cv-cm-work-26-max));
    --cv-cm-work-27-min: 0.625rem;
    --cv-cm-work-27-pref: 1vw;
    --cv-cm-work-27-max: 0.9375rem;
    --cv-cm-work-27: clamp(var(--cv-cm-work-27-min), var(--cv-cm-work-27-pref), var(--cv-cm-work-27-max));
    --cv-cm-work-28-min: 28rem;
    --cv-cm-work-28-pref: 55vw;
    --cv-cm-work-28-max: 56rem;
    --cv-cm-work-28: clamp(var(--cv-cm-work-28-min), var(--cv-cm-work-28-pref), var(--cv-cm-work-28-max));
    --cv-cm-work-29-min: 0.75rem;
    --cv-cm-work-29-pref: 1vw;
    --cv-cm-work-29-max: 1rem;
    --cv-cm-work-29: clamp(var(--cv-cm-work-29-min), var(--cv-cm-work-29-pref), var(--cv-cm-work-29-max));
    --cv-cm-work-30-min: 10rem;
    --cv-cm-work-30-pref: 13vw;
    --cv-cm-work-30-max: 14rem;
    --cv-cm-work-30: clamp(var(--cv-cm-work-30-min), var(--cv-cm-work-30-pref), var(--cv-cm-work-30-max));
    --cv-cm-work-31-min: 0.5rem;
    --cv-cm-work-31-pref: 0.75vw;
    --cv-cm-work-31-max: 1rem;
    --cv-cm-work-31: clamp(var(--cv-cm-work-31-min), var(--cv-cm-work-31-pref), var(--cv-cm-work-31-max));
    --cv-cm-work-32-min: 8rem;
    --cv-cm-work-32-pref: 12vw;
    --cv-cm-work-32-max: 12rem;
    --cv-cm-work-32: clamp(var(--cv-cm-work-32-min), var(--cv-cm-work-32-pref), var(--cv-cm-work-32-max));
    --cv-cm-work-33-min: 0.875rem;
    --cv-cm-work-33-pref: 1.4vw;
    --cv-cm-work-33-max: 1.375rem;
    --cv-cm-work-33: clamp(var(--cv-cm-work-33-min), var(--cv-cm-work-33-pref), var(--cv-cm-work-33-max));
    --cv-cm-work-34-min: 1.25rem;
    --cv-cm-work-34-pref: 3vw;
    --cv-cm-work-34-max: 2.5rem;
    --cv-cm-work-34: clamp(var(--cv-cm-work-34-min), var(--cv-cm-work-34-pref), var(--cv-cm-work-34-max));
    --cv-cm-work-35-min: 1.5rem;
    --cv-cm-work-35-pref: 2vw;
    --cv-cm-work-35-max: 2rem;
    --cv-cm-work-35: clamp(var(--cv-cm-work-35-min), var(--cv-cm-work-35-pref), var(--cv-cm-work-35-max));
    --cv-cm-work-36-min: 0.75rem;
    --cv-cm-work-36-pref: 1.5vw;
    --cv-cm-work-36-max: 1.25rem;
    --cv-cm-work-36: clamp(var(--cv-cm-work-36-min), var(--cv-cm-work-36-pref), var(--cv-cm-work-36-max));
    --cv-cm-work-37-min: 2.5rem;
    --cv-cm-work-37-pref: 4vw;
    --cv-cm-work-37-max: 5rem;
    --cv-cm-work-37: clamp(var(--cv-cm-work-37-min), var(--cv-cm-work-37-pref), var(--cv-cm-work-37-max));
    --cv-cm-work-38-min: 1.25rem;
    --cv-cm-work-38-pref: 2vw;
    --cv-cm-work-38-max: 2rem;
    --cv-cm-work-38: clamp(var(--cv-cm-work-38-min), var(--cv-cm-work-38-pref), var(--cv-cm-work-38-max));
    --cv-cm-work-39-min: 12rem;
    --cv-cm-work-39-pref: 17vw;
    --cv-cm-work-39-max: 17rem;
    --cv-cm-work-39: clamp(var(--cv-cm-work-39-min), var(--cv-cm-work-39-pref), var(--cv-cm-work-39-max));
    --cv-cm-work-40-min: 0.75rem;
    --cv-cm-work-40-pref: 1.2vw;
    --cv-cm-work-40-max: 1.5rem;
    --cv-cm-work-40: clamp(var(--cv-cm-work-40-min), var(--cv-cm-work-40-pref), var(--cv-cm-work-40-max));
    --cv-cm-work-41-min: 0.75rem;
    --cv-cm-work-41-pref: 0.78vw;
    --cv-cm-work-41-max: 0.8125rem;
    --cv-cm-work-41: clamp(var(--cv-cm-work-41-min), var(--cv-cm-work-41-pref), var(--cv-cm-work-41-max));
    --cv-cm-work-42-min: 0.625rem;
    --cv-cm-work-42-pref: 1vw;
    --cv-cm-work-42-max: 0.875rem;
    --cv-cm-work-42: clamp(var(--cv-cm-work-42-min), var(--cv-cm-work-42-pref), var(--cv-cm-work-42-max));
    --cv-cm-work-43-min: 0.5rem;
    --cv-cm-work-43-pref: 0.7vw;
    --cv-cm-work-43-max: 0.625rem;
    --cv-cm-work-43: clamp(var(--cv-cm-work-43-min), var(--cv-cm-work-43-pref), var(--cv-cm-work-43-max));
    --cv-cm-work-44-min: 1.25rem;
    --cv-cm-work-44-pref: 1.8vw;
    --cv-cm-work-44-max: 1.75rem;
    --cv-cm-work-44: clamp(var(--cv-cm-work-44-min), var(--cv-cm-work-44-pref), var(--cv-cm-work-44-max));
    --cv-cm-work-45-min: 0.375rem;
    --cv-cm-work-45-pref: 0.6vw;
    --cv-cm-work-45-max: 0.5rem;
    --cv-cm-work-45: clamp(var(--cv-cm-work-45-min), var(--cv-cm-work-45-pref), var(--cv-cm-work-45-max));
    --cv-cm-work-46-min: 0.375rem;
    --cv-cm-work-46-pref: 0.5vw;
    --cv-cm-work-46-max: 0.4375rem;
    --cv-cm-work-46: clamp(var(--cv-cm-work-46-min), var(--cv-cm-work-46-pref), var(--cv-cm-work-46-max));
    --cv-cm-work-47-min: 7rem;
    --cv-cm-work-47-pref: 10vw;
    --cv-cm-work-47-max: 12rem;
    --cv-cm-work-47: clamp(var(--cv-cm-work-47-min), var(--cv-cm-work-47-pref), var(--cv-cm-work-47-max));
    --cv-cm-work-48-min: 3rem;
    --cv-cm-work-48-pref: 5vw;
    --cv-cm-work-48-max: 5rem;
    --cv-cm-work-48: clamp(var(--cv-cm-work-48-min), var(--cv-cm-work-48-pref), var(--cv-cm-work-48-max));
    --cv-cm-work-49-min: 1.125rem;
    --cv-cm-work-49-pref: 1.5vw;
    --cv-cm-work-49-max: 1.5rem;
    --cv-cm-work-49: clamp(var(--cv-cm-work-49-min), var(--cv-cm-work-49-pref), var(--cv-cm-work-49-max));
    --cv-cm-work-50-min: 0.875rem;
    --cv-cm-work-50-pref: 1vw;
    --cv-cm-work-50-max: 1rem;
    --cv-cm-work-50: clamp(var(--cv-cm-work-50-min), var(--cv-cm-work-50-pref), var(--cv-cm-work-50-max));
    --cv-cm-work-51-min: 0.75rem;
    --cv-cm-work-51-pref: 0.8vw;
    --cv-cm-work-51-max: 0.8125rem;
    --cv-cm-work-51: clamp(var(--cv-cm-work-51-min), var(--cv-cm-work-51-pref), var(--cv-cm-work-51-max));
    --cv-cm-work-52-min: 0.5rem;
    --cv-cm-work-52-pref: 0.8vw;
    --cv-cm-work-52-max: 0.75rem;
    --cv-cm-work-52: clamp(var(--cv-cm-work-52-min), var(--cv-cm-work-52-pref), var(--cv-cm-work-52-max));
    --cv-cm-work-53-min: 1.75rem;
    --cv-cm-work-53-pref: 3vw;
    --cv-cm-work-53-max: 3rem;
    --cv-cm-work-53: clamp(var(--cv-cm-work-53-min), var(--cv-cm-work-53-pref), var(--cv-cm-work-53-max));
    --cv-cm-work-54-min: 1.25rem;
    --cv-cm-work-54-pref: 3vw;
    --cv-cm-work-54-max: 3.125rem;
    --cv-cm-work-54: clamp(var(--cv-cm-work-54-min), var(--cv-cm-work-54-pref), var(--cv-cm-work-54-max));
    --cv-cm-work-55-min: 0.5rem;
    --cv-cm-work-55-pref: 1vw;
    --cv-cm-work-55-max: 0.9375rem;
    --cv-cm-work-55: clamp(var(--cv-cm-work-55-min), var(--cv-cm-work-55-pref), var(--cv-cm-work-55-max));
    --cv-cm-work-56-min: 0.75rem;
    --cv-cm-work-56-pref: 0.78vw;
    --cv-cm-work-56-max: 0.875rem;
    --cv-cm-work-56: clamp(var(--cv-cm-work-56-min), var(--cv-cm-work-56-pref), var(--cv-cm-work-56-max));
    --cv-cm-work-57-min: 0.375rem;
    --cv-cm-work-57-pref: 0.5vw;
    --cv-cm-work-57-max: 0.625rem;
    --cv-cm-work-57: clamp(var(--cv-cm-work-57-min), var(--cv-cm-work-57-pref), var(--cv-cm-work-57-max));
    --cv-cm-work-58-min: 1.5rem;
    --cv-cm-work-58-pref: 2.5vw;
    --cv-cm-work-58-max: 2.5rem;
    --cv-cm-work-58: clamp(var(--cv-cm-work-58-min), var(--cv-cm-work-58-pref), var(--cv-cm-work-58-max));
    --cv-cm-work-59-min: 10rem;
    --cv-cm-work-59-pref: 12vw;
    --cv-cm-work-59-max: 14rem;
    --cv-cm-work-59: clamp(var(--cv-cm-work-59-min), var(--cv-cm-work-59-pref), var(--cv-cm-work-59-max));
    --cv-cm-work-60-min: 0.9375rem;
    --cv-cm-work-60-pref: 2vw;
    --cv-cm-work-60-max: 1.5625rem;
    --cv-cm-work-60: clamp(var(--cv-cm-work-60-min), var(--cv-cm-work-60-pref), var(--cv-cm-work-60-max));
    --cv-cm-work-61-min: 2.75rem;
    --cv-cm-work-61-pref: 3vw;
    --cv-cm-work-61-max: 3.5rem;
    --cv-cm-work-61: clamp(var(--cv-cm-work-61-min), var(--cv-cm-work-61-pref), var(--cv-cm-work-61-max));
    --cv-cm-work-62-min: 18rem;
    --cv-cm-work-62-pref: 30vw;
    --cv-cm-work-62-max: 32rem;
    --cv-cm-work-62: clamp(var(--cv-cm-work-62-min), var(--cv-cm-work-62-pref), var(--cv-cm-work-62-max));
    --cv-cm-work-63-min: 0.375rem;
    --cv-cm-work-63-pref: 0.5vw;
    --cv-cm-work-63-max: 0.5rem;
    --cv-cm-work-63: clamp(var(--cv-cm-work-63-min), var(--cv-cm-work-63-pref), var(--cv-cm-work-63-max));
    --cv-cm-work-64-min: 6rem;
    --cv-cm-work-64-pref: 10vw;
    --cv-cm-work-64-max: 10rem;
    --cv-cm-work-64: clamp(var(--cv-cm-work-64-min), var(--cv-cm-work-64-pref), var(--cv-cm-work-64-max));
    --cv-cm-work-65-min: 1.125rem;
    --cv-cm-work-65-pref: 1.2vw;
    --cv-cm-work-65-max: 1.375rem;
    --cv-cm-work-65: clamp(var(--cv-cm-work-65-min), var(--cv-cm-work-65-pref), var(--cv-cm-work-65-max));
    --cv-cm-work-66-min: 0.75rem;
    --cv-cm-work-66-pref: 2vw;
    --cv-cm-work-66-max: 1rem;
    --cv-cm-work-66: clamp(var(--cv-cm-work-66-min), var(--cv-cm-work-66-pref), var(--cv-cm-work-66-max));
    --cv-cm-work-67-min: 1rem;
    --cv-cm-work-67-pref: 2vw;
    --cv-cm-work-67-max: 1.5rem;
    --cv-cm-work-67: clamp(var(--cv-cm-work-67-min), var(--cv-cm-work-67-pref), var(--cv-cm-work-67-max));
    --cv-cm-work-68-min: 1.25rem;
    --cv-cm-work-68-pref: 4vw;
    --cv-cm-work-68-max: 1.5rem;
    --cv-cm-work-68: clamp(var(--cv-cm-work-68-min), var(--cv-cm-work-68-pref), var(--cv-cm-work-68-max));
    --cv-cm-work-69-min: 0.75rem;
    --cv-cm-work-69-pref: 2vw;
    --cv-cm-work-69-max: 1.25rem;
    --cv-cm-work-69: clamp(var(--cv-cm-work-69-min), var(--cv-cm-work-69-pref), var(--cv-cm-work-69-max));
    --cv-cm-work-70-min: 0.875rem;
    --cv-cm-work-70-pref: 3.5vw;
    --cv-cm-work-70-max: 1.125rem;
    --cv-cm-work-70: clamp(var(--cv-cm-work-70-min), var(--cv-cm-work-70-pref), var(--cv-cm-work-70-max));
    --cv-cm-work-71-min: 0.6875rem;
    --cv-cm-work-71-pref: 2.5vw;
    --cv-cm-work-71-max: 0.8125rem;
    --cv-cm-work-71: clamp(var(--cv-cm-work-71-min), var(--cv-cm-work-71-pref), var(--cv-cm-work-71-max));
    --cv-cm-work-72-min: 0.625rem;
    --cv-cm-work-72-pref: 2.2vw;
    --cv-cm-work-72-max: 0.75rem;
    --cv-cm-work-72: clamp(var(--cv-cm-work-72-min), var(--cv-cm-work-72-pref), var(--cv-cm-work-72-max));

    /* 누락 토큰 추가 */
    --em-0-02: 0.02em;
    --em-0-05: 0.05em;
    --em-0-08: 0.08em;
    --em-0-1: 0.1em;
    --em-0-85: 0.85em;
    --em-0-92: 0.92em;
    --em-1: 1em;
    --em-1-083: 1.083em;
    --em-1-167: 1.167em;
    --em-1-2: 1.2em;
    --em-1-7: 1.7em;
    --em-1-8: 1.8em;
    --em-2: 2em;
    --px-1: 1px;
    --space-neg-125: -7.8125rem;
    --cmw-wrapper-pt-offset-min: 3rem;
    --cmw-wrapper-pt-offset-pref: 5vw;
    --cmw-wrapper-pt-offset-max: 6rem;
    --cmw-wrapper-pt-offset: clamp(var(--cmw-wrapper-pt-offset-min), var(--cmw-wrapper-pt-offset-pref), var(--cmw-wrapper-pt-offset-max));
    --cmw-dots-inline-min: 1.25rem;
    --cmw-dots-inline-pref: 2vw;
    --cmw-dots-inline-max: 2.1875rem;
    --cmw-dots-inline: clamp(var(--cmw-dots-inline-min), var(--cmw-dots-inline-pref), var(--cmw-dots-inline-max));
    /* line-height 토큰 */
    --lh-0: 0;
    --lh-13: 1.3;
    --lh-14: 1.4;
    --lh-16: 1.6;
    --lh-18: 1.8;
    --lh-19: 1.9;

    /* 자동 변수화 토큰 (fw/op/z) */
    --fw-300: 300;
    --fw-400: 400;
    --fw-500: 500;
    --fw-600: 600;
    --fw-700: 700;
    --op-0: 0;
    --op-03: 0.3;
    --op-035: 0.35;
    --op-05: 0.5;
    --op-055: 0.55;
    --op-085: 0.85;
    --op-1: 1;
    --z-1: 1;
    --z-10: 10;
    --z-2: 2;
    --z-3: 3;
    --z-5: 5;
    --z-90: 90;
    --z-999: 999;

}

/* --1 (대표 이미지 1장): flex 5분할 오버라이드 → 100% 너비 */
.raum-cmw-w_photo_grid.raum-cmw-w_photo_grid--1 > * {
    flex: 0 1 100%;
}
/* =========================
   CM실적 게시판 스킨
========================= */

#bo_cmwork {
    font-family: var(--font-KR-base);
    width: 100%;
    background-color: var(--background-color);
    padding-bottom: 0;
}


/* =========================
   상단 슬라이드 (서브 첫섹션 뷰포트 맞춤 + 포트폴리오 동형)
   - 섹션 높이 = 100svh - header - wrapper padding
   - slider = section - dots
   - overlay(name + year) 포함, dots 포함, prev/next 화살표 포함
   - fit 3분기(가로/세로/cover)는 JS에서 주입
========================= */
.raum-cmw-top_slide_section {
    --cmw-wrapper-pt: calc(var(--header-height) + var(--cmw-wrapper-pt-offset));
    --cmw-section-height: calc(100svh - var(--cmw-wrapper-pt));
    --cmw-dots-height: calc(0.5rem + var(--cmw-dots-inline) * 2);
    --cmw-slider-height: calc(var(--cmw-section-height) - var(--cmw-dots-height));
    background-color: var(--background-color);
    height: var(--cmw-section-height);
}

.raum-cmw-top_slider {
    position: relative;
    height: var(--cmw-slider-height);
}

.raum-cmw-top_slider_viewport {
    overflow: hidden;
    width: 100%;
    height: 100%;
}

.raum-cmw-top_slider_track {
    display: flex;
    height: 100%;
    transition: transform var(--transition-medium);
}

.raum-cmw-top_slider_slide {
    min-width: 100%;
    height: 100%;
    box-sizing: border-box;
}

.raum-cmw-top_slider_slide a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    height: 100%;
}

/* =========================
   이미지 맞춤 — 높이 기준 한 가지로 통일
   세로 사진 : 높이를 채우고 좌우에 여백이 생긴다
   가로 사진 : 높이를 채우고 좌우가 프레임 밖으로 잘린다
   .raum-cmw-slide_media 는 자막이 사진 폭에만 깔리도록 사진 크기를 그대로 갖는 래퍼다.
========================= */
.raum-cmw-slide_imgbox,
.raum-cmw-slide_media,
.raum-cmw-fitbox {
    overflow: hidden;
    height: 100%;
}

.raum-cmw-slide_imgbox {
    position: relative;
    display: block;
    width: 100%;
    line-height: var(--lh-0);
}

.raum-cmw-slide_media {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: fit-content;
}

/* media 래퍼는 사진 크기를 그대로 가지므로 사진은 흐름 그대로 둔다.
   fitbox 는 프레임이 더 크므로 사진을 중앙에 겹쳐 놓는다. */
.raum-cmw-slide_media > img {
    display: block;
    width: auto;
    height: 100%;
}

.raum-cmw-fitbox > img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: block;
    width: auto;
    height: 100%;
}

/* prev/next 화살표 (버튼만 노출) */
.raum-cmw-top_slider_arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: var(--z-2);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: var(--op-03);
    transition: opacity var(--transition-snappy);
}

.raum-cmw-top_slider_prev {
    left: calc(var(--padding-pc) * -1 - var(--cv-cm-work-1));
}

.raum-cmw-top_slider_next {
    right: calc(var(--padding-pc) * -1 - var(--cv-cm-work-1));
}

.raum-cmw-top_slider_arrow:hover {
    opacity: var(--op-1);
}

.raum-cmw-top_slider_arrow img {
    width: var(--cv-cm-work-1);
    height: auto;
    display: block;
}

/* 슬라이드 overlay (제목 + 연도) */
.raum-cmw-slide_overlay {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to top, rgba(var(--color-black-rgb), 0.5) 0%, transparent 100%);
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: var(--cv-cm-work-2) var(--cv-cm-work-3);
}

.raum-cmw-slide_name {
    color: var(--base-color-white);
    font-size: var(--cv-cm-work-1);
    font-weight: var(--fw-400);
    letter-spacing: var(--space-half);
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: var(--lh-14);
}

.raum-cmw-slide_more {
    color: rgba(var(--color-white-rgb), 0.7);
    font-size: var(--cv-cm-work-4);
    font-weight: var(--fw-400);
    letter-spacing: var(--space-half);
    margin-top: var(--cv-cm-work-5);
    min-height: var(--em-1-2);
    display: block;
    line-height: var(--lh-14);
}

/* 슬라이드 dots */
.raum-cmw-top_slider_dots {
    text-align: center;
    padding: var(--cv-cm-work-6) 0;
}

.raum-cmw-top_slider_dot {
    display: inline-block;
    width: var(--space-8);
    height: var(--space-8);
    border-radius: 50%;
    background: rgba(var(--color-black-rgb), 0.2);
    margin: 0 var(--space-5);
    cursor: pointer;
    transition: background var(--transition-snappy);
}

.raum-cmw-top_slider_dot:hover {
    background: rgba(var(--color-black-rgb), 0.4);
}

.raum-cmw-top_slider_dot.active {
    background: rgba(var(--color-black-rgb), 0.6);
}

/* 첫 화면 슬라이더 반응형 (디자인웍스 동형) — 모바일에서 100svh 점유 해제 + 화살표 숨김 */
@media (max-width: 860px) {
    .raum-cmw-top_slide_section {
        --cmw-section-height: clamp(16rem, 56vw + 4rem, 28rem);
    }

    .raum-cmw-top_slider_arrow {
        display: none;
    }

    .raum-cmw-slide_more {
        margin-top: 0;
    }
}

/* 슬라이드 없을 때 헤더 높이만큼 상단 여백 */
#bo_cmwork.raum-cmw-no_slider {
    padding-top: calc(var(--header-height) + var(--cv-cm-work-7));
}


/* =========================
   관리자 버튼
========================= */
#bo_cmwork #bo_btn_top {
    margin-bottom: var(--cv-cm-work-8);
}

#bo_cmwork #bo_btn_top:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

#bo_cmwork .btn_bo_user {
    float: right;
    margin: 0;
    padding: 0;
    list-style: none;
}

#bo_cmwork .btn_bo_user li {
    float: left;
    width: var(--space-40);
    text-align: center;
    margin-left: var(--space-5);
}

#bo_cmwork .btn_bo_user>li {
    position: relative;
}

#bo_cmwork .more_opt {
    display: none;
    position: absolute;
    top: var(--space-45);
    right: 0;
    background: var(--base-color-white);
    border: 1px solid var(--color-gray-270);
    z-index: var(--z-999);
}

#bo_cmwork .more_opt:before {
    content: "";
    position: absolute;
    top: -var(--space-8);
    right: var(--space-13);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 var(--px-6) var(--px-8) var(--px-6);
    border-color: transparent transparent var(--color-gray-270) transparent;
}

#bo_cmwork .more_opt:after {
    content: "";
    position: absolute;
    top: -var(--space-6);
    right: var(--space-13);
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 0 var(--px-6) var(--px-8) var(--px-6);
    border-color: transparent transparent var(--base-color-white) transparent;
}

#bo_cmwork .more_opt li {
    border-bottom: 1px solid var(--color-ui-f1f1f1);
    padding: var(--space-10);
    float: inherit;
    width: var(--space-90);
    margin: 0;
    color: var(--color-gray-420);
    text-align: left;
}

#bo_cmwork .more_opt li:last-child {
    border-bottom: 0;
}

#bo_cmwork .more_opt li button,
#bo_cmwork .more_opt li a {
    width: 100%;
    border: 0;
    background: var(--base-color-white);
    color: var(--color-gray-420);
}

#bo_cmwork .more_opt li:hover button {
    color: var(--base-color-black);
}

#bo_cmwork .more_opt li i {
    float: right;
    line-height: var(--space-20);
}


/* =========================
   CM실적 2열 카드 그리드
========================= */
.raum-cmw-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0 var(--cv-cm-work-9);
}

.raum-cmw-grid > .raum-cmw-card {
    flex: 0 1 calc(50% - var(--cv-cm-work-9) / 2);
    min-width: 0;
}

.raum-cmw-card {
    position: relative;
    border-bottom: 1px solid var(--color-hex-e0e0e0);
    padding: var(--cv-cm-work-10) 0;
}

.raum-cmw-card_link {
    display: flex;
    text-decoration: none;
    color: inherit;
    gap: var(--cv-cm-work-11);
    align-items: center;
}

.raum-cmw-card_link:hover {
    text-decoration: none;
}

/* 좌측: 이미지 */
.raum-cmw-card_left {
    flex-shrink: 0;
    width: 45%;
}

.raum-cmw-card_img {
    width: 100%;
    height: var(--cv-cm-work-12);
    overflow: hidden;
}

.raum-cmw-card_img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-base);
}

.raum-cmw-card_link:hover .raum-cmw-card_img img {
    transform: scale(1.05);
}

.raum-cmw-card_noimg {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hex-e0ddd9);
}

.raum-cmw-card_noimg span {
    font-size: var(--cv-cm-work-13);
    color: var(--color-gray-400);
    text-transform: uppercase;
}

/* 우측: 텍스트 */
.raum-cmw-card_right {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
}

.raum-cmw-card_text {
    margin-bottom: var(--cv-cm-work-14);
}

.raum-cmw-card_title {
    font-size: var(--text-font-title-size);
    line-height: var(--text-font-title-size-line);
    font-weight: var(--fw-600);
    color: var(--base-color-black);
    margin: 0 0 var(--cv-cm-work-15);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.raum-cmw-card_desc {
    font-size: var(--text-font-size-s);
    line-height: var(--lh-16);
    font-weight: var(--fw-300);
    color: var(--background-color-gray);
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 메타 정보: 사업명, 발주처, 감리자 */
.raum-cmw-card_meta {
    margin-bottom: var(--cv-cm-work-14);
}

.raum-cmw-card_meta_item {
    font-size: var(--text-font-size-s);
    line-height: var(--lh-18);
    color: var(--base-color-black);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.raum-cmw-card_meta_label {
    font-weight: var(--fw-400);
}

.raum-cmw-card_meta_value {
    font-weight: var(--fw-300);
}

/* VIEW MORE 버튼 */
.raum-cmw-card_more {
    margin-top: auto;
}

.raum-cmw-card_more_btn {
    display: inline-block;
    font-family: var(--font-KR-base);
    font-size: var(--cv-cm-work-16);
    font-weight: var(--fw-600);
    color: var(--base-color-black);
    letter-spacing: var(--space-1);
    text-transform: uppercase;
    position: relative;
    padding-bottom: var(--space-2);
    transition: color var(--transition-fast);
}

.raum-cmw-card_more_btn::after {
    display: none;
}

.raum-cmw-card_link:hover .raum-cmw-card_more_btn {
    color: var(--signature-color);
}

.raum-cmw-card_link:hover .raum-cmw-card_more_btn::after {
    background-color: var(--signature-color);
}


/* 체크박스 */
.raum-cmw-chk {
    position: absolute;
    top: var(--space-10);
    left: var(--space-10);
    z-index: var(--z-3);
}

.raum-cmw-chk.chk_box input[type="checkbox"] + label {
    padding-left: 0;
    cursor: pointer;
}

.raum-cmw-chk.chk_box input[type="checkbox"] + label span {
    top: 0;
    left: 0;
    width: var(--space-24);
    height: var(--space-24);
    border-radius: 50%;
    border: none;
    background: rgba(var(--color-white-rgb), 0.5);
    backdrop-filter: blur(var(--px-4));
    -webkit-backdrop-filter: blur(var(--px-4));
    box-shadow: 0 var(--px-2) var(--px-6) rgba(var(--color-black-rgb), 0.2);
    transition: background var(--transition-snappy);
    cursor: pointer;
}

.raum-cmw-chk.chk_box input[type="checkbox"] + label span::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--space-8);
    height: var(--space-8);
    border-radius: 50%;
    background: var(--signature-color);
    transform: translate(-50%, -50%) scale(0);
    opacity: var(--op-0);
    transition: transform var(--transition-snappy), opacity var(--transition-quick);
}

.raum-cmw-chk.chk_box input[type="checkbox"]:checked + label span {
    background: rgba(var(--color-white-rgb), 0.7);
    border: none;
    border-radius: 50%;
}

.raum-cmw-chk.chk_box input[type="checkbox"]:checked + label span::after {
    transform: translate(-50%, -50%) scale(1);
    opacity: var(--op-1);
}

/* 빈 목록 */
.raum-cmw-empty {
    padding: var(--space-100) 0;
    text-align: center;
    color: var(--color-gray-400);
    font-size: var(--em-1);
}


/* =========================
   체크박스 공통
========================= */
.selec_chk {
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    opacity: var(--op-0);
    outline: 0;
    z-index: -1;
    overflow: hidden;
}

.chk_box {
    position: relative;
}

.chk_box input[type="checkbox"] + label {
    position: relative;
    display: inline-block;
    padding-left: 0;
    cursor: pointer;
}

.chk_box input[type="checkbox"] + label span {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--space-24);
    height: var(--space-24);
    display: block;
    border-radius: 50%;
    border: none;
    background: rgba(var(--color-white-rgb), 0.5);
    backdrop-filter: blur(var(--px-4));
    -webkit-backdrop-filter: blur(var(--px-4));
    box-shadow: 0 var(--px-2) var(--px-6) rgba(var(--color-black-rgb), 0.2);
    transition: background var(--transition-snappy);
    cursor: pointer;
}

.chk_box input[type="checkbox"] + label span::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--space-8);
    height: var(--space-8);
    border-radius: 50%;
    background: var(--signature-color);
    transform: translate(-50%, -50%) scale(0);
    opacity: var(--op-0);
    transition: transform var(--transition-snappy), opacity var(--transition-quick);
}

.chk_box input[type="checkbox"]:checked + label span {
    background: rgba(var(--color-white-rgb), 0.7);
    border: none;
    border-radius: 50%;
}

.chk_box input[type="checkbox"]:checked + label span::after {
    transform: translate(-50%, -50%) scale(1);
    opacity: var(--op-1);
}


/* =========================
   검색
========================= */
.bo_sch_wrap {
    display: none;
    width: 100%;
    height: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: var(--z-999);
}

.bo_sch {
    position: absolute;
    top: 50%;
    left: 50%;
    background: var(--base-color-white);
    text-align: left;
    width: var(--space-330);
    max-height: var(--space-300);
    margin-left: var(--space-neg-125);
    margin-top: -var(--space-180);
    overflow-y: auto;
    border-radius: var(--px-3);
    border: 1px solid var(--color-ui-dde7e9);
    box-shadow: 1px 1px var(--px-18) rgba(var(--color-black-rgb), 0.2);
}

.bo_sch:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

.bo_sch h3 {
    padding: var(--space-15);
    border-bottom: 1px solid var(--color-ui-line);
}

.bo_sch form {
    padding: var(--space-15);
    display: block;
}

.bo_sch select {
    border: 1px solid var(--color-ui-input-bg);
    width: 100%;
    height: var(--space-40);
    border-radius: var(--px-2);
    box-shadow: inset 0 1px 1px rgba(var(--color-black-rgb), .075);
}

.bo_sch .sch_bar {
    display: inline-block;
    width: 100%;
    clear: both;
    margin-top: var(--space-15);
    border: 1px solid var(--color-ui-input-bg);
    border-radius: var(--px-2);
    box-shadow: inset 0 1px 1px rgba(var(--color-black-rgb), .075);
}

.bo_sch .sch_input {
    width: var(--space-250);
    height: var(--space-38);
    border: 0;
    padding: 0;
    background-color: transparent;
    float: left;
}

.bo_sch .sch_btn {
    height: var(--space-38);
    float: right;
    color: var(--color-gray-440);
    background: none;
    border: 0;
    width: var(--space-40);
    font-size: var(--space-15);
}

.bo_sch .bo_sch_cls {
    position: absolute;
    right: 0;
    top: 0;
    color: var(--color-gray-280);
    border: 0;
    padding: var(--space-12) var(--space-15);
    font-size: var(--space-16);
    background: var(--base-color-white);
}

.bo_sch_bg {
    background: rgba(var(--color-black-rgb), 0.1);
    width: 100%;
    height: 100%;
}


/* =========================
   게시판 읽기
========================= */
#bo_v {
    margin-bottom: var(--space-20);
    background: var(--base-color-white);
    box-sizing: border-box;
}

#bo_v_title .bo_v_cate {
    display: inline-block;
    line-height: var(--space-20);
    background: var(--color-ui-e2eaf6);
    color: var(--color-accent-blue);
    padding: 0 var(--space-10);
    border-radius: var(--px-3);
}

#bo_v_title .bo_v_tit {
    display: block;
    font-size: var(--em-2);
    margin: var(--space-5) 0 0;
    word-break: break-all;
}

#bo_v_info {
    margin: 0;
    border-bottom: 1px solid var(--color-ui-f1f1f1);
    color: var(--color-gray-500);
}

#bo_v_info:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

#bo_v_info h2 {
    position: absolute;
    font-size: 0;
    line-height: var(--lh-0);
    overflow: hidden;
}

#bo_v_info .profile_info {
    margin: var(--space-20) 0 var(--space-10);
    display: inline-block;
    float: left;
}

#bo_v_info .profile_info .profile_info_ct {
    float: left;
    padding: var(--space-5) 0;
    line-height: var(--space-18);
}

#bo_v_info strong {
    display: inline-block;
    margin: 0 var(--space-10) 0 0;
    font-weight: normal;
}

#bo_v_info .sv_member,
#bo_v_info .sv_guest,
#bo_v_info .member,
#bo_v_info .guest {
    font-weight: bold;
}

#bo_v_info .profile_img {
    display: none;
}

#bo_v_info .sv_member {
    color: var(--base-color-black);
}

#bo_v_info .if_date {
    margin: 0;
    color: var(--color-gray-500);
}

#bo_v_con {
    margin: var(--space-10) 0 var(--space-30);
    width: 100%;
    line-height: var(--em-1-7);
    height: var(--space-200);
    word-break: break-all;
    overflow: hidden;
}

#bo_v_con img {
    max-width: 100%;
    height: auto;
}

.bo_v_nb {
    margin: var(--space-20) 0;
    position: relative;
    clear: both;
    text-align: left;
}

.bo_v_nb:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

.bo_v_nb li {
    border-top: 1px solid var(--color-ui-f1f1f1);
    padding: var(--space-13);
}

.bo_v_nb li:last-child {
    border-bottom: 1px solid var(--color-ui-f1f1f1);
}

.bo_v_nb li:hover {
    background: var(--color-ui-light-bg-alt);
}

.bo_v_nb li i {
    font-size: var(--space-13);
    color: var(--color-gray-290);
}

.bo_v_nb li .nb_tit {
    display: inline-block;
    padding-right: var(--space-20);
    color: var(--color-gray-290);
}

.bo_v_nb li .nb_date {
    float: right;
    color: var(--color-gray-290);
}


/* =========================
   글쓰기
========================= */
.write_div .chk_box input[type="checkbox"] + label {
    padding-left: 0;
}

.write_div .chk_box input[type="checkbox"] + label span {
    top: 0;
    left: 0;
    width: var(--space-24);
    height: var(--space-24);
}

#bo_w .write_div {
    margin: var(--space-10) 0;
    position: relative;
}

#bo_w .write_div:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

#bo_w .bo_w_info:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

#bo_w .bo_w_info .frm_input {
    float: left;
    margin-bottom: var(--cv-cm-work-17);
}

#bo_w .bo_w_link label {
    position: absolute;
    top: var(--space-1);
    left: var(--space-1);
    border-radius: var(--px-3) 0 0 var(--px-3);
    height: var(--space-38);
    line-height: var(--space-38);
    width: var(--space-40);
    font-size: var(--em-1-2);
    text-align: center;
    color: var(--color-gray-310);
}

#bo_w .bo_w_link .frm_input {
    padding-left: var(--space-50);
}

#bo_w .bo_w_flie .lb_icon {
    position: absolute;
    top: 0;
    left: 0;
    border-radius: var(--px-3) 0 0 var(--px-3);
    height: var(--space-38);
    line-height: var(--space-38);
    width: var(--space-40);
    font-size: var(--em-1-2);
    text-align: center;
    color: var(--color-gray-310);
}

#bo_w .bo_w_flie .frm_file {
    padding-left: var(--space-50);
    margin-top: var(--space-3);
}

#bo_w .bo_w_flie .file_wr {
    position: relative;
    border: 1px solid var(--color-gray-350);
    background: var(--base-color-white);
    color: var(--base-color-black);
    vertical-align: middle;
    border-radius: var(--px-3);
    padding: var(--space-5);
    height: var(--space-40);
    margin: 0;
}

#bo_w .bo_w_flie .frm_input {
    margin: var(--space-10) 0 0;
}

#bo_w .bo_w_flie .file_del {
    position: absolute;
    top: var(--space-10);
    right: var(--space-10);
    font-size: var(--em-0-92);
    color: var(--color-hex-7d7d7d);
}

#bo_w .btn_submit {
    padding: 0 var(--space-20);
    font-size: var(--em-1-167);
}

#bo_w .btn_cancel {
    border-radius: var(--px-3);
    font-size: var(--em-1-167);
}


/* =========================
   댓글
========================= */
.cmt_btn {
    width: 100%;
    text-align: left;
    border: 0;
    border-bottom: 1px solid var(--color-ui-f0f0f0);
    background: var(--base-color-white);
    font-weight: bold;
    margin: var(--space-30) 0 0;
    padding: 0 0 var(--space-15);
}

.cmt_btn span.total {
    position: relative;
    display: inline-block;
    margin-right: var(--space-5);
    font-size: var(--em-1);
    color: var(--color-accent-blue);
}

.cmt_btn span.total:after {
    position: absolute;
    bottom: -var(--space-17);
    left: 0;
    display: inline-block;
    background: var(--color-accent-blue);
    content: "";
    width: 100%;
    height: var(--space-2);
}

.cmt_btn b {
    font-size: var(--em-1-2);
    color: var(--base-color-black);
}

#bo_vc h2 {
    position: absolute;
    font-size: 0;
    line-height: var(--lh-0);
    overflow: hidden;
}

#bo_vc article {
    margin: var(--space-20) 0;
    position: relative;
    border-bottom: 1px solid var(--color-ui-f0f0f0);
}

#bo_vc article:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

#bo_vc article .cm_wrap {
    float: left;
    max-width: var(--space-870);
    width: 90%;
}

#bo_vc header {
    position: relative;
    width: 100%;
}

#bo_vc header:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

#bo_vc .member,
#bo_vc .guest,
#bo_vc .sv_member,
#bo_vc .sv_guest {
    font-weight: bold;
}

.bo_vc_hdinfo {
    color: var(--color-gray-380);
}

#bo_vc .cmt_contents {
    line-height: var(--em-1-8);
    padding: 0 0 var(--space-20);
}

#bo_vc_empty {
    margin: 0;
    padding: var(--space-80) 0;
    color: var(--color-gray-380);
    text-align: center;
}

.bo_vc_w {
    position: relative;
    margin: var(--space-10) 0;
    display: block;
}

.bo_vc_w:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

.bo_vc_w h2 {
    position: absolute;
    font-size: 0;
    line-height: var(--lh-0);
    overflow: hidden;
}

.bo_vc_w textarea {
    border: 1px solid var(--color-gray-350);
    background: var(--base-color-white);
    color: var(--base-color-black);
    vertical-align: middle;
    border-radius: var(--px-3);
    padding: var(--space-5);
    width: 100%;
    height: var(--space-120);
    box-shadow: inset 0 1px var(--px-2) rgba(var(--color-black-rgb), 0.1);
}

.bo_vc_w_info {
    margin: var(--space-10) 0;
    float: left;
}

.bo_vc_w_info:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

.bo_vc_w_info .frm_input {
    float: left;
    margin-right: var(--space-5);
}

.bo_vc_w .btn_confirm {
    clear: both;
    margin-top: var(--space-10);
}

.bo_vc_w .btn_submit {
    height: var(--space-45);
    padding: 0 var(--space-20);
    border-radius: var(--px-3);
    font-weight: bold;
    font-size: var(--em-1-083);
}


/* =========================
   CM실적 View - 첫 섹션
========================= */

/* 슬라이드 히어로 */
.raum-cmw-view_hero {
    margin-bottom: var(--cv-cm-work-18);
}

/* 프로젝트 정보 레이아웃: 좌 이미지 + 우 테이블 */
.raum-cmw-view_info_section {
    padding: var(--cv-cm-work-9) 0;
}

.raum-cmw-view_info_layout {
    display: flex;
    gap: var(--cv-cm-work-19);
    align-items: flex-start;
}

.raum-cmw-view_info_img {
    flex-shrink: 0;
    width: 45%;
}

.raum-cmw-view_info_img img {
    width: 100%;
    height: var(--cv-cm-work-20);
    display: block;
    object-fit: cover;
}

.raum-cmw-view_noimg {
    width: 100%;
    height: var(--cv-cm-work-12);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-ui-line);
    color: var(--color-gray-400);
    font-size: var(--cv-cm-work-13);
}

.raum-cmw-view_info_detail {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.raum-cmw-view_title {
    font-size: var(--text-font-title-size);
    line-height: var(--text-font-title-size-line);
    font-weight: var(--fw-700);
    color: var(--base-color-black);
    margin: 0 0 var(--cv-cm-work-21);
    word-break: keep-all;
}

.raum-cmw-view_subtitle {
    font-size: var(--text-font-size-s);
    line-height: var(--lh-16);
    font-weight: var(--fw-400);
    color: var(--color-gray-500);
    margin: 0 0 var(--cv-cm-work-6);
    word-break: keep-all;
}

/* 메타 테이블 */
.raum-cmw-view_meta_table {
    width: 100%;
    border-collapse: collapse;
}

.raum-cmw-view_meta_table tr {
    border-bottom: 1px solid var(--color-ui-line);
}

.raum-cmw-view_meta_table tr:first-child {
    border-top: 1px solid var(--color-ui-line);
}

.raum-cmw-view_meta_table th {
    text-align: left;
    font-size: var(--text-font-size-s);
    font-weight: var(--fw-400);
    color: var(--color-gray-500);
    padding: var(--cv-cm-work-22) var(--cv-cm-work-23);
    white-space: nowrap;
    width: var(--space-80);
    vertical-align: top;
}

.raum-cmw-view_meta_table td {
    font-size: var(--text-font-size-s);
    font-weight: var(--fw-600);
    color: var(--base-color-black);
    padding: var(--cv-cm-work-22) var(--cv-cm-work-23);
    word-break: keep-all;
}


/* =========================
   CM실적 Write - 첫 섹션
========================= */

#raum-cmw-write .raum-cmw-w_top_chk_wrap {
    margin-top: var(--cv-cm-work-7);
}

.raum-cmw-w_subtitle_input {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--color-hex-e0e0e0);
    font-family: var(--font-KR-base);
    font-size: var(--text-font-size-s);
    font-weight: var(--fw-300);
    color: var(--background-color-gray);
    padding: var(--cv-cm-work-24) 0;
    margin-bottom: var(--cv-cm-work-8);
    background: transparent;
    resize: none;
    outline: none;
    line-height: var(--lh-16);
}

.raum-cmw-w_subtitle_input::placeholder {
    color: var(--color-gray-400);
}

/* 정보 입력 레이아웃: 좌 이미지 + 우 테이블 */
.raum-cmw-w_info_section {
    padding: var(--cv-cm-work-7) 0;
}

.raum-cmw-w_info_layout {
    display: flex;
    gap: var(--cv-cm-work-19);
    align-items: flex-start;
}

.raum-cmw-w_info_img {
    flex-shrink: 0;
    width: 45%;
}

.raum-cmw-w_info_img .raum-cmw-w_img_area {
    height: var(--cv-cm-work-12);
}

.raum-cmw-w_info_img .raum-cmw-w_img_label {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.raum-cmw-w_info_detail {
    flex: 1;
    min-width: 0;
}

/* 메타 입력 테이블 */
.raum-cmw-w_meta_table {
    width: 100%;
    border-collapse: collapse;
}

.raum-cmw-w_meta_table tr {
    border-bottom: 1px solid var(--color-ui-line);
}

.raum-cmw-w_meta_table tr:first-child {
    border-top: 1px solid var(--color-ui-line);
}

.raum-cmw-w_meta_table th {
    text-align: left;
    font-size: var(--text-font-size-s);
    font-weight: var(--fw-500);
    color: var(--base-color-black);
    padding: var(--cv-cm-work-25) var(--cv-cm-work-23);
    white-space: nowrap;
    width: var(--space-80);
    vertical-align: middle;
}

.raum-cmw-w_meta_table td {
    padding: var(--cv-cm-work-25) var(--cv-cm-work-23);
}

.raum-cmw-w_meta_input {
    width: 100%;
    border: 0;
    border-bottom: 1px dashed var(--color-gray-210);
    font-family: var(--font-KR-base);
    font-size: var(--text-font-size-s);
    font-weight: var(--fw-300);
    color: var(--color-gray-900);
    padding: var(--space-6) 0;
    background: transparent;
    outline: none;
}

.raum-cmw-w_meta_input::placeholder {
    color: var(--color-gray-400);
}

.raum-cmw-w_meta_input:focus {
    border-bottom-color: var(--signature-color);
    border-bottom-style: solid;
}


/* =========================
   CM실적 View - 풀 너비 이미지 갤러리
========================= */
/* ========== 외부/내부/Diagram 섹션 슬라이더 (포트폴리오 동형) ========== */
.raum-cmw-photo_section {
    padding: var(--cv-cm-work-9) 0;
}

.raum-cmw-photo_section_title {
    font-family: var(--font-KR-base);
    font-size: var(--cv-cm-work-26);
    font-weight: var(--fw-400);
    color: var(--base-color-black);
    padding-bottom: var(--cv-cm-work-27);
    border-bottom: var(--px-2) solid var(--base-color-black);
    margin: 0 0 var(--cv-cm-work-14);
}

#raum-cmw-view .raum-cmw-photo_main_wrap {
    position: relative;
    display: block;
    width: 100%;
    height: var(--cv-cm-work-28);
}

#raum-cmw-view .raum-cmw-photo_main_viewport {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%;
    display: block;
}

#raum-cmw-view .raum-cmw-photo_main_track {
    display: flex;
    flex-wrap: nowrap;
    width: 100%;
    height: 100%;
    transition: transform var(--transition-medium);
}

#raum-cmw-view .raum-cmw-photo_main_slide {
    flex: 0 0 100%;
    min-width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

#raum-cmw-view .raum-cmw-photo_main_slide img {
    display: block;
    /* width/height/background: JS 3분기 주입 */
}

#raum-cmw-view .raum-cmw-photo_arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: var(--z-5);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gray-400);
    opacity: var(--op-1);
    transition: color var(--transition-snappy);
}

@media (hover: hover) {
    #raum-cmw-view .raum-cmw-photo_arrow:hover {
        color: var(--base-color-black);
    }
}

#raum-cmw-view .raum-cmw-photo_arrow svg {
    width: var(--cv-cm-work-2);
    height: auto;
    display: block;
}

#raum-cmw-view .raum-cmw-photo_prev {
    left: calc(var(--padding-pc) * -1 - var(--cv-cm-work-17));
}

#raum-cmw-view .raum-cmw-photo_next {
    right: calc(var(--padding-pc) * -1 - var(--cv-cm-work-17));
}

.raum-cmw-photo_thumbs {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    margin-top: var(--cv-cm-work-1);
    padding: var(--cv-cm-work-1) 0 var(--cv-cm-work-29);
    border-top: 1px solid var(--base-color-black);
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    min-width: 0;
    cursor: grab;
    scrollbar-width: thin;
    scrollbar-color: rgba(var(--color-black-rgb), 0.3) rgba(var(--color-black-rgb), 0.05);
}

.raum-cmw-photo_thumbs.dragging {
    cursor: grabbing;
    user-select: none;
    scroll-behavior: auto;
    scroll-snap-type: none;
}

.raum-cmw-photo_thumbs::-webkit-scrollbar {
    height: var(--px-8);
    display: block;
}

.raum-cmw-photo_thumbs::-webkit-scrollbar-track {
    background: rgba(var(--color-black-rgb), 0.05);
    border-radius: var(--px-4);
}

.raum-cmw-photo_thumbs::-webkit-scrollbar-thumb {
    background: rgba(var(--color-black-rgb), 0.3);
    border-radius: var(--px-4);
}

.raum-cmw-photo_thumbs::-webkit-scrollbar-thumb:hover {
    background: rgba(var(--color-black-rgb), 0.5);
}

.raum-cmw-photo_thumb {
    flex: 0 0 20%;
    box-sizing: border-box;
    height: var(--cv-cm-work-30);
    cursor: pointer;
    opacity: var(--op-055);
    transition: opacity var(--transition-snappy);
    overflow: hidden;
    padding: 0 var(--cv-cm-work-31);
    border-left: 1px solid var(--base-color-black);
    border-right: 1px solid var(--base-color-black);
    background-origin: content-box;
    background-clip: content-box;
    display: flex;
    align-items: center;
    justify-content: center;
    scroll-snap-align: start;
    outline: none;
}

.raum-cmw-photo_thumb + .raum-cmw-photo_thumb {
    border-left: none;
}

.raum-cmw-photo_thumb.active {
    opacity: var(--op-1);
}

@media (hover: hover) {
    .raum-cmw-photo_thumb:hover {
        opacity: var(--op-085);
    }
}

/* 썸네일은 좌우 padding 을 살려야 해서 absolute 대신 flex 중앙 정렬로 맞춘다.
   맞춤 기준은 .raum-cmw-fitbox 와 같다 — 높이를 채우고 세로 사진은 좌우에 여백이 생긴다. */
.raum-cmw-photo_thumb img {
    display: block;
    width: auto;
    height: 100%;
    flex: 0 0 auto;
    pointer-events: none;
    -webkit-user-drag: none;
    user-select: none;
}

.raum-cmw-photo_thumb:focus,
.raum-cmw-photo_thumb:focus-visible {
    outline: none;
}


/* =========================
   CM실적 Write - 갤러리 이미지 업로드
========================= */
.raum-cmw-w_gallery_section {
    padding: var(--cv-cm-work-7) 0;
}

.raum-cmw-w_gallery_hint {
    font-size: var(--text-font-size-s);
    color: var(--color-gray-400);
    margin: 0 0 var(--cv-cm-work-14);
}

.raum-cmw-w_gallery_list {
    display: flex;
    flex-direction: column;
    gap: var(--cv-cm-work-14);
}

.raum-cmw-w_gallery_item {
    position: relative;
}

.raum-cmw-w_gallery_item .raum-cmw-w_img_area {
    height: var(--cv-cm-work-32);
}

.raum-cmw-w_gallery_item .raum-cmw-w_img_label {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.raum-cmw-w_gallery_del_btn {
    position: absolute;
    top: var(--space-10);
    right: var(--space-10);
    width: var(--space-32);
    height: var(--space-32);
    border-radius: 50%;
    border: none;
    background: rgba(var(--color-black-rgb), 0.5);
    color: var(--base-color-white);
    font-size: var(--space-14);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--transition-snappy);
    z-index: var(--z-2);
}

.raum-cmw-w_gallery_del_btn:hover {
    background: rgba(200, 0, 0, 0.7);
}

.raum-cmw-w_gallery_add_btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    width: 100%;
    padding: var(--cv-cm-work-33);
    margin-top: var(--cv-cm-work-14);
    border: var(--px-2) dashed var(--color-hex-d0d0d0);
    background: transparent;
    color: var(--color-gray-500);
    font-family: var(--font-KR-base);
    font-size: var(--text-font-size-s);
    font-weight: var(--fw-400);
    cursor: pointer;
    transition: border-color var(--transition-snappy), color var(--transition-snappy);
}

.raum-cmw-w_gallery_add_btn:hover {
    border-color: var(--signature-color);
    color: var(--signature-color);
}

.raum-cmw-w_gallery_add_icon {
    width: var(--space-16);
    height: var(--space-16);
    opacity: var(--op-05);
}

.raum-cmw-w_gallery_add_btn:hover .raum-cmw-w_gallery_add_icon {
    opacity: var(--op-1);
}


/* =========================
   맨 위로 스크롤 버튼
========================= */
.raum-cmw-scroll_top {
    position: fixed;
    bottom: var(--cv-cm-work-34);
    right: var(--cv-cm-work-34);
    width: var(--space-48);
    height: var(--space-48);
    border-radius: 50%;
    border: 1px solid var(--color-hex-d0d0d0);
    background: rgba(var(--color-white-rgb), 0.95);
    color: var(--color-gray-900);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: var(--z-90);
    opacity: var(--op-0);
    visibility: hidden;
    transform: translateY(var(--px-10));
    transition: opacity var(--transition-fast), visibility var(--transition-fast), transform var(--transition-fast), background var(--transition-snappy);
    box-shadow: 0 var(--px-2) var(--px-8) rgba(var(--color-black-rgb), 0.1);
}

.raum-cmw-scroll_top.visible {
    opacity: var(--op-1);
    visibility: visible;
    transform: translateY(0);
}

.raum-cmw-scroll_top:hover {
    background: var(--base-color-black);
    color: var(--base-color-white);
    border-color: var(--base-color-black);
}


/* =========================
   View 첫 화면 (슬라이더 + 타이틀, 100svh 뷰포트 맞춤)
========================= */
#raum-cmw-view {
    position: relative;
    --cmw-view-wrapper-pt: calc(var(--header-height) + var(--cmw-wrapper-pt-offset));
    --cmw-view-section-height: calc(100svh - var(--cmw-view-wrapper-pt));
    --cmw-view-dots-height: calc(0.5rem + var(--cmw-dots-inline) * 2);
    --cmw-view-hero-height: calc(var(--cmw-view-section-height) - var(--cmw-view-dots-height));
}

.raum-cmw-view_first_screen {
    height: var(--cmw-view-section-height);
    display: flex;
    flex-direction: column;
}

.raum-cmw-view_hero_section {
    position: relative;
    flex: 1 1 auto;
    height: var(--cmw-view-hero-height);
}

.raum-cmw-view_hero_section .raum-cmw-slider {
    height: 100%;
}

.raum-cmw-view_first_screen > .raum-cmw-slider_dots {
    height: var(--cmw-view-dots-height);
    padding: var(--cv-cm-work-6) 0;
}

.raum-cmw-view_title_section {
    flex: 0 0 auto;
    padding: var(--cmw-view-title-pt) 0 var(--cmw-view-title-pb);
}

.raum-cmw-view_title_section .raum-cmw-view_cate {
    display: inline-block;
    font-size: var(--cv-cm-work-4);
    color: var(--color-gray-500);
    margin-bottom: var(--space-6);
    letter-spacing: var(--space-half);
}

.raum-cmw-view_title_section .raum-cmw-view_title {
    margin: 0;
    line-height: var(--lh-13);
    font-size: var(--cv-cm-work-35);
    font-weight: var(--fw-700);
    color: var(--base-color-black);
    word-break: keep-all;
}

/* 슬라이더 */
.raum-cmw-slider {
    position: relative;
    height: 100%;
}

.raum-cmw-slider_viewport {
    overflow: hidden;
    width: 100%;
    height: 100%;
}

.raum-cmw-slider_track {
    display: flex;
    height: 100%;
    transition: transform var(--transition-medium);
}

.raum-cmw-slider_slide {
    min-width: 100%;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.raum-cmw-slider_slide img {
    display: block;
    /* width/height/background: JS 3분기 주입 */
}

/* prev/next 화살표 (article 기준, hero 중앙 = section-height/2) */
#raum-cmw-view > .raum-cmw-slider_arrow {
    position: absolute;
    top: calc(var(--cmw-view-hero-height) / 2);
    transform: translateY(-50%);
    z-index: var(--z-10);
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gray-500);
    transition: color var(--transition-snappy);
}

#raum-cmw-view > .raum-cmw-slider_arrow:hover {
    color: var(--base-color-black);
}

#raum-cmw-view > .raum-cmw-slider_prev {
    left: calc(var(--padding-pc) * -1 - var(--cv-cm-work-17));
}

#raum-cmw-view > .raum-cmw-slider_next {
    right: calc(var(--padding-pc) * -1 - var(--cv-cm-work-17));
}

.raum-cmw-slider_arrow svg {
    width: var(--cv-cm-work-2);
    height: auto;
    display: block;
}

/* 슬라이더 dots */
.raum-cmw-slider_dots {
    text-align: center;
    padding: var(--cv-cm-work-36) 0 0;
}

.raum-cmw-slider_dot {
    display: inline-block;
    width: var(--space-8);
    height: var(--space-8);
    border-radius: 50%;
    background: rgba(var(--color-black-rgb), 0.2);
    margin: 0 var(--space-5);
    cursor: pointer;
    transition: background var(--transition-snappy);
}

.raum-cmw-slider_dot:hover {
    background: rgba(var(--color-black-rgb), 0.4);
}

.raum-cmw-slider_dot.active {
    background: rgba(var(--color-black-rgb), 0.6);
}


/* =========================
   Related Contents (포트폴리오 동형 3열 그리드)
========================= */
.raum-cmw-section_board_list {
    padding: var(--cv-cm-work-37) 0 0;
}

.raum-cmw-section_board_list .raum-cmw-sec_title {
    font-family: var(--font-KR-base);
    font-size: var(--cv-cm-work-38);
    font-weight: var(--fw-400);
    color: var(--base-color-black);
    margin: 0 0 var(--cv-cm-work-7);
}

.raum-cmw-related_wrap {
    position: relative;
}

.raum-cmw-related_arrow,
.raum-cmw-related_arrow:link,
.raum-cmw-related_arrow:visited {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: var(--z-5);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-gray-400);
    transition: color var(--transition-snappy);
    text-decoration: none;
}

.raum-cmw-related_arrow:hover {
    color: var(--base-color-black);
}

.raum-cmw-related_arrow svg {
    width: var(--cv-cm-work-2);
    height: auto;
    display: block;
}

.raum-cmw-related_arrow--prev {
    left: calc(var(--padding-pc) * -1 - var(--cv-cm-work-17));
}

.raum-cmw-related_arrow--next {
    right: calc(var(--padding-pc) * -1 - var(--cv-cm-work-17));
}

/* 슬라이드 viewport / track (포트폴리오 동형) */
.raum-cmw-related_viewport {
    overflow: hidden;
}

.raum-cmw-related_track {
    display: flex;
    gap: var(--cv-cm-work-1);
    will-change: transform;
}

.raum-cmw-related_track .raum-cmw-related_card {
    flex: 0 0 calc((100% - var(--cv-cm-work-1) * 2) / 3);
}

button.raum-cmw-related_arrow {
    border: 0;
    background: transparent;
    cursor: pointer;
    padding: 0;
}

button.raum-cmw-related_arrow:disabled {
    opacity: var(--op-03);
    cursor: not-allowed;
}

.raum-cmw-related_card {
    flex: 0 1 calc(33.333% - var(--cv-cm-work-1) * 2 / 3);
    min-width: 0;
    text-decoration: none;
    color: var(--base-color-white);
    overflow: hidden;
}

.raum-cmw-related_card_img {
    position: relative;
    width: 100%;
    height: var(--cv-cm-work-39);
    overflow: hidden;
}

.raum-cmw-related_card_img img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-base);
}

.raum-cmw-related_card:hover .raum-cmw-related_card_img img {
    transform: scale(1.05);
}

.raum-cmw-related_card_overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(var(--color-black-rgb), 0.35);
}

.raum-cmw-related_card_info {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    padding: var(--cv-cm-work-40);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    z-index: var(--z-1);
}

.raum-cmw-related_card_title {
    font-size: var(--cv-cm-work-26);
    font-weight: var(--fw-700);
    color: var(--base-color-white);
    display: block;
}

.raum-cmw-related_card_meta {
    font-size: var(--cv-cm-work-41);
    font-weight: var(--fw-400);
    color: var(--base-color-white);
    display: block;
}

@media (max-width: 1200px) {
    .raum-cmw-related_track .raum-cmw-related_card {
        flex: 0 0 calc((100% - var(--cv-cm-work-1)) / 2);
    }
}

@media (max-width: 768px) {
    .raum-cmw-related_track .raum-cmw-related_card {
        flex: 0 0 100%;
    }
}


/* =========================
   관리자 바 (포트폴리오 동형)
========================= */
.raum-cmw-admin_bar {
    position: fixed;
    bottom: var(--cv-cm-work-38);
    left: 50%;
    transform: translateX(-50%);
    z-index: var(--z-999);
    display: flex;
    align-items: center;
    gap: var(--cv-cm-work-42);
    padding: var(--cv-cm-work-43) var(--cv-cm-work-44);
    background: linear-gradient(
        135deg,
        rgba(var(--color-white-rgb), 0.12) 0%,
        rgba(var(--color-white-rgb), 0.06) 50%,
        rgba(var(--color-white-rgb), 0.1) 100%
    );
    backdrop-filter: blur(var(--px-20)) saturate(1.4);
    -webkit-backdrop-filter: blur(var(--px-20)) saturate(1.4);
    border: 1px solid rgba(var(--color-white-rgb), 0.18);
    border-radius: var(--space-50);
    box-shadow:
        0 0.5rem 2rem rgba(var(--color-black-rgb), 0.15),
        inset 0 1px 0 rgba(var(--color-white-rgb), 0.15),
        inset 0 -1px 0 rgba(var(--color-black-rgb), 0.05);
}

.raum-cmw-admin_bar_divider {
    width: var(--px-1);
    margin: 0 var(--cv-cm-work-45);
    height: var(--space-20);
    background: rgba(var(--color-white-rgb), 0.2);
    flex-shrink: 0;
}

.raum-cmw-admin_bar_chk {
    display: flex;
    align-items: center;
    gap: var(--space-6);
    color: var(--base-color-black);
    font-size: var(--space-14);
    font-weight: var(--fw-600);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

.raum-cmw-admin_bar_chk input[type="checkbox"] {
    position: absolute;
    opacity: var(--op-0);
    width: 0;
    height: 0;
}

.raum-cmw-admin_bar_chk_box {
    position: relative;
    width: var(--space-18);
    height: var(--space-18);
    border: none;
    border-radius: 50%;
    background: rgba(var(--color-white-rgb), 0.18);
    transition: background var(--transition-snappy);
    flex-shrink: 0;
}

.raum-cmw-admin_bar_chk_box::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--space-7);
    height: var(--space-7);
    border-radius: 50%;
    background: var(--signature-color);
    transform: translate(-50%, -50%) scale(0);
    opacity: var(--op-0);
    transition: transform var(--transition-snappy), opacity var(--transition-quick);
}

.raum-cmw-admin_bar_chk input[type="checkbox"]:checked + .raum-cmw-admin_bar_chk_box {
    background: rgba(var(--color-white-rgb), 0.35);
}

.raum-cmw-admin_bar_chk input[type="checkbox"]:checked + .raum-cmw-admin_bar_chk_box::after {
    transform: translate(-50%, -50%) scale(1);
    opacity: var(--op-1);
}

@media (hover: hover) {
    .raum-cmw-admin_bar_chk:hover .raum-cmw-admin_bar_chk_box {
        background: rgba(var(--color-white-rgb), 0.3);
    }
}

.raum-cmw-admin_bar_btn,
a.raum-cmw-admin_bar_btn,
a.raum-cmw-admin_bar_btn:link,
a.raum-cmw-admin_bar_btn:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--cv-cm-work-46);
    font-size: 0;
    line-height: var(--lh-0);
    color: var(--color-gray-500);
    background: var(--color-gray-100);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
    transition: background var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
}

@media (hover: hover) {
    .raum-cmw-admin_bar_btn:hover,
    a.raum-cmw-admin_bar_btn:hover,
    a.raum-cmw-admin_bar_btn:active {
        background: rgba(var(--color-white-rgb), 0.18);
        border-color: rgba(var(--color-white-rgb), 0.3);
        color: var(--signature-color);
    }
}

.raum-cmw-admin_bar_btn[disabled],
.raum-cmw-admin_bar_btn:disabled {
    opacity: var(--op-035);
    cursor: not-allowed;
    pointer-events: none;
}

.raum-cmw-admin_bar_btn--settings svg {
    animation: raum-cmw-gear-spin var(--anim-spin-slow);
}

@keyframes raum-cmw-gear-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.raum-cmw-admin_bar_btn--danger {
    color: rgba(255, 120, 120, 0.9);
    border-color: rgba(255, 120, 120, 0.2);
}

@media (hover: hover) {
    .raum-cmw-admin_bar_btn--danger:hover {
        background: rgba(255, 80, 80, 0.15);
        border-color: rgba(255, 120, 120, 0.35);
        color: rgba(255, 120, 120, 0.9);
    }
}


/* =========================
   글쓰기 페이지 (포트폴리오 동형)
========================= */

/* 헤더/푸터 숨김 */
body:has(.raum-cmw-write_page) header,
body:has(.raum-cmw-write_page) footer,
body:has(.raum-cmw-write_page) .raum-gnb-all,
body:has(.raum-cmw-write_page) #hd_login_msg {
    display: none;
}

body:has(.raum-cmw-write_page) #wrapper,
body:has(.raum-cmw-write_page) #container {
    padding: 0;
}

/* 2컬럼 (로고 사이드바 | 폼) */
.raum-cmw-write_page {
    display: flex;
    min-height: var(--svh-100);
}

.raum-cmw-write_sidebar {
    position: sticky;
    top: 0;
    width: var(--sidebar-width);
    height: var(--svh-100);
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    padding: var(--cv-cm-work-3);
    background: var(--base-color-white);
}

.raum-cmw-write_logo {
    display: flex;
    text-decoration: none;
}

.raum-cmw-write_logo img {
    width: var(--cv-cm-work-47);
    height: auto;
}

.raum-cmw-write_sidebar_text {
    margin-top: var(--cv-cm-work-48);
}

.raum-cmw-write_sidebar_board {
    display: block;
    font-family: var(--font-KR-base);
    font-size: var(--cv-cm-work-49);
    font-weight: var(--fw-600);
    color: var(--base-color-black);
    letter-spacing: var(--em-0-02);
}

.raum-cmw-write_sidebar_reg {
    display: block;
    font-size: var(--cv-cm-work-50);
    font-weight: var(--fw-400);
    color: var(--color-gray-400);
    letter-spacing: var(--em-0-08);
    margin-top: var(--space-4);
}

.raum-cmw-write_sidebar_date {
    display: block;
    margin-top: var(--cv-cm-work-48);
    font-size: var(--cv-cm-work-51);
    font-weight: var(--fw-400);
    color: var(--color-gray-300);
    letter-spacing: var(--em-0-1);
}

.raum-cmw-write_sidebar_line {
    display: block;
    width: var(--space-32);
    height: var(--px-1);
    background: rgba(var(--color-black-rgb), 0.12);
    margin: var(--cv-cm-work-29) 0;
}

.raum-cmw-write_sidebar_slogan {
    display: block;
    font-family: var(--font-KR-base);
    font-size: var(--cv-cm-work-13);
    font-weight: var(--fw-400);
    color: var(--base-color-black);
    letter-spacing: var(--em-0-05);
}

.raum-cmw-write_sidebar_actions {
    display: flex;
    gap: var(--cv-cm-work-52);
    margin-top: var(--cv-cm-work-48);
}

.raum-cmw-write_sidebar_actions a,
.raum-cmw-write_sidebar_actions button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--space-48);
    height: var(--space-48);
    border-radius: 50%;
    border: 1px solid rgba(var(--color-black-rgb), 0.15);
    background: transparent;
    color: var(--base-color-black);
    cursor: pointer;
    text-decoration: none;
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
}

@media (hover: hover) {
    .raum-cmw-write_sidebar_actions a:hover,
    .raum-cmw-write_sidebar_actions button:hover {
        background: var(--signature-color);
        color: var(--base-color-white);
        border-color: var(--signature-color);
    }
}

#raum-cmw-write {
    flex: 1;
    width: auto;
    margin: 0;
    background-color: var(--background-color);
    padding: var(--card-padding-lg) var(--card-padding) var(--spacing-section-xl);
    font-family: var(--font-KR-base);
}

.raum-cmw-w_section {
    position: relative;
    padding: var(--cv-cm-work-53) 0;
}

.raum-cmw-w_title_input {
    display: block;
    width: 100%;
    border: none;
    border-bottom: var(--px-2) dashed rgba(var(--color-black-rgb), 0.15);
    background: transparent;
    text-align: center;
    font-size: var(--space-26);
    font-weight: var(--fw-700);
    color: var(--base-color-black);
    padding: var(--space-10) 0;
    margin-bottom: var(--space-12);
    outline: none;
    box-sizing: border-box;
    resize: none;
    overflow: hidden;
}

.raum-cmw-w_title_input::placeholder {
    color: var(--color-gray-400);
}

.raum-cmw-w_title_input:focus {
    border-bottom-color: var(--base-color-black);
}

.raum-cmw-w_cate_select {
    display: block;
    max-width: var(--space-300);
    margin: 0 auto var(--space-20);
    border: 1px solid rgba(var(--color-black-rgb), 0.15);
    height: var(--space-38);
    line-height: var(--space-38);
    padding: 0 var(--space-12);
    border-radius: 0;
    text-align: center;
    box-sizing: border-box;
    background: transparent;
    font-size: var(--space-14);
    color: var(--color-gray-600);
    outline: none;
}

.raum-cmw-w_cate_select--left {
    margin: 0;
    max-width: none;
    text-align: left;
}

.raum-cmw-w_field_row {
    max-width: var(--space-400);
    margin: 0 auto var(--space-15);
}

.raum-cmw-w_input {
    width: 100%;
    border: 1px solid var(--color-ui-input-bg);
    padding: var(--space-8) var(--space-12);
    border-radius: var(--px-3);
    box-sizing: border-box;
}

/* 프로젝트 정보 필드 */
.raum-cmw-w_info_fields {
    display: flex; flex-wrap: wrap;
    gap: var(--cv-cm-work-52) var(--cv-cm-work-54);
}
.raum-cmw-w_info_field_row {
    display: flex;
    align-items: stretch;
    gap: var(--cv-cm-work-55);
    padding: 0;
}

.raum-cmw-w_info_field_label {
    display: flex;
    align-items: center;
    font-size: var(--cv-cm-work-56);
    font-weight: var(--fw-600);
    color: var(--color-gray-600);
    white-space: nowrap;
    min-width: var(--space-88);
    flex-shrink: 0;
    padding: var(--cv-cm-work-57) 0;
}

.raum-cmw-w_info_field_input {
    flex: 1;
    border: none;
    border-bottom: 1px solid rgba(var(--color-black-rgb), 0.08);
    background: transparent;
    font-size: var(--cv-cm-work-56);
    color: var(--color-gray-380);
    padding: var(--cv-cm-work-57) 0;
    outline: none;
    transition: border-color var(--transition-snappy), color var(--transition-snappy);
}

.raum-cmw-w_info_field_input::placeholder {
    color: var(--color-gray-400);
}

.raum-cmw-w_info_field_input:focus {
    color: var(--base-color-black);
    border-bottom-color: var(--signature-color);
}

/* 분류/슬라이드노출 + 본문 (2열) */
.raum-cmw-w_meta_content_row {
    display: flex;
    gap: var(--cv-cm-work-58);
    align-items: flex-start;
    margin-top: var(--cv-cm-work-1);
}

.raum-cmw-w_meta_left {
    flex-shrink: 0;
    width: var(--cv-cm-work-59);
    display: flex;
    flex-direction: column;
    gap: var(--cv-cm-work-29);
}

.raum-cmw-w_meta_right {
    flex: 1;
}

/* 상단에 올리기 체크박스 */
.raum-cmw-w_top_chk_label {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    gap: var(--space-8);
}

.raum-cmw-w_top_chk_label input[type="checkbox"] {
    position: absolute;
    opacity: var(--op-0);
    width: 0;
    height: 0;
}

.raum-cmw-w_top_chk_box {
    display: inline-block;
    width: var(--space-18);
    height: var(--space-18);
    border: none;
    border-radius: 50%;
    background: var(--color-gray-150);
    position: relative;
    transition: background var(--transition-snappy);
    flex-shrink: 0;
}

.raum-cmw-w_top_chk_box::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--space-7);
    height: var(--space-7);
    border-radius: 50%;
    background: var(--signature-color);
    transform: translate(-50%, -50%) scale(0);
    opacity: var(--op-0);
    transition: transform var(--transition-snappy), opacity var(--transition-quick);
}

.raum-cmw-w_top_chk_label input[type="checkbox"]:checked + .raum-cmw-w_top_chk_box {
    background: var(--color-gray-200);
}

.raum-cmw-w_top_chk_label input[type="checkbox"]:checked + .raum-cmw-w_top_chk_box::after {
    transform: translate(-50%, -50%) scale(1);
    opacity: var(--op-1);
}

@media (hover: hover) {
    .raum-cmw-w_top_chk_label:hover .raum-cmw-w_top_chk_box {
        background: var(--color-gray-200);
    }
}

.raum-cmw-w_top_chk_text {
    font-size: var(--cv-cm-work-13);
    color: var(--color-gray-600);
}

/* 본문 textarea */
.raum-cmw-w_content_textarea {
    display: block;
    width: 100%;
    height: var(--space-400);
    border: 1px dashed rgba(var(--color-black-rgb), 0.15);
    background: transparent;
    font-size: var(--cv-cm-work-26);
    line-height: var(--lh-19);
    font-family: var(--font-KR-base);
    color: var(--color-gray-600);
    padding: var(--cv-cm-work-60);
    outline: none;
    box-sizing: border-box;
    resize: vertical;
}

.raum-cmw-w_content_textarea::placeholder {
    color: var(--color-gray-400);
}

.raum-cmw-w_content_textarea:focus {
    border-color: var(--base-color-black);
}

.raum-cmw-w_content_textarea.raum-cmw-w_content_textarea--auto {
    height: var(--cv-cm-work-61);
    resize: none;
    overflow: hidden;
    background: rgba(var(--color-black-rgb), 0.03);
    border: none;
    border-radius: var(--px-3);
    padding-top: var(--space-12);
    padding-bottom: var(--space-12);
}

.raum-cmw-w_content_textarea.raum-cmw-w_content_textarea--auto:focus {
    border: none;
}

/* 이미지 업로드 */
.raum-cmw-w_slider_hint {
    text-align: center;
    font-size: var(--em-0-85);
    color: var(--color-gray-400);
    margin: 0 0 var(--space-12);
}

.raum-cmw-w_slider_grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-20);
}

.raum-cmw-w_slider_grid > * {
    flex: 0 1 calc((100% - var(--space-20) * 4) / 5);
    box-sizing: border-box;
}

.raum-cmw-w_photo_grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-20);
    margin-top: var(--space-25);
}

.raum-cmw-w_photo_grid > * {
    flex: 0 1 calc((100% - var(--space-20) * 4) / 5);
    box-sizing: border-box;
}
/* 대표 이미지 슬롯: 높이 확대 + 업로드 이미지 100% 기준 cover 출력 */
.raum-cmw-w_photo_grid--1 .raum-cmw-w_img_area {
    height: var(--cv-cm-work-62);
}

.raum-cmw-w_photo_grid--1 .raum-cmw-w_img_label {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
}

.raum-cmw-w_slide_item {
    display: flex;
    flex-direction: column;
    gap: var(--cv-cm-work-63);
}

.raum-cmw-w_img_area {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--cv-cm-work-64);
    background: var(--color-gray-150);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.raum-cmw-w_img_area:hover {
    background-color: var(--color-gray-200);
}

.raum-cmw-w_img_label {
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.raum-cmw-w_img_placeholder {
    color: var(--color-gray-400);
    font-size: var(--cv-cm-work-13);
    text-align: center;
    transition: opacity var(--transition-snappy);
}

.raum-cmw-w_file_input {
    position: absolute;
    width: 0;
    height: 0;
    opacity: var(--op-0);
    overflow: hidden;
}

.raum-cmw-w_upload_plus {
    position: relative;
    display: block;
    width: var(--cv-cm-work-65);
    height: var(--cv-cm-work-65);
}

.raum-cmw-w_upload_plus::before {
    content: "";
    position: absolute;
    background: rgba(var(--color-black-rgb), 0.2);
    transition: background var(--transition-fast);
    top: 50%;
    left: 0;
    width: 100%;
    height: var(--px-2);
    transform: translateY(-50%);
}

.raum-cmw-w_upload_plus::after {
    content: "";
    position: absolute;
    background: rgba(var(--color-black-rgb), 0.2);
    transition: background var(--transition-fast);
    top: 0;
    left: 50%;
    width: var(--px-2);
    height: 100%;
    transform: translateX(-50%);
}

.raum-cmw-w_img_label:hover .raum-cmw-w_upload_plus::before,
.raum-cmw-w_img_label:hover .raum-cmw-w_upload_plus::after {
    background: rgba(var(--color-black-rgb), 0.5);
}

/* 이미지 툴바 */
.raum-cmw-w_img_toolbar {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    margin-top: var(--space-4);
}

.raum-cmw-w_img_act_btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-5-alt);
    border: none;
    border-radius: 0;
    background: var(--color-gray-100);
    color: var(--color-gray-500);
    cursor: pointer;
    transition: color var(--transition-snappy), background var(--transition-snappy);
}

@media (hover: hover) {
    .raum-cmw-w_img_edit_btn:hover {
        color: var(--base-color-white);
        background: var(--signature-color);
        border-color: var(--signature-color);
    }

    .raum-cmw-w_img_del_btn:hover {
        color: var(--base-color-white);
        background: var(--color-accent-red);
        border-color: var(--color-accent-red);
    }
}

/* 하단 버튼 (PC에선 숨김, 모바일에선 fixed 표시) */
.raum-cmw-w_buttons {
    text-align: center;
    padding: var(--cv-cm-work-18) 0;
    display: flex;
    justify-content: center;
    gap: var(--space-12);
}

.raum-cmw-btn_cancel,
.raum-cmw-btn_submit {
    display: inline-block;
    padding: var(--space-12) var(--space-40);
    font-size: var(--cv-cm-work-13);
    border: none;
    background: var(--background-color-gray);
    color: var(--base-color-black);
    cursor: pointer;
    transition: all var(--transition-snappy);
    text-decoration: none;
}

.raum-cmw-btn_cancel:hover,
.raum-cmw-btn_submit:hover {
    background: rgba(var(--color-black-rgb), 0.15);
}

.raum-cmw-write_page .raum-cmw-w_buttons {
    display: none;
}

/* write 반응형 */
@media (max-width: 768px) {
    .raum-cmw-write_sidebar_actions {
        display: none;
    }

    .raum-cmw-write_page .raum-cmw-w_buttons {
        display: flex;
        position: fixed;
        bottom: 0;
        left: 0;
        width: 100%;
        justify-content: center;
        gap: var(--space-12);
        padding: var(--cv-cm-work-66);
        background: rgba(var(--color-white-rgb), 0.95);
        backdrop-filter: blur(var(--px-10));
        -webkit-backdrop-filter: blur(var(--px-10));
        border-top: 1px solid rgba(var(--color-black-rgb), 0.08);
        z-index: var(--z-999);
    }

    .raum-cmw-write_page {
        flex-direction: column;
    }

    .raum-cmw-write_sidebar {
        position: relative;
        width: 100%;
        height: auto;
        padding: var(--cv-cm-work-67);
    }

    .raum-cmw-write_logo {
        font-size: var(--cv-cm-work-68);
    }
    .raum-cmw-w_meta_content_row {
        flex-direction: column;
    }

    .raum-cmw-w_meta_left {
        width: 100%;
        flex-direction: row;
        align-items: center;
    }
}


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

/* 태블릿 */
@media (max-width: 1024px) {
    .raum-cmw-grid {
        gap: 0;
    }

    .raum-cmw-grid > .raum-cmw-card {
        flex: 0 1 100%;
    }

    .raum-cmw-card_left {
        width: 40%;
    }

    /* view/write 정보 레이아웃 */
    .raum-cmw-view_info_img,
    .raum-cmw-w_info_img {
        width: 40%;
    }
}

/* 모바일 */
@media (max-width: 600px) {
    .raum-cmw-top_slider_arrow img {
        width: var(--space-14);
    }

    .raum-cmw-card_link {
        gap: var(--cv-cm-work-69);
    }

    .raum-cmw-card_left {
        width: 35%;
    }

    .raum-cmw-card_title {
        font-size: var(--cv-cm-work-70);
    }

    .raum-cmw-card_desc {
        font-size: var(--cv-cm-work-71);
        -webkit-line-clamp: 1;
    }

    .raum-cmw-card_meta_item {
        font-size: var(--cv-cm-work-71);
        line-height: var(--lh-16);
    }

    .raum-cmw-card_more_btn {
        font-size: var(--cv-cm-work-72);
    }

    /* view/write 정보 레이아웃: 모바일에서 세로 배치 */
    .raum-cmw-view_info_layout,
    .raum-cmw-w_info_layout {
        flex-direction: column;
    }

    .raum-cmw-view_info_img,
    .raum-cmw-w_info_img {
        width: 100%;
    }
}
