@charset "utf-8";

/* 웹폰트 (Pretendard)
   레이아웃(base.html)에서 Pretendard 공식 '동적 서브셋'(woff2, 글자 범위별로 쪼갠 파일)을 불러온다.
   예전에는 굵기별 woff 5개(한 개 1.1MB, 합 5.6MB)를 통째로 받아서 첫 방문이 매우 느렸다.
   지금은 화면에 쓰인 글자가 든 조각(개당 약 35KB)만 받는다. 굵기도 파일 하나(가변 폰트)로 된다.
   CDN 을 못 쓰는 환경이면 맑은 고딕 등 시스템 글꼴로 보인다. */






/* ==========================================================================
   WELLNESS & MIND CARE EXPO — 디자인 시스템 v2
   --------------------------------------------------------------------------
   기존 CSS 는 규칙이 미디어쿼리마다 누적 충돌해서(.logo 의 left 값만 11개)
   값을 추적할 수 없는 상태였다. 여기서는 토큰 → 레이아웃 → 컴포넌트 순으로
   한 방향으로만 흐르게 다시 쓴다. 같은 속성을 두 번 덮지 않는다.

   색은 로고의 보라→주황 그라데이션과 파스텔 키비주얼에서 뽑았다.
   ========================================================================== */

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* --- 1. 토큰 ------------------------------------------------------------ */
:root {
  /* 색 */
  --ink-900:#2B2A43;      /* 큰 제목 */
  --ink-700:#4A4867;      /* 본문 */
  --ink-600:#5F5D75;      /* 표 본문 · 설명글 */
  --ink-500:#7A7893;      /* 보조 설명 */
  --ink-300:#B0AEC2;      /* 라벨 */
  --line:#EAE3DB;
  --line-soft:#F4EFE9;
  --line-strong:#DCD3C9;  /* 표 구분선처럼 한 단계 진한 선 */
  --surface-warm:#FAF5F0; /* 안내 박스 · 표 머리 바탕 */

  --bg:#FDFAF7;
  --bg-soft:#F8EDE5;
  --bg-tint:#F1EEFA;      /* 보라 아주 연하게 */

  --brand:#615DB3;        /* 키비주얼 연보라 */
  --brand-dark:#3C3A7A;
  --brand-soft:#EFEDF9;
  --accent:#E17056;

  /* 액센트 4색 — 로고 마크의 그라디언트에서 뽑았다.
     테크(보라) → 케어(자주) → 제품(코랄) → 라이프스타일(오렌지) 순서로
     열거되는 콘텐츠에 차례로 쓴다. */
  --c1:#615DB3;  --c1-soft:#EDEBF8;
  --c2:#B26BAB;  --c2-soft:#F7EDF6;
  --c3:#D9694E;  --c3-soft:#FBEBE6;
  --c4:#DF9440;  --c4-soft:#FCF1E3;       /* 키비주얼 코랄 */
  --accent-soft:#FBEDE6;

  /* 폭 */
  --container:1200px;
  --gutter:24px;

  /* 라운드 / 그림자 */
  --r-sm:10px;
  --r-md:16px;
  --r-lg:24px;
  --r-pill:999px;
  --shadow-sm:0 2px 10px rgba(21,26,40,.05);
  --shadow-md:0 10px 30px rgba(21,26,40,.07);
  --shadow-lg:0 20px 50px rgba(21,26,40,.10);

  /* 세로 리듬 — 섹션 간격을 이 값 하나로 통제 */
  --section-y:clamp(56px, 6.4vw, 104px);

  --header-h:76px;
}

/* --- 2. 리셋 ------------------------------------------------------------ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink-700);
  font-family:'Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,system-ui,'Apple SD Gothic Neo','Malgun Gothic','맑은 고딕',sans-serif;
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  word-break:keep-all;
}
img{display:block;max-width:100%;height:auto;}
a{color:inherit;text-decoration:none;}
ul,ol{margin:0;padding:0;list-style:none;}
h1,h2,h3,h4,p{margin:0;}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;}

/* --- 3. 타이포 스케일 --------------------------------------------------- */
.t-h2     {font-size:clamp(22px,2vw,29px);line-height:1.28;font-weight:700;letter-spacing:-.02em;color:var(--ink-900);}
.t-h3     {font-size:clamp(17px,1.3vw,20px);line-height:1.4;font-weight:700;color:var(--ink-900);}
.t-lead   {font-size:clamp(16px,1.15vw,18px);line-height:1.7;color:var(--ink-500);}
.t-label  {font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--brand);}

