/* ============================================================
   theme/31 — WEBIS Studio
   Tailwind utility 보조 CSS만 (full-bleed / grid / slider 보정)
   ============================================================ */

/* 브랜드 색상은 @theme 로 등록(index.html style[type=tailwindcss]) → bg-x/80 등 변형 생성 */

/* grid 명시 (Tailwind4 browser CDN arbitrary grid 폭발 회피) */
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 > *, .grid-2 > * { min-width: 0; }
@media (max-width: 1023px) { .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px)  { .grid-3, .grid-2 { grid-template-columns: minmax(0, 1fr); } }

/* Contact 2컬럼 (모바일 1컬럼) */
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); } }
.contact-grid > * { min-width: 0; }

/* 아이콘 정렬 고정 (밀림 방지) */
[data-lucide] { width: 1.15em; height: 1.15em; display: inline-block; vertical-align: -0.15em; stroke-width: 1.75; flex: none; }
.btn-icon [data-lucide], .nav-ic [data-lucide] { width: 1.05rem; height: 1.05rem; }

/* 3-up 피처 밴드: 이미지 위 텍스트 스크림 */
.feat-tile { position: relative; overflow: hidden; }
.feat-tile img { transition: transform .7s ease; }
.feat-tile:hover img { transform: scale(1.06); }
.feat-tile::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,16,12,.15) 0%, rgba(20,16,12,.55) 60%, rgba(20,16,12,.82) 100%);
}
.feat-tile .feat-body { position: absolute; inset: 0; z-index: 2; }

/* Swiper 슬라이드 flex 강제(세로 정렬 깨짐 방지) */
.port-swiper .swiper-slide, .news-swiper .swiper-slide { height: auto; }

/* Swiper 커스텀 스크롤바(포트폴리오/뉴스 하단 진행바) */
.ps-scrollbar { position: relative; height: 4px; border-radius: 999px; background: #e2e2e2; overflow: hidden; }
.ps-scrollbar .swiper-scrollbar-drag {
  background: linear-gradient(90deg, #d98e3b, #e6b450, #6fae8f, #6f8fd9);
  border-radius: 999px;
}

/* 히어로 페이지네이션 01 02 03 */
.hero-pg .swiper-pagination-bullet {
  width: auto; height: auto; background: transparent; opacity: .5; color: #fff;
  font-size: .72rem; letter-spacing: .08em; font-weight: 600; margin: 0 .55rem !important;
}
.hero-pg .swiper-pagination-bullet-active { opacity: 1; }
.hero-pg .swiper-pagination-bullet-active::after {
  content: ""; display: block; height: 2px; margin-top: 3px; background: #fff; border-radius: 2px;
}

/* 타이프라이터 커서 */
.tw-cursor::after { content: "|"; margin-left: 2px; font-weight: 300; animation: twblink 1s step-end infinite; }
@keyframes twblink { 50% { opacity: 0; } }

/* 모바일 메뉴 슬라이드 */
#mnav { transition: transform .35s ease; }
body.menu-open { overflow: hidden; }

/* AOS 미발동 대비(메모리: CDN stale → IO 우회는 script.js에서 처리) */
[data-aos] { will-change: opacity, transform; }

/* TOP 버튼 */
#toTop { transition: opacity .3s, visibility .3s; }
