@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-blue-bright: #1471f6;
    --color-black-rgb: 0, 0, 0;
    --color-gray-270: #b8bfc4;
    --color-gray-280: #b5b8bb;
    --color-gray-420: #6b757c;
    --color-gray-430: #676e70;
    --color-gray-440: #656565;
    --color-hex-b94a48: #b94a48;
    --color-ui-dde7e9: #dde7e9;
    --color-ui-f1f1f1: #f1f1f1;
    --color-ui-input-bg: #d0d3db;
    --color-ui-line: #e8e8e8;
    --signature-color: #181d60;
    --transition-base: 0.3s ease;

    /* hardcode 변환 신규 토큰 (자동 추가) */
    --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-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-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-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-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-34-min: 1.75rem;
    --space-34-pref: 2.21vw;
    --space-34-max: 2.125rem;
    --space-34: clamp(var(--space-34-min), var(--space-34-pref), var(--space-34-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-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-112-min: 5.625rem;
    --space-112-pref: 7.29vw;
    --space-112-max: 7rem;
    --space-112: clamp(var(--space-112-min), var(--space-112-pref), var(--space-112-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;
    --color-gray-380: #777;

    /* hardcode 변환 신규 토큰 (자동 추가) */
    --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-15-alt-min: 0.7rem;
    --space-15-alt-pref: 0.94vw;
    --space-15-alt-max: 0.9rem;
    --space-15-alt: clamp(var(--space-15-alt-min), var(--space-15-alt-pref), var(--space-15-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));
    --transition-quick: 0.15s ease;
    --transition-snappy: 0.2s ease;

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

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

    /* 누락 토큰 추가 */
    --sidebar-width-min: 14rem;
    --sidebar-width-pref: 18vw;
    --sidebar-width-max: 20rem;
    --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));
    --color-accent-red: #c43a31;
    --color-gray-100: #f4f4f4;
    --color-gray-150: #ececec;
    --color-gray-200: #eeeeee;
    --color-gray-300: #C0C0C0;
    --color-gray-400: #919191;
    --color-gray-500: #666666;
    --color-gray-600: #555555;
    --color-white-rgb: 255, 255, 255;
    --cv-md-8-min: 1.25rem;
    --cv-md-8-pref: 3vw;
    --cv-md-8-max: 3.125rem;
    --cv-md-8: clamp(var(--cv-md-8-min), var(--cv-md-8-pref), var(--cv-md-8-max));
    --font-KR-base: "europa", sans-serif;
    --sidebar-width: clamp(var(--sidebar-width-min), var(--sidebar-width-pref), var(--sidebar-width-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));
    --svh-100: 100svh;

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

    /* 누락 토큰 추가 */
    --em-0-02: 0.02em;
    --em-0-03: 0.03em;
    --em-0-05: 0.05em;
    --em-0-08: 0.08em;
    --em-0-1: 0.1em;
    --em-0-75: 0.75em;
    --em-0-8: 0.8em;
    --em-0-85: 0.85em;
    --em-0-9: 0.9em;
    --em-0-92: 0.92em;
    --em-0-88: 0.88em;
    --em-0-83: 0.83em;
    --em-0-95: 0.95em;
    --em-1: 1em;
    --em-1-2: 1.2em;
    --em-1-3: 1.3em;
    --px-1: 1px;
    --space-neg-125: -7.8125rem;
    /* line-height 토큰 */
    --lh-0: 0;
    --lh-135: 1.35;
    --lh-14: 1.4;
    --lh-15: 1.5;
    --lh-155: 1.55;
    --lh-17: 1.7;
    --lh-185: 1.85;
    --lh-19: 1.9;

    /* 자동 변수화 토큰 (fw/op/z) */
    --fw-500: 500;
    --fw-600: 600;
    --fw-700: 700;
    --op-0: 0;
    --op-1: 1;
    --z-2: 2;
    --z-999: 999;

}
/* ============================
   News Board - List Style
   ============================ */

/* 기본 리셋 */
.raum-news-board {
    width: 100%;
    background-color: var(--background-color);
    padding-bottom: 0;
}

.raum-news-board #bo_btn_top {
    padding: 0 0 var(--cv-news-1);
}

.raum-news-board .bo_fx {
    display: none;
}

.raum-news-board #bo_btn_top:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

.raum-news-board #bo_list_total {
    float: left;
    line-height: var(--space-34);
    font-size: var(--em-0-92);
    color: var(--base-color-black);
}

/* 관리자 버튼 */
.raum-news-board .btn_bo_user {
    float: none;
    display: flex;
    justify-content: center;
    gap: var(--space-4);
    margin: var(--space-20) auto 0;
    padding: 0;
    list-style: none;
}

.raum-news-board .btn_bo_user li {
    float: none;
    width: var(--cv-md-8);
    text-align: center;
}

.raum-news-board .btn_bo_user>li {
    position: relative;
}

.raum-news-board .btn_bo_user li .btn {
    background: var(--background-color);
    color: var(--base-color-black);
    border: none;
}

