/* =====================================================
   Base Styles (Desktop First)
   ===================================================== */
:root {
  --blue: #1673ff;
  --ink: #ffffff;
  --line-strong: #4b99f9;
  --line-soft: #dbe7ff;
  --panel: #ffffff;
  --panel-ink: #000000;
  --container: 120rem;
}

* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  padding: 0;
}
img {
  max-width: 100%;
  display: block;
}
a {
  color: inherit;
  text-decoration: none;
}

html {
  font-size: clamp(14px, 1.2vw + 10px, 16px);
}
body {
  background: var(--blue);
  color: var(--ink);
  font-family: "Pretendard Variable", -apple-system, system-ui, "Segoe UI",
    Roboto, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  line-height: 1.6;
}
.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 clamp(1rem, 6vw, 6.875rem);
}
.section {
  padding: clamp(3rem, 7vw, 5.625rem) 0;
}

/* Titles */
.section__title {
  margin: 0 0 clamp(1.25rem, 2.2vw, 2.625rem);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  font-weight: 700;
  font-size: clamp(1.75rem, 3.5vw, 3.75rem);
  line-height: 110%;
  color: #4b99f9;
}
.title-icon {
  width: clamp(1.5rem, 3.5vw, 3.75rem);
  height: auto;
}

/* Hero */
.hero {
  padding: clamp(2rem, 5vw, 3.125rem) 0 clamp(1.25rem, 3vw, 1.875rem);
  background: url("image/background_250806.png") no-repeat center/cover;
  color: #fff;
}
.brand img {
  height: clamp(3.5rem, 9vw, 9.375rem);
  margin-top: 0.75rem;
  margin-bottom: clamp(2rem, 8vw, 6.25rem);
}
.hero__title {
  margin: 0;
  font-weight: 700;
  font-size: clamp(2.25rem, 6.5vw, 5.625rem);
  line-height: 120%;
}
.hero__subtitle {
  margin: 0 0 clamp(2rem, 8vw, 8.625rem);
  font-weight: 500;
  font-size: clamp(1rem, 2.6vw, 1.875rem);
  line-height: 118%;
}
.hero__meta {
  margin: 0.375rem 0;
  font-weight: 500;
  font-size: clamp(1.125rem, 3vw, 2.1875rem);
  line-height: 160%;
}
.hero__meta span {
  font-weight: 500;
  font-size: clamp(0.9rem, 2.2vw, 1.5625rem);
  line-height: 160%;
}
/* 강조 텍스트(IT, MESA) 그림자 */
.mesa-emph{
  display:inline-block;
  text-shadow:
    0.3rem 0.1rem 0px #004688,
    0 0 0.8rem rgba(0,70,136,.30);
  /* 굵기/강도는 추후 조절 가능 */
}


.btn {
  display: block;
  margin: clamp(2rem, 6vw, 5rem) auto clamp(1rem, 6vw, 5rem);
  width: clamp(12rem, 40vw, 25.75rem);
  min-height: clamp(2.75rem, 6vw, 4.75rem);
  padding: 1rem 1.5rem;
  text-align: center;
  background: #fff;
  color: #0a45c8;
  border: 1px solid #e5e7eb;
  /* border-radius: 0.5rem; */
  font-weight: 600;
  font-size: clamp(1.4rem, 4vw, 2.8125rem);
  line-height: 110%;
  cursor: pointer;
}

