.float,
        .float:link,
        .float:visited{
            position: fixed;
            width: 60px;
            height: 60px;
            bottom: 40px;
            right: 40px;
            background: #25d366;
            border-radius: 50px;
            text-align: center;
            padding: 15px;
            z-index: 100;
            box-shadow: 0 10px 26px rgba(0,0,0,.22);
            transition: box-shadow .25s ease;
        }
.float svg{
                width: 30px;
                height: 30px;
                display: block;
                margin: auto;
            }
.float::before{
                content: "";
                position: absolute;
                left: -260px;
                top: -30px;
                width: 260px;
                height: 120px;
                background: transparent;
            }
.float::after{
                content: attr(data-tooltip);
                position: absolute;
                right: 70px;
                top: 50%;
                background: #25d366;
                color: #fff;
                font-size: 14px;
                font-weight: 700;
                padding: 9px 14px;
                border-radius: 999px;
                white-space: nowrap;
                opacity: 0;
                pointer-events: none;
                transform: translate(26px, -26px) rotate(-12deg);
                transform-origin: right center;
                transition: opacity .18s ease, transform .55s cubic-bezier(.22,.61,.36,1);
            }
.float:hover{
                box-shadow: 0 12px 30px rgba(0,0,0,.28);
            }
.float:hover::after{
                    opacity: 1;
                    transform: translate(0, -50%) rotate(0deg);
                }
header{
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 1000;
        }
.navbar-wrap{
            background: transparent;
            border-bottom: 1px solid transparent;
            transition: background .25s ease, border-color .25s ease;
            will-change: background, border-color;
            position: relative;
        }
.navbar-wrap.scrolled{
                background: linear-gradient( 135deg, rgba(5,56,82,.88), rgba(14,78,183,.88) );
                backdrop-filter: blur(10px);
                border-bottom-color: rgba(0,0,0,0);
            }
.navbar{
            max-width: 1400px;
            margin: auto;
            padding: 18px 24px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            flex-wrap: nowrap;
        }
.brand{
            display: flex;
            align-items: center;
            gap: 14px;
            font-weight: 800;
            color: #fff;
            white-space: nowrap;
            transition: color .25s ease;
            min-width: 0;
        }
.logo{
            height: 80px;
            width: auto;
            object-fit: contain;
            display: block;
        }
.lang{
            position: relative;
            padding-left: 10px;
            border-left: 1px solid rgba(255,255,255,.22);
            display: flex;
            align-items: center;
        }
.lang-btn{
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 10px 12px;
            border-radius: 12px;
            border: 1px solid rgba(255,255,255,.22);
            background: rgba(255,255,255,.08);
            color: rgba(255,255,255,.92);
            cursor: pointer;
            font-weight: 700;
            font-size: 14px;
            transition: background .18s ease, border-color .18s ease, color .18s ease;
        }
.lang-btn:hover{
                background: rgba(255,255,255,.12);
            }
.lang-caret{
            width: 10px;
            height: 10px;
            display: inline-block;
            border-right: 2px solid currentColor;
            border-bottom: 2px solid currentColor;
            transform: rotate(45deg) translateY(-1px);
            opacity: .85;
        }
.lang-menu{
            position: absolute;
            top: calc(100% + 10px);
            right: 0;
            min-width: 200px;
            background: #fff;
            border: 1px solid rgba(0,0,0,.08);
            border-radius: 14px;
            box-shadow: 0 14px 36px rgba(0,0,0,.16);
            padding: 8px;
            display: none;
            z-index: 1200;
        }
.lang.open .lang-menu{
            display: block;
        }
.lang-item{
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 10px;
            padding: 12px 12px;
            border-radius: 12px;
            font-weight: 700;
            color: #0B1220;
        }
.lang-item:hover{
                background: rgba(0,0,0,.05);
            }
.lang-item .left{
                display: inline-flex;
                align-items: center;
                gap: 10px;
            }
.lang-item.active{
                background: rgba(14,78,183,.12);
            }
