/*
  TF Hydro — custom site system
  No external UI framework. No external fonts. Built for speed and easy hosting.
*/
:root {
  --bg: #0b0f14;
  --bg-2: #10161d;
  --surface: #151d26;
  --surface-2: #1b2530;
  --paper: #f3f6f7;
  --paper-2: #e8eef0;
  --ink: #101820;
  --text: #eef4f5;
  --muted: #9eabb5;
  --muted-dark: #61707b;
  --line: rgba(255,255,255,.12);
  --line-dark: rgba(16,24,32,.12);
  --hydro: #6bd7d0;
  --hydro-2: #35aeb2;
  --copper: #e08752;
  --copper-2: #b96036;
  --warning: #ffd66b;
  --danger: #ff755f;
  --ok: #68d391;
  --max: 1240px;
  --header-h: 78px;
  --radius: 24px;
  --radius-sm: 14px;
  --shadow: 0 24px 80px rgba(0,0,0,.22);
  --shadow-soft: 0 14px 40px rgba(0,0,0,.12);
  --ease: cubic-bezier(.2,.75,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--hydro); color: var(--ink); }

.skip-link {
  position: fixed; left: 16px; top: -100px; z-index: 2000;
  background: var(--paper); color: var(--ink); padding: 10px 16px; border-radius: 8px;
}
.skip-link:focus { top: 16px; }

.container { width: min(calc(100% - 40px), var(--max)); margin-inline: auto; }
.section { padding: clamp(72px, 9vw, 128px) 0; position: relative; }
.section--tight { padding: clamp(52px, 6vw, 88px) 0; }
.section--paper { background: var(--paper); color: var(--ink); }
.section--paper-2 { background: var(--paper-2); color: var(--ink); }
.section--surface { background: var(--bg-2); }
.section--cut { clip-path: polygon(0 0, 96% 0, 100% 48px, 100% 100%, 0 100%); }

.kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: .76rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase;
  color: var(--hydro);
}
.kicker::before { content:""; width: 28px; height: 2px; background: currentColor; }
.section--paper .kicker, .section--paper-2 .kicker { color: #217f84; }

h1, h2, h3, h4 { margin: 0; line-height: 1.03; letter-spacing: -.035em; }
h1 { font-size: clamp(3rem, 7vw, 4.0rem); font-weight: 700; }
h2 { font-size: clamp(2.3rem, 4.6vw, 3.5rem); font-weight: 700; }
h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); font-weight: 700; }
p { margin: 0; }
.lead { font-size: clamp(1.12rem, 1.7vw, 1rem); line-height: 1.55; color: var(--muted); max-width: 760px; }
.section--paper .lead, .section--paper-2 .lead { color: var(--muted-dark); }