.raum-news-board .bo_fx:after {
    display: block;
    visibility: hidden;
    clear: both;
    content: "";
}

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

.raum-news-board .chk_box {
    position: relative;
}

.raum-news-board .chk_box input[type="checkbox"]+label {
    position: relative;
    padding-left: var(--space-20);
    color: var(--color-gray-430);
    vertical-align: baseline;
}

.raum-news-board .chk_box input[type="checkbox"]+label span {
    position: absolute;
    top: 0;
    left: 0;
    width: var(--space-15);
    height: var(--space-15);
    display: block;
    background: var(--background-color);
    border: 1px solid rgba(var(--color-black-rgb), 0.25);
    border-radius: var(--px-3);
}

.raum-news-board .chk_box input[type="checkbox"]:checked+label span {
    background: url(./img/chk.png) no-repeat 50% 50% var(--color-accent-blue);
    border-color: var(--color-accent-blue-bright);
}

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

.raum-news-board .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-5);
    box-shadow: 1px 1px var(--px-18) rgba(var(--color-black-rgb), 0.2);
    border: 1px solid var(--color-ui-dde7e9);
}

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

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

.raum-news-board .bo_sch select {
    border: 1px solid var(--color-ui-input-bg);
    width: 100%;
    height: var(--space-40);
    border-radius: var(--px-2);
}

.raum-news-board .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);
}

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

.raum-news-board .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);
}

.raum-news-board .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);
}

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

/* 관리자 옵션 드롭다운 */
.raum-news-board .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);
}

.raum-news-board .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;
}

.raum-news-board .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;
}

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

.raum-news-board .more_opt li:last-child {
    border-bottom: 0;
}

.raum-news-board .more_opt li button {
    width: 100%;
    border: 0;
    background: var(--base-color-white);
    color: var(--color-gray-420);
    padding: var(--space-10);
}

.raum-news-board .more_opt li:hover button {
    color: var(--base-color-black);
}


/* ============================
   뉴스 리스트 (2컬럼 그리드)
   ============================ */
.raum-news-list {
    padding-left: 0;
    padding-right: 0;
    display: flex;
    flex-wrap: wrap;
    column-gap: var(--cv-news-2);
}

.raum-news-list > .raum-news-item {
    flex: 0 1 calc(50% - var(--cv-news-2) / 2);
    min-width: 0;
}

.raum-news-item {
    position: relative;
    border-bottom: 1px solid rgba(var(--color-black-rgb), 0.12);
}

/* 뉴스 링크 - 전체 클릭 영역 */
.raum-news-list-link {
    display: flex;
    align-items: stretch;
    gap: var(--cv-news-3);
    padding: var(--cv-news-4) 0;
    text-decoration: none;
    color: inherit;
    transition: opacity var(--transition-fast);
}

.raum-news-list-link:hover {
    text-decoration: none;
}

/* 썸네일 */
.raum-news-list-thumb {
    position: relative;
    flex: 0 0 40%;
    width: 40%;
    height: var(--cv-news-5);
    overflow: hidden;
    background: var(--base-color-black);
}

.raum-news-list-thumb img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--transition-base);
}

.raum-news-list-thumb .raum-news-list-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: block;
    transition: transform var(--transition-base);
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.raum-news-list-link:hover .raum-news-list-thumb img,
.raum-news-list-link:hover .raum-news-list-thumb .raum-news-list-img {
    transform: scale(1.03);
}

.raum-news-list-thumb .raum-news-list-notice {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--em-1);
    font-weight: var(--fw-500);
    color: var(--base-color-black);
    background: var(--background-color);
}

.raum-news-list-thumb .news-no-image {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--em-0-9);
    color: var(--base-color-black);
    background: var(--background-color);
    letter-spacing: var(--em-0-05);
}

/* 콘텐츠 영역 */
.news-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    min-width: 0;
}

/* 제목 */
.raum-news-title {
    margin: 0 0 var(--space-10) 0;
    font-size: var(--cv-news-6);
    font-weight: var(--fw-500);
    line-height: var(--lh-15);
    color: var(--base-color-black);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 본문 발췌 */
.raum-news-excerpt {
    margin: 0 0 var(--space-16) 0;
    font-size: var(--cv-news-7);
    line-height: var(--lh-17);
    color: var(--base-color-black);
    word-break: keep-all;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
}

/* VIEW MORE */
.news-viewmore {
    display: inline-block;
    margin-top: auto;
    font-size: var(--em-0-8);
    font-weight: var(--fw-500);
    color: var(--base-color-black);
    letter-spacing: var(--em-0-08);
    transition: color var(--transition-snappy);
}

.raum-news-list-link:hover .news-viewmore {
    color: var(--signature-color);
}

/* 체크박스 (관리자) */
.news-chk {
    position: absolute;
    top: var(--space-20);
    right: var(--space-10);
    z-index: var(--z-2);
}

/* 빈 목록 */
.news-empty {
    grid-column: 1 / -1;
    padding: var(--space-100) 0;
    text-align: center;
    color: var(--base-color-black);
    font-size: var(--em-0-95);
}

/* 전체선택 */
.raum-news-board #gall_allchk {
    margin-bottom: var(--space-10);
    padding-left: 0;
    padding-right: 0;
}


