
:root {
  --bg: #f7f9fc;
  --surface: rgba(255,255,255,.82);
  --surface-strong: #ffffff;
  --text: #0c1732;
  --muted: #64718b;
  --line: rgba(12,23,50,.10);
  --blue: #164fbe;
  --blue-deep: #0b2f88;
  --cyan: #1ca8b9;
  --green: #45d17a;
  --shadow: 0 18px 60px rgba(13, 42, 95, .12);
  --radius: 24px;
  --container: 1180px;
  --ease: cubic-bezier(.2,.8,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--text);
  background:
    radial-gradient(circle at 8% 4%, rgba(65,210,123,.10), transparent 28rem),
    radial-gradient(circle at 92% 2%, rgba(22,79,190,.12), transparent 32rem),
    var(--bg);
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea { font: inherit; }
::selection { background: rgba(22,79,190,.18); }

.container { width: min(var(--container), calc(100% - 40px)); margin-inline: auto; }
.section { padding: 104px 0; position: relative; }
.section--tight { padding: 76px 0; }
.section--dark {
  background: #07142f;
  color: #f7fbff;
  overflow: hidden;
}
.section--dark::before {
  content: "";
  position: absolute; inset: auto -10% -45% auto; width: 620px; aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(69,209,122,.16), transparent 68%);
  pointer-events: none;
}
.display {
  font-size: clamp(2.7rem, 6.4vw, 6rem);
  line-height: .98; letter-spacing: -.065em; margin: 0;
  font-weight: 760;
}
.h2 {
  font-size: clamp(2rem, 4.4vw, 4rem);
  line-height: 1.02; letter-spacing: -.055em;
  margin: 0 0 18px; max-width: 900px; font-weight: 740;
}
.h3 {
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  letter-spacing: -.03em; margin: 0 0 10px; line-height: 1.15;
}
.lead {
  font-size: clamp(1.05rem, 1.7vw, 1.28rem);
  color: var(--muted); max-width: 760px; margin: 0;
}
.section--dark .lead { color: #aab8d5; }
.gradient-text {
  background: linear-gradient(100deg, var(--blue-deep) 4%, var(--blue) 45%, var(--green) 95%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.muted { color: var(--muted); }

.nav-wrap {
  position: sticky; top: 0; z-index: 30;
  backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  background: rgba(247,249,252,.78); border-bottom: 1px solid rgba(12,23,50,.06);
}
.nav {
  height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 24px;
}
.brand img { height: 37px; width: auto; }
.nav-links { display: flex; align-items: center; gap: 28px; }
.nav-links a:not(.btn) {
  text-decoration: none; font-size: .92rem; color: #33415f; font-weight: 560;
  transition: color .2s ease;
}
.nav-links a:not(.btn):hover { color: var(--blue); }
.nav-toggle {
  display:none; border:0; background:transparent; width:44px; height:44px;
  border-radius:12px; align-items:center; justify-content:center;
}
.nav-toggle span, .nav-toggle::before, .nav-toggle::after {
  content:""; display:block; width:22px; height:2px; background:var(--text); border-radius:3px;
}
.nav-toggle span { margin:5px 0; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 20px; border-radius: 999px; border: 1px solid transparent;
  text-decoration: none; font-weight: 680; font-size: .94rem;
  transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s ease;
  cursor: pointer;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary {
  color: #fff;
  background: linear-gradient(100deg, #164fbe, #168aa8 68%, #38c878);
  box-shadow: 0 12px 26px rgba(22,79,190,.20);
}
.btn-primary:hover { box-shadow: 0 16px 34px rgba(22,79,190,.28); }
.btn-secondary { background: rgba(255,255,255,.72); border-color: var(--line); color: var(--text); }
.btn-ghost-dark { border-color: rgba(255,255,255,.18); color:#fff; background:rgba(255,255,255,.06); }

.hero {
  padding: 74px 0 88px; min-height: calc(100svh - 78px);
  display: flex; align-items: center; overflow: hidden;
}
.hero-grid {
  display:grid; grid-template-columns: 1.03fr .97fr; gap: 58px; align-items:center;
}
.hero-copy .lead { margin-top: 26px; max-width: 650px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top: 34px; }

.device-wrap { position:relative; min-height: 590px; display:grid; place-items:center; }
.orbit {
  position:absolute; width:570px; aspect-ratio:1; border-radius:50%;
  border:1px solid rgba(22,79,190,.10);
  animation: rotate 24s linear infinite;
}
.orbit::before, .orbit::after {
  content:""; position:absolute; width:9px; height:9px; border-radius:50%; background:var(--green);
  box-shadow:0 0 28px rgba(69,209,122,.9);
}
.orbit::before { top:7%; left:24%; }
.orbit::after { bottom:15%; right:11%; background:var(--cyan); }
@keyframes rotate { to { transform:rotate(360deg);} }

.dashboard {
  position:relative; width:min(100%, 520px); padding:22px;
  border-radius:34px;
  background: linear-gradient(150deg, rgba(255,255,255,.96), rgba(243,248,255,.82));
  border:1px solid rgba(255,255,255,.9);
  box-shadow: 0 32px 90px rgba(7,35,92,.18), inset 0 0 0 1px rgba(12,23,50,.03);
  backdrop-filter: blur(18px);
  transform: perspective(1200px) rotateY(-6deg) rotateX(2deg);
}
.dash-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.dash-brand { display:flex; align-items:center; gap:10px; font-weight:700; font-size:.9rem; }
.dash-brand img { width:34px; height:34px; object-fit:contain; }
.pill {
  display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border-radius:99px;
  font-size:.72rem; font-weight:700; background:#eefaf3; color:#12723b;
}
.pill::before { content:""; width:7px; height:7px; border-radius:50%; background:#35c973; }
.room {
  background:#0b1c3d; color:#fff; border-radius:22px; padding:20px; margin-bottom:14px;
  position:relative; overflow:hidden;
}
.room::after {
  content:""; position:absolute; width:170px; height:170px; border-radius:50%; right:-50px; top:-75px;
  background:radial-gradient(circle, rgba(69,209,122,.28), transparent 68%);
}
.room-top { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; position:relative; z-index:1; }
.room h3 { margin:0; font-size:1.05rem; }
.room p { margin:4px 0 0; color:#9db0d2; font-size:.78rem; }
.temp { font-size:2.25rem; font-weight:740; letter-spacing:-.06em; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:18px; position:relative; z-index:1; }
.stat { background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.08); border-radius:14px; padding:11px; }
.stat small { display:block; color:#91a4c7; font-size:.68rem; }
.stat strong { font-size:.9rem; }
.modules { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.module {
  min-height:128px; background:#fff; border:1px solid rgba(12,23,50,.06); border-radius:18px; padding:15px;
  box-shadow:0 8px 24px rgba(12,23,50,.05); position:relative; overflow:hidden;
}
.module .ico { width:36px; height:36px; display:grid; place-items:center; border-radius:11px; background:#eef4ff; color:var(--blue); }
.module .ico svg { width:18px; height:18px; }
.module h4 { margin:13px 0 2px; font-size:.85rem; }
.module p { margin:0; color:var(--muted); font-size:.72rem; }
.switch { position:absolute; right:14px; top:15px; width:30px; height:18px; border-radius:99px; background:#d9e1ef; }
.switch::after { content:""; position:absolute; width:12px; height:12px; border-radius:50%; background:#fff; top:3px; left:3px; transition:.3s var(--ease); box-shadow:0 1px 4px rgba(0,0,0,.16); }
.switch.on { background:#45d17a; }
.switch.on::after { transform:translateX(12px); }
.floating-card {
  position:absolute; background:#fff; border:1px solid rgba(12,23,50,.06); box-shadow:var(--shadow);
  border-radius:16px; padding:13px 15px; font-size:.78rem; font-weight:700;
  animation: float 5.5s ease-in-out infinite;
}
.floating-card.fc1 { left:-4%; top:16%; }
.floating-card.fc2 { right:-4%; bottom:13%; animation-delay:-2.2s; }
.floating-card span { display:block; font-size:.68rem; color:var(--muted); font-weight:500; margin-top:2px; }
@keyframes float { 50% { transform:translateY(-10px);} }

.proof {
  border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:rgba(255,255,255,.55);
}
.proof-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.proof-item { padding:27px 22px; border-right:1px solid var(--line); }
.proof-item:last-child { border-right:0; }
.proof-item strong { display:block; font-size:.94rem; }
.proof-item span { display:block; color:var(--muted); font-size:.8rem; margin-top:3px; }

.split { display:grid; grid-template-columns:.9fr 1.1fr; gap:72px; align-items:start; }
.sticky { position:sticky; top:112px; }
.problem-list { display:grid; gap:12px; }
.problem {
  background:var(--surface-strong); border:1px solid var(--line); border-radius:20px; padding:22px;
  display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start;
}
.problem .n { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:#edf3ff; color:var(--blue); font-weight:800; font-size:.78rem; }
.problem p { margin:5px 0 0; color:var(--muted); font-size:.92rem; }

.cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:42px; }
.card {
  background:rgba(255,255,255,.86); border:1px solid rgba(12,23,50,.08); border-radius:24px;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s ease;
}
.card:hover { transform:translateY(-5px); box-shadow:var(--shadow); border-color:rgba(22,79,190,.18); }
.card--solution { overflow:hidden; min-height:auto; }
.card-media {
  aspect-ratio: 16 / 9;
  overflow:hidden;
  background:#e9eef7;
}
.card-media img {
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .45s var(--ease);
}
.card--solution:hover .card-media img { transform:scale(1.04); }
.card-content { padding:22px 24px 26px; }
.iconbox {
  width:50px; height:50px; border-radius:15px; display:grid; place-items:center; color:var(--blue);
  background:linear-gradient(145deg,#eef4ff,#effdf4); margin-bottom:18px;
}
.iconbox svg { width:23px; height:23px; }
.card .h3 { margin:0 0 10px; }
.card p { color:var(--muted); font-size:.9rem; margin:0; }

.retrofit {
  background:linear-gradient(145deg,#0a1b3c,#0d2856); color:#fff; border-radius:36px; padding:48px;
  display:grid; grid-template-columns:1fr 1fr; gap:48px; position:relative; overflow:hidden;
}
.retrofit::before {
  content:""; position:absolute; inset:-40% auto auto -10%; width:520px; aspect-ratio:1; border-radius:50%;
  background:radial-gradient(circle,rgba(26,165,186,.26),transparent 65%);
}
.retrofit-copy, .retrofit-visual { position:relative; z-index:1; }
.retrofit p { color:#adbbd5; }
.retro-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:26px; }
.retro-chip {
  border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.05); border-radius:15px; padding:13px;
  font-size:.82rem; color:#d8e2f7;
}
.retro-visual { min-height:390px; display:grid; place-items:center; }
.floor {
  width:100%; max-width:430px; aspect-ratio:1.1; border-radius:26px;
  background:
    linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px),
    rgba(255,255,255,.035);
  background-size:28px 28px;
  border:1px solid rgba(255,255,255,.09); position:relative; overflow:hidden;
}
.zone { position:absolute; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.04); border-radius:15px; }
.z1 { left:7%; top:8%; width:43%; height:42%; }
.z2 { right:7%; top:8%; width:36%; height:24%; }
.z3 { right:7%; top:36%; width:36%; height:56%; }
.z4 { left:7%; bottom:8%; width:43%; height:36%; }
.node { position:absolute; width:14px; height:14px; border-radius:50%; background:#45d17a; box-shadow:0 0 0 7px rgba(69,209,122,.13),0 0 24px rgba(69,209,122,.6); }
.node::after { content:""; position:absolute; width:120px; height:1px; background:linear-gradient(90deg,rgba(69,209,122,.8),transparent); left:12px; top:6px; transform-origin:left; }
.node.n1 { left:23%; top:22%; }
.node.n2 { right:19%; top:18%; }
.node.n3 { right:23%; bottom:26%; }
.node.n4 { left:27%; bottom:21%; }
.node.n2::after { transform:rotate(135deg); }
.node.n3::after { transform:rotate(205deg); }
.node.n4::after { transform:rotate(-45deg); }

.local-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.feature-points { display:grid; gap:16px; margin-top:28px; }
.feature-point { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; }
.check {
  width:28px; height:28px; border-radius:9px; display:grid; place-items:center; background:rgba(69,209,122,.13); color:#67e69a; flex:none;
}
.feature-point strong { display:block; font-size:.92rem; }
.feature-point p { margin:2px 0 0; color:#aab8d5; font-size:.86rem; }

.control-ui {
  border:1px solid rgba(255,255,255,.10); background:rgba(255,255,255,.055); border-radius:28px; padding:22px;
  box-shadow:0 30px 80px rgba(0,0,0,.24);
}
.control-head { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid rgba(255,255,255,.08); padding-bottom:16px; }
.control-head strong { font-size:.92rem; }
.dotrow { display:flex; gap:6px; }
.dotrow i { width:7px; height:7px; background:#5a6a88; border-radius:50%; }
.control-content { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
.control-tile { border-radius:16px; padding:15px; background:rgba(255,255,255,.06); min-height:110px; border:1px solid rgba(255,255,255,.06); }
.control-tile small { display:block; color:#8fa3c7; font-size:.7rem; }
.control-tile strong { display:block; margin-top:22px; font-size:1.4rem; letter-spacing:-.05em; }
.bar { height:7px; border-radius:9px; background:rgba(255,255,255,.08); overflow:hidden; margin-top:9px; }
.bar span { display:block; height:100%; width:68%; border-radius:inherit; background:linear-gradient(90deg,#1ca8b9,#45d17a); }

.audiences { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:40px; }
.audience {
  background:#fff; border:1px solid var(--line); border-radius:28px; padding:32px; position:relative; overflow:hidden;
}
.audience::after { content:""; position:absolute; width:230px; height:230px; border-radius:50%; right:-100px; bottom:-120px; background:radial-gradient(circle,rgba(22,79,190,.12),transparent 70%); }
.audience ul { list-style:none; padding:0; margin:24px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:10px 18px; }
.audience li { color:var(--muted); font-size:.86rem; display:flex; gap:8px; align-items:flex-start; }
.audience li::before { content:"•"; color:var(--green); font-weight:900; }

.process { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:44px; }
.step { position:relative; padding:24px 18px; background:#fff; border:1px solid var(--line); border-radius:20px; min-height:220px; }
.step-num { font-size:.72rem; font-weight:800; color:var(--blue); letter-spacing:.1em; }
.step h3 { font-size:1.02rem; margin:26px 0 10px; }
.step p { margin:0; color:var(--muted); font-size:.82rem; }

.diff-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:40px; }
.diff {
  padding:20px 0; border-top:1px solid var(--line); display:grid; grid-template-columns:46px 1fr; gap:16px;
}
.diff .num { font-size:.72rem; color:var(--blue); font-weight:800; padding-top:3px; }
.diff p { margin:5px 0 0; color:var(--muted); font-size:.88rem; }

.faq { display:grid; gap:10px; margin-top:34px; }
.faq details {
  background:#fff; border:1px solid var(--line); border-radius:18px; padding:0 20px;
}
.faq summary {
  cursor:pointer; list-style:none; padding:20px 36px 20px 0; font-weight:700; position:relative;
}
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; position:absolute; right:0; top:16px; font-size:1.4rem; color:var(--blue); font-weight:400; transition:.2s ease; }
.faq details[open] summary::after { transform:rotate(45deg); }
.faq details p { margin:-2px 0 20px; color:var(--muted); max-width:850px; }

.cta-box {
  border-radius:34px; padding:58px;
  background:
    radial-gradient(circle at 80% 10%, rgba(69,209,122,.24), transparent 24rem),
    linear-gradient(125deg,#103b9c,#0c2a68 70%);
  color:#fff; display:grid; grid-template-columns:1fr auto; gap:30px; align-items:end; overflow:hidden;
}
.cta-box p { color:#c5d2eb; max-width:680px; margin:16px 0 0; }

footer { padding:34px 0 42px; border-top:1px solid var(--line); }
.footer-grid { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.footer-grid img { height:34px; width:auto; }
.footer-grid p { margin:0; color:var(--muted); font-size:.8rem; text-align:right; }

.wa-float {
  position:fixed; right:22px; bottom:22px; z-index:25; width:58px; height:58px; border-radius:50%;
  display:grid; place-items:center; color:#fff; text-decoration:none;
  background:linear-gradient(145deg,#20c66e,#129f55); box-shadow:0 16px 34px rgba(18,159,85,.28);
  transition:transform .25s var(--ease);
}
.wa-float:hover { transform:translateY(-3px) scale(1.03); }
.wa-float svg { width:27px; height:27px; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.is-visible { opacity:1; transform:none; }


/* Photographic section visuals */
.visual-photo {
  margin: 0;
  position: relative;
  overflow: hidden;
  border-radius: 30px;
  background: #e9eef8;
  box-shadow: 0 28px 80px rgba(7, 35, 92, .16);
  isolation: isolate;
}
.visual-photo img {
  width: 100%;
  height: 100%;
  min-height: 420px;
  object-fit: cover;
  display: block;
}
.visual-photo--hero {
  aspect-ratio: 1.08 / 1;
  border: 1px solid rgba(255,255,255,.9);
}
.visual-photo--hero img {
  object-position: 60% center;
}
.visual-photo--dark {
  box-shadow: 0 30px 80px rgba(0,0,0,.26);
  border: 1px solid rgba(255,255,255,.10);
}
.visual-photo--local {
  aspect-ratio: 1.18 / 1;
}
.visual-photo--local img {
  object-position: 52% center;
}
.hero-photo-wrap {
  min-height: 570px;
}
.hero-photo-wrap::before {
  content: "";
  position: absolute;
  inset: 7% -4% -2% 7%;
  border-radius: 38px;
  background: linear-gradient(145deg, rgba(22,79,190,.12), rgba(69,209,122,.09));
  filter: blur(18px);
  z-index: -1;
}
.retrofit-visual .visual-photo {
  width: 100%;
  aspect-ratio: 1.14 / 1;
}
.retrofit-visual .visual-photo img {
  min-height: 390px;
  object-position: 50% center;
}

@media (max-width: 980px) {
  .nav-links { display:none; position:absolute; left:20px; right:20px; top:70px; padding:18px; background:rgba(255,255,255,.96); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); flex-direction:column; align-items:stretch; gap:6px; }
  .nav-links.open { display:flex; }
  .nav-links a:not(.btn) { padding:10px 8px; }
  .nav-toggle { display:flex; flex-direction:column; }
  .hero { padding-top:54px; min-height:auto; }
  .hero-grid, .split, .local-grid, .retrofit { grid-template-columns:1fr; }
  .hero-grid { gap:36px; }
  .device-wrap { min-height:520px; }
  .dashboard { transform:none; }
  .cards { grid-template-columns:repeat(2,1fr); }
  .proof-grid { grid-template-columns:repeat(2,1fr); }
  .proof-item:nth-child(2) { border-right:0; }
  .proof-item:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .sticky { position:static; }
  .process { grid-template-columns:repeat(2,1fr); }
  .step:last-child { grid-column:span 2; }
  .cta-box { grid-template-columns:1fr; align-items:start; }
}

@media (max-width: 640px) {
  .container { width:min(100% - 28px, var(--container)); }
  .section { padding:76px 0; }
  .display { font-size:clamp(2.65rem, 14vw, 4.35rem); }
  .hero-actions .btn { width:100%; }
  .device-wrap { min-height:460px; }
  .orbit { width:430px; }
  .dashboard { padding:14px; border-radius:26px; }
  .floating-card { display:none; }
  .modules { gap:8px; }
  .module { padding:12px; min-height:116px; }
  .stats { gap:7px; }
  .proof-grid { grid-template-columns:1fr; }
  .proof-item { border-right:0; border-bottom:1px solid var(--line); }
  .proof-item:last-child { border-bottom:0; }
  .cards, .audiences, .diff-grid, .process { grid-template-columns:1fr; }
  .step:last-child { grid-column:auto; }
  .retrofit { padding:30px 22px; border-radius:28px; gap:30px; }
  .retro-grid { grid-template-columns:1fr; }
  .retro-visual { min-height:310px; }
  .audience { padding:25px; }
  .audience ul { grid-template-columns:1fr; }
  .control-content { grid-template-columns:1fr 1fr; }
  .cta-box { padding:36px 24px; border-radius:28px; }
  .cta-box .btn { width:100%; }
  .footer-grid { flex-direction:column; align-items:flex-start; }
  .footer-grid p { text-align:left; }
  .wa-float { width:54px; height:54px; right:14px; bottom:14px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1; transform:none; }
}

@media (max-width: 980px) {
  .hero-photo-wrap { min-height: 0; }
  .visual-photo--hero { aspect-ratio: 16 / 10; }
  .visual-photo img { min-height: 0; }
  .retrofit-visual .visual-photo { aspect-ratio: 16 / 10; }
}
@media (max-width: 640px) {
  .visual-photo { border-radius: 22px; }
  .visual-photo--hero, .visual-photo--local, .retrofit-visual .visual-photo { aspect-ratio: 4 / 3; }
}
