/* =========================================================
   DOQUIER — Ingeniería energética
   Diseño, sistema visual y responsive
   ========================================================= */

:root {
  --bg: #06100f;
  --bg-deep: #030807;
  --surface: #0b1715;
  --surface-2: #101d1b;
  --text: #f1f5ef;
  --muted: #96a39f;
  --muted-2: #65726e;
  --line: rgba(239, 247, 242, .12);
  --line-strong: rgba(239, 247, 242, .22);
  --accent: #b9ff4c;
  --accent-soft: rgba(185, 255, 76, .12);
  --electric: #67a8ff;
  --danger: #ff7e7e;
  --font-display: "Manrope", sans-serif;
  --font-body: "DM Sans", sans-serif;
  --max-width: 1440px;
  --header-height: 78px;
  --radius: 18px;
  --ease: cubic-bezier(.2, .75, .25, 1);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-height) + 24px);
  overflow-x: clip;
}

body {
  margin: 0;
  min-width: 320px;
  overflow-x: clip;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.menu-open,
body.cookie-open { overflow: hidden; }

::selection { background: var(--accent); color: #06100f; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img, svg, canvas { display: block; max-width: 100%; }
p, h1, h2, h3, blockquote { margin-top: 0; }
button, a { -webkit-tap-highlight-color: transparent; }

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.skip-link {
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 9999;
  padding: 10px 14px;
  transform: translateY(-160%);
  background: var(--accent);
  color: var(--bg);
  border-radius: 8px;
}
.skip-link:focus { transform: translateY(0); }

.site-noise {
  position: fixed;
  inset: 0;
  z-index: 100;
  pointer-events: none;
  opacity: .032;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E");
}

.cursor-glow {
  position: fixed;
  width: 480px;
  height: 480px;
  left: 0;
  top: 0;
  z-index: -1;
  border-radius: 50%;
  pointer-events: none;
  opacity: .17;
  transform: translate3d(-50%, -50%, 0);
  background: radial-gradient(circle, rgba(185,255,76,.18), rgba(103,168,255,.06) 32%, transparent 70%);
  filter: blur(14px);
}

/* Loader */
.loader {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: grid;
  place-content: center;
  gap: 18px;
  background: var(--bg-deep);
  transition: opacity .65s var(--ease), visibility .65s;
}
.loader.is-hidden { opacity: 0; visibility: hidden; }
.loader p {
  margin: 0;
  font: 600 12px/1 var(--font-display);
  letter-spacing: .34em;
  text-align: center;
}
.loader__mark {
  width: 62px;
  height: 62px;
  position: relative;
  margin: auto;
}
.loader__mark span {
  position: absolute;
  inset: 0;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  animation: loaderPulse 1.3s infinite ease-out;
}
.loader__mark span:nth-child(2) { animation-delay: .2s; }
.loader__mark span:nth-child(3) { animation-delay: .4s; }
@keyframes loaderPulse {
  0% { transform: scale(.25); opacity: 0; }
  35% { opacity: 1; }
  100% { transform: scale(1); opacity: 0; }
}

/* Common */
.section-shell {
  width: min(calc(100% - 64px), var(--max-width));
  margin-inline: auto;
}
.section-pad { padding-block: clamp(110px, 11vw, 190px); }
.section-index {
  margin-bottom: 30px;
  color: var(--accent);
  font: 600 11px/1.2 var(--font-display);
  letter-spacing: .22em;
}
.section-title {
  max-width: 850px;
  margin-bottom: 0;
  font: 500 clamp(36px, 5vw, 74px)/1.04 var(--font-display);
  letter-spacing: -.055em;
}
.section-intro {
  max-width: 470px;
  margin: 0;
  color: var(--muted);
  font-size: 17px;
  line-height: 1.7;
}
.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 70px;
  margin-bottom: clamp(60px, 8vw, 110px);
}
.eyebrow {
  margin-bottom: 22px;
  color: var(--accent);
  font: 600 11px/1.3 var(--font-display);
  letter-spacing: .19em;
  text-transform: uppercase;
}

.button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 54px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  font: 600 14px/1 var(--font-display);
  cursor: pointer;
  overflow: hidden;
  transition: transform .35s var(--ease), border-color .35s, background .35s, color .35s;
}
.button::before {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-110%);
  background: rgba(255,255,255,.18);
  transition: transform .55s var(--ease);
}
.button:hover::before { transform: translateX(110%); }
.button:hover { transform: translateY(-2px); }
.button svg { width: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.button--accent { background: var(--accent); color: #07100f; }
.button--ghost { border-color: var(--line-strong); background: rgba(255,255,255,.025); }
.button--ghost:hover { border-color: rgba(185,255,76,.55); background: var(--accent-soft); }
.button--compact { min-height: 42px; padding: 0 18px; font-size: 12px; }

/* Header */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  padding: 14px 0;
  transition: transform .45s var(--ease);
}
.site-header.is-hidden { transform: translateY(-120%); }
.header-shell {
  width: min(calc(100% - 40px), 1500px);
  min-height: 58px;
  margin: auto;
  padding: 8px 10px 8px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(5, 14, 13, .78);
  backdrop-filter: blur(20px) saturate(120%);
  box-shadow: 0 12px 50px rgba(0,0,0,.18);
}
.brand { display: inline-flex; align-items: center; gap: 11px; font: 700 17px/1 var(--font-display); letter-spacing: .14em; }
.brand-mark { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 1.25; }
.brand-energy { stroke: var(--accent); stroke-width: 2; }
.desktop-nav { display: flex; align-items: center; gap: clamp(18px, 2vw, 34px); }
.desktop-nav a {
  position: relative;
  color: #c8d1ce;
  font-size: 13px;
  transition: color .25s;
}
.desktop-nav a::after {
  content: "";
  position: absolute;
  left: 0; right: 100%; bottom: -7px;
  height: 1px;
  background: var(--accent);
  transition: right .35s var(--ease);
}
.desktop-nav a:hover { color: var(--text); }
.desktop-nav a:hover::after { right: 0; }
.header-actions { display: flex; align-items: center; gap: 14px; }
.language-switch {
  display: flex;
  gap: 6px;
  border: 0;
  background: none;
  color: var(--muted-2);
  font-size: 11px;
}
.language-switch .active { color: var(--text); }
.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: 50%;
  background: var(--surface-2);
  position: relative;
}
.menu-toggle span {
  position: absolute;
  left: 13px;
  width: 18px;
  height: 1px;
  background: var(--text);
  transition: transform .3s, top .3s;
}
.menu-toggle span:first-child { top: 18px; }
.menu-toggle span:last-child { top: 25px; }
.menu-toggle[aria-expanded="true"] span:first-child { top: 22px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { top: 22px; transform: rotate(-45deg); }

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: -1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 125px 28px 35px;
  background: rgba(3,8,7,.98);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-18px);
  transition: opacity .35s, visibility .35s, transform .35s;
}
.mobile-menu.is-open { opacity: 1; visibility: visible; transform: none; }
.mobile-menu nav { display: flex; flex-direction: column; }
.mobile-menu nav a {
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 17px 0;
  border-bottom: 1px solid var(--line);
  font: 500 clamp(27px, 8vw, 42px)/1.1 var(--font-display);
  letter-spacing: -.04em;
}
.mobile-menu nav a span { color: var(--accent); font: 500 10px/1 var(--font-display); letter-spacing: .15em; }
.mobile-menu__footer { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 12px; }
.mobile-menu__footer p { margin: 0; }