/* ============================
   페이지네이션
   ============================ */
.raum-news-board .pg_wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    float: none;
    width: 100%;
    margin: var(--space-50) 0 var(--space-30);
    gap: var(--space-4);
    text-align: center;
}

.raum-news-board .pg_wrap a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5em var(--em-0-75);
    font-size: var(--em-0-95);
    color: var(--base-color-black);
    text-decoration: none;
    border: none;
    border-radius: 0;
    background: none;
    transition: color var(--transition-base), background-color var(--transition-base);
}

.raum-news-board .pg_wrap a:hover {
    color: var(--signature-color);
}

.raum-news-board .pg_wrap .pg_current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5em var(--em-0-75);
    font-size: var(--em-0-95);
    color: var(--base-color-white);
    font-weight: var(--fw-600);
    text-decoration: none;
    background-color: var(--signature-color);
    border: none;
    border-radius: 0;
    transition: color var(--transition-base), background-color var(--transition-base);
}

.raum-news-board .pg_wrap .pg_page {
    border: none;
    background: none;
}

.raum-news-board .pg_wrap .pg_start,
.raum-news-board .pg_wrap .pg_prev,
.raum-news-board .pg_wrap .pg_next,
.raum-news-board .pg_wrap .pg_end {
    color: var(--signature-color);
    font-weight: var(--fw-700);
    font-size: 0;
    text-indent: 0;
    overflow: visible;
    border: none;
    background: none;
}

.raum-news-board .pg_wrap .pg_start::before {
    content: '\00AB';
    font-size: var(--space-15-alt);
}

.raum-news-board .pg_wrap .pg_prev::before {
    content: '\2039';
    font-size: var(--space-15-alt);
}

.raum-news-board .pg_wrap .pg_next::before {
    content: '\203A';
    font-size: var(--space-15-alt);
}

.raum-news-board .pg_wrap .pg_end::before {
    content: '\00BB';
    font-size: var(--space-15-alt);
}


/* ============================
   리스트 반응형
   ============================ */
@media screen and (max-width: 1024px) {
    .raum-news-list-thumb {
        flex: 0 0 35%;
        width: 35%;
    }
}

@media screen and (max-width: 768px) {
    .raum-news-list > .raum-news-item {
        flex: 0 1 100%;
    }

    .raum-news-list-thumb {
        flex: 0 0 35%;
        width: 35%;
    }
}

@media screen and (max-width: 500px) {
    .raum-news-list-thumb {
        flex: 0 0 33%;
        width: 33%;
    }
}


/* ============================
   뉴스 글쓰기 / 수정
   ============================ */
/* .news_write_wrap / .news_write_header / .news_write_title — 폐기 (portfolio #raum-pf-write 패턴으로 통합) */

/* ========== 글쓰기/수정 폼 (Design Works portfolio 패턴 prefix 변환) ========== */
.raum-news-w_section {
    position: relative;
    padding: var(--cv-news-8) 0;
}

/* 헤더 입력 */
.raum-news-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;
    line-height: var(--lh-14);
}

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

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

.raum-news-w_section_header {
    text-align: center;
}

.raum-news-w_cate_select {
    display: block;
    max-width: var(--cv-news-9);
    margin: 0 auto var(--cv-news-10);
    border: 1px solid rgba(var(--color-black-rgb), 0.15);
    height: var(--cv-news-11);
    line-height: var(--cv-news-11);
    padding: 0 var(--cv-news-12);
    border-radius: 0;
    text-align: center;
    box-sizing: border-box;
    background: transparent;
    font-size: var(--cv-news-13);
    color: var(--color-gray-600);
    outline: none;
}

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

.raum-news-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;
}

/* 프로젝트 정보 입력 */

/* Building Information 카드 입력 */

/* 섹션 제목 입력 */

/* 섹션 설명 입력 */

/* 이미지 업로드 영역 */
.raum-news-w_img_area {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--cv-news-14);
    background: var(--color-gray-150);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.raum-news-w_img_toolbar {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    margin-top: var(--space-4);
}

.raum-news-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-news-w_img_edit_btn:hover {
        color: var(--base-color-white);
        background: var(--signature-color);
        border-color: var(--signature-color);
    }

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

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

