@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css");

:root{
  --navy-900:#0b1230;
  --navy-800:#121c46;
  --navy-700:#1b2a6b;
  --brand:#2fa8e0;
  --brand-dark:#1a7fb5;
  --brand-light:#e8f6fd;
  --ink:#16192b;
  --ink-2:#4a5068;
  --ink-3:#7b8199;
  --line:#e3e6ef;
  --bg:#ffffff;
  --bg-soft:#f6f8fc;
  --radius:14px;
  --shadow:0 2px 8px rgba(11,18,48,.06),0 12px 32px rgba(11,18,48,.08);
  --wrap:1180px;
  --header-h:72px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{
  margin:0;
  font-family:"Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Malgun Gothic",sans-serif;
  color:var(--ink);
  background:var(--bg);
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  word-break:keep-all;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
button{font:inherit;cursor:pointer}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 20px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* ---------- 헤더 ---------- */
.header{
  position:sticky;top:0;z-index:100;
  height:var(--header-h);
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--line);
}
.header__inner{display:flex;align-items:center;gap:24px;height:100%}
.logo{display:flex;align-items:center;flex:0 0 auto}
.logo img{height:38px;width:auto}
.gnb{display:flex;gap:2px;margin-left:auto;align-items:center}
.gnb__item{position:relative}
.gnb a{
  display:flex;align-items:center;white-space:nowrap;
  padding:10px 14px;border-radius:9px;
  font-weight:600;font-size:15.5px;color:var(--ink-2);
  transition:color .15s,background .15s;
}
.gnb a:hover{color:var(--navy-800);background:var(--brand-light)}
.gnb a[aria-current="page"]{color:var(--brand-dark);background:var(--brand-light)}
.gnb__item.is-active > a{color:var(--brand-dark)}

/* 하위 메뉴 있음 표시 */
.gnb__item.has-sub > a::after{
  content:"";margin-left:6px;flex:0 0 auto;
  width:0;height:0;opacity:.45;
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;
}
.gnb__sub{
  position:absolute;left:0;top:100%;z-index:10;display:none;
  min-width:200px;padding:8px;
  background:#fff;border:1px solid var(--line);border-radius:12px;
  box-shadow:var(--shadow);
}
.gnb__item:hover > .gnb__sub,
.gnb__item:focus-within > .gnb__sub{display:block}
.gnb__sub a{flex-direction:column;align-items:flex-start;padding:10px 12px;border-radius:8px;font-size:15px;font-weight:600}
.gnb__sub small{display:block;margin-top:2px;font-size:12.5px;font-weight:500;color:var(--ink-3)}
.gnb__sub a:hover small{color:var(--ink-2)}
.header__cta{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.header__tel{font-weight:800;font-size:17px;color:var(--navy-700);letter-spacing:-.01em;white-space:nowrap}
.header__tel small{display:block;font-size:11px;font-weight:600;color:var(--ink-3);letter-spacing:.02em}
.navtoggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0;align-items:center;justify-content:center}
.navtoggle span{display:block;width:18px;height:2px;background:var(--ink);position:relative}
.navtoggle span::before,.navtoggle span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--ink)}
.navtoggle span::before{top:-6px}
.navtoggle span::after{top:6px}

/* ---------- 버튼 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:10px;border:1px solid transparent;
  font-weight:700;font-size:16px;letter-spacing:-.01em;
  transition:transform .12s,box-shadow .15s,background .15s,color .15s;
}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--brand);color:#fff;box-shadow:0 6px 18px rgba(47,168,224,.32)}
.btn--primary:hover{background:var(--brand-dark)}
.btn--dark{background:var(--navy-700);color:#fff}
.btn--dark:hover{background:var(--navy-800)}
.btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}
.btn--ghost:hover{background:rgba(255,255,255,.12)}
.btn--line{background:#fff;color:var(--navy-700);border-color:var(--line)}
.btn--line:hover{border-color:var(--brand);color:var(--brand-dark)}
.btn--sm{padding:10px 18px;font-size:14.5px}
.btn--block{width:100%}

/* ---------- 섹션 공통 ---------- */
.section{padding:72px 0}
.section--soft{background:var(--bg-soft)}
.section__head{max-width:760px;margin-bottom:34px}
.section__head--center{margin-left:auto;margin-right:auto;text-align:center}
.eyebrow{
  display:inline-block;margin-bottom:14px;
  font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brand-dark);
}
.section__title{font-size:40px;line-height:1.28;font-weight:800;letter-spacing:-.03em;color:var(--navy-900)}
.section__desc{margin-top:18px;font-size:17.5px;color:var(--ink-2);line-height:1.75}

