/* ============ HYDRAVA — design system ============ */
:root {
  --abyss: #030d15;
  --deep: #061b28;
  --panel: #082433;
  --line: #0f3247;
  --hydro: #2dd4bf;
  --aqua: #67e8f9;
  --ice: #e8f4f8;
  --mist: #9fc3d4;
  --alert: #ff5a1f;
  --ember: #ffb59a;
  --display: "Oswald", "Arial Narrow", sans-serif;
  --body: "Inter", system-ui, sans-serif;
  --mono: "IBM Plex Mono", monospace;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--abyss);
  color: var(--ice);
  font-family: var(--body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
::selection { background: var(--hydro); color: var(--abyss); }

.wrap { max-width: 1280px; margin: 0 auto; padding: 0 1.25rem; }
@media (min-width: 768px) { .wrap { padding: 0 2rem; } }

/* ---------- ticker ---------- */
.ticker {
  display: flex; align-items: stretch;
  background: var(--alert); color: var(--abyss);
  font-family: var(--mono); font-size: 11px;
  position: relative; z-index: 60;
}
.ticker-label {
  display: flex; align-items: center; gap: .5rem; flex-shrink: 0;
  background: var(--abyss); color: var(--alert);
  padding: .45rem .75rem; font-weight: 600; letter-spacing: .22em;
  white-space: nowrap; font-size: 10px;
}
.ticker-label .dot { width: 8px; height: 8px; border-radius: 50%; background: var(--alert); animation: blink 1.6s ease-in-out infinite; }
.ticker-track { flex: 1; overflow: hidden; display: flex; align-items: center; }
.ticker-inner { display: flex; width: max-content; white-space: nowrap; animation: marquee 38s linear infinite; }
.ticker-inner span { margin: 0 1.5rem; letter-spacing: .05em; font-weight: 500; }
.ticker-inner span i { margin-left: 3rem; opacity: .5; font-style: normal; }
.ticker-src { display: none; align-items: center; flex-shrink: 0; background: rgba(0,0,0,.15); padding: 0 1rem; font-size: 10px; letter-spacing: .05em; }
@media (min-width: 900px) { .ticker-src { display: flex; } }

/* ---------- header ---------- */
header.site {
  position: sticky; top: 0; z-index: 50;
  background: rgba(3,13,21,.9); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.nav-bar { display: flex; align-items: center; justify-content: space-between; padding: .8rem 0; }
.brand { display: flex; align-items: center; gap: .75rem; }
.brand img { height: 40px; width: auto; }
.brand-txt { line-height: 1; }
.brand-txt b { font-family: var(--display); font-size: 20px; letter-spacing: .18em; font-weight: 700; display: block; }
.brand-txt small { font-family: var(--mono); font-size: 8.5px; letter-spacing: .3em; color: var(--hydro); }
nav.main { display: none; gap: 1.8rem; }
nav.main a {
  font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase;
  color: var(--mist); transition: color .2s;
}
nav.main a:hover, nav.main a.active { color: var(--hydro); }
.nav-right { display: none; align-items: center; gap: 1rem; }
.lang-btn {
  position: relative; border: 1px solid var(--line); padding: .45rem .8rem;
  font-family: var(--mono); font-size: 11px; letter-spacing: .2em; color: var(--mist);
  transition: color .2s;
}
.lang-btn:hover { color: var(--hydro); }
.btn {
  display: inline-block; background: var(--hydro); color: var(--abyss);
  font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: .18em;
  text-transform: uppercase; padding: .75rem 1.4rem; border: 0; cursor: pointer;
  transition: background .2s, letter-spacing .25s;
}
.btn:hover { background: var(--aqua); }
.btn-alert { background: var(--alert); }
.btn-alert:hover { background: var(--ember); }
.btn-ghost {
  background: transparent; border: 1px solid rgba(232,244,248,.3); color: var(--ice);
}
.btn-ghost:hover { background: transparent; border-color: var(--hydro); color: var(--hydro); }
.burger {
  display: flex; flex-direction: column; justify-content: center; gap: 6px;
  width: 40px; height: 40px; background: none; border: 1px solid var(--line); cursor: pointer;
  align-items: center;
}
.burger span { display: block; width: 20px; height: 2px; background: var(--ice); transition: .25s; }
.burger.open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.burger.open span:nth-child(2) { opacity: 0; }
.burger.open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.mobile-menu { display: none; border-top: 1px solid var(--line); background: var(--abyss); padding: .5rem 1.25rem 1.5rem; }
.mobile-menu.show { display: block; }
.mobile-menu a.mnav {
  display: block; border-bottom: 1px solid rgba(15,50,71,.5); padding: .9rem 0;
  font-family: var(--display); font-size: 24px; text-transform: uppercase; letter-spacing: .02em;
}
@media (min-width: 1080px) {
  nav.main, .nav-right { display: flex; }
  .burger, .mobile-menu { display: none !important; }
}

/* ---------- shared bits ---------- */
.kicker {
  display: flex; align-items: center; gap: .75rem;
  font-family: var(--mono); font-size: 11px; letter-spacing: .3em; text-transform: uppercase;
  color: var(--hydro);
}
.kicker.alert { color: var(--alert); }
.kicker .idx { opacity: .6; }
.kicker .dash { width: 40px; height: 1px; background: var(--hydro); display: inline-block; }
.kicker.alert .dash { background: var(--alert); }
.kicker.center { justify-content: center; }

h1.display, h2.display {
  font-family: var(--display); font-weight: 700; text-transform: uppercase;
  line-height: .95; letter-spacing: -0.01em; margin-top: 1.25rem;
  overflow-wrap: break-word; max-width: 100%;
}
h1.display { font-size: clamp(2.4rem, 7.5vw, 6.5rem); }
h2.display { font-size: clamp(1.8rem, 4.5vw, 3.6rem); }
.text-outline { -webkit-text-stroke: 1.5px rgba(103,232,249,.35); color: transparent; }
.lead { margin-top: 1.5rem; max-width: 42rem; color: var(--mist); line-height: 1.65; font-size: 1.05rem; }

section { padding: 5.5rem 0; }
@media (min-width: 768px) { section { padding: 7rem 0; } }
.bg-deep { background: var(--deep); }
.bg-blueprint {
  background-image:
    linear-gradient(to right, rgba(103,232,249,.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(103,232,249,.05) 1px, transparent 1px);
  background-size: 56px 56px;
}
.border-t { border-top: 1px solid var(--line); }

.arrow-link {
  display: inline-flex; align-items: center; gap: .75rem;
  font-family: var(--mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase;
  color: var(--hydro);
}
.arrow-link.alert { color: var(--alert); }
.arrow-link .txt { border-bottom: 1px solid currentColor; padding-bottom: .25rem; }
.arrow-link svg { transition: transform .25s; }
.arrow-link:hover svg { transform: translateX(6px); }

.brackets { position: relative; }
.brackets::before, .brackets::after {
  content: ""; position: absolute; width: 14px; height: 14px; pointer-events: none; z-index: 2;
}
.brackets::before { top: -1px; left: -1px; border-top: 2px solid var(--hydro); border-left: 2px solid var(--hydro); }
.brackets::after { bottom: -1px; right: -1px; border-bottom: 2px solid var(--hydro); border-right: 2px solid var(--hydro); }
.brackets.alert::before { border-color: var(--alert); }
.brackets.alert::after { border-color: var(--alert); }

/* ---------- hero ---------- */
.hero {
  position: relative; min-height: 92vh; display: flex; align-items: flex-end; overflow: hidden;
}
.hero-bg { position: absolute; inset: 0; }
.hero-bg img.main { width: 100%; height: 100%; object-fit: cover; }
.hero-bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, var(--abyss) 4%, rgba(3,13,21,.55) 45%, rgba(3,13,21,.25));
}
.hero-bg::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(to right, rgba(3,13,21,.8), transparent 65%);
}
.hero-mist {
  position: absolute; bottom: -40px; left: 0; width: 130%; height: 66%; object-fit: cover;
  opacity: .25; mix-blend-mode: screen; z-index: 1;
  animation: mist-drift 11s ease-in-out infinite alternate;
}
.hero-inner { position: relative; z-index: 5; width: 100%; padding-bottom: 3.5rem; padding-top: 7rem; }
.hero h1 { font-size: clamp(3rem, 11vw, 7.5rem); }
.hero h1 .c-hydro { color: var(--hydro); }
.hero-sub { margin-top: 1.5rem; max-width: 36rem; color: var(--mist); line-height: 1.65; }
.hero-ctas { margin-top: 2.25rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.hero-stats {
  margin-top: 3.25rem; display: grid; border: 1px solid var(--line);
  background: rgba(3,13,21,.7); backdrop-filter: blur(10px);
}
.hero-stats > div { padding: 1.4rem 1.6rem; border-top: 1px solid var(--line); }
.hero-stats > div:first-child { border-top: 0; }
.hero-stats .num { font-family: var(--display); font-size: 2.2rem; font-weight: 600; }
.hero-stats .lbl { margin-top: .25rem; font-family: var(--mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--mist); }
@media (min-width: 640px) {
  .hero-stats { grid-template-columns: repeat(3, 1fr); }
  .hero-stats > div { border-top: 0; border-left: 1px solid var(--line); }
  .hero-stats > div:first-child { border-left: 0; }
}
.live-badge {
  margin-top: 1rem; display: flex; align-items: center; gap: .5rem;
  font-family: var(--mono); font-size: 10px; letter-spacing: .25em; color: var(--alert);
}
.live-badge .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--alert); animation: blink 1.6s ease-in-out infinite; }
.live-badge.hydro { color: var(--hydro); }
.live-badge.hydro .dot { background: var(--hydro); }

