.ic-tip { position: relative; }
.ic-tip > .tip { position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%) translateY(4px); background: #111; color: #fff; font-size: 12px; font-weight: 600; white-space: nowrap; padding: 7px 12px; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity .2s ease, transform .2s ease; box-shadow: 0 8px 20px rgba(0,0,0,.22); z-index: 5; }
.ic-tip > .tip::before { content: ""; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-bottom-color: #111; }
.ic-tip:hover > .tip { opacity: 1; transform: translateX(-50%) translateY(0); }
@property --gang { syntax: '<angle>'; initial-value: 0deg; inherits: false; }
@keyframes glow-spin { to { --gang: 360deg; } }
@keyframes geo-reflection {
  0% { opacity: 0; transform: translate3d(-42%,0,0) rotate(7deg); }
  22% { opacity: .72; }
  72% { opacity: .46; }
  100% { opacity: 0; transform: translate3d(42%,0,0) rotate(7deg); }
}
.glow-card { position: relative; }
.glow-card::before { content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; background: conic-gradient(from var(--gang), transparent 0deg, transparent 230deg, #9a9a9a 300deg, #111 340deg, transparent 360deg); -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; opacity: 0; transition: opacity .3s; pointer-events: none; }
.glow-card:hover::before { opacity: 1; animation: glow-spin 2.2s linear infinite; }
.glow-card.on-dark { overflow: hidden; isolation: isolate; }
.glow-card.on-dark::before { content: none; }
.glow-card.on-dark::after { content: ""; position: absolute; inset: -48%; z-index: 0; border-radius: 38%; background: linear-gradient(108deg, transparent 35%, rgba(255,255,255,.025) 43%, rgba(255,255,255,.105) 50%, rgba(255,255,255,.035) 57%, transparent 65%); opacity: 0; transform: translate3d(-42%,0,0) rotate(7deg); pointer-events: none; will-change: transform, opacity; }
.glow-card.on-dark > * { position: relative; z-index: 1; }
.glow-card.on-dark:hover::after { animation: geo-reflection 2.8s cubic-bezier(.22,.6,.2,1) infinite; }
.rowcard { transition: background .2s ease; }
.rowcard:hover { background: #f1f1f3 !important; }
.nav-pill:hover { background: #111 !important; }
.nav-pill:hover a { color: #fff !important; }
.primary-nav a { position: relative; }
.primary-nav a::after { content: ""; position: absolute; left: 50%; bottom: 1px; width: 3px; height: 3px; border-radius: 50%; background: #d64048; opacity: 0; transform: translate(-50%, 4px) scale(.4); transform-origin: center; transition: opacity .32s ease, transform .42s cubic-bezier(.22,1,.36,1); will-change: opacity, transform; }
.primary-nav a:hover::after,
.primary-nav a[aria-current="page"]::after { opacity: 1; transform: translate(-50%, 0) scale(1); }
.site-footer { transition: none; }
.search-modal.is-open { opacity: 1 !important; pointer-events: auto !important; }
.search-modal.is-open #search-panel { transform: scale(1) translateY(0) !important; }
.mobile-menu.is-open { transform: translateX(0) !important; }
.menu-overlay.is-open { opacity: 1 !important; pointer-events: auto !important; }
#search-open:hover { color: #666 !important; }
#search-close:hover { color: #111 !important; }
.header-request:hover { border-color: #111 !important; background: #111 !important; color: #fff !important; }
.smodal-side a,
.smodal-grid a { transition: background-color .32s cubic-bezier(.22,.6,.2,1), color .32s cubic-bezier(.22,.6,.2,1), transform .32s cubic-bezier(.22,.6,.2,1), box-shadow .32s cubic-bezier(.22,.6,.2,1), border-color .32s cubic-bezier(.22,.6,.2,1); }
.smodal-grid a img { transition: transform .48s cubic-bezier(.22,.6,.2,1); }
.smodal-side a:hover { background: #ececef !important; color: #111 !important; transform: translateX(2px); }
.smodal-grid a:hover { background: #f1f1f3; }
.smodal-grid .ui-025:hover { background: #fff; border-color: #dedee2; transform: translateY(-3px); box-shadow: 0 12px 26px rgba(20,20,24,.09); }
.smodal-grid .ui-025:hover img { transform: scale(1.025); }
.smodal-grid .ui-032:hover,
.smodal-grid .ui-037:hover { transform: translateX(4px); }
.mobile-menu nav a:hover { background: #f5f5f5 !important; }
#top a[href*="의뢰하기"]:hover { background: #000 !important; transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,.28) !important; }
.ic-tip:hover { background: #111 !important; color: #fff !important; border-color: #111 !important; transform: translateY(-2px); }
@media (hover: hover) and (pointer: fine) {
  .feat-card:hover { color: #fff !important; box-shadow: 0 20px 44px rgba(0,0,0,.2) !important; }
  .feat-card:hover .ui-059 { color: #fff !important; }
  .feat-card:hover .ui-060 { color: rgba(255,255,255,.85) !important; }
  .feat-card:hover .ui-056 { opacity: 0; }
  .hero-card-website:hover .hero-card-image-hover,
  .hero-card-content:hover .hero-card-image-hover { opacity: 1; transform: scale(1); }
  #why .ui-101:hover .ui-102,
  #why .ui-106:hover .ui-102 { opacity: 0; }
}
#fields > div > div > div:last-child a:hover { background: #111 !important; color: #fff !important; transform: translateY(-2px); }
#quick-actions a { transition: background-color .3s cubic-bezier(.22,1,.36,1), color .3s cubic-bezier(.22,1,.36,1), border-color .3s cubic-bezier(.22,1,.36,1), box-shadow .3s cubic-bezier(.22,1,.36,1), transform .3s cubic-bezier(.22,1,.36,1); }
.locoz-footer-auth { display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;margin-left:7px;color:#a4a5aa;vertical-align:-3px;border-radius:50%;transition:color .25s ease,background-color .25s ease; }
.locoz-footer-auth svg { width:12px;height:12px;display:block; }
.locoz-footer-auth:hover { color:#111;background:rgba(17,17,17,.06); }
.locoz-admin-quick { text-decoration:none; }
.locoz-admin-quick__icon { display:flex;align-items:center;justify-content:center;width:18px;height:18px; }
.locoz-admin-quick__icon svg { display:block;width:18px;height:18px; }
#quick-actions a.locoz-admin-quick:hover { background:#d64048 !important;color:#fff !important;border-color:#d64048 !important;box-shadow:0 10px 26px rgba(214,64,72,.24);transform:translateY(-2px); }
#quick-actions a[href*="open.kakao.com"]:hover { background:#fee500 !important;color:#191919 !important;border-color:#fee500 !important;box-shadow:0 10px 26px rgba(254,229,0,.28);transform:translateY(-2px); }
#quick-actions a[href*="contact"]:hover { background:#d64048 !important;color:#fff !important;border-color:#d64048 !important;box-shadow:0 10px 26px rgba(214,64,72,.24);transform:translateY(-2px); }
#quick-actions a[href="#top"]:hover { background:#f1f1f3 !important;color:#111 !important;border-color:#d8d8dc !important;box-shadow:0 10px 24px rgba(0,0,0,.1);transform:translateY(-2px); }

.locoz-search-tabs { align-content: flex-start; }
#search-panel .ui-016 { font-size:15.5px; }
.locoz-search-tab { width:100%;display:flex;align-items:center;gap:10px;padding:11px 13px;border:0;border-radius:11px;background:transparent;color:#5b5b60;font-family:inherit;font-size:13px;font-weight:500;line-height:1.2;text-align:left;cursor:pointer;transition:background-color .28s cubic-bezier(.22,.6,.2,1),color .28s cubic-bezier(.22,.6,.2,1),transform .28s cubic-bezier(.22,.6,.2,1); }
.locoz-search-tab svg { width:15px;height:15px;flex:0 0 15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round; }
.locoz-search-tab:hover { background:#eeeef0;color:#111;transform:translateX(2px); }
.locoz-search-tab.is-active { background:#e8e8eb;color:#111;font-weight:600; }
.locoz-search-content { scrollbar-gutter:stable; }
.locoz-search-section + .locoz-search-section { margin-top:26px; }
.locoz-search-heading { display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px; }
.locoz-search-heading h2 { margin:0;color:#7f7f85;font-size:12px;font-weight:600;letter-spacing:.02em; }
.locoz-search-heading button { flex:0 0 auto;border:0;background:transparent;color:#252529;padding:3px 0;font-family:inherit;font-size:11.5px;font-weight:600;line-height:1.25;letter-spacing:0;cursor:pointer;transition:color .25s ease,opacity .25s ease; }
.locoz-search-heading button:hover { color:#111;opacity:.68; }
.locoz-search-portfolio { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.locoz-search-project { display:block;min-width:0;color:#19191b; }
.smodal-grid .locoz-search-project:hover { background:transparent; }
.locoz-search-project__media { display:block;aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:#ebebed; }
.locoz-search-project__media img { width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.22,.6,.2,1),opacity .35s ease; }
.locoz-search-project strong { display:block;margin-top:8px;overflow:hidden;color:#232326;font-size:13px;font-weight:600;line-height:1.35;text-overflow:ellipsis;white-space:nowrap; }
.locoz-search-project:hover img { transform:scale(1.025);opacity:.86; }
.locoz-search-rows { display:flex;flex-direction:column;gap:2px; }
.locoz-search-row { display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;border-radius:10px;color:#232326;transition:background-color .28s cubic-bezier(.22,.6,.2,1),transform .28s cubic-bezier(.22,.6,.2,1); }
.locoz-search-row:hover { background:#f1f1f3;transform:translateX(3px); }
.locoz-search-row__text { min-width:0;display:flex;align-items:center;justify-content:space-between;gap:18px;flex:1; }
.locoz-search-row strong { min-width:0;overflow:hidden;font-size:13.5px;font-weight:600;line-height:1.4;text-overflow:ellipsis;white-space:nowrap; }
.locoz-search-row time { flex:0 0 auto;color:#a0a0a5;font-size:11px;font-weight:400; }
.locoz-search-blog { justify-content:flex-start; }
.locoz-search-blog__thumb { width:48px;height:48px;flex:0 0 48px;overflow:hidden;border-radius:9px;background:#e9e9eb; }
.locoz-search-blog__thumb img { display:block;width:100%;height:100%;object-fit:cover;transition:opacity .3s ease; }
.locoz-search-blog:hover .locoz-search-blog__thumb img { opacity:.8; }
.locoz-search-arrow { flex:0 0 auto;color:#aaaab0;font-size:20px;font-weight:300;line-height:1; }
.locoz-search-faq { display:flex;flex-direction:column; }
.locoz-search-faq__item { border-bottom:1px solid #ededf0; }
.locoz-search-faq__question { display:grid;width:100%;grid-template-columns:64px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:13px 12px;border:0;outline:0;background:transparent;color:#232326;text-align:left;cursor:pointer;transition:color .25s ease,box-shadow .25s ease; }
.locoz-search-faq__question:hover,
.locoz-search-faq__item.is-open .locoz-search-faq__question { background:transparent; }
.locoz-search-faq__question:focus-visible { border-radius:8px;box-shadow:inset 0 0 0 1px #d7d7db; }
.locoz-search-faq__category { overflow:hidden;color:#a0a0a5;font-size:11px;font-weight:500;line-height:1.3;text-overflow:ellipsis;white-space:nowrap; }
.locoz-search-faq__question strong { font-size:13.5px;font-weight:600;line-height:1.45; }
.locoz-search-faq__toggle { color:#727278;font-size:19px;font-weight:400;line-height:1;text-align:center;transition:transform .3s cubic-bezier(.22,.6,.2,1),color .25s ease; }
.locoz-search-faq__item.is-open .locoz-search-faq__toggle { color:#111;transform:rotate(45deg); }
.locoz-search-faq__answer { display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .32s cubic-bezier(.22,.6,.2,1),opacity .24s ease; }
.locoz-search-faq__answer > div { min-height:0;overflow:hidden; }
.locoz-search-faq__answer p { margin:0;padding:0 34px 15px 88px;color:#737379;font-size:12.5px;line-height:1.65; }
.locoz-search-faq__item.is-open .locoz-search-faq__answer { grid-template-rows:1fr;opacity:1; }
.locoz-search-summary { margin:0 0 24px;padding:13px 15px;border-radius:10px;background:#f5f5f6;color:#6d6d72;font-size:12.5px;line-height:1.55; }
.locoz-search-summary strong { color:#111;font-weight:600; }
.locoz-search-empty { margin:0;padding:22px 12px;border-radius:10px;background:#f7f7f8;color:#8a8a90;font-size:12.5px;text-align:center; }
.locoz-search-loading { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px; }
.locoz-search-loading span { display:block;aspect-ratio:16/10;border-radius:10px;background:linear-gradient(100deg,#f0f0f2 30%,#fafafa 50%,#f0f0f2 70%);background-size:220% 100%;animation:locoz-search-shimmer 1.1s ease-in-out infinite; }
.locoz-search-error { display:flex;min-height:180px;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:#55555b;font-size:13px;text-align:center; }
.locoz-search-error button { border:0;border-radius:999px;background:#111;color:#fff;padding:9px 16px;font:600 12px/1 inherit;cursor:pointer; }
@keyframes locoz-search-shimmer { to { background-position:-220% 0; } }
@media (prefers-reduced-motion:reduce) { .locoz-search-loading span { animation:none; } }