/* ---------- 히어로 ---------- */
.hero{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--navy-900) 0%,var(--navy-700) 55%,#1e4f8a 100%);
  color:#fff;
}
.hero::after{
  content:"";position:absolute;inset:0;
  background:radial-gradient(900px 500px at 82% 18%,rgba(47,168,224,.34),transparent 62%);
  pointer-events:none;
}
.hero__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.2fr .8fr;gap:44px;align-items:stretch;padding:60px 0 64px}
.hero__badge{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;
  padding:8px 16px;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  font-size:14px;font-weight:600;
}
.hero__badge b{color:#8fd8ff;font-weight:800}
.hero h1{font-size:54px;line-height:1.24;font-weight:800;letter-spacing:-.035em}
.hero h1 em{font-style:normal;color:#7fd2ff}
.hero__desc{margin-top:20px;font-size:19px;line-height:1.72;color:rgba(255,255,255,.82);max-width:33em}
.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.hero__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:52px;padding-top:34px;border-top:1px solid rgba(255,255,255,.18)}
.hero__stat b{display:block;font-size:34px;font-weight:800;letter-spacing:-.03em;color:#fff;line-height:1.2}
.hero__stat span{display:block;margin-top:4px;font-size:14.5px;color:rgba(255,255,255,.72)}
/* 히어로 장점 카드 (저렴한 비용 · 기존 단말 · 빠른 인식) */
.hero__perks{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}
.perk{
  display:block;padding:18px 18px 16px;border-radius:14px;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);
  color:#fff;transition:background .15s,border-color .15s,transform .15s;
}
a.perk:hover{background:rgba(255,255,255,.13);border-color:rgba(127,210,255,.55);transform:translateY(-2px)}
.perk__k{display:block;font-size:12.5px;font-weight:700;color:#8fd8ff;letter-spacing:.02em}
.perk b{display:block;margin-top:6px;font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.2}
.perk span:not(.perk__k){display:block;margin-top:6px;font-size:13.5px;line-height:1.5;color:rgba(255,255,255,.72)}
.hero__fine{margin-top:14px;font-size:12.5px;color:rgba(255,255,255,.5)}
.hero__visual{position:relative;min-height:360px}
.hero__visual img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% 30%;border-radius:20px;
  box-shadow:0 30px 70px rgba(0,0,0,.42);
}
.hero__tag{
  position:absolute;left:-18px;bottom:26px;
  background:#fff;color:var(--navy-900);
  padding:14px 20px;border-radius:14px;box-shadow:var(--shadow);
  font-size:14.5px;font-weight:700;line-height:1.45;
}
.hero__tag b{display:block;color:var(--brand-dark);font-size:21px}

/* ---------- 신뢰 바 ---------- */
.trust{padding:24px 0;background:#fff;border-bottom:1px solid var(--line)}
.trust__label{font-size:13.5px;font-weight:700;color:var(--ink-3);letter-spacing:.02em;text-align:center;margin-bottom:18px}
.trust__list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 34px}
.trust__list li{font-size:17px;font-weight:700;color:#9aa1b8;letter-spacing:-.02em;transition:color .15s}
.trust__list li:hover{color:var(--navy-700)}

/* ---------- 카드 그리드 ---------- */
.grid{display:grid;gap:20px}
.grid--2{grid-template-columns:repeat(2,1fr)}
.grid--3{grid-template-columns:repeat(3,1fr)}
.grid--4{grid-template-columns:repeat(4,1fr)}

.card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;transition:border-color .15s,box-shadow .18s,transform .18s;
}
.card:hover{border-color:#c8d4ea;box-shadow:var(--shadow);transform:translateY(-2px)}
.card__num{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;margin-bottom:18px;border-radius:12px;
  background:var(--brand-light);color:var(--brand-dark);
  font-size:15px;font-weight:800;
}
.card h3{font-size:20px;font-weight:800;letter-spacing:-.025em;color:var(--navy-900);line-height:1.4}
.card p{margin-top:12px;font-size:15.5px;color:var(--ink-2);line-height:1.72}
.card__list{margin-top:16px;display:grid;gap:8px}
.card__list li{position:relative;padding-left:18px;font-size:15px;color:var(--ink-2)}
.card__list li::before{content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--brand)}

/* ---------- 특징 ---------- */
.feature{padding:26px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.feature b{display:block;font-size:30px;font-weight:800;color:var(--brand-dark);letter-spacing:-.03em;line-height:1.25}
.feature h3{margin-top:10px;font-size:18.5px;font-weight:800;color:var(--navy-900);letter-spacing:-.02em}
.feature p{margin-top:10px;font-size:15px;color:var(--ink-2);line-height:1.7}

/* ---------- 미디어 카드 ---------- */
.mcard{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;
  transition:border-color .15s,box-shadow .18s,transform .18s;
}
.mcard:hover{border-color:#c8d4ea;box-shadow:var(--shadow);transform:translateY(-2px)}
.mcard__img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--bg-soft)}
.mcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.mcard:hover .mcard__img img{transform:scale(1.05)}
.mcard__tag{
  position:absolute;left:14px;top:14px;z-index:1;
  padding:6px 12px;border-radius:999px;
  background:rgba(11,18,48,.82);color:#fff;
  font-size:12.5px;font-weight:700;letter-spacing:-.01em;
}
.mcard__body{padding:22px 24px 26px;flex:1;display:flex;flex-direction:column}
.mcard__body h3{font-size:18px;font-weight:800;color:var(--navy-900);letter-spacing:-.025em;line-height:1.45}
.mcard__body p{margin-top:10px;font-size:15px;color:var(--ink-2);line-height:1.7}
.mcard__meta{margin-top:14px;font-size:13.5px;font-weight:700;color:var(--ink-3)}

/* ---------- 제품 ---------- */
.product{
  display:grid;grid-template-columns:.9fr 1.1fr;gap:36px;align-items:center;
  padding:32px;background:#fff;border:1px solid var(--line);border-radius:18px;
}
.product + .product{margin-top:20px}
.product--flip .product__media{order:2}
.product__media{background:var(--bg-soft);border-radius:14px;padding:28px;display:flex;align-items:center;justify-content:center}
.product__media img{max-height:360px;width:auto;object-fit:contain}
.product__name{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--navy-900);line-height:1.3}
.product__model{display:inline-block;margin-bottom:12px;padding:5px 12px;border-radius:6px;background:var(--navy-700);color:#fff;font-size:12.5px;font-weight:800;letter-spacing:.06em}
.product__lead{margin-top:14px;font-size:16.5px;color:var(--ink-2);line-height:1.75}
.spec{margin-top:24px;border-top:1px solid var(--line)}
.spec div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:13px 0;border-bottom:1px solid var(--line);font-size:15px}
.spec dt{color:var(--ink-3);font-weight:700}
.spec dd{margin:0;color:var(--ink);font-weight:600}