/* ---------- page hero ---------- */
.page-hero { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.page-hero .ph-bg { position: absolute; inset: 0; }
.page-hero .ph-bg img { width: 100%; height: 100%; object-fit: cover; opacity: .3; }
.page-hero .ph-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--abyss) 10%, rgba(3,13,21,.75) 55%, rgba(3,13,21,.4)); }
.page-hero-inner { position: relative; z-index: 2; padding: 5rem 1.25rem 4rem; }
@media (min-width: 768px) { .page-hero-inner { padding: 7rem 2rem 6rem; } }

/* ---------- stat cards ---------- */
.stat-grid { display: grid; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.stat-grid > * { background: var(--deep); }
@media (min-width: 640px) { .stat-grid.c2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .stat-grid.c4 { grid-template-columns: repeat(4, 1fr); } }
.stat-card { padding: 2rem; height: 100%; display: flex; flex-direction: column; justify-content: space-between; }
.stat-card .num { font-family: var(--display); font-size: 3.4rem; font-weight: 700; color: var(--alert); }
.stat-card .lbl { margin-top: 1.5rem; font-size: .9rem; font-weight: 500; }
.stat-card .note { margin-top: .25rem; font-family: var(--mono); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; color: var(--mist); }
.fact-row { display: flex; align-items: baseline; gap: 1.25rem; padding: 1.75rem; }
.fact-row .k { font-family: var(--display); font-size: 3rem; font-weight: 700; color: var(--alert); flex-shrink: 0; }
.fact-row .v { max-width: 17rem; font-size: .9rem; line-height: 1.4; color: var(--mist); }

/* ---------- feature rows ---------- */
.rows { border: 1px solid var(--line); background: var(--line); display: grid; gap: 1px; }
.rows > * { background: var(--abyss); }
.row-item { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.5rem; }
.row-item .n { font-family: var(--mono); font-size: 10px; color: var(--hydro); }
.row-item .dash { width: 24px; height: 1px; background: var(--line); flex-shrink: 0; }
.row-item .t { font-size: .9rem; }

/* ---------- two col ---------- */
.grid-2 { display: grid; gap: 3rem; }
@media (min-width: 1080px) { .grid-2 { grid-template-columns: 1fr 1fr; align-items: center; } }
.grid-2.start { align-items: start; }

/* ---------- solution cards ---------- */
.sol-grid { display: grid; gap: 1px; border: 1px solid var(--line); background: var(--line); margin-top: 3.5rem; }
.sol-grid > * { background: var(--deep); }
@media (min-width: 640px) { .sol-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .sol-grid.c5 { grid-template-columns: repeat(5, 1fr); } }
.sol-card { display: flex; flex-direction: column; justify-content: space-between; padding: 1.75rem; height: 100%; transition: background .25s; }
.sol-card:hover { background: var(--panel); }
.sol-card .n { font-family: var(--mono); font-size: 10px; letter-spacing: .3em; color: var(--hydro); }
.sol-card h3 { font-family: var(--display); font-size: 1.5rem; font-weight: 600; text-transform: uppercase; line-height: 1.1; margin-top: 1rem; transition: color .2s; }
.sol-card:hover h3 { color: var(--hydro); }
.sol-card p { margin-top: 1rem; font-size: .85rem; line-height: 1.6; color: var(--mist); }

/* ---------- install cards ---------- */
.inst-grid { display: grid; gap: 1.5rem; margin-top: 3.5rem; }
@media (min-width: 900px) { .inst-grid { grid-template-columns: repeat(3, 1fr); } }
.inst-card { border: 1px solid var(--line); background: rgba(3,13,21,.8); padding: 1.75rem; }
.inst-card .top { display: flex; justify-content: space-between; gap: .5rem; font-family: var(--mono); font-size: 10px; letter-spacing: .22em; color: var(--hydro); }
.inst-card .status { display: flex; align-items: center; gap: .4rem; }
.inst-card .status .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--hydro); animation: blink 1.6s ease-in-out infinite; }
.inst-card h3 { font-family: var(--display); font-size: 2.2rem; font-weight: 700; text-transform: uppercase; margin-top: 1.25rem; }
.inst-card p { margin-top: .75rem; font-size: .85rem; line-height: 1.6; color: var(--mist); }