.raum-news-w_img_label {
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

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

.raum-news-w_img_placeholder {
    color: var(--color-gray-400);
    font-size: var(--cv-news-15);
    text-align: center;
    transition: opacity var(--transition-snappy);
}

.raum-news-w_img_placeholder i {
    margin-right: var(--space-6);
    font-size: var(--em-1-2);
}

/* 히어로 이미지 업로드 */

/* 3장 갤러리 업로드 */


/* 기존 파일 표시 */

/* 버튼 */
.raum-news-w_buttons {
    text-align: center;
    padding: var(--cv-news-16) 0;
    display: flex;
    justify-content: center;
    gap: var(--space-12);
}

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

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

/* PC: 기존 버튼 영역 숨기고 사이드바 아이콘 표시 */
.raum-news-write_page .raum-news-w_buttons {
    display: none;
}

/* 사이드바 액션 아이콘 */
.raum-news-write_sidebar_actions {
    display: flex;
    gap: var(--cv-news-17);
    margin-top: var(--cv-news-18);
}

.raum-news-w_info_fields {
    display: flex;
    flex-direction: column;
    gap: var(--cv-news-17);
}

/* file native input — 다른 input과 같은 라인 폭으로 정렬 */
.raum-news-w_file_native {
    flex: 1;
    border: none;
    border-bottom: 1px solid rgba(var(--color-black-rgb), 0.08);
    background: transparent;
    font-size: var(--cv-news-19);
    color: var(--color-gray-380);
    padding: var(--cv-news-20) 0;
    outline: none;
    cursor: pointer;
}

.raum-news-w_info_field_row {
    display: flex;
    align-items: stretch;
    gap: var(--cv-news-21);
    padding: 0;
}

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

.raum-news-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-news-19);
    color: var(--color-gray-380);
    padding: var(--cv-news-20) 0;
    outline: none;
    transition: border-color var(--transition-snappy), color var(--transition-snappy);
}

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

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

@media (max-width: 768px) {
    .raum-news-w_info_fields {
        flex-direction: column;
    }
}

/* 옵션 체크박스 */
.raum-news-w_option {
    display: flex;
    gap: var(--cv-news-22);
    list-style: none;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}

.raum-news-w_option .chk_box label {
    font-size: var(--cv-news-19);
    color: var(--color-gray-600);
    cursor: pointer;
}

/* 에디터 (textarea 한줄 시작 → 자동 확장) */
.raum-news-w_editor {
    flex: 1;
    min-width: 0;
}

.raum-news-w_editor textarea {
    width: 100%;
    border: none;
    border-bottom: 1px solid rgba(var(--color-black-rgb), 0.08);
    background: transparent;
    font-size: var(--cv-news-19);
    color: var(--color-gray-380);
    padding: var(--cv-news-20) 0;
    outline: none;
    resize: vertical;
    min-height: var(--cv-news-23);
    transition: border-color var(--transition-snappy), color var(--transition-snappy);
}

.raum-news-w_editor textarea:focus {
    color: var(--base-color-black);
    border-bottom-color: var(--signature-color);
}

.raum-news-w_editor #char_count_desc {
    margin: 0 0 var(--cv-news-24);
    font-size: var(--cv-news-25);
    color: var(--color-gray-400);
}

.raum-news-w_editor #char_count_wrap {
    margin: var(--cv-news-24) 0 0;
    text-align: right;
    font-size: var(--cv-news-25);
    color: var(--color-gray-400);
}

.raum-news-w_editor #char_count {
    font-weight: var(--fw-600);
    color: var(--base-color-black);
}

/* 파일 업로드 */
.raum-news-w_file_wrap {
    flex: 1;
}

.raum-news-w_file {
    font-size: var(--cv-news-19);
    color: var(--color-gray-600);
    margin-bottom: var(--cv-news-24);
}

.raum-news-w_file_del {
    margin-top: var(--cv-news-24);
    font-size: var(--cv-news-25);
    color: var(--color-gray-400);
}

/* 글쓰기 반응형 (768 이하 — 라벨/입력 세로 전환) */
@media screen and (max-width: 768px) {
    .raum-news-w_info_field_row {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--cv-news-24);
    }

    .raum-news-w_info_field_label {
        width: 100%;
    }

    .raum-news-w_info_field_input,
    .raum-news-w_cate_select {
        width: 100%;
    }
}


/* ============================
   뉴스 상세보기 (View)
   ============================ */
.raum-news-view-wrap {
    background-color: var(--background-color);
    padding: var(--cv-news-26) 0 0;
    margin: 0;
    border: none;
    box-shadow: none;
    min-height: auto;
}
/* 헤더 */
.raum-news-view-header {
    padding-bottom: var(--cv-news-27);
    border-bottom: 1px solid var(--base-color-black);
    margin-bottom: var(--cv-news-28);
}

.news_view_cate {
    display: inline-block;
    font-size: var(--em-0-85);
    font-weight: var(--fw-500);
    color: var(--signature-color);
    margin-bottom: var(--space-10);
    letter-spacing: var(--em-0-03);
}

.raum-news-view-title {
    font-size: var(--cv-news-29);
    font-weight: var(--fw-600);
    line-height: var(--lh-14);
    color: var(--base-color-black);
    margin: 0 0 var(--space-16) 0;
    word-break: keep-all;
}