/* ---------- 적용 분야 ---------- */
.industry{
  display:grid;grid-template-columns:420px 1fr;gap:36px;align-items:center;
  padding:28px 0;border-bottom:1px solid var(--line);
}
.industry:last-child{border-bottom:0}
.industry--flip .industry__media{order:2}
.industry__media{border-radius:16px;overflow:hidden;aspect-ratio:16/11}
.industry__media img{width:100%;height:100%;object-fit:cover}
.industry h3{font-size:25px;font-weight:800;letter-spacing:-.03em;color:var(--navy-900);line-height:1.38}
.industry p{margin-top:14px;font-size:16px;color:var(--ink-2);line-height:1.75}
.checks{margin-top:20px;display:grid;gap:10px}
.checks li{position:relative;padding-left:28px;font-size:15.5px;color:var(--ink);font-weight:600}
.checks li::before{
  content:"";position:absolute;left:0;top:7px;width:18px;height:18px;border-radius:50%;
  background:var(--brand-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231a7fb5' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/11px no-repeat;
}

/* ---------- CTA ---------- */
.cta{
  position:relative;overflow:hidden;
  background:linear-gradient(120deg,var(--navy-800),var(--navy-700) 60%,#1e5b96);
  color:#fff;padding:60px 0;
}
.cta::after{content:"";position:absolute;inset:0;background:radial-gradient(700px 400px at 78% 30%,rgba(47,168,224,.3),transparent 62%)}
.cta__inner{position:relative;z-index:1;display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center}
.cta h2{font-size:38px;font-weight:800;letter-spacing:-.03em;line-height:1.32}
.cta p{margin-top:18px;font-size:17.5px;line-height:1.75;color:rgba(255,255,255,.82)}
.cta__actions{display:flex;flex-direction:column;gap:12px}
.cta__tel{
  display:block;padding:24px;border-radius:14px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);text-align:center;
}
.cta__tel span{display:block;font-size:14px;color:rgba(255,255,255,.75);font-weight:600}
.cta__tel b{display:block;margin-top:6px;font-size:32px;font-weight:800;letter-spacing:-.02em}

/* ---------- 폼 ---------- */
.formbox{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px}
.field{margin-bottom:20px}
.field label{display:block;margin-bottom:8px;font-size:14.5px;font-weight:700;color:var(--ink)}
.field label .req{color:#e0384a;margin-left:3px}
.field input,.field select,.field textarea{
  width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:15.5px;color:var(--ink);background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
.field textarea{min-height:150px;resize:vertical;line-height:1.7}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:0;border-color:var(--brand);box-shadow:0 0 0 3px rgba(47,168,224,.16);
}
.field__row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--ink-2);line-height:1.6}
.agree input{width:18px;height:18px;flex:0 0 auto;margin-top:3px}
.formnote{margin-top:16px;font-size:13.5px;color:var(--ink-3);line-height:1.65}
.formmsg{display:none;margin-bottom:22px;padding:15px 18px;border-radius:10px;font-size:15px;font-weight:600}
.formmsg--ok{display:block;background:#e9f8ef;color:#1a7a43;border:1px solid #b9e6cc}
.formmsg--err{display:block;background:#fdecee;color:#b3243a;border:1px solid #f6c6ce}

/* ---------- 연락 정보 ---------- */
.infolist{display:grid;gap:22px}
.infolist div{padding-bottom:22px;border-bottom:1px solid var(--line)}
.infolist div:last-child{border-bottom:0;padding-bottom:0}
.infolist dt{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-dark)}
.infolist dd{margin:8px 0 0;font-size:17px;font-weight:700;color:var(--navy-900);letter-spacing:-.02em;line-height:1.55}
.infolist dd small{display:block;margin-top:4px;font-size:14.5px;font-weight:500;color:var(--ink-2);letter-spacing:0}

/* ---------- 페이지 헤드 ---------- */
.phead{
  background:linear-gradient(120deg,var(--navy-900),var(--navy-700));
  color:#fff;padding:60px 0;position:relative;overflow:hidden;
}
.phead::after{content:"";position:absolute;inset:0;background:radial-gradient(640px 340px at 85% 20%,rgba(47,168,224,.3),transparent 62%)}
.phead__inner{position:relative;z-index:1;max-width:820px}
.phead h1{font-size:44px;font-weight:800;letter-spacing:-.035em;line-height:1.26}
.phead h1 em{font-style:normal;color:#7fd2ff}
.phead p{margin-top:14px;font-size:18px;color:rgba(255,255,255,.8);line-height:1.75}
/* 페이지 헤드 — 오른쪽에 대표 이미지가 있는 형태 */
.phead--media .phead__inner{max-width:var(--wrap);display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.phead__media{border-radius:18px;overflow:hidden;aspect-ratio:16/9;box-shadow:0 24px 60px rgba(0,0,0,.42)}
.phead__media img{width:100%;height:100%;object-fit:cover}
@media (max-width:1080px){
  .phead--media .phead__inner{grid-template-columns:1fr;gap:36px}
  .phead__media{max-width:640px}
}
.crumb{margin-bottom:16px;font-size:14px;color:rgba(255,255,255,.62);font-weight:600}
.crumb a:hover{color:#fff}

/* ---------- 푸터 ---------- */
.footer{background:var(--navy-900);color:rgba(255,255,255,.62);padding:48px 0 30px;font-size:14.5px;line-height:1.85}
.footer__top{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px;padding-bottom:28px;border-bottom:1px solid rgba(255,255,255,.12)}
.footer__logo{height:36px;width:auto;margin-bottom:20px}
.footer h4{margin-bottom:14px;font-size:14px;font-weight:800;color:#fff;letter-spacing:.06em}
.footer a:hover{color:#fff}
.footer__links{display:grid;gap:9px}
.footer__bottom{padding-top:20px;font-size:13.5px;color:rgba(255,255,255,.44)}
.footer__bottom p + p{margin-top:8px}
.footer__biz{display:flex;flex-wrap:wrap;gap:6px 18px}

/* ---------- 영상 ----------
   썸네일만 먼저 띄우고 클릭할 때 유튜브를 불러온다.
   페이지 로딩이 느려지지 않고, 보지 않는 방문자에게 추적 쿠키가 심기지 않는다. */
.video{
  position:relative;width:100%;aspect-ratio:16/9;
  border-radius:16px;overflow:hidden;background:#0b1230;
  border:0;padding:0;cursor:pointer;display:block;
  box-shadow:0 20px 50px rgba(11,18,48,.28);
}
.video img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,opacity .3s}
.video:hover img{transform:scale(1.03);opacity:.86}
.video iframe{width:100%;height:100%;border:0;display:block}
.video__play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:82px;height:58px;border-radius:14px;
  background:rgba(214,32,42,.94);
  display:flex;align-items:center;justify-content:center;
  transition:transform .2s,background .2s;pointer-events:none;
}
.video:hover .video__play{background:#d6202a;transform:translate(-50%,-50%) scale(1.07)}
.video__play::after{content:"";border-style:solid;border-width:11px 0 11px 19px;border-color:transparent transparent transparent #fff;margin-left:4px}
.video__cap{
  position:absolute;left:0;right:0;bottom:0;z-index:1;pointer-events:none;
  padding:46px 26px 22px;
  background:linear-gradient(transparent,rgba(11,18,48,.88));
  color:#fff;font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.45;
}
.video__cap small{display:block;margin-top:5px;font-size:13.5px;font-weight:600;color:rgba(255,255,255,.72)}

/* ---------- 상태 배지 ---------- */
.tag{
  display:inline-block;margin-left:8px;padding:3px 9px;border-radius:5px;
  font-size:12px;font-weight:800;letter-spacing:-.01em;vertical-align:middle;
}
.tag--soon{background:#fff4e2;color:#a75f06;border:1px solid #f2d7ab}
.tag--live{background:#e9f8ef;color:#1a7a43;border:1px solid #b9e6cc}
.tag--new{background:var(--brand-light);color:var(--brand-dark);border:1px solid #bfe4f7}

.gnb .tag{margin-left:6px;padding:2px 6px;font-size:10.5px}

/* uFaceOK 강조 블록 */
.uf-hero{
  position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(135deg,#0b1230 0%,#14245c 48%,#0f5b8f 100%);
  padding:60px 0;
}
.uf-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(760px 420px at 80% 22%,rgba(47,168,224,.34),transparent 62%)}
.uf-hero__inner{position:relative;z-index:1;max-width:860px}
/* 오른쪽에 대표 이미지가 있는 형태 */
.uf-hero.uf-hero--media{padding:60px 0}
.uf-hero--media .uf-hero__inner{max-width:var(--wrap);display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.uf-hero--fill .uf-hero__inner{align-items:stretch}
.uf-hero--fill .phead__media{position:relative;aspect-ratio:auto;min-height:300px}
.uf-hero--fill .phead__media img{position:absolute;inset:0}
@media (max-width:1080px){.uf-hero.uf-hero--media{padding:48px 0}.uf-hero--media .uf-hero__inner{grid-template-columns:1fr;gap:36px}}
@media (max-width:1080px){.uf-hero--fill .phead__media{aspect-ratio:16/9;min-height:0}.uf-hero--fill .phead__media img{position:static}}
.uf-hero h1,.uf-hero h2{font-size:46px;font-weight:800;letter-spacing:-.035em;line-height:1.26}
.uf-hero h1 em,.uf-hero h2 em{font-style:normal;color:#7fd2ff}
.uf-hero p{margin-top:20px;font-size:18.5px;line-height:1.75;color:rgba(255,255,255,.84)}

.bigpoint{
  display:grid;grid-template-columns:76px 1fr;gap:26px;align-items:start;
  padding:24px 0;border-bottom:1px solid var(--line);
}
.bigpoint:last-child{border-bottom:0}
.bigpoint__n{
  font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1;
  color:var(--brand);opacity:.55;
}
.bigpoint h3{font-size:24px;font-weight:800;letter-spacing:-.03em;color:var(--navy-900);line-height:1.38}
.bigpoint p{margin-top:12px;font-size:16.5px;color:var(--ink-2);line-height:1.78}
.bigpoint .note{margin-top:12px;font-size:15px;color:var(--ink-3)}

/* 기능 목록 */
.fnlist{display:grid;grid-template-columns:repeat(3,1fr);gap:0 32px}
.fnlist li{padding:13px 0 13px 26px;border-bottom:1px solid var(--line);position:relative;font-size:15.5px;color:var(--ink);font-weight:600}
.fnlist li::before{content:"";position:absolute;left:4px;top:21px;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.fnlist li small{display:block;padding-left:0;font-size:13.5px;font-weight:500;color:var(--ink-3);margin-top:2px}

/* 안내 박스 */
.notice{
  padding:26px 28px;border-radius:14px;
  background:#fffaf2;border:1px solid #f2ddbc;
}
.notice h3{font-size:17px;font-weight:800;color:#8a5106;letter-spacing:-.02em}
.notice ul{margin-top:14px;display:grid;gap:9px}
.notice li{position:relative;padding-left:16px;font-size:15px;color:#7a5a2c;line-height:1.7}
.notice li::before{content:"";position:absolute;left:2px;top:11px;width:4px;height:4px;border-radius:50%;background:#c08a2e}

/* 모델 칩 */
.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}
.chips span{
  padding:8px 14px;border-radius:8px;background:#fff;
  border:1px solid var(--line);font-size:14.5px;font-weight:700;color:var(--ink-2);
}

/* ---------- 요금 ---------- */
.price-hero{text-align:center;max-width:760px;margin:0 auto 30px}
.price-hero__big{
  display:block;margin-top:10px;
  font-size:52px;font-weight:800;letter-spacing:-.04em;line-height:1.15;color:var(--navy-900);
}
.price-hero__big em{font-style:normal;color:var(--brand-dark)}
.price-hero__cond{margin-top:14px;font-size:16px;color:var(--ink-2)}
.price-hero__cond b{color:var(--navy-900)}

.plans{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;max-width:900px;margin:0 auto}
.plan{
  position:relative;background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:28px 28px 24px;display:flex;flex-direction:column;
}
.plan--pick{border:2px solid var(--brand);box-shadow:0 14px 40px rgba(47,168,224,.16)}
.plan__badge{
  position:absolute;top:-13px;left:32px;
  padding:5px 12px;border-radius:999px;background:var(--brand);color:#fff;
  font-size:12.5px;font-weight:800;letter-spacing:-.01em;
}
.plan__name{font-size:19px;font-weight:800;color:var(--navy-900);letter-spacing:-.02em}
.plan__desc{margin-top:6px;font-size:14.5px;color:var(--ink-3)}
.plan__price{margin-top:20px;display:flex;align-items:baseline;gap:4px;color:var(--navy-900)}
.plan__price b{font-size:42px;font-weight:800;letter-spacing:-.04em;line-height:1}
.plan__price span{font-size:16px;font-weight:700;color:var(--ink-2)}
.plan__vat{margin-top:6px;font-size:13px;color:var(--ink-3)}
.plan__list{margin-top:22px;padding-top:20px;border-top:1px solid var(--line);display:grid;gap:11px;flex:1}
.plan__list li{display:flex;justify-content:space-between;gap:12px;font-size:15px;color:var(--ink-2)}
.plan__list li b{color:var(--navy-900);font-weight:700;text-align:right;white-space:nowrap}
.plan .btn{margin-top:24px}

/* 상세 요금표 */
.ptable-wrap{margin-top:28px;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:#fff}
.ptable{width:100%;min-width:560px;border-collapse:collapse;font-size:15px}
.ptable th,.ptable td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line)}
.ptable thead th{background:var(--bg-soft);font-size:14px;font-weight:800;color:var(--navy-900)}
.ptable tbody th{font-weight:700;color:var(--ink);width:30%}
.ptable td{color:var(--ink-2)}
.ptable tr:last-child th,.ptable tr:last-child td{border-bottom:0}
.ptable .hl{color:var(--brand-dark);font-weight:800}
.ptable__group th{background:#fafbfd;font-size:13px;letter-spacing:.06em;color:var(--ink-3);font-weight:800}

/* 요금 계산기 */
.calc{
  margin-top:28px;display:grid;grid-template-columns:1.1fr .9fr;gap:0;
  background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;
}
.calc__form{padding:26px}
.calc__form h3{font-size:20px;font-weight:800;color:var(--navy-900);letter-spacing:-.02em}
.calc__form > p{margin-top:6px;font-size:14.5px;color:var(--ink-3)}
.calc__row{margin-top:20px}
.calc__row label{display:block;margin-bottom:8px;font-size:14.5px;font-weight:700;color:var(--ink)}
.calc__seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.calc__seg input{position:absolute;opacity:0;pointer-events:none}
.calc__seg label{
  margin:0;padding:12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;
  text-align:center;font-size:14.5px;font-weight:700;color:var(--ink-2);transition:all .15s;
}
.calc__seg input:checked + label{border-color:var(--brand);background:var(--brand-light);color:var(--brand-dark)}
.calc__seg input:focus-visible + label{box-shadow:0 0 0 3px rgba(47,168,224,.25)}
.calc__num{display:flex;align-items:center;gap:8px}
.calc__num button{
  width:42px;height:42px;flex:0 0 auto;border:1px solid var(--line);border-radius:10px;
  background:#fff;font-size:20px;font-weight:700;color:var(--ink-2);
}
.calc__num button:hover{border-color:var(--brand);color:var(--brand-dark)}
.calc__num input{
  width:100%;height:42px;text-align:center;border:1px solid var(--line);border-radius:10px;
  font:inherit;font-size:16px;font-weight:700;color:var(--navy-900);
}
.calc__check{display:flex;align-items:center;gap:10px;font-size:15px;color:var(--ink-2);cursor:pointer}
.calc__check input{width:18px;height:18px}
.calc__result{
  padding:26px;background:linear-gradient(160deg,var(--navy-800),var(--navy-700));color:#fff;
  display:flex;flex-direction:column;
}
.calc__result h4{font-size:14px;font-weight:700;color:rgba(255,255,255,.72)}
.calc__total{margin-top:8px;font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1.1}
.calc__total small{font-size:17px;font-weight:700;color:rgba(255,255,255,.8);margin-left:4px}
.calc__vat{margin-top:4px;font-size:13px;color:rgba(255,255,255,.6)}
.calc__lines{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);display:grid;gap:9px;flex:1}
.calc__lines div{display:flex;justify-content:space-between;gap:12px;font-size:14.5px;color:rgba(255,255,255,.82)}
.calc__lines div b{color:#fff;font-weight:700;white-space:nowrap}
.calc__once{
  margin-top:18px;padding:14px 16px;border-radius:10px;
  background:rgba(255,255,255,.08);font-size:14px;line-height:1.6;color:rgba(255,255,255,.82);
}
.calc__once b{color:#fff}

/* ---------- 모바일 고정 바 ---------- */
.mobilebar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:90;background:#fff;border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));gap:10px}
.mobilebar a{flex:1;display:flex;align-items:center;justify-content:center;padding:14px;border-radius:10px;font-weight:700;font-size:15.5px}
.mobilebar .m-tel{background:var(--navy-700);color:#fff}
.mobilebar .m-ask{background:var(--brand);color:#fff}

/* ---------- 반응형 ---------- */
@media (max-width:1240px){
  .gnb a{padding:10px 11px;font-size:15px}
  .header__inner{gap:14px}
  .header__cta .btn{display:none}
}
@media (max-width:1080px){
  .fnlist{grid-template-columns:repeat(2,1fr)}
  .uf-hero{padding:48px 0}
  .uf-hero h1,.uf-hero h2{font-size:36px}
  .hero__inner{grid-template-columns:1fr;gap:44px;padding:48px 0 56px}
  .hero h1{font-size:44px}
  .hero__visual{max-width:520px;min-height:0}
  .hero__visual img{position:static;height:auto;aspect-ratio:4/3;max-height:420px;object-position:50% 20%}
  .cta__inner{grid-template-columns:1fr;gap:34px}
  .grid--4{grid-template-columns:repeat(2,1fr)}
  .industry{grid-template-columns:340px 1fr;gap:34px}
  .footer__top{grid-template-columns:1fr 1fr;gap:34px}
}
@media (max-width:900px){
  :root{--header-h:64px}
  .gnb{
    position:fixed;left:0;right:0;top:var(--header-h);
    display:none;flex-direction:column;gap:0;
    background:#fff;border-bottom:1px solid var(--line);
    padding:10px 20px 20px;box-shadow:0 18px 30px rgba(11,18,48,.1);
    max-height:calc(100vh - var(--header-h));overflow-y:auto;
  }
  /* 세로 배치에서는 데스크톱의 align-items:center 를 풀어 전체 너비를 쓴다 */
  .gnb.is-open{display:flex;align-items:stretch}
  .gnb > a{width:100%}
  .gnb a{padding:15px 12px;font-size:17px;border-radius:8px}
  /* 구분선이 모서리에서 휘어 보이지 않도록 상위 항목은 각지게 */
  .gnb > a,
  .gnb__item > a{border-radius:0}
  .gnb > a + a,
  .gnb > .gnb__item + .gnb__item,
  .gnb > a + .gnb__item,
  .gnb > .gnb__item + a{border-top:1px solid var(--line)}
  /* 모바일에서는 드롭다운을 펼친 목록으로 */
  .gnb__item{width:100%}
  .gnb__item.has-sub > a::after{display:none}
  .gnb__sub{
    position:static;display:block;min-width:0;
    padding:0 0 10px 14px;background:none;border:0;box-shadow:none;
  }
  .gnb__sub a{padding:11px 12px;font-size:15.5px;color:var(--ink-3)}
  .gnb__sub small{display:none}
  .header__cta .btn{display:none}
  .header__tel{font-size:15px;margin-left:auto}
  .navtoggle{display:flex}
  .section{padding:52px 0}
  .section__title{font-size:30px}
  .section__desc{font-size:16.5px}
  .section__head{margin-bottom:34px}
  .hero h1{font-size:34px}
  .hero__desc{font-size:17px}
  .hero__stat b{font-size:27px}
  .hero__perks{grid-template-columns:1fr;gap:10px;margin-top:34px}
  .perk{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:baseline;padding:14px 16px}
  .perk__k{grid-column:1 / -1}
  .perk b{font-size:20px;margin-top:4px}
  .perk span:not(.perk__k){margin-top:0}
  .grid--2,.grid--3,.grid--4{grid-template-columns:1fr}
  .product{grid-template-columns:1fr;gap:30px;padding:28px}
  .product--flip .product__media{order:0}
  .product__name{font-size:25px}
  .industry{grid-template-columns:1fr;gap:24px;padding:32px 0}
  .industry--flip .industry__media{order:0}
  .industry h3{font-size:21px}
  .phead{padding:44px 0}
  .phead h1{font-size:31px}
  .phead p{font-size:16.5px}
  .cta{padding:48px 0}
  .cta h2{font-size:28px}
  .formbox{padding:26px 22px}
  .field__row{grid-template-columns:1fr;gap:0}
  .footer__top{grid-template-columns:1fr;gap:30px}
  .mobilebar{display:flex}
  body{padding-bottom:78px}
  .trust__list{gap:10px 20px}
  .trust__list li{font-size:15px}
  .hero__tag{left:auto;right:12px;bottom:12px;padding:12px 16px}
  .fnlist{grid-template-columns:1fr}
  .price-hero__big{font-size:34px}
  .plans{grid-template-columns:1fr;gap:28px}
  .plan{padding:30px 22px 24px}
  .plan__price b{font-size:36px}
  .calc{grid-template-columns:1fr}
  .calc__form,.calc__result{padding:24px 20px}
  .calc__total{font-size:36px}
  .uf-hero{padding:44px 0}
  .uf-hero h1,.uf-hero h2{font-size:29px}
  .uf-hero p{font-size:16.5px}
  .bigpoint{grid-template-columns:1fr;gap:10px;padding:26px 0}
  .bigpoint__n{font-size:30px}
  .bigpoint h3{font-size:20px}
  .notice{padding:22px}
}
@media (max-width:420px){
  .hero h1{font-size:29px}
  .hero__stats{grid-template-columns:1fr;gap:14px}
  .section__title{font-size:26px}
}

/* ---------- 스크롤 등장 ----------
   .js-anim 은 JS가 실행될 때만 <html>에 붙는다.
   JS가 막히거나 실패해도 콘텐츠는 그대로 보인다. */
@media (prefers-reduced-motion:no-preference){
  .js-anim .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
  .js-anim .reveal.is-in{opacity:1;transform:none}
}

/* 페이지 헤드 — 실제 현장 사진 4장 모음 (구축사례) */
.phead__mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px;background:rgba(255,255,255,.08)}
.phead__mosaic figure{position:relative;margin:0;overflow:hidden}
.phead__mosaic img{width:100%;height:100%;object-fit:cover}
.phead__mosaic figcaption{
  position:absolute;left:8px;bottom:8px;padding:4px 9px;border-radius:6px;
  background:rgba(11,18,48,.8);color:#fff;font-size:12px;font-weight:700;letter-spacing:-.01em;
}

/* 시스템 구성도 (기숙사 솔루션) */
.arch{display:grid;grid-template-columns:1fr auto 1.2fr auto 1fr;gap:14px;align-items:center}
.arch__col{display:grid;gap:10px}
.arch__box{
  padding:14px 16px;border-radius:12px;background:#fff;border:1px solid var(--line);
  font-size:14.5px;font-weight:700;color:var(--navy-900);text-align:center;line-height:1.45;
}
.arch__box small{display:block;margin-top:3px;font-size:12.5px;font-weight:500;color:var(--ink-3)}
.arch__box--core{background:var(--navy-700);border-color:var(--navy-700);color:#fff;padding:22px 16px}
.arch__box--core small{color:rgba(255,255,255,.72)}
.arch__arrow{font-size:22px;color:var(--brand);font-weight:800;text-align:center}
@media (max-width:900px){
  .arch{grid-template-columns:1fr;gap:10px}
  .arch__arrow{transform:rotate(90deg)}
}

/* ---------- 기숙사: 문자 얼굴 등록 강조 ---------- */
.enroll{position:relative;overflow:hidden;padding:72px 0;color:#fff;background:linear-gradient(160deg,#0f1a45 0%,#16306e 60%,#1a5b93 100%)}
.enroll::after{content:"";position:absolute;inset:0;background:radial-gradient(700px 420px at 85% 10%,rgba(47,168,224,.32),transparent 62%);pointer-events:none}
.enroll .wrap{position:relative;z-index:1}
.enroll__head{max-width:860px}
.enroll__tag{display:inline-block;padding:7px 14px;border-radius:999px;background:#2fa8e0;font-size:14px;font-weight:800;letter-spacing:-.01em}
.enroll__head h2{margin-top:18px;font-size:44px;font-weight:800;line-height:1.28;letter-spacing:-.035em}
.enroll__head h2 em{font-style:normal;color:#7fd2ff}
.enroll__head p{margin-top:18px;font-size:18.5px;line-height:1.75;color:rgba(255,255,255,.84)}
.enroll__vs{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px;margin-top:40px}
.enroll__card{padding:28px 28px 26px;border-radius:18px}
.enroll__card b{font-size:13.5px;font-weight:800;letter-spacing:.04em}
.enroll__card h3{margin-top:6px;font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.35}
.enroll__card ul{margin-top:16px;display:grid;gap:10px}
.enroll__card li{position:relative;padding-left:28px;font-size:16.5px;line-height:1.6}
.enroll__card--before{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.7)}
.enroll__card--before b{color:rgba(255,255,255,.55)}
.enroll__card--before li::before{content:"✕";position:absolute;left:4px;top:0;font-weight:800;color:#ff8f8f}
.enroll__card--after{background:#fff;color:var(--ink);box-shadow:0 24px 60px rgba(0,0,0,.35)}
.enroll__card--after b{color:var(--brand-dark)}
.enroll__card--after h3{color:var(--navy-900);font-size:27px}
.enroll__card--after li::before{content:"✓";position:absolute;left:4px;top:0;font-weight:900;color:var(--brand)}
.enroll__card--after strong{color:var(--brand-dark)}
.enroll__flow{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:22px;counter-reset:none}
.enroll__flow li{padding:20px 18px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16)}
.enroll__flow span{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#2fa8e0;font-size:15px;font-weight:800}
.enroll__flow h3{margin-top:12px;font-size:17px;font-weight:800;letter-spacing:-.02em}
.enroll__flow p{margin-top:6px;font-size:14px;line-height:1.55;color:rgba(255,255,255,.72)}
.enroll__foot{margin-top:22px;font-size:15px;line-height:1.7;color:rgba(255,255,255,.66)}
@media (max-width:1080px){.enroll__flow{grid-template-columns:repeat(3,1fr)}}
@media (max-width:860px){.enroll{padding:52px 0}.enroll__head h2{font-size:32px}.enroll__head p{font-size:16.5px}.enroll__vs{grid-template-columns:1fr}.enroll__flow{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.enroll__head h2{font-size:26px}.enroll__card{padding:22px 20px}.enroll__card h3,.enroll__card--after h3{font-size:21px}.enroll__flow{grid-template-columns:1fr}}

/* ---------- 인증서 (GS · KC) ---------- */
.certs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.trust--certs .certs{margin-bottom:0}
.cert{display:flex;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s}
.cert:hover{border-color:var(--brand);box-shadow:var(--shadow)}
.cert__mark{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;font-size:21px;font-weight:900;letter-spacing:-.02em;line-height:1;color:#fff}
.cert__mark small{margin-top:3px;font-size:11px;font-weight:700}
.cert__mark--gs{background:linear-gradient(135deg,#1b2a6b,#2fa8e0)}
.cert__mark--kc{background:#fff;color:#1b2a6b;border:2px solid #1b2a6b}
.cert__body{flex:1 1 auto;min-width:0}
.cert__body b{display:block;font-size:16.5px;font-weight:800;color:var(--navy-900);letter-spacing:-.02em;line-height:1.4}
.cert__body small{display:block;margin-top:2px;font-size:13px;color:var(--ink-3);line-height:1.5}
.cert__view{flex:0 0 auto;font-size:13.5px;font-weight:700;color:var(--brand-dark);white-space:nowrap}
@media (max-width:1180px){.cert__view{display:none}}
@media (max-width:860px){.certs{grid-template-columns:1fr}}
@media (max-width:520px){.cert{gap:12px;padding:12px 14px}.cert__mark{width:48px;height:48px;font-size:18px}.cert__view{display:none}}
.cert__mark--pt{background:linear-gradient(135deg,#8a6a1c,#d4a93a);font-size:16px}
.patents{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.patent{display:block;padding:14px 14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;transition:border-color .15s,box-shadow .15s,transform .15s}
.patent:hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-2px)}
.patent img{width:100%;height:auto;aspect-ratio:420/594;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.patent__no{display:block;margin-top:12px;font-size:13px;font-weight:800;color:var(--brand-dark)}
.patent b{display:block;margin-top:4px;font-size:15px;font-weight:700;line-height:1.45;color:var(--navy-900);letter-spacing:-.02em}
.patent small{display:block;margin-top:6px;font-size:12.5px;color:var(--ink-3)}
.enroll__patent{margin-top:22px;padding:14px 18px;border-radius:12px;background:rgba(212,169,58,.16);border:1px solid rgba(212,169,58,.45);font-size:15.5px;font-weight:700;color:#ffe3a3}
.enroll__patent a{color:#fff;text-decoration:underline;text-underline-offset:3px}
@media (max-width:1080px){.patents{grid-template-columns:repeat(3,1fr)}}
@media (max-width:620px){.patents{grid-template-columns:repeat(2,1fr)}}

/* ---------- 문자 얼굴 등록 스마트폰 화면 ---------- */
.phones__title{margin-top:44px;font-size:22px;font-weight:800;letter-spacing:-.03em}
.phones{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;margin-top:18px}
.phones li{position:relative;text-align:center}
.phones li:not(:last-child)::after{content:"";position:absolute;right:-13px;top:34%;width:0;height:0;border-top:7px solid transparent;border-bottom:7px solid transparent;border-left:9px solid var(--brand);opacity:.8}
.phones img{width:100%;height:auto;border-radius:16px;border:5px solid #1c1f2b;background:#1c1f2b;box-shadow:0 10px 26px rgba(11,18,48,.18)}
.phones b{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:12px;font-size:15px;font-weight:800;letter-spacing:-.02em;color:var(--navy-900)}
.phones b span{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;font-size:12px}
.phones small{display:block;margin-top:4px;font-size:13px;line-height:1.5;color:var(--ink-3)}
.phones__note{margin-top:14px;font-size:12.5px;color:var(--ink-3)}
.phones--dark b{color:#fff}
.phones--dark small,.enroll .phones__note{color:rgba(255,255,255,.62)}
.phones--dark img{border-color:#05081a;background:#05081a;box-shadow:0 14px 34px rgba(0,0,0,.4)}
.patent-feature{margin-bottom:36px;padding:34px;border-radius:18px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.patent-feature__tag{display:inline-block;padding:6px 12px;border-radius:999px;background:linear-gradient(135deg,#8a6a1c,#d4a93a);color:#fff;font-size:13px;font-weight:800}
.patent-feature h3{margin-top:14px;font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1.35;color:var(--navy-900)}
.patent-feature__head p{margin-top:12px;max-width:none;font-size:16.5px;line-height:1.75;color:var(--ink-2)}
.patent-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin:26px 0 30px}
.patent-steps li{padding:14px 14px 12px;border-radius:12px;background:var(--bg-soft);font-size:15px;font-weight:800;line-height:1.4;color:var(--navy-900)}
.patent-steps span{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:6px;border-radius:50%;background:var(--navy-700);color:#fff;font-size:12px;vertical-align:1px}
.patent-steps small{display:block;margin-top:4px;font-size:12.5px;font-weight:500;color:var(--ink-3)}
@media (max-width:1080px){.phones{grid-template-columns:repeat(3,1fr);gap:22px}.phones li::after{display:none}.patent-steps{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.phones{grid-template-columns:1fr 1fr}.patent-feature{padding:22px 18px}.patent-feature h3{font-size:22px}.patent-steps{grid-template-columns:1fr}}
.trynote{margin-top:14px;font-size:15.5px;color:rgba(255,255,255,.8)}
.trynote b{color:#ff5c5c;font-weight:800}

/* ---------- 스쿨버스 사례 ---------- */
.busblock{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:center;margin-top:36px;padding:28px;border:1px solid var(--line);border-radius:18px;background:#fff}
.busblock h3{margin-top:12px;font-size:26px;font-weight:800;letter-spacing:-.03em;color:var(--navy-900);line-height:1.35}
.busblock p{margin-top:12px;font-size:16px;line-height:1.75;color:var(--ink-2)}
.busblock__photos{display:grid;grid-template-columns:1fr 1.25fr;grid-template-rows:1fr 1fr;gap:10px;height:420px}
.busblock__photos img{width:100%;height:100%;object-fit:cover;border-radius:12px}
.busblock__tall{grid-row:1 / 3}
@media (max-width:900px){.busblock{grid-template-columns:1fr;padding:20px}.busblock__photos{height:360px}}
@media (max-width:520px){.busblock__photos{height:300px}}