.nav-right{
            display: flex;
            align-items: center;
            gap: 12px;
            margin-left: auto;
            flex: 0 0 auto;
        }
.nav-menu{
            display: flex;
            gap: 8px;
            align-items: center;
        }
.nav-link{
            padding: 12px 14px;
            border-radius: 12px;
            font-size: 15px;
            font-weight: 600;
            color: rgba(255,255,255,.92);
            transition: background .18s ease, color .18s ease;
            white-space: nowrap;
        }
.nav-link:hover{
                background: rgba(255,255,255,.12);
            }
.nav-link.active{
                background: rgba(255,255,255,.18);
            }
.menu-btn{
            display: none;
            width: 44px;
            height: 44px;
            border-radius: 12px;
            border: 1px solid rgba(255,255,255,.22);
            background: rgba(255,255,255,.08);
            color: #fff;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: background .18s ease, border-color .18s ease, color .18s ease;
            margin-left: auto;
        }
.menu-btn:hover{
                background: rgba(255,255,255,.12);
            }
.navbar-wrap.scrolled .menu-btn:hover{
            background: rgba(0,0,0,.06);
        }
.menu-icon{
            width: 20px;
            height: 14px;
            position: relative;
            display: block;
        }
.menu-icon span{
                position: absolute;
                left: 0;
                right: 0;
                height: 2px;
                border-radius: 999px;
                background: currentColor;
                transition: transform .2s ease, top .2s ease, opacity .2s ease;
            }
.menu-icon span:nth-child(1){
                    top: 0;
                }
.menu-icon span:nth-child(2){
                    top: 6px;
                }
.menu-icon span:nth-child(3){
                    top: 12px;
                }
.menu-btn[aria-expanded="true"] .menu-icon span:nth-child(1){
            top: 6px;
            transform: rotate(45deg);
        }
.menu-btn[aria-expanded="true"] .menu-icon span:nth-child(2){
            opacity: 0;
        }
.menu-btn[aria-expanded="true"] .menu-icon span:nth-child(3){
            top: 6px;
            transform: rotate(-45deg);
        }
.mobile-dropdown{
            display: none;
            flex-direction: column;
            position: absolute;
            top: 100%;
            left: 0;
            right: 0;
            background: #fff;
            border-bottom: 1px solid rgba(0,0,0,.08);
            box-shadow: 0 12px 30px rgba(0,0,0,.12);
            padding: 10px 16px 14px;
            z-index: 999;
        }
.mobile-dropdown a{
                padding: 14px 12px;
                border-radius: 12px;
                font-weight: 700;
                color: #0B1220;
            }
.mobile-dropdown a:hover{
                    background: rgba(0,0,0,.05);
                }
.mobile-dropdown a.active{
                    background: rgba(14,78,183,.12);
                }
.mobile-lang{
            margin-top: 10px;
            padding-top: 10px;
            border-top: 1px solid rgba(0,0,0,.08);
            display: block;
        }
.mobile-lang-details{
            border: 1px solid rgba(0,0,0,.10);
            border-radius: 12px;
            background: rgba(0,0,0,.04);
            overflow: hidden;
        }
.mobile-lang-summary{
            list-style: none;
            cursor: pointer;
            padding: 12px 12px;
            font-weight: 800;
            color: #0B1220;
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 12px;
        }
.mobile-lang-summary::-webkit-details-marker{
                display: none;
            }
.mobile-lang-caret{
            width: 10px;
            height: 10px;
            border-right: 2px solid rgba(0,0,0,.55);
            border-bottom: 2px solid rgba(0,0,0,.55);
            transform: rotate(45deg);
        }
.mobile-lang-details[open] .mobile-lang-caret{
            transform: rotate(-135deg);
        }
.mobile-lang-links{
            padding: 8px 8px 10px;
            background: #fff;
            border-top: 1px solid rgba(0,0,0,.08);
        }