.inst-photo { border: 1px solid var(--line); background: var(--abyss); height: 100%; }
.inst-photo .ph { position: relative; height: 210px; overflow: hidden; }
.inst-photo .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s; }
.inst-photo:hover .ph img { transform: scale(1.05); }
.inst-photo .ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, var(--abyss), transparent 60%); }
.inst-photo .ph .live { position: absolute; bottom: .75rem; left: .75rem; z-index: 2; display: flex; gap: .4rem; align-items: center; font-family: var(--mono); font-size: 10px; letter-spacing: .2em; color: var(--hydro); }
.inst-photo .ph .live .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--hydro); animation: blink 1.6s ease-in-out infinite; }
.inst-photo .body { padding: 1.5rem; }
.inst-photo h3 { font-family: var(--display); font-size: 1.8rem; font-weight: 700; text-transform: uppercase; }
.inst-photo .reg { margin-top: .25rem; font-family: var(--mono); font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--mist); }

/* ---------- table ---------- */
table.cmp { width: 100%; min-width: 560px; border: 1px solid var(--line); border-collapse: collapse; text-align: left; }
table.cmp th, table.cmp td { padding: 1.25rem; border-bottom: 1px solid rgba(15,50,71,.6); }
table.cmp thead th { background: var(--panel); font-family: var(--mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--mist); font-weight: 400; }
table.cmp thead th:last-child { color: var(--hydro); }
table.cmp td:first-child { font-size: .9rem; font-weight: 500; }
table.cmp td:nth-child(2) { font-size: .9rem; color: rgba(159,195,212,.7); text-decoration: line-through; text-decoration-color: rgba(255,90,31,.5); }
table.cmp td:last-child { font-size: .9rem; font-weight: 500; color: var(--hydro); background: rgba(45,212,191,.05); }
.tbl-scroll { overflow-x: auto; margin-top: 3rem; }