/* Hero */
.hero {
  position: relative;
  min-height: 100svh;
  padding-top: 120px;
  display: flex;
  align-items: center;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0 calc(50% - 50vw);
  z-index: -2;
  background:
    linear-gradient(rgba(255,255,255,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to bottom, black 0%, black 65%, transparent 100%);
}
.hero-grid {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(470px, 1.05fr);
  align-items: center;
  gap: clamp(50px, 7vw, 120px);
}
.hero-copy { padding-bottom: 28px; }
.hero-title {
  max-width: 820px;
  margin-bottom: 30px;
  padding-bottom: .12em;
  font: 500 clamp(58px, 7.2vw, 118px)/.94 var(--font-display);
  letter-spacing: -.072em;
}
.word-reveal {
  display: inline-block;
  overflow: clip;
  padding: .06em .025em .14em;
  margin: -.06em .155em -.14em 0;
  vertical-align: baseline;
}
.word-reveal > span { display: inline-block; transform: translateY(115%); opacity: 0; transition: transform .85s var(--ease), opacity .85s; }
[data-word-reveal].is-visible .word-reveal > span { transform: none; opacity: 1; }
.hero-lead {
  max-width: 630px;
  margin-bottom: 34px;
  color: #b8c3bf;
  font-size: clamp(18px, 1.7vw, 23px);
  line-height: 1.55;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 650px;
  margin-top: 70px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}
.hero-meta div { display: flex; align-items: center; gap: 12px; }
.hero-meta span { color: var(--accent); font-size: 10px; }
.hero-meta p { margin: 0; color: var(--muted); font-size: 12px; }

.hero-visual {
  position: relative;
  min-height: min(72vh, 760px);
  border: 1px solid var(--line);
  border-radius: 26px;
  overflow: hidden;
  background:
    radial-gradient(circle at 56% 48%, rgba(185,255,76,.10), transparent 18%),
    radial-gradient(circle at 82% 18%, rgba(103,168,255,.055), transparent 30%),
    linear-gradient(145deg,#06110f 0%,#081613 52%,#06100f 100%);
  box-shadow: inset 0 0 90px rgba(0,0,0,.22), 0 40px 120px rgba(0,0,0,.20);
  isolation:isolate;
}
.hero-visual::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.72),transparent 92%);opacity:.5}
.hero-visual::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--mx,56%) var(--my,48%),rgba(185,255,76,.085),transparent 23%);opacity:.65;transition:opacity .35s ease}
#energy-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;contain:strict}
@media (hover:hover) and (pointer:fine){.hero-visual:hover::after{opacity:1}}
.hero-orbit{position:absolute;left:56%;top:50%;width:min(56%,420px);aspect-ratio:1;border:1px solid rgba(255,255,255,.095);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 46px rgba(255,255,255,.018),0 0 0 92px rgba(255,255,255,.012)}
.orbit-a::after{content:"";position:absolute;top:17%;left:8%;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 24px var(--accent)}
.orbit-b{width:min(38%,290px);left:56%;border-style:dashed;border-color:rgba(103,168,255,.24);animation:spin 32s linear infinite}
.energy-core{position:absolute;left:56%;top:50%;width:190px;height:190px;transform:translate(-50%,-50%);display:grid;place-items:center}
.energy-core__ring{position:absolute;inset:0;border:1px solid rgba(185,255,76,.3);border-radius:50%;animation:spin 26s linear infinite}
.energy-core__ring::before,.energy-core__ring::after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 16px rgba(185,255,76,.65)}
.energy-core__ring::before{top:12%;left:18%}.energy-core__ring::after{right:7%;bottom:28%}
.energy-core__ring--2{inset:22px;border-style:dashed;border-color:rgba(103,168,255,.30);animation-direction:reverse;animation-duration:20s}
.energy-core__center{width:112px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:50%;background:rgba(4,12,11,.86);backdrop-filter:blur(8px);box-shadow:0 0 55px rgba(185,255,76,.07)}
.energy-core__center strong{font:600 12px/1 var(--font-display);letter-spacing:.15em}.energy-core__center small{margin-top:8px;color:var(--muted);font-size:8px;letter-spacing:.13em}.pulse-dot{width:7px;height:7px;margin-bottom:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 24px var(--accent);animation:pulse 2s infinite}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{transform:scale(1.45);opacity:.55}}