.news_view_meta {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    font-size: var(--em-0-88);
    color: var(--base-color-black);
}

.raum-news-view-date,
.news_view_hit {
    letter-spacing: var(--em-0-02);
}

/* 관리 버튼 */
.news_view_admin {
    margin-top: var(--space-16);
}

.news_view_btns {
    display: flex;
    gap: var(--space-8);
    list-style: none;
    margin: 0;
    padding: 0;
}

.news_abtn {
    display: inline-block;
    padding: var(--space-6) var(--space-16);
    font-size: var(--em-0-85);
    color: var(--base-color-black);
    border: 1px solid rgba(var(--color-black-rgb), 0.2);
    text-decoration: none;
    transition: all var(--transition-snappy);
}

.news_abtn:hover {
    border-color: var(--signature-color);
    color: var(--signature-color);
    text-decoration: none;
}

.news_abtn_del {
    color: var(--color-hex-b94a48);
    border-color: var(--color-hex-b94a48);
}

.news_abtn_del:hover {
    color: var(--base-color-white);
    background-color: var(--color-hex-b94a48);
    border-color: var(--color-hex-b94a48);
}

/* 본문 */
.raum-news-view-body {
    margin-bottom: var(--cv-news-28);
}

.news_view_img {
    margin-bottom: var(--space-30);
}

.news_view_img img {
    width: 65%;
    height: auto;
    display: block;
    margin: 0 auto var(--space-15);
}

.news_view_img a.view_image {
    display: block;
}

.news_view_content {
    line-height: var(--lh-185);
    color: var(--base-color-black);
    font-size: var(--em-0-95);
    word-break: break-all;
}

.news_view_content img {
    width: 65%;
    height: auto;
    display: block;
    margin: 0 auto;
}

.news_view_content a {
    color: var(--signature-color);
    text-decoration: underline;
}

.news_view_signature {
    margin-top: var(--space-30);
    font-size: var(--em-0-9);
    color: var(--base-color-black);
}

/* 추천/비추천 */
.news_view_act {
    display: flex;
    justify-content: center;
    gap: var(--space-12);
    padding: var(--space-30) 0;
    margin-bottom: var(--space-30);
    text-align: center;
}

.news_act_good,
.news_act_nogood {
    display: inline-flex;
    align-items: center;
    gap: var(--space-6);
    padding: var(--space-10) var(--space-24);
    border: 1px solid rgba(var(--color-black-rgb), 0.15);
    text-decoration: none;
    color: var(--base-color-black);
    font-size: var(--em-0-9);
    transition: border-color var(--transition-snappy);
}

.news_act_good:hover,
.news_act_nogood:hover {
    border-color: var(--signature-color);
    text-decoration: none;
}

.news_act_good strong,
.news_act_nogood strong {
    color: var(--signature-color);
}

#bo_v_act_good,
#bo_v_act_nogood {
    display: none;
    font-size: var(--em-0-85);
    color: var(--signature-color);
    margin-top: var(--space-6);
}

/* 첨부파일 */
.news_view_file {
    padding: var(--cv-news-1) 0;
    border-top: 1px solid rgba(var(--color-black-rgb), 0.1);
}

.news_view_section_title {
    font-size: var(--em-0-9);
    font-weight: var(--fw-600);
    color: var(--base-color-black);
    margin: 0 0 var(--space-12) 0;
}

.news_view_file ul {
    list-style: none;
    margin: 0;
    padding: 0;
}

.news_view_file li {
    padding: var(--space-8) 0;
}

.news_view_file a {
    text-decoration: none;
    color: var(--base-color-black);
    transition: color var(--transition-snappy);
}

.news_view_file a:hover {
    color: var(--signature-color);
}

.news_view_file a strong {
    font-weight: var(--fw-500);
}

.news_view_file span {
    display: inline-block;
    margin-left: var(--space-8);
    font-size: var(--em-0-85);
    color: var(--base-color-black);
}

/* 관련링크 — 레퍼런스 이미지 카드 포맷 (좌 썸네일 + 우 제목/요약/도메인) */
.raum-news-link_wrap {
    width: 65%;
    margin-left: auto;
    margin-right: auto;
    padding: var(--cv-news-1) 0;
    display: flex;
    flex-direction: column;
    gap: var(--cv-news-30);
}

.raum-news-link_label {
    text-align: center;
    font-size: var(--cv-news-31);
    font-weight: var(--fw-500);
    color: var(--base-color-black);
    letter-spacing: var(--em-0-02);
}

.raum-news-link_card {
    display: flex;
    align-items: stretch;
    gap: var(--cv-news-32);
    padding: var(--cv-news-3);
    text-decoration: none;
    color: var(--base-color-black);
    border: 1px solid rgba(var(--color-black-rgb), 0.08);
    background-color: var(--background-color);
    transition: border-color var(--transition-snappy), color var(--transition-snappy);
}

.raum-news-link_card_thumb {
    flex: 0 0 var(--cv-news-33);
    overflow: hidden;
    background-color: var(--background-color-gray);
    display: flex;
    align-items: center;
    justify-content: center;
}

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

