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

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

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

:root, :root .v-light, :root .v-light-head {
  --bg-color: #F3F3F3;
  --assistant-color: #E9E9E9;
  --theme-color: #fff;
  --theme-color-font: #fff;
  --font-color: #5c5c5c;
  --heading-color: #000;
  --border-color: #dcdcdc;
  --smooth-color: #141414;
  --reverse-color: #141414;
  --reverse-heading-color: #fff;
  --bg-btn: #f6fafd;
  /**
     Elementor color
  */
  --divider-color: var(--border-color);
}
:root .background-theme, :root.background-theme, :root .calendar_wrap table tr td#today, :root .v-light .background-theme, :root .v-light.background-theme, :root .v-light .calendar_wrap table tr td#today, :root .v-light-head .background-theme, :root .v-light-head.background-theme, :root .v-light-head .calendar_wrap table tr td#today {
  --heading-color: #fff;
  --font-color: #fff;
  color: var(--font-color);
}

:root .v-dark, :root .v-dark-head {
  --bg-color: #111;
  --assistant-color: #171717;
  --theme-color: #89f4ff;
  --font-color: #d9d9d9;
  --heading-color: #fff;
  --border-color: #373737;
  --smooth-color: #f9f9f9;
  --reverse-color: #f9f9f9;
  --reverse-heading-color: #000;
  --bg-btn: #0a0909;
}

@media only screen and (max-width: 991px) {
  .v-dark-head-mobile {
    --bg-color: #111;
    --assistant-color: #171717;
    --theme-color: #89f4ff;
    --font-color: #d9d9d9;
    --heading-color: #fff;
    --border-color: #373737;
    --smooth-color: #f9f9f9;
    --reverse-color: #f9f9f9;
    --reverse-heading-color: #000;
    --bg-btn: #0a0909;
  }
}
:root {
  --body-font: 'GMarketSans';
  --heading-font: 'GMarketSans';
  --font-code: Menlo, monaco, Consolas, Lucida Console, monospace;
  --font-pre: "Satisfy", cursive;
  --font-size-base: 15px;
  --font-size-h1: 40px;
  --font-size-h2: 35px;
  --font-size-h3: 30px;
  --font-size-h4: 25px;
  --font-size-h5: 22px;
  --font-size-h6: 16px;
  --menu-size: 12px;
  --line-height-base: 1.5;
  --line-height-content: 1.8;
  --font-weight-heading: 600;
  --font-weight-body: 500;
  --smooth-width: 4px;
  --bg-overlay: #000;
  --overlay-blend-mode: unset;
}

/* 1) 제목/헤더류까지 전부 G마켓 산스로 */
:root {
  --heading-font: 'GMarketSans';
}
@import url('https://fonts.googleapis.com/css2?family=Antonio:wght@400;700&display=swap');
h2 {
  font-family: 'Antonio', sans-serif;
}

h2.title{
  font-family: 'Antonio', sans-serif;
}
h3 {
  font-family:   'GMarketSans';
}


.dsn-service .tab-title,
.dsn-service .heading-color,
.dsn-service .accordion__question h2,
.dsn-service .accordion__answer p {
  font-family: 'GMarketSans' !important;
  letter-spacing: -0.03em;
}


@media only screen and (min-width: 1400px) {
  :root {
    --dsn-gap-container: 100px;
    --title-heading: 65px;
  }
  :root .container, :root .dsn-left-container, :root .dsn-right-container {
    --dsn-gap-container: 50px;
  }
}
@media only screen and (max-width: 1399px) {
  :root {
    --dsn-gap-container: 50px;
    --title-heading: 65px;
  }
}
@media only screen and (max-width: 1200px) {
  :root {
    --title-heading: 65px;
  }
}
@media only screen and (min-width: 992px) {
  :root {
    --margin-padding: 120px;
    --box-padding: 80px 40px;
  }
  :root .d-lg-none {
    display: none;
  }
}
@media only screen and (max-width: 991px) {
  :root {
    --margin-padding: 80px;
    --box-padding: 60px var(--dsn-gap-container);
    --title-heading: 45px;
  }
}
@media only screen and (min-width: 768px) and (max-width: 991px) {
  :root {
    --dsn-gap-container: 40px;
  }
}
@media only screen and (min-width: 576px) and (max-width: 767px) {
  :root {
    --dsn-gap-container: 25px;
    --title-heading: 47px;
  }
}
@media only screen and (max-width: 575px) {
  :root {
    --dsn-gap-container: 15px;
    --title-heading: 37px;
  }
}




/* -------------------------------------------------------
                   Core
-------------------------------------------------------- */
html {
  font-size: var(--font-size-base);
  scroll-behavior: initial;
}