.section-head { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .7fr); gap: 44px; align-items: end; margin-bottom: clamp(38px, 5vw, 68px); }
.section-head__title { display: grid; gap: 18px; }
.section-head__side { color: var(--muted); max-width: 520px; justify-self: end; }
.section--paper .section-head__side, .section--paper-2 .section-head__side { color: var(--muted-dark); }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 1000;
  height: var(--header-h);
  background: rgba(11,15,20,.78);
  border-bottom: 1px solid rgba(255,255,255,.08);
  backdrop-filter: blur(16px) saturate(1.2);
}
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; min-width: 160px; }
.brand img { width: 154px; height: 56px; object-fit: contain; object-position: left center; }
.nav { display: flex; align-items: center; gap: 4px; }
.nav a { padding: 10px 12px; color: #c8d1d7; font-size: .93rem; font-weight: 402; border-radius: 10px; transition: .2s var(--ease); }
.nav a:hover, .nav a[aria-current="page"] { color: #fff; background: rgba(255,255,255,.07); }
.header-actions { display: flex; align-items: center; gap: 10px; }
.header-phone { font-size: .88rem; color: var(--muted); display: inline-flex; gap: 8px; align-items: center; }
.header-phone strong { color: #fff; }
.menu-toggle { display:none; width: 46px; height:46px; border:1px solid var(--line); border-radius:12px; background:transparent; color:#fff; cursor:pointer; }
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after { display:block; width:20px; height:2px; background:currentColor; margin:auto; position:relative; transition:.25s; }
.menu-toggle span::before, .menu-toggle span::after { content:""; position:absolute; left:0; }
.menu-toggle span::before { top:-6px; }
.menu-toggle span::after { top:6px; }
.menu-toggle[aria-expanded="true"] span { background:transparent; }
.menu-toggle[aria-expanded="true"] span::before { top:0; transform:rotate(45deg); }
.menu-toggle[aria-expanded="true"] span::after { top:0; transform:rotate(-45deg); }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 0 18px; border: 1px solid transparent; border-radius: 12px;
  font-weight: 760; font-size: .94rem; cursor: pointer; transition: transform .2s var(--ease), background .2s, border-color .2s, color .2s;
}
.btn:hover { transform: translateY(-2px); }
.btn--primary { color: var(--ink); background: var(--hydro); }
.btn--primary:hover { background: #8be5df; }
.btn--copper { color:#fff; background: var(--copper-2); }
.btn--copper:hover { background: var(--copper); }
.btn--ghost { color: var(--text); border-color: var(--line); background: rgba(255,255,255,.03); }
.btn--ghost:hover { border-color: rgba(255,255,255,.28); background: rgba(255,255,255,.07); }
.btn--dark { color:#fff; background: var(--ink); }
.btn--dark:hover { background:#22303b; }
.btn--light { color:var(--ink); background:#fff; }
.btn--small { min-height: 42px; padding-inline: 14px; font-size: .86rem; }
.btn svg { width: 18px; height: 18px; }

/* Hero */
.hero { min-height: calc(91svh - var(--header-h)); display: grid; align-items: center; overflow: hidden; position: relative; }
.hero::before {
  content:""; position:absolute; inset:-44px; pointer-events:none; opacity:.38;
  background-image: linear-gradient(rgba(255,255,255,.032) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.032) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: linear-gradient(to bottom, #000 0, transparent 88%);
  animation: heroGridDrift 46s linear infinite;
}
.hero::after { content:""; position:absolute; width:520px; height:520px; border-radius:50%; right:-180px; top:10%; background:radial-gradient(circle, rgba(107,215,208,.16), transparent 68%); filter:blur(10px); animation: heroGlowDrift 15s ease-in-out infinite; }
.hero-glow { position:absolute; pointer-events:none; width:460px; height:760px; border-radius:50%; left:-160px; bottom:-160px; background:radial-gradient(circle, rgb(14, 23, 28), #6bd7d073 68%); filter:blur(90px); animation: heroGlowDrift2 2s ease-in-out infinite; }
@keyframes heroGridDrift { from { transform:translate(0,0); } to { transform:translate(44px,44px); } }
@keyframes heroGlowDrift { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(-46px,32px) scale(1.08); } }
@keyframes heroGlowDrift2 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(38px,-30px) scale(1.1); } }
@media (prefers-reduced-motion: reduce) {
  .hero::before, .hero::after, .hero-glow { animation: none; }
}
.hero-grid { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(420px,.78fr); gap:clamp(48px,7vw,100px); align-items:center; padding:72px 0 86px; position:relative; z-index:1; }
.hero-copy { display:grid; gap:28px; }
.hero h1 em { font-style:normal; color:var(--hydro); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero-trust { display:flex; flex-wrap:wrap; gap:14px 26px; padding-top:12px; }
.hero-trust__item { display:grid; grid-template-columns:30px 1fr; gap:10px; align-items:center; color:var(--muted); font-size:.86rem; line-height:1.35; }
.hero-trust__item strong { color:#fff; display:block; font-size:.93rem; }
.trust-mark { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; border:1px solid var(--line); color:var(--hydro); }

.engineering-board {
  position:relative; min-height:590px; border:1px solid var(--line); border-radius:30px; overflow:hidden;
  background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
  box-shadow: var(--shadow);
  perspective: 1200px;
}
.engineering-board[data-tilt] {
  --tilt-x: 0deg; --tilt-y: 0deg;
  transform: perspective(1200px) rotateX(var(--tilt-y)) rotateY(var(--tilt-x)) translateZ(0);
  transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s;
  transform-style: preserve-3d;
  will-change: transform;
}
.engineering-board[data-tilt].is-tilting { transition: transform .08s linear; box-shadow: 0 30px 90px rgba(0,0,0,.32), 0 0 0 1px rgba(107,215,208,.14); }
.engineering-board::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(107,215,208,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(107,215,208,.045) 1px,transparent 1px); background-size:34px 34px; }
.engineering-board::after { content:"TF-HYDRO / SYSTEM 03"; position:absolute; top:22px; left:24px; font-size:.65rem; letter-spacing:.18em; color:var(--muted); }
.board-sheen { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:1; }
.board-sheen::before {
  content:""; position:absolute; top:-60%; bottom:-60%; left:-35%; width:30%;
  background:linear-gradient(75deg, transparent, rgba(255,255,255,.15) 45%, rgba(107,215,208,.28) 50%, rgba(255,255,255,.15) 55%, transparent);
  transform:translateX(-40%) skewX(-14deg);
  animation: boardSheen 7s ease-in-out infinite;
}
@keyframes boardSheen { 0%, 12% { transform:translateX(-120%) skewX(-14deg); } 55%, 100% { transform:translateX(480%) skewX(-14deg); } }
.system-icon { position:absolute; filter:grayscale(1) brightness(1.7); opacity:.88; object-fit:contain; }
.system-icon--boiler { width:45%; height:52%; left:9%; top:20%; }
.system-icon--water { width:42%; height:35%; right:-7%; bottom:4%; opacity:.26; }
.system-icon--pump { width:58%; height:42%; right:-11%; top:4%; opacity:.13; }
.engineering-board[data-tilt] .system-icon--boiler { transform:translateZ(45px); }
.engineering-board[data-tilt] .status-card { transform:translateZ(60px); }
.engineering-board[data-tilt] .board-tag { transform:translateZ(50px); }
.pipe-line { position:absolute; }
.pipe-line svg { display:block; width:100%; height:100%; overflow:visible; }
.pipe-line--1 { width:34%; height:36%; right:8%; top:29%; }
.pipe-line--2 { width:25%; height:25%; left:22%; bottom:9%; transform:rotate(180deg); }
.pipe-line__track { fill:none; stroke:rgba(107,215,208,.2); stroke-width:2.2; }
.pipe-line__flow { fill:none; stroke:var(--hydro); stroke-width:2.6; stroke-linecap:round; stroke-dasharray:16 84; filter:drop-shadow(0 0 6px rgba(107,215,208,.9)); animation:pipeFlow 2.4s linear infinite; }
.pipe-line--2 .pipe-line__track { stroke:rgba(224,135,82,.22); }
.pipe-line--2 .pipe-line__flow { stroke:var(--copper); stroke-dasharray:14 86; filter:drop-shadow(0 0 6px rgba(224,135,82,.9)); animation-duration:3.1s; }
@keyframes pipeFlow { to { stroke-dashoffset:-200; } }
.status-card { position:absolute; right:24px; top:36%; width:190px; padding:16px; border-radius:16px; border:1px solid rgba(255,255,255,.13); background:rgba(11,15,20,.72); backdrop-filter:blur(12px); }
.status-row { display:flex; justify-content:space-between; gap:10px; align-items:center; font-size:.78rem; color:var(--muted); }
.status-row + .status-row { margin-top:10px; }
.status-row strong { color:#fff; }
.status-row > span { display:inline-flex; align-items:center; gap:7px; }
.status-dot { width:8px; height:8px; border-radius:50%; background:var(--hydro); box-shadow:0 0 0 5px rgba(107,215,208,.12); animation:pulse 2.2s infinite; flex:0 0 auto; }
.board-tag { position:absolute; left:24px; bottom:24px; display:inline-flex; gap:9px; align-items:center; padding:11px 13px; border-radius:12px; background:var(--hydro); color:var(--ink); font-size:1.1rem; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }
@keyframes pulse { 50% { box-shadow:0 0 0 10px rgba(107,215,208,0); } }
@media (prefers-reduced-motion: reduce) {
  .board-sheen, .pipe-line__flow, .status-dot { animation: none; }
  .engineering-board[data-tilt] { transform: none !important; }
}

/* Logos / ribbons */
.trust-ribbon { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#0e141a; }
.trust-ribbon__inner { min-height:92px; display:grid; grid-template-columns:1.1fr repeat(3,1fr); align-items:center; }
.trust-ribbon__label { color:var(--muted); font-size:.82rem; text-transform:uppercase; letter-spacing:.12em; }
.trust-ribbon__stat { padding:18px 28px; border-left:1px solid var(--line); }
.trust-ribbon__stat strong { display:block; color:#fff; font-size:1.45rem; line-height:1; margin-bottom:5px; }
.trust-ribbon__stat span { color:var(--muted); font-size:.82rem; }

/* Service cards */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.service-card { min-height:460px; position:relative; border:1px solid var(--line-dark); border-radius:var(--radius); overflow:hidden; background:#fff; color:var(--ink); padding:30px; display:flex; flex-direction:column; transition:transform .3s var(--ease), box-shadow .3s var(--ease); }
.service-card:hover { transform:translateY(-7px); box-shadow:var(--shadow-soft); }
.service-card:nth-child(2) { background:#151d26; color:#fff; border-color:rgba(255,255,255,.1); }
.service-card:nth-child(3) { background:#dff4f1; }
.service-card__num { font-size:.72rem; letter-spacing:.14em; font-weight:850; color:var(--muted-dark); }
.service-card:nth-child(2) .service-card__num { color:var(--muted); }
.service-card__icon { height:200px; display:grid; place-items:center; margin:10px 0 20px; }
.service-card__icon img { max-height:180px; max-width:90%; object-fit:contain; filter:grayscale(1) contrast(1.1); opacity:.83; transition:transform .35s var(--ease); }
.service-card:hover .service-card__icon img { transform:scale(1.04) rotate(-1deg); }
.service-card:nth-child(2) .service-card__icon img { filter:grayscale(1) brightness(1.7); }
.service-card h3 { margin-top:auto; }
.service-card p { color:var(--muted-dark); margin-top:12px; font-size:.95rem; }
.service-card:nth-child(2) p { color:var(--muted); }
.service-card__link { margin-top:22px; font-weight:800; display:inline-flex; gap:8px; align-items:center; color:#17777b; }
.service-card:nth-child(2) .service-card__link { color:var(--hydro); }

/* Diagnostic / wizard */
.diagnostic-shell { display:grid; grid-template-columns:.78fr 1.22fr; border:1px solid var(--line); border-radius:30px; overflow:hidden; background:var(--surface); box-shadow:var(--shadow); }
.diagnostic-intro { padding:clamp(30px,4vw,56px); background:linear-gradient(150deg,#18232d,#10161d); position:relative; overflow:hidden; }
.diagnostic-intro::after { content:"?"; position:absolute; right:-20px; bottom:-90px; font-size:330px; font-weight:900; line-height:1; color:rgba(255,255,255,.035); }
.diagnostic-intro h2 { font-size:clamp(2.1rem,3.8vw,3.7rem); margin:18px 0; }
.diagnostic-intro p { color:var(--muted); max-width:520px; }
.diagnostic-panel { padding:clamp(28px,4vw,54px); background:#f5f8f8; color:var(--ink); min-height:480px; }
.wizard-progress { display:flex; gap:8px; margin-bottom:28px; }
.wizard-progress span { height:4px; flex:1; background:#d8e0e2; border-radius:999px; }
.wizard-progress span.is-active { background:var(--hydro-2); }
.wizard-step { display:none; }
.wizard-step.is-active { display:block; animation:fadeUp .35s var(--ease); }
@keyframes fadeUp { from { opacity:0; transform:translateY(8px); } }
.wizard-question { font-size:clamp(1.5rem,2.8vw,2.3rem); font-weight:820; letter-spacing:-.03em; line-height:1.15; margin-bottom:22px; }
.choice-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.choice { min-height:92px; padding:16px; border:1px solid #d5dde0; background:#fff; border-radius:15px; cursor:pointer; text-align:left; font-weight:760; color:var(--ink); transition:.2s; }
.choice:hover, .choice:focus-visible { border-color:var(--hydro-2); box-shadow:0 0 0 3px rgba(53,174,178,.12); }
.choice small { display:block; color:var(--muted-dark); font-weight:500; margin-top:4px; }
.wizard-result { padding:22px; border-radius:18px; background:#fff; border:1px solid #dbe3e5; }
.wizard-result__label { font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; font-weight:850; color:#287e82; }
.wizard-result h3 { margin:9px 0 12px; }
.wizard-result p { color:var(--muted-dark); }
.wizard-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }

/* Audience tabs */
.audience-tabs { display:grid; grid-template-columns:280px 1fr; gap:28px; }
.tab-list { display:flex; flex-direction:column; gap:8px; }
.tab-button { border:0; border-radius:14px; padding:17px 18px; text-align:left; background:transparent; color:var(--muted); font-weight:760; cursor:pointer; border:1px solid transparent; }
.tab-button:hover { background:rgba(255,255,255,.04); }
.tab-button[aria-selected="true"] { color:#fff; background:var(--surface); border-color:var(--line); }
.tab-panel { display:none; min-height:360px; border:1px solid var(--line); border-radius:24px; background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.015)); padding:clamp(28px,4vw,52px); }
.tab-panel.is-active { display:grid; grid-template-columns:1fr .85fr; gap:38px; align-items:center; animation:fadeUp .35s var(--ease); }
.tab-panel p { color:var(--muted); margin:16px 0 24px; }
.feature-list { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.feature-list li { display:flex; gap:10px; align-items:flex-start; color:#cbd4d9; }
.feature-list li::before { content:""; width:8px; height:8px; border-radius:50%; margin-top:.55em; background:var(--hydro); flex:0 0 auto; }
.tab-visual { min-height:250px; border-radius:20px; background:radial-gradient(circle at 30% 30%,rgba(107,215,208,.22),transparent 38%),linear-gradient(135deg,#1d2b35,#0d1319); position:relative; overflow:hidden; }
.tab-visual::before, .tab-visual::after { content:""; position:absolute; border:2px solid rgba(255,255,255,.12); border-radius:50%; }

.tab-visual::after { width:90px; height:90px; right:42px; top:80px; border-color:rgba(107,215,208,.5); }
.tab-visual__metric { position:absolute; left:24px; bottom:24px; }
.tab-visual__metric strong { display:block; font-size:2.4rem; color:#fff; line-height:1; }
.tab-visual__metric span { color:var(--muted); font-size:.82rem; }

/* Gallery */
.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); grid-auto-rows:180px; gap:14px; }
.gallery-item { position:relative; overflow:hidden; border-radius:18px; background:#dfe5e7; cursor:zoom-in; border:0; padding:0; }
.gallery-item:nth-child(1) { grid-column:span 5; grid-row:span 2; }
.gallery-item:nth-child(2) { grid-column:span 3; grid-row:span 2; }
.gallery-item:nth-child(3) { grid-column:span 4; }
.gallery-item:nth-child(4) { grid-column:span 4; }
.gallery-item:nth-child(5) { grid-column:span 4; }
.gallery-item:nth-child(6) { grid-column:span 4; }
.gallery-item:nth-child(7) { grid-column:span 6; }
.gallery-item:nth-child(8) { grid-column:span 6; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease), filter .3s; }
.gallery-item:hover img { transform:scale(1.055); filter:saturate(1.05); }
.gallery-item::after { content:"Zobacz"; position:absolute; right:12px; bottom:12px; background:rgba(11,15,20,.78); color:#fff; padding:6px 10px; border-radius:9px; font-size:.72rem; font-weight:800; opacity:0; transform:translateY(5px); transition:.2s; }
.gallery-item:hover::after { opacity:1; transform:none; }
.lightbox { position:fixed; inset:0; z-index:2000; display:none; place-items:center; padding:28px; background:rgba(5,8,11,.9); backdrop-filter:blur(12px); }
.lightbox.is-open { display:grid; }
.lightbox img { max-height:86vh; max-width:min(100%,1000px); border-radius:18px; box-shadow:0 30px 100px rgba(0,0,0,.5); }
.lightbox__close { position:absolute; top:20px; right:20px; width:48px; height:48px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.08); color:#fff; font-size:1.7rem; cursor:pointer; }

/* Process */
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); border-radius:22px; overflow:hidden; }
.process-step { padding:30px; background:#fff; min-height:260px; }
.process-step__num { width:46px; height:46px; display:grid; place-items:center; border-radius:14px; background:var(--ink); color:#fff; font-size:.8rem; font-weight:850; }
.process-step h3 { font-size:1.35rem; margin:54px 0 12px; }
.process-step p { color:var(--muted-dark); font-size:.92rem; }

/* CTA */
.cta-panel { position:relative; overflow:hidden; border-radius:30px; padding:clamp(34px,6vw,78px); background:var(--hydro); color:var(--ink); display:grid; grid-template-columns:1.1fr .7fr; gap:40px; align-items:center; }
.cta-panel::after { content:""; position:absolute; width:360px; height:360px; right:-27px; top:50px; background-image: url("../img/brand/logo-mark.png");
  background-repeat: no-repeat; opacity: 0.5; }
.cta-panel h2 { position:relative; z-index:1; }
.cta-panel p { margin-top:18px; max-width:650px; color:#245153; position:relative; z-index:1; }
.cta-panel__actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; position:relative; z-index:1; }

/* FAQ */
.faq-list { border-top:1px solid var(--line-dark); }
.faq-item { border-bottom:1px solid var(--line-dark); }
.faq-question { width:100%; padding:24px 0; display:flex; justify-content:space-between; gap:24px; align-items:center; border:0; background:transparent; color:var(--ink); text-align:left; font-weight:780; cursor:pointer; }
.faq-question::after { content:"+"; width:34px; height:34px; flex:0 0 auto; display:grid; place-items:center; border-radius:50%; background:#fff; border:1px solid var(--line-dark); font-size:1.25rem; transition:transform .25s; }
.faq-question[aria-expanded="true"]::after { transform:rotate(45deg); }
.faq-answer { display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s var(--ease); }
.faq-answer > div { overflow:hidden; }
.faq-answer p { color:var(--muted-dark); max-width:850px; padding:0 60px 0 0; }
.faq-item.is-open .faq-answer { grid-template-rows:1fr; }
.faq-item.is-open .faq-answer p { padding-bottom:26px; }

/* Inner page */
.page-hero { padding:clamp(80px,10vw,150px) 0 80px; position:relative; overflow:hidden; border-bottom:1px solid var(--line); }
.page-hero::before { content:""; position:absolute; inset:0; background:linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(90deg,#000,transparent); }
.page-hero__grid { display:grid; grid-template-columns:1fr .48fr; gap:46px; position:relative; }
.page-hero h1 { font-size:clamp(3rem,6vw,4.0rem); margin:18px 0 24px; }
.page-hero__aside { align-self:end; color:var(--muted); border-left:1px solid var(--line); padding-left:28px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; color:var(--muted); font-size:.82rem; }
.breadcrumbs a:hover { color:#fff; }

.offer-list { display:grid; gap:14px; }
.offer-row { display:grid; grid-template-columns:90px 1fr 42px; gap:22px; align-items:center; padding:24px; border:1px solid var(--line-dark); border-radius:18px; background:#fff; transition:.2s; }

.offer-row__icon { width:72px; height:72px; border-radius:16px; background:var(--paper-2); display:grid; place-items:center; overflow:hidden; }
.offer-row__icon img { width:70%; height:70%; object-fit:contain; filter:grayscale(1); opacity:.78; }
.offer-row p { color:var(--muted-dark); margin-top:7px; }
.offer-row__arrow { font-size:1.4rem; color:#27868a; }

.split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:start; }
.split--center { align-items:center; }
.prose { display:grid; gap:18px; }
.prose p, .prose li { color:var(--muted-dark); }
.prose ul { margin:0; padding-left:20px; }
.prose strong { color:var(--ink); }
.dark-prose p, .dark-prose li { color:var(--muted); }
.dark-prose strong { color:#fff; }

.number-stack { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.number-card { padding:26px; min-height:180px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.number-card strong { display:block; font-size:clamp(2.2rem,4vw,4rem); line-height:1; color:var(--hydro); letter-spacing:-.05em; }
.number-card span { display:block; margin-top:12px; color:var(--muted); font-size:.9rem; }

/* Forms */
.form-card { border:1px solid var(--line-dark); border-radius:26px; background:#fff; color:var(--ink); padding:clamp(24px,4vw,44px); box-shadow:var(--shadow-soft); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field { display:grid; gap:7px; }
.field--full { grid-column:1/-1; }
.field label { font-size:.8rem; font-weight:780; color:#43515b; }
.field input, .field select, .field textarea { width:100%; border:1px solid #cfd9dc; border-radius:12px; background:#fbfdfd; color:var(--ink); padding:13px 14px; outline:none; transition:.2s; }
.field input:focus, .field select:focus, .field textarea:focus { border-color:var(--hydro-2); box-shadow:0 0 0 4px rgba(53,174,178,.12); background:#fff; }
.field textarea { min-height:150px; resize:vertical; }
.field-help { font-size:.74rem; color:var(--muted-dark); }
.check { display:flex; gap:10px; align-items:flex-start; font-size:.78rem; color:var(--muted-dark); line-height:1.45; }
.check input { margin-top:4px; accent-color:var(--hydro-2); }
.form-actions { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-top:20px; }
.form-status { min-height:24px; font-size:.85rem; font-weight:650; }
.form-status.is-success { color:#1d7b50; }
.form-status.is-error { color:#b83f34; }
.hp-field { position:absolute!important; left:-99999px!important; opacity:0!important; pointer-events:none!important; }

.contact-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:28px; align-items:start; }
.contact-stack { display:grid; gap:14px; }
.contact-card { padding:24px; border:1px solid var(--line); border-radius:18px; background:var(--surface); }
.contact-card__label { color:var(--muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.12em; }
.contact-card a, .contact-card strong { display:block; font-size:1.25rem; margin-top:8px; color:#fff; word-break:break-word; }
.contact-card a:hover { color:var(--hydro); }

/* Footer */
.site-footer { background:#080b0f; border-top:1px solid var(--line); padding:68px 0 26px; }
.footer-grid { display:grid; grid-template-columns:1.2fr .7fr .7fr 1fr; gap:42px; }
.footer-brand img { width:180px; height:76px; object-fit:contain; object-position:left center; }
.footer-brand p { color:var(--muted); max-width:360px; font-size:.9rem; margin-top:18px; }
.footer-col h4 { font-size:.78rem; color:#fff; letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
.footer-links { display:grid; gap:9px; }
.footer-links a { color:var(--muted); font-size:.9rem; }
.footer-links a:hover { color:#fff; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; align-items:center; border-top:1px solid var(--line); padding-top:22px; margin-top:52px; color:#71808b; font-size:.77rem; }

/* Floating client actions */
.floating-actions { position:fixed; right:18px; bottom:18px; z-index:900; display:grid; gap:10px; }
.float-btn { width:52px; height:52px; border-radius:16px; display:grid; place-items:center; border:1px solid var(--line); background:rgba(16,22,29,.9); color:#fff; box-shadow:0 14px 30px rgba(0,0,0,.25); backdrop-filter:blur(12px); cursor:pointer; }
.float-btn:hover { background:var(--hydro); color:var(--ink); }
.float-btn svg { width:21px; height:21px; }
.mobile-actionbar { display:none; }

/* Modal */
.modal { position:fixed; inset:0; z-index:1800; display:none; place-items:center; padding:20px; background:rgba(3,6,9,.78); backdrop-filter:blur(10px); }
.modal.is-open { display:grid; }
.modal__panel { width:min(100%,620px); max-height:90vh; overflow:auto; border-radius:24px; background:#f4f7f7; color:var(--ink); box-shadow:0 40px 120px rgba(0,0,0,.45); }
.modal__head { display:flex; justify-content:space-between; gap:20px; align-items:flex-start; padding:26px 28px 18px; border-bottom:1px solid var(--line-dark); }
.modal__head h3 { font-size:1.6rem; }
.modal__close { width:40px; height:40px; border-radius:50%; border:1px solid var(--line-dark); background:#fff; cursor:pointer; font-size:1.4rem; }
.modal__body { padding:24px 28px 30px; }

.notice { padding:16px 18px; border-radius:14px; border:1px solid rgba(224,135,82,.32); background:rgba(224,135,82,.08); color:#774122; font-size:.88rem; }
.badge { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border-radius:999px; background:rgba(107,215,208,.1); border:1px solid rgba(107,215,208,.25); color:var(--hydro); font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }

/* Responsive */
@media (max-width: 1080px) {
  .nav { display:none; position:fixed; inset:var(--header-h) 0 auto 0; padding:20px; background:rgba(11,15,20,.98); border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; max-height:calc(100vh - var(--header-h)); overflow:auto; }
  .nav.is-open { display:flex; }
  .nav a { padding:14px 16px; font-size:1rem; }
  .menu-toggle { display:block; }
  .header-phone { display:none; }
  .hero-grid { grid-template-columns:1fr .8fr; }
  .engineering-board { min-height:510px; }
  .services-grid { grid-template-columns:1fr 1fr; }
  .service-card:nth-child(3) { grid-column:1/-1; min-height:360px; display:grid; grid-template-columns:1fr 1fr; column-gap:28px; }
  .service-card:nth-child(3) .service-card__icon { grid-row:1/5; grid-column:2; height:260px; }
  .diagnostic-shell { grid-template-columns:1fr; }
  .diagnostic-intro { min-height:280px; }
  .process-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
}

@media (max-width: 820px) {
  :root { --header-h:70px; }
  body { font-size:16px; }
  .container { width:min(calc(100% - 28px),var(--max)); }
  .header-actions > .btn { display:none; }
  .brand img { width:138px; height:50px; }
  .hero { min-height:auto; }
  .hero-grid { grid-template-columns:1fr; padding:64px 0 54px; }
  .hero-copy { gap:22px; }
  .engineering-board { min-height:440px; }
  .trust-ribbon__inner { grid-template-columns:1fr 1fr; }
  .trust-ribbon__label { grid-column:1/-1; padding:18px 0 6px; }
  .trust-ribbon__stat { border-left:0; border-top:1px solid var(--line); padding:18px 0; }
  .trust-ribbon__stat:nth-child(even) { padding-left:20px; border-left:1px solid var(--line); }
  .section-head { grid-template-columns:1fr; gap:18px; }
  .section-head__side { justify-self:start; }
  .services-grid { grid-template-columns:1fr; }
  .service-card, .service-card:nth-child(3) { grid-column:auto; min-height:400px; display:flex; }
  .service-card:nth-child(3) .service-card__icon { grid-row:auto; grid-column:auto; height:200px; }
  .audience-tabs { grid-template-columns:1fr; }
  .tab-list { flex-direction:row; overflow:auto; padding-bottom:4px; }
  .tab-button { white-space:nowrap; }
  .tab-panel.is-active { grid-template-columns:1fr; }
  .gallery-grid { grid-template-columns:1fr 1fr; grid-auto-rows:190px; }
  .gallery-item, .gallery-item:nth-child(n) { grid-column:span 1; grid-row:span 1; }
  .gallery-item:nth-child(1), .gallery-item:nth-child(6) { grid-column:1/-1; }
  .cta-panel { grid-template-columns:1fr; }
  .cta-panel__actions { justify-content:flex-start; }
  .page-hero__grid { grid-template-columns:1fr; }
  .page-hero__aside { border-left:0; border-top:1px solid var(--line); padding:24px 0 0; }
  .split, .contact-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .floating-actions { display:none; }
  .mobile-actionbar { position:fixed; left:10px; right:10px; bottom:10px; z-index:950; display:grid; grid-template-columns:1fr 1.25fr; gap:8px; padding:8px; border:1px solid var(--line); background:rgba(11,15,20,.9); border-radius:18px; backdrop-filter:blur(14px); box-shadow:0 16px 50px rgba(0,0,0,.35); }
  .mobile-actionbar .btn { min-height:46px; padding:0 12px; }
  .site-footer { padding-bottom:100px; }
}

@media (max-width: 560px) {
  h1 { font-size:clamp(2.65rem,15vw,4rem); }
  h2 { font-size:clamp(2.15rem,11vw,3.2rem); }
  .hero-trust { display:grid; grid-template-columns:1fr; }
  .engineering-board { min-height:370px; border-radius:22px; }
  .status-card { right:14px; width:170px; top:39%; }
  .board-tag { left:14px; bottom:14px; }
  .choice-grid { grid-template-columns:1fr; }
  .process-grid { grid-template-columns:1fr; }
  .process-step { min-height:210px; }
  .process-step h3 { margin-top:36px; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:240px; }
  .gallery-item, .gallery-item:nth-child(n) { grid-column:1; }
  .number-stack { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .field--full { grid-column:auto; }
  .offer-row { grid-template-columns:64px 1fr; }
  .offer-row__icon { width:60px; height:60px; }
  .offer-row__arrow { display:none; }
  .footer-grid { grid-template-columns:1fr; }
  .footer-bottom { flex-direction:column; align-items:flex-start; }
  .modal__head, .modal__body { padding-left:20px; padding-right:20px; }
}

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