
:root {
  --p: #00425C;
  --a: #F36F21;
  --a3: #095574;
  --ff: 'Plus Jakarta Sans', sans-serif;
  --p2: color-mix(in srgb, var(--p) 78%, #000);
  --p3: color-mix(in srgb, var(--p) 88%, #fff);
  --a2: color-mix(in srgb, var(--a) 78%, #fff);
  --ink: var(--p);
  --bg: #F7F7F7;
  --mut: #535353;
  --line: #DCDCDC;
  --soft: #E8E8E8;
  --e1: cubic-bezier(.22, 1, .36, 1);
  --e2: cubic-bezier(.76, 0, .24, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--bg); }
img { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }
a { color: inherit; text-decoration: none; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.app { position: relative; font-family: var(--ff); color: var(--ink); background: var(--bg); overflow-x: clip; -webkit-font-smoothing: antialiased; }
.app ::selection { background: var(--a); color: #fff; }
.w { max-width: 1320px; margin: 0 auto; padding: 0 48px; }
.ic { width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ic.s { width: 18px; height: 18px; }
.ic.xs { width: 15px; height: 15px; }
.ic.l { width: 34px; height: 34px; stroke-width: 1.3; }

.ey { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--a); }
.ey::before { content: ""; width: 28px; height: 2px; background: currentColor; }
.ey.c::after { content: ""; width: 28px; height: 2px; background: currentColor; }
.t1 { margin: 0; font-size: 82px; line-height: 1; font-weight: 700; letter-spacing: -.03em; }
.t2 { margin: 0; font-size: 52px; line-height: 1.06; font-weight: 700; letter-spacing: -.025em; }
.t3 { margin: 0; font-size: 30px; line-height: 1.18; font-weight: 700; letter-spacing: -.015em; }
.lead { margin: 0; font-size: 19px; line-height: 1.7; color: var(--mut); }
.tx { margin: 0; font-size: 16.5px; line-height: 1.8; color: var(--mut); }
.dk .lead, .dk .tx { color: #B3C7CE; }
.dk .ey { color: var(--a2); }

.sw { display: inline-block; vertical-align: top; margin-right: .24em; perspective: 900px; }
.sw:last-child { margin-right: 0; }
.sw > span { display: inline-block; transform: rotateY(90deg); opacity: 0; transform-origin: 50% 50%; backface-visibility: hidden; transition: transform .9s var(--e1), opacity .5s ease; transition-delay: var(--d, 0s); }
.rv-static .sw > span { animation: swUp .9s var(--e1) both; animation-delay: var(--d, 0s); }
.rv-on .split.in .sw > span, .split.now .sw > span { transform: none; opacity: 1; }
.split.now .sw > span { animation: swUp .9s var(--e1) both; animation-delay: calc(var(--d, 0s) + .5s); }

.rv-on .rv { opacity: 0; transform: translateY(40px); transition: opacity 1.1s var(--e1), transform 1.2s var(--e1); transition-delay: var(--d, 0s); }
.rv-on .rv.in { opacity: 1; transform: none; }
.rv-static .rv { animation: fu 1s var(--e1) both; animation-delay: var(--d, 0s); }
.rv-on .ri { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s var(--e2); transition-delay: var(--d, 0s); }
.rv-on .ri.in { clip-path: inset(0 0 0 0); }
.ri img { transform: scale(1.25); transition: transform 2s var(--e1); }
.rv-on .ri.in img, .rv-static .ri img { transform: scale(1); }
.rv-static .ri { animation: clipUp 1.4s var(--e2) both; }
.px { will-change: transform; }

.btn { position: relative; display: inline-flex; align-items: center; gap: 14px; height: 56px; padding: 0 30px; border-radius: 40px; background: var(--p); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .06em; white-space: nowrap; overflow: hidden; isolation: isolate; transition: color .5s var(--e1); }
.btn::before { content: ""; position: absolute; left: 50%; top: 100%; width: 140%; aspect-ratio: 1; border-radius: 50%; background: var(--a); transform: translate(-50%, 0) scale(0); transition: transform .7s var(--e1); z-index: -1; }
.btn:hover::before { transform: translate(-50%, -55%) scale(1); }
.btn .ic { transition: transform .5s var(--e1); }
.btn:hover .ic { transform: translateX(4px); }
.btn.o { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line); }
.btn.o::before { background: var(--a); }
.btn.o:hover { color: #fff; }
.btn.wh { background: #fff; color: var(--p); }
.btn.wh::before { background: var(--a); }
.btn.wh:hover { color: #fff; }
.more { display: inline-flex; align-items: center; gap: 16px; font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.more .c { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid currentColor; transition: background .5s var(--e1), color .5s, border-color .5s, transform .6s var(--e1); }
.more:hover .c { background: var(--a); border-color: var(--a); color: #fff; transform: rotate(-45deg); }
.mag { display: inline-flex; transition: transform .6s var(--e1); }

.cur, .cur-d { position: fixed; left: 0; top: 0; z-index: 300; pointer-events: none; border-radius: 50%; opacity: 0; }
.cur.vis, .cur-d.vis { opacity: 1; }
.cur { width: 40px; height: 40px; margin: -20px 0 0 -20px; border: 1.5px solid var(--a); transition: width .4s var(--e1), height .4s var(--e1), margin .4s var(--e1), background .4s, border-color .4s, opacity .3s; }
.cur-d { width: 6px; height: 6px; margin: -3px 0 0 -3px; background: var(--a); }
.cur.hv { width: 76px; height: 76px; margin: -38px 0 0 -38px; background: color-mix(in srgb, var(--a) 18%, transparent); border-color: transparent; }
.cur.hide, .cur-d.hide { opacity: 0; }
@media (hover: none) { .cur, .cur-d { display: none; } }

.spb { position: fixed; left: 0; top: 0; right: 0; height: 3px; z-index: 90; pointer-events: none; }
.spb i { display: block; height: 100%; background: var(--a); transform-origin: left; transform: scaleX(0); }
.totop { position: fixed; right: 28px; bottom: 28px; z-index: 80; width: 56px; height: 56px; border-radius: 50%; background: #fff; color: var(--p); display: grid; place-items: center; box-shadow: 0 14px 34px rgba(0, 66, 92, .18); opacity: 0; transform: translateY(14px); transition: opacity .4s, transform .5s var(--e1); }
.totop.on { opacity: 1; transform: none; }
.totop svg.rg { position: absolute; inset: 0; width: 56px; height: 56px; transform: rotate(-90deg); }
.totop svg.rg circle { fill: none; stroke: var(--a); stroke-width: 2.5; stroke-dasharray: 163.4; stroke-dashoffset: 163.4; }

.pl { position: fixed; inset: 0; z-index: 400; background: var(--p); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px; transition: transform 1.1s var(--e2), visibility 1.1s; }
.pl.out { transform: translateY(-100%); visibility: hidden; }
.pl .n { font-size: 120px; font-weight: 800; letter-spacing: -.04em; line-height: 1; font-variant-numeric: tabular-nums; }
.pl .n small { font-size: 40px; color: var(--a2); }
.pl .bar { width: 240px; height: 2px; background: rgba(255, 255, 255, .15); overflow: hidden; }
.pl .bar i { display: block; height: 100%; background: var(--a); transform-origin: left; }
.pt { position: fixed; inset: 0; z-index: 390; pointer-events: none; }
.pt i { position: absolute; inset: 0; background: var(--p); animation: ptOut 1.1s var(--e2) .15s forwards; }
.pt i:nth-child(2) { background: var(--a); animation-delay: .05s; }
.pt .lgo { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); animation: fadeOut .4s ease .1s forwards; }

.lgo { display: flex; align-items: center; gap: 12px; }
.lgo svg { width: 46px; height: 46px; }
.lgo b { display: block; font-size: 22px; font-weight: 800; letter-spacing: .02em; line-height: 1; }
.lgo small { display: block; margin-top: 5px; font-size: 9.5px; font-weight: 600; letter-spacing: .26em; opacity: .75; white-space: nowrap; }

.hd { position: fixed; left: 0; right: 0; top: 0; z-index: 70; color: #fff; transition: transform .6s var(--e1), background .5s, color .5s, box-shadow .5s; }
.hd.sol { background: #fff; color: var(--ink); box-shadow: 0 10px 40px rgba(0, 66, 92, .08); }
.hd.hid { transform: translateY(-101%); }
.hd .w { display: flex; align-items: center; justify-content: space-between; height: 104px; transition: height .5s var(--e1); }
.hd.sol .w { height: 84px; }
.hd .lgo svg .st { stroke: currentColor; }
.hd .lgo svg .fl { fill: currentColor; }
.nv { display: flex; align-items: center; height: 100%; }
.ni { position: relative; height: 100%; display: flex; align-items: center; }
.nl { text-transform: uppercase; position: relative; display: inline-flex; align-items: center; gap: 6px; padding: 0 20px; height: 48px; font-size: 14px; font-weight: 700; letter-spacing: .1em; white-space: nowrap; }
.nl::after { content: ""; position: absolute; left: 50%; right: 50%; bottom: 8px; height: 2px; background: var(--a); transition: left .5s var(--e1), right .5s var(--e1); }
.ni:hover .nl::after, .nl.on::after { left: 20px; right: 20px; }
.nl .ic { width: 14px; height: 14px; transition: transform .4s var(--e1); }
.ni:hover .nl .ic { transform: rotate(180deg); }
.dd { position: absolute; top: calc(100% - 10px); left: 0; display: grid; grid-template-columns: 280px 240px; background: #fff; color: var(--ink); border-radius: 18px; overflow: hidden; box-shadow: 0 40px 80px rgba(0, 66, 92, .18); opacity: 0; visibility: hidden; transform: translateY(18px); transition: opacity .4s var(--e1), transform .5s var(--e1), visibility .4s; }
.ni:hover .dd, .ni:focus-within .dd { opacity: 1; visibility: visible; transform: none; }
.dd ul { list-style: none; margin: 0; padding: 22px 0; }
.dd li { opacity: 0; transform: translateX(-12px); transition: opacity .4s, transform .5s var(--e1); }
.ni:hover .dd li { opacity: 1; transform: none; }
.ni:hover .dd li:nth-child(2) { transition-delay: .05s; }
.ni:hover .dd li:nth-child(3) { transition-delay: .1s; }
.ni:hover .dd li:nth-child(4) { transition-delay: .15s; }
.ni:hover .dd li:nth-child(5) { transition-delay: .2s; }
.dd li a { display: flex; align-items: center; justify-content: space-between; padding: 12px 28px; font-size: 15px; font-weight: 600; transition: color .3s, padding .4s var(--e1); }
.dd li a .ic { opacity: 0; color: var(--a); transition: opacity .3s, transform .4s var(--e1); transform: translateX(-8px); }
.dd li a:hover { color: var(--a); padding-left: 34px; }
.dd li a:hover .ic { opacity: 1; transform: none; }
.dd .im { position: relative; overflow: hidden; }
.dd .im img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform 1.4s var(--e1); }
.ni:hover .dd .im img { transform: scale(1); }
.dd .im span { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 1; color: #fff; font-size: 13px; font-weight: 700; line-height: 1.4; }
.dd .im::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, color-mix(in srgb, var(--p) 90%, transparent)); }
.ha { display: flex; align-items: center; gap: 8px; }
.ib { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; transition: background .3s; }
.ib:hover { background: rgba(127, 127, 127, .14); }
.lb { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .08em; opacity: .55; transition: opacity .3s; }
.lb svg { width: 22px; height: 15px; border-radius: 3px; }
.lb.on, .lb:hover { opacity: 1; }
.bg { display: none; width: 46px; height: 46px; position: relative; }
.bg i { position: absolute; left: 12px; right: 12px; height: 2px; background: currentColor; transition: transform .5s var(--e1), top .5s var(--e1), opacity .3s; }
.bg i:nth-child(1) { top: 16px; }
.bg i:nth-child(2) { top: 22px; }
.bg i:nth-child(3) { top: 28px; }
.bg.x i:nth-child(1) { top: 22px; transform: rotate(45deg); }
.bg.x i:nth-child(2) { opacity: 0; }
.bg.x i:nth-child(3) { top: 22px; transform: rotate(-45deg); }

.mm { position: fixed; inset: 0; z-index: 65; background: var(--p); color: #fff; padding: 120px 28px 40px; clip-path: circle(0 at calc(100% - 50px) 50px); transition: clip-path .9s var(--e2); overflow-y: auto; }
.mm.op { clip-path: circle(150% at calc(100% - 50px) 50px); }
.mm a { display: block; padding: 14px 0; font-size: 34px; font-weight: 700; letter-spacing: -.02em; border-bottom: 1px solid rgba(255, 255, 255, .1); opacity: 0; transform: translateY(30px); transition: opacity .5s, transform .7s var(--e1); }
.mm.op a { opacity: 1; transform: none; }
.mm.op a:nth-child(2) { transition-delay: .06s; }
.mm.op a:nth-child(3) { transition-delay: .12s; }
.mm.op a:nth-child(4) { transition-delay: .18s; }
.mm.op a:nth-child(5) { transition-delay: .24s; }
.mm.op a:nth-child(6) { transition-delay: .3s; }
.mm.op a:nth-child(7) { transition-delay: .36s; }

.so { position: fixed; inset: 0; z-index: 95; background: color-mix(in srgb, var(--p) 97%, transparent); color: #fff; display: flex; align-items: center; opacity: 0; visibility: hidden; transition: opacity .5s, visibility .5s; }
.so.op { opacity: 1; visibility: visible; }
.so form { width: 100%; }
.so label { display: block; font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--a2); margin-bottom: 18px; }
.so input { width: 100%; background: none; border: 0; border-bottom: 2px solid rgba(255, 255, 255, .25); color: #fff; font: inherit; font-size: 52px; font-weight: 700; padding: 10px 0 18px; outline: none; transition: border-color .4s; }
.so input:focus { border-color: var(--a); }
.so input::placeholder { color: rgba(255, 255, 255, .3); }
.so .x { position: absolute; top: 34px; right: 40px; width: 60px; height: 60px; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .3); display: grid; place-items: center; transition: transform .5s var(--e1), background .3s; }
.so .x:hover { transform: rotate(90deg); background: var(--a); border-color: var(--a); }

.bn { position: relative; height: 560px; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; background: var(--p); overflow: hidden; }
.bn > img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; }
.bn::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, color-mix(in srgb, var(--p) 70%, transparent), color-mix(in srgb, var(--p) 55%, transparent) 50%, color-mix(in srgb, var(--p) 85%, transparent)); }
.bn .in { position: relative; z-index: 2; padding-top: 70px; }
.bn .sm { display: block; margin-bottom: 14px; font-size: 14px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--a2); }
.bc { display: inline-flex; align-items: center; gap: 12px; margin-top: 26px; padding: 10px 22px; border-radius: 30px; background: rgba(255, 255, 255, .1); backdrop-filter: blur(8px); font-size: 14px; font-weight: 600; }
.bc a { opacity: .75; transition: opacity .3s; }
.bc a:hover { opacity: 1; }
.bc .ic { width: 14px; height: 14px; opacity: .6; }

.sec { padding: 140px 0; }
.sec.g { background: var(--soft); }
.hd2 { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 64px; }
.hd2 .t2 { margin-top: 18px; }
.ctr { text-align: center; }
.ctr .t2 { margin-top: 18px; }

.disc { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 80px; align-items: center; }
.disc .t2 em { font-style: normal; color: var(--a); }
.disc .tx { margin: 22px 0 34px; max-width: 460px; }
.certs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; perspective: 1200px; }
.cert { position: relative; display: flex; align-items: center; gap: 16px; min-height: 108px; padding: 20px 56px 20px 20px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 40px rgba(0, 66, 92, .06); transition: transform .7s var(--e1), box-shadow .6s, border-color .4s; }
.cert:hover { transform: translateY(-8px) rotateX(5deg); box-shadow: 0 30px 60px rgba(0, 66, 92, .14); border-color: transparent; }
.cert .seal { width: 56px; height: 56px; flex: none; border-radius: 16px; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); transition: background .4s, color .4s; }
.cert:hover .seal { background: var(--a); color: #fff; }
.cert i { display: none; }
.cert b { font-size: 15px; font-weight: 700; line-height: 1.35; }
.cert b small { display: block; margin-top: 5px; font-size: 12.5px; font-weight: 700; color: var(--a); }
.cert .pdf { position: absolute; top: 14px; right: 14px; padding: 3px 7px; border-radius: 6px; background: var(--p); color: #fff; font-size: 10px; font-weight: 800; letter-spacing: .08em; }

.deco { position: relative; height: 520px; overflow: hidden; background: var(--p); }
.deco img { position: absolute; left: 0; top: -15%; width: 100%; height: 130%; object-fit: cover; opacity: .9; }
.deco::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, color-mix(in srgb, var(--p) 90%, transparent)); }

.ft { background: var(--p); color: #C3D3D9; font-size: 15px; }
.ft-t { display: grid; grid-template-columns: 1.1fr 1fr 1fr; gap: 60px; padding: 100px 0 56px; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.ft .lgo { color: #fff; }
.ft p { margin: 22px 0 0; line-height: 1.75; max-width: 360px; }
.ft h5 { margin: 0 0 22px; color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; }
.fc { display: grid; gap: 16px; }
.fc a, .fc span { display: flex; gap: 12px; align-items: flex-start; line-height: 1.6; transition: color .3s; }
.fc a:hover { color: #fff; }
.fc .ic { color: var(--a2); margin-top: 3px; }
.fn { display: flex; flex-wrap: wrap; gap: 10px 34px; padding: 34px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.fn a { font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #fff; transition: color .3s; }
.fn a:hover { color: var(--a2); }
.fp { display: flex; flex-wrap: wrap; gap: 10px; padding: 34px 0; border-bottom: 1px solid rgba(255, 255, 255, .1); }
.fp a { padding: 9px 16px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 30px; font-size: 13px; font-weight: 600; transition: background .3s, color .3s, border-color .3s; }
.fp a:hover { background: var(--a); border-color: var(--a); color: #fff; }
.fb { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 28px 0 34px; font-size: 13.5px; }
.soc { display: flex; gap: 10px; }
.soc a { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .16); color: #fff; transition: background .3s, border-color .3s, transform .5s var(--e1); }
.soc a:hover { background: var(--a); border-color: var(--a); transform: translateY(-4px); }
.fb .cr b { color: #fff; }
.fb nav { display: flex; gap: 22px; }
.fb nav a:hover, .fb nav button:hover { color: #fff; }

.ckw { position: fixed; inset: 0; z-index: 120; display: flex; align-items: flex-end; justify-content: flex-start; padding: 28px; pointer-events: none; }
.ck { pointer-events: auto; width: 460px; max-width: 100%; background: #fff; color: var(--ink); border-radius: 20px; padding: 30px; box-shadow: 0 40px 90px rgba(0, 66, 92, .28); animation: ckIn .9s var(--e1) 1.2s both; }
.ck h6 { display: flex; align-items: center; justify-content: space-between; margin: 0; font-size: 18px; font-weight: 800; }
.ck h6 button { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--soft); }
.ck p { margin: 12px 0 20px; font-size: 14px; line-height: 1.65; color: var(--mut); }
.ck p a { color: var(--a); font-weight: 700; text-decoration: underline; }
.ck .row { display: flex; flex-wrap: wrap; gap: 8px; }
.ck .row button { height: 44px; padding: 0 18px; border-radius: 30px; font-size: 13px; font-weight: 700; border: 1.5px solid var(--line); transition: background .3s, color .3s, border-color .3s; }
.ck .row button.pr { background: var(--p); border-color: var(--p); color: #fff; }
.ck .row button:hover { border-color: var(--a); }
.ck .opt { display: grid; gap: 4px; margin: 4px 0 18px; }
.ck .opt div { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.ck .opt b { display: block; font-size: 14px; }
.ck .opt span { display: block; margin-top: 2px; font-size: 12.5px; color: var(--mut); }
.tg { position: relative; flex: none; width: 46px; height: 26px; border-radius: 13px; background: #CBD3DD; transition: background .3s; }
.tg::after { content: ""; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .2); transition: transform .4s var(--e1); }
.tg.on { background: var(--a); }
.tg.on::after { transform: translateX(20px); }
.tg.lk { opacity: .6; cursor: not-allowed; }

.md { position: fixed; inset: 0; z-index: 130; background: color-mix(in srgb, var(--p) 70%, transparent); backdrop-filter: blur(6px); display: grid; place-items: center; padding: 24px; animation: fi .4s ease both; }
.md .box { position: relative; width: 760px; max-width: 100%; max-height: 80vh; overflow-y: auto; background: #fff; border-radius: 22px; padding: 44px; animation: fu .6s var(--e1) both; }
.md .box h4 { margin: 0 0 18px; font-size: 24px; }
.md .box h5 { margin: 22px 0 8px; font-size: 16px; }
.md .box p { margin: 0; font-size: 14.5px; line-height: 1.75; color: var(--mut); }
.md .box > button { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 50%; background: var(--soft); display: grid; place-items: center; }

@keyframes swUp { from { transform: rotateY(90deg); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes fu { from { opacity: 0; transform: translateY(40px); } to { opacity: 1; transform: none; } }
@keyframes fi { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeOut { to { opacity: 0; } }
@keyframes clipUp { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
@keyframes ptOut { to { transform: translateY(-100%); } }
@keyframes ckIn { from { opacity: 0; transform: translateY(40px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes kb { from { transform: scale(1.18); } to { transform: scale(1); } }
@keyframes pulse { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(2.8); opacity: 0; } }
@keyframes wheel { 0% { transform: translateY(0); opacity: 1; } 70% { transform: translateY(12px); opacity: 0; } 100% { transform: translateY(0); opacity: 0; } }
@keyframes mq { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes fill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 1180px) {
  .nv, .ha .hs { display: none; }
  .bg { display: block; }
  .t1 { font-size: 60px; }
  .t2 { font-size: 42px; }
  .disc { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  .ft-t { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .w { padding: 0 20px; }
  .hd .w, .hd.sol .w { height: 74px; }
  .lgo svg { width: 38px; height: 38px; }
  .lgo b { font-size: 18px; }
  .lgo small { font-size: 8px; letter-spacing: .18em; }
  .lb span { display: none; }
  .t1 { font-size: 42px; }
  .t2 { font-size: 34px; }
  .t3 { font-size: 24px; }
  .lead { font-size: 17px; }
  .sec { padding: 90px 0; }
  .hd2 { flex-direction: column; align-items: flex-start; margin-bottom: 40px; }
  .bn { height: 440px; }
  .certs { grid-template-columns: minmax(0, 1fr); }
  .deco { height: 300px; }
  .ft-t { grid-template-columns: minmax(0, 1fr); gap: 40px; padding: 72px 0 40px; }
  .fb { flex-direction: column; align-items: flex-start; }
  .ckw { padding: 12px; }
  .so input { font-size: 30px; }
  .totop { right: 16px; bottom: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

.pl2 { border-top: 1px solid var(--line); }
.pl2 a { position: relative; display: grid; grid-template-columns: 100px minmax(0, 1fr) 240px 120px 56px; align-items: center; gap: 24px; padding: 30px 26px; border-bottom: 1px solid var(--line); isolation: isolate; }
.pl2 a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--soft); transform: scaleY(0); transform-origin: bottom; transition: transform .6s var(--e1); }
.pl2 a:hover::before { transform: scaleY(1); }
.pl2 .y { font-size: 14px; font-weight: 800; letter-spacing: .14em; color: var(--a); }
.pl2 b { font-size: 24px; font-weight: 700; letter-spacing: -.01em; transition: transform .6s var(--e1); }
.pl2 a:hover b { transform: translateX(10px); }
.pl2 .c { font-size: 14.5px; color: var(--mut); }
.pl2 .th { height: 76px; border-radius: 14px; overflow: hidden; clip-path: inset(0 0 0 100% round 14px); transition: clip-path .7s var(--e2); }
.pl2 a:hover .th { clip-path: inset(0 0 0 0 round 14px); }
.pl2 .th img { width: 100%; height: 100%; object-fit: cover; }
.pl2 .ar { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line); transition: background .4s, color .4s, box-shadow .4s, transform .5s var(--e1); }
.pl2 a:hover .ar { background: var(--a); color: #fff; box-shadow: none; transform: rotate(45deg); }
@media (max-width: 1180px) {
  .pl2 a { grid-template-columns: 80px minmax(0, 1fr) 56px; }
  .pl2 .c, .pl2 .th { display: none; }
}
@media (max-width: 760px) {
  .pl2 a { grid-template-columns: minmax(0, 1fr) 48px; padding: 22px 6px; gap: 10px; }
  .pl2 .y { grid-column: 1 / -1; }
  .pl2 b { font-size: 19px; }
  .pl2 .ar { width: 48px; height: 48px; }
}

.lbx { position: fixed; inset: 0; z-index: 140; background: color-mix(in srgb, var(--p) 95%, transparent); display: grid; place-items: center; animation: fi .4s ease both; }
.lbx figure { margin: 0; width: min(1100px, 86vw); }
.lbx img { width: 100%; max-height: 72vh; object-fit: contain; border-radius: 18px; animation: fu .6s var(--e1) both; }
.lbx figcaption { display: flex; justify-content: space-between; margin-top: 18px; color: #C3D3D9; font-size: 15px; font-weight: 600; }
.lbx .x, .lbx .nv { position: absolute; width: 60px; height: 60px; border-radius: 50%; color: #fff; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); transition: background .3s, box-shadow .3s; }
.lbx .x { top: 30px; right: 30px; }
.lbx .nv.l { left: 30px; top: 50%; margin-top: -30px; }
.lbx .nv.r { right: 30px; top: 50%; margin-top: -30px; }
.lbx .x:hover, .lbx .nv:hover { background: var(--a); box-shadow: none; }
@media (max-width: 760px) {
  .lbx .nv { display: none; }
}

.fg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.fg .full { grid-column: 1 / -1; }
.fl { position: relative; }
.fl input, .fl textarea, .fl select { display: block; width: 100%; height: 64px; padding: 26px 20px 8px; border-radius: 16px; border: 1.5px solid var(--line); background: #fff; font: inherit; font-size: 16px; color: var(--ink); outline: none; box-sizing: border-box; transition: border-color .3s, box-shadow .3s; }
.fl select { appearance: none; -webkit-appearance: none; cursor: pointer; }
.fl textarea { height: 170px; padding-top: 32px; resize: vertical; }
.fl label { position: absolute; left: 21px; top: 21px; font-size: 16px; color: var(--mut); pointer-events: none; transform-origin: left top; transition: transform .35s var(--e1), color .3s; }
.fl input:focus + label, .fl input:not(:placeholder-shown) + label, .fl textarea:focus + label, .fl textarea:not(:placeholder-shown) + label, .fl.sl label { transform: translateY(-12px) scale(.76); color: var(--a); font-weight: 700; }
.fl input:focus, .fl textarea:focus, .fl select:focus { border-color: var(--a); box-shadow: 0 0 0 4px color-mix(in srgb, var(--a) 14%, transparent); }
.fl .chv { position: absolute; right: 20px; top: 22px; color: var(--mut); pointer-events: none; }
.fl.er input, .fl.er textarea { border-color: #E5484D; }
.fl .em { display: none; margin-top: 6px; font-size: 13px; font-weight: 600; color: #E5484D; }
.fl.er .em { display: block; animation: fu .4s var(--e1) both; }
.cons { display: flex; align-items: flex-start; gap: 14px; margin-top: 22px; font-size: 14.5px; line-height: 1.6; color: var(--mut); }
.cons .bx2 { flex: none; width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line); color: transparent; transition: background .3s, box-shadow .3s, color .3s; }
.cons .bx2.on { background: var(--a); box-shadow: none; color: #fff; }
.cons.er .bx2 { box-shadow: inset 0 0 0 1.5px #E5484D; animation: shk .5s both; }
@keyframes shk { 20%, 60% { transform: translateX(-4px); } 40%, 80% { transform: translateX(4px); } }
.cons button.lnk { padding: 0; color: var(--a); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fbt { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 30px; }
.fbt small { font-size: 13px; color: var(--mut); }
.btn.ld { pointer-events: none; }
.btn .spn { width: 18px; height: 18px; border-radius: 50%; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; animation: spin .8s linear infinite; }
.done { padding: 40px 10px; text-align: center; animation: fu .8s var(--e1) both; }
.done svg.chk { width: 96px; height: 96px; color: #1F9D6B; }
.done svg.chk circle { stroke-dasharray: 290; animation: chkC 1s var(--e2) both; }
.done svg.chk path { stroke-dasharray: 60; animation: chkP .6s var(--e1) .7s both; }
@keyframes chkC { from { stroke-dashoffset: 290; } to { stroke-dashoffset: 0; } }
@keyframes chkP { from { stroke-dashoffset: 60; } to { stroke-dashoffset: 0; } }
.done h3 { margin: 24px 0 10px; font-size: 28px; font-weight: 800; }
.done p { margin: 0 auto 30px; max-width: 420px; font-size: 16px; line-height: 1.7; color: var(--mut); }
.toast { position: fixed; z-index: 150; left: 50%; bottom: 36px; display: flex; align-items: center; gap: 10px; padding: 14px 22px; border-radius: 30px; background: var(--p); color: #fff; font-size: 14px; font-weight: 700; box-shadow: 0 20px 40px rgba(0, 66, 92,.3); transform: translateX(-50%); animation: tIn .5s var(--e1) both; }
@keyframes tIn { from { opacity: 0; transform: translate(-50%, 20px); } to { opacity: 1; transform: translate(-50%, 0); } }
.toast .ic { color: #3DDC97; }
@media (max-width: 760px) {
  .fg { grid-template-columns: minmax(0, 1fr); }
  .fbt { flex-direction: column; align-items: stretch; }
}

:where(.page-home) .hero { position: relative; height: 940px; color: #fff; background: var(--p); overflow: hidden; }
:where(.page-home) .hbg { position: absolute; inset: 0; }
:where(.page-home) .hbi { position: absolute; inset: 0; clip-path: inset(0 0 0 100%); transition: clip-path 1.25s var(--e2); }
:where(.page-home) .hbi.lf { clip-path: inset(0 100% 0 0); }
:where(.page-home) .hbi.on { clip-path: inset(0 0 0 0); z-index: 2; }
:where(.page-home) .hbi.was { clip-path: inset(0 0 0 0); z-index: 1; }
:where(.page-home) .hbi img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.14); transition: transform 2.6s var(--e1); }
:where(.page-home) .hbi.on img { transform: scale(1.02); }
:where(.page-home) .hbg::after { content: ""; position: absolute; inset: 0; z-index: 3; background: linear-gradient(0deg, color-mix(in srgb, var(--p) 92%, transparent) 0%, color-mix(in srgb, var(--p) 40%, transparent) 46%, color-mix(in srgb, var(--p) 55%, transparent) 100%); }
:where(.page-home) .hcols { position: absolute; inset: 0; z-index: 5; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
:where(.page-home) .hcol { position: relative; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 44px 150px; color: rgba(255,255,255,.55); box-shadow: inset 1px 0 0 rgba(255,255,255,.16); transition: color .6s var(--e1); }
:where(.page-home) .hcol:first-child { box-shadow: none; }
:where(.page-home) .hcol::before { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--p) 75%, transparent), color-mix(in srgb, var(--p) 0%, transparent) 70%); opacity: 0; transition: opacity .9s var(--e1); }
:where(.page-home) .hcol::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--a); transform: scaleX(0); transform-origin: left; transition: transform .9s var(--e1); }
:where(.page-home) .hcol.on { color: #fff; }
:where(.page-home) .hcol.on::before { opacity: 1; }
:where(.page-home) .hcol.on::after { transform: scaleX(1); }
:where(.page-home) .hcol > * { position: relative; }
:where(.page-home) .hcol .hn { position: absolute; left: 44px; top: 160px; display: flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
:where(.page-home) .hcol .hn b { font-size: 13px; font-weight: 800; color: var(--a); }
:where(.page-home) .hcol .s1 { display: block; margin-bottom: 14px; font-size: 17px; font-weight: 500; transition: color .6s; }
:where(.page-home) .hcol.on .s1 { color: var(--a2); }
:where(.page-home) .hcol .s2 { display: block; height: 4.6em; font-size: 31px; line-height: 1.15; font-weight: 700; letter-spacing: -.02em; }
:where(.page-home) .hcol .sw > span { opacity: 1; transform: none; animation: none; }
:where(.page-home) .hcol.on .sw > span { animation: swUp .9s var(--e1) both; animation-delay: var(--d); }
:where(.page-home) .hcol .go { display: inline-flex; align-items: center; gap: 12px; margin-top: 26px; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; opacity: 0; transform: translateY(16px); transition: opacity .6s var(--e1), transform .7s var(--e1); }
:where(.page-home) .hcol .go i { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--a); color: #fff; transition: transform .5s var(--e1); }
:where(.page-home) .hcol.on .go { opacity: 1; transform: none; transition-delay: .35s; }
:where(.page-home) .hcol:hover .go i { transform: rotate(-45deg); }
:where(.page-home) .hcol .pb { position: absolute; left: 44px; right: 44px; bottom: 100px; height: 2px; background: rgba(255,255,255,.14); overflow: hidden; }
:where(.page-home) .hcol .pb i { position: absolute; inset: 0; background: #fff; transform: scaleX(0); transform-origin: left; }
:where(.page-home) .hcol .pb i.fa { animation: fa-home 6.5s linear both; }
:where(.page-home) .hcol .pb i.fb { animation: fb-home 6.5s linear both; }
:where(.page-home) .hcol .pb i.st { transform: scaleX(1); }
@keyframes fa-home { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes fb-home { from { transform: scaleX(0); } to { transform: scaleX(1); } }
:where(.page-home) .scr { position: absolute; z-index: 6; left: 50%; bottom: 26px; display: flex; flex-direction: column; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; transform: translateX(-50%); }
:where(.page-home) .ms { position: relative; width: 26px; height: 42px; border: 2px solid rgba(255,255,255,.6); border-radius: 14px; }
:where(.page-home) .ms i { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: wheel 1.8s var(--e1) infinite; }
:where(.page-home) .arw { display: flex; gap: 12px; }
:where(.page-home) .arw button { width: 62px; height: 62px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.35); display: grid; place-items: center; transition: background .4s, border-color .4s, transform .6s var(--e1); }
:where(.page-home) .arw button:hover { background: var(--a); border-color: var(--a); }
:where(.page-home) .ig { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 100px; align-items: center; }
:where(.page-home) .imw { position: relative; height: 700px; }
:where(.page-home) .imw figure { position: absolute; margin: 0; overflow: hidden; border-radius: 24px; }
:where(.page-home) .imw img { width: 100%; height: 120%; object-fit: cover; }
:where(.page-home) .imw .f1 { left: 0; top: 0; width: 80%; height: 580px; }
:where(.page-home) .imw .f2 { right: 0; bottom: 0; width: 44%; height: 300px; border: 10px solid #fff; border-radius: 28px; }
:where(.page-home) .imw .f2 img { height: 100%; }
:where(.page-home) .yrs { position: absolute; left: -40px; bottom: 70px; z-index: 2; width: 220px; padding: 30px 28px; border-radius: 22px; background: var(--a); color: #fff; box-shadow: 0 30px 60px color-mix(in srgb, var(--a) 35%, transparent); }
:where(.page-home) .yrs b { display: block; font-size: 58px; font-weight: 800; line-height: 1; letter-spacing: -.03em; }
:where(.page-home) .yrs span { display: block; margin-top: 8px; font-size: 15px; font-weight: 600; line-height: 1.4; }
:where(.page-home) .spin { position: absolute; right: 30px; top: -46px; z-index: 2; width: 120px; height: 120px; animation: spin 18s linear infinite; }
:where(.page-home) .spin text { font-size: 10.5px; font-weight: 800; letter-spacing: .32em; fill: var(--p); }
:where(.page-home) .nav2 { display: flex; gap: 12px; }
:where(.page-home) .nav2 button { width: 62px; height: 62px; border-radius: 50%; border: 1.5px solid var(--line); display: grid; place-items: center; color: var(--p); background: #fff; transition: background .4s, color .4s, border-color .4s; }
:where(.page-home) .nav2 button:hover { background: var(--p); color: #fff; border-color: var(--p); }
:where(.page-home) .hsl { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 max(48px, calc((100% - 1224px) / 2)) 10px; scroll-padding-left: max(48px, calc((100% - 1224px) / 2)); scrollbar-width: none; cursor: grab; }
:where(.page-home) .hsl::-webkit-scrollbar { display: none; }
:where(.page-home) .hsl.drag { cursor: grabbing; scroll-snap-type: none; }
:where(.page-home) .sc { position: relative; flex: 0 0 400px; height: 540px; border-radius: 26px; overflow: hidden; color: #fff; scroll-snap-align: start; background: var(--p); }
:where(.page-home) .sc img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--e1); pointer-events: none; }
:where(.page-home) .sc::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--p) 92%, transparent) 10%, transparent 60%); transition: opacity .6s; }
:where(.page-home) .sc:hover img { transform: scale(1.08); }
:where(.page-home) .sc .no { position: absolute; z-index: 2; left: 30px; top: 28px; font-size: 14px; font-weight: 800; letter-spacing: .12em; }
:where(.page-home) .sc .ct { position: absolute; z-index: 2; left: 30px; right: 30px; bottom: 30px; transition: transform .7s var(--e1); }
:where(.page-home) .sc .ct b { display: block; font-size: 26px; font-weight: 800; line-height: 1.15; letter-spacing: .02em; text-transform: uppercase; }
:where(.page-home) .sc .ct span { display: block; margin-top: 10px; font-size: 14.5px; line-height: 1.6; color: rgba(255,255,255,.75); max-height: 0; opacity: 0; overflow: hidden; transition: max-height .7s var(--e1), opacity .5s; }
:where(.page-home) .sc:hover .ct span { max-height: 120px; opacity: 1; }
:where(.page-home) .sc .go { position: absolute; z-index: 2; right: 26px; top: 22px; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.14); backdrop-filter: blur(6px); transition: background .4s, transform .6s var(--e1); }
:where(.page-home) .sc:hover .go { background: var(--a); transform: rotate(-45deg); }
:where(.page-home) .sbar { max-width: 1224px; margin: 40px auto 0; height: 2px; background: var(--line); position: relative; overflow: hidden; }
:where(.page-home) .sbar i { position: absolute; left: 0; top: 0; bottom: 0; width: 30%; background: var(--a); }
:where(.page-home) .pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 60px; margin-top: 60px; border-top: 1px solid var(--line); }
:where(.page-home) .pi { position: relative; display: grid; grid-template-columns: 70px minmax(0, 1fr) 40px; gap: 18px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--line); transition: color .4s; }
:where(.page-home) .pi::before { content: ""; position: absolute; left: 0; bottom: -1px; height: 2px; width: 100%; background: var(--a); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--e1); }
:where(.page-home) .pi:hover::before, :where(.page-home) .pi.on::before { transform: scaleX(1); }
:where(.page-home) .pi .yr { font-size: 14px; font-weight: 800; color: var(--a); letter-spacing: .06em; }
:where(.page-home) .pi b { display: block; font-size: 21px; font-weight: 800; letter-spacing: -.01em; text-transform: uppercase; }
:where(.page-home) .pi .ti { display: block; margin-top: 4px; font-size: 14.5px; color: var(--mut); }
:where(.page-home) .pi .ic { color: var(--mut); transition: transform .5s var(--e1), color .3s; }
:where(.page-home) .pi:hover .ic { transform: translateX(6px) rotate(-45deg); color: var(--a); }
:where(.page-home) .pv { position: fixed; left: 0; top: 0; z-index: 60; width: 300px; height: 210px; margin: -105px 0 0 30px; border-radius: 18px; overflow: hidden; pointer-events: none; opacity: 0; transform-origin: left center; transition: opacity .35s; box-shadow: 0 30px 60px rgba(0, 66, 92,.3); }
:where(.page-home) .pv.on { opacity: 1; }
:where(.page-home) .pv img { width: 100%; height: 100%; object-fit: cover; animation: kb 1.2s var(--e1) both; }
:where(.page-home) .mp { position: relative; margin-top: 70px; padding: 54px 60px 46px; border-radius: 30px; background: var(--p); color: #fff; overflow: hidden; }
:where(.page-home) .mp::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.09) 1px, transparent 1px); background-size: 24px 24px; }
:where(.page-home) .mp-h { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-bottom: 30px; }
:where(.page-home) .mp-h b { font-size: 20px; font-weight: 800; }
:where(.page-home) .mp-h span { font-size: 13px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: var(--a2); }
:where(.page-home) .mbox { position: relative; aspect-ratio: 1015 / 452; max-width: 980px; margin: 0 auto; }
:where(.page-home) .mbox > img { width: 100%; height: 100%; }
:where(.page-home) .pin { position: absolute; width: 0; height: 0; }
:where(.page-home) .pin .d { position: absolute; left: -8px; top: -8px; width: 16px; height: 16px; border-radius: 50%; background: var(--a); box-shadow: 0 0 0 4px color-mix(in srgb, var(--p) 80%, transparent); transition: transform .5s var(--e1), background .3s; }
:where(.page-home) .pin .r { position: absolute; left: -8px; top: -8px; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--a2); animation: pulse 2.6s ease-out infinite; }
:where(.page-home) .pin .t { position: absolute; left: 16px; top: -16px; white-space: nowrap; padding: 6px 12px; border-radius: 20px; background: #fff; color: var(--p); font-size: 12.5px; font-weight: 800; transition: transform .5s var(--e1), background .3s, color .3s; }
:where(.page-home) .pin.lft .t { left: auto; right: 16px; }
:where(.page-home) .pin.up .t { left: -30px; top: -48px; }
:where(.page-home) .pin.on .d { transform: scale(1.6); background: #fff; }
:where(.page-home) .pin.on .t { background: var(--a); color: #fff; transform: translateY(-4px); }
:where(.page-home) .st { position: relative; color: #fff; background: var(--p); overflow: hidden; text-align: center; }
:where(.page-home) .st > img { position: absolute; left: 0; top: -12%; width: 100%; height: 124%; object-fit: cover; }
:where(.page-home) .st::before { content: ""; position: absolute; inset: 0; z-index: 1; background: color-mix(in srgb, var(--p) 78%, transparent); }
:where(.page-home) .st .w { position: relative; z-index: 2; padding-top: 150px; padding-bottom: 150px; }
:where(.page-home) .st .t1 { margin-top: 20px; font-size: 104px; }
:where(.page-home) .cg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: 90px; }
:where(.page-home) .cc { padding: 40px 20px 36px; border-radius: 24px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(6px); transition: background .5s, transform .7s var(--e1); }
:where(.page-home) .cc:hover { background: rgba(255,255,255,.1); transform: translateY(-8px); }
:where(.page-home) .cc .ci { width: 70px; height: 70px; margin: 0 auto; border-radius: 50%; display: grid; place-items: center; background: var(--a); }
:where(.page-home) .cc b { display: block; margin-top: 26px; font-size: 64px; line-height: 1; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
:where(.page-home) .cc b i { font-style: normal; color: var(--a2); }
:where(.page-home) .cc span { display: block; margin-top: 12px; font-size: 15.5px; font-weight: 600; color: #C3D3D9; }
:where(.page-home) .rp { position: relative; min-height: 720px; display: flex; align-items: center; color: #fff; background: var(--p); overflow: hidden; }
:where(.page-home) .rp > img { position: absolute; left: 0; top: -12%; width: 100%; height: 124%; object-fit: cover; }
:where(.page-home) .rp::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, color-mix(in srgb, var(--p) 92%, transparent) 20%, color-mix(in srgb, var(--p) 30%, transparent)); }
:where(.page-home) .rp .w { position: relative; z-index: 2; width: 100%; }
:where(.page-home) .rp-in { max-width: 700px; }
:where(.page-home) .rp-in .t1 { margin: 22px 0 26px; }
:where(.page-home) .rp-in .lead { color: #C3D3D9; margin-bottom: 44px; }
:where(.page-home) .rp .more { color: #fff; }
@media (max-width: 1180px) {
  :where(.page-home) .hcol { padding: 0 26px 140px; }
  :where(.page-home) .hcol .hn { left: 26px; }
  :where(.page-home) .hcol .pb { left: 26px; right: 26px; }
  :where(.page-home) .hcol .s2 { font-size: 24px; }
  :where(.page-home) .ig { grid-template-columns: minmax(0, 1fr); gap: 60px; }
  :where(.page-home) .yrs { left: 0; }
  :where(.page-home) .pgrid { grid-template-columns: minmax(0, 1fr); }
  :where(.page-home) .cg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-home) .st .t1 { font-size: 72px; }
}
@media (max-width: 760px) {
  :where(.page-home) .hero { height: 760px; }
  :where(.page-home) .hcols { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  :where(.page-home) .hcols::-webkit-scrollbar { display: none; }
  :where(.page-home) .hcol { flex: 0 0 82%; scroll-snap-align: start; padding: 0 24px 130px; }
  :where(.page-home) .hcol .hn { left: 24px; top: 130px; }
  :where(.page-home) .hcol .pb { left: 24px; right: 24px; }
  :where(.page-home) .hcol .s2 { font-size: 30px; }
  :where(.page-home) .scr { display: none; }
  :where(.page-home) .imw { height: 480px; }
  :where(.page-home) .imw .f1 { height: 380px; width: 88%; }
  :where(.page-home) .imw .f2 { height: 200px; width: 56%; }
  :where(.page-home) .yrs { width: 170px; padding: 20px; bottom: 30px; }
  :where(.page-home) .yrs b { font-size: 42px; }
  :where(.page-home) .spin { display: none; }
  :where(.page-home) .sc { flex-basis: 300px; height: 420px; }
  :where(.page-home) .mp { padding: 30px 18px; border-radius: 22px; }
  :where(.page-home) .pin .t { font-size: 10.5px; padding: 4px 8px; }
  :where(.page-home) .cg { grid-template-columns: minmax(0, 1fr); }
  :where(.page-home) .cc b { font-size: 50px; }
  :where(.page-home) .st .t1 { font-size: 46px; }
  :where(.page-home) .rp { min-height: 560px; }
}

:where(.page-about) .ab { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 100px; align-items: center; }
:where(.page-about) .ab .t2 { margin: 18px 0 28px; }
:where(.page-about) .ab .tx + .tx { margin-top: 18px; }
:where(.page-about) .abm { position: relative; }
:where(.page-about) .abm figure { position: relative; margin: 0; height: 680px; border-radius: 28px; overflow: hidden; }
:where(.page-about) .abm figure img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; }
:where(.page-about) .flc { position: absolute; left: -50px; bottom: 60px; z-index: 2; display: flex; align-items: center; gap: 18px; padding: 24px 28px; border-radius: 22px; background: #fff; box-shadow: 0 30px 70px rgba(0, 66, 92,.16); }
:where(.page-about) .flc .ci { width: 62px; height: 62px; border-radius: 18px; display: grid; place-items: center; background: var(--a); color: #fff; }
:where(.page-about) .flc b { display: block; font-size: 30px; font-weight: 800; line-height: 1; color: var(--p); }
:where(.page-about) .flc span { display: block; margin-top: 6px; font-size: 14px; font-weight: 600; color: var(--mut); }
:where(.page-about) .net { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 70px; align-items: center; }
:where(.page-about) .bign { display: flex; align-items: flex-end; gap: 22px; margin: 26px 0 30px; }
:where(.page-about) .bign b { font-size: 150px; line-height: .82; font-weight: 800; letter-spacing: -.05em; color: var(--p); font-variant-numeric: tabular-nums; }
:where(.page-about) .bign b i { font-style: normal; color: var(--a); }
:where(.page-about) .bign span { max-width: 220px; padding-bottom: 10px; font-size: 17px; font-weight: 700; line-height: 1.4; color: var(--ink); }
:where(.page-about) .icg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
:where(.page-about) .icg div { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; aspect-ratio: 1; padding: 10px; border-radius: 20px; background: #fff; text-align: center; font-size: 12px; font-weight: 700; line-height: 1.3; color: var(--ink); transition: background .5s var(--e1), color .5s, transform .6s var(--e1); }
:where(.page-about) .icg div .ic { color: var(--a); transition: color .4s; }
:where(.page-about) .icg div:hover { background: var(--p); color: #fff; transform: translateY(-6px); }
:where(.page-about) .icg div:hover .ic { color: var(--a2); }
:where(.page-about) .mpan { position: relative; padding: 50px 46px; border-radius: 30px; background: var(--p); color: #fff; overflow: hidden; }
:where(.page-about) .mpan::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.09) 1px, transparent 1px); background-size: 22px 22px; }
:where(.page-about) .mpan .cap { position: relative; display: block; margin-bottom: 26px; font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--a2); }
:where(.page-about) .mbox { position: relative; aspect-ratio: 1015 / 452; }
:where(.page-about) .mbox > img { width: 100%; height: 100%; }
:where(.page-about) .pin { position: absolute; width: 0; height: 0; }
:where(.page-about) .pin .d { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--a); box-shadow: 0 0 0 4px color-mix(in srgb, var(--p) 80%, transparent); }
:where(.page-about) .pin .r { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--a2); animation: pulse 2.6s ease-out infinite; }
:where(.page-about) .pin:nth-child(3) .r { animation-delay: .6s; }
:where(.page-about) .pin:nth-child(4) .r { animation-delay: 1.2s; }
:where(.page-about) .pin:nth-child(5) .r { animation-delay: 1.8s; }
:where(.page-about) .mv { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr) minmax(0, 1fr); gap: 50px; align-items: center; }
:where(.page-about) .mvc .n { display: block; font-size: 90px; font-weight: 800; line-height: 1; letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.5px color-mix(in srgb, var(--p) 35%, transparent); }
:where(.page-about) .mvc .t3 { margin: 20px 0 16px; font-size: 34px; }
:where(.page-about) .mvc .t3::after { content: ""; display: block; width: 48px; height: 3px; margin-top: 18px; background: var(--a); border-radius: 2px; }
:where(.page-about) .mvf { position: relative; margin: 0; height: 620px; border-radius: 30px; overflow: hidden; }
:where(.page-about) .mvf img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; }
:where(.page-about) .qt { position: relative; background: var(--p); color: #fff; overflow: hidden; }
:where(.page-about) .qt::before { content: "\201C"; position: absolute; right: 6%; top: -60px; font-size: 520px; line-height: 1; font-weight: 800; color: rgba(255,255,255,.04); }
:where(.page-about) .qt .w { position: relative; padding-top: 140px; padding-bottom: 140px; }
:where(.page-about) .qt blockquote { margin: 26px 0 0; max-width: 1060px; font-size: 54px; line-height: 1.18; font-weight: 700; letter-spacing: -.02em; }
:where(.page-about) .qt footer { display: flex; align-items: center; gap: 18px; margin-top: 46px; }
:where(.page-about) .qt .av { width: 64px; height: 64px; border-radius: 50%; display: grid; place-items: center; background: var(--a); font-weight: 800; font-size: 20px; }
:where(.page-about) .qt footer b { display: block; font-size: 18px; }
:where(.page-about) .qt footer span { display: block; margin-top: 4px; font-size: 14px; color: #A9B6C6; }
@media (max-width: 1180px) {
  :where(.page-about) .ab, :where(.page-about) .net { grid-template-columns: minmax(0, 1fr); gap: 60px; }
  :where(.page-about) .flc { left: 20px; }
  :where(.page-about) .mv { grid-template-columns: minmax(0, 1fr); }
  :where(.page-about) .mvf { height: 420px; }
  :where(.page-about) .qt blockquote { font-size: 40px; }
}
@media (max-width: 760px) {
  :where(.page-about) .abm figure { height: 440px; }
  :where(.page-about) .flc { padding: 16px 18px; bottom: 20px; }
  :where(.page-about) .bign b { font-size: 100px; }
  :where(.page-about) .icg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-about) .icg div { aspect-ratio: auto; padding: 20px 10px; }
  :where(.page-about) .mpan { padding: 26px 18px; }
  :where(.page-about) .qt blockquote { font-size: 30px; }
  :where(.page-about) .qt .w { padding-top: 90px; padding-bottom: 90px; }
}

:where(.page-categories) .kf { position: relative; z-index: 3; margin-top: -70px; }
:where(.page-categories) .kf .w { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
:where(.page-categories) .kfi { display: flex; align-items: center; gap: 20px; padding: 34px 30px; background: #fff; border-right: 1px solid var(--line); box-shadow: 0 30px 70px rgba(0, 66, 92,.1); }
:where(.page-categories) .kfi:first-child { border-radius: 24px 0 0 24px; }
:where(.page-categories) .kfi:last-child { border-radius: 0 24px 24px 0; border-right: 0; }
:where(.page-categories) .kfi .ci { width: 64px; height: 64px; flex: none; border-radius: 18px; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); }
:where(.page-categories) .kfi b { display: block; font-size: 44px; line-height: 1; font-weight: 800; letter-spacing: -.03em; color: var(--p); font-variant-numeric: tabular-nums; }
:where(.page-categories) .kfi span { display: block; margin-top: 6px; font-size: 14.5px; font-weight: 600; color: var(--mut); }
:where(.page-categories) .ih { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 56px; }
:where(.page-categories) .ih .t2 { margin-top: 18px; }
:where(.page-categories) .kd { display: flex; align-items: center; gap: 14px; font-size: 12.5px; font-weight: 800; letter-spacing: .26em; text-transform: uppercase; color: var(--mut); }
:where(.page-categories) .kd i { position: relative; width: 70px; height: 2px; background: var(--line); overflow: hidden; }
:where(.page-categories) .kd i::after { content: ""; position: absolute; inset: 0; background: var(--a); animation: kdm 2s var(--e2) infinite; }
@keyframes kdm { from { transform: translateX(-100%); } to { transform: translateX(100%); } }
:where(.page-categories) .ks { position: relative; height: 640px; border-radius: 30px; overflow: hidden; background: var(--p); }
:where(.page-categories) .kss { position: absolute; inset: 0; clip-path: inset(0 0 0 100%); transition: clip-path 1.3s var(--e2); }
:where(.page-categories) .kss.on { clip-path: inset(0 0 0 0); z-index: 2; }
:where(.page-categories) .kss.was { clip-path: inset(0 0 0 0); z-index: 1; }
:where(.page-categories) .kss img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.15); transition: transform 2.4s var(--e1); }
:where(.page-categories) .kss.on img { transform: scale(1); }
:where(.page-categories) .kss::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--p) 80%, transparent), transparent 55%); }
:where(.page-categories) .ksc { position: absolute; z-index: 3; left: 50px; bottom: 44px; right: 280px; color: #fff; }
:where(.page-categories) .ksc .n { font-size: 14px; font-weight: 800; letter-spacing: .2em; color: var(--a2); }
:where(.page-categories) .ksc h3 { margin: 10px 0 0; font-size: 46px; line-height: 1.05; font-weight: 800; letter-spacing: -.02em; }
:where(.page-categories) .ksc p { margin: 14px 0 0; max-width: 620px; font-size: 16px; line-height: 1.7; color: #C9D8DD; }
:where(.page-categories) .ksn { position: absolute; z-index: 3; right: 40px; bottom: 44px; display: flex; gap: 12px; }
:where(.page-categories) .ksn button { width: 64px; height: 64px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.35); color: #fff; display: grid; place-items: center; transition: background .4s, border-color .4s; }
:where(.page-categories) .ksn button:hover { background: var(--a); border-color: var(--a); }
:where(.page-categories) .kth { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-top: 18px; }
:where(.page-categories) .kth button { position: relative; display: flex; align-items: center; gap: 14px; padding: 14px; border-radius: 18px; background: var(--soft); text-align: left; transition: background .4s; }
:where(.page-categories) .kth button img { width: 70px; height: 54px; border-radius: 12px; object-fit: cover; }
:where(.page-categories) .kth button b { display: block; font-size: 14.5px; font-weight: 800; }
:where(.page-categories) .kth button span { display: block; margin-top: 3px; font-size: 12.5px; color: var(--mut); }
:where(.page-categories) .kth button i { position: absolute; left: 14px; right: 14px; bottom: 0; height: 2px; background: var(--a); transform: scaleX(0); transform-origin: left; transition: transform .7s var(--e1); }
:where(.page-categories) .kth button.on { background: #fff; box-shadow: 0 16px 40px rgba(0, 66, 92,.1); }
:where(.page-categories) .kth button.on i { transform: scaleX(1); }
:where(.page-categories) .kr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 90px; align-items: center; }
:where(.page-categories) .kr + .kr { margin-top: 130px; }
:where(.page-categories) .kr.rev .kri { order: 2; }
:where(.page-categories) .kri { position: relative; margin: 0; height: 520px; border-radius: 28px; overflow: hidden; }
:where(.page-categories) .kri img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; }
:where(.page-categories) .kri .no { position: absolute; z-index: 2; left: 26px; top: 22px; padding: 8px 14px; border-radius: 20px; background: rgba(255,255,255,.9); color: var(--p); font-size: 13px; font-weight: 800; letter-spacing: .12em; }
:where(.page-categories) .krt .t2 { margin: 16px 0 20px; font-size: 46px; }
:where(.page-categories) .chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 30px 0 36px; }
:where(.page-categories) .chips a { display: inline-flex; align-items: center; gap: 8px; padding: 11px 18px; border-radius: 30px; border: 1.5px solid var(--line); font-size: 14px; font-weight: 700; transition: border-color .3s, background .3s, color .3s; }
:where(.page-categories) .chips a .ic { color: var(--a); width: 16px; height: 16px; transition: color .3s; }
:where(.page-categories) .chips a:hover { background: var(--p); border-color: var(--p); color: #fff; }
:where(.page-categories) .chips a:hover .ic { color: var(--a2); }
:where(.page-categories) .gal { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
:where(.page-categories) .gal button { position: relative; height: 300px; border-radius: 22px; overflow: hidden; background: var(--p); }
:where(.page-categories) .gal button:nth-child(1), :where(.page-categories) .gal button:nth-child(4) { grid-column: span 2; }
:where(.page-categories) .gal img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.3s var(--e1), opacity .4s; }
:where(.page-categories) .gal button:hover img { transform: scale(1.08); opacity: .8; }
:where(.page-categories) .gal .zm { position: absolute; left: 50%; top: 50%; width: 70px; height: 70px; margin: -35px 0 0 -35px; border-radius: 50%; background: #fff; color: var(--p); display: grid; place-items: center; transform: scale(0); transition: transform .5s var(--e1); }
:where(.page-categories) .gal button:hover .zm { transform: scale(1); }
:where(.page-categories) .gal .cp { position: absolute; left: 20px; bottom: 18px; padding: 7px 14px; border-radius: 20px; background: rgba(255,255,255,.92); color: var(--p); font-size: 12.5px; font-weight: 800; }
:where(.page-categories) .lbx { position: fixed; inset: 0; z-index: 140; background: color-mix(in srgb, var(--p) 95%, transparent); display: grid; place-items: center; animation: fi .4s ease both; }
:where(.page-categories) .lbx figure { margin: 0; width: min(1100px, 86vw); }
:where(.page-categories) .lbx img { width: 100%; max-height: 72vh; object-fit: contain; border-radius: 18px; animation: fu .6s var(--e1) both; }
:where(.page-categories) .lbx figcaption { display: flex; justify-content: space-between; margin-top: 18px; color: #C3D3D9; font-size: 15px; font-weight: 600; }
:where(.page-categories) .lbx .x, :where(.page-categories) .lbx .nv { position: absolute; width: 60px; height: 60px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,.3); color: #fff; display: grid; place-items: center; transition: background .3s; }
:where(.page-categories) .lbx .x { top: 30px; right: 30px; }
:where(.page-categories) .lbx .nv.l { left: 30px; top: 50%; margin-top: -30px; }
:where(.page-categories) .lbx .nv.r { right: 30px; top: 50%; margin-top: -30px; }
:where(.page-categories) .lbx .x:hover, :where(.page-categories) .lbx .nv:hover { background: var(--a); border-color: var(--a); }
@media (max-width: 1180px) {
  :where(.page-categories) .kf .w { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-categories) .kfi:first-child, :where(.page-categories) .kfi:last-child { border-radius: 0; }
  :where(.page-categories) .kr { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  :where(.page-categories) .kr.rev .kri { order: 0; }
  :where(.page-categories) .kth { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-categories) .ksc { right: 40px; bottom: 120px; }
}
@media (max-width: 760px) {
  :where(.page-categories) .kf .w { grid-template-columns: minmax(0, 1fr); padding: 0 20px; }
  :where(.page-categories) .kfi { padding: 22px; }
  :where(.page-categories) .ih { flex-direction: column; align-items: flex-start; }
  :where(.page-categories) .ks { height: 520px; }
  :where(.page-categories) .ksc { left: 22px; right: 22px; }
  :where(.page-categories) .ksc h3 { font-size: 32px; }
  :where(.page-categories) .ksn { right: 22px; bottom: 22px; }
  :where(.page-categories) .kri { height: 340px; }
  :where(.page-categories) .krt .t2 { font-size: 32px; }
  :where(.page-categories) .gal { grid-template-columns: minmax(0, 1fr); }
  :where(.page-categories) .gal button:nth-child(1), :where(.page-categories) .gal button:nth-child(4) { grid-column: auto; }
  :where(.page-categories) .lbx .nv { display: none; }
}

:where(.page-services, .page-service) .bn.hz { height: 700px; }
:where(.page-services, .page-service) .bn.hz .in { padding-top: 90px; }
:where(.page-services, .page-service) .pills { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 40px; }
:where(.page-services, .page-service) .pills button { display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 22px; border-radius: 30px; color: #fff; font-size: 14px; font-weight: 700; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.28); backdrop-filter: blur(6px); animation: fu .9s var(--e1) both; transition: background .4s, box-shadow .4s; }
:where(.page-services, .page-service) .pills button:nth-child(1) { animation-delay: .9s; }
:where(.page-services, .page-service) .pills button:nth-child(2) { animation-delay: .98s; }
:where(.page-services, .page-service) .pills button:nth-child(3) { animation-delay: 1.06s; }
:where(.page-services, .page-service) .pills button:nth-child(4) { animation-delay: 1.14s; }
:where(.page-services, .page-service) .pills button:nth-child(5) { animation-delay: 1.22s; }
:where(.page-services, .page-service) .pills button i { font-style: normal; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.14); font-size: 12px; }
:where(.page-services, .page-service) .pills button:hover { box-shadow: inset 0 0 0 1.5px #fff; }
:where(.page-services, .page-service) .pills button.on { background: var(--a); box-shadow: inset 0 0 0 1.5px var(--a); }
:where(.page-services, .page-service) .back { display: inline-flex; align-items: center; gap: 12px; margin-top: 34px; font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: #fff; animation: fi 1s ease 1.4s both; }
:where(.page-services, .page-service) .back span { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.4); transition: background .4s, transform .5s var(--e1); }
:where(.page-services, .page-service) .back:hover span { background: var(--a); transform: translateX(-4px); }
:where(.page-services, .page-service) .hx { max-width: 430px; margin: 0; }
:where(.page-services, .page-service) .ftb { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 30px; padding: 10px; border-radius: 40px; background: var(--soft); }
:where(.page-services, .page-service) .ftb nav { display: flex; gap: 4px; flex-wrap: wrap; }
:where(.page-services, .page-service) .ftb button { height: 44px; padding: 0 20px; border-radius: 30px; font-size: 14px; font-weight: 700; color: var(--mut); transition: background .4s, color .4s, box-shadow .4s; }
:where(.page-services, .page-service) .ftb button:hover { color: var(--ink); }
:where(.page-services, .page-service) .ftb button.on { background: #fff; color: var(--p); box-shadow: 0 8px 24px rgba(0, 66, 92,.1); }
:where(.page-services, .page-service) .ftb .cn { padding-right: 18px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mut); font-variant-numeric: tabular-nums; }
:where(.page-services, .page-service) .ftb .cn b { color: var(--a); }
:where(.page-services, .page-service) .sg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
:where(.page-services, .page-service) .sc { position: relative; display: block; height: 440px; border-radius: 24px; overflow: hidden; background: var(--p); color: #fff; isolation: isolate; }
:where(.page-services, .page-service) .sc img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.4s var(--e1); }
:where(.page-services, .page-service) .sc::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, color-mix(in srgb, var(--p) 94%, transparent) 0%, color-mix(in srgb, var(--p) 45%, transparent) 48%, color-mix(in srgb, var(--p) 10%, transparent) 80%); }
:where(.page-services, .page-service) .sc:hover img { transform: scale(1.1); }
:where(.page-services, .page-service) .sc .kt { position: absolute; left: 22px; top: 22px; white-space: nowrap; padding: 7px 13px; border-radius: 20px; background: rgba(255,255,255,.14); backdrop-filter: blur(8px); font-size: 12px; font-weight: 700; letter-spacing: .04em; }
:where(.page-services, .page-service) .sc .no { position: absolute; right: 22px; top: 22px; font-size: 13px; font-weight: 800; letter-spacing: .14em; color: rgba(255,255,255,.7); }
:where(.page-services, .page-service) .sc .cb { position: absolute; left: 24px; right: 24px; bottom: 26px; }
:where(.page-services, .page-service) .sc h3 { margin: 0; font-size: 18px; line-height: 1.3; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
:where(.page-services, .page-service) .sc .ds { display: block; margin: 0; max-height: 0; opacity: 0; overflow: hidden; font-size: 14.5px; line-height: 1.65; color: #C9D8DD; transition: max-height .7s var(--e1), opacity .5s, margin .7s var(--e1); }
:where(.page-services, .page-service) .sc:hover .ds { max-height: 140px; opacity: 1; margin-top: 12px; }
:where(.page-services, .page-service) .sc .mr { display: inline-flex; align-items: center; gap: 12px; margin-top: 18px; font-size: 12.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--a2); }
:where(.page-services, .page-service) .sc .mr i { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px currentColor; transition: background .4s, color .4s, box-shadow .4s, transform .5s var(--e1); }
:where(.page-services, .page-service) .sc:hover .mr i { background: var(--a); color: #fff; box-shadow: none; transform: rotate(-45deg); }
:where(.page-services, .page-service) .sc .bar { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--a); transform: scaleX(0); transform-origin: left; transition: transform .8s var(--e1); }
:where(.page-services, .page-service) .sc:hover .bar { transform: scaleX(1); }
:where(.page-services, .page-service) .sc.fa { animation: cIn-services .9s var(--e1) both; animation-delay: var(--d); }
:where(.page-services, .page-service) .sc.fb { animation: cIn2-services .9s var(--e1) both; animation-delay: var(--d); }
@keyframes cIn-services { from { opacity: 0; transform: translateY(60px) scale(.94); } to { opacity: 1; transform: none; } }
@keyframes cIn2-services { from { opacity: 0; transform: translateY(60px) scale(.94); } to { opacity: 1; transform: none; } }
:where(.page-services, .page-service) .prs { background: var(--p); color: #fff; }
:where(.page-services, .page-service) .prs .ctr .tx { margin: 22px auto 0; max-width: 620px; }
:where(.page-services, .page-service) .prc { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 34px; margin-top: 80px; }
:where(.page-services, .page-service) .prc::before { content: ""; position: absolute; left: 0; right: 0; top: 40px; height: 2px; background: rgba(255,255,255,.12); }
:where(.page-services, .page-service) .prc .ln { position: absolute; left: 0; right: 0; top: 40px; height: 2px; background: var(--a); transform: scaleX(0); transform-origin: left; transition: transform 2.6s var(--e2) .3s; }
.rv-on :where(.page-services, .page-service) .prc.in .ln { transform: scaleX(1); }
.rv-static :where(.page-services, .page-service) .prc .ln { animation: lnIn 2.6s var(--e2) .5s both; }
@keyframes lnIn { from { transform: scaleX(0); } to { transform: scaleX(1); } }
:where(.page-services, .page-service) .st { position: relative; }
:where(.page-services, .page-service) .st .ci { position: relative; z-index: 1; width: 82px; height: 82px; border-radius: 50%; display: grid; place-items: center; background: var(--p); color: #fff; box-shadow: inset 0 0 0 2px rgba(255,255,255,.16); transition: background .5s, box-shadow .5s, transform .6s var(--e1); }
:where(.page-services, .page-service) .st:hover .ci { background: var(--a); box-shadow: inset 0 0 0 2px var(--a); transform: translateY(-6px); }
:where(.page-services, .page-service) .st .n { position: absolute; left: 66px; top: -8px; z-index: 2; padding: 3px 8px; border-radius: 12px; background: var(--a); font-size: 11.5px; font-weight: 800; letter-spacing: .08em; }
:where(.page-services, .page-service) .st h4 { margin: 30px 0 12px; font-size: 21px; font-weight: 800; letter-spacing: -.01em; }
:where(.page-services, .page-service) .st p { margin: 0; font-size: 15px; line-height: 1.75; color: #9BB3BC; }
:where(.page-services, .page-service) .cta { position: relative; padding: 150px 0; color: #fff; background: var(--p); overflow: hidden; }
:where(.page-services, .page-service) .cta > img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; }
:where(.page-services, .page-service) .cta::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, color-mix(in srgb, var(--p) 94%, transparent) 30%, color-mix(in srgb, var(--p) 55%, transparent)); }
:where(.page-services, .page-service) .cta .w { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 80px; align-items: center; }
:where(.page-services, .page-service) .cta .t1 { margin: 16px 0 24px; }
:where(.page-services, .page-service) .cta .lead { max-width: 560px; }
:where(.page-services, .page-service) .cbt { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
:where(.page-services, .page-service) .cbox { padding: 34px; border-radius: 26px; background: rgba(255,255,255,.08); backdrop-filter: blur(14px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); }
:where(.page-services, .page-service) .cbox h5 { display: flex; align-items: center; gap: 10px; margin: 0 0 22px; font-size: 13px; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: var(--a2); }
:where(.page-services, .page-service) .cbox h5 i { width: 9px; height: 9px; border-radius: 50%; background: #3DDC97; animation: pulse 2s infinite; }
:where(.page-services, .page-service) .cbox dl { margin: 0; }
:where(.page-services, .page-service) .cbox div { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.12); font-size: 15px; }
:where(.page-services, .page-service) .cbox dt { color: #B3C7CE; }
:where(.page-services, .page-service) .cbox dd { margin: 0; font-weight: 700; text-align: right; }
@media (max-width: 1180px) {
  :where(.page-services, .page-service) .sg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-services, .page-service) .prc { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 50px; }
  :where(.page-services, .page-service) .prc::before, :where(.page-services, .page-service) .prc .ln { display: none; }
  :where(.page-services, .page-service) .cta .w { grid-template-columns: minmax(0, 1fr); gap: 50px; }
}
@media (max-width: 760px) {
  :where(.page-services, .page-service) .bn.hz { height: auto; padding: 150px 0 80px; }
  :where(.page-services, .page-service) .pills button { height: 42px; padding: 0 16px; font-size: 13px; }
  :where(.page-services, .page-service) .ftb { flex-direction: column; align-items: stretch; border-radius: 24px; }
  :where(.page-services, .page-service) .ftb nav { overflow-x: auto; flex-wrap: nowrap; }
  :where(.page-services, .page-service) .ftb button { flex: none; }
  :where(.page-services, .page-service) .sg { grid-template-columns: minmax(0, 1fr); }
  :where(.page-services, .page-service) .sc { height: 380px; }
  :where(.page-services, .page-service) .sc .ds { display: block; max-height: 140px; opacity: 1; margin-top: 12px; }
  :where(.page-services, .page-service) .prc { grid-template-columns: minmax(0, 1fr); }
  :where(.page-services, .page-service) .cta { padding: 100px 0; }
}

:where(.page-projects) .pbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 44px; }
:where(.page-projects) .tabs { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 720px; max-width: 100%; padding: 6px; border-radius: 40px; background: var(--soft); }
:where(.page-projects) .tabs .ind { position: absolute; left: 6px; top: 6px; bottom: 6px; width: calc((100% - 12px) / 4); border-radius: 34px; background: var(--p); box-shadow: 0 10px 26px rgba(0, 66, 92,.22); transform: translateX(calc(var(--i) * 100%)); transition: transform .7s var(--e1); }
:where(.page-projects) .tabs button { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; border-radius: 34px; font-size: 14px; font-weight: 700; color: var(--mut); white-space: nowrap; transition: color .5s; }
:where(.page-projects) .tabs button i { font-style: normal; font-size: 12px; opacity: .6; }
:where(.page-projects) .tabs button:hover { color: var(--ink); }
:where(.page-projects) .tabs button.on { color: #fff; }
:where(.page-projects) .vw { display: flex; gap: 6px; padding: 6px; border-radius: 30px; background: var(--soft); }
:where(.page-projects) .vw button { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; color: var(--mut); transition: background .4s, color .4s; }
:where(.page-projects) .vw button.on { background: #fff; color: var(--p); box-shadow: 0 6px 18px rgba(0, 66, 92,.1); }
:where(.page-projects) .pg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
:where(.page-projects) .pc { display: flex; flex-direction: column; border-radius: 26px; overflow: hidden; background: #fff; box-shadow: 0 0 0 1px var(--line); transition: box-shadow .6s var(--e1), transform .6s var(--e1); }
:where(.page-projects) .pc:hover { box-shadow: 0 30px 60px rgba(0, 66, 92,.14); transform: translateY(-6px); }
:where(.page-projects) .pc .im { position: relative; display: block; height: 290px; overflow: hidden; background: var(--p); }
:where(.page-projects) .pc .im img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s var(--e1); }
:where(.page-projects) .pc:hover .im img { transform: scale(1.08); }
:where(.page-projects) .pc .yr { position: absolute; left: 20px; top: 20px; padding: 7px 14px; border-radius: 20px; background: #fff; color: var(--p); font-size: 13px; font-weight: 800; letter-spacing: .08em; }
:where(.page-projects) .pc .nm { position: absolute; right: 20px; top: 20px; color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-shadow: 0 1px 8px rgba(0,0,0,.4); }
:where(.page-projects) .pc .bd { display: flex; flex-direction: column; flex: 1; padding: 28px 30px 30px; }
:where(.page-projects) .pc .mt { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--a); }
:where(.page-projects) .pc .mt span { display: inline-flex; align-items: center; gap: 6px; }
:where(.page-projects) .pc .mt span + span { color: var(--mut); }
:where(.page-projects) .pc h3 { margin: 14px 0 8px; font-size: 24px; line-height: 1.25; font-weight: 800; letter-spacing: -.01em; }
:where(.page-projects) .pc .sb { display: block; font-size: 15.5px; line-height: 1.6; color: var(--mut); }
:where(.page-projects) .pc .go { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 26px; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
:where(.page-projects) .pc .go i { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line); transition: background .4s, color .4s, box-shadow .4s, transform .5s var(--e1); }
:where(.page-projects) .pc:hover .go i { background: var(--a); color: #fff; box-shadow: none; transform: rotate(-45deg); }
:where(.page-projects) .pc.fa { animation: cIn-projects .9s var(--e1) both; animation-delay: var(--d); }
:where(.page-projects) .pc.fb { animation: cIn2-projects .9s var(--e1) both; animation-delay: var(--d); }
@keyframes cIn-projects { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: none; } }
@keyframes cIn2-projects { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: none; } }
:where(.page-projects) .pc.cta2 { position: relative; justify-content: space-between; gap: 30px; min-height: 300px; padding: 44px; background: var(--p); color: #fff; box-shadow: none; }
:where(.page-projects) .pc.cta2 .cbx { position: relative; z-index: 1; max-width: 460px; }
:where(.page-projects) .pc.cta2 h3 { margin: 18px 0 12px; font-size: 30px; }
:where(.page-projects) .pc.cta2 .sb { color: #B3C7CE; }
:where(.page-projects) .pc.cta2 .go { position: relative; z-index: 1; justify-content: flex-start; gap: 18px; padding: 0; }
:where(.page-projects) .pc.cta2 .go i { box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.3); }
:where(.page-projects) .pc.cta2 .big { position: absolute; right: 30px; bottom: -40px; font-size: 260px; line-height: 1; font-weight: 800; letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.14); transition: transform 1s var(--e1), -webkit-text-stroke-color .6s; }
:where(.page-projects) .pc.cta2:hover .big { transform: translateY(-14px); -webkit-text-stroke-color: var(--a); }
:where(.page-projects) .pg.l .pc.cta2 { flex-direction: row; align-items: center; min-height: 200px; }
:where(.page-projects) .pg.l .pc.cta2 .go { margin-right: 200px; }
:where(.page-projects) .pg.l { grid-template-columns: minmax(0, 1fr); gap: 16px; }
:where(.page-projects) .pg.l .pc { flex-direction: row; align-items: stretch; border-radius: 22px; }
:where(.page-projects) .pg.l .pc:hover { transform: translateX(8px); }
:where(.page-projects) .pg.l .pc .im { width: 300px; height: auto; min-height: 170px; flex: none; }
:where(.page-projects) .pg.l .pc .bd { flex-direction: row; align-items: center; gap: 40px; padding: 26px 34px; }
:where(.page-projects) .pg.l .pc .bd > div { flex: 1; }
:where(.page-projects) .pg.l .pc .go { margin: 0; padding: 0; gap: 18px; }
:where(.page-projects) .mqb { position: relative; padding: 130px 0; overflow: hidden; background: var(--p); color: #fff; text-align: center; }
:where(.page-projects) .mqb .trk { display: flex; width: max-content; animation: mq 38s linear infinite; }
:where(.page-projects) .mqb .trk.r2 { animation-direction: reverse; animation-duration: 46s; margin-top: 10px; }
:where(.page-projects) .mqb .trk span { display: inline-flex; align-items: center; gap: 40px; padding-right: 40px; font-size: 92px; line-height: 1.1; font-weight: 800; letter-spacing: -.02em; white-space: nowrap; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.18); }
:where(.page-projects) .mqb .trk.r2 span { color: rgba(255,255,255,.06); -webkit-text-stroke: 0; }
:where(.page-projects) .mqb .trk span i { width: 18px; height: 18px; border-radius: 50%; background: var(--a); }
:where(.page-projects) .mqb .ov { position: absolute; inset: 0; display: grid; place-items: center; background: radial-gradient(ellipse at center, color-mix(in srgb, var(--p) 92%, transparent) 25%, transparent 70%); }
:where(.page-projects) .mqb .ov .t2 { margin: 16px 0 34px; }
@media (max-width: 1180px) {
  :where(.page-projects) .pbar { flex-direction: column; align-items: stretch; }
  :where(.page-projects) .tabs { width: 100%; }
  :where(.page-projects) .pg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-projects) .pg .pc.cta2 { grid-column: 1 / -1 !important; }
  :where(.page-projects) .pg.l .pc .im { width: 220px; }
}
@media (max-width: 760px) {
  :where(.page-projects) .tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 26px; }
  :where(.page-projects) .tabs .ind { display: none; }
  :where(.page-projects) .tabs button.on { background: var(--p); }
  :where(.page-projects) .vw { display: none; }
  :where(.page-projects) .pg, :where(.page-projects) .pg.l { grid-template-columns: minmax(0, 1fr); }
  :where(.page-projects) .pg.l .pc.cta2 { flex-direction: column; align-items: flex-start; }
  :where(.page-projects) .pg.l .pc.cta2 .go { margin-right: 0; }
  :where(.page-projects) .pc.cta2 { padding: 30px; }
  :where(.page-projects) .pc.cta2 .big { font-size: 160px; }
  :where(.page-projects) .pg.l .pc { flex-direction: column; }
  :where(.page-projects) .pg.l .pc .im { width: 100%; height: 220px; }
  :where(.page-projects) .pg.l .pc .bd { flex-direction: column; align-items: stretch; gap: 20px; }
  :where(.page-projects) .mqb .trk span { font-size: 54px; }
}

:where(.page-project) .ph { position: relative; height: 820px; overflow: hidden; background: var(--p); color: #fff; }
:where(.page-project) .ph .kb { position: absolute; inset: 0; animation: kb 18s ease-out both; }
:where(.page-project) .ph .kb img { position: absolute; left: 0; top: -10%; width: 100%; height: 120%; object-fit: cover; }
:where(.page-project) .ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--p) 96%, transparent) 4%, color-mix(in srgb, var(--p) 45%, transparent) 50%, color-mix(in srgb, var(--p) 70%, transparent)); }
:where(.page-project) .ph .w { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; padding-top: 150px; padding-bottom: 80px; box-sizing: border-box; }
:where(.page-project) .ph .hb { display: flex; flex-direction: column; width: 100%; }
:where(.page-project) .gb { display: inline-flex; align-items: center; gap: 14px; font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; animation: fi 1s ease .6s both; }
:where(.page-project) .gb span { width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.4); transition: background .4s, box-shadow .4s, transform .5s var(--e1); }
:where(.page-project) .gb:hover span { background: var(--a); box-shadow: none; transform: translateX(-5px); }
:where(.page-project) .ph .cd { display: inline-flex; align-self: flex-start; align-items: center; gap: 10px; padding: 9px 16px; border-radius: 30px; background: rgba(255,255,255,.12); backdrop-filter: blur(8px); font-size: 13px; font-weight: 800; letter-spacing: .18em; animation: fu .9s var(--e1) .4s both; }
:where(.page-project) .ph .cd i { width: 8px; height: 8px; border-radius: 50%; background: var(--a); }
:where(.page-project) .ph h1 { margin: 22px 0 0; font-size: 96px; max-width: 1100px; }
:where(.page-project) .pm { display: flex; flex-wrap: wrap; gap: 14px 46px; margin-top: 34px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.16); animation: fu 1s var(--e1) 1s both; }
:where(.page-project) .pm div { display: flex; align-items: center; gap: 14px; }
:where(.page-project) .pm .ci { width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center; background: rgba(255,255,255,.1); color: var(--a2); }
:where(.page-project) .pm small { display: block; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: #9BB3BC; }
:where(.page-project) .pm b { display: block; margin-top: 3px; font-size: 17px; font-weight: 700; }
:where(.page-project) .dg { display: grid; grid-template-columns: 440px minmax(0, 1fr); gap: 70px; align-items: start; }
:where(.page-project) .spec { position: sticky; top: 120px; padding: 40px; border-radius: 28px; background: var(--soft); }
:where(.page-project) .spec h2 { margin: 16px 0 26px; font-size: 30px; }
:where(.page-project) .spec dl { margin: 0; }
:where(.page-project) .spec div { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 16px; padding: 18px 0; border-top: 1px solid var(--line); font-size: 15.5px; }
:where(.page-project) .spec dt { color: var(--mut); font-weight: 600; }
:where(.page-project) .spec dd { margin: 0; font-weight: 700; }
:where(.page-project) .spec .btn { margin-top: 30px; width: 100%; justify-content: center; }
:where(.page-project) .gm { position: relative; height: 560px; border-radius: 28px; overflow: hidden; background: var(--p); }
:where(.page-project) .gms { position: absolute; inset: 0; clip-path: inset(0 100% 0 0); transition: clip-path 1.2s var(--e2); }
:where(.page-project) .gms.on { clip-path: inset(0 0 0 0); z-index: 2; }
:where(.page-project) .gms.was { clip-path: inset(0 0 0 0); z-index: 1; }
:where(.page-project) .gms img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform 2s var(--e1); }
:where(.page-project) .gms.on img { transform: scale(1); }
:where(.page-project) .gm .zm { position: absolute; z-index: 3; right: 24px; top: 24px; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--p); transition: background .4s, color .4s, transform .5s var(--e1); }
:where(.page-project) .gm .zm:hover { background: var(--a); color: #fff; transform: scale(1.08); }
:where(.page-project) .gm .gc { position: absolute; z-index: 3; left: 26px; bottom: 24px; display: flex; align-items: center; gap: 14px; color: #fff; font-size: 14px; font-weight: 700; }
:where(.page-project) .gm .gc b { padding: 7px 13px; border-radius: 20px; background: rgba(0, 66, 92,.6); backdrop-filter: blur(6px); font-variant-numeric: tabular-nums; letter-spacing: .1em; }
:where(.page-project) .gt { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-top: 14px; }
:where(.page-project) .gt button { position: relative; height: 96px; border-radius: 16px; overflow: hidden; opacity: .55; transition: opacity .4s; }
:where(.page-project) .gt button img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--e1); }
:where(.page-project) .gt button:hover { opacity: .9; }
:where(.page-project) .gt button:hover img { transform: scale(1.08); }
:where(.page-project) .gt button.on { opacity: 1; }
:where(.page-project) .gt button i { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--a); transform: scaleX(0); transform-origin: left; }
:where(.page-project) .gt button.on i { animation: gfill 6s linear both; }
@keyframes gfill { from { transform: scaleX(0); } to { transform: scaleX(1); } }
:where(.page-project) .pdx { margin-top: 70px; }
:where(.page-project) .pdx .t3 { margin: 16px 0 20px; }
:where(.page-project) .pdx .tx { max-width: none; margin: 0 0 18px; }
:where(.page-project) .ftl { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
:where(.page-project) .ftl span { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 30px; box-shadow: inset 0 0 0 1.5px var(--line); font-size: 14px; font-weight: 700; }
:where(.page-project) .ftl .ic { width: 16px; height: 16px; color: var(--a); }
:where(.page-project) .pn { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
:where(.page-project) .pn a { display: flex; align-items: center; gap: 22px; padding: 40px 0; }
:where(.page-project) .pn a.nx { justify-content: flex-end; text-align: right; }
:where(.page-project) .pn a .c { width: 60px; height: 60px; flex: none; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line); transition: background .4s, color .4s, box-shadow .4s, transform .5s var(--e1); }
:where(.page-project) .pn a:hover .c { background: var(--a); color: #fff; box-shadow: none; }
:where(.page-project) .pn a.pv:hover .c { transform: translateX(-6px); }
:where(.page-project) .pn a.nx:hover .c { transform: translateX(6px); }
:where(.page-project) .pn small { display: block; font-size: 12.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--a); }
:where(.page-project) .pn b { display: block; margin-top: 6px; font-size: 22px; font-weight: 700; }
:where(.page-project) .pn .al { width: 64px; height: 64px; margin: 0 40px; border-radius: 18px; display: grid; place-items: center; background: var(--soft); transition: background .4s, color .4s, transform .6s var(--e1); }
:where(.page-project) .pn .al:hover { background: var(--p); color: #fff; transform: rotate(90deg); }
:where(.page-project) .pl2 { border-top: 1px solid var(--line); }
:where(.page-project) .pl2 a { position: relative; display: grid; grid-template-columns: 100px minmax(0, 1fr) 240px 120px 56px; align-items: center; gap: 24px; padding: 30px 26px; border-bottom: 1px solid var(--line); isolation: isolate; }
:where(.page-project) .pl2 a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--soft); transform: scaleY(0); transform-origin: bottom; transition: transform .6s var(--e1); }
:where(.page-project) .pl2 a:hover::before { transform: scaleY(1); }
:where(.page-project) .pl2 .y { font-size: 14px; font-weight: 800; letter-spacing: .14em; color: var(--a); }
:where(.page-project) .pl2 b { font-size: 24px; font-weight: 700; letter-spacing: -.01em; transition: transform .6s var(--e1); }
:where(.page-project) .pl2 a:hover b { transform: translateX(10px); }
:where(.page-project) .pl2 .c { font-size: 14.5px; color: var(--mut); }
:where(.page-project) .pl2 .th { height: 76px; border-radius: 14px; overflow: hidden; clip-path: inset(0 0 0 100% round 14px); transition: clip-path .7s var(--e2); }
:where(.page-project) .pl2 a:hover .th { clip-path: inset(0 0 0 0 round 14px); }
:where(.page-project) .pl2 .th img { width: 100%; height: 100%; object-fit: cover; }
:where(.page-project) .pl2 .ar { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line); transition: background .4s, color .4s, box-shadow .4s, transform .5s var(--e1); }
:where(.page-project) .pl2 a:hover .ar { background: var(--a); color: #fff; box-shadow: none; transform: rotate(45deg); }
@media (max-width: 1180px) {
  :where(.page-project) .ph h1 { font-size: 64px; }
  :where(.page-project) .dg { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  :where(.page-project) .spec { position: static; }
  :where(.page-project) .pl2 a { grid-template-columns: 80px minmax(0, 1fr) 56px; }
  :where(.page-project) .pl2 .c, :where(.page-project) .pl2 .th { display: none; }
}
@media (max-width: 760px) {
  :where(.page-project) .ph { height: 680px; }
  :where(.page-project) .ph .w { padding-top: 110px; }
  :where(.page-project) .ph h1 { font-size: 40px; }
  :where(.page-project) .pm { gap: 16px 24px; }
  :where(.page-project) .spec { padding: 26px; }
  :where(.page-project) .spec div { grid-template-columns: 110px minmax(0, 1fr); }
  :where(.page-project) .gm { height: 320px; }
  :where(.page-project) .gt { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
  :where(.page-project) .gt button { height: 56px; border-radius: 10px; }
  :where(.page-project) .pn { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  :where(.page-project) .pn .al { display: none; }
  :where(.page-project) .pn b { font-size: 16px; }
  :where(.page-project) .pn a .c { display: none; }
  :where(.page-project) .pl2 a { grid-template-columns: minmax(0, 1fr) 48px; padding: 22px 6px; gap: 10px; }
  :where(.page-project) .pl2 .y { grid-column: 1 / -1; }
  :where(.page-project) .pl2 b { font-size: 19px; }
  :where(.page-project) .pl2 .ar { width: 48px; height: 48px; }
}

:where(.page-references) .ri2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 90px; align-items: center; }
:where(.page-references) .ri2 .t2 { margin: 18px 0 0; }
:where(.page-references) .bigc { display: flex; align-items: flex-end; gap: 22px; margin: 40px 0 26px; }
:where(.page-references) .bigc b { font-size: 150px; line-height: .8; font-weight: 800; letter-spacing: -.05em; color: var(--p); font-variant-numeric: tabular-nums; }
:where(.page-references) .bigc b em { font-style: normal; color: var(--a); }
:where(.page-references) .bigc span { max-width: 170px; padding-bottom: 6px; font-size: 16px; font-weight: 700; line-height: 1.4; color: var(--mut); }
:where(.page-references) .ri2 .tx { margin: 0; }
:where(.page-references) .kpi { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
:where(.page-references) .kpi div { position: relative; padding: 34px 30px; border-radius: 24px; background: var(--soft); overflow: hidden; transition: background .5s, color .5s; }
:where(.page-references) .kpi div:hover { background: var(--p); color: #fff; }
:where(.page-references) .kpi .ci { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: #fff; color: var(--a); transition: background .5s; }
:where(.page-references) .kpi div:hover .ci { background: rgba(255,255,255,.1); color: var(--a2); }
:where(.page-references) .kpi b { display: block; margin-top: 26px; font-size: 48px; line-height: 1; font-weight: 800; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
:where(.page-references) .kpi small { display: block; margin-top: 8px; font-size: 15px; font-weight: 600; color: var(--mut); transition: color .5s; }
:where(.page-references) .kpi div:hover small { color: #B3C7CE; }
:where(.page-references) .pbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 40px; }
:where(.page-references) .tabs { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 720px; max-width: 100%; padding: 6px; border-radius: 40px; background: var(--soft); }
:where(.page-references) .tabs .ind { position: absolute; left: 6px; top: 6px; bottom: 6px; width: calc((100% - 12px) / 4); border-radius: 34px; background: var(--p); box-shadow: 0 10px 26px rgba(0, 66, 92,.22); transform: translateX(calc(var(--i) * 100%)); transition: transform .7s var(--e1); }
:where(.page-references) .tabs button { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 48px; border-radius: 34px; font-size: 14px; font-weight: 700; color: var(--mut); white-space: nowrap; transition: color .5s; }
:where(.page-references) .tabs button i { font-style: normal; font-size: 12px; opacity: .6; }
:where(.page-references) .tabs button:hover { color: var(--ink); }
:where(.page-references) .tabs button.on { color: #fff; }
:where(.page-references) .pbar .hint { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mut); }
:where(.page-references) .pbar .hint .ic { color: var(--a); }
:where(.page-references) .rg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
:where(.page-references) .rc { position: relative; display: block; height: 330px; perspective: 1400px; }
:where(.page-references) .rc .in2 { position: relative; display: block; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 1s var(--e1); }
:where(.page-references) .rc:hover .in2 { transform: rotateY(180deg); }
:where(.page-references) .rc .fr, :where(.page-references) .rc .bk { position: absolute; inset: 0; display: flex; flex-direction: column; padding: 30px; border-radius: 24px; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
:where(.page-references) .rc .fr { background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
:where(.page-references) .rc .bk { justify-content: space-between; background: var(--p); color: #fff; transform: rotateY(180deg); }
:where(.page-references) .rc .mg { width: 86px; height: 86px; border-radius: 24px; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 10%, #fff); color: var(--p); font-size: 28px; font-weight: 800; letter-spacing: -.02em; }
:where(.page-references) .rc .ty { position: absolute; right: 26px; top: 26px; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; color: var(--a); box-shadow: inset 0 0 0 1.5px var(--line); }
:where(.page-references) .rc h3 { margin: auto 0 0; font-size: 20px; line-height: 1.3; font-weight: 800; }
:where(.page-references) .rc .ct { display: flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mut); }
:where(.page-references) .rc .bk small { font-size: 12.5px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--a2); }
:where(.page-references) .rc .bk b { display: block; margin-top: 14px; font-size: 24px; line-height: 1.25; font-weight: 800; }
:where(.page-references) .rc .bk .yy { display: block; margin-top: 10px; color: #9BB3BC; font-size: 15px; font-weight: 600; }
:where(.page-references) .rc .bk .go { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
:where(.page-references) .rc .bk .go i { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--a); }
:where(.page-references) .rc.nx .fr { background: var(--a); color: #fff; box-shadow: none; justify-content: space-between; }
:where(.page-references) .rc.nx .mg { background: rgba(255,255,255,.16); color: #fff; }
:where(.page-references) .rc.nx h3 { margin: 0; font-size: 26px; }
:where(.page-references) .rc.nx .ct { color: rgba(255,255,255,.8); }
:where(.page-references) .rc.nx:hover .in2 { transform: none; }
:where(.page-references) .rc.nx:hover .mg { transform: rotate(-45deg); }
:where(.page-references) .rc.nx .mg { transition: transform .6s var(--e1); }
:where(.page-references) .rc.fa { animation: cIn-references .9s var(--e1) both; animation-delay: var(--d); }
:where(.page-references) .rc.fb { animation: cIn2-references .9s var(--e1) both; animation-delay: var(--d); }
@keyframes cIn-references { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: none; } }
@keyframes cIn2-references { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: none; } }
:where(.page-references) .cm { background: var(--p); color: #fff; }
:where(.page-references) .cmap { display: grid; grid-template-columns: 400px minmax(0, 1fr); gap: 70px; align-items: center; }
:where(.page-references) .cmap .t2 { margin: 18px 0 40px; }
:where(.page-references) .cl { border-top: 1px solid rgba(255,255,255,.14); }
:where(.page-references) .cl .it { border-bottom: 1px solid rgba(255,255,255,.14); }
:where(.page-references) .cl button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 24px 0; color: #fff; text-align: left; }
:where(.page-references) .cl button b { font-size: 24px; font-weight: 700; letter-spacing: -.01em; transition: color .4s, transform .5s var(--e1); }
:where(.page-references) .cl button .n { display: inline-flex; align-items: center; gap: 12px; color: #9BB3BC; font-size: 14px; font-weight: 700; }
:where(.page-references) .cl button .n i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.25); transition: transform .5s var(--e1), background .4s, box-shadow .4s; }
:where(.page-references) .cl .it.on button b { color: var(--a2); transform: translateX(8px); }
:where(.page-references) .cl .it.on button .n i { transform: rotate(45deg); background: var(--a); box-shadow: none; }
:where(.page-references) .cl ul { margin: 0; padding: 0; list-style: none; max-height: 0; overflow: hidden; transition: max-height .7s var(--e1); }
:where(.page-references) .cl .it.on ul { max-height: 220px; }
:where(.page-references) .cl li { display: flex; align-items: center; gap: 12px; padding: 0 0 16px 8px; font-size: 15.5px; color: #C9D8DD; }
:where(.page-references) .cl li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--a); }
:where(.page-references) .mpan { position: relative; padding: 50px 46px; border-radius: 30px; background: rgba(255,255,255,.04); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); overflow: hidden; }
:where(.page-references) .mpan::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px); background-size: 22px 22px; }
:where(.page-references) .mbox { position: relative; aspect-ratio: 1015 / 452; }
:where(.page-references) .mbox > img { width: 100%; height: 100%; }
:where(.page-references) .pin { position: absolute; width: 0; height: 0; }
:where(.page-references) .pin button { position: absolute; left: -16px; top: -16px; width: 32px; height: 32px; border-radius: 50%; }
:where(.page-references) .pin .d { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; background: var(--a); box-shadow: 0 0 0 4px color-mix(in srgb, var(--p) 80%, transparent); transition: transform .5s var(--e1), background .4s; pointer-events: none; }
:where(.page-references) .pin .r { position: absolute; left: -7px; top: -7px; width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid var(--a2); animation: pulse 2.6s ease-out infinite; pointer-events: none; }
:where(.page-references) .pin.on .d { transform: scale(1.5); background: #fff; }
:where(.page-references) .pin .pnm { position: absolute; left: 50%; bottom: 18px; padding: 8px 14px; border-radius: 12px; background: #fff; color: var(--p); font-size: 13px; font-weight: 800; white-space: nowrap; pointer-events: none; opacity: 0; transform: translate(-50%, 8px); transition: opacity .4s, transform .5s var(--e1); }
:where(.page-references) .pin .pnm::after { content: ""; position: absolute; left: 50%; bottom: -5px; width: 10px; height: 10px; margin-left: -5px; background: #fff; transform: rotate(45deg); }
:where(.page-references) .pin.on .pnm { opacity: 1; transform: translate(-50%, 0); }
:where(.page-references) .pin.lf .pnm { left: auto; right: -20px; transform: translate(0, 8px); }
:where(.page-references) .pin.lf .pnm::after { left: auto; right: 15px; }
:where(.page-references) .pin.lf.on .pnm { transform: none; }
:where(.page-references) .mpan .lgd { position: relative; display: flex; gap: 26px; margin-top: 26px; font-size: 13px; font-weight: 700; color: #9BB3BC; }
:where(.page-references) .mpan .lgd span { display: inline-flex; align-items: center; gap: 8px; }
:where(.page-references) .mpan .lgd i { width: 10px; height: 10px; border-radius: 50%; background: var(--a); }
:where(.page-references) .mpan .lgd span + span i { background: #fff; }
:where(.page-references) .lw { padding: 70px 0; overflow: hidden; border-bottom: 1px solid var(--line); }
:where(.page-references) .lw .trk { display: flex; width: max-content; animation: mq 40s linear infinite; }
:where(.page-references) .lw:hover .trk { animation-play-state: paused; }
:where(.page-references) .lw .trk > div { display: flex; }
:where(.page-references) .lw .lt { display: inline-flex; align-items: center; gap: 16px; margin-right: 22px; padding: 18px 28px; border-radius: 20px; box-shadow: inset 0 0 0 1px var(--line); font-size: 18px; font-weight: 700; white-space: nowrap; color: var(--mut); transition: color .4s, box-shadow .4s; }
:where(.page-references) .lw .lt i { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: var(--soft); color: var(--p); font-style: normal; font-size: 14px; font-weight: 800; }
:where(.page-references) .lw .lt:hover { color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--a); }
@media (max-width: 1180px) {
  :where(.page-references) .ri2, :where(.page-references) .cmap { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  :where(.page-references) .rg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-references) .pbar { flex-direction: column; align-items: stretch; }
  :where(.page-references) .tabs { width: 100%; }
}
@media (max-width: 760px) {
  :where(.page-references) .bigc b { font-size: 100px; }
  :where(.page-references) .kpi div { padding: 24px 20px; }
  :where(.page-references) .kpi b { font-size: 36px; }
  :where(.page-references) .tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: 26px; }
  :where(.page-references) .tabs .ind { display: none; }
  :where(.page-references) .tabs button.on { background: var(--p); }
  :where(.page-references) .pbar .hint { display: none; }
  :where(.page-references) .rg { grid-template-columns: minmax(0, 1fr); }
  :where(.page-references) .mpan { padding: 24px 16px; }
}

:where(.page-partners) .co1 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 90px; align-items: start; }
:where(.page-partners) .co1 .t2 { margin: 18px 0 26px; }
:where(.page-partners) .co1 .tx { margin: 0 0 18px; max-width: 520px; }
:where(.page-partners) .vc { display: grid; gap: 16px; }
:where(.page-partners) .vc > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 22px; align-items: start; padding: 28px; border-radius: 22px; box-shadow: inset 0 0 0 1px var(--line); transition: box-shadow .5s, transform .6s var(--e1), background .5s; }
:where(.page-partners) .vc > div:hover { background: var(--soft); box-shadow: inset 0 0 0 1px transparent; transform: translateX(8px); }
:where(.page-partners) .vc .ci { width: 64px; height: 64px; border-radius: 18px; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); }
:where(.page-partners) .vc b { display: block; font-size: 19px; font-weight: 800; }
:where(.page-partners) .vc b + span { display: block; margin-top: 6px; font-size: 15px; line-height: 1.7; color: var(--mut); }
:where(.page-partners) .pw { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 50px; align-items: start; }
:where(.page-partners) .vt { position: sticky; top: 120px; padding: 10px; border-radius: 24px; background: #fff; box-shadow: 0 20px 50px rgba(0, 66, 92,.08); }
:where(.page-partners) .vt .tr { position: relative; }
:where(.page-partners) .vt .ind { position: absolute; left: 0; top: 0; width: 100%; height: 60px; border-radius: 16px; background: var(--p); transform: translateY(calc(var(--i) * 60px)); transition: transform .7s var(--e1); }
:where(.page-partners) .vt button { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; width: 100%; height: 60px; padding: 0 20px; border-radius: 16px; font-size: 15px; font-weight: 700; color: var(--mut); text-align: left; transition: color .5s; }
:where(.page-partners) .vt button i { font-style: normal; min-width: 28px; height: 24px; padding: 0 8px; border-radius: 12px; display: grid; place-items: center; background: var(--soft); font-size: 12px; transition: background .5s, color .5s; }
:where(.page-partners) .vt button:hover { color: var(--ink); }
:where(.page-partners) .vt button.on { color: #fff; }
:where(.page-partners) .vt button.on i { background: rgba(255,255,255,.14); color: #fff; }
:where(.page-partners) .vt p { margin: 14px 10px 6px; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13.5px; line-height: 1.6; color: var(--mut); }
:where(.page-partners) .lgg { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
:where(.page-partners) .lgt { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; height: 168px; border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; transition: box-shadow .5s, transform .6s var(--e1); }
:where(.page-partners) .lgt:hover { box-shadow: 0 24px 50px rgba(0, 66, 92,.12); transform: translateY(-6px); }
:where(.page-partners) .lgt .mk { display: flex; align-items: center; gap: 10px; color: #9AA8B8; filter: grayscale(1); opacity: .75; transition: color .5s, filter .5s, opacity .5s; }
:where(.page-partners) .lgt:hover .mk { color: var(--p); filter: none; opacity: 1; }
:where(.page-partners) .lgt .sh { width: 30px; height: 30px; background: currentColor; }
:where(.page-partners) .lgt:hover .sh { background: var(--a); }
:where(.page-partners) .lgt .s1 { border-radius: 50%; }
:where(.page-partners) .lgt .s2 { border-radius: 6px; transform: rotate(45deg) scale(.82); }
:where(.page-partners) .lgt .s3 { clip-path: polygon(50% 0, 100% 100%, 0 100%); }
:where(.page-partners) .lgt .s4 { border-radius: 50%; background: transparent !important; box-shadow: inset 0 0 0 7px currentColor; }
:where(.page-partners) .lgt:hover .s4 { color: var(--a); }
:where(.page-partners) .lgt .mk b { font-size: 21px; font-weight: 800; letter-spacing: .08em; }
:where(.page-partners) .lgt small { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mut); }
:where(.page-partners) .lgt .ov { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; justify-content: center; gap: 8px; height: 44px; background: var(--p); color: #fff; font-size: 12.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; transform: translateY(100%); transition: transform .5s var(--e1); }
:where(.page-partners) .lgt:hover .ov { transform: none; }
:where(.page-partners) .lgt.fa { animation: cIn-partners .8s var(--e1) both; animation-delay: var(--d); }
:where(.page-partners) .lgt.fb { animation: cIn2-partners .8s var(--e1) both; animation-delay: var(--d); }
@keyframes cIn-partners { from { opacity: 0; transform: scale(.9) translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes cIn2-partners { from { opacity: 0; transform: scale(.9) translateY(30px); } to { opacity: 1; transform: none; } }
:where(.page-partners) .lgh { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; margin-bottom: 26px; }
:where(.page-partners) .lgh h3 { margin: 0; font-size: 30px; font-weight: 800; letter-spacing: -.015em; }
:where(.page-partners) .lgh span { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--mut); }
:where(.page-partners) .lgh span b { color: var(--a); }
:where(.page-partners) .bp { position: relative; overflow: hidden; background: var(--p); color: #fff; }
:where(.page-partners) .bp::before { content: ""; position: absolute; right: -200px; top: -200px; width: 700px; height: 700px; border-radius: 50%; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 0 0 90px rgba(255,255,255,.02), 0 0 0 180px rgba(255,255,255,.015); animation: spin 60s linear infinite; }
:where(.page-partners) .bp .w { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 90px; align-items: center; }
:where(.page-partners) .bp .t2 { margin: 18px 0 22px; }
:where(.page-partners) .bp .tx { margin: 0 0 36px; }
:where(.page-partners) .bs { counter-reset: s; }
:where(.page-partners) .bs div { position: relative; display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 22px; padding: 28px 0; border-bottom: 1px solid rgba(255,255,255,.12); }
:where(.page-partners) .bs div:first-child { border-top: 1px solid rgba(255,255,255,.12); }
:where(.page-partners) .bs div::before { counter-increment: s; content: "0" counter(s); font-size: 40px; line-height: 1; font-weight: 800; color: transparent; -webkit-text-stroke: 1.2px var(--a2); }
:where(.page-partners) .bs b { display: block; font-size: 21px; font-weight: 800; }
:where(.page-partners) .bs b + span { display: block; margin-top: 8px; font-size: 15px; line-height: 1.7; color: #9BB3BC; }
@media (max-width: 1180px) {
  :where(.page-partners) .co1, :where(.page-partners) .pw, :where(.page-partners) .bp .w { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  :where(.page-partners) .vt { position: static; }
  :where(.page-partners) .lgg { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  :where(.page-partners) .lgg { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :where(.page-partners) .lgt { height: 130px; }
  :where(.page-partners) .lgt .mk b { font-size: 16px; }
  :where(.page-partners) .lgh { flex-direction: column; align-items: flex-start; }
  :where(.page-partners) .vc > div { grid-template-columns: minmax(0, 1fr); }
}

:where(.page-contact) .cg { display: grid; grid-template-columns: 460px minmax(0, 1fr); gap: 60px; align-items: stretch; }
:where(.page-contact) .cg .t2 { margin: 18px 0 34px; }
:where(.page-contact) .ci2 { display: grid; gap: 14px; }
:where(.page-contact) .cc { position: relative; display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 22px 22px; border-radius: 20px; box-shadow: inset 0 0 0 1px var(--line); transition: background .5s, box-shadow .5s, transform .6s var(--e1); }
:where(.page-contact) .cc:hover { background: var(--soft); box-shadow: inset 0 0 0 1px transparent; transform: translateX(6px); }
:where(.page-contact) .cc .ic2 { width: 58px; height: 58px; border-radius: 16px; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); transition: background .5s, color .5s; }
:where(.page-contact) .cc:hover .ic2 { background: var(--a); color: #fff; }
:where(.page-contact) .cc small { display: block; font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--mut); }
:where(.page-contact) .cc b, :where(.page-contact) .cc a.v { display: block; margin-top: 4px; font-size: 17px; font-weight: 700; line-height: 1.45; }
:where(.page-contact) .cc .cp { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: var(--mut); box-shadow: inset 0 0 0 1.5px var(--line); transition: background .4s, color .4s, box-shadow .4s; }
:where(.page-contact) .cc .cp:hover { background: var(--p); color: #fff; box-shadow: none; }
:where(.page-contact) .cc .cp.ok { background: #1F9D6B; color: #fff; box-shadow: none; }
:where(.page-contact) .cc .hr { display: block; margin-top: 4px; font-size: 14.5px; line-height: 1.6; color: var(--mut); }
:where(.page-contact) .cc .hr b { display: inline; margin: 0; font-size: 14.5px; color: var(--ink); }
:where(.page-contact) .mapw { position: relative; min-height: 640px; border-radius: 30px; overflow: hidden; background: #E9EEF4; }
:where(.page-contact) .mapw svg.mp { position: absolute; inset: 0; width: 100%; height: 100%; filter: blur(7px) saturate(.6); transform: scale(1.06); transition: filter 1.1s var(--e1), transform 1.4s var(--e1); }
:where(.page-contact) .mapw.on svg.mp { filter: none; transform: none; }
:where(.page-contact) .mp .rd { stroke-dasharray: 1400; stroke-dashoffset: 0; }
:where(.page-contact) .mapw.on .mp .rd { animation: rdIn 2.2s var(--e2) both; }
:where(.page-contact) .mapw.on .mp .rd.b { animation-delay: .25s; }
:where(.page-contact) .mapw.on .mp .rd.c { animation-delay: .45s; }
@keyframes rdIn { from { stroke-dashoffset: 1400; } to { stroke-dashoffset: 0; } }
:where(.page-contact) .mpin { position: absolute; left: 53%; top: 47%; opacity: 0; transition: opacity .3s; }
:where(.page-contact) .mapw.on .mpin { opacity: 1; }
:where(.page-contact) .mpin .mk2 { position: absolute; left: -22px; top: -58px; width: 44px; height: 58px; color: var(--a); filter: drop-shadow(0 10px 14px rgba(0, 66, 92,.3)); }
:where(.page-contact) .mapw.on .mpin .mk2 { animation: drop .9s cubic-bezier(.3,1.6,.5,1) 1.1s both; }
@keyframes drop { from { transform: translateY(-80px); opacity: 0; } to { transform: none; opacity: 1; } }
:where(.page-contact) .mpin .pr { position: absolute; left: -26px; top: -14px; width: 52px; height: 28px; border-radius: 50%; border: 2px solid var(--a); animation: pulse 2.4s ease-out 2s infinite; opacity: 0; }
:where(.page-contact) .mpin .lc { position: absolute; left: 34px; top: -118px; width: 250px; padding: 18px 20px; border-radius: 18px; background: #fff; box-shadow: 0 24px 50px rgba(0, 66, 92,.18); }
:where(.page-contact) .mapw.on .mpin .lc { animation: fu .8s var(--e1) 1.7s both; }
:where(.page-contact) .mpin .lc b { display: block; font-size: 16px; font-weight: 800; }
:where(.page-contact) .mpin .lc span { display: block; margin-top: 4px; font-size: 13.5px; line-height: 1.5; color: var(--mut); }
:where(.page-contact) .mtool { position: absolute; z-index: 3; right: 20px; top: 20px; display: grid; gap: 8px; opacity: 0; transition: opacity .6s .8s; }
:where(.page-contact) .mapw.on .mtool { opacity: 1; }
:where(.page-contact) .mtool span { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: #fff; color: var(--p); box-shadow: 0 8px 20px rgba(0, 66, 92,.12); }
:where(.page-contact) .mdir { position: absolute; z-index: 3; left: 24px; bottom: 24px; opacity: 0; transform: translateY(20px); transition: opacity .6s 1.9s, transform .8s var(--e1) 1.9s; }
:where(.page-contact) .mapw.on .mdir { opacity: 1; transform: none; }
:where(.page-contact) .mcon { position: absolute; z-index: 4; inset: 0; display: grid; place-items: center; padding: 30px; background: color-mix(in srgb, var(--p) 55%, transparent); transition: opacity .7s, visibility .7s; }
:where(.page-contact) .mapw.on .mcon { opacity: 0; visibility: hidden; }
:where(.page-contact) .mcon .bx { max-width: 420px; padding: 40px; border-radius: 26px; background: #fff; text-align: center; box-shadow: 0 30px 70px rgba(0, 66, 92,.25); }
:where(.page-contact) .mcon .ci3 { width: 72px; height: 72px; margin: 0 auto 22px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); }
:where(.page-contact) .mcon h3 { margin: 0 0 10px; font-size: 22px; font-weight: 800; }
:where(.page-contact) .mcon p { margin: 0 0 26px; font-size: 15px; line-height: 1.7; color: var(--mut); }
:where(.page-contact) .mcon .lk { display: block; margin-top: 16px; font-size: 13px; font-weight: 700; color: var(--a); }
:where(.page-contact) .fw { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 80px; align-items: start; }
:where(.page-contact) .fw .t2 { margin: 18px 0 22px; }
:where(.page-contact) .fw .tx { margin: 0; }
:where(.page-contact) .fsum { margin-top: 40px; display: grid; gap: 12px; }
:where(.page-contact) .fsum div { display: flex; align-items: center; gap: 14px; font-size: 15px; font-weight: 600; }
:where(.page-contact) .fsum .ic { color: var(--a); }
:where(.page-contact) .frm { position: relative; padding: 46px; border-radius: 30px; background: #fff; box-shadow: 0 30px 70px rgba(0, 66, 92,.1); }
:where(.page-contact) .kv { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: 70px; align-items: start; }
:where(.page-contact) .kv .t2 { margin: 18px 0 20px; }
:where(.page-contact) .kv .tx { margin: 0; }
:where(.page-contact) .ka .it { border-bottom: 1px solid var(--line); }
:where(.page-contact) .ka .it:first-child { border-top: 1px solid var(--line); }
:where(.page-contact) .ka button { display: grid; grid-template-columns: 56px minmax(0, 1fr) 44px; gap: 14px; align-items: center; width: 100%; padding: 26px 0; text-align: left; }
:where(.page-contact) .ka button .n { font-size: 15px; font-weight: 800; letter-spacing: .1em; color: var(--a); }
:where(.page-contact) .ka button b { font-size: 20px; font-weight: 700; transition: color .4s; }
:where(.page-contact) .ka button i { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line); transition: transform .5s var(--e1), background .4s, color .4s, box-shadow .4s; }
:where(.page-contact) .ka .it.on button b { color: var(--a); }
:where(.page-contact) .ka .it.on button i { transform: rotate(45deg); background: var(--a); color: #fff; box-shadow: none; }
:where(.page-contact) .ka .bd2 { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--e1); }
:where(.page-contact) .ka .it.on .bd2 { grid-template-rows: 1fr; }
:where(.page-contact) .ka .bd2 > div { overflow: hidden; }
:where(.page-contact) .ka .bd2 p { margin: 0; padding: 0 60px 28px 70px; font-size: 16px; line-height: 1.8; color: var(--mut); }
@media (max-width: 1180px) {
  :where(.page-contact) .cg, :where(.page-contact) .fw, :where(.page-contact) .kv { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  :where(.page-contact) .mapw { min-height: 520px; }
}
@media (max-width: 760px) {
  :where(.page-contact) .cc { grid-template-columns: 48px minmax(0, 1fr); padding: 18px; }
  :where(.page-contact) .cc .ic2 { width: 48px; height: 48px; }
  :where(.page-contact) .cc .cp { display: none; }
  :where(.page-contact) .mapw { min-height: 440px; }
  :where(.page-contact) .mpin .lc { left: -125px; top: -170px; width: 230px; }
  :where(.page-contact) .frm { padding: 24px; }
  :where(.page-contact) .ka button { grid-template-columns: 40px minmax(0, 1fr) 40px; }
  :where(.page-contact) .ka button b { font-size: 17px; }
  :where(.page-contact) .ka .bd2 p { padding: 0 0 24px; }
}

[hidden] { display: none !important; }
.is-hidden { display: none !important; }
.pt .lgo { color: #fff; }
.skip { position: fixed; left: 16px; top: -80px; z-index: 500; padding: 12px 20px; border-radius: 12px; background: var(--a); color: #fff; font-family: var(--ff); font-size: 14px; font-weight: 700; transition: top .3s; }
.skip:focus { top: 16px; }
.app :focus-visible { outline: 2px solid var(--a); outline-offset: 3px; }
html.ml { overflow: hidden; }

.lgo-img { display: flex; align-items: center; }
.lgo-img img { width: auto; max-width: 240px; object-fit: contain; }
.lgo-img .ld { display: none; }
.hd.sol .lgo-img .li { display: none; }
.hd.sol .lgo-img .ld { display: block; }

.hcta { display: inline-flex; align-items: center; gap: 9px; height: 46px; padding: 0 20px; border-radius: 30px; background: var(--a); color: #fff; font-size: 13px; font-weight: 800; letter-spacing: .06em; white-space: nowrap; transition: background .4s, color .4s, box-shadow .4s, transform .5s var(--e1); }
.hcta:hover { background: #fff; color: var(--p); }
.hcta.o { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .38); }
.hcta.o:hover { background: var(--a); color: #fff; box-shadow: inset 0 0 0 1.5px var(--a); }
.hd.sol .hcta:hover { background: var(--p); color: #fff; }
.hd.sol .hcta.o { box-shadow: inset 0 0 0 1.5px var(--line); }
.hd.sol .hcta.o:hover { background: var(--a); box-shadow: inset 0 0 0 1.5px var(--a); }
.hcta + .hcta { margin-right: 4px; }
.mm-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; opacity: 0; transform: translateY(30px); transition: opacity .5s, transform .7s var(--e1); }
.mm.op .mm-cta { opacity: 1; transform: none; transition-delay: .48s; }
.mm-cta .btn:not(.wh) { background: var(--a); }
.mm-cta .btn:not(.wh)::before { background: #fff; }
.mm-cta .btn:not(.wh):hover { color: var(--p); }
.mm .mm-ct { display: grid; gap: 4px; margin-top: 34px; }
.mm .mm-ct a { display: inline-flex; align-items: center; gap: 12px; padding: 6px 0; border: 0; font-size: 16px; font-weight: 600; letter-spacing: 0; color: #B3C7CE; }
.mm .mm-ct a .ic { color: var(--a2); }
.mm.op a:nth-child(8) { transition-delay: .42s; }
.mm.op .mm-ct a { transition-delay: .54s; }

@media (max-width: 1380px) {
  .nl { padding: 0 10px; letter-spacing: .06em; }
  .ni:hover .nl::after, .nl.on::after { left: 10px; right: 10px; }
  .hcta { padding: 0 16px; }
}
@media (max-width: 1310px) {
  .hcta.o { width: 46px; padding: 0; justify-content: center; }
  .hcta.o span { display: none; }
}
@media (max-width: 1440px) {
  .nl { padding: 0 14px; }
  .ni:hover .nl::after, .nl.on::after { left: 14px; right: 14px; }
  .lb span { display: none; }
  .lb { padding: 0 6px; }
}
@media (max-width: 1320px) {
  .nl { padding: 0 10px; letter-spacing: .06em; }
  .ni:hover .nl::after, .nl.on::after { left: 10px; right: 10px; }
}
@media (max-width: 1240px) {
  .hcta { width: 46px; padding: 0; justify-content: center; }
  .hcta span { display: none; }
}
@media (max-width: 760px) {
  .ha .hcta { display: none; }
  .mm a { font-size: 28px; }
}

.bn.lt { height: 460px; }
.bn.lt::after { content: ""; position: absolute; inset: 0; z-index: 1; background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 24px 24px; -webkit-mask-image: linear-gradient(180deg, transparent, #000 40%, transparent); mask-image: linear-gradient(180deg, transparent, #000 40%, transparent); }
.bn.lt .t1 { font-size: 64px; }

.mdl { position: fixed; inset: 0; z-index: 140; display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; padding: 24px; font-family: var(--ff); color: var(--ink); }
.mdl-bg { position: absolute; inset: 0; background: color-mix(in srgb, var(--p) 72%, transparent); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); animation: fi .4s ease both; }
.mdl-box { position: relative; width: min(760px, 100%); max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); overflow-y: auto; overscroll-behavior: contain; padding: 50px; border-radius: 30px; background: #fff; box-shadow: 0 40px 90px rgba(0, 30, 45, .35); animation: mdIn .7s var(--e1) both; }
.mdl-lg .mdl-box { width: min(900px, 100%); }
.mdl.out .mdl-bg { animation: fadeOut .3s ease forwards; }
.mdl.out .mdl-box { animation: mdOut .35s ease forwards; }
@keyframes mdIn { from { opacity: 0; transform: translateY(50px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes mdOut { to { opacity: 0; transform: translateY(30px) scale(.98); } }
.mdl-x { position: absolute; top: 20px; right: 20px; z-index: 2; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--soft); color: var(--p); transition: transform .5s var(--e1), background .3s, color .3s; }
.mdl-x:hover { transform: rotate(90deg); background: var(--a); color: #fff; }
.mdl-head { margin-bottom: 32px; padding-right: 50px; }
.mdl-head .t3 { margin: 14px 0 10px; font-size: 34px; }
.mdl-head .tx { font-size: 15.5px; line-height: 1.7; }
.mdl .done { padding: 30px 0 10px; }

.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-alert { margin: 18px 0 0; padding: 13px 18px; border-radius: 14px; background: #FDEDED; color: #B42318; font-size: 14px; font-weight: 600; line-height: 1.5; }
.fl input:-webkit-autofill + label { transform: translateY(-12px) scale(.76); color: var(--a); font-weight: 700; }
.fl.er select { border-color: #E5484D; }
.fl select option { color: #1a1a1a; }
.cons .bx2 { cursor: pointer; }
.cons input.sr:checked + .bx2 { background: var(--a); box-shadow: none; color: #fff; }
.cons input.sr:focus-visible + .bx2 { outline: 2px solid var(--a); outline-offset: 3px; }
.cons label { cursor: pointer; }
.cons a.lnk { color: var(--a); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.cons .em { display: none; margin-top: 6px; font-size: 13px; font-weight: 600; color: #E5484D; }
.cons.er .em { display: block; animation: fu .4s var(--e1) both; }
.btn:disabled { opacity: .7; cursor: default; }

.dz { position: relative; }
.dz-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.dz-area { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 32px 24px; border-radius: 22px; border: 2px dashed var(--line); background: var(--bg); text-align: center; cursor: pointer; transition: border-color .3s, background .3s; }
.dz-area:hover, .dz.over .dz-area { border-color: var(--a); background: color-mix(in srgb, var(--a) 5%, #fff); }
.dz-input:focus-visible + .dz-area { outline: 2px solid var(--a); outline-offset: 3px; }
.dz-ic { width: 64px; height: 64px; margin-bottom: 6px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); transition: transform .6s var(--e1); }
.dz-area:hover .dz-ic, .dz.over .dz-ic { transform: translateY(-4px); }
.dz-area b { font-size: 17px; font-weight: 800; color: var(--ink); }
.dz-area span { max-width: 520px; font-size: 14px; line-height: 1.6; color: var(--mut); }
.dz.er .dz-area { border-color: #E5484D; }
.dz .em { display: none; margin-top: 8px; font-size: 13px; font-weight: 600; color: #E5484D; }
.dz.er .em { display: block; animation: fu .4s var(--e1) both; }
.dz-list { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.dz-list:empty { display: none; }
.dz-list li { position: relative; display: grid; grid-template-columns: 46px minmax(0, 1fr) 40px; gap: 14px; align-items: center; padding: 10px 10px 10px 12px; border-radius: 16px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; animation: fu .5s var(--e1) both; }
.dz-x { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, var(--p) 8%, #fff); color: var(--p); font-size: 10.5px; font-weight: 800; letter-spacing: .06em; }
.dz-n { min-width: 0; }
.dz-n b { display: block; overflow: hidden; font-size: 14.5px; font-weight: 700; white-space: nowrap; text-overflow: ellipsis; }
.dz-n small { display: block; margin-top: 2px; font-size: 12.5px; color: var(--mut); }
.dz-rm { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: var(--mut); transition: background .3s, color .3s; }
.dz-rm:hover { background: #FDEDED; color: #E5484D; }
.dz-p { position: absolute; left: 0; bottom: 0; height: 3px; width: 100%; background: var(--a); transform: scaleX(var(--pc, 0)); transform-origin: left; transition: transform .25s linear; }
.dz-list li.ok .dz-p { background: #1F9D6B; }
.dz-list li.bad { box-shadow: inset 0 0 0 1.5px #E5484D; }
.dz-list li.bad small { color: #E5484D; }
.dz-meta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 12px; font-size: 13px; color: var(--mut); }
.dz-size b { color: var(--ink); }
.dz-cap { position: relative; width: 160px; height: 5px; border-radius: 3px; background: var(--soft); overflow: hidden; }
.dz-cap i { position: absolute; left: 0; top: 0; bottom: 0; width: var(--w, 0%); max-width: 100%; border-radius: 3px; background: var(--a); transition: width .5s var(--e1), background .3s; }
.dz.cap-full .dz-cap i { background: #E5484D; }
.dz-note { display: flex; align-items: center; gap: 8px; margin: 12px 0 0; font-size: 13px; line-height: 1.5; color: var(--mut); }
.dz-note .ic { color: #1F9D6B; }
.up-prog { display: grid; gap: 8px; margin-top: 20px; }
.up-t { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.up-bar { height: 6px; border-radius: 3px; background: var(--soft); overflow: hidden; }
.up-bar i { display: block; height: 100%; width: var(--pc, 0%); border-radius: 3px; background: var(--a); transition: width .3s linear; }

.fres { position: fixed; z-index: 120; left: 50%; top: 120px; display: flex; align-items: flex-start; gap: 14px; width: min(520px, calc(100% - 32px)); padding: 18px 18px 18px 20px; border-radius: 20px; background: #fff; color: var(--ink); font-family: var(--ff); font-size: 14.5px; line-height: 1.6; box-shadow: 0 30px 70px rgba(0, 66, 92, .22); transform: translateX(-50%); animation: tIn .6s var(--e1) both; }
.fres .ci { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: #E5484D; color: #fff; }
.fres.ok .ci { background: #1F9D6B; }
.fres b { display: block; font-size: 16px; }
.fres > span:nth-child(2) { flex: 1; color: var(--mut); }
.fres button { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--soft); }
.toast span { white-space: nowrap; }

.rich { font-size: 16.5px; line-height: 1.85; color: var(--mut); }
.rich > :first-child { margin-top: 0; }
.rich > :last-child { margin-bottom: 0; }
.rich p { margin: 0 0 18px; }
.rich h2, .rich h3, .rich h4 { margin: 36px 0 14px; color: var(--ink); font-weight: 800; line-height: 1.25; letter-spacing: -.01em; }
.rich h2 { font-size: 28px; }
.rich h3 { font-size: 22px; }
.rich h4 { font-size: 18px; }
.rich a { color: var(--a); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.rich strong, .rich b { color: var(--ink); }
.rich ul, .rich ol { margin: 0 0 20px; padding-left: 22px; }
.rich ul { padding-left: 0; list-style: none; }
.rich ul li { position: relative; padding-left: 26px; margin-bottom: 8px; }
.rich ul li::before { content: ""; position: absolute; left: 4px; top: .72em; width: 8px; height: 8px; border-radius: 50%; background: var(--a); }
.rich ol li { margin-bottom: 8px; padding-left: 4px; }
.rich blockquote { margin: 26px 0; padding: 6px 0 6px 24px; border-left: 3px solid var(--a); font-size: 19px; font-weight: 600; color: var(--ink); }
.rich img { height: auto; margin: 26px 0; border-radius: 20px; }
.rich table { width: 100%; margin: 0 0 22px; border-collapse: collapse; font-size: 15px; }
.rich th, .rich td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }
.rich th { color: var(--ink); font-weight: 800; }
.dk .rich { color: #B3C7CE; }

.sd { display: grid; grid-template-columns: minmax(0, 1fr) 390px; gap: 90px; align-items: start; }
.sd-main .t2 { margin: 18px 0 28px; }
.sd-main .lead { margin-bottom: 30px; }
.sd-h { margin: 50px 0 22px; font-size: 22px; font-weight: 800; letter-spacing: -.01em; }
.sd-feat { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.sd-feat li { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: 18px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); font-size: 15.5px; font-weight: 600; line-height: 1.45; transition: transform .6s var(--e1), box-shadow .5s; }
.sd-feat li:hover { transform: translateX(6px); box-shadow: 0 18px 40px rgba(0, 66, 92, .1); }
.sd-feat li > span { flex: none; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); }
.sd-side { position: sticky; top: 120px; display: grid; gap: 16px; }
.sd-card { position: relative; display: grid; gap: 12px; padding: 38px 34px 30px; border-radius: 30px; background: var(--p); color: #fff; overflow: hidden; isolation: isolate; }
.sd-card::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .08) 1px, transparent 1px); background-size: 22px 22px; }
.sd-card::after { content: ""; position: absolute; right: -120px; top: -120px; z-index: -1; width: 300px; height: 300px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 0 0 50px rgba(255, 255, 255, .02); }
.sd-ic { width: 76px; height: 76px; border-radius: 22px; display: grid; place-items: center; background: var(--a); color: #fff; }
.sd-card h3 { margin: 14px 0 0; font-size: 25px; font-weight: 800; line-height: 1.2; }
.sd-card p { margin: 0 0 12px; font-size: 15px; line-height: 1.7; color: #B3C7CE; }
.sd-card .mag { display: flex; }
.sd-card .btn { width: 100%; justify-content: center; }
.sd-card .btn.o { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3); }
.sd-tel { display: flex; align-items: center; gap: 14px; margin-top: 10px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .12); font-size: 19px; font-weight: 800; }
.sd-tel .ic { width: 46px; height: 46px; padding: 13px; border-radius: 50%; background: rgba(255, 255, 255, .1); color: var(--a2); }
.sd-tel small { display: block; margin-bottom: 2px; font-size: 11.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--a2); }
.sd-cat { display: flex; align-items: center; gap: 16px; padding: 14px 20px 14px 14px; border-radius: 24px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); transition: transform .6s var(--e1), box-shadow .5s; }
.sd-cat:hover { transform: translateY(-4px); box-shadow: 0 24px 50px rgba(0, 66, 92, .12); }
.sd-cat img { flex: none; width: 76px; height: 76px; border-radius: 16px; object-fit: cover; }
.sd-cat > span { flex: 1; min-width: 0; }
.sd-cat small { display: block; font-size: 11.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--mut); }
.sd-cat b { display: block; margin-top: 4px; font-size: 16.5px; font-weight: 800; }
.sd-cat > .ic { color: var(--a); }
.sd-gal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 90px; }
.sd-gal button { position: relative; aspect-ratio: 4 / 3; border-radius: 24px; overflow: hidden; background: var(--soft); }
.sd-gal img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--e1); }
.sd-gal button:hover img { transform: scale(1.08); }
.sd-gal .zm { position: absolute; left: 50%; top: 50%; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--p); opacity: 0; transform: scale(.6); transition: opacity .4s, transform .6s var(--e1); }
.sd-gal button:hover .zm { opacity: 1; transform: none; }
@media (min-width: 1181px) {
  .page-service .sg[style] { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
}

.lgl { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 90px; align-items: start; }
.lgl-side { position: sticky; top: 120px; display: grid; gap: 16px; }
.lgl-toc { padding: 26px 26px 18px; border-radius: 24px; background: #fff; box-shadow: 0 20px 50px rgba(0, 66, 92, .08); }
.lgl-toc small, .lgl-card small { display: block; margin-bottom: 12px; font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--a); }
.lgl-toc ol { margin: 0; padding: 0; list-style: none; }
.lgl-toc a { display: flex; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); font-size: 14.5px; font-weight: 600; line-height: 1.45; color: var(--mut); transition: color .3s, padding .4s var(--e1); }
.lgl-toc li:first-child a { border-top: 0; }
.lgl-toc a span { flex: none; font-size: 12px; font-weight: 800; letter-spacing: .1em; color: var(--a); padding-top: 2px; }
.lgl-toc a:hover { color: var(--ink); padding-left: 6px; }
.lgl-card { position: relative; display: grid; gap: 10px; padding: 28px; border-radius: 24px; background: var(--p); color: #fff; overflow: hidden; }
.lgl-card small { color: var(--a2); margin-bottom: 0; }
.lgl-card b { font-size: 17px; font-weight: 800; line-height: 1.4; }
.lgl-card > span, .lgl-card > a { display: flex; gap: 10px; font-size: 14px; line-height: 1.6; color: #B3C7CE; }
.lgl-card > span .ic, .lgl-card > a .ic { margin-top: 4px; color: var(--a2); }
.lgl-card > a:hover { color: #fff; }
.lgl-card p { margin: 0 0 8px; font-size: 14.5px; line-height: 1.7; color: #B3C7CE; }
.lgl-card .btn { justify-content: center; }
.lgl-ic { width: 60px; height: 60px; border-radius: 18px; display: grid; place-items: center; background: var(--a); color: #fff; margin-bottom: 6px; }
.lgl-link { display: inline-flex; align-items: center; gap: 8px; padding: 0 6px; font-size: 14px; font-weight: 800; color: var(--a); }
.lgl-body .lead { margin-bottom: 30px; }
.lgl-sec { padding: 36px 0; border-top: 1px solid var(--line); scroll-margin-top: 120px; }
.lgl-sec h2 { display: flex; align-items: baseline; gap: 16px; margin: 0 0 14px; font-size: 24px; font-weight: 800; letter-spacing: -.01em; line-height: 1.3; }
.lgl-sec h2 span { flex: none; font-size: 14px; letter-spacing: .12em; color: var(--a); }
.lgl-sec p { margin: 0; padding-left: 40px; font-size: 16px; line-height: 1.85; color: var(--mut); }
.lgl-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-top: 20px; padding: 30px 34px; border-radius: 26px; background: var(--soft); }
.lgl-cta p { margin: 0; max-width: 520px; font-size: 15.5px; font-weight: 600; line-height: 1.6; }

.sbx { display: flex; align-items: center; gap: 12px; width: min(640px, 100%); height: 66px; margin: 34px auto 0; padding: 0 8px 0 24px; border-radius: 40px; background: rgba(255, 255, 255, .12); box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .25); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); text-align: left; animation: fu 1s var(--e1) .6s both; }
.sbx:focus-within { box-shadow: inset 0 0 0 1.5px var(--a); }
.sbx input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; color: #fff; font: inherit; font-size: 18px; font-weight: 600; outline: none; }
.sbx input::placeholder { color: rgba(255, 255, 255, .55); }
.sbx input::-webkit-search-cancel-button { filter: invert(1); }
.sbx button { flex: none; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; background: var(--a); color: #fff; transition: transform .5s var(--e1); }
.sbx button:hover { transform: translateX(3px); }
.srx { max-width: 980px; margin: 0 auto; }
.sr-sum { margin: 0 0 26px; font-size: 15px; font-weight: 700; color: var(--mut); }
.sr-list { display: grid; gap: 12px; }
.sr-it { display: grid; grid-template-columns: 116px minmax(0, 1fr) 56px; gap: 26px; align-items: center; padding: 14px 22px 14px 14px; border-radius: 24px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); transition: transform .6s var(--e1), box-shadow .5s; }
.sr-it:hover { transform: translateX(8px); box-shadow: 0 24px 50px rgba(0, 66, 92, .1); }
.sr-it .th { height: 86px; border-radius: 16px; display: grid; place-items: center; background: var(--soft); color: var(--a); overflow: hidden; }
.sr-it .th img { width: 100%; height: 100%; object-fit: cover; }
.sr-it small { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--a); }
.sr-it b { display: block; margin: 6px 0 4px; font-size: 19px; font-weight: 800; line-height: 1.3; }
.sr-it .bd > span { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 14.5px; line-height: 1.6; color: var(--mut); }
.sr-it .ar { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line); transition: background .4s, color .4s, box-shadow .4s, transform .5s var(--e1); }
.sr-it:hover .ar { background: var(--a); color: #fff; box-shadow: none; transform: rotate(45deg); }
.sr-empty { padding: 20px 0 10px; text-align: center; }
.sr-empty .ci { width: 88px; height: 88px; margin: 0 auto 24px; border-radius: 50%; display: grid; place-items: center; background: color-mix(in srgb, var(--a) 12%, #fff); color: var(--a); }
.sr-empty .t3 { margin-bottom: 10px; }
.sr-sug { margin-top: 56px; text-align: center; }
.sr-sug small { font-size: 12px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--mut); }
.sr-sug div { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 18px; }
.sr-sug a { padding: 11px 20px; border-radius: 30px; box-shadow: inset 0 0 0 1.5px var(--line); font-size: 14px; font-weight: 700; transition: background .3s, color .3s, box-shadow .3s; }
.sr-sug a:hover { background: var(--p); color: #fff; box-shadow: none; }

.nf { position: relative; display: flex; align-items: center; min-height: 100vh; padding: 170px 0 110px; background: var(--p); color: #fff; text-align: center; overflow: hidden; isolation: isolate; }
.nf::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 24px 24px; }
.nf::after { content: ""; position: absolute; left: 50%; top: 50%; z-index: -1; width: 900px; height: 900px; margin: -450px 0 0 -450px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .06); box-shadow: 0 0 0 110px rgba(255, 255, 255, .015), 0 0 0 220px rgba(255, 255, 255, .01); animation: spin 80s linear infinite; }
.nf .w { width: 100%; }
.nf-no { display: inline-flex; align-items: center; gap: 18px; font-size: clamp(120px, 20vw, 260px); font-weight: 800; line-height: .9; letter-spacing: -.04em; animation: fu 1s var(--e1) both; }
.nf-no span { color: transparent; -webkit-text-stroke: 2px rgba(255, 255, 255, .55); }
.nf-no i { width: .78em; height: .78em; border-radius: 50%; display: grid; place-items: center; background: var(--a); color: #fff; }
.nf-no i .ic { width: 40%; height: 40%; stroke-width: 1.4; }
.nf .t2 { margin: 30px 0 16px; }
.nf .tx { max-width: 520px; margin: 0 auto; color: #B3C7CE; animation: fu 1s var(--e1) .4s both; }
.nf-bt { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 38px; animation: fu 1s var(--e1) .5s both; }
.nf .btn.o { color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .3); }
.nf-ln { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 54px; animation: fu 1s var(--e1) .6s both; }
.nf-ln a { display: inline-flex; align-items: center; gap: 10px; padding: 12px 20px; border-radius: 30px; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); font-size: 14px; font-weight: 700; transition: background .3s, box-shadow .3s; }
.nf-ln a .ic { color: var(--a2); }
.nf-ln a:hover { background: var(--a); box-shadow: none; }
.nf-ln a:hover .ic { color: #fff; }

body.blank { font-family: var(--ff); color: var(--ink); -webkit-font-smoothing: antialiased; }
.mt-wrap { position: relative; display: grid; place-items: center; min-height: 100vh; padding: 60px 20px; background: var(--p); color: #fff; text-align: center; overflow: hidden; }
.mt-ring i { position: absolute; left: 50%; top: 50%; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .08); transform: translate(-50%, -50%); }
.mt-ring i:nth-child(1) { width: 560px; height: 560px; }
.mt-ring i:nth-child(2) { width: 820px; height: 820px; border-style: dashed; animation: mtSpin 90s linear infinite; }
.mt-ring i:nth-child(3) { width: 1100px; height: 1100px; }
@keyframes mtSpin { to { transform: translate(-50%, -50%) rotate(360deg); } }
.mt-in { position: relative; max-width: 620px; animation: fu 1s var(--e1) both; }
.mt-logo { display: flex; align-items: center; width: fit-content; margin: 0 auto 44px; }
.mt-logo .lgo-img img { max-height: 54px; }
.mt-logo svg { width: 52px; height: 52px; }
.mt-logo > div { margin-left: 12px; text-align: left; }
.mt-logo b { display: block; font-size: 24px; font-weight: 800; line-height: 1; }
.mt-logo small { display: block; margin-top: 5px; font-size: 9.5px; font-weight: 600; letter-spacing: .26em; opacity: .75; }
.mt-in .ey { color: var(--a2); }
.mt-in .t2 { margin: 20px 0 16px; }
.mt-in .tx { color: #B3C7CE; }
.mt-ct { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 36px; }
.mt-ct a { display: inline-flex; align-items: center; gap: 10px; padding: 13px 22px; border-radius: 30px; background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); font-size: 15px; font-weight: 700; transition: background .3s; }
.mt-ct a:hover { background: var(--a); }

.cert .seal.img { overflow: hidden; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.cert .seal.img img { width: 100%; height: 100%; object-fit: cover; }
.page-about .icg a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; aspect-ratio: 1; padding: 10px; border-radius: 20px; background: #fff; text-align: center; font-size: 12px; font-weight: 700; line-height: 1.3; color: var(--ink); transition: background .5s var(--e1), color .5s, transform .6s var(--e1); }
.page-about .icg a .ic { color: var(--a); transition: color .4s; }
.page-about .icg a:hover { background: var(--p); color: #fff; transform: translateY(-6px); }
.page-about .icg a:hover .ic { color: var(--a2); }
.page-about .pin .r, .page-references .pin .r { animation-delay: var(--pd, 0s); }
.page-references .rc .mg.lg { overflow: hidden; background: #fff; }
.page-references .lw .lt i.lg { overflow: hidden; background: #fff; }
.page-references .rc .mg img { width: 74%; height: 74%; object-fit: contain; }
.page-references .lw .lt i img { width: 80%; height: 80%; object-fit: contain; }
.page-partners .lgt .mk.im img { max-width: 68%; max-height: 56px; width: auto; object-fit: contain; }
.page-contact .lnk2 { display: inline-flex; align-items: center; gap: 8px; margin-top: 26px; font-size: 14px; font-weight: 800; color: var(--a); }
.page-contact .mapw iframe { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; border: 0; }
.page-contact .mapw.frame .mpin, .page-contact .mapw.frame .mtool { display: none; }
.page-projects .pg.l .pc.cta2 { grid-column: auto !important; }

@media (min-width: 761px) {
  :where(.page-projects, .page-references) .tabs[style] { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); width: min(100%, calc(var(--n) * 180px)); }
  :where(.page-projects, .page-references) .tabs[style] .ind { width: calc((100% - 12px) / var(--n)); }
  .page-home .hcols { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); }
}
@media (min-width: 1181px) {
  .page-categories .kth[style] { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
  .page-services .prc[style] { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
}
.page-project .gt[style] { grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }

@media (max-width: 1180px) {
  .sd, .lgl { grid-template-columns: minmax(0, 1fr); gap: 50px; }
  .sd-side, .lgl-side { position: static; }
  .sd-gal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .mdl { padding: 0; place-items: end center; }
  .mdl-box { max-height: 94vh; max-height: 94dvh; padding: 34px 20px 24px; border-radius: 26px 26px 0 0; }
  .mdl-head { margin-bottom: 24px; }
  .mdl-head .t3 { font-size: 26px; }
  .mdl-x { top: 14px; right: 14px; width: 42px; height: 42px; }
  .dz-area { padding: 24px 16px; }
  .dz-meta { flex-direction: column; align-items: flex-start; gap: 8px; }
  .bn.lt { height: 380px; }
  .bn.lt .t1 { font-size: 40px; }
  .sd-feat { grid-template-columns: minmax(0, 1fr); }
  .sd-gal { grid-template-columns: minmax(0, 1fr); margin-top: 60px; }
  .sd-card { padding: 30px 24px 24px; }
  .lgl-sec p { padding-left: 0; }
  .lgl-cta { flex-direction: column; align-items: flex-start; padding: 26px 22px; }
  .sbx { height: 58px; }
  .sbx input { font-size: 16px; }
  .sr-it { grid-template-columns: 76px minmax(0, 1fr); gap: 16px; padding: 12px; }
  .sr-it .th { height: 64px; }
  .sr-it .ar { display: none; }
  .sr-it b { font-size: 16.5px; }
  .nf-no { gap: 10px; }
  .fres { top: 90px; }
}

.sw { margin-right: 0; }
.sd-card .mag .btn { background: var(--a); }
.sd-card .mag .btn::before { background: #fff; }
.sd-card .mag .btn:hover { color: var(--p); }
.lgl-card > .lgl-ic { display: grid; color: #fff; }
.lgl-card > .lgl-ic .ic { margin: 0; color: #fff; }
