<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>HBC Group — Newsletter Exclusive · Grand-Duché de Luxembourg</title>
<link rel="preconnect" href="https://fonts.googleapis.com"/>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/>
<link href="https://fonts.googleapis.com/css2?family=Exo+2:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,300;1,400&display=swap" rel="stylesheet"/>
<style>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--navy: #234a64;
--navy-d: #1a3850;
--navy-l: #2e5f80;
--navy-pale: #edf2f6;
--orange: #ff764a;
--orange-d: #e85e30;
--orange-pale:#fff2ed;
--white: #ffffff;
--off: #f6f8fb;
--border: #dce5ee;
--text: #1a2e3d;
--muted: #6d8799;
--light: #edf2f6;
}
html { scroll-behavior: smooth; }
body {
font-family: 'Exo 2', sans-serif;
background: var(--white);
color: var(--text);
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
}
/* ══════════════════════════════════════
PAGE LOADER
══════════════════════════════════════ */
#loader {
position: fixed; inset: 0; z-index: 9999;
background: var(--navy);
display: flex; flex-direction: column;
align-items: center; justify-content: center; gap: 20px;
transition: opacity 0.6s ease, visibility 0.6s ease;
}
#loader.out { opacity: 0; visibility: hidden; pointer-events: none; }
.ld-logo { height: 48px; filter: brightness(0) invert(1); opacity:0; animation: ldUp 0.5s 0.3s ease forwards; }
.ld-bar { width: 160px; height: 2px; background: rgba(255,255,255,0.12); border-radius: 2px; overflow: hidden; opacity:0; animation: ldUp 0.5s 0.5s ease forwards; }
.ld-fill { height: 100%; width: 0; background: var(--orange); animation: ldBar 1.1s 0.6s cubic-bezier(0.4,0,0.2,1) forwards; }
@keyframes ldUp { from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:none} }
@keyframes ldBar { to { width: 100%; } }
/* ══════════════════════════════════════
TOPBAR
══════════════════════════════════════ */
.topbar {
position: fixed; top: 0; left: 0; right: 0; z-index: 500;
height: 72px;
display: flex; align-items: center; justify-content: space-between;
padding: 0 32px;
background: rgba(255,255,255,0.97);
backdrop-filter: blur(14px);
border-bottom: 1px solid var(--border);
transition: height 0.3s ease, box-shadow 0.3s ease;
}
.topbar.scrolled { height: 60px; box-shadow: 0 4px 24px rgba(35,74,100,0.09); }
.t-logo img { height: 42px; width: auto; display: block; }
.t-right { display: flex; align-items: center; gap: 18px; }
.t-phone { font-size: 0.78rem; font-weight: 600; color: var(--muted); text-decoration: none; display: none; }
@media(min-width:560px){ .t-phone { display: block; } }
.t-cta {
display: inline-flex; align-items: center; gap: 7px;
padding: 11px 24px; background: var(--orange); color: white;
font-family: 'Exo 2', sans-serif; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.04em;
border-radius: 6px; text-decoration: none;
transition: background 0.25s, transform 0.25s, box-shadow 0.25s;
}
.t-cta:hover { background: var(--orange-d); transform: translateY(-1px); box-shadow: 0 6px 20px rgba(255,118,74,0.3); }
.t-cta .arr { transition: transform 0.25s; }
.t-cta:hover .arr { transform: translateX(3px); }
/* ══════════════════════════════════════
HERO — PLEIN ÉCRAN AVEC PHOTO LUX
══════════════════════════════════════ */
.hero {
min-height: 100svh;
padding-top: 72px;
position: relative; overflow: hidden;
display: flex; flex-direction: column; justify-content: center;
}
/* Photo Luxembourg en fond — Quartier d'affaires */
.hero-photo {
position: absolute; inset: 0; z-index: 0;
background-image: url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?w=1600&q=80&auto=format&fit=crop');
background-size: cover; background-position: center 40%;
background-repeat: no-repeat;
transform: scale(1.04);
animation: heroZoom 12s ease-out forwards;
}
@keyframes heroZoom { to { transform: scale(1); } }
/* Overlay navy dégradé pour lisibilité du texte */
.hero-overlay {
position: absolute; inset: 0; z-index: 1;
background: linear-gradient(
105deg,
rgba(26,56,80,0.88) 0%,
rgba(35,74,100,0.78) 40%,
rgba(35,74,100,0.40) 70%,
rgba(35,74,100,0.15) 100%
);
}
/* Grain subtil sur la photo */
.hero-grain {
position: absolute; inset: 0; z-index: 2; pointer-events: none;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
opacity: 0.4;
}
/* Trait orange bas de hero */
.hero-cut {
position: absolute; bottom: -1px; left: 0; right: 0; z-index: 3;
height: 70px; overflow: hidden;
}
.hero-cut svg { display: block; width: 100%; height: 100%; }
.hero-inner {
position: relative; z-index: 4;
max-width: 680px; margin: 0 auto;
padding: 56px 32px 80px;
display: flex; flex-direction: column; align-items: flex-start;
}
/* Eyebrow */
.hero-label {
display: inline-flex; align-items: center; gap: 10px;
padding: 8px 16px;
background: rgba(255,118,74,0.18);
border: 1px solid rgba(255,118,74,0.35);
border-radius: 4px; margin-bottom: 26px;
opacity: 0; animation: heroIn 0.6s 1.4s ease forwards;
}
.label-bar { width: 3px; height: 14px; background: var(--orange); border-radius: 2px; flex-shrink: 0; }
.label-text { font-size: 0.73rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.9); }
/* Modifications font-weight ici */
.hero-h1 {
font-size: clamp(2rem, 6vw, 3.8rem); font-weight: 400; line-height: 1.08;
letter-spacing: -0.01em; color: white; margin-bottom: 6px;
opacity: 0; animation: heroIn 0.7s 1.55s ease forwards;
text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.hero-h2 {
font-size: clamp(1.6rem, 4.5vw, 3rem); font-weight: 400; line-height: 1.1;
color: var(--orange); margin-bottom: 28px;
opacity: 0; animation: heroIn 0.7s 1.7s ease forwards;
}
.hero-intro {
font-size: 1rem; font-weight: 400; color: rgba(255,255,255,0.8);
line-height: 1.65; max-width: 520px; margin-bottom: 32px;
opacity: 0; animation: heroIn 0.7s 1.85s ease forwards;
}
.hero-intro strong { color: white; font-weight: 700; }
/* Liste 3 points */
.hero-points {
display: flex; flex-direction: column; gap: 0;
width: 100%; max-width: 520px; margin-bottom: 40px;
border: 1px solid rgba(255,255,255,0.15);
border-radius: 10px; overflow: hidden;
backdrop-filter: blur(8px);
opacity: 0; animation: heroIn 0.7s 2s ease forwards;
}
.hpoint {
display: flex; align-items: center; gap: 14px;
padding: 14px 18px;
background: rgba(255,255,255,0.07);
border-bottom: 1px solid rgba(255,255,255,0.1);
transition: background 0.2s;
}
.hpoint:last-child { border-bottom: none; }
.hpoint:hover { background: rgba(255,255,255,0.12); }
.hpoint-num {
width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
background: var(--orange); color: white;
display: flex; align-items: center; justify-content: center;
font-size: 0.72rem; font-weight: 800;
}
.hpoint:nth-child(2) .hpoint-num { background: rgba(255,255,255,0.2); }
.hpoint:nth-child(3) .hpoint-num { background: rgba(255,255,255,0.15); }
.hpoint-text { font-size: 0.88rem; font-weight: 600; color: rgba(255,255,255,0.9); line-height: 1.45; }
.hpoint-text em { font-style: normal; color: white; font-weight: 700; }
/* JP card */
.jp-card {
display: flex; align-items: center; gap: 16px;
padding: 18px 20px;
background: rgba(255,255,255,0.1);
border: 1px solid rgba(255,255,255,0.2);
backdrop-filter: blur(12px);
border-radius: 10px; max-width: 440px; width: 100%;
position: relative; overflow: hidden;
opacity: 0; animation: heroIn 0.7s 2.15s ease forwards;
}
.jp-av {
width: 52px; height: 52px; border-radius: 8px; flex-shrink: 0;
background: linear-gradient(135deg, var(--orange), var(--orange-d));
display: flex; align-items: center; justify-content: center;
font-size: 1.1rem; font-weight: 900; color: white;
}
.jp-name { font-size: 0.9rem; font-weight: 800; color: white; }
.jp-title { font-size: 0.71rem; color: rgba(255,255,255,0.5); margin-top: 2px; }
.jp-proof {
display: inline-flex; align-items: center; gap: 6px; margin-top: 8px;
padding: 4px 10px; border: 1px solid rgba(255,118,74,0.4); border-radius: 4px;
font-size: 0.66rem; font-weight: 700; color: var(--orange); letter-spacing: 0.05em; text-transform: uppercase;
}
.jp-proof-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--orange); }
/* Crédit photo */
.photo-credit {
position: absolute; bottom: 80px; right: 20px; z-index: 4;
font-size: 0.6rem; color: rgba(255,255,255,0.25); letter-spacing: 0.05em;
}
.photo-credit a { color: rgba(255,255,255,0.3); text-decoration: none; }
@keyframes heroIn { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
/* ══════════════════════════════════════
STATS BAND
══════════════════════════════════════ */
.stats { background: var(--navy); padding: 0; }
.stats-inner { max-width: 680px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); }
.sbox { padding: 30px 20px; text-align: center; position: relative; border-right: 1px solid rgba(255,255,255,0.07); }
.sbox:last-child { border-right: none; }
.sbox-n { display: block; font-size: clamp(1.9rem,5vw,2.8rem); font-weight: 900; color: white; line-height: 1; letter-spacing: -0.02em; }
.sbox-n .suf { color: var(--orange); }
.sbox-l { display: block; margin-top: 5px; font-size: 0.66rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.35); }
/* ══════════════════════════════════════
PILLARS SECTION
══════════════════════════════════════ */
.pillars { padding: 80px 32px; background: var(--off); }
.sec-inner { max-width: 680px; margin: 0 auto; }
.sec-sup { display: flex; align-items: center; gap: 10px; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange); margin-bottom: 14px; }
.sec-sup::before { content:''; width:32px; height:2px; background:var(--orange); border-radius:1px; }
.sec-h { font-size: clamp(1.7rem,4.5vw,2.6rem); font-weight: 400; color: var(--navy); line-height: 1.12; margin-bottom: 12px; letter-spacing: -0.01em; }
.sec-h span { color: var(--orange); }
.sec-sub { font-size: 0.9rem; color: var(--muted); line-height: 1.72; margin-bottom: 44px; max-width: 560px; }
.plist { display: flex; flex-direction: column; gap: 14px; }
.pcard {
background: var(--white); border: 1px solid var(--border); border-radius: 10px;
padding: 24px 22px; display: grid; grid-template-columns: 48px 1fr; gap: 16px; align-items: start;
transition: transform 0.28s ease, box-shadow 0.28s ease, border-color 0.28s ease;
opacity: 0; transform: translateX(-18px);
}
.pcard.in { opacity: 1; transform: none; }
.pcard:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(35,74,100,0.1); border-color: rgba(255,118,74,0.3); }
.pcard-icon { width: 48px; height: 48px; border-radius: 8px; background: var(--navy-pale); display: flex; align-items: center; justify-content: center; transition: background 0.28s; }
.pcard:hover .pcard-icon { background: var(--orange-pale); }
.pcard-icon svg { width: 22px; height: 22px; }
.pcard-title { font-size: 0.95rem; font-weight: 800; color: var(--navy); margin-bottom: 6px; }
.pcard-desc { font-size: 0.82rem; color: var(--muted); line-height: 1.6; }
.pcard-tag { display: inline-block; margin-top: 10px; padding: 3px 10px; background: var(--light); border-radius: 3px; font-size: 0.65rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--navy-l); }
/* ══════════════════════════════════════
PHOTO BREAK — Ville de Luxembourg
══════════════════════════════════════ */
.photo-break {
position: relative; height: 360px; overflow: hidden;
}
.pb-img {
position: absolute; inset: 0;
background-size: cover; background-position: center;
transform: scale(1.08);
transition: transform 0.1s linear;
}
.pb-img.parallax { will-change: transform; }
/* Overlay navy avec texte */
.pb-overlay {
position: absolute; inset: 0;
background: linear-gradient(
to right,
rgba(26,56,80,0.85) 0%,
rgba(26,56,80,0.55) 50%,
rgba(26,56,80,0.2) 100%
);
display: flex; align-items: center;
}
.pb-content { padding: 0 40px; max-width: 500px; }
.pb-tag { font-size: 0.7rem; font-weight: 800; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange); margin-bottom: 10px; }
.pb-quote {
font-size: clamp(1.1rem, 2.8vw, 1.6rem); font-weight: 700;
color: white; line-height: 1.35; font-style: italic;
}
.pb-author { margin-top: 14px; font-size: 0.78rem; font-weight: 600; color: rgba(255,255,255,0.55); }
.pb-author strong { color: rgba(255,255,255,0.85); }
.pb-credit { position: absolute; bottom: 10px; right: 14px; font-size: 0.58rem; color: rgba(255,255,255,0.2); }
.pb-credit a { color: rgba(255,255,255,0.25); text-decoration: none; }
/* ══════════════════════════════════════
FORMULAIRE
══════════════════════════════════════ */
.form-wrap { padding: 80px 32px; background: var(--white); position: relative; overflow: hidden; }
.form-wrap::before {
content:''; position:absolute; bottom:-100px; right:-100px;
width:350px; height:350px; border-radius:50%;
background: radial-gradient(circle, rgba(255,118,74,0.05), transparent 70%);
pointer-events:none;
}
.fcard {
max-width: 560px; margin: 0 auto;
background: var(--off); border: 1px solid var(--border); border-radius: 14px;
padding: 44px 36px; position: relative; z-index: 1;
box-shadow: 0 20px 60px rgba(35,74,100,0.07); overflow: hidden;
}
.fcard::after { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--orange); }
.fcard-sup { font-size:0.7rem; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:var(--orange); display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.fcard-sup::before { content:''; width:32px; height:2px; background:var(--orange); border-radius:1px; }
.fcard-h { font-size: clamp(1.4rem,3.8vw,2rem); font-weight:400; color:var(--navy); line-height:1.18; margin-bottom:6px; letter-spacing:-0.01em; }
.fcard-sub { font-size:0.83rem; color:var(--muted); margin-bottom:28px; }
.sp-row { display:flex; align-items:center; gap:12px; margin-bottom:28px; }
.sp-avs { display:flex; }
.sp-a { width:32px; height:32px; border-radius:50%; border:2px solid var(--off); margin-left:-9px; font-size:0.63rem; font-weight:800; color:white; display:flex; align-items:center; justify-content:center; }
.sp-a:first-child { margin-left:0; }
.sa1{background:#2a5780;} .sa2{background:#2a7050;} .sa3{background:#703060;} .sa4{background:var(--orange);}
.sp-txt { font-size:0.8rem; color:var(--muted); }
.sp-txt strong { color:var(--navy); font-weight:800; }
.fields { display:flex; flex-direction:column; gap:16px; }
.f label { display:block; font-size:0.7rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:var(--muted); margin-bottom:8px; }
.f input {
width:100%; padding:14px 18px;
background:var(--white); border:1.5px solid var(--border); border-radius:8px;
color:var(--text); font-size:0.92rem; font-family:'Exo 2',sans-serif; font-weight:500;
outline:none; transition:border-color 0.22s, box-shadow 0.22s;
}
.f input::placeholder { color:#aabccc; font-weight:400; }
.f input:focus { border-color:var(--orange); box-shadow:0 0 0 3px rgba(255,118,74,0.12); }
.f input.err { border-color:#d94040; box-shadow:0 0 0 3px rgba(217,64,64,0.1); }
.cta-btn {
width:100%; padding:16px 24px; margin-top:6px;
background:var(--orange); color:white;
font-family:'Exo 2',sans-serif; font-size:0.95rem; font-weight:800; letter-spacing:0.04em;
border:none; border-radius:8px; cursor:pointer;
display:flex; align-items:center; justify-content:center; gap:10px;
transition:background 0.25s, transform 0.25s, box-shadow 0.25s;
box-shadow:0 4px 16px rgba(255,118,74,0.3); position:relative; overflow:hidden;
}
.cta-btn::before {
content:''; position:absolute; top:0; left:-100%; width:60%; height:100%;
background:linear-gradient(90deg, transparent, rgba(255,255,255,0.18), transparent);
transition:left 0.55s ease;
}
.cta-btn:hover::before { left:150%; }
.cta-btn:hover { background:var(--orange-d); transform:translateY(-2px); box-shadow:0 8px 24px rgba(255,118,74,0.4); }
.cta-btn:active { transform:none; }
.cta-btn .arr { transition:transform 0.25s; }
.cta-btn:hover .arr { transform:translateX(5px); }
.rgpd { margin-top:18px; padding:14px 16px; background:var(--white); border:1px solid var(--border); border-left:3px solid var(--navy); border-radius:0 8px 8px 0; }
.rgpd p { font-size:0.67rem; color:var(--muted); line-height:1.7; }
.rgpd a { color:var(--orange); text-decoration:underline; font-weight:600; }
#success { display:none; text-align:center; padding:20px 0; }
.ok-icon { width:72px; height:72px; border-radius:50%; background:var(--orange); margin:0 auto 18px; display:flex; align-items:center; justify-content:center; animation:popIn 0.5s cubic-bezier(.175,.885,.32,1.275); }
.ok-icon svg { width:32px; height:32px; }
@keyframes popIn { from{transform:scale(0) rotate(-30deg)} to{transform:scale(1) rotate(0)} }
#success h3 { font-size:1.5rem; font-weight:400; color:var(--navy); margin-bottom:8px; }
#success p { font-size:0.86rem; color:var(--muted); line-height:1.65; }
/* ══════════════════════════════════════
TÉMOIGNAGES
══════════════════════════════════════ */
.testi { padding: 80px 32px; background: var(--off); }
.tcards { display:flex; flex-direction:column; gap:14px; margin-top:40px; }
.tc {
background:var(--white); border:1px solid var(--border); border-radius:10px; padding:26px 24px;
position:relative; overflow:hidden;
opacity:0; transform:translateY(20px);
transition:opacity 0.5s, transform 0.5s, box-shadow 0.3s, border-color 0.3s;
}
.tc.in { opacity:1; transform:none; }
.tc:hover { box-shadow:0 8px 32px rgba(35,74,100,0.09); border-color:rgba(255,118,74,0.25); }
.tc-quote { position:absolute; top:14px; right:18px; font-size:4rem; line-height:1; font-family:Georgia,serif; color:rgba(255,118,74,0.08); pointer-events:none; user-select:none; }
.tc-stars { color:var(--orange); font-size:0.8rem; letter-spacing:3px; margin-bottom:14px; }
.tc-text { font-size:0.88rem; font-style:italic; color:#3a4a60; line-height:1.72; margin-bottom:18px; }
.tc-author { display:flex; align-items:center; gap:12px; padding-top:14px; border-top:1px solid var(--border); }
.tc-av { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:0.75rem; font-weight:800; color:white; flex-shrink:0; }
.av-b { background:linear-gradient(135deg,var(--navy-l),var(--navy)); }
.av-g { background:linear-gradient(135deg,#2a7050,#1a4a34); }
.tc-name { font-size:0.84rem; font-weight:800; color:var(--navy); }
.tc-loc { font-size:0.71rem; color:var(--muted); margin-top:1px; }
/* ══════════════════════════════════════
PHOTO BREAK 3 — Panorama Ville Haute
══════════════════════════════════════ */
.grand-photo {
position: relative; height: 280px; overflow: hidden;
}
.gp-img {
position: absolute; inset: 0;
background-size: cover; background-position: center 60%;
}
.gp-overlay {
position: absolute; inset: 0;
background: linear-gradient(
to bottom,
rgba(35,74,100,0.15) 0%,
rgba(26,56,80,0.6) 100%
);
display: flex; align-items: flex-end; padding: 28px 36px;
}
.gp-label {
font-size: 0.7rem; font-weight: 800; letter-spacing: 0.14em;
text-transform: uppercase; color: rgba(255,255,255,0.5);
}
.gp-label span { color: var(--orange); }
.gp-credit { position: absolute; bottom: 10px; right: 14px; font-size: 0.58rem; color: rgba(255,255,255,0.2); }
.gp-credit a { color: rgba(255,255,255,0.25); text-decoration: none; }
/* ══════════════════════════════════════
BOTTOM CTA
══════════════════════════════════════ */
.bcta { padding: 80px 32px; background: var(--white); text-align: center; }
.bcta-in { max-width: 540px; margin: 0 auto; }
.bcta-h { font-size: clamp(1.7rem,4.5vw,2.6rem); font-weight:400; color:var(--navy); line-height:1.12; margin-bottom:14px; letter-spacing:-0.01em; }
.bcta-h span { color:var(--orange); }
.bcta-p { font-size:0.9rem; color:var(--muted); line-height:1.7; margin-bottom:30px; }
.bcta-btn {
display:inline-flex; align-items:center; gap:8px; padding:16px 36px;
background:var(--navy); color:white;
font-family:'Exo 2',sans-serif; font-weight:800; font-size:0.95rem; letter-spacing:0.04em;
border-radius:8px; text-decoration:none;
transition:background 0.25s, transform 0.25s, box-shadow 0.25s;
box-shadow:0 4px 16px rgba(35,74,100,0.22);
}
.bcta-btn:hover { background:var(--navy-l); transform:translateY(-3px); box-shadow:0 10px 28px rgba(35,74,100,0.3); }
.bcta-btn .arr { color:var(--orange); transition:transform 0.25s; }
.bcta-btn:hover .arr { transform:translateX(4px); }
.trust-row { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 20px; margin-top:26px; }
.trust-item { display:flex; align-items:center; gap:6px; font-size:0.73rem; font-weight:600; color:var(--muted); }
.trust-item svg { width:15px; height:15px; color:var(--orange); flex-shrink:0; }
/* ══════════════════════════════════════
FOOTER
══════════════════════════════════════ */
footer { background:var(--navy); padding:40px 32px 28px; text-align:center; }
.f-logo-img { height:42px; margin:0 auto 18px; display:block; filter:brightness(0) invert(1); }
.f-logo-fb { font-size:1.5rem; font-weight:900; color:white; margin-bottom:18px; display:none; letter-spacing:0.04em; }
.f-nav { display:flex; flex-wrap:wrap; justify-content:center; gap:6px 22px; margin-bottom:18px; }
.f-nav a { font-size:0.71rem; font-weight:600; color:rgba(255,255,255,0.3); text-decoration:none; letter-spacing:0.04em; transition:color 0.2s; }
.f-nav a:hover { color:var(--orange); }
.f-sep { border:none; border-top:1px solid rgba(255,255,255,0.07); margin:16px auto; max-width:400px; }
.f-legal { font-size:0.66rem; color:rgba(255,255,255,0.2); line-height:1.85; }
/* ══════════════════════════════════════
STICKY BAR
══════════════════════════════════════ */
.sticky {
position:fixed; bottom:0; left:0; right:0; z-index:400;
background:white; border-top:1px solid var(--border); padding:12px 22px;
display:flex; align-items:center; gap:14px;
box-shadow:0 -6px 24px rgba(35,74,100,0.1);
transform:translateY(110%); transition:transform 0.38s cubic-bezier(0.4,0,0.2,1);
}
.sticky.up { transform:none; }
.sticky-txt { flex:1; }
.sticky-txt strong { display:block; font-size:0.82rem; font-weight:800; color:var(--navy); }
.sticky-txt span { font-size:0.71rem; color:var(--muted); }
.sticky-b {
padding:11px 22px; background:var(--orange); color:white;
font-family:'Exo 2',sans-serif; font-weight:800; font-size:0.82rem;
letter-spacing:0.04em; border:none; border-radius:6px; cursor:pointer; white-space:nowrap;
transition:background 0.2s;
}
.sticky-b:hover { background:var(--orange-d); }
/* REVEAL */
.reveal { opacity:0; transform:translateY(20px); transition:opacity 0.6s, transform 0.6s; }
.reveal.in { opacity:1; transform:none; }
</style>
</head>
<body>
<div id="loader" aria-hidden="true">
<img class="ld-logo" src="https://hbcgroup.lu/wp-content/themes/timber-zero/public/img/brand.svg" alt="HBC Group"/>
<div class="ld-bar"><div class="ld-fill"></div></div>
</div>
<header class="topbar" id="topbar">
<a href="https://hbcgroup.lu/" class="t-logo" target="_blank" rel="noopener">
<img
src="https://hbcgroup.lu/wp-content/themes/timber-zero/public/img/brand.svg"
alt="HBC Group"
onerror="this.style.display='none';this.nextElementSibling.style.display='block';"
/>
<span style="display:none;font-size:1.4rem;font-weight:900;color:var(--navy);">HBC GROUP</span>
</a>
<div class="t-right">
<a href="tel:+35220331990" class="t-phone">+352 20 33 19 90</a>
<a href="#inscription" class="t-cta">S'inscrire gratuitement <span class="arr">→</span></a>
</div>
</header>
<section class="hero" id="home">
<div class="hero-photo" id="hero-photo"></div>
<div class="hero-overlay"></div>
<div class="hero-grain"></div>
<div class="hero-inner">
<div class="hero-label">
<span class="label-bar"></span>
<span class="label-text">Newsletter Exclusive · Grand-Duché de Luxembourg</span>
</div>
<h1 class="hero-h1">Votre projet n'est peut-être<br/>pas encore prêt pour le Luxembourg ?</h1>
<p class="hero-h2">Ne repartez pas les mains vides.</p>
<p class="hero-intro">
<strong>Rejoignez le Groupe HBC</strong> — vous recevrez les insights exclusifs de Jean-Pierre pour anticiper votre implantation. Les bons entrepreneurs se préparent en avance.
</p>
<div class="hero-points">
<div class="hpoint">
<div class="hpoint-num">01</div>
<p class="hpoint-text"><em>Automatisation IA</em> — Nos méthodes pour automatiser votre business</p>
</div>
<div class="hpoint">
<div class="hpoint-num">02</div>
<p class="hpoint-text"><em>Growth Marketing</em> — Stratégies testées sur des centaines d'entreprises</p>
</div>
<div class="hpoint">
<div class="hpoint-num">03</div>
<p class="hpoint-text"><em>Actualité Grand-Duché</em> — L'info business du Luxembourg en avant-première</p>
</div>
</div>
<div class="jp-card">
<div class="jp-av">JP</div>
<div>
<div class="jp-name">Jean-Pierre Berckmans</div>
<div class="jp-title">Fondateur & CEO — HBC Group S.A. Luxembourg</div>
<div class="jp-proof">
<span class="jp-proof-dot"></span>
700+ sociétés créées · 20 ans d'expérience
</div>
</div>
</div>
</div>
<p class="photo-credit">Photo : <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a> — Libre de droits</p>
<div class="hero-cut">
<svg viewBox="0 0 1440 70" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
<polygon points="0,70 1440,0 1440,70" fill="#234a64"/>
</svg>
</div>
</section>
<div class="stats">
<div class="stats-inner">
<div class="sbox">
<span class="sbox-n" data-target="700">0<span class="suf">+</span></span>
<span class="sbox-l">Sociétés créées</span>
</div>
<div class="sbox">
<span class="sbox-n" data-target="20">0<span class="suf"> ans</span></span>
<span class="sbox-l">Au Luxembourg</span>
</div>
<div class="sbox">
<span class="sbox-n" data-target="2000">0<span class="suf">+</span></span>
<span class="sbox-l">Abonnés actifs</span>
</div>
</div>
</div>
<section class="pillars">
<div class="sec-inner">
<div class="sec-sup reveal">Ce que vous recevez</div>
<h2 class="sec-h reveal">Les <span>3 piliers</span><br/>d'une implantation réussie</h2>
<p class="sec-sub reveal">Chaque semaine, des insights actionnables sur les sujets qui définissent le succès au Luxembourg.</p>
<div class="plist">
<div class="pcard">
<div class="pcard-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color:var(--navy)">
<rect x="2" y="3" width="20" height="14" rx="2"/><polyline points="8 21 12 17 16 21"/><line x1="12" y1="17" x2="12" y2="3"/>
</svg>
</div>
<div>
<div class="pcard-title">Fiscalité & Structuration</div>
<div class="pcard-desc">Ce que personne ne vous dit sur le Luxembourg — holding, IP box, conventions fiscales, structuration internationale.</div>
<span class="pcard-tag">Hebdomadaire</span>
</div>
</div>
<div class="pcard">
<div class="pcard-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color:var(--navy)">
<line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/>
</svg>
</div>
<div>
<div class="pcard-title">Cas Pratiques</div>
<div class="pcard-desc">Des implantations réelles, des chiffres concrets. Ce qui marche sur le terrain, documenté par 20 ans de dossiers réels.</div>
<span class="pcard-tag">Chiffres terrain</span>
</div>
</div>
<div class="pcard">
<div class="pcard-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="color:var(--navy)">
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/>
</svg>
</div>
<div>
<div class="pcard-title">Alertes Réglementaires</div>
<div class="pcard-desc">Anticipez les changements qui impactent votre activité avant qu'ils ne deviennent des contraintes pour votre projet.</div>
<span class="pcard-tag">Avant-première</span>
</div>
</div>
</div>
</div>
</section>
<div class="photo-break">
<div class="pb-img parallax" id="pb1" style="background-image:url('https://images.unsplash.com/photo-1560969184-10fe8719e047?w=1600&q=80&auto=format&fit=crop&crop=center');"></div>
<div class="pb-overlay">
<div class="pb-content">
<div class="pb-tag">Témoignage</div>
<p class="pb-quote">
"Grâce à la newsletter HBC, j'ai anticipé mon passage en holding 6 mois avant mes concurrents."
</p>
<div class="pb-author"><strong>Xavier M.</strong> · Paris, France — Dirigeant PME</div>
</div>
</div>
<p class="pb-credit">Photo : <a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a></p>
</div>
<section class="form-wrap" id="inscription">
<div class="fcard">
<div class="fcard-sup">Accès gratuit · Sans engagement</div>
<h2 class="fcard-h">Rejoindre les 2 000+ abonnés</h2>
<p class="fcard-sub">Inscription en 30 secondes · Désinscription en 1 clic</p>
<div class="sp-row">
<div class="sp-avs">
<div class="sp-a sa1">XM</div>
<div class="sp-a sa2">IV</div>
<div class="sp-a sa3">PL</div>
<div class="sp-a sa4">+</div>
</div>
<span class="sp-txt"><strong>2 000+ entrepreneurs</strong> déjà abonnés</span>
</div>
<div id="form-wrap">
<form class="fields" id="nlform" novalidate>
<div class="f">
<label for="prenom">Prénom</label>
<input type="text" id="prenom" name="prenom" placeholder="Votre prénom" autocomplete="given-name" required/>
</div>
<div class="f">
<label for="email">Adresse email</label>
<input type="email" id="email" name="email" placeholder="votre@email.com" autocomplete="email" required/>
</div>
<button type="submit" class="cta-btn" id="sbtn">
Rejoindre les 2 000+ abonnés <span class="arr">→</span>
</button>
</form>
<div class="rgpd">
<p>
Vos données sont traitées par HBC Group S.A. conformément au RGPD (UE 2016/679) et à la loi luxembourgeoise du 1er août 2018.
Désinscription à tout moment via le lien en bas de chaque email. Aucune cession à des tiers. Double opt-in activé.
<a href="https://hbcgroup.lu/politique-de-confidentialite/" target="_blank">Politique de confidentialité</a>
·
<a href="https://hbcgroup.lu/mentions-legales/" target="_blank">Mentions légales</a>
</p>
</div>
</div>
<div id="success">
<div class="ok-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
<polyline points="20 6 9 17 4 12"/>
</svg>
</div>
<h3>Bienvenue dans la communauté !</h3>
<p>Vérifiez votre boîte mail pour confirmer votre inscription.<br/>Votre premier insight arrive très bientôt.</p>
</div>
</div>
</section>
<section class="testi">
<div class="sec-inner">
<div class="sec-sup reveal">Ils nous font confiance</div>
<h2 class="sec-h reveal">Ce qu'ils en disent</h2>
<div class="tcards">
<div class="tc">
<div class="tc-quote">“</div>
<div class="tc-stars">★★★★★</div>
<p class="tc-text">Grâce à la newsletter HBC, j'ai anticipé mon passage en holding 6 mois avant mes concurrents.</p>
<div class="tc-author">
<div class="tc-av av-b">XM</div>
<div><div class="tc-name">Xavier M.</div><div class="tc-loc">Paris, France · Dirigeant PME</div></div>
</div>
</div>
<div class="tc">
<div class="tc-quote">“</div>
<div class="tc-stars">★★★★★</div>
<p class="tc-text">Indispensable avant de se lancer. Des vraies infos terrain, pas du jargon.</p>
<div class="tc-author">
<div class="tc-av av-g">IV</div>
<div><div class="tc-name">Isabelle V.</div><div class="tc-loc">Bruxelles, Belgique · Entrepreneur</div></div>
</div>
</div>
</div>
</div>
</section>
<div class="grand-photo">
<div class="gp-img" style="background-image:url('https://images.unsplash.com/photo-1599946347371-68eb71b16afc?w=1600&q=80&auto=format&fit=crop&crop=center');"></div>
<div class="gp-overlay">
<div class="gp-label">Grand-Duché de Luxembourg · <span>Ville Haute</span></div>
</div>
<p class="gp-credit"><a href="https://unsplash.com" target="_blank" rel="noopener">Unsplash</a></p>
</div>
<section class="bcta">
<div class="bcta-in reveal">
<h2 class="bcta-h">Préparez votre implantation<br/><span>dès aujourd'hui</span></h2>
<p class="bcta-p">Rejoignez 2 000+ entrepreneurs qui reçoivent chaque semaine les meilleures analyses sur le Luxembourg.</p>
<a href="#inscription" class="bcta-btn">
Accéder à la newsletter gratuite <span class="arr">→</span>
</a>
<div class="trust-row">
<span class="trust-item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><polyline points="20 6 9 17 4 12"/></svg>
Gratuit, sans engagement
</span>
<span class="trust-item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><polyline points="20 6 9 17 4 12"/></svg>
RGPD conforme
</span>
<span class="trust-item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><polyline points="20 6 9 17 4 12"/></svg>
Double opt-in
</span>
<span class="trust-item">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><polyline points="20 6 9 17 4 12"/></svg>
Désinscription en 1 clic
</span>
</div>
</div>
</section>
<footer>
<img class="f-logo-img"
src="https://hbcgroup.lu/wp-content/themes/timber-zero/public/img/brand-white.svg"
alt="HBC Group"
onerror="this.style.display='none';document.getElementById('f-fb').style.display='block';"
/>
<span id="f-fb" class="f-logo-fb">HBC GROUP</span>
<div class="f-nav">
<a href="https://hbcgroup.lu/mentions-legales/" target="_blank">Mentions légales</a>
<a href="https://hbcgroup.lu/politique-de-confidentialite/" target="_blank">Politique de confidentialité</a>
<a href="https://hbcgroup.lu/contact/" target="_blank">Contact</a>
</div>
<hr class="f-sep"/>
<p class="f-legal">
HBC Group S.A. — Luxembourg<br/>
RC Luxembourg : B 130 371 | Autorisation d'établissement : 00138749 / 6<br/>
© 2025 HBC Group S.A. Tous droits réservés.
</p>
</footer>
<div class="sticky" id="sticky">
<div class="sticky-txt">
<strong>Newsletter HBC Group</strong>
<span>Insights exclusifs · 100% gratuit</span>
</div>
<button class="sticky-b" id="sticky-btn">S'inscrire →</button>
</div>
<script>
/* ── LOADER ── */
window.addEventListener('load', () => {
setTimeout(() => document.getElementById('loader').classList.add('out'), 1300);
});
/* ── HERO PHOTO — sélection aléatoire parmi photos Luxembourg Unsplash libres ── */
const heroPhotos = [
'https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?w=1600&q=80&auto=format&fit=crop', // Quartier d'affaires moderne
'https://images.unsplash.com/photo-1560969184-10fe8719e047?w=1600&q=80&auto=format&fit=crop', // Luxembourg city view
'https://images.unsplash.com/photo-1599946347371-68eb71b16afc?w=1600&q=80&auto=format&fit=crop', // Luxembourg panorama
];
const heroEl = document.getElementById('hero-photo');
heroEl.style.backgroundImage = `url('${heroPhotos[0]}')`;
/* ── TOPBAR + STICKY ── */
const topbarEl = document.getElementById('topbar');
const stickyEl = document.getElementById('sticky');
const formEl = document.getElementById('inscription');
window.addEventListener('scroll', () => {
const y = window.scrollY;
topbarEl.classList.toggle('scrolled', y > 60);
const fr = formEl.getBoundingClientRect();
stickyEl.classList.toggle('up', y > 400 && !(fr.top < window.innerHeight * 0.9 && fr.bottom > 0));
/* Parallax photo breaks */
document.querySelectorAll('.parallax').forEach(el => {
const rect = el.parentElement.getBoundingClientRect();
const pct = (rect.top + rect.height / 2) / window.innerHeight;
const shift = (pct - 0.5) * 40;
el.style.transform = `translateY(${shift}px) scale(1.12)`;
});
}, { passive: true });
/* ── SMOOTH SCROLL ── */
const scrollToForm = () => {
formEl.scrollIntoView({ behavior: 'smooth', block: 'center' });
setTimeout(() => document.getElementById('prenom').focus(), 700);
};
document.querySelectorAll('a[href="#inscription"]').forEach(a =>
a.addEventListener('click', e => { e.preventDefault(); scrollToForm(); })
);
document.getElementById('sticky-btn').addEventListener('click', scrollToForm);
/* ── COUNTERS ── */
function countUp(el, target) {
const suf = el.querySelector('.suf')?.outerHTML || '';
const dur = 1800, t0 = performance.now();
const ease = t => 1 - Math.pow(1 - t, 3);
(function step(now) {
const p = Math.min((now - t0) / dur, 1);
const v = Math.round(ease(p) * target);
el.innerHTML = (v >= 1000 ? v.toLocaleString('fr-FR') : v) + suf;
if (p < 1) requestAnimationFrame(step);
})(t0);
}
let counted = false;
new IntersectionObserver(([e]) => {
if (e.isIntersecting && !counted) {
counted = true;
document.querySelectorAll('.sbox-n[data-target]').forEach(el => countUp(el, +el.dataset.target));
}
}, { threshold: 0.5 }).observe(document.querySelector('.stats'));
/* ── SCROLL REVEAL ── */
const revObs = new IntersectionObserver((entries, obs) => {
entries.forEach((e, i) => {
if (e.isIntersecting) {
setTimeout(() => e.target.classList.add('in'), i * 80);
obs.unobserve(e.target);
}
});
}, { threshold: 0.1 });
document.querySelectorAll('.reveal, .pcard, .tc, .bcta-in').forEach(el => revObs.observe(el));
document.querySelectorAll('.pcard').forEach((c, i) => c.style.transitionDelay = `${i * 0.1}s`);
document.querySelectorAll('.tc').forEach((c, i) => c.style.transitionDelay = `${i * 0.12}s`);
/* ── FORM ── */
document.getElementById('nlform').addEventListener('submit', function(e) {
e.preventDefault();
const p = document.getElementById('prenom');
const em = document.getElementById('email');
const btn = document.getElementById('sbtn');
[p, em].forEach(f => f.classList.remove('err'));
let ok = true;
if (!p.value.trim()) { p.classList.add('err'); ok = false; }
if (!em.value.trim() || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(em.value)) { em.classList.add('err'); ok = false; }
if (!ok) {
this.animate(
[{transform:'translateX(-5px)'},{transform:'translateX(5px)'},{transform:'translateX(-3px)'},{transform:'none'}],
{ duration: 360, easing: 'ease' }
);
return;
}
btn.innerHTML = '<span style="opacity:.75">Inscription en cours…</span>';
btn.disabled = true;
/* → Connecter ici à l'API Zoho CRM */
setTimeout(() => {
document.getElementById('form-wrap').style.display = 'none';
document.getElementById('success').style.display = 'block';
stickyEl.classList.remove('up');
}, 1300);
});
</script>
</body>
</html>