/* Agenda */
.agenda {
  background: #fff;
  color: #111;
}
.agenda__list {
  padding: 0 clamp(1rem, 6vw, 6.25rem);
}
.ag-row {
  display: grid;
  grid-template-columns: 18.75rem 1fr 18.75rem;
  gap: 1rem;
  padding: 1rem 0;
  border-top: 1px solid var(--line-strong);
  align-items: center;
}
.ag-row:last-child {
  border-bottom: 1px solid var(--line-strong);
}
.ag-time {
  font-weight: 400;
  font-size: clamp(1.125rem, 2.8vw, 1.7rem);
  color: #000000;
  line-height: 110%;
  padding-left: 4rem;
}
.ag-title {
  font-weight: 600;
  font-size: clamp(1.0625rem, 2.4vw, 1.875rem);
  color: #000000;
}
.ag-sub {
  margin-top: 0.375rem;
  font-weight: 500;
  font-size: clamp(1rem, 2.3vw, 1.6rem);
  line-height: 120%;
  color: #6b7280;
}
.ag-speaker {
  font-weight: 500;
  font-size: clamp(1rem, 2.3vw, 1.6rem);
  color: #000000;
  text-align: left;
  white-space: nowrap;
}

/* Event */
.event {
  background: #DBE6FF;
  color: #111;
}
.event .section__title {
  margin-bottom: 3.5rem;
}
.ev-item {
  margin-bottom: 2.5rem;
}
.ev-head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
}
.ev-num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(2.5rem, 6vw, 4.4375rem);
  height: clamp(2.5rem, 6vw, 4.4375rem);
  border-radius: 999px;
  background: #8abbfb;
  color: #fff;
  font-weight: 700;
  font-size: clamp(1.25rem, 3.2vw, 2.5rem);
}
.ev-title {
  margin: 0;
  font-weight: 700;
  font-size: clamp(1.375rem, 3.8vw, 3.125rem);
  line-height: 110%;
  color: #000000;
}
.ev-desc {
  margin: 1.5rem 0 3rem;
  text-align: center;
  font-size: clamp(1rem, 2.6vw, 1.875rem);
  font-weight: 500;
  line-height: 130%;
}
.br-mobile { display: none; }
.ev-gifts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(0.6rem, 2.5vw, 0.8rem);
  margin: 1rem auto 1.5rem;
  max-width: 95rem;
}
.gift-card {
  position: relative;
  background:#fff;
  border-radius: 0.75rem;
  padding: 0.75rem;
  display:flex;
  flex-direction: column;
  align-items: center;
  box-shadow: 0 2px 10px rgba(15,23,42,0.06);
  margin: 0.6rem;
}
.gift-card img {
  width:30.5rem;
  height: 30rem;
  object-fit: contain;
  margin-top: 0.5rem;
}
.gift-badge {
  position:absolute;
  /* left: 0; */
  top: -3rem;
  padding: 1.0rem;
  width: 6rem;
  height: 6rem;
  border-radius: 3rem;
  background:#4B99F9;
  color:#fff;
  font-weight:700;
  font-size: 2.5rem;
}
.gift-caption {
  margin-top: -5rem;
  text-align: center;
  font-size: clamp(1rem, 2.5vw, 2rem);
  line-height: 1.35;
  color:#000000;
}

.ev-note {
  margin: 0.5rem 0 10rem;
  text-align: center;
  font-size: clamp(0.95rem, 2.3vw, 1.875rem);
  font-weight: 500;
  color: #4b4b4b;
}