/* ---------- tabs (solutions) ---------- */
.tabs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
@media (min-width: 640px) { .tabs { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1080px) { .tabs { grid-template-columns: repeat(5, 1fr); } }
.tab-btn {
  background: var(--deep); color: var(--mist); border: 0; cursor: pointer;
  padding: 1.25rem 1rem; font-family: var(--display); font-size: 1rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .03em; transition: .2s;
}
.tab-btn:hover { background: var(--panel); color: var(--ice); }
.tab-btn.active { background: var(--hydro); color: var(--abyss); }
.tab-panel { display: none; margin-top: 3rem; }
.tab-panel.show { display: grid; gap: 2.5rem; animation: fadeup .45s ease; }
@media (min-width: 1080px) { .tab-panel.show { grid-template-columns: 1.2fr 1fr; } }
.tab-fear { font-family: var(--mono); font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--alert); }
.roi-box {
  margin-top: 2rem; display: inline-block; border: 1px solid rgba(45,212,191,.4);
  background: rgba(45,212,191,.1); padding: 1rem 1.5rem;
  font-family: var(--display); font-size: 1.2rem; font-weight: 600; text-transform: uppercase; color: var(--hydro);
}

/* ---------- accordion (guide) ---------- */
.acc { border: 1px solid var(--line); background: var(--abyss); transition: border-color .25s; }
.acc.open { border-color: rgba(45,212,191,.5); background: rgba(8,36,51,.6); }
.acc-head {
  width: 100%; display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem;
  background: none; border: 0; color: inherit; cursor: pointer; text-align: left; padding: 1.75rem;
}
@media (min-width: 768px) { .acc-head { padding: 2.25rem; } }
.acc-meta { display: flex; flex-wrap: wrap; gap: 1rem; font-family: var(--mono); font-size: 10px; letter-spacing: .25em; color: var(--hydro); }
.acc-meta .mins { color: rgba(159,195,212,.6); }
.acc-head h3 { margin-top: .75rem; font-family: var(--display); font-size: 1.5rem; font-weight: 600; text-transform: uppercase; line-height: 1.1; }
@media (min-width: 768px) { .acc-head h3 { font-size: 1.9rem; } }
.acc-head .ex { margin-top: .75rem; max-width: 42rem; font-size: .9rem; line-height: 1.6; color: var(--mist); }
.acc-icon {
  flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--line); color: var(--hydro); font-family: var(--display); font-size: 20px; transition: .3s;
}
.acc.open .acc-icon { border-color: var(--hydro); background: var(--hydro); color: var(--abyss); transform: rotate(45deg); }
.acc-body { max-height: 0; overflow: hidden; transition: max-height .5s ease; }
.acc-body-inner { border-top: 1px solid var(--line); padding: 2rem 1.75rem; }
@media (min-width: 768px) { .acc-body-inner { padding: 2rem 2.25rem; } }
.acc-body p { max-width: 48rem; line-height: 1.7; color: var(--mist); margin-bottom: 1.25rem; }
.acc-body p:first-child { color: var(--ice); }

