website: fix the phone menu and the footer column - both live defects
gates / gates (push) Successful in 6m42s

Reported from a real phone. Both were mine, both shipped in the switch.

1. THE PHONE MENU WAS EMPTY. The drawer slid open correctly but had no items in
   it. site.css's OLD mobile nav was still reaching the shell's sidebar: under
   @media (max-width: 900px) it sets .nav-links to position:fixed; right:-100%,
   which parked the menu off-canvas INSIDE the drawer. Measured at 390px and
   860px: position fixed, right -280px.

   The cause is a hole in my own check. At STOP 1 I diffed the two stylesheets'
   declaration sets and found "exactly six" leaking declarations - but that diff
   EXCLUDED @media blocks. Re-run media-aware, the real number is FORTY, and the
   worst of them only apply below 900px, which is why desktop looked right and a
   phone did not. A check that silently skips part of its subject is not a check;
   this one reported a confident, wrong number.

   Fixed at the source rather than per-property: every selector belonging to the
   website's OLD chrome (nav, .nav-links*, .mobile-overlay, .hamburger, .logo*,
   .lang-globe-li - 29 occurrences) is now scoped `body:not(.shell)`. Scoped, not
   deleted, so a future non-shell page still works. .hamburger-box and
   .hamburger-line are deliberately left unscoped: the shell's burger uses them.
   Leaks after the fix: 40 -> 0.

2. THE FOOTER RENDERED AS A SECOND COLUMN at the top right on 16 pages. body is a
   flex row on a shell page, and my insert only moved the footer inside <main>
   when the page ENDED with </main>; pages with scripts after it fell through and
   left the footer as a direct child of body, i.e. a flex sibling of the sidebar.
   Moved inside <main> on all 16, each move asserted to have landed inside.

Both are now gated: gate 3b requires every shell page's footer to be INSIDE
<main class="content">, red-proofed by putting one outside and watching it convict.