/* Information */
.info {
  background: #fff;
  color: #111;
}
.info .section__title {
  margin-bottom: 3.5rem;
}
.info__list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0 clamp(1rem, 7vw, 9.375rem);
}
.info__list li {
  position: relative;
  margin: 0.5rem 0;
  padding-left: 6rem;
  font-size: clamp(0.9rem, 2.6vw, 2.5rem);
  font-weight: 600;
}
.info__list li::before {
  content: "■";
  position: absolute;
  left: 4%;
  top: 40%;
  color: #4b99f9;
  font-size: 0.875rem;
  line-height: 110%;
}
.info a {
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.info a:hover {
  border-bottom-color: #4b99f9;
}
.sep-mobile { display: inline; }
/* Sponsor */
.sponsor {
  background: #dbe6ff;
  padding: clamp(1.2rem, 8vw, 6.25rem) 0;
}
.sponsor__title {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 1.25rem;
  color: #4b99f9;
  font-size: clamp(1.75rem, 3.5vw, 3.75rem);
  font-weight: 700;
  line-height: 110%;
}
.sponsor__title img {
  height: clamp(2.5rem, 7vw, 7.5rem);
  width: auto;
}
.slogo-row {
  display: flex;
  flex-wrap: wrap;           
  justify-content: center;   
  gap: clamp(0.5rem, 2vw, 1.6rem);
}
.slogo {
  flex: 0 1 calc(33.333% - 1.6rem); 
  max-width: 24rem;
  min-width: 9rem;        
  min-height: 3.75rem;
  height: clamp(3.5rem, 9vw, 6.5625rem);
  margin: 0 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  border: 1px solid #e5e7eb;
}
.slogo img {
  max-width: 90%;
  max-height: 90%;
  object-fit: contain;
}
.slogo.ETEVERS img {
  max-width: 90%;
  max-height: 90%;
}
.slogo.COHESITY img {
  max-width: 80%;
  max-height: 55%;
}
.slogo.HPE img {
  max-width: 100%;
  max-height: 100%;
}
.slogo.EDB img {
  max-width: 85%;
  max-height: 65%;
}
.slogo.okestro img {
  max-width: 85%;
  max-height: 65%;
}
.slogo.furiosa img {
  max-width: 85%;
  max-height: 65%;
}

/* =====================================================
   Responsive (Desktop → Mobile)
   ===================================================== */

/* Tablet: 641–1024px */
@media (min-width: 641px) and (max-width: 1024px) {
  .agenda__list {
    padding: 0 clamp(0.75rem, 4vw, 3rem);
  }
  .ag-row {
    grid-template-columns: 9.5rem 1fr 11rem;
    gap: 0.75rem;
    padding: 0.9rem 0;
    align-items: start;
  }
  .ag-time {
    font-size: clamp(1.05rem, 2.2vw, 1.35rem);
    line-height: 1.25;
    padding-left: 0;
  }
  .ag-title {
    font-size: clamp(1.05rem, 2.3vw, 1.3rem);
    line-height: 1.25;
  }
  .ag-sub,
  .ag-speaker {
    font-size: clamp(0.95rem, 2vw, 1.1rem);
  }
  .ag-speaker {
    white-space: normal;
    text-align: left;
  }
  .sponsor {
    padding: clamp(2.25rem, 6vw, 3.75rem) 0;
  }
  .slogo-row {
    gap: 0.9rem;
  }
  .slogo {
    flex: 0 1 calc(50% - 0.9rem);
    height: clamp(3.2rem, 8vw, 4.6rem);
    max-width: none;
  }
  .slogo img {
    max-width: 88%;
    max-height: 88%;
  }
  .section__title {
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    gap: 0.75rem;
  }
  .title-icon {
    width: clamp(1.25rem, 3vw, 2.25rem);
  }
  .hero__title {
    font-size: clamp(2rem, 5vw, 4rem);
  }
  .hero__subtitle {
    font-size: clamp(0.95rem, 2.2vw, 1.4rem);
    margin-bottom: clamp(1.25rem, 5vw, 2.5rem);
  }
  .hero__meta {
    font-size: clamp(1rem, 2.6vw, 1.5rem);
    line-height: 1.5;
  }
  .hero__meta span {
    font-size: 0.75em;
  }
  .ev-title {
    font-size: clamp(1.25rem, 3.2vw, 2.2rem);
  }
  .ev-desc {
    font-size: clamp(0.95rem, 2.2vw, 1.25rem);
  }
  .ev-gifts img {
    height: clamp(10rem, 28vw, 14rem);
  }
  .info__list {
    padding: 0 clamp(0.75rem, 6vw, 6rem);
  }
  .info__list li {
    font-size: clamp(0.95rem, 2.2vw, 1.25rem);
  }
  .info__list li::before {
    top: 0;                     /* 항목 상단 기준으로 붙여놓고 */
    left: 5%;
    transform: translateY(0.5rem);/* 첫 줄 베이스라인 쪽으로 미세 보정 */
    font-size: 0.75rem;         /* 필요 시 크기 살짝 축소 */
  }
    /* SPONSOR — 2열 그리드, 동일 박스 안에 중앙 정렬 */
  .slogo-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    justify-items: center;
  }
  .slogo {
    flex: none;
    width: 100%;
    max-width: none;
    height: 40px;
  }
  .slogo img {
    max-width: 88%;
    max-height: 88%;
  }
}