/* --- 4. 레이아웃 -------------------------------------------------------- */
.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 var(--gutter);}
.section{padding:var(--section-y) 0;}
.section--soft{background:var(--bg-soft);}
.section__head{margin-bottom:clamp(28px,3vw,44px);}
.section__head .t-label{display:block;margin-bottom:10px;}
.section__head .t-lead{margin-top:12px;max-width:640px;}

/* --- 5. 버튼 ------------------------------------------------------------ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:52px;padding:0 28px;border-radius:var(--r-pill);
  font-size:15px;font-weight:700;white-space:nowrap;
  transition:transform .18s ease, box-shadow .18s ease, background-color .18s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn--primary{background:var(--brand);color:#fff;box-shadow:0 8px 20px rgba(108,75,216,.28);}
.btn--primary:hover{background:var(--brand-dark);}
.btn--ghost{background:rgba(255,255,255,.9);color:var(--ink-900);box-shadow:var(--shadow-sm);}
.btn--ghost:hover{background:#fff;}
.btn--sm{height:42px;padding:0 20px;font-size:14px;}

/* --- 6. 헤더 ------------------------------------------------------------ */
.hd{
  position:sticky;top:0;z-index:900;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.hd__inner{
  display:flex;align-items:center;gap:32px;
  height:var(--header-h);
}
.hd__logo{flex:0 0 auto;}
.hd__logo img{width:211px;}

.hd__nav{flex:1 1 auto;display:flex;justify-content:center;}
.hd__menu{display:flex;gap:clamp(8px,2.4vw,44px);}
.hd__menu > li{position:relative;}
.hd__menu > li > a{
  display:block;padding:0 4px;line-height:var(--header-h);
  font-size:16px;font-weight:600;color:var(--ink-900);
  border-bottom:2px solid transparent;
}
.hd__menu > li:hover > a,
.hd__menu > li.is-active > a{color:var(--brand);border-bottom-color:var(--brand);}

.hd__sub{
  position:absolute;top:100%;left:50%;transform:translateX(-50%) translateY(6px);
  min-width:172px;width:max-content;
  padding:10px;border-radius:var(--r-md);
  background:#fff;box-shadow:var(--shadow-md);border:1px solid var(--line);
  opacity:0;visibility:hidden;transition:.22s ease;
}
.hd__menu > li:hover .hd__sub{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.hd__sub a{
  display:block;padding:9px 14px;border-radius:var(--r-sm);
  font-size:14.5px;color:var(--ink-700);white-space:nowrap;
}
.hd__sub a:hover{background:var(--brand-soft);color:var(--brand);font-weight:600;}

.hd__util{flex:0 0 auto;display:flex;align-items:center;gap:14px;}
.hd__lang{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:600;color:var(--ink-500);}
.hd__toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;}
.hd__toggle span{display:block;width:22px;height:2px;background:var(--ink-900);position:relative;}
.hd__toggle span::before,.hd__toggle span::after{content:'';position:absolute;left:0;width:22px;height:2px;background:var(--ink-900);}
.hd__toggle span::before{top:-7px;} .hd__toggle span::after{top:7px;}

/* --- 7. 히어로 ---------------------------------------------------------- */
/* 배너 이미지의 바탕(#F7EDE4)과 같은 색을 히어로 전체에 깔아
   이미지 사각형 경계가 드러나지 않게 한다.
   페이지 배경으로 넘어가는 것은 이미지가 끝난 "아래쪽에서만" 처리한다. */
.hero{position:relative;background:#F7EDE4;}
.hero__visual{padding:clamp(10px,1.6vw,26px) var(--gutter) clamp(44px,5.6vw,88px);}
.hero__visual img{display:block;width:100%;max-width:1040px;margin:0 auto;}
/* 260827 수정 — 키비주얼이 본문 글자 크기에 비해 커 보여 세로 높이를 줄인다 */
.hero--compact .hero__visual{padding:clamp(6px,1vw,16px) var(--gutter) clamp(24px,3.2vw,48px);}
.hero--compact .hero__visual img{max-width:840px;}
.hero--compact::after{height:clamp(24px,3.2vw,48px);}

.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;
  height:clamp(44px,5.6vw,88px);
  background:linear-gradient(180deg,rgba(247,237,228,0) 0%,var(--bg) 100%);
  pointer-events:none;
}

/* --- 8. 바로가기 (참가기업 / 관람객) ------------------------------------ */
.quick{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(16px,1.8vw,28px);}
.qcard{padding:clamp(24px,2.4vw,34px);border-radius:var(--r-lg);border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-sm);}
.qcard__top{display:flex;align-items:baseline;gap:10px;margin-bottom:22px;}
.qcard__top h3{font-size:19px;font-weight:800;color:var(--ink-900);}
.qcard__top span{font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--ink-300);}
.qcard__list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.qlink{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 8px;border-radius:var(--r-md);background:var(--bg-soft);transition:.2s;}
.qlink:hover{background:var(--brand-soft);transform:translateY(-3px);}
.qlink__ico{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#fff;color:var(--brand);box-shadow:var(--shadow-sm);}
/* 참가기업은 보라, 관람객은 코랄 — 두 카드가 한눈에 갈린다 */
.quick .qcard:nth-child(2) .qlink{background:var(--c3-soft);}
.quick .qcard:nth-child(2) .qlink:hover{background:#F7DFD7;}
.quick .qcard:nth-child(2) .qlink__ico{color:var(--c3);}
.qlink__ico svg{width:22px;height:22px;}
.qlink span{font-size:14px;font-weight:600;color:var(--ink-700);text-align:center;line-height:1.35;}

/* --- 9. 전시분야 -------------------------------------------------------- */
.fields{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.4vw,20px);}
.field{padding:clamp(20px,2vw,28px);border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);}
.field__no{font-size:12px;font-weight:800;letter-spacing:.1em;color:var(--accent);}
.fields .field{position:relative;overflow:hidden;}
.fields .field::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--c1);}
.fields .field:nth-child(1) .field__no{color:var(--c1);}
.fields .field:nth-child(2) .field__no{color:var(--c2);}
.fields .field:nth-child(3) .field__no{color:var(--c3);}
.fields .field:nth-child(4) .field__no{color:var(--c4);}
.fields .field:nth-child(2)::before{background:var(--c2);}
.fields .field:nth-child(3)::before{background:var(--c3);}
.fields .field:nth-child(4)::before{background:var(--c4);}
.field h3{margin:10px 0 8px;font-size:clamp(15px,1.1vw,17px);line-height:1.35;word-break:keep-all;overflow-wrap:anywhere;}
.field p{font-size:14px;color:var(--ink-500);line-height:1.6;}