/* ---------- forms ---------- */
form.quote { border: 1px solid var(--line); background: var(--abyss); padding: 1.75rem; }
@media (min-width: 768px) { form.quote { padding: 2.5rem; } }
.f-grid { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .f-grid { grid-template-columns: 1fr 1fr; } .f-grid .full { grid-column: 1 / -1; } }
label.f { display: block; margin-bottom: .5rem; font-family: var(--mono); font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--mist); }
input.f, select.f, textarea.f {
  width: 100%; border: 1px solid var(--line); background: var(--abyss); color: var(--ice);
  padding: .85rem 1rem; font-size: .9rem; font-family: var(--body); outline: none; transition: border-color .2s;
}
input.f:focus, select.f:focus, textarea.f:focus { border-color: var(--hydro); }
input.f::placeholder, textarea.f::placeholder { color: rgba(159,195,212,.4); }
.form-err {
  display: none; margin-top: 1.25rem; border: 1px solid rgba(255,90,31,.5); background: rgba(255,90,31,.1);
  padding: .75rem 1rem; font-family: var(--mono); font-size: 12px; letter-spacing: .05em; color: var(--alert);
}
.form-err.show { display: block; }
.success-box { border: 1px solid rgba(45,212,191,.5); background: rgba(8,36,51,.6); padding: 3rem 2rem; text-align: center; }
.success-box .check {
  width: 64px; height: 64px; margin: 0 auto; display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--hydro); color: var(--hydro); font-size: 28px;
}
.info-card { border: 1px solid var(--line); background: var(--abyss); padding: 2rem; }
.info-card + .info-card { margin-top: 1.5rem; }
.info-card .k { font-family: var(--mono); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--hydro); }
.info-row { margin-top: 1.25rem; }
.info-row .lbl { font-family: var(--mono); font-size: 10px; letter-spacing: .15em; color: var(--mist); }
.info-row .val { margin-top: .25rem; font-family: var(--display); font-size: 1.25rem; }
.info-row .val a:hover { color: var(--hydro); }