.data-chip {
  position: absolute;
  min-width: 130px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(5,14,13,.72);
  backdrop-filter: blur(12px);
}
.data-chip span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .12em; }
.data-chip strong { font: 500 12px/1 var(--font-display); }
.chip-one { top: 19%; left: 8%; }
.chip-two { right: 8%; bottom: 19%; }
.chip-three { right: 6%; top: 27%; }
.visual-coordinates {
  position: absolute;
  left: 28px; right: 28px; bottom: 25px;
  display: flex; justify-content: space-between;
  color: var(--muted-2); font: 500 8px/1 var(--font-display); letter-spacing: .15em;
}
.hero-scroll {
  position: absolute;
  bottom: 24px; left: 0;
  display: flex; align-items: center; gap: 14px;
  color: var(--muted); font-size: 10px; letter-spacing: .15em; text-transform: uppercase;
}
.hero-scroll i { width: 72px; height: 1px; background: var(--line-strong); position: relative; }
.hero-scroll i::after { content:""; position:absolute; inset:0; background:var(--accent); transform-origin:left; animation:scrollLine 2s infinite; }
@keyframes scrollLine { 0%{transform:scaleX(0)} 50%{transform:scaleX(1)} 100%{transform:scaleX(0); transform-origin:right} }

/* Intro */
.intro { border-top: 1px solid var(--line); }
.intro-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  align-items: start;
  gap: 90px;
}
.intro-copy { color: var(--muted); font-size: 18px; line-height: 1.75; }
.intro-copy p:last-child { margin-bottom: 0; }
.manifesto {
  max-width: 1220px;
  margin: clamp(100px, 12vw, 180px) 0 0;
  padding-left: clamp(20px, 5vw, 70px);
  border-left: 1px solid var(--accent);
  padding-bottom: .14em;
  font: 400 clamp(42px, 6.8vw, 102px)/.96 var(--font-display);
  letter-spacing: -.06em;
}

/* Services */
.services { border-top: 1px solid var(--line); }
.service-system {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: stretch;
  gap: 28px;
}
.service-system > * { min-width: 0; }