body {
  background-color: #1e1e1e;
  color: var(--font-color);
  line-height: var(--line-height-base);
  font-family: var(--body-font);
  font-weight: var(--font-weight-body);
  margin: 0;
  text-rendering: optimizeLegibility;
  transition: 100ms;
  transition-property: background-color, color;
  width: 100%;
  min-height: 100%;
}

/* 크기는 필요시 조정하세요 */
.about_visual{
  --wrap: 500px;         /* 전체 박스 크기 */
  --ring: 420px;         /* 회색 불투명 원 지름 */
  --core: 170px;         /* 흰 원 지름 */
  --node: 180px;          /* 파란 원 지름 */
  --speed: 50s;          /* 한 바퀴 시간 */

  position: relative;
  width: var(--wrap);
  height: var(--wrap);
  display: flex;
  align-items: center;
  justify-content: center;
    opacity: 1 !important;
  transform: none !important;
  transition: none !important;
  animation: none !important;
}

/* 회색 불투명 원 */
.about_visual .ring{
  position:absolute;
  width: var(--ring);
  height: var(--ring);
  background: #fff;
  border-radius: 50%;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
}

/* 중앙 흰 원 + ADFi (회전 없음) */
.about_visual .core{
  position:absolute;
  width: var(--core);
  height: var(--core);
  background:#000;
  color:#87f4ff;
  box-shadow: 5px 5px 10px gray;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-weight:800; font-size:42px;
  top:50%; left:50%; transform:translate(-50%, -50%);
  z-index: 3;
}

.floating-adfi {
  position: fixed;
  bottom: 40px;     /* 화면 하단 여백 */
  right: 20px;      /* 화면 오른쪽 여백 */
  z-index: 9999;    /* 항상 맨 위에 보이게 */
}

.floating-adfi2 {
  position: fixed;
  bottom: 170px;     /* 화면 하단 여백 */
  right: 20px;      /* 화면 오른쪽 여백 */
  z-index: 9999;    /* 항상 맨 위에 보이게 */
}