/* ---------- footer ---------- */
footer.site { border-top: 1px solid var(--line); background: var(--deep); }
.footer-grid { display: grid; gap: 2.5rem; padding: 3.5rem 0; }
@media (min-width: 768px) { .footer-grid { grid-template-columns: 1.4fr 1fr 1fr; } }
.footer-grid img.logo { height: 64px; width: auto; }
.footer-tag { margin-top: 1rem; max-width: 20rem; font-size: .9rem; line-height: 1.6; color: var(--mist); }
.footer-live { margin-top: 1.5rem; display: flex; align-items: center; gap: .5rem; font-family: var(--mono); font-size: 10px; letter-spacing: .25em; color: var(--hydro); }
.footer-live .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--hydro); animation: blink 1.6s ease-in-out infinite; }
.footer-h { font-family: var(--mono); font-size: 10px; letter-spacing: .3em; text-transform: uppercase; color: var(--hydro); }
.footer-links { margin-top: 1rem; display: grid; grid-template-columns: 1fr 1fr; gap: .6rem 1.5rem; }
.footer-links a { font-size: .9rem; color: var(--mist); }
.footer-links a:hover { color: var(--hydro); }
.footer-contact { margin-top: 1rem; font-size: .9rem; color: var(--mist); line-height: 1.8; }
.footer-legal { border-top: 1px solid var(--line); }
.footer-legal .wrap { display: flex; flex-direction: column; gap: .5rem; padding-top: 1.25rem; padding-bottom: 1.25rem; font-family: var(--mono); font-size: 10px; letter-spacing: .05em; color: rgba(159,195,212,.6); }
@media (min-width: 768px) { .footer-legal .wrap { flex-direction: row; justify-content: space-between; } }

/* ---------- animations ---------- */
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: .25; } }
@keyframes mist-drift { 0% { transform: translateX(-8%) translateY(0); opacity: .5; } 50% { opacity: .85; } 100% { transform: translateX(8%) translateY(-3%); opacity: .5; } }
@keyframes spray-flow { to { stroke-dashoffset: -28; } }
@keyframes radar { 0% { transform: scale(.6); opacity: .9; } 100% { transform: scale(3.2); opacity: 0; } }
@keyframes fadeup { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: translateY(0); } }
.animate-spray { animation: spray-flow 1.1s linear infinite; }
.animate-blink { animation: blink 1.6s ease-in-out infinite; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s ease, transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.in { opacity: 1; transform: translateY(0); }

/* ---------- misc ---------- */
.mt-2 { margin-top: 2rem; } .mt-3 { margin-top: 3rem; } .mt-4 { margin-top: 3.5rem; }
.center { text-align: center; }
.section-after { margin-top: 2.5rem; }
.overflow-h { overflow: hidden; position: relative; }
.img-cover { width: 100%; height: 100%; object-fit: cover; }


/* ---------- gallery ---------- */
.gallery-grid { columns: 2; column-gap: 1rem; }
@media (min-width: 768px) { .gallery-grid { columns: 3; } }
@media (min-width: 1080px) { .gallery-grid { columns: 4; } }
.g-item { position: relative; margin-bottom: 1rem; break-inside: avoid; overflow: hidden; border: 1px solid var(--line); cursor: zoom-in; }
.g-item img { width: 100%; transition: transform .6s; display: block; }
.g-item:hover img { transform: scale(1.06); }
.g-item .cap {
  position: absolute; inset: auto 0 0 0; padding: 1.6rem .9rem .7rem;
  background: linear-gradient(to top, rgba(3,13,21,.9), transparent);
  font-family: var(--mono); font-size: 9.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--hydro);
  opacity: 0; transition: opacity .3s;
}
.g-item:hover .cap { opacity: 1; }
.lightbox {
  position: fixed; inset: 0; z-index: 100; background: rgba(3,13,21,.94);
  display: none; align-items: center; justify-content: center; padding: 2rem; cursor: zoom-out;
}
.lightbox.show { display: flex; }
.lightbox img { max-width: 92vw; max-height: 88vh; border: 1px solid var(--line); }
.lightbox .lb-cap { position: absolute; bottom: 2rem; left: 0; right: 0; text-align: center; font-family: var(--mono); font-size: 11px; letter-spacing: .25em; color: var(--hydro); }
.lightbox .lb-close { position: absolute; top: 1.5rem; right: 2rem; color: var(--ice); font-family: var(--display); font-size: 2rem; cursor: pointer; }