.raum-news-link_card_body {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    position: relative;
    padding-bottom: var(--cv-news-34);
}

.raum-news-link_card_title {
    font-size: var(--cv-news-35);
    font-weight: var(--fw-600);
    line-height: var(--lh-135);
    color: var(--base-color-black);
    word-break: keep-all;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

.raum-news-link_card_desc {
    margin-top: var(--cv-news-36);
    font-size: var(--cv-news-31);
    line-height: var(--lh-155);
    color: rgba(var(--color-black-rgb), 0.7);
    word-break: keep-all;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.raum-news-link_card_domain {
    position: absolute;
    right: 0;
    bottom: 0;
    font-size: var(--cv-news-13);
    color: rgba(var(--color-black-rgb), 0.5);
    letter-spacing: var(--em-0-02);
}

@media (hover: hover) {
    .raum-news-link_card:hover {
        border-color: var(--signature-color);
        color: var(--signature-color);
        text-decoration: none;
    }
    .raum-news-link_card:hover .raum-news-link_card_title {
        color: var(--signature-color);
    }
}

/* 목록으로 (Design Works portfolio 동형) */
.raum-news-view_bottom {
    text-align: center;
    padding: var(--cv-news-16) 0;
}

.raum-news-btn_list {
    display: inline-block;
    padding: var(--space-12) var(--space-40);
    border: 1px solid var(--base-color-black);
    color: var(--base-color-black);
    text-decoration: none;
    font-size: var(--cv-news-15);
    transition: all var(--transition-snappy);
}

.raum-news-btn_list:hover {
    background: var(--signature-color);
    border-color: var(--signature-color);
    color: var(--base-color-white);
}

/* 이전글 / 다음글 카드 (2분할 nav, 카드 키움) */
.raum-news-view-nav {
    display: flex; flex-wrap: wrap;
    align-items: stretch;
    gap: var(--cv-news-37);
    margin-top: var(--cv-news-38);
    padding: var(--cv-news-38) 0;
    border-top: 1px solid rgba(var(--color-black-rgb), 0.1);
    border-bottom: 1px solid rgba(var(--color-black-rgb), 0.1);
}

.raum-news-related_col {
    flex: 1 1 18rem;
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    overflow: hidden;
}

.raum-news-related_col--prev {
    align-items: stretch;
}

.raum-news-related_col--next {
    align-items: stretch;
}

.raum-news-related_col--empty {
    opacity: var(--op-0);
    pointer-events: none;
}

.raum-news-related_card {
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: var(--cv-news-39);
    display: flex;
    align-items: stretch;
    gap: var(--cv-news-40);
    padding: var(--card-padding-lg) var(--card-padding);
    text-decoration: none;
    color: var(--base-color-black);
    border: 1px solid rgba(var(--color-black-rgb), 0.08);
    background-color: var(--background-color);
    transition: border-color var(--transition-snappy), color var(--transition-snappy);
    position: relative;
}

.raum-news-related_card_thumb {
    flex: 0 0 var(--cv-news-41);
    overflow: hidden;
    background-color: var(--background-color-gray);
    display: flex;
    align-items: center;
    justify-content: center;
}

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

.raum-news-related_card_body {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    position: relative;
    padding-bottom: var(--cv-news-42);
}

.raum-news-related_card_title {
    font-size: var(--cv-news-43);
    font-weight: var(--fw-600);
    line-height: var(--lh-135);
    color: var(--base-color-black);
    word-break: keep-all;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.raum-news-related_card_desc {
    margin-top: var(--cv-news-17);
    font-size: var(--cv-news-44);
    line-height: var(--lh-155);
    color: rgba(var(--color-black-rgb), 0.7);
    word-break: keep-all;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
}

.raum-news-related_card_domain {
    position: absolute;
    right: 0;
    bottom: 0;
    font-size: var(--cv-news-45);
    color: rgba(var(--color-black-rgb), 0.5);
    letter-spacing: var(--em-0-02);
}

@media (hover: hover) {
    .raum-news-related_card:hover {
        border-color: var(--signature-color);
        color: var(--signature-color);
        text-decoration: none;
    }
    .raum-news-related_card:hover .raum-news-related_card_title {
        color: var(--signature-color);
    }
}

/* 카드 하단 안내 텍스트 (← 이전뉴스 / 다음뉴스 →) */
.raum-news-related_card_nav {
    position: absolute;
    bottom: var(--cv-news-46);
    font-size: var(--cv-news-47);
    font-weight: var(--fw-500);
    color: var(--base-color-black);
    letter-spacing: var(--em-0-02);
    pointer-events: none;
}

.raum-news-related_col--prev .raum-news-related_card_nav {
    left: var(--cv-news-48);
}

.raum-news-related_col--next .raum-news-related_card_nav {
    right: var(--cv-news-48);
}

@media (hover: hover) {
    .raum-news-related_card:hover .raum-news-related_card_nav {
        color: var(--signature-color);
    }
}

/* 뷰 반응형 */
@media screen and (max-width: 768px) {
    .raum-news-view-title {
        font-size: var(--em-1-3);
    }

    .news_view_meta {
        gap: var(--space-10);
        font-size: var(--em-0-83);
    }

    .news_view_btns {
        flex-wrap: wrap;
    }
    .raum-news-related_col--empty {
        display: none;
    }

    .raum-news-view-nav {
        flex-wrap: nowrap;
    }

    .raum-news-related_col {
        flex: 1 1 0;
    }

    .raum-news-related_card_thumb,
    .raum-news-related_card_body {
        display: none;
    }

    .raum-news-related_card {
        min-height: 0;
        padding: 0;
        border: none;
        background: transparent;
        align-items: center;
    }

    .raum-news-related_col--prev .raum-news-related_card {
        justify-content: flex-start;
    }

    .raum-news-related_col--next .raum-news-related_card {
        justify-content: flex-end;
    }

    .raum-news-related_card_nav {
        position: static;
    }
}

@media (max-width: 480px) {
    .raum-news-related_card {
        padding: var(--space-12);
        gap: var(--space-12);
    }
    .raum-news-related_card_thumb {
        flex-basis: var(--space-88);
    }
    .raum-news-related_card_title {
        font-size: var(--space-15);
    }
    .raum-news-related_card_desc {
        font-size: var(--space-13);
    }
    .raum-news-link_card_thumb {
        flex-basis: var(--space-112);
    }
    .raum-news-link_card_title {
        font-size: var(--space-16);
    }
}
/* =========================
   글쓰기 페이지 (Design Works 기준 통일)
========================= */
body:has(.raum-news-write_page) header,
body:has(.raum-news-write_page) footer,
body:has(.raum-news-write_page) .raum-gnb-all,
body:has(.raum-news-write_page) #hd_login_msg {
    display: none;
}

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

.raum-news-write_page {
    display: flex;
    min-height: var(--svh-100);
}

.raum-news-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-news-49);
    background: var(--base-color-white);
}

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