.service-panel {
  position: relative;
  min-height: 620px;
  padding: clamp(30px, 4vw, 58px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: linear-gradient(145deg, rgba(185,255,76,.07), rgba(255,255,255,.018));
}
.service-panel::after {
  content:"";
  position:absolute;
  width:420px;height:420px;
  right:-200px;bottom:-220px;
  border:1px solid rgba(185,255,76,.18);
  border-radius:50%;
  box-shadow: 0 0 0 70px rgba(185,255,76,.018), 0 0 0 140px rgba(185,255,76,.014);
}
.service-panel__number { color: var(--muted); font: 500 11px/1 var(--font-display); letter-spacing: .13em; }
.service-panel h3 { max-width: 520px; margin-bottom: 20px; font: 500 clamp(40px, 5vw, 70px)/1.02 var(--font-display); letter-spacing: -.05em; }
.service-panel p:not(.eyebrow) { max-width: 520px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.service-panel ul { position:relative;z-index:1; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:0 24px; }
.service-panel li { padding: 13px 0; border-top: 1px solid var(--line); color: #c4ceca; font-size: 13px; }

.service-accordion {
  min-width: 0;
  width: 100%;
  border-top: 1px solid var(--line);
}

.service-row { min-width: 0; width: 100%; border-bottom: 1px solid var(--line); }
.service-trigger {
  width: 100%;
  min-height: 100px;
  padding: 0;
  display: grid;
  grid-template-columns: 90px 1fr auto;
  align-items: center;
  border: 0;
  background: none;
  cursor: pointer;
  text-align: left;
}
.service-row__number { color: var(--accent); font: 500 10px/1 var(--font-display); letter-spacing: .12em; }
.service-row__title { font: 500 clamp(24px, 3vw, 42px)/1.1 var(--font-display); letter-spacing: -.04em; }
.service-row__symbol { font-size: 30px; font-weight: 300; }
.service-content { padding: 0 0 40px 90px; }
.service-content p { max-width: 620px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.service-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.service-tags span { padding: 8px 11px; border: 1px solid var(--line); border-radius: 999px; color: #c6cfcc; font-size: 11px; }


.associated-service {
  position: relative;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(155px, .72fr) minmax(235px, .95fr) minmax(260px, 1.35fr) minmax(175px, max-content);
  grid-template-areas: "index name copy link";
  align-items: center;
  column-gap: clamp(22px, 2.3vw, 38px);
  row-gap: 14px;
  margin-top: 28px;
  padding: 26px 30px 26px 36px;
  border: 1px solid rgba(185,255,76,.32);
  border-radius: 18px;
  background: linear-gradient(105deg, rgba(185,255,76,.075), rgba(255,255,255,.018));
  overflow: hidden;
  isolation: isolate;
  transition: border-color .3s var(--ease), transform .3s var(--ease), background .3s var(--ease), box-shadow .3s var(--ease);
}
.associated-service::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  background: var(--accent);
  transform: scaleY(.35);
  transition: transform .35s var(--ease);
}
.associated-service:hover {
  transform: translateY(-2px);
  border-color: rgba(185,255,76,.58);
  background: linear-gradient(105deg, rgba(185,255,76,.11), rgba(255,255,255,.024));
  box-shadow: 0 18px 55px rgba(0,0,0,.18), inset 0 0 42px rgba(185,255,76,.025);
}
.associated-service:hover::before { transform: scaleY(1); }
.associated-service__index {
  grid-area: index;
  min-width: 0;
  color: var(--accent);
  font: 600 9px/1.4 var(--font-display);
  letter-spacing: .15em;
  text-transform: uppercase;
  text-wrap: balance;
}
.associated-service__name {
  grid-area: name;
  min-width: 0;
  display: block;
  font: 500 clamp(22px, 1.75vw, 29px)/1.05 var(--font-display);
  letter-spacing: .12em;
  white-space: nowrap;
}
.associated-service__name span { color: var(--accent); }
.associated-service__copy {
  grid-area: copy;
  min-width: 0;
  max-width: 480px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  text-wrap: pretty;
}
.associated-service__link {
  grid-area: link;
  min-width: 0;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--text);
  font-size: 12px;
  white-space: nowrap;
  border-bottom: 1px solid rgba(185,255,76,.4);
  padding-bottom: 5px;
}
.associated-service__link b { color: var(--accent); font-weight: 400; }

/* Certificate */
.certificate { padding-top: 40px; }
.certificate-shell {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  min-height: 670px;
  border: 1px solid var(--line);
  border-radius: 24px;
  overflow: hidden;
  background: #091412;
}
.certificate-visual {
  position: relative;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background:
    linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px),
    radial-gradient(circle at 50% 50%, rgba(185,255,76,.09), transparent 52%);
  background-size: 42px 42px, 42px 42px, auto;
}
.certificate-visual svg { width: 70%; overflow: visible; }
.cert-grid { fill:none; stroke:rgba(255,255,255,.09); stroke-width:1; }
.cert-line { fill:none; stroke:var(--accent); stroke-width:2; stroke-dasharray:800; stroke-dashoffset:800; }
.certificate-shell.is-visible .cert-line { animation:drawLine 2.2s .35s var(--ease) forwards; }
.certificate-visual circle { fill:var(--bg); stroke:var(--accent); stroke-width:2; opacity:0; }
.certificate-shell.is-visible .certificate-visual circle { animation:fadeIn .5s 1.7s forwards; }
@keyframes drawLine { to { stroke-dashoffset:0; } }
@keyframes fadeIn { to { opacity:1; } }
.certificate-label {
  position:absolute; left:24px; top:24px; bottom:24px;
  display:flex; flex-direction:column; justify-content:space-between;
}
.certificate-label span { width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-size:9px;color:var(--muted); }
.certificate-label span:first-child,.certificate-label span:nth-child(2) { border-color:rgba(185,255,76,.45);color:var(--accent); }
.certificate-stamp {
  position:absolute;right:32px;bottom:30px;
  font:500 44px/.8 var(--font-display);letter-spacing:-.08em;text-align:right;color:rgba(255,255,255,.18);
}
.certificate-stamp span { font-size:8px;letter-spacing:.18em;color:var(--muted); }
.certificate-copy { padding: clamp(45px, 7vw, 100px); display:flex; flex-direction:column; justify-content:center; }
.certificate-copy h2 { max-width:680px;margin-bottom:28px;font:500 clamp(40px,5vw,72px)/1.03 var(--font-display);letter-spacing:-.055em; }
.certificate-copy > p:not(.eyebrow) { max-width:650px;color:var(--muted);font-size:17px;line-height:1.75; }
.certificate-steps { display:grid;grid-template-columns:1fr 1fr;margin:24px 0 38px;border-top:1px solid var(--line); }
.certificate-steps span { position:relative;padding:15px 0 15px 18px;border-bottom:1px solid var(--line);color:#c4ceca;font-size:12px; }
.certificate-steps span::before { content:"";position:absolute;left:0;top:50%;width:5px;height:5px;border-radius:50%;background:var(--accent);transform:translateY(-50%); }
.text-link { display:inline-flex;align-items:center;gap:18px;width:max-content;padding-bottom:8px;border-bottom:1px solid var(--accent);font:600 14px/1 var(--font-display); }
.text-link span { transition:transform .3s; }.text-link:hover span{transform:translate(4px,-4px)}

/* Method */
.method { border-top:1px solid var(--line); }
.method-track { position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px; }
.method-progress { position:absolute;top:21px;left:0;right:0;height:1px;background:var(--line); }
.method-progress span { display:block;width:0;height:100%;background:var(--accent);box-shadow:0 0 12px var(--accent); }
.method-step { position:relative;padding-top:72px; }
.method-step > span { position:absolute;top:0;left:0;width:43px;height:43px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:50%;background:var(--bg);color:var(--muted);font-size:10px;transition:border-color .4s,color .4s,box-shadow .4s; }
.method-step.is-active > span { color:var(--accent);border-color:var(--accent);box-shadow:0 0 0 7px var(--accent-soft); }
.method-step h3 { margin-bottom:15px;font:500 clamp(25px,2.5vw,38px)/1.1 var(--font-display);letter-spacing:-.04em; }
.method-step p { margin:0;color:var(--muted);line-height:1.7;font-size:15px; }

/* Metrics */
.metrics { border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#040b0a; }
.metrics-head { display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:70px; }
.concept-note { max-width:360px;margin:0;color:var(--muted-2);font-size:11px;line-height:1.6; }
.metrics-dashboard { display:grid;grid-template-columns:1.5fr .5fr;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--bg); }
.metric-main { padding:28px; }
.metric-main__header { display:flex;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--line); }
.metric-main__header span { display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em; }
.metric-main__header strong { display:block;margin-top:6px;font:500 16px/1 var(--font-display); }
.live-status { display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px; }
.live-status i { width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px var(--accent); }
.energy-chart { width:100%;margin-top:20px;overflow:visible; }
.chart-grid path { stroke:rgba(255,255,255,.06);stroke-width:1; }
.chart-area { fill:url(#chartFill);opacity:0;transition:opacity 1s .6s; }
.metrics-dashboard.is-visible .chart-area { opacity:1; }
.chart-before,.chart-after { fill:none;stroke-width:2;stroke-dasharray:1300;stroke-dashoffset:1300; }
.chart-before { stroke:rgba(255,255,255,.28); }
.chart-after { stroke:var(--accent);filter:drop-shadow(0 0 5px rgba(185,255,76,.35)); }
.metrics-dashboard.is-visible .chart-before { animation:drawLine 2.3s .1s var(--ease) forwards; }
.metrics-dashboard.is-visible .chart-after { animation:drawLine 2.3s .45s var(--ease) forwards; }
.chart-labels text { fill:var(--muted-2);font-size:10px;font-family:var(--font-body); }
.chart-legend { display:flex;gap:24px;color:var(--muted);font-size:10px; }
.chart-legend span { display:flex;align-items:center;gap:8px; }
.chart-legend i { width:18px;height:1px; }.chart-legend .before{background:rgba(255,255,255,.3)}.chart-legend .after{background:var(--accent)}
.metric-side { display:grid;grid-template-columns:1fr;border-left:1px solid var(--line); }
.metric-cell { min-height:145px;padding:24px;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--line); }
.metric-cell:last-child{border-bottom:0}
.metric-cell > span { color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.11em; }
.metric-cell strong { margin:15px 0 7px;font:500 clamp(32px,4vw,50px)/1 var(--font-display);letter-spacing:-.05em; }
.metric-cell small { color:var(--muted-2);font-size:10px; }

/* Sectors */
.sector-map {
  position:relative;
  min-height:680px;
  border:1px solid var(--line);
  border-radius:50%;
  overflow:hidden;
  background:
    radial-gradient(circle at center, rgba(185,255,76,.08), transparent 26%),
    repeating-radial-gradient(circle at center, transparent 0 79px, rgba(255,255,255,.045) 80px 81px);
}
.sector-map::before,.sector-map::after { content:"";position:absolute;background:var(--line); }
.sector-map::before { left:50%;top:0;bottom:0;width:1px; }
.sector-map::after { top:50%;left:0;right:0;height:1px; }
.sector-center { position:absolute;left:50%;top:50%;z-index:2;width:180px;height:180px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:50%;background:rgba(5,14,13,.87);backdrop-filter:blur(12px); }
.sector-center svg { position:absolute;inset:10px;width:160px;fill:none;stroke:rgba(185,255,76,.25);stroke-width:1;animation:spin 45s linear infinite; }
.sector-center strong { font:600 15px/1 var(--font-display);letter-spacing:.14em; }
.sector-center span { margin-top:8px;color:var(--muted);font-size:7px;letter-spacing:.15em; }
.sector-cloud span {
  position:absolute;
  left:var(--x);top:var(--y);
  padding:11px 16px;
  border:1px solid var(--line);
  border-radius:999px;
  background:rgba(8,20,18,.82);
  backdrop-filter:blur(8px);
  color:#c4ceca;
  font-size:12px;
  transition:border-color .35s,transform .35s,color .35s;
}
.sector-cloud span:hover { transform:translateY(-4px);border-color:rgba(185,255,76,.5);color:var(--text); }

/* Technology */
.technology { border-top:1px solid var(--line); }
.technology-grid { display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(60px,8vw,120px);align-items:center; }
.technology-copy > p { max-width:600px;margin-top:32px;color:var(--muted);font-size:17px;line-height:1.75; }
.tech-list { list-style:none;margin:44px 0 0;padding:0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr; }
.tech-list li { display:flex;gap:12px;padding:14px 4px;border-bottom:1px solid var(--line);font-size:12px;color:#c8d1ce; }
.tech-list li:nth-child(odd){padding-right:20px}.tech-list li:nth-child(even){padding-left:20px;border-left:1px solid var(--line)}
.tech-list span { color:var(--accent);font-size:9px; }

.tech-interface { border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#07110f;box-shadow:0 40px 100px rgba(0,0,0,.25);transform:perspective(1100px) rotateY(-3deg) rotateX(2deg);transition:transform .5s var(--ease); }
.tech-interface:hover{transform:perspective(1100px) rotateY(0) rotateX(0)}
.interface-top { height:48px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--muted);font-size:8px;letter-spacing:.15em; }
.interface-top div{display:flex;gap:6px}.interface-top i{width:6px;height:6px;border:1px solid var(--line-strong);border-radius:50%}
.interface-body { display:grid;grid-template-columns:120px 1fr;min-height:480px; }
.interface-body aside { padding:24px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:7px; }
.interface-body aside span { padding:9px;border-radius:5px;color:var(--muted-2);font-size:8px; }
.interface-body aside .selected { background:var(--accent-soft);color:var(--accent); }
.interface-main { padding:25px; }
.interface-kpis { display:grid;grid-template-columns:repeat(3,1fr);gap:10px; }
.interface-kpis div { padding:16px;border:1px solid var(--line);border-radius:8px; }
.interface-kpis small { display:block;margin-bottom:15px;color:var(--muted-2);font-size:7px;letter-spacing:.12em; }
.interface-kpis strong { font:500 28px/1 var(--font-display);letter-spacing:-.05em; }
.interface-kpis span { margin-left:4px;color:var(--muted);font-size:8px; }
.interface-graph { margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:8px; }
.interface-graph g path { stroke:rgba(255,255,255,.05); }
.interface-graph .line-one,.interface-graph .line-two { fill:none;stroke-width:1.4;stroke-dasharray:900;stroke-dashoffset:900; }
.interface-graph .line-one { stroke:var(--accent); }.interface-graph .line-two{stroke:var(--electric);opacity:.6}
.tech-interface.is-visible .line-one{animation:drawLine 2s .4s var(--ease) forwards}.tech-interface.is-visible .line-two{animation:drawLine 2s .65s var(--ease) forwards}
.interface-bottom { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px; }
.interface-bottom div { padding:14px 4px;border-top:1px solid var(--line); }
.interface-bottom span { display:block;color:var(--muted-2);font-size:7px; }
.interface-bottom strong { display:block;margin-top:7px;font-size:9px;font-weight:500; }

/* Cases */
.cases { border-top:1px solid var(--line); }
.case-list { border-top:1px solid var(--line); }
.case-item { display:grid;grid-template-columns:80px .85fr 1.15fr;gap:40px;padding:48px 0;border-bottom:1px solid var(--line);transition:background .35s; }
.case-number { color:var(--accent);font:500 11px/1 var(--font-display); }
.case-title p { margin-bottom:12px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em; }
.case-title h3 { max-width:500px;margin:0;font:500 clamp(25px,3vw,42px)/1.12 var(--font-display);letter-spacing:-.045em; }
.case-detail { display:grid;grid-template-columns:1fr 1fr;gap:22px 32px; }
.case-detail p { margin:0;color:var(--muted);font-size:13px;line-height:1.55; }
.case-detail strong { display:block;margin-bottom:7px;color:var(--text);font-size:10px;text-transform:uppercase;letter-spacing:.1em; }

/* About */
.about { display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(60px,9vw,140px);align-items:center;border-top:1px solid var(--line); }
.portrait-placeholder { position:relative;min-height:720px;border:1px solid var(--line);border-radius:280px 280px 18px 18px;overflow:hidden;background:radial-gradient(circle at 50% 36%,rgba(103,168,255,.10),transparent 32%),linear-gradient(155deg,#0d1a18,#07100f); }
.portrait-grid { position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent); }
.portrait-placeholder svg { position:absolute;width:100%;height:100%;fill:none;stroke:rgba(185,255,76,.38);stroke-width:1.2; }
.portrait-label { position:absolute;left:30px;right:30px;bottom:26px;display:flex;justify-content:space-between;align-items:end;border-top:1px solid var(--line);padding-top:15px; }
.portrait-label span{font:500 10px/1 var(--font-display);letter-spacing:.13em}.portrait-label small{color:var(--muted);font-size:9px}
.about-copy > p { max-width:700px;color:var(--muted);font-size:18px;line-height:1.75; }
.about-principles { display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-top:1px solid var(--line); }
.about-principles div { padding:22px 18px 0 0; }
.about-principles div+div{padding-left:18px;border-left:1px solid var(--line)}
.about-principles span{color:var(--accent);font-size:9px}.about-principles strong{display:block;margin:22px 0 8px;font:500 17px/1 var(--font-display)}.about-principles p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.scope-note { margin-top:45px;padding:18px 0 18px 22px;border-left:1px solid var(--accent);font-size:13px!important; }

/* FAQ */
.faq { border-top:1px solid var(--line); }
.faq-list { max-width:1050px;margin-left:auto;border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:25px;list-style:none;cursor:pointer;font:500 clamp(18px,2vw,25px)/1.3 var(--font-display);letter-spacing:-.025em; }
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary span{font-size:28px;font-weight:300;transition:transform .3s}
.faq-list details[open] summary span{transform:rotate(45deg)}
.faq-list details p{max-width:820px;padding:0 50px 28px 0;color:var(--muted);font-size:15px;line-height:1.7}

/* Contact */
.contact { border-top:1px solid var(--line); }
.contact-shell { display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(60px,9vw,140px); }
.contact-copy > p { max-width:570px;margin-top:30px;color:var(--muted);font-size:17px;line-height:1.7; }
.contact-data { margin-top:50px;border-top:1px solid var(--line); }
.contact-data > * { display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line); }
.contact-data span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em}
.contact-data strong{font-size:13px;font-weight:500}
.whatsapp-card{
  position:relative;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:14px;
  margin-top:16px;padding:16px 18px;border:1px solid rgba(185,255,76,.28);border-radius:12px;
  color:var(--text);overflow:hidden;background:linear-gradient(135deg,rgba(185,255,76,.085),rgba(185,255,76,.018) 55%,rgba(103,168,255,.025));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);transition:transform .3s ease,border-color .3s ease,background .3s ease,box-shadow .3s ease;
}
.whatsapp-card::before{content:"";position:absolute;inset:auto -20% -120% 25%;height:180%;background:radial-gradient(circle,rgba(185,255,76,.13),transparent 62%);pointer-events:none;transition:transform .45s ease}
.whatsapp-card__icon{position:relative;width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(185,255,76,.4);border-radius:50%;background:rgba(185,255,76,.07);color:var(--accent)}
.whatsapp-card__icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.whatsapp-card__copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.whatsapp-card__copy small{color:var(--accent);font-size:9px;line-height:1;text-transform:uppercase;letter-spacing:.14em;font-style:normal}
.whatsapp-card__copy strong{font-size:14px;line-height:1.2;font-weight:500}
.whatsapp-card__copy em{color:var(--muted);font-size:11px;line-height:1.2;font-style:normal}
.whatsapp-card__arrow{position:relative;color:var(--accent);font-size:21px;transition:transform .3s ease}
@media (hover:hover) and (pointer:fine){.whatsapp-card:hover{transform:translateY(-2px);border-color:rgba(185,255,76,.58);background:linear-gradient(135deg,rgba(185,255,76,.12),rgba(185,255,76,.025) 58%,rgba(103,168,255,.035));box-shadow:0 14px 40px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.05)}.whatsapp-card:hover::before{transform:translate3d(-8%,-7%,0)}.whatsapp-card:hover .whatsapp-card__arrow{transform:translate(3px,-3px)}}

.contact-form { padding:clamp(28px,4vw,54px);border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.018); }
.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:26px 18px; }
.contact-form label { display:flex;flex-direction:column;gap:9px; }
.contact-form label > span { color:#c0cac6;font-size:11px; }
.form-full{grid-column:1/-1}
.contact-form input,.contact-form select,.contact-form textarea{
  width:100%;
  border:0;
  border-bottom:1px solid var(--line-strong);
  border-radius:0;
  padding:11px 0 13px;
  background:transparent;
  color:var(--text);
  outline:none;
  transition:border-color .25s;
}
.contact-form textarea{resize:vertical;min-height:120px}
.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted-2)}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--accent)}
.contact-form select option{background:var(--surface);color:var(--text)}
.contact-form .is-invalid{border-color:var(--danger)}
.privacy-check { margin-top:28px;display:flex!important;flex-direction:row!important;align-items:flex-start;gap:10px!important; }
.privacy-check input { width:16px;height:16px;margin:1px 0 0;accent-color:var(--accent); }
.privacy-check span{color:var(--muted)!important;line-height:1.5}.privacy-check a{text-decoration:underline;text-underline-offset:3px}
.form-submit { display:flex;align-items:center;gap:20px;margin-top:30px; }
.form-status { margin:0;color:var(--muted);font-size:11px;line-height:1.45; }
.form-status.error{color:var(--danger)}