site.css?v=23 / shell.css?v=23.
This commit is contained in:
2026-10-11 16:25:01 +02:00
parent f92e81ee14
commit 5aeb36b5bd
22 changed files with 186 additions and 197 deletions
+8 -8
View File
@@ -7,8 +7,8 @@
<title>Az oldal nem található | Felhom.eu</title>
<meta name="robots" content="noindex, follow">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -71,6 +71,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -133,12 +139,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+2 -2
View File
@@ -20,8 +20,8 @@
<meta property="og:site_name" content="Felhom.eu">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
+8 -8
View File
@@ -44,8 +44,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="/assets/gallery.js?v=2"></script>
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -1286,6 +1286,12 @@
<a href="/kapcsolat" class="cta-button">Kapcsolatfelvétel →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
@@ -1349,12 +1355,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+39 -61
View File
@@ -117,7 +117,7 @@ nav {
border-bottom: 1px solid var(--line);
z-index: 200;
}
nav .container { display: flex; justify-content: space-between; align-items: center; }
body:not(.shell) nav .container { display: flex; justify-content: space-between; align-items: center; }
/* The brand lockup is TWO images, not an image plus typed text (2026-10-09). logo.png carries its
own 'felhom.eu' lettering underneath the mark, so showing it beside a typed span said the name
twice and shrank the mark to fit.
@@ -134,19 +134,18 @@ nav .container { display: flex; justify-content: space-between; align-items: cen
the site deliberately loads NO external font: the published privacy notice says so, so matching it
with a webfont would make a public claim false. */
.logo { display: flex; align-items: center; gap: 14px; text-decoration: none; }
.logo-mark { height: 54px; width: auto; }
.logo-word { height: 25px; width: auto; }
@media (max-width: 600px) { .logo-mark { height: 44px; } .logo-word { height: 21px; } }
.nav-links { display: flex; gap: 32px; list-style: none; }
.nav-links a {
body:not(.shell) .logo-mark { height: 54px; width: auto; }
body:not(.shell) .logo-word { height: 25px; width: auto; }
@media (max-width: 600px) { .logo-mark { height: 44px; } body:not(.shell) .logo-word { height: 21px; } }
body:not(.shell) .nav-links { display: flex; gap: 32px; list-style: none; }
body:not(.shell) .nav-links a {
color: var(--text-2);
text-decoration: none;
font-weight: 500;
font-size: 0.95rem;
transition: color 0.2s ease;
}
.nav-links a:hover,
.nav-links a.active { color: var(--blue-bright); }
body:not(.shell) .nav-links a:hover, body:not(.shell) .nav-links a.active { color: var(--blue-bright); }
/* --- Language globe (2026-10-08, matching the controller's lang_globe): a <details> list, no JavaScript.
The current language is marked by weight and a blue rule, not a check glyph (the emoji gate's range). --- */
@@ -157,9 +156,9 @@ nav .container { display: flex; justify-content: space-between; align-items: cen
.lang-globe-btn::marker { content: ""; }
.lang-globe-btn:hover, .lang-globe[open] .lang-globe-btn { color: var(--blue-bright); }
.lang-globe-menu { position: absolute; top: calc(100% + 12px); right: 0; margin: 0; padding: 4px; list-style: none; min-width: 8rem; background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--radius); z-index: 210; }
.nav-links .lang-globe-item { display: block; padding: 6px 10px; font-size: 0.9rem; white-space: nowrap; color: var(--text-2); border-left: 2px solid transparent; }
.nav-links .lang-globe-item:hover { color: var(--blue-bright); }
.nav-links .lang-globe-item.current { color: var(--text-1); font-weight: 700; border-left-color: var(--blue); }
body:not(.shell) .nav-links .lang-globe-item { display: block; padding: 6px 10px; font-size: 0.9rem; white-space: nowrap; color: var(--text-2); border-left: 2px solid transparent; }
body:not(.shell) .nav-links .lang-globe-item:hover { color: var(--blue-bright); }
body:not(.shell) .nav-links .lang-globe-item.current { color: var(--text-1); font-weight: 700; border-left-color: var(--blue); }
/* --- Two-tone heading (brand signature): accent span is solid blue-bright --- */
h1 span, h2 span, h3 span, h4 span { color: var(--blue-bright); }
@@ -268,10 +267,10 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
transition: transform 0.3s ease, opacity 0.3s ease;
transform-origin: center;
}
.hamburger.is-active .hamburger-line:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.hamburger.is-active .hamburger-line:nth-child(2) { opacity: 0; }
.hamburger.is-active .hamburger-line:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
.mobile-overlay {
body:not(.shell) .hamburger.is-active .hamburger-line:nth-child(1) { transform: translateY(9px) rotate(45deg); }
body:not(.shell) .hamburger.is-active .hamburger-line:nth-child(2) { opacity: 0; }
body:not(.shell) .hamburger.is-active .hamburger-line:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
body:not(.shell) .mobile-overlay {
display: none;
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
@@ -280,11 +279,11 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
opacity: 0;
transition: opacity 0.3s ease;
}
.mobile-overlay.is-visible { opacity: 1; }
body:not(.shell) .mobile-overlay.is-visible { opacity: 1; }
@media (max-width: 900px) {
.hamburger { display: block; }
.nav-links {
body:not(.shell) .nav-links {
display: flex;
flex-direction: column;
position: fixed;
@@ -301,17 +300,17 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
transition: right 0.3s ease;
overflow-y: auto;
}
.nav-links.is-open { right: 0; }
.nav-links li { border-bottom: 1px solid var(--line-soft); }
.nav-links a { display: block; padding: 16px 0; font-size: 1.05rem; }
body:not(.shell) .nav-links.is-open { right: 0; }
body:not(.shell) .nav-links li { border-bottom: 1px solid var(--line-soft); }
body:not(.shell) .nav-links a { display: block; padding: 16px 0; font-size: 1.05rem; }
/* the globe in the phone menu: last item, its list opens in place (not a floating box the menu would cut off) */
.lang-globe-li { display: block; }
.lang-globe-btn { padding: 16px 0; }
.lang-globe-menu { position: static; min-width: 0; padding: 0 0 8px; background: none; border: none; }
.nav-links .lang-globe-menu li { border-bottom: none; }
.nav-links .lang-globe-item { padding: 10px 0 10px 12px; font-size: 1.05rem; }
.mobile-overlay { display: block; pointer-events: none; }
.mobile-overlay.is-visible { pointer-events: auto; }
body:not(.shell) .nav-links .lang-globe-menu li { border-bottom: none; }
body:not(.shell) .nav-links .lang-globe-item { padding: 10px 0 10px 12px; font-size: 1.05rem; }
body:not(.shell) .mobile-overlay { display: block; pointer-events: none; }
body:not(.shell) .mobile-overlay.is-visible { pointer-events: auto; }
body.menu-open { overflow: hidden; }
}
@@ -320,9 +319,9 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
wrapped row instead, and the header scrolls with the page so it can grow. Script-on pages are unchanged. */
@media (max-width: 900px) and (scripting: none) {
nav { position: static; }
nav .container { flex-wrap: wrap; row-gap: 12px; }
.hamburger { display: none; }
.nav-links {
body:not(.shell) nav .container { flex-wrap: wrap; row-gap: 12px; }
body:not(.shell) .hamburger { display: none; }
body:not(.shell) .nav-links {
position: static;
flex-direction: row;
flex-wrap: wrap;
@@ -335,8 +334,8 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
transition: none;
overflow: visible;
}
.nav-links li { border-bottom: none; }
.nav-links a { padding: 6px 0; font-size: 1rem; }
body:not(.shell) .nav-links li { border-bottom: none; }
body:not(.shell) .nav-links a { padding: 6px 0; font-size: 1rem; }
.lang-globe-btn { padding: 6px 0; }
}
@@ -1197,18 +1196,15 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
transition: color 0.2s ease;
}
.page-technologiak .toc-links a:hover { color: var(--text-1); }
.page-technologiak .info-card,
.page-teszteles .info-card {
.page-technologiak .info-card, .page-teszteles .info-card {
background: var(--bg-1);
border: 1px solid var(--line);
border-radius: var(--radius);
padding: 40px;
margin-bottom: 32px;
}
.page-technologiak .info-card:last-child,
.page-teszteles .info-card:last-child { margin-bottom: 0; }
.page-technologiak .info-card h3,
.page-teszteles .info-card h3 {
.page-technologiak .info-card:last-child, .page-teszteles .info-card:last-child { margin-bottom: 0; }
.page-technologiak .info-card h3, .page-teszteles .info-card h3 {
font-size: 1.4rem;
margin-bottom: 20px;
color: var(--text-1);
@@ -1216,29 +1212,23 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
align-items: center;
gap: 12px;
}
.page-technologiak .info-card h3 .icon,
.page-teszteles .info-card h3 .icon { font-size: 1.6rem; }
.page-technologiak .info-card p,
.page-teszteles .info-card p {
.page-technologiak .info-card h3 .icon, .page-teszteles .info-card h3 .icon { font-size: 1.6rem; }
.page-technologiak .info-card p, .page-teszteles .info-card p {
color: var(--text-2);
font-size: 1rem;
line-height: 1.8;
margin-bottom: 16px;
}
.page-technologiak .info-card p:last-child,
.page-teszteles .info-card p:last-child { margin-bottom: 0; }
.page-technologiak .highlight-box,
.page-teszteles .highlight-box {
.page-technologiak .info-card p:last-child, .page-teszteles .info-card p:last-child { margin-bottom: 0; }
.page-technologiak .highlight-box, .page-teszteles .highlight-box {
background: var(--blue-dim);
border: 1px solid var(--blue);
border-radius: var(--radius);
padding: 20px 24px;
margin: 20px 0;
}
.page-technologiak .highlight-box p,
.page-teszteles .highlight-box p { color: var(--text-1); margin: 0; }
.page-technologiak .highlight-box strong,
.page-teszteles .highlight-box strong { color: var(--blue-bright); }
.page-technologiak .highlight-box p, .page-teszteles .highlight-box p { color: var(--text-1); margin: 0; }
.page-technologiak .highlight-box strong, .page-teszteles .highlight-box strong { color: var(--blue-bright); }
.page-technologiak .warning-box {
background: var(--bg-1);
border: 1px solid var(--warn);
@@ -2159,20 +2149,8 @@ footer a:hover, footer a:focus-visible { text-decoration: underline; }
border-bottom: 1px solid transparent;
transition: border-color 0.2s ease;
}
.content-section p a:not(.cta-button):visited,
.content-section li a:not(.cta-button):visited,
.info-card a:not(.cta-button):visited,
.highlight-box a:not(.cta-button):visited,
.page-header p a:not(.cta-button):visited { color: var(--blue-bright); }
.content-section p a:not(.cta-button):hover,
.content-section li a:not(.cta-button):hover,
.info-card a:not(.cta-button):hover,
.highlight-box a:not(.cta-button):hover,
.page-header p a:not(.cta-button):hover,
.content-section p a:not(.cta-button):focus-visible,
.content-section li a:not(.cta-button):focus-visible,
.info-card a:not(.cta-button):focus-visible,
.highlight-box a:not(.cta-button):focus-visible { border-bottom-color: var(--blue-bright); }
.content-section p a:not(.cta-button):visited, .content-section li a:not(.cta-button):visited, .info-card a:not(.cta-button):visited, .highlight-box a:not(.cta-button):visited, .page-header p a:not(.cta-button):visited { color: var(--blue-bright); }
.content-section p a:not(.cta-button):hover, .content-section li a:not(.cta-button):hover, .info-card a:not(.cta-button):hover, .highlight-box a:not(.cta-button):hover, .page-header p a:not(.cta-button):hover, .content-section p a:not(.cta-button):focus-visible, .content-section li a:not(.cta-button):focus-visible, .info-card a:not(.cta-button):focus-visible, .highlight-box a:not(.cta-button):focus-visible { border-bottom-color: var(--blue-bright); }
/* Lists inside an info-card. The card rules styled only h3 and p, so a <ul> fell back to the
browser default: full-strength black-on-dark bullets at the wrong indent. Mirrors `.legal`. */
+8 -8
View File
@@ -38,8 +38,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -278,6 +278,12 @@
<a href="/kapcsolat" class="cta-button">Kapcsolatfelvétel →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -340,12 +346,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -44,8 +44,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="/assets/gallery.js?v=2"></script>
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -1286,6 +1286,12 @@
<a href="/en/contact" class="cta-button">Get in touch →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
</main>
<script>
@@ -1349,12 +1355,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -38,8 +38,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -278,6 +278,12 @@
<a href="/en/contact" class="cta-button">Get in touch →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -340,12 +346,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -27,8 +27,8 @@
<meta name="twitter:description" content="A question? Write to us: info@felhom.eu">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image-en.png">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -201,6 +201,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
</main>
<script>
@@ -623,12 +629,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -25,8 +25,8 @@
<meta name="twitter:description" content="Download, checksum, and what to check before you install.">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image.png">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -111,6 +111,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -173,12 +179,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -364,8 +364,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -964,6 +964,12 @@
<a href="/en/contact" class="cta-button">Get in touch →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
</main>
<script>
@@ -1056,12 +1062,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+2 -2
View File
@@ -55,8 +55,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="/assets/gallery.js?v=2"></script>
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
+8 -8
View File
@@ -39,8 +39,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="/assets/gallery.js?v=2"></script>
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -457,6 +457,12 @@
<a href="/en/apps" class="cta-button-secondary">Browse the apps →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -519,12 +525,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -38,8 +38,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -237,6 +237,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -299,12 +305,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Your own cloud, your own rules. Felhom serves households in Hungary.</p>
<p class="footer-legal">Operated by Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Privacy notice (Hungarian)</a> · <a href="/feltetelek">Terms (Hungarian)</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+2 -2
View File
@@ -20,8 +20,8 @@
<meta property="og:site_name" content="Felhom.eu">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
+8 -8
View File
@@ -364,8 +364,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -964,6 +964,12 @@
<a href="/#kapcsolat" class="cta-button">Kapcsolatfelvétel →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
@@ -1056,12 +1062,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+2 -2
View File
@@ -55,8 +55,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="/assets/gallery.js?v=2"></script>
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
+8 -8
View File
@@ -27,8 +27,8 @@
<meta name="twitter:description" content="Kérdésed van? Írj nekünk: info@felhom.eu">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image.png">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -201,6 +201,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
@@ -623,12 +629,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -25,8 +25,8 @@
<meta name="twitter:description" content="Letöltés, ellenőrző összeg, és mire figyelj a telepítés előtt.">
<meta name="twitter:image" content="https://felhom.eu/assets/og-image.png">
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -111,6 +111,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -173,12 +179,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -7,8 +7,8 @@
<meta name="description" content="Felhom.eu - Szolgáltatások és árak. Otthoni szerver telepítés, üzemeltetés, monitoring és támogatás.">
<title>Szolgáltatások - Felhom.eu</title>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<!-- analytics intentionally omitted for draft page -->
</head>
@@ -589,6 +589,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -651,12 +657,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -39,8 +39,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="/assets/gallery.js?v=2"></script>
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
@@ -457,6 +457,12 @@
<a href="/alkalmazasok" class="cta-button-secondary">Alkalmazások böngészése →</a>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -519,12 +525,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');
+8 -8
View File
@@ -38,8 +38,8 @@
}
</script>
<!-- shared assets: bump ?v= together on any site.css/icons.svg change -->
<link rel="stylesheet" href="/assets/site.css?v=22">
<link rel="stylesheet" href="/assets/shell.css?v=22">
<link rel="stylesheet" href="/assets/site.css?v=23">
<link rel="stylesheet" href="/assets/shell.css?v=23">
<link rel="icon" type="image/png" href="/assets/logo_favicon_2.svg">
<script defer src="https://stats.felhom.eu/script.js" data-website-id="d419db57-5e1c-48df-bdb3-c29f25fb1661"></script>
</head>
@@ -228,6 +228,12 @@
</div>
</div>
</section>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
</main>
<script>
(function() {
@@ -290,12 +296,6 @@
});
})();
</script>
<footer>
<div class="container">
<p>© 2026 felhom.eu – Saját felhőd, saját szabályaid</p>
<p class="footer-legal">Üzemeltető: Nagyfenyvesi Viktor · <a href="mailto:info@felhom.eu">info@felhom.eu</a> · <a href="/adatkezeles">Adatkezelési tájékoztató</a> · <a href="/feltetelek">Feltételek</a></p>
</div>
</footer>
<script>
(function(){
var b=document.getElementById('navBurger'),s=document.getElementById('sidebar'),k=document.getElementById('navBackdrop');