/* --- 10. 공지 + 사전등록 ------------------------------------------------ */
.split{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(20px,2.4vw,36px);align-items:start;}
.split > *{min-width:0;}   /* 그리드 자식 기본 min-width:auto 때문에 긴 제목이 칸을 밀어낸다 */
.notice__list{border-top:2px solid var(--ink-900);}
.notice__item{display:flex;align-items:center;gap:16px;padding:18px 4px;border-bottom:1px solid var(--line);}
.notice__item a{flex:1 1 auto;min-width:0;font-size:16px;font-weight:600;color:var(--ink-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.notice__item a:hover{color:var(--brand);}
.notice__item--empty{justify-content:center;color:var(--ink-300);font-size:15px;}
.notice__item time{flex:0 0 auto;font-size:13px;color:var(--ink-300);}
.notice__more{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:14px;font-weight:700;color:var(--brand);}

.cta{padding:clamp(26px,2.6vw,36px);border-radius:var(--r-lg);background:linear-gradient(135deg,var(--brand) 0%,#8B6BE8 55%,var(--accent) 140%);color:#fff;box-shadow:var(--shadow-md);}
.cta h3{color:#fff;font-size:21px;font-weight:800;}
.cta p{margin-top:10px;font-size:14.5px;color:rgba(255,255,255,.85);line-height:1.65;}
.cta__deadline{display:inline-block;margin-top:18px;padding:7px 14px;border-radius:var(--r-pill);background:rgba(255,255,255,.18);font-size:13px;font-weight:700;}
.cta .btn{margin-top:20px;width:100%;background:#fff;color:var(--brand);}
.cta .btn:hover{background:#fff;}

/* --- 11. 푸터 ----------------------------------------------------------- */
.ft{background:#161B2C;color:rgba(255,255,255,.62);padding:clamp(40px,4vw,60px) 0 clamp(28px,3vw,40px);}
.ft__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.10);}
.ft__logo img{width:189px;opacity:.95;}
.ft__links{display:flex;flex-wrap:wrap;gap:20px;font-size:14px;}
.ft__links a:hover{color:#fff;}
.ft__info{margin-top:24px;font-size:13.5px;line-height:1.85;}
.ft__info strong{display:block;margin-bottom:6px;color:rgba(255,255,255,.9);font-size:14px;}
.ft__copy{margin-top:20px;font-size:12.5px;color:rgba(255,255,255,.38);letter-spacing:.02em;}

/* --- 12. 반응형 --------------------------------------------------------- */
@media (max-width:1100px){
  .fields{grid-template-columns:repeat(2,1fr);}
  .split{grid-template-columns:1fr;}
}

@media (max-width:900px){
  :root{--header-h:64px;}
  .hd__nav{
    position:fixed;inset:var(--header-h) 0 auto;
    display:none;padding:8px var(--gutter) 20px;
    background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow-md);
  }
  .hd__nav.is-open{display:block;}
  .hd__menu{flex-direction:column;gap:0;}
  .hd__menu > li > a{line-height:1;padding:16px 0;border-bottom:1px solid var(--line-soft);}
  .hd__sub{position:static;transform:none;opacity:1;visibility:visible;min-width:0;
    box-shadow:none;border:0;padding:4px 0 10px 12px;background:transparent;}
  .hd__menu > li:hover .hd__sub{transform:none;}
  .hd__toggle{display:flex;}
  .hd__logo img{width:176px;}
  /* 언어 전환은 모바일에서도 보여야 한다 */
  .hd__lang{font-size:13px;}

  /* 가운데 메뉴가 숨겨지면 오른쪽으로 밀어 주던 것이 사라져,
     사전등록 버튼과 햄버거가 로고 바로 옆에 붙고 오른쪽 여백까지 넘어갔다.
     둘을 오른쪽 끝으로 보낸다. */
  .hd__inner{gap:12px;}
  .hd__util{margin-left:auto;gap:10px;}

  .quick{grid-template-columns:1fr;}
}

@media (max-width:560px){
  :root{--gutter:18px;}
  .qcard__list{grid-template-columns:1fr;}
  .qlink{flex-direction:row;justify-content:flex-start;gap:14px;padding:14px 16px;}
  .qlink span{text-align:left;}
  .fields{grid-template-columns:1fr;}
  .btn{width:100%;}
  /* 헤더 버튼은 가로로 늘리지 않는다 (햄버거와 한 줄에 있어야 한다) */
  .hd__util .btn{width:auto;}
}

/* 아주 좁은 화면(360px 안팎)에서는 로고 + 사전등록 + 햄버거가 한 줄에
   다 들어가지 않는다. 로고와 버튼을 한 단계씩 줄여 넘치지 않게 한다. */
@media (max-width:400px){
  .hd__logo img{width:133px;}
  .hd__util{gap:6px;}
  .hd__util .btn--sm{height:38px;padding:0 12px;font-size:13px;}
  .hd__toggle{width:38px;height:38px;}
}


/* ==========================================================================
   서브페이지 공통 (상단 배너 / 탭 / 본문 래퍼)
   ========================================================================== */
.pagehead{
  position:relative;overflow:hidden;
  background:
    radial-gradient(620px 300px at 88% 120%, rgba(225,112,86,.16), transparent 62%),
    radial-gradient(520px 280px at 74% -20%, rgba(185,124,179,.18), transparent 64%),
    linear-gradient(100deg,#FBF4EE 0%,#F8EDE5 58%,#F4EBEA 100%);
}



.pagehead__inner{position:relative;z-index:1;padding:clamp(40px,4.6vw,72px) 0;text-align:center;}
.pagehead__title{font-size:clamp(24px,2.1vw,31px);font-weight:800;letter-spacing:-.03em;color:var(--ink-900);}
.pagehead__path{margin-top:8px;font-size:15px;color:var(--ink-500);}

.tabs{border-bottom:1px solid var(--line);background:#fff;}
.tabs__list{display:flex;justify-content:center;flex-wrap:wrap;gap:clamp(6px,2vw,34px);}
.tabs__list a{
  display:block;padding:18px 10px;
  font-size:15.5px;font-weight:600;color:var(--ink-500);
  border-bottom:2px solid transparent;white-space:nowrap;
}
.tabs__list a:hover{color:var(--ink-900);}
.tabs__list a.is-active{color:var(--brand);border-bottom-color:var(--brand);font-weight:700;}

.page{padding:var(--section-y) 0;}