.raum-news-write_logo img {
    width: var(--cv-news-50);
    height: auto;
}

.raum-news-write_sidebar_text {
    margin-top: var(--cv-news-18);
}

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

.raum-news-write_sidebar_reg {
    display: block;
    font-size: var(--cv-news-52);
    color: var(--color-gray-400);
    letter-spacing: var(--em-0-08);
    margin-top: var(--space-4);
}

.raum-news-write_sidebar_date {
    display: block;
    margin-top: var(--cv-news-18);
    font-size: var(--cv-news-45);
    color: var(--color-gray-300);
    letter-spacing: var(--em-0-1);
}

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

.raum-news-write_sidebar_slogan {
    display: block;
    font-family: var(--font-KR-base);
    font-size: var(--cv-news-15);
    color: var(--base-color-black);
    letter-spacing: var(--em-0-05);
}

.raum-news-write_sidebar_actions a,
.raum-news-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-news-write_sidebar_actions a:hover,
    .raum-news-write_sidebar_actions button:hover {
        background: var(--signature-color);
        color: var(--base-color-white);
        border-color: var(--signature-color);
    }
}

#raum-news-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);
}

@media (max-width: 768px) {
    .raum-news-write_page {
        flex-direction: column;
    }
    .raum-news-write_sidebar {
        position: relative;
        width: 100%;
        height: auto;
    }
}
/* 상단 .bo_btn_top 숨김 — 하단 통합 어드민바로 대체 */
.raum-news-board #bo_btn_top,
#bo_news #bo_btn_top {
    display: none;
}

.raum-news-board .all_chk,
#bo_news .all_chk {
    display: none;
}

/* =========================
   관리자바 (Design Works 기준 — portfolio 패턴)
========================= */
.raum-news-admin_bar {
    position: fixed;
    bottom: var(--cv-news-38);
    left: 50%;
    transform: translateX(-50%);
    z-index: var(--z-999);
    display: flex;
    align-items: center;
    gap: var(--cv-news-54);
    padding: var(--cv-news-55) var(--cv-news-56);
    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-news-admin_bar_divider {
    width: var(--px-1);
    margin: 0 var(--cv-news-57);
    height: var(--space-20);
    background: rgba(var(--color-white-rgb), 0.2);
    flex-shrink: 0;
}

.raum-news-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-news-admin_bar_chk input[type="checkbox"] {
    position: absolute;
    opacity: var(--op-0);
    width: 0;
    height: 0;
}

.raum-news-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-news-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-news-admin_bar_chk input[type="checkbox"]:checked + .raum-news-admin_bar_chk_box {
    background: rgba(var(--color-white-rgb), 0.35);
}

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

.raum-news-admin_bar_btn,
a.raum-news-admin_bar_btn,
a.raum-news-admin_bar_btn:link,
a.raum-news-admin_bar_btn:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--cv-news-58);
    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-news-admin_bar_btn:hover,
    a.raum-news-admin_bar_btn:hover {
        background: rgba(var(--color-white-rgb), 0.18);
        color: var(--signature-color);
    }
}

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

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