/* Footer */
.site-footer { padding:70px 0 26px;border-top:1px solid var(--line);background:var(--bg-deep); }
.footer-top { display:flex;justify-content:space-between;align-items:end;gap:40px;padding-bottom:65px; }
.brand--footer { font-size:26px; }.brand--footer .brand-mark{width:40px;height:40px}
.footer-top p{max-width:550px;margin:0;font:400 clamp(28px,3.5vw,48px)/1.12 var(--font-display);letter-spacing:-.045em;text-align:right}
.footer-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:40px;padding:45px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line); }
.footer-grid div{display:flex;flex-direction:column;gap:11px}.footer-grid span{margin-bottom:8px;color:var(--accent);font-size:9px;text-transform:uppercase;letter-spacing:.15em}.footer-grid a,.footer-grid button{width:max-content;padding:0;border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer}.footer-grid a:hover,.footer-grid button:hover{color:var(--text)}
.footer-bottom { display:flex;justify-content:space-between;gap:30px;padding-top:24px;color:var(--muted-2);font-size:9px;letter-spacing:.08em;text-transform:uppercase; }
.footer-bottom p{margin:0}.footer-bottom span{margin-left:20px}

/* Cookie banner */
.cookie-banner {
  position:fixed;
  z-index:3000;
  left:50%;bottom:18px;
  width:min(calc(100% - 36px),900px);
  padding:24px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:35px;
  align-items:end;
  border:1px solid var(--line-strong);
  border-radius:16px;
  background:rgba(6,16,15,.96);
  backdrop-filter:blur(20px);
  box-shadow:0 30px 100px rgba(0,0,0,.45);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,30px);
  transition:.4s var(--ease);
}
.cookie-banner.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
.cookie-banner h2{margin-bottom:8px;font:500 25px/1.1 var(--font-display);letter-spacing:-.04em}.cookie-banner p:not(.eyebrow){max-width:600px;margin-bottom:10px;color:var(--muted);font-size:12px;line-height:1.55}.cookie-banner a{font-size:11px;text-decoration:underline}.cookie-actions{display:flex;gap:9px}.cookie-actions .button{min-height:45px;padding:0 17px;font-size:11px}