.mobile-lang-link{
            display: block;
            padding: 12px 10px;
            border-radius: 10px;
            font-weight: 800;
            color: #0B1220;
        }
.mobile-lang-link:hover{
                background: rgba(0,0,0,.05);
            }
.mobile-lang-link.active{
                background: rgba(14,78,183,.12);
            }
@media (max-width: 980px){.nav-menu{
                display: none;
            }
.menu-btn{
                display: inline-flex;
            }
.logo{
                height: 60px;
                width: auto;
            }
.lang{
                display: none;
            }}
.site-footer{
            position: relative;
            isolation: isolate;
            color: rgba(255,255,255,.90);
            background: linear-gradient(135deg,#062A3A 0%, #053852 45%, #0E4EB7 120%);
            overflow-x: clip;
            overflow-y: hidden;
        }
.site-footer::before{
                content: "";
                position: absolute;
                inset: 0;
                pointer-events: none;
                background: radial-gradient(920px 520px at 18% 22%, rgba(14,78,183,.38), rgba(14,78,183,0) 62%), radial-gradient(880px 520px at 84% 36%, rgba(0,210,190,.18), rgba(0,210,190,0) 62%), radial-gradient(980px 620px at 50% 110%, rgba(255,255,255,.10), rgba(255,255,255,0) 68%);
                opacity: .95;
                z-index: 0;
            }
.footer-waves{
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 220px;
            z-index: 1;
            pointer-events: none;
            overflow: hidden;
            line-height: 0;
        }
.footer-waves svg{
                position: absolute;
                top: 0;
                left: 50%;
                transform: translateX(-50%);
                width: 112%;
                height: 220px;
                max-width: none;
                display: block;
            }
.footer-inner{
            position: relative;
            z-index: 2;
            max-width: 1400px;
            margin: 0 auto;
            padding: 220px 24px 26px;
        }
.footer-top{
            display: grid;
            grid-template-columns: 1.35fr 1fr 1.05fr 1.2fr;
            gap: 18px;
            align-items: start;
        }
.footer-brand{
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
.footer-logo{
            display: flex;
            align-items: center;
            gap: 12px;
            font-weight: 900;
            letter-spacing: .2px;
        }
.footer-logo img{
                height: 80px;
                width: auto;
                display: block;
            }
.footer-desc{
            margin: 0;
            line-height: 1.75;
            color: rgba(255,255,255,.82);
            max-width: 52ch;
            font-size: 14px;
        }
.footer-col h4{
            margin: 6px 0 12px;
            font-size: 14px;
            letter-spacing: .22em;
            text-transform: uppercase;
            color: rgba(255,255,255,.78);
        }
.footer-links{
            list-style: none;
            padding: 0;
            margin: 0;
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
.footer-links a{
                display: inline-flex;
                align-items: center;
                gap: 10px;
                color: rgba(255,255,255,.86);
                font-weight: 650;
                font-size: 14px;
                padding: 2px 0;
                border-radius: 0;
                text-decoration: none;
            }
.footer-links a:hover,
                .footer-links a:focus{
                    background: transparent;
                    color: rgba(255,255,255,.86);
                    transform: none;
                    outline: none;
                }
.footer-products{
            display: flex;
            flex-direction: column;
            gap: 10px;
        }
.footer-product-link{
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 6px 0;
            color: rgba(255,255,255,.86);
            text-decoration: none;
        }
.footer-product-link:hover,
            .footer-product-link:focus{
                background: transparent;
                color: rgba(255,255,255,.86);
                outline: none;
            }
.footer-product-logo{
            height: 60px;
            width: auto;
            display: block;
            filter: drop-shadow(0 10px 20px rgba(0,0,0,.16));
        }
.footer-contact{
            display: flex;
            flex-direction: column;
            gap: 10px;
            margin: 0;
            color: rgba(255,255,255,.82);
            font-size: 14px;
            line-height: 1.7;
        }
.footer-contact a{
                color: rgba(255,255,255,.86);
                font-weight: 650;
                text-decoration: none;
                padding: 2px 0;
            }
.footer-contact a:hover,
                .footer-contact a:focus{
                    background: transparent;
                    color: rgba(255,255,255,.86);
                    outline: none;
                }
.footer-bottom{
            margin-top: 18px;
            padding-top: 14px;
            border-top: 1px solid rgba(255,255,255,.14);
            color: rgba(255,255,255,.72);
            font-size: 13px;
            display: flex;
            justify-content: flex-end;
        }
@media (max-width: 1100px){.footer-top{
                grid-template-columns: 1fr 1fr;
            }}
@media (max-width: 720px){.footer-waves{
                height: 200px;
            }
.footer-waves svg{
                    height: 200px;
                    width: 125%;
                }
.footer-inner{
                padding: 200px 18px 22px;
            }
.footer-top{
                grid-template-columns: 1fr;
            }}
.lang-menu{ min-width: 280px; }
@media (max-width: 720px) { body[data-page="home"] .float svg { width:28px; height:28px; } }

/* Category navigation: progressive enhancement keeps every link in server HTML. */
.solutions-menu > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px; }
.solutions-menu > summary::-webkit-details-marker { display:none; }
.solutions-caret { width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); transition:transform .2s; }
.solutions-menu[open] .solutions-caret { transform:rotate(225deg); }
.solutions-menu--desktop .solutions-panel { position:absolute; top:calc(100% + 10px); left:24px; right:24px; width:auto; max-width:1540px; margin-inline:auto; max-height:calc(100dvh - 142px); overflow:auto; }
.solutions-panel { background:#fff; color:#063755; border:1px solid #dce5eb; border-radius:22px; overflow:hidden; box-shadow:0 18px 30px #002d4d20; text-align:left; }
.solutions-browser { display:grid; grid-template-columns:280px minmax(0,1fr); min-height:350px; max-width:1600px; margin:auto; }
.solutions-sidebar { border-right:1px solid #dfe5eb; padding:26px 0 28px; background:#f0f4f7; }
.solutions-sidebar-title { padding:0 28px; margin:0 0 18px; font-size:13px; font-weight:750; color:#526777; }
.solutions-categories { display:flex; flex-direction:column; }
.solutions-category { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:14px; font-weight:500; line-height:1.5; padding:14px 18px; margin:2px 10px; border-radius:11px; border-left:3px solid transparent; }
.solutions-category:hover { background:#eff3f7; }
.solutions-category[aria-selected="true"] { background:#fff; color:#063755; border-left-color:transparent; font-weight:700; }
.solutions-menu--desktop .solutions-category { padding-block:10px; margin-block:1px; }
.solutions-menu--desktop .solutions-category[aria-selected="true"] { position:relative; margin-right:-1px; border-radius:11px 0 0 11px; }
.solutions-menu--desktop .solutions-category[aria-selected="true"]::before,
.solutions-menu--desktop .solutions-category[aria-selected="true"]::after { content:""; position:absolute; right:0; width:12px; height:12px; pointer-events:none; }
.solutions-menu--desktop .solutions-category[aria-selected="true"]::before { top:-12px; background:radial-gradient(circle at top left, transparent 11.5px, #fff 12px); }
.solutions-menu--desktop .solutions-category[aria-selected="true"]::after { bottom:-12px; background:radial-gradient(circle at bottom left, transparent 11.5px, #fff 12px); }
.solutions-overview { display:block; margin:26px 28px 0; padding-top:18px; border-top:1px solid #dfe5eb; font-size:12px; line-height:1.7; color:#063755; }
.solutions-content { padding:28px 36px 40px; }
.solutions-group { scroll-margin-top:140px; }
.solutions-group + .solutions-group { margin-top:35px; }
.solutions-enhanced .solutions-group { margin-top:0; }
.solutions-group[hidden] { display:none; }
.solutions-group h2 { font-size:23px; font-weight:600; color:#063755; margin:0 0 18px; line-height:1.3; letter-spacing:-.5px; text-align:left; }
.solutions-items { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:34px; row-gap:12px; }
.solution-entry { display:block; position:relative; padding:12px 10px 16px 40px; border-radius:12px; line-height:1.6; border-bottom:1px solid transparent; }
.solution-entry strong { display:block; font-size:14px; font-weight:650; text-wrap:pretty; }
.solution-entry > span { display:block; font-size:13px; color:#526777; margin-top:5px; }
.solution-entry small { display:block; margin-top:12px; font-size:11px; color:#6a7682; }
.solution-entry--pending { color:#4f5e6a; cursor:default; }
a.solution-entry { color:#063755; }
a.solution-entry:hover { color:#063755; border-bottom-color:transparent; background:#f1f6f9; }
a.solution-entry.current strong { color:#063755; }
.solutions-menu summary:focus-visible, .solutions-panel a:focus-visible, .solutions-group:focus-visible { outline:2px solid #063755; outline-offset:-2px; }
.solutions-menu--mobile { margin-top:2px; }
.solutions-menu--mobile > summary { color:#0b1220; font-weight:700; padding:14px 12px; justify-content:space-between; }
.solutions-menu--mobile[open] > summary { background:#edf3f9; }
.solutions-menu--mobile .solutions-panel { box-shadow:none; margin:8px 0; border:1px solid #dfe5eb; }
.solutions-menu--mobile .solutions-browser { display:block; min-height:0; }
.solutions-menu--mobile .solutions-sidebar { padding:18px 0; border-right:0; border-bottom:1px solid #dfe5eb; }
.solutions-menu--mobile .solutions-sidebar-title { padding:0 16px; margin-bottom:12px; }
.solutions-menu--mobile .solutions-categories { display:grid; grid-template-columns:1fr 1fr; }
.solutions-menu--mobile .solutions-category { padding:12px 8px; margin:2px 4px; font-size:12px; border-radius:9px; font-weight:500; }
.solutions-menu--mobile .solutions-category[aria-selected="true"] { font-weight:700; background:#fff; }
.solutions-menu--mobile .solutions-overview { padding:12px 0 0; margin:14px 16px 0; border-radius:0; font-size:12px; color:#063755; }
.solutions-menu--mobile .solutions-content { padding:22px 18px; }
.solutions-menu--mobile .solutions-group h2 { font-size:23px; margin-bottom:18px; }
.solutions-menu--mobile .solutions-items { grid-template-columns:1fr; gap:14px; }
.solutions-menu--mobile a.solution-entry { padding:12px 10px 16px 40px; border-radius:12px; font-weight:400; background:transparent; }
.mobile-dropdown { max-height:calc(100dvh - 108px); overflow-y:auto; overscroll-behavior:contain; }
@media (max-width:1180px) {
    .has-solutions .nav-menu, .has-solutions .lang { display:none; }
    .has-solutions .menu-btn { display:inline-flex; }
    .has-solutions .logo { height:60px; width:auto; }
}
@media (prefers-reduced-motion:reduce) { .solutions-caret { transition:none; } }
.solution-icon { position:absolute; top:14px; left:8px; width:23px; height:23px; color:#063755; }


/* Shared call-to-action style for solution landing pages. */
.site-pill { display:inline-flex; align-items:center; justify-content:center; padding:13px 24px; border-radius:999px; border:1px solid #b5cce2; background:#fff; color:#063755; font-size:14px; font-weight:700; line-height:1.5; text-align:center; text-decoration:none; transition:background .2s,border-color .2s; }
.site-pill:hover { background:#edf5ff; border-color:#7fa6c1; }
.site-pill:focus-visible { outline:3px solid #4ea1e8; outline-offset:4px; }
@media (prefers-reduced-motion:reduce) { .site-pill { transition:none; } }
/* Keep Korean words together while allowing unusually long terms to wrap. */
html:lang(ko) main,
html:lang(ko) .solutions-panel {
    word-break: keep-all;
    overflow-wrap: break-word;
}