.circle-container {
  position: relative;
  width: 90px;
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 회전 텍스트 */
.circle-text {
  position: absolute;
  top: 10;
  left: 10;
  width: 150px;
  height: 150px;
  animation: rotateText 15s linear infinite;
  transform-origin: center;
}

@keyframes rotateText {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* 중앙 원 */
.center-circle {
  width: 80px;
  height: 80px;
  background-color: #87f4ff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 로고 텍스트 */
.logo-text {
  font-size: 22px;
  font-weight: 700;
  color: #000;
}

/* i 점만 통통 튀는 효과 */
.i-animate {
  position: relative;
  display: inline-block;
}

.contact-text {
  display: block;
  margin-top: 4px;
  text-align: center;
}

.i-animate::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 50%;
  width: 0.25em;
  height: 0.25em;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -50%);
  animation: bounceDot 1s ease-in-out infinite;
}

.i-animate2 {
  position: relative;
  display: inline-block;
}

.i-animate2::after {
  content: "";
  position: absolute;
  top: 1px;
  left: 50%;
  width: 0.25em;
  height: 0.25em;
  border-radius: 50%;
  background: #87f4ff;
  transform: translate(-50%, -50%);
  animation: bounceDot 1s ease-in-out infinite;
}



@keyframes bounceDot {
  0%, 100% { transform: translate(-50%, -50%) translateY(0); }
  50% { transform: translate(-50%, -50%) translateY(-5px); }
}

.blog-menu{
  color: #fff;
  transition: color 0.3s ease;
}

.blog-menu:hover{
  color: #87f4ff;
}

/* 파란 원들이 도는 트랙(이 컨테이너만 회전) */
.about_visual .track{
  position:absolute;
  inset: 0;
  animation: spin var(--speed) linear infinite;
  z-index: 2; /* 흰 원보다 아래, 회색 원보다 위 */

}

/* 파란 원 노드 */
.about_visual .node{
  position:absolute;
  top:30%; left:30%;
  width: var(--node); height: var(--node);
  border-radius:50%;
  background:#89f4ff;
  display:flex; align-items:center; justify-content:center;
  font-weight:800;
  /* 🔵 파란 원의 중심을 '불투명 원의 바깥 둘레'에 맞춤
     = (ring/2) + (node/2) - 2px(시각 보정) */
  --radius: calc(var(--ring) / 2 + var(--node) / 2 - 70px);
  animation: nodeOrbit var(--speed) linear infinite;
}

/* 글씨를 정방향으로 유지 */
.about_visual .node span{
  will-change: transform;
  animation: keepUpright var(--speed) linear infinite;
  color: #000;
  font-size: 20px;
  font-weight: 700;
  
}

/* 회전 키프레임 */
@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* 각 노드 궤도 이동(노드 자체 각도 + 반지름 이동) */
@keyframes nodeOrbit {
  from {
    transform: rotate(var(--angle)) translate(var(--radius)) rotate(calc(-1 * var(--angle)));
  }
  to {
    transform: rotate(calc(var(--angle) + 360deg)) translate(var(--radius)) rotate(calc(-1 * (var(--angle) + 360deg)));
  }
}

/* 내부 텍스트는 노드의 회전에 대해 역회전하여 항상 똑바로 */
@keyframes keepUpright {
  from { transform: rotate(0deg); }
  to   { transform: rotate(-360deg); }
}
.timeline{
  --step-w: 250px;          /* 스텝 너비 */
  --max-h: 600px;           /* 가장 높은 스텝 높이(마지막 스텝과 동일) */
  --cols: 6;                /* 스텝 개수 */
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 0; 
}

/* 공통 스텝 스타일 */
.step{
  width: var(--step-w);
  height: var(--h);
  position: relative;
  display: flex;
  justify-content: center;
  align-items: flex-start;


  /* 🔥 모든 스텝이 같은 큰 그라데이션 이미지를 공유 */
  background-image: linear-gradient(#fff, #111);
  background-repeat: no-repeat;
  background-size: calc(var(--step-w) * var(--cols)) var(--max-h);

  /* 각 스텝 위치에 맞게 ‘잘라보기’ (X는 인덱스, Y는 높이 보정) */
  background-position:
    calc(var(--index) * -1 * var(--step-w))
    calc((var(--max-h) - var(--h)) * -1);
}

/* 스텝 인덱스 지정 (0부터) */
.step:nth-child(1){ --index: 0; }
.step:nth-child(2){ --index: 1; }
.step:nth-child(3){ --index: 2; }
.step:nth-child(4){ --index: 3; }
.step:nth-child(5){ --index: 4; }
.step:nth-child(6){ --index: 5; }

.label{
  position: absolute;
  top: -56px;
  width: 100%;
  text-align: center;
}
.label p{
  font-size: 14px;
  line-height: 1.25;
  color: #fff;
  margin: 0 0 25px;
}
.label span{
  display: block;
  font-size: 26px;
  font-weight: 800;
  color: #fff;
}



.tab-container {font-family:inherit; max-width:100%; margin-bottom:50px;}
.tab-buttons {position:relative; left: 30%; top:-30px; display:flex; width: 800px; height:50px; gap: 50px;}
.tab-btn {flex:1; padding:12px; cursor:pointer; background:#fff; outline:none; border-radius:50px;
  font-size:16px; transition:background .3s; border: 1px solid #000;
}
.tab-btn:hover {background:#e0e0e0;}
.tab-btn.active {background:#89f4ff;color:#000;}
.tab-content {display:none;}

/* --- 슬라이더 --- */
.skin_slider-container{
  position:relative;
  width:100%;
  height:900px;
  margin:0 0 -250px 0;
  overflow:hidden;
}
.skin_slider{ display:flex; transition:transform .5s ease; margin-top: 30px;}
.skin_slide{ min-width:33.3333%; box-sizing:border-box; padding:0 10px; }
.skin_slide img{
  width:100%; height:100%; object-fit:cover;
}
.skin_prev,.skin_next{
  position:absolute; top:50%; transform:translateY(-50%);
  border:0; padding:10px; font-size:22px; color:#fff;
  background:rgba(0,0,0,.45); border-radius:999px; cursor:pointer; z-index:2;
}
.skin_prev{ left:550px; top:200px; }
.skin_next{ right:550px; top:200px; }

.skin_overlay{
  position:absolute; top:33%; left:50%; transform:translate(-50%,-50%);
  z-index:5; pointer-events:none;
}

  
.skin_overlay img{ width:650px; height:590px; }

/* --- 가운데 정렬 텍스트 버튼 --- */
.skin_guide{
  position:relative; 
  top: 28px;
  display:inline-block;              /* 버튼처럼 */
  margin:16px auto 0;                /* 위쪽 여백 + 가운데 정렬 */
  padding:10px 16px;
  background-color:#d1d1d1;
  border:1px solid #eee;
  border-radius:10px;
  cursor:pointer; user-select:none;
  font-size:16px; line-height:1;
  color:#000;
  left:50%; transform: translateX(-50%); /* 중앙 정렬 보강 */
  z-index: 10;
}
.skin_guide:active{ transform: translateX(-50%) scale(.98); }

/* --- 모달 --- */
.skin_modal{ display:none; position:fixed; inset:0; z-index:999; }
.skin_modal.is-open{ display:block; }
.skin_modal_backdrop{ position:absolute; inset:0; background:rgba(0,0,0,.7); }
.skin_modal_content{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(92vw, 900px);
}
.skin_modal_content img{ width:100%; height:auto; display:block; border-radius:8px; }
.skin_close{
  position:absolute; top:-40px; right:0;
  color:#fff; font-size:32px; background:transparent; border:none; cursor:pointer;
}

/* 반응형 (필요하면 조절) */
@media (max-width:820px){
  .skin_slide{ min-width:50%; }
}




.contact-section {
  display: flex;
  flex-direction: column;
  background: #111;
  color: #fff;
  padding: 60px 80px;
}

.contact-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.vertical-text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 12px;
  color: #ccc;
}

.contact-container {
  display: flex;
  margin-top: 50px;
  gap: 80px;
}

.contact-left h2 {
  font-size: 48px;
  font-weight: 700;
  line-height: 1.2;
}

.contact-form {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-row {
  display: flex;
  gap:10px;
}

.form-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.select-group {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.select-group button {
  background: transparent;
  border: 1px solid #555;
  color: #fff;
  padding: 8px 12px;
  border-radius: 20px;
  cursor: pointer;
}

.select-group button.active {
  color: #87f4ff;
  border: 1px solid #87f4ff;
}

.send-btn {
  background: #87f4ff;
  color: #000;
  padding: 12px 0;
  border: none;
  border-radius: 25px;
  font-weight: 600;
  cursor: pointer;
}

.contact-form .form-group {
  margin-bottom: 20px; /* 🔹입력창 사이 여백 (기본 10~15px → 넓게 24px) */
}

/* 하단 textarea(문의 내용)와 버튼 사이 여백도 맞춤 */
.contact-form textarea {
  margin-bottom: 28px;
}

.contact-form input,
.contact-form textarea {
  width: 100%;
  border: none;                /* 기본 테두리 제거 */
  border-bottom: 2px solid #ccc; /* 하단 라인만 표시 */
  background: transparent;     /* 배경 투명 */
  outline: none;               /* 클릭 시 파란 테두리 제거 */
  padding: 10px 0;              /* 위아래 여백 조정 */
  font-size: 16px;
  transition: border-color 0.3s;
  caret-color: #87f4ff;
  color: #fff;
  font-weight: 300;
}


/* 포커스 시 색상 강조 */
.contact-form input:focus,
.contact-form textarea:focus {
  border-bottom-color: #87f4ff;  /* 밑줄 색 변경 */
}

/* placeholder 색상 흐리게 */
.contact-form input::placeholder,
.contact-form textarea::placeholder {
  color: #aaa;
}

.contact-form textarea[name="message"] {
  border: 1px solid #ccc;   /* 테두리 색상 */
  border-radius: 8px;          /* 모서리 둥글게 */
  padding: 12px 15px;
  background-color: transparent;
  resize: vertical;            /* 크기 조절 가능 */
}

.contact-form textarea[name="message"]:focus {
  border-color: #87f4ff;       /* 포커스 시 색상 강조 */
}

.privacy-box {
  background-color: #1a1a1a;     /* 어두운 배경 */
  color: #ccc;                   /* 텍스트 색상 */
  border: 1px solid #333;        /* 테두리 */
  border-radius: 6px;
  padding: 16px;
  max-height: 180px;             /* 🔹 높이 제한 */
  overflow-y: auto;              /* 🔹 내부 스크롤 활성화 */
  font-size: 14px;
  line-height: 1.6;
  margin-top: 10px;
  margin-bottom: 10px;
}

/* 스크롤바 스타일 (선택사항, modern chrome/safari 지원) */
.privacy-box::-webkit-scrollbar {
  width: 6px;
}
.privacy-box::-webkit-scrollbar-thumb {
  background-color: #87f4ff;
  border-radius: 3px;
}

/* 체크박스 정렬 */
.agree-label {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  color: #fff;
}
.agree-label input[type="checkbox"] {
  width: 18px;
  height: 18px;
  accent-color: #87f4ff;
  cursor: pointer;
}

.rotated-text-wrap {
  position: absolute;
  top: 350px;          /* 원하는 위치 조정 */
  left: 240px;
  transform: rotate(-90deg);     /* 전체 박스를 왼쪽으로 90도 회전 */
  transform-origin: left top;    /* 회전 기준점 */
}

.rotated-text {
  display: inline-block;
  font-family: 'GMarketSans', sans-serif;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 2px;
  color: #000;
  white-space: nowrap; /* 줄바꿈 방지 */
}

.select-group button{
  width: 150px;

}

.toggle-btn {
  background: none;
  border: 1px solid #87f4ff;
  color: #87f4ff;
  padding: 6px 12px;
  border-radius: 20px;
  cursor: pointer;
  font-size: 14px;
  margin-bottom: 10px;
  transition: all 0.3s ease;
}
.toggle-btn:hover {
  background-color: #87f4ff;
  color: #000;
}

.toggle-text {
  background: none;
  border: none;
  color: #87f4ff;
  font-size: 15px;
  cursor: pointer;
  padding: 0;
  margin: 8px 0;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.3s ease;
}

.toggle-text:hover {
  color: #87f4ff;
}

.privacy-header {
  display: flex;
  justify-content: space-between; /* 양쪽 정렬 */
  align-items: center;            /* 수직 가운데 정렬 */
  margin-bottom: 8px;
}

/* 텍스트형 더보기/닫기 */
.toggle-text {
  background: none;
  border: none;
  color: #87f4ff;
  font-size: 15px;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color 0.3s ease;
}

.toggle-text:hover {
  color: #87f4ff;
}


.process {
  opacity: 0;
  transform: translateY(60px);
  transition: all 0.8s ease-out;
  margin-bottom: 150px;
}


.process.visible {
  opacity: 1;
  transform: translateY(0);
}



.services-item{
  height: 400px;
}

.vertical-marquee {
  position: absolute;
  top: 50%;
  left:200px; /* 여백 조정 */
  transform: rotate(-90deg) translate(-50%, -50%);
  transform-origin: left top;
  white-space: nowrap;
  width: 1000px; /* 문구 길이에 맞게 조절 */
  z-index: 10;
}

.vertical-marquee .dsn-text-marquee {
  font-size: 70px;  /* 글씨 크기 */
  letter-spacing: 2px;
  color: #000;      /* 흰 배경에서 잘 보이게 */
}

.pay{
  width: 200px;
  height: 40px;
  background-color: #fff;
  border-radius: 50px;
  font-size: 23px;
  line-height: 40px;
  border: 2px solid #87f4ff;
  margin-top: 50px;
  font-weight: 500;
  text-align: center;
}

.pay:hover{
  background-color: #87f4ff;
  
}


/* 이미지 오버레이가 클릭을 가로채지 않게 */
.box-image::before {
  pointer-events: none;
}

/* 앵커가 오버레이 위로 올라오도록 */
.box-image a {
  position: relative;
  z-index: 2;
  display: block;      /* 이미지 전체가 클릭 영역이 되도록 */
  height: 100%;
}
.box-image::before {
  pointer-events: none;
  z-index: 1 !important;
}

/* 이미지 자체 */
.box-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 텍스트 */
.image-label {
  position: absolute;
  width: 80px;
  height: 30px;
  top: 20px;
  left: 20px;
  color: #fff;
  font-size: 14px;
  z-index: 5; /* 오버레이보다 위 */
  pointer-events: none; /* 클릭 이벤트는 앵커로 통과 */
  background-color: #000;
  border-radius: 20px;
  text-align: center;
  line-height: 30px;
  font-weight: 500;

}

.dsn-item-post .box-image {
  height: 450px; /* 원하는 높이로 조정 */
}


.service-wrapper {  
  display: flex;
  justify-content: center; /* 전체 가운데 정렬 */
  gap: 100px;
}

.day, .month{
  height: 420px;
  width: 550px;
  background-color: #505050;
  color: #fff;
  text-align: center;
  display: flex;
  align-content: center;
  flex-direction: column;
  justify-content: center; 
  align-items: center;
  border-radius: 20px;
  border: none;
}

.rankup_name{
  width: 120px;
  height: 35px;
  font-size: 20px;
  line-height: 35px;
  background-color: #2F2F2F;
  border-radius: 20px;
  margin-bottom: 20px;
}

.rankup_text{
  background-color: #cacaca;
  width: 390px;
  height: 100px;
  font-size: 20px;
  border-radius: 10px;
  display: flex;
  justify-content: center; 
  align-items: center;    
  text-align: center;
  margin-top: 20px;
  color: #000;
}

.day:hover, .month:hover {
  border: 3px solid #fff;
  background-color: #FF9335;
}

.day:hover .rankup_name,
.month:hover .rankup_name{
  background-color: #fff;
  color: #FF9335
}

.day:hover .rankup_text,
.month:hover .rankup_text{
  background-color: #fff;
  color: #AA5B0B;
  font-weight: 700;
}

.box-img .d-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* 가로 2개 */
    gap: 20px;
}

.rank_up .box-img {
    width: 50vw;
    margin-left: calc(100% - 35vw);
}

.rank_up .left-wrap {
    min-height: 1800px;
}

.rank_up .d-grid {
    align-items: stretch;
}
.rank_up .pinned-element {
    height: 100%;
}

.experience, .delivery{
  height: 420px;
  width: 500px;
  color: #fff;
  text-align: center;
  display: flex;
  align-content: center;
  flex-direction: column;
  justify-content: center; 
  align-items: center;
  border-radius: 20px;
  border: none;
}

.reviewer_text{
  background-color: #ffffff;
  width: 390px;
  height: 150px;
  font-size: 17px;
  border-radius: 10px;
  display: flex;
  justify-content: center; 
  align-items: center;    
  text-align: center;
}

.reivewer_name{
  background-color: #fff;
  font-weight: 700;
  width: 120px;
  height: 35px;
  font-size: 20px;
  line-height: 35px;
  border-radius: 20px;
  margin-bottom: 20px;
}

.filtering-t .filtering-wrap .filtering button.active {
    color: #000 !important;
    background-color: #87f4ff;
    border-radius: 20px;
    font-weight: 700;
}

.report_name{
  background-color: #fff;
  font-weight: 700;
  width: 170px;
  height: 35px;
  font-size: 20px;
  line-height: 35px;
  border-radius: 20px;
  margin-bottom: 20px;
}

.report_text{
  background-color: #ffffff;
  width: 420px;
  height: 140px;
  font-size: 17px;
  border-radius: 10px;
  display: flex;
  justify-content: center; 
  align-items: center;    
  text-align: center;
}

.compare-container {
    width: 100%;
    display: flex;
    justify-content: center;
    gap: 0;
    padding: 50px 0;
    position: relative;
  margin-left: -50px;
}

/* 왼쪽 라벨 영역 */
.label-box {
  position: relative;
    width: 160px;
    background: #fff;
    border-radius: 18px 0 0 18px;
    box-shadow: 0 4px 25px rgba(0,0,0,0.1);
    display: flex;
    flex-direction: column;
  height: 270px;
  top: 280px;
  text-align: center;
  color: #000;
}

.label-item {
    padding: 30px;
    font-size: 20px;
    font-weight: bold;
    border-bottom: 1px solid #ddd;
}

.label-item:last-child {
    border-bottom: none;
}

/* 체험단/기자단 공통 박스 */
.exp-box {
   position: relative;
    width: 400px;
  height:550px; 
    background: #D9D9D9;
    border-radius: 18px 0 0 0 ;
    box-shadow: 0 4px 25px rgba(0,0,0,0.15);
    padding: 30px;
    margin-left: -20px;
  color: #000;
}

.report-box {
  position: relative;
  top: -20px;
  width: 420px;
  height:600px; 
  background: #B774FA;
  border-radius: 18px;
  box-shadow: 0 4px 25px rgba(0,0,0,0.15);
  padding: 30px;
  margin-left: -20px;
  border: 3px solid #fff;
  color: #fff;
  font-weight: 700; 
  align-content: center;
}

.main-img {
    width: 100%;
    border-radius: 15px;
    margin: 15px 0 25px 0;
}

/* 태그 */
.tag {
  position: absolute;
   top: -20px; 
  left:35%;
  width: 120px;
  height: 40px;
    border-radius: 30px;
    font-size: 25px;
    font-weight: 700;
  line-height: 40px;
    color: #fff;
    text-align: center;
}

.exp-tag {
    background: #333;
  border: 2px solid #919191;
}

.report-tag {
  
  position: absolute;
   top: -20px; 
  left:32%;
  width: 150px;
  height: 50px;
    border-radius: 30px;
    font-size: 30px;
    font-weight: 700;
  line-height: 50px;
    color: #fff;
    text-align: center;
    background: #A657FF;
  border: 4px solid #fff;
}

/* 텍스트 */
.exp-text {
    font-size: 17px;
    text-align: center;
    line-height: 26px;
    margin-bottom: 20px;
}

.report-text {
  margin-top: 10px;
    font-size: 20px;
    text-align: center;
    line-height: 26px;
    margin-bottom: 20px;
}

/* 구분선 */
.divider {
    width: 100%;
    height: 1px;
    background: #A2A2A2;
    margin: 20px 0;
}

.divider.purple {
    background: #d9b1ff;
}

.compare-section-bg {
    background: linear-gradient(to bottom, #202020 72%, #F4F4F4 30%);
}

.cafe{
  width: 400px;
  height: 580px;
  border-radius: 15px;
}

.cafe .name{
  margin: 0 auto;
  width: 40%;
  background-color: #fff;
  height: 30px;
  text-align: center;
  font-size: 20px;
  line-height: 34px;
  border-radius: 50px;
  margin-top: 20px;
  font-weight: 700;
  margin-bottom: 20px;
}

.cafe .text{
  margin: 0 auto;
  width: 330px;
  height: 120px;
  background-color: #fff;
  margin-top: 30px;
}

.cafe .text p{
  padding: 6px;
  color: #4E4E4E;
  font-weight: 700;
  margin: 0 auto;
  text-align: center;
}

.line{
  margin: 0 auto;
  width: 80%;
  border: 1px dashed #DEBC33;
}
.dsn-cards.root-posts.img-h80 .dsn-grid-layout.dsn-grid {
    display: grid !important;
    grid-auto-flow: column;               /* 가로로 나열 */
    grid-auto-columns:600px;             /* 카드 실제 너비 (원본의 약 70% 정도) */
    gap: 0 !important;
    column-gap: 0 !important;
    row-gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* 2. 각 카드 박스 여백 제거 + 실제 폭 고정 */
.dsn-cards.root-posts.img-h80 .dsn-item-post.grid-item {
    margin: 0 !important;
    padding: 10px !important;
    min-width: 600px !important;          /* 위에 grid-auto-columns와 맞춤 */
    width: 600px !important;
}

/* 3. 이미지 박스도 꽉 차게 & 세로 크기 줄이기 */
.dsn-cards.root-posts.img-h80 .box-image-bg {
    margin: 0 !important;
    padding: 0 !important;
    height: 600px !important;             /* 세로 크기 (원하는 만큼 조절 가능) */
    border-radius: 15px;                  /* 기존 둥근 모서리 유지하고 싶으면 */
    overflow: hidden;
}

/* 4. 이미지가 박스를 꽉 채우도록 */
.dsn-cards.root-posts.img-h80 .box-image-bg .cover-bg-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* 5. 바깥 래퍼 패딩 제거 */
.dsn-cards.root-posts.img-h80 {
    padding: 0 !important;
    margin: 0 auto !important;
}

.account-section {
    background: linear-gradient(
        to bottom,
        #202020 0%,
        #202020 80%,
        #ffffff 80%,
        #ffffff 100%
    );
}
.hover-box {
    position: relative;
    width: 450px;
    border-radius: 10px;
    overflow: hidden;
}

.hover-box img {
    width: 100%;
    display: block;
}

.hover-box .overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 700;
    color: #fff;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.hover-box:hover .overlay {
    opacity: 1;
}

.namecard .overlay {
    background-color: rgba(1, 163, 240, 0.7);  
}

.menuboard .overlay {
    background-color: rgb(255, 185, 65, 0.7); 
}

.banner .overlay {
    background-color: rgb(62, 186, 129, 0.7); 
}

.detailpage .overlay {
    background-color: rgb(255, 102, 145, 0.7);
}

.blogdesign .overlay {
    background-color: rgb(220, 131, 92, 0.7);
}

.logodesign .overlay {
    background-color: rgb(183, 90, 220, 0.7); 
}

.hover-box img {
    transition: transform 0.3s ease;
}

.hover-box:hover img {
    transform: scale(1.2);
}





.design-slider-section{
  width: 90%;
  justify-content: center;
  display: block; /* flex/center 쓰지마 */
  padding-left: 0;
}

/* ✅ 핵심: viewport를 화면 전체폭으로 만들고, 오른쪽은 0 */
.design-slider-viewport{
  overflow-x: auto;   /* ✅ 가로 스크롤 가능 */
  overflow-y: hidden; /* ✅ 세로는 숨김 */
  scroll-behavior: smooth;

  margin: 0;
  padding-right: 0;
  box-sizing: border-box;

  -ms-overflow-style: none;  /* IE/Edge */
  scrollbar-width: none;     /* Firefox */
}
.design-slider-viewport::-webkit-scrollbar{
  display: none; /* Chrome/Safari */
}

/* track */
.design-slider-track{
  display: flex;
  gap: 30px;
  padding-bottom: 2px;
}

/* 카드: 내부는 네가 마음대로 코딩해서 넣으면 됨 */
.design-card{
  height: 650px;         /* 카드 높이 */
  border-radius: 14px;
  color: #fff;
  text-align: center;
  align-items: center;
  justify-content: center;
  scroll-snap-align: start;
  box-sizing: border-box;
}



.design-slider-wrap{
  position: relative;
  
}

/* ✅ 왼쪽/오른쪽 이동 버튼 */
.design-slider-nav{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 50;

  width: 52px;
  height: 52px;
  border-radius: 999px;

  border: 1px solid rgba(0,0,0,0.15);
  background: rgba(255,255,255,0.9);
  font-size: 22px;
  font-weight: 700;
  cursor: pointer;

  display: flex;
  align-items: center;
  justify-content: center;
}

/* 왼쪽 버튼 */
.design-slider-prev{ left: 100px; }

/* 오른쪽 버튼(선택) */
.design-slider-next{ right: 14px; }

/* hover */
.design-slider-nav:hover{
  background: rgba(255,255,255,1);
}




.design-modal{
  position: fixed;
  inset: 0;
  display: none;
  z-index: 2147483647;

  overflow: auto;                    /* ✅ 스크롤 */
  -webkit-overflow-scrolling: touch; /* iOS */
  overscroll-behavior: contain;

  padding: 60px 0;                   /* 위아래 여백 */
}

.design-modal.active{ display:block; }

.design-modal-bg{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
}

/* ✅ 내용은 가운데, 폭 제한 */
.design-modal-content{
  position: relative;
  width: min(92vw, 980px);           /* ⭐ 이미지 너무 커 보이면 여기 줄여 (예: 820px) */
  margin: 0 auto;
}

/* ✅ 이미지: 폭은 컨텐츠 기준, 높이가 길면 모달에서 스크롤로 보기 */
.design-modal-content img{
  display:block;
  width: 100%;
  height: auto;
  border-radius: 12px;
}

/* ✅ 닫기 버튼: 항상 위에 보이게 */
.design-modal-close{
  position: sticky;
  top: 0;
  margin-left: -60px;

  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: none;
  cursor: pointer;

  background: rgba(255, 255, 255, 0.5);
  color: #fff;
  font-size: 22px;
  z-index: 2;
}

/* ✅ 모달 열리면 배경(특히 dsn-scrollbar) 스크롤/클릭 차단 */
body.design-modal-open{
  overflow: hidden;
  height: 100%;
}

body.design-modal-open #dsn-scrollbar{
  pointer-events: none;              /* ✅ 플러그인 스크롤 가로채기 차단 */
}

.design-modal{
  overflow-y: auto !important;
  touch-action: pan-y !important;
}

/* ✅ 이미지가 너무 커 보이면 모달 콘텐츠 폭을 줄여 */
.design-modal-content{
  width: min(92vw, 900px) !important;   /* 980px → 820px 추천 */
}

body.design-modal-open #dsn-scrollbar{
  overflow: hidden !important;
}

/* ✅ dsn-grid가 html/body에 걸어두는 스크롤도 같이 잠금 */
html.design-modal-open,
body.design-modal-open{
  overflow: hidden !important;
  height: 100% !important;
}



.hs-wrap{
  width: 100%;
  height: 560px;          /* 카드보다 살짝 크게 (여백 포함) */
  overflow: hidden;
}

.hs{
  height: 100%;
  display: flex;
  gap: 40px;

  padding: 30px 24px;      /* 기존 */
  padding-left: 140px;      /* ✅ 왼쪽 시작 여백 */

  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x proximity;
  scroll-behavior: smooth;

  scroll-padding-left: 140px; /* ✅ 스냅 기준도 동일 */
}


.hs::-webkit-scrollbar{ display: none; }

.hx-card{
  flex: 0 0 500px;        /* ✅ 가로 500px */
  height: 500px;          /* ✅ 세로 500px */
  border-radius: 18px;
  overflow: hidden;
  scroll-snap-align: start;
  background: #000;
}

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


.design-slider-nav{
  pointer-events: auto !important;
  z-index: 999999 !important;
}

.design-filter-buttons {
  display: flex;
  justify-content: center;;
  gap: 20px;
  margin-bottom: 50px;
  margin-top: 50px;
}

.design-filter-btn {
  padding: 10px 18px;
  color: #fff;
  cursor: pointer;
  font-size: 20px;
  height: 40px;
}

.design-filter-btn.active {
  background-color: #87f4ff;
  border-radius: 30px;
  font-weight: 700;
  color: #000;

}

.design-gallery {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 95%;
  margin: 0 auto;
}

.design-item {
  width: 100%;
  transition: 0.3s ease;
}

.design-item img {
  width: 100%;
  display: block;
}


.design-item-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.design-img-box{
  position: relative;   /* ✅ 텍스트 absolute 기준점 */
  overflow: hidden;
  border-radius: 10px;  /* 필요 없으면 삭제 */
}

.design-img-box img{
  width: 100%;
  height: auto;
  display: block;
}

.design-img-text{
  width: 90px;
  height: 30px;
  text-align: center;
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 2;
  font-size: 16px;
  font-weight: 500;
  color: #fff;
  background: rgba(0,0,0,0.55);
  padding: 6px 10px;
  border-radius: 18px;
  line-height: 22px;
}