/* ---------- trust ---------- */
.trust-grid { display: grid; gap: 1px; border: 1px solid var(--line); background: var(--line); margin-top: 3rem; }
.trust-grid > * { background: var(--deep); }
@media (min-width: 640px) { .trust-grid { grid-template-columns: repeat(2,1fr); } .trust-grid.c2 { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1080px) { .trust-grid { grid-template-columns: repeat(3,1fr); } .trust-grid.c2 { grid-template-columns: repeat(2,1fr); } .trust-grid.c4 { grid-template-columns: repeat(4,1fr); } }
.trust-card { padding: 2rem; }
.trust-card .big { font-family: var(--display); font-size: 2.8rem; font-weight: 700; color: var(--hydro); }
.trust-card .lbl { margin-top: .5rem; font-size: .85rem; color: var(--mist); line-height: 1.5; }
.why-list { display: grid; gap: 1px; border: 1px solid var(--line); background: var(--line); }
.why-list > * { background: var(--abyss); }
.why-item { display: flex; gap: 1.25rem; padding: 1.5rem; align-items: flex-start; }
.why-item .chk { flex-shrink: 0; width: 26px; height: 26px; border: 1.5px solid var(--hydro); color: var(--hydro); display: flex; align-items: center; justify-content: center; font-size: 13px; }
.why-item h4 { font-family: var(--display); font-size: 1.25rem; font-weight: 600; text-transform: uppercase; }
.why-item p { margin-top: .35rem; font-size: .85rem; color: var(--mist); line-height: 1.6; }

/* ---------- animal cards ---------- */
.animal-grid { display: grid; gap: 1px; border: 1px solid var(--line); background: var(--line); margin-top: 3rem; }
.animal-grid > * { background: var(--deep); transition: background .25s; }
@media (min-width: 640px) { .animal-grid { grid-template-columns: repeat(2,1fr); } }
@media (min-width: 1080px) { .animal-grid.c6 { grid-template-columns: repeat(3,1fr); } }
.animal-card { padding: 2rem; height: 100%; display: block; }
.animal-card:hover { background: var(--panel); }
.animal-card .icon { font-family: var(--display); font-size: 2rem; color: var(--hydro); letter-spacing: .1em; }
.animal-card h3 { font-family: var(--display); font-size: 1.5rem; font-weight: 600; text-transform: uppercase; margin-top: 1rem; }
.animal-card .diseases { margin-top: .75rem; font-family: var(--mono); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--ember); line-height: 1.7; }
.animal-card p { margin-top: .75rem; font-size: .85rem; color: var(--mist); line-height: 1.6; }

/* ---------- language switcher dropdown ---------- */
.lang-wrap { position: relative; }
.lang-menu {
  position: absolute; top: calc(100% + 8px); right: 0; background: var(--panel); border: 1px solid var(--line);
  display: none; min-width: 150px; z-index: 70;
}
.lang-menu.show { display: block; }
.lang-menu a { display: block; padding: .7rem 1rem; font-family: var(--mono); font-size: 11px; letter-spacing: .15em; color: var(--mist); }
.lang-menu a:hover { background: var(--line); color: var(--hydro); }
.lang-menu a.cur { color: var(--hydro); }