/* Reveal */
.reveal { opacity:0;transform:translateY(28px);transition:opacity .85s var(--ease),transform .85s var(--ease); }
.reveal.is-visible { opacity:1;transform:none; }

/* Responsive */
@media (max-width: 1180px) {
  .desktop-nav { display:none; }
  .menu-toggle { display:block; }
  .hero-grid{grid-template-columns:1fr 1fr;gap:45px}
  .hero-title{font-size:clamp(56px,7.8vw,86px)}
  .service-system{grid-template-columns:1fr}
  .service-panel{min-height:560px}
  .technology-grid{grid-template-columns:1fr}
  .tech-interface{max-width:900px;margin:auto;width:100%}
  .about{grid-template-columns:.8fr 1.2fr;gap:60px}
  .portrait-placeholder{min-height:620px}
}

@media (max-width: 900px) {
  .section-shell{width:min(calc(100% - 36px),var(--max-width))}
  .section-head,.metrics-head{align-items:start;flex-direction:column;gap:28px}
  .hero{min-height:auto;padding-top:130px;padding-bottom:90px}
  .hero-grid{grid-template-columns:1fr}
  .hero-copy{padding-bottom:0}
  .hero-title{max-width:760px}
  .hero-meta{margin-top:48px}
  .hero-visual{min-height:620px;width:min(100%,680px);margin:auto}
  .hero-scroll{display:none}
  .intro-grid{grid-template-columns:1fr;gap:35px}
  .certificate-shell{grid-template-columns:1fr}.certificate-visual{min-height:480px;border-right:0;border-bottom:1px solid var(--line)}
  .method-track{grid-template-columns:1fr 1fr;gap:50px 30px}.method-progress{display:none}
  .metrics-dashboard{grid-template-columns:1fr}.metric-side{grid-template-columns:repeat(2,1fr);border-left:0;border-top:1px solid var(--line)}.metric-cell:nth-child(odd){border-right:1px solid var(--line)}
  .sector-map{min-height:600px}
  .case-item{grid-template-columns:50px 1fr;gap:25px}.case-detail{grid-column:2}
  .about{grid-template-columns:1fr}.about-visual{max-width:580px;margin:auto;width:100%}
  .contact-shell{grid-template-columns:1fr}
}