/* ===== Mobile (≤640px) 전용 리디자인 ===== */
@media (max-width: 640px) {
  /* 여백/타이틀/버튼 */
  .container {
    padding: 0 16px;
  }
  .section {
    padding: 28px 0;
  }
  .section__title {
    font-size: clamp(1.25rem, 3.2vw, 1.6rem);
    gap: 0.5rem;
  }
  .title-icon {
    width: clamp(1.25rem, 5vw, 1.75rem);
    height: auto;
  }
  .btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 175px;
    height: 35px;
    font-size: clamp(1.4rem, 4.2vw, 1.25rem);
    font-weight: 600;
    padding: 6px;
    margin: 50px auto 10px;
  }

  /* HERO 미세조정 (문구 줄 간격 축소 & 메타 줄바꿈) */
  .hero {
    padding: 24px 0 16px;
  }
    .hero__title {
    font-size: clamp(1.8rem, 3.6vw, 3rem);
    margin-bottom: 4rem;
  }
  .hero__subtitle {
    display: none;
    margin-bottom: 18px;
    line-height: 1.3;
    font-size: clamp(0.85rem, 3.6vw, 1.05rem);
  }
  .hero__meta {
    line-height: 1.45;
    font-size: clamp(0.85rem, 3.6vw, 1.05rem);
  }
  .hero__meta span {
    display: block;
    margin-top: 4px;
    font-size: 0.7em;
  }

  /* AGENDA — 좌측 시간 · 우측 본문 2열 + 발표자는 본문 하단으로 */
  .agenda .section__title {
    font-size: clamp(1.6rem, 3.6vw, 3rem);
  }
  .agenda__list {
    padding: 0 12px;
  } /* 선택: 살짝 좁게 */

  .ag-row {
    display: grid;
    grid-template-columns: 1fr; /* ← 1열 스택 */
    row-gap: 6px;
    align-items: start;
    padding: 12px 0;
    border-top: 1px solid #4b99f9;
  }
  .ag-row:first-child {
    border-top: 1px solid #4b99f9;
  }

  .ag-time {
    grid-column: 1;
    grid-row: 1; /* 맨 위 */
    margin: 0;
    font-size: clamp(0.95rem, 3.2vw, 1.05rem);
    font-weight: 500;
    line-height: 1.2;
    color: #000000; /* 필요 시 #6b7280로 연해도 OK */
    padding-left: 0rem;
  }

  .ag-main {
    grid-column: 1;
    grid-row: 2;
    font-size: clamp(1.4rem, 3.2vw, 2rem);
    font-weight: 600;
  } /* 제목/부제 */
  .ag-title {
    margin: 0;
  }
  .ag-sub {
    margin-top: 4px;
    word-break: keep-all;
    color: #000000;
  }

  .ag-speaker {
    grid-column: 1;
    grid-row: 3; /* 맨 아래 */
    margin-top: 0px;
    padding-top: 0px;
    white-space: normal;
    color: #4b5563;
    font-size: clamp(0.9rem, 3vw, 1rem);
  }
  .ag-speaker:empty {
    display: none;
    margin: 0;
    padding: 0;
    border: 0;
  }

  /* EVENT — 카드형(흰 배경, 둥근 모서리, 그림자) + 경품 이미지는 1열 세로 */
  .event {
    background: #DBE6FF;
  }
  .event .title-icon {
    width: clamp(2.1rem, 3.5vw, 3.75rem);
    height: auto;
  }
  .event .section__title {
    font-size: clamp(1.6rem, 3.5vw, 3.75rem);
    font-weight: 700;
    margin-bottom: 0;
  }
  .ev-item {
    border-radius: 16px;
    padding: 0px 14px;
    margin: 10px 0 0px;
  }
  .ev-head {
    gap: 8px;
    padding: 20px;
  }
  .ev-num {
    width: 32px;
    height: 32px;
    font-size: 1rem;
  }
  .ev-title {
    font-size: (1.6rem, 3.5vw, 3.75rem);
    line-height: 1.15;
    margin: 0;
  }
  .ev-desc {
    font-size: clamp(0.98rem, 3.2vw, 1.1rem);
    line-height: 1.4;
    margin: 10px 4px 30px;
    text-align: center
  }
  .ev-note {
    margin: 40px 0;
  }
  .br-mobile { display: inline; }

  /* 경품 이미지: 1열 세로 카드, 모서리 크게 + 안쪽 여백 */
  .ev-gifts {
    display:flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem;
    margin:0;
  }
  .gift-card {
    width: 16.875rem;
    border-radius: 1.26rem;
    padding: 0.7rem;
  }
  .gift-card img {
  width:20rem;
  height: 20rem;
  object-fit: contain;
  margin-top: -1rem;
}
  .gift-badge {
  position:absolute;
  left: -1.8rem;
  top: -1.8rem;
  padding: 0.9rem;
  width: 4rem;
  height: 4rem;
  border-radius: 2rem;
  background:#67A7FF;
  color:#fff;
  font-weight:700;
  font-size: 1.4rem;
}
.gift-caption {
  margin-top: -3rem;
  text-align: center;
  font-size: clamp(1.0rem, 2.9vw, 1.25rem);
  line-height: 1.35;
  color:#000000;
}
  .ev-note {
    margin-top: 10px;
    font-size: clamp(1rem, 2.9vw, 1.2rem);
    color: #4b4b4b;
  }

  /* INFORMATION — 글자 크기/여백 축소, ‘문의’ 2줄 중앙 배치 유지 */
    .info .title-icon {
    width: clamp(2.1rem, 3.5vw, 3.75rem);
    height: auto;
  }
  .info .section__title {
    font-size: 22px;
    font-size: clamp(1.5rem, 2.9vw, 1.6rem);
    font-weight: 700;
    margin-bottom: 20px;
  }
  .info__list {
    padding: 0 14px;
  }
  .info__list li {
    font-size: clamp(0.9rem, 3.1vw, 1rem);
    margin: 10px 0;
    padding-left: 1.25rem;     /* 불릿 공간 살짝만 확보 */
    
  }
  .info__list li::before {
    left: 0;
    top: 0;                     /* 항목 상단 기준으로 붙여놓고 */
    transform: translateY(0.35rem);/* 첫 줄 베이스라인 쪽으로 미세 보정 */
    font-size: 0.75rem;         /* 필요 시 크기 살짝 축소 */
  }
  
  .info-contact {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 8px;
    row-gap: 4px;
    align-items: center;
    
  }
  .info-contact .label {
    grid-column: 1;
    align-self: center;
    white-space: nowrap;
    font-weight: 600;
  }
  .info-contact .team {
    grid-column: 2;
    grid-row: 1;
  }
  .info-contact .contact {
    grid-column: 2;
    grid-row: 2;
  }
  .sep-mobile { display: none; }

  /* SPONSOR — 2열 그리드, 동일 박스 안에 중앙 정렬 */
  .slogo-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    justify-items: center;
  }
  .slogo {
    flex: none;
    width: 100%;
    max-width: none;
    height: 40px;
  }
  .slogo img {
    max-width: 88%;
    max-height: 88%;
  }
}