/* ---------- comparison table (guide) ---------- */
.cmp-table { width: 100%; border-collapse: collapse; border: 1px solid var(--line); font-size: .85rem; }
.cmp-table th {
  font-family: var(--display); font-size: .85rem; font-weight: 600; text-transform: uppercase;
  letter-spacing: .08em; text-align: left; color: var(--hydro);
  background: var(--panel); padding: 1rem 1.25rem; border: 1px solid var(--line);
}
.cmp-table td { padding: 1rem 1.25rem; border: 1px solid var(--line); color: var(--mist); line-height: 1.5; vertical-align: top; background: var(--abyss); }
.cmp-table td:first-child { color: var(--ice); font-weight: 500; }
.cmp-table tr:hover td { background: var(--deep); }
.cmp-table .td-yes { color: var(--hydro); font-family: var(--display); font-weight: 700; text-transform: uppercase; }
.cmp-table .td-no { color: var(--alert); font-family: var(--display); font-weight: 700; text-transform: uppercase; }
.cmp-table .td-warn { color: var(--ember); font-family: var(--display); font-weight: 600; text-transform: uppercase; }

/* ---------- video frame ---------- */
.video-frame {
  position: relative; border: 1px solid var(--line); overflow: hidden;
  aspect-ratio: 16/9; background: var(--deep); margin: 2rem 0;
}
.video-frame video { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-badge {
  position: absolute; top: 1rem; left: 1rem; display: inline-flex; align-items: center; gap: .5rem;
  background: rgba(3,13,21,.85); padding: .5rem 1rem;
  font-family: var(--mono); font-size: 10px; letter-spacing: .2em; color: var(--ember);
}

/* ---------- QC fixes: mobile responsiveness ---------- */
/* inline grid-template-columns overrides must collapse on small screens */
@media (max-width: 1079px) {
  .sol-grid[style*="repeat(3"],
  .stat-grid[style*="repeat(3"] { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 639px) {
  .sol-grid[style*="repeat(3"],
  .stat-grid[style*="repeat(3"],
  .stat-grid[style*="1fr 1fr"] { grid-template-columns: 1fr !important; }
  .gallery-grid { columns: 1; }
  .video-frame { margin: 1.5rem 0; }
  .acc-head { flex-wrap: wrap; }
}
/* language links inside mobile menu */
.mnav-langs { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem; }
.mnav-langs a {
  border: 1px solid var(--line); padding: .5rem .9rem;
  font-family: var(--mono); font-size: 10px; letter-spacing: .2em; color: var(--mist);
}
.mnav-langs a.cur { color: var(--hydro); border-color: var(--hydro); }

/* ---------- ROI calculator ---------- */
.calc { background: var(--panel); border: 1px solid var(--line); padding: 2rem; display: grid; gap: .4rem; }
.calc label.f { margin-top: .8rem; }
.calc-out {
  background: var(--abyss); border: 1px solid rgba(255,90,31,.35); padding: 2rem;
  display: flex; flex-direction: column; gap: 1rem;
}
.calc-big {
  font-family: var(--display); font-weight: 700; font-size: clamp(2.4rem, 5vw, 3.6rem);
  color: var(--alert); line-height: 1; margin: .25rem 0;
}
.calc-rows { border-top: 1px solid var(--line); }
.calc-row { display: flex; justify-content: space-between; gap: 1rem; padding: .75rem 0; border-bottom: 1px solid var(--line); font-size: .9rem; color: var(--mist); }
.calc-row strong { color: var(--ice); font-family: var(--mono); }
.calc-row.muted { font-size: .8rem; opacity: .75; border-bottom: 0; }
.calc-vs { font-size: .95rem; line-height: 1.6; color: var(--ice); border-left: 3px solid var(--hydro); padding-left: 1rem; }
.calc-vs strong { color: var(--hydro); }

/* ---------- crowded nav fix (7 items) ---------- */
@media (min-width: 1080px) and (max-width: 1560px) {
  nav.main { gap: 1.1rem; }
  nav.main a { font-size: 9.5px; letter-spacing: .1em; }
}
@media (min-width: 1080px) and (max-width: 1240px) {
  .brand-txt small { display: none; }
  .nav-right .btn { padding: .6rem .9rem; font-size: 10px; }
}
@media (min-width: 1561px) {
  nav.main { gap: 1.3rem; }
  nav.main a { font-size: 10px; letter-spacing: .12em; }
}