@media (min-width: 901px) and (max-width: 1300px) {
  .associated-service {
    grid-template-columns: minmax(145px,.65fr) minmax(210px,.9fr) minmax(240px,1.35fr);
    grid-template-areas:
      "index name copy"
      ". link link";
  }
  .associated-service__link { justify-self: start; width: max-content; }
}

@media (min-width: 681px) and (max-width: 900px) {
  .associated-service {
    grid-template-columns: minmax(170px,.75fr) minmax(0,1.25fr);
    grid-template-areas:
      "index name"
      "copy copy"
      "link link";
    align-items: start;
  }
  .associated-service__link { justify-self: start; width: max-content; }
}
@media (max-width: 680px) {
  :root{--header-height:68px}
  .section-shell{width:min(calc(100% - 28px),var(--max-width))}
  .section-pad{padding-block:90px}
  .section-index{margin-bottom:22px}
  .section-title{font-size:clamp(35px,11vw,54px);letter-spacing:-.05em}
  .header-shell{width:calc(100% - 20px);min-height:54px;padding-left:13px}
  .brand{font-size:14px}.brand-mark{width:24px}.header-actions .button,.language-switch{display:none}
  .hero{padding-top:112px;padding-bottom:65px}
  .hero::before{background-size:44px 44px}
  .hero-title{font-size:clamp(52px,16.4vw,76px);line-height:.96;margin-bottom:24px}
  .hero-lead{font-size:17px;margin-bottom:27px}
  .hero-actions{align-items:stretch}.hero-actions .button{flex:1;min-width:145px;padding-inline:16px}
  .hero-meta{grid-template-columns:1fr;margin-top:42px}.hero-meta div{padding:11px 0;border-bottom:1px solid var(--line)}.hero-meta p{font-size:11px}
  .hero-visual{min-height:470px;border-radius:47% 53% 48% 52% / 40% 45% 55% 60%}
  .energy-core{width:160px;height:160px}.energy-core__center{width:94px;height:94px}
  .data-chip{min-width:108px;padding:9px 10px;backdrop-filter:none;background:rgba(5,14,13,.88)}.chip-one{left:5%;top:16%}.chip-two{right:5%;bottom:16%}.chip-three{right:4%;top:32%}
  .visual-coordinates{left:18px;right:18px}
  .intro-grid{gap:28px}.intro-copy{font-size:16px}.manifesto{margin-top:80px;font-size:clamp(40px,13vw,64px);line-height:.98}
  .service-panel{min-height:610px;padding:26px}.service-panel h3{font-size:46px}.service-panel ul{grid-template-columns:1fr}
  .service-trigger{grid-template-columns:52px 1fr auto;min-height:88px}.service-row__title{font-size:25px}.service-content{padding-left:52px}.associated-service{grid-template-columns:1fr;grid-template-areas:"index" "name" "copy" "link";gap:10px;padding:20px 20px 20px 26px}.associated-service__name{font-size:24px}.associated-service__copy{max-width:440px}.associated-service__link{width:max-content;margin-top:4px}
  .certificate{padding-top:0}.certificate-visual{min-height:350px}.certificate-copy{padding:32px 24px 40px}.certificate-copy h2{font-size:43px}.certificate-copy>p:not(.eyebrow){font-size:15px}.certificate-steps{grid-template-columns:1fr}
  .method-track{grid-template-columns:1fr}.method-step{padding:60px 0 0 0}
  .metrics-dashboard{border-radius:12px}.metric-main{padding:18px}.metric-main__header{align-items:flex-start;gap:12px}.live-status{white-space:nowrap}.energy-chart{min-width:520px}.metric-main{overflow:hidden}.metric-main .energy-chart{width:160%;transform:translateX(-5%)}.metric-side{grid-template-columns:1fr 1fr}.metric-cell{min-height:128px;padding:17px}
  .sector-map{min-height:680px;border-radius:260px}.sector-center{width:145px;height:145px}.sector-center svg{width:125px}.sector-cloud span{font-size:10px;padding:9px 11px}.sector-cloud span:nth-child(2){--x:36%!important}.sector-cloud span:nth-child(3){--x:66%!important}.sector-cloud span:nth-child(5){--x:77%!important}.sector-cloud span:nth-child(8){--x:56%!important}
  .technology-grid{gap:55px}.tech-list{grid-template-columns:1fr}.tech-list li:nth-child(even){padding-left:4px;border-left:0}.tech-list li:nth-child(odd){padding-right:4px}
  .tech-interface{transform:none}.interface-body{grid-template-columns:72px 1fr;min-height:390px}.interface-body aside{padding:16px 7px}.interface-body aside span{font-size:6px;padding:7px 4px}.interface-main{padding:14px}.interface-kpis div{padding:10px}.interface-kpis strong{font-size:20px}.interface-graph{padding:10px}.interface-bottom{grid-template-columns:1fr}
  .case-item{grid-template-columns:1fr;padding:38px 0}.case-number{margin-bottom:-8px}.case-detail{grid-column:auto;grid-template-columns:1fr}.case-title h3{font-size:30px}
  .portrait-placeholder{min-height:520px}.about-principles{grid-template-columns:1fr}.about-principles div{padding:18px 0}.about-principles div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}.about-principles strong{margin-top:12px}.about-principles p{font-size:12px}
  .faq-list summary{min-height:78px;font-size:18px}.faq-list details p{padding-right:0}
  .contact-form{padding:24px 18px}.form-grid{grid-template-columns:1fr}.form-full{grid-column:auto}.form-submit{align-items:flex-start;flex-direction:column}
  .contact-data>*{align-items:flex-start;flex-direction:column;gap:6px}.whatsapp-card{grid-template-columns:42px minmax(0,1fr) auto;padding:14px}.whatsapp-card__icon{width:42px;height:42px}
  .footer-top{align-items:flex-start;flex-direction:column}.footer-top p{text-align:left}.footer-grid{grid-template-columns:1fr 1fr;gap:36px 20px}.footer-bottom{flex-direction:column;gap:12px}.footer-bottom span{display:block;margin:8px 0 0}
  .cookie-banner{grid-template-columns:1fr;gap:20px;padding:20px}.cookie-actions{flex-direction:column}.cookie-actions .button{width:100%}
  .cursor-glow{display:none}
}

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

@media (max-width:680px){
  .hero-visual{min-height:430px;border-radius:18px;background:radial-gradient(circle at 50% 50%,rgba(185,255,76,.09),transparent 22%),linear-gradient(145deg,#06110f,#081512 58%,#06100f)}
  .hero-visual::before{background-size:34px 34px;opacity:.38}
  .hero-orbit,.orbit-b,.energy-core{left:50%}
  .hero-orbit{width:72%}.orbit-b{width:52%}
  .energy-core{width:154px;height:154px}.energy-core__center{width:92px;height:92px}
  .whatsapp-card__copy strong{font-size:13px}
}