/* ========== 본문 영역 (Design Works portfolio meta_content_row + auto textarea) ========== */
.raum-news-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-news-59);
    line-height: var(--lh-19);
    font-family: var(--font-KR-base);
    color: var(--color-gray-600);
    padding: var(--cv-news-60);
    outline: none;
    box-sizing: border-box;
    resize: vertical;
}

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

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

.raum-news-w_meta_content_row {
    display: flex;
    gap: var(--cv-news-61);
    align-items: flex-start;
    margin-top: var(--cv-news-3);
}

.raum-news-w_meta_left {
    flex-shrink: 0;
    width: var(--cv-news-62);
    display: flex;
    flex-direction: column;
    gap: var(--cv-news-53);
}

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

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

@media (max-width: 768px) {
    .raum-news-w_meta_content_row {
        flex-direction: column;
    }

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

.raum-news-w_content_textarea.raum-news-w_content_textarea--auto {
    height: var(--cv-news-63);
    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-news-w_content_textarea.raum-news-w_content_textarea--auto:focus {
    border: none;
}



/* ========== 옵션 체크박스 (Design Works portfolio top_chk 패턴) ========== */
/* 한 줄씩 세로 배치 */
.raum-news-w_options {
    display: flex;
    flex-direction: column;
    gap: var(--cv-news-64);
    margin-top: var(--cv-news-17);
}

.raum-news-w_top_chk_label {
    display: inline-flex;
    align-items: center;
    cursor: pointer;
    gap: var(--space-8);
}

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

.raum-news-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-news-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-news-w_top_chk_label input[type="checkbox"]:checked + .raum-news-w_top_chk_box {
    background: var(--color-gray-200);
}

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

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

.raum-news-w_top_chk_text {
    font-size: var(--cv-news-15);
    color: var(--color-gray-600);
}

/* slider_hint (파일 그리드 상단 라벨) */
.raum-news-w_slider_hint {
    font-size: var(--cv-news-15);
    color: var(--color-gray-600);
    margin: 0 0 var(--cv-news-17);
    text-align: center;
}

.raum-news-w_slider_hint span {
    color: var(--color-gray-400);
    margin-left: var(--space-6);
}

/* photo_grid (파일 5열 그리드) */
.raum-news-w_photo_grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cv-news-65);
    margin-top: var(--cv-news-66);
}

.raum-news-w_photo_grid > * {
    flex: 0 1 calc((100% - var(--cv-news-67) * 4) / 5);
    box-sizing: border-box;
}

.raum-news-w_slide_item {
    display: flex;
    flex-direction: column;
    gap: var(--cv-news-24);
}

.raum-news-w_file_del_chk {
    position: absolute;
    opacity: var(--op-0);
    pointer-events: none;
}

.raum-news-w_upload_plus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--space-24);
    height: var(--space-24);
    font-size: var(--space-20);
    color: var(--color-gray-400);
}

.raum-news-w_img_label[style*="--bg-url"] {
    background-image: var(--bg-url);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.raum-news-w_img_label[style*="--bg-url"] .raum-news-w_img_placeholder {
    opacity: var(--op-0);
}


/* ========== 첨부 파일 4컬럼 그리드 (flex space-between) ========== */
.raum-news-w_file_grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--cv-news-38) var(--cv-news-49);
}

.raum-news-w_file_item {
    flex: 0 0 calc((100% - var(--cv-news-49) * 3) / 4);
    display: flex;
    flex-direction: column;
    gap: var(--cv-news-64);
    box-sizing: border-box;
}

.raum-news-w_file_box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--cv-news-24);
    height: var(--cv-news-68);
    background: rgba(var(--color-black-rgb), 0.03);
    border: 1px dashed rgba(var(--color-black-rgb), 0.15);
    cursor: pointer;
    transition: background var(--transition-snappy), border-color var(--transition-snappy);
}

.raum-news-w_file_box:hover {
    background: rgba(var(--color-black-rgb), 0.06);
    border-color: var(--signature-color);
}

.raum-news-w_file_box_label {
    font-size: var(--cv-news-19);
    color: var(--color-gray-600);
}

.raum-news-w_file_box_plus {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--space-24);
    height: var(--space-24);
    font-size: var(--space-20);
    color: var(--color-gray-400);
}

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

.raum-news-w_file_desc {
    width: 100%;
    border: none;
    border-bottom: 1px solid rgba(var(--color-black-rgb), 0.08);
    background: transparent;
    font-size: var(--cv-news-19);
    color: var(--color-gray-380);
    padding: var(--cv-news-69) 0;
    outline: none;
}

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

@media (max-width: 768px) {
    .raum-news-w_file_item {
        flex: 0 0 calc((100% - var(--cv-news-67)) / 2);
    }
}
