
.ots{max-width:980px;margin:0 auto 18px}
.ots-sr{position:absolute;left:-9999px}
.ots-form{background:#fff;border:1px solid #e5e7eb;border-radius:18px;padding:18px;box-shadow:0 8px 26px rgba(15,23,42,.06)}
.ots-search{position:relative}
.ots-search input{width:100%;box-sizing:border-box;font-size:1.05rem;padding:14px 16px;border:2px solid #1e3a5f;border-radius:12px;outline:0}
.ots-search input:focus{border-color:#c0392b;box-shadow:0 0 0 4px rgba(192,57,43,.12)}
.ots-help{font-size:.8rem;color:#64748b;margin:6px 2px 0}
.ots-suggest{position:absolute;z-index:30;left:0;right:0;top:54px;background:#fff;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 14px 30px rgba(15,23,42,.14);max-height:320px;overflow:auto}
.ots-suggest button{display:flex;justify-content:space-between;gap:10px;width:100%;text-align:left;background:none;border:0;padding:10px 14px;font:inherit;cursor:pointer}
.ots-suggest button:hover,.ots-suggest button.on{background:#fef2f2}
.ots-suggest small{color:#64748b;white-space:nowrap}
.ots-row{display:grid;grid-template-columns:1fr 1.4fr 1fr auto auto;gap:10px;align-items:end;margin-top:14px}
.ots-row label{display:flex;flex-direction:column;font-size:.78rem;font-weight:700;color:#475569;gap:4px}
.ots-row select{font:inherit;font-size:.95rem;padding:10px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;min-width:0}
.ots-flow{border:0;margin:0;padding:0;display:flex;gap:4px}.ots-flow legend{font-size:.78rem;font-weight:700;color:#475569;margin-bottom:4px}
.ots-flow label{flex-direction:row}.ots-flow input{position:absolute;opacity:0}
.ots-flow span{display:block;padding:10px 12px;border:1px solid #cbd5e1;border-radius:10px;font-size:.9rem;font-weight:700;color:#334155;cursor:pointer}
.ots-flow input:checked+span{background:#1e3a5f;color:#fff;border-color:#1e3a5f}
.ots-flow input:focus-visible+span{outline:3px solid #c0392b}
.ots-go{background:#c0392b;color:#fff;border:0;border-radius:12px;padding:12px 18px;font:inherit;font-weight:800;cursor:pointer;white-space:nowrap}
.ots-go:hover{background:#a93226}
@media(max-width:820px){.ots-row{grid-template-columns:1fr 1fr}.ots-row>label:nth-child(2){grid-column:1/-1}.ots-go{grid-column:1/-1}}
.ots-hub h2,.ots-result h3{font-size:1.25rem;font-weight:800;margin:1.6em 0 .6em}
.ots-hub p{line-height:1.8;color:#334155}
.ots-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:14px 0}
.ots-cat{position:relative;display:flex;flex-direction:column;border:1px solid #ece7de;border-radius:18px;text-decoration:none;color:#0f172a;background:#fff;overflow:hidden;transition:transform .25s,box-shadow .25s}
.ots-cat .ph{display:block;aspect-ratio:4/3;background:#f3eee6 center/cover;transition:transform .5s}.ots-cat:hover .ph{transform:scale(1.05)}
.ots-cat .tx{display:block;padding:12px 14px 14px}
.ots-cat:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(15,23,42,.1)}
.ots-cat b{display:block;font-size:1.05rem;font-weight:900}.ots-cat small{color:#64748b;font-size:.8rem;line-height:1.5}.ots-cat i{position:absolute;right:12px;top:12px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);color:#c0392b;font-style:normal;display:flex;align-items:center;justify-content:center;font-weight:900}
.ots-head{position:relative;display:flex;gap:22px;align-items:center;background:linear-gradient(120deg,#fbf8f3,#f3eee6);border:1px solid #ece7de;border-radius:24px;padding:18px;margin:10px 0 16px;overflow:hidden}
.ots-head-img{flex:none;width:150px;height:150px;border-radius:18px;background:#f3eee6 center/cover;box-shadow:0 10px 26px rgba(15,23,42,.12)}
.ots-head-tx{flex:1;min-width:0;position:relative;z-index:2}.ots-head .ots-title{margin:.2em 0 .3em}
.ots-head .ots-arrive{position:absolute;right:-10px;top:-6px;width:300px;max-width:none;opacity:.55;z-index:1}
.ots-crumbs{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:.82rem}.ots-crumbs a{color:#1e3a5f;text-decoration:none;font-weight:700;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:3px 10px}.ots-crumbs a[aria-current]{background:#1e3a5f;color:#fff;border-color:#1e3a5f}.ots-crumbs span{color:#94a3b8}
.ots-sub{display:flex;flex-wrap:wrap;gap:6px}.ots-sub span{background:rgba(255,255,255,.8);border-radius:8px;padding:3px 8px;font-size:.8rem;color:#475569}
.ots-share{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:14px 16px;margin:12px 0 0}.ots-share .t{font-size:.95rem;color:#334155}.ots-share strong{font-size:1.25rem;color:#c0392b}.ots-share a{color:#1e3a5f;font-weight:800}
.ots-share .bar{height:12px;background:#f1f5f9;border-radius:999px;margin:10px 0 6px;overflow:hidden}.ots-share .bar i{display:block;height:100%;background:linear-gradient(90deg,#1e3a5f,#c0392b);border-radius:999px;animation:ots-grow 1.2s ease-out}.ots-share small{color:#94a3b8;font-size:.78rem}
@keyframes ots-grow{from{width:0}}
.ots-sib{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
.ots-sib a{position:relative;display:flex;justify-content:space-between;gap:10px;padding:11px 14px;border:1px solid #e5e7eb;border-radius:12px;text-decoration:none;color:#0f172a;background:#fff;overflow:hidden;font-size:.88rem}
.ots-sib a i{position:absolute;left:0;bottom:0;height:3px;background:#c0392b;opacity:.55}.ots-sib a span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ots-sib a b{white-space:nowrap}
.ots-sib a.on{border-color:#c0392b;background:#fef2f2}.ots-sib a:hover{border-color:#1e3a5f}
@media(max-width:720px){.ots-head{flex-direction:column;align-items:flex-start;padding:14px}.ots-head-img{width:100%;height:150px}.ots-sib{grid-template-columns:1fr}}
.ots-how{background:#f8fafc;border-radius:14px;padding:14px 18px;margin-top:16px}.ots-how h3{margin:0 0 6px;font-size:1rem}.ots-how ul{margin:0;padding-left:1.2em;line-height:1.8}
.ots-result{position:relative;max-width:980px;margin:0 auto}
.ots-title{font-size:1.5rem;font-weight:900;margin:.6em 0 .2em;letter-spacing:-.02em}
.ots-sub{color:#64748b;margin:0 0 14px;font-size:.9rem}
.ots-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.ots-kpis .k{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px}
.ots-kpis span{display:block;font-size:.8rem;color:#64748b}.ots-kpis b{display:block;font-size:clamp(1.05rem,2vw,1.45rem);font-weight:900;margin:3px 0;color:#0f172a;white-space:nowrap}
@media(max-width:720px){.ots-kpis{grid-template-columns:1fr 1fr}.ots-axis span:nth-child(even){visibility:hidden}.ots-kpis b{font-size:1.1rem}.ots-title{font-size:1.25rem}}
.up{color:#c0392b!important}.down{color:#1d4ed8!important}.na{color:#94a3b8!important;font-size:.8rem}
.ots-chart{margin:16px 0 0;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:12px}
.ots-chart svg{width:100%;height:210px;display:block}.ots-axis{display:flex;margin-top:4px}.ots-axis span{flex:1;text-align:center;font-size:.72rem;color:#64748b;white-space:nowrap}
.ots-chart .bi{fill:#1e3a5f}.ots-chart .be{fill:#c0392b}.ots-chart rect:hover{opacity:.75}
.ots-chart figcaption{font-size:.78rem;color:#64748b;margin-top:6px}.ots-chart i{display:inline-block;width:10px;height:10px;border-radius:2px;margin:0 4px 0 8px;vertical-align:-1px}.li{background:#1e3a5f}.le{background:#c0392b}
.ots-tw{overflow-x:auto;-webkit-overflow-scrolling:touch}.ots-table td:nth-child(n+3){white-space:nowrap}.ots-table td:nth-child(2){min-width:220px}.ots-table{min-width:560px}.ots-tariff{min-width:420px}
.ots-table{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}
.ots-table th{background:#1e3a5f;color:#fff;text-align:left;padding:10px;font-weight:700;white-space:nowrap}
.ots-table td{padding:10px;border-bottom:1px solid #eef2f7;vertical-align:top}.ots-table tbody tr:nth-child(even){background:#f8fafc}
.ots-table td small{display:block;color:#94a3b8;font-size:.75rem}.ots-table a{color:#0f172a;font-weight:700;text-decoration:none}.ots-table a:hover{color:#c0392b;text-decoration:underline}
.ots-note,.ots-src{font-size:.78rem;color:#94a3b8;line-height:1.7}
.ots-size{background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;padding:12px 16px}
.ots-alt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 6px}.ots-alt b{font-size:.85rem;margin-right:4px}
.ots-alt a{font-size:.85rem;padding:6px 12px;border:1px solid #cbd5e1;border-radius:999px;text-decoration:none;color:#1e3a5f;background:#fff}.ots-alt a:hover{border-color:#c0392b;color:#c0392b}
.ots-empty{max-width:980px;margin:16px auto;padding:18px;border-radius:14px;background:#f1f5f9;color:#334155}
/* 비행 연출 */
.ots-sky{width:100%;height:auto;overflow:visible}.ots-sky .kr{font-size:8px;font-weight:800;fill:#c0392b;letter-spacing:.1em}
.ots-sky .plane{offset-path:path('M20 92 Q160 -8 300 70');offset-rotate:auto;animation:ots-fly 2.2s cubic-bezier(.45,.05,.3,1) infinite}
.ots-sky .ship{transform:translate(-40px,98px);animation:ots-sail 6s linear infinite}
.ots-sky .route{animation:ots-dash 1s linear infinite}
@keyframes ots-fly{from{offset-distance:0%}to{offset-distance:100%}}
@keyframes ots-sail{from{transform:translate(-40px,98px)}to{transform:translate(330px,98px)}}
@keyframes ots-dash{to{stroke-dashoffset:-20}}
.ots-sky.arrive .plane{animation:ots-fly 1.6s cubic-bezier(.2,.8,.2,1) 1 forwards}.ots-sky.arrive .ship{animation:ots-sail 4s ease-out 1 forwards}.ots-sky.arrive .route{animation:none}
.ots-arrive{max-width:420px;margin:6px auto -6px;opacity:.9;overflow:hidden}.ots-result{overflow-x:hidden}
.ots-overlay{position:fixed;inset:0;z-index:9999;background:rgba(248,250,252,.92);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center}
.ots-overlay[hidden]{display:none}.ots-overlay{background:radial-gradient(circle at 50% 30%,rgba(219,234,254,.97),rgba(248,250,252,.97) 60%)}
.ots-overlay .box{width:min(520px,92vw);text-align:center}
.ov-sky{position:relative;height:230px}
.ov-globe{position:absolute;left:50%;top:6px;width:190px;height:190px;margin-left:-95px;filter:drop-shadow(0 18px 30px rgba(30,58,95,.25));animation:ov-bob 3s ease-in-out infinite}
.ov-globe .lon{transform-origin:100px 100px;animation:ov-spin 6s linear infinite}
.ov-globe .pins circle{fill:#fbbf24;animation:ov-pulse 1.4s ease-in-out infinite}.ov-globe .pins .kr{fill:#c0392b;animation-duration:.9s}
.ov-globe .arcs path{stroke:#fff;stroke-dasharray:5 6;animation:ots-dash .8s linear infinite}
.ov-sky .ots-sky{position:absolute;left:0;right:0;top:40px}
.ov-sky .cl{position:absolute;height:22px;border-radius:999px;background:#fff;opacity:.9;box-shadow:12px -8px 0 2px #fff,24px 0 0 0 #fff;animation:ov-cloud 7s linear infinite}
.ov-sky .c1{width:60px;top:20px;left:-80px}.ov-sky .c2{width:44px;top:120px;left:-60px;animation-duration:9s;animation-delay:-3s}.ov-sky .c3{width:70px;top:70px;left:-90px;animation-duration:11s;animation-delay:-6s}
@keyframes ov-cloud{to{transform:translateX(640px)}}@keyframes ov-spin{to{transform:rotate(360deg)}}@keyframes ov-bob{50%{transform:translateY(-6px)}}@keyframes ov-pulse{50%{opacity:.35;r:7}}
.ov-msg b{display:block;font-size:1.2rem;color:#0f172a;margin-top:6px}.ov-msg span{font-size:.88rem;color:#64748b}
.ov-prog{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;margin:14px auto 10px;max-width:420px}.ov-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#1e3a5f,#c0392b,#f59e0b);background-size:200% 100%;animation:ov-shine 1.2s linear infinite;transition:width .2s}
@keyframes ov-shine{to{background-position:-200% 0}}
.ov-steps{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:0;margin:0}.ov-steps li{font-size:.75rem;padding:4px 10px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;color:#94a3b8}
.ov-steps li.now{border-color:#c0392b;color:#c0392b;font-weight:800;animation:ov-bob 1s ease-in-out infinite}.ov-steps li.done{background:#1e3a5f;border-color:#1e3a5f;color:#fff}.ov-steps li.done::before{content:'✓ '}
.ov-fact{margin:14px auto 0;max-width:420px;font-size:.82rem;color:#475569;background:#fff;border-radius:12px;padding:10px 12px;border:1px dashed #cbd5e1}
@media (prefers-reduced-motion:reduce){.ots-sky .plane,.ots-sky .ship,.ots-sky .route{animation:none}.ots-sky .plane{offset-distance:100%}}
