/* ============================================================================
   TurkIX — HYPERFABRIC theme
   Loaded after site.min.css; re-skins the whole site.
   Scoped to body.lux-theme where specificity needs to win.
   ============================================================================ */

:root{
  --hf-void:#04040A;
  --hf-ink:#080A16;
  --hf-panel:rgba(14,18,38,.55);
  --hf-panel-2:rgba(20,26,52,.78);

  --hf-cyan:#00E8D5;
  --hf-violet:#7B5CFF;
  --hf-pink:#FF3D8B;
  --hf-amber:#FFC46B;
  --hf-brand:#2BA6FF;           /* the blue in the TurkIX mark */

  --hf-white:#EEF3FF;
  --hf-muted:#98A0C8;
  --hf-dim:#5D648C;

  --hf-line:rgba(140,160,255,.14);
  --hf-line-hot:rgba(0,232,213,.35);

  --hf-disp:"Syne","Manrope","Helvetica Neue",Arial,sans-serif;
  --hf-body:"Manrope","Helvetica Neue",Arial,sans-serif;
  --hf-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;

  --hf-max:1360px;
  --hf-pad:clamp(18px,4.5vw,56px);
  --hf-e:cubic-bezier(.16,1,.3,1);
}

/* ============================ 1. BASE ============================ */

html{ overflow-x:clip; max-width:100%; scroll-behavior:smooth; }

body.lux-theme{
  background:var(--hf-void) !important;
  color:var(--hf-white);
  font-family:var(--hf-body);
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}

body.lux-theme ::selection{ background:var(--hf-cyan); color:#04040A; }
body.lux-theme :focus-visible{ outline:2px solid var(--hf-cyan); outline-offset:4px; }

body.lux-theme a{ color:inherit; }
body.lux-theme img,
body.lux-theme canvas,
body.lux-theme svg{ max-width:100%; }

/* every legacy block was painted light — strip those grounds */
body.lux-theme .w100,
body.lux-theme .block-grey,
body.lux-theme .block-map,
body.lux-theme .maxtelekom,
body.lux-theme .page-gap,
body.lux-theme main,
body.lux-theme section{
  background:transparent !important;
}

body.lux-theme .wrap{
  width:100%;
  max-width:var(--hf-max);
  margin-inline:auto;
  padding-inline:var(--hf-pad);
  position:relative;
  z-index:2;
}

/* ============================ 2. FIXED EFFECT LAYERS ============================ */

#hf-bg{
  position:fixed; inset:0; z-index:0;
  width:100%; height:100%;
  background:radial-gradient(120% 90% at 70% 10%, #16123A, #04040A 70%);
  pointer-events:none;
}
#hf-grain{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.055; background-repeat:repeat;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
  animation:hf-grain 6s steps(6) infinite;
}
@keyframes hf-grain{
  0%{background-position:0 0}20%{background-position:-12px 8px}40%{background-position:9px -14px}
  60%{background-position:-8px -9px}80%{background-position:13px 4px}100%{background-position:0 0}
}
#hf-veil{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  background:
    radial-gradient(135% 115% at 60% 40%, transparent 26%, rgba(4,4,10,.72) 96%),
    linear-gradient(180deg, rgba(4,4,10,.30), rgba(4,4,10,.04) 34%, rgba(4,4,10,.46));
}
#hf-progress{
  position:fixed; top:0; left:0; height:2px; width:0; z-index:95;
  background:linear-gradient(90deg,var(--hf-cyan),var(--hf-violet),var(--hf-pink));
  box-shadow:0 0 18px rgba(0,232,213,.8);
}
/* No mix-blend-mode: blending a fixed element against the whole page forces the
   document into a single composited group, which some GPUs render incorrectly. */
#hf-cur,#hf-ring{
  position:fixed; top:0; left:0; z-index:99; pointer-events:none;
  border-radius:50%; will-change:transform;
}
#hf-cur{
  width:7px; height:7px; margin:-3.5px 0 0 -3.5px;
  background:var(--hf-cyan);
  box-shadow:0 0 12px var(--hf-cyan);
}
#hf-ring{
  width:40px; height:40px; margin:-20px 0 0 -20px;
  border:1px solid rgba(0,232,213,.5);
  transition:width .3s var(--hf-e),height .3s var(--hf-e),margin .3s var(--hf-e),border-color .3s;
}
#hf-ring.is-big{ width:78px; height:78px; margin:-39px 0 0 -39px; border-color:var(--hf-cyan); }
@media (hover:none),(pointer:coarse){ #hf-cur,#hf-ring{ display:none; } }

body.lux-theme .maxtelekom{ position:relative; z-index:2; }

/* ============================ 3. TYPOGRAPHY ============================ */

body.lux-theme h1, body.lux-theme h2, body.lux-theme h3,
body.lux-theme h4, body.lux-theme h5, body.lux-theme h6,
body.lux-theme .page-title, body.lux-theme .sub-hero-title h1,
body.lux-theme .hf-mega{
  font-family:var(--hf-disp);
  font-weight:800;
  letter-spacing:-.03em;
  text-transform:uppercase;
  color:var(--hf-white);
  text-wrap:balance;
}
body.lux-theme p,
body.lux-theme li,
body.lux-theme td,
body.lux-theme span{ color:inherit; }

body.lux-theme .page-title{
  font-size:clamp(1.7rem,3.6vw,3rem);
  line-height:.98;
  margin:0 0 22px;
  filter:drop-shadow(0 6px 40px rgba(4,4,10,.92));
}
body.lux-theme .page-title::after{ display:none !important; }

body.lux-theme .page-about{
  font-family:var(--hf-body);
  font-size:clamp(.9375rem,1.05vw,1.0625rem);
  font-weight:300;
  line-height:1.72;
  color:var(--hf-muted);
  max-width:62ch;
  text-transform:none;
  letter-spacing:0;
}

.hf-kicker{
  display:inline-flex; align-items:flex-start; gap:.7em;
  font-family:var(--hf-mono); font-size:.6875rem; font-weight:400;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--hf-cyan);
}
.hf-kicker::before{
  content:""; width:8px; height:8px; flex:none; margin-top:.45em;
  background:var(--hf-cyan); border-radius:50%;
  box-shadow:0 0 14px var(--hf-cyan);
  animation:hf-blip 2s infinite;
}
@keyframes hf-blip{ 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.35;transform:scale(.7)} }

.hf-grad{
  background:linear-gradient(100deg,var(--hf-cyan) 0%,var(--hf-violet) 45%,var(--hf-pink) 90%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
  background-size:220% 100%;
  animation:hf-shift 9s ease-in-out infinite alternate;
}
@keyframes hf-shift{ from{background-position:0% 50%} to{background-position:100% 50%} }
.hf-outline{ color:transparent; -webkit-text-stroke:1.6px rgba(238,243,255,.62); }
.hf-mono{ font-family:var(--hf-mono); font-variant-numeric:tabular-nums; }

/* ============================ 4. HEADER ============================ */

body.lux-theme .hf-head{
  position:fixed; top:0; left:0; right:0; z-index:90;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:transform .5s var(--hf-e), background .4s, border-color .4s;
}
body.lux-theme .hf-head.is-solid{
  background:rgba(4,4,10,.6);
  backdrop-filter:blur(20px) saturate(150%);
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  border-bottom-color:var(--hf-line);
}
body.lux-theme .hf-head.is-hidden{ transform:translateY(-102%); }

.hf-nav{ display:flex; align-items:center; gap:26px; height:80px; }
.hf-logo{ display:flex; align-items:center; flex:none; }
.hf-logo img{ height:38px; width:auto; display:block; }

.hf-menu{ display:flex; gap:4px; margin-inline-start:auto; list-style:none; margin-block:0; padding:0; }
.hf-menu > li{ position:relative; }
.hf-menu a.hf-top{
  display:block; padding:10px 15px;
  font-family:var(--hf-body);
  font-size:.8125rem; font-weight:500; letter-spacing:.02em;
  text-transform:none;
  color:var(--hf-muted); position:relative;
  transition:color .3s;
}
.hf-menu a.hf-top::after{
  content:""; position:absolute; left:15px; right:15px; bottom:4px; height:1px;
  background:var(--hf-cyan); transform:scaleX(0); transform-origin:left;
  transition:transform .45s var(--hf-e);
}
.hf-menu li:hover > a.hf-top,
.hf-menu li:focus-within > a.hf-top{ color:var(--hf-white); }
.hf-menu li:hover > a.hf-top::after,
.hf-menu li:focus-within > a.hf-top::after{ transform:scaleX(1); }

.hf-sub{
  position:absolute; top:calc(100% + 10px); left:0; min-width:252px;
  list-style:none; margin:0; padding:8px;
  background:rgba(10,12,26,.88);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  border:1px solid var(--hf-line);
  box-shadow:0 30px 80px -20px #000, 0 0 60px -30px var(--hf-violet);
  opacity:0; visibility:hidden; transform:translateY(-8px) scale(.98);
  transition:.35s var(--hf-e);
}
.hf-menu li:hover .hf-sub,
.hf-menu li:focus-within .hf-sub{ opacity:1; visibility:visible; transform:none; }
.hf-sub a{
  display:flex; justify-content:space-between; gap:14px; align-items:baseline;
  padding:10px 12px; font-size:.8125rem; color:var(--hf-muted); transition:.25s;
}
.hf-sub a:hover{ background:linear-gradient(90deg,rgba(0,232,213,.12),transparent); color:var(--hf-cyan); }
.hf-sub a em{ font-style:normal; font-family:var(--hf-mono); font-size:.625rem; color:var(--hf-dim); letter-spacing:.1em; }

.hf-act{ display:flex; align-items:center; gap:10px; flex:none; }

.hf-langs{ display:flex; gap:2px; list-style:none; margin:0; padding:0; }
.hf-langs a{
  display:block; padding:6px 9px;
  font-family:var(--hf-mono); font-size:.6875rem; letter-spacing:.12em;
  color:var(--hf-dim); transition:color .25s;
}
.hf-langs a:hover{ color:var(--hf-white); }
.hf-langs a[aria-current="true"]{ color:var(--hf-cyan); }

.hf-burger{
  display:none; width:46px; height:46px; cursor:pointer; padding:0;
  background:none; border:1px solid var(--hf-line);
  align-items:center; justify-content:center; flex-direction:column; gap:5px;
}
.hf-burger i{ display:block; width:18px; height:1px; background:var(--hf-white); transition:.3s var(--hf-e); }
.hf-burger[aria-expanded="true"] i:first-child{ transform:translateY(3px) rotate(45deg); }
.hf-burger[aria-expanded="true"] i:last-child{ transform:translateY(-3px) rotate(-45deg); }

@media (max-width:1220px){
  .hf-menu{ display:none; }
  .hf-burger{ display:flex; margin-inline-start:auto; }
  .hf-act .hf-btn--ghost{ display:none; }
}
@media (max-width:600px){
  .hf-nav{ height:66px; }
  .hf-logo img{ height:30px; }
  .hf-langs{ display:none; }
}

/* mobile sheet */
.hf-sheet{
  position:fixed; inset:0; z-index:88;
  background:rgba(4,4,10,.96);
  backdrop-filter:blur(30px); -webkit-backdrop-filter:blur(30px);
  padding:100px var(--hf-pad) 48px;
  overflow-y:auto;
  clip-path:circle(0% at 92% 5%);
  transition:clip-path .8s var(--hf-e);
}
.hf-sheet.is-open{ clip-path:circle(150% at 92% 5%); }
.hf-sheet h4{
  font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.3em;
  text-transform:uppercase; color:var(--hf-cyan); margin:26px 0 8px; font-weight:400;
}
.hf-sheet ul{ list-style:none; margin:0; padding:0; }
.hf-sheet ul a{
  display:block; padding:10px 0;
  font-family:var(--hf-disp); font-weight:700; font-size:1.0625rem;
  text-transform:uppercase; letter-spacing:-.005em; color:var(--hf-muted);
  border-bottom:1px solid var(--hf-line);
  transition:color .3s, padding-left .3s var(--hf-e);
}
.hf-sheet ul a:hover{ color:var(--hf-cyan); padding-left:12px; }

/* ============================ 5. BUTTONS ============================ */

body.lux-theme .hf-btn,
body.lux-theme .button,
body.lux-theme .pricing-button,
body.lux-theme .privacy-btn,
body.lux-theme .policy-btn,
body.lux-theme .about-v2-btn,
body.lux-theme .home-hero__button,
body.lux-theme .turkix-consent-btn{
  position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  padding:14px 28px; border:0; cursor:pointer;
  font-family:var(--hf-body); font-size:.75rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--hf-white); background:none;
  overflow:hidden; isolation:isolate; border-radius:0;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  box-shadow:inset 0 0 0 1px var(--hf-line);
  transition:color .35s var(--hf-e), box-shadow .35s var(--hf-e);
  text-decoration:none;
}
body.lux-theme .hf-btn::before,
body.lux-theme .button::before,
body.lux-theme .pricing-button::before,
body.lux-theme .about-v2-btn::before,
body.lux-theme .home-hero__button::before,
body.lux-theme .turkix-consent-btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background:linear-gradient(100deg,var(--hf-cyan),var(--hf-violet) 55%,var(--hf-pink));
  transform:translateY(101%);
  transition:transform .5s var(--hf-e);
}
body.lux-theme .hf-btn:hover::before,
body.lux-theme .button:hover::before,
body.lux-theme .pricing-button:hover::before,
body.lux-theme .about-v2-btn:hover::before,
body.lux-theme .home-hero__button:hover::before,
body.lux-theme .turkix-consent-btn:hover::before{ transform:translateY(0); }
body.lux-theme .hf-btn:hover,
body.lux-theme .button:hover,
body.lux-theme .pricing-button:hover,
body.lux-theme .about-v2-btn:hover,
body.lux-theme .home-hero__button:hover,
body.lux-theme .turkix-consent-btn:hover{ color:#04040A; box-shadow:inset 0 0 0 1px transparent; }

body.lux-theme .hf-btn--fill,
body.lux-theme .home-hero__button--primary,
body.lux-theme .turkix-consent-btn--accept{ color:#04040A; box-shadow:none; }
body.lux-theme .hf-btn--fill::before,
body.lux-theme .home-hero__button--primary::before,
body.lux-theme .turkix-consent-btn--accept::before{ transform:none; }
body.lux-theme .hf-btn--fill:hover::before,
body.lux-theme .home-hero__button--primary:hover::before,
body.lux-theme .turkix-consent-btn--accept:hover::before{ filter:brightness(1.25) saturate(1.2); }

body.lux-theme .hf-btn--sm{ padding:11px 18px; font-size:.6875rem; }

/* ============================ 6. SUB-HERO (all inner pages) ============================ */

body.lux-theme .sub-hero{
  position:relative; z-index:2;
  background:none !important;
  padding:clamp(120px,15vw,190px) 0 clamp(34px,5vw,60px);
  min-height:0;
  border-bottom:1px solid var(--hf-line);
  overflow:visible;
}
body.lux-theme .sub-hero::before,
body.lux-theme .sub-hero::after{ display:none !important; }
body.lux-theme .sub-hero img,
body.lux-theme .sub-hero picture{ display:none !important; }

body.lux-theme .sub-hero-title{
  font-family:var(--hf-disp);
  font-weight:800;
  font-size:clamp(1.9rem,4.4vw,3.6rem);
  line-height:.94;
  letter-spacing:-.035em;
  text-transform:uppercase;
  color:var(--hf-white);
  margin:0;
  filter:drop-shadow(0 6px 40px rgba(4,4,10,.92));
}
body.lux-theme .sub-hero-title h1,
body.lux-theme .sub-hero-title h2{ font-size:inherit; margin:0; }

body.lux-theme .breadcrumb{
  font-family:var(--hf-mono); font-size:.625rem;
  letter-spacing:.22em; text-transform:uppercase;
  color:var(--hf-dim);
  background:none !important;
  padding:0; margin:0 0 18px;
}
body.lux-theme .breadcrumb a{ color:var(--hf-cyan); text-decoration:none; }
body.lux-theme .breadcrumb a:hover{ color:var(--hf-white); }
body.lux-theme .breadcrumb img{ display:none; }

/* ============================ 7. CONTENT PRIMITIVES ============================ */

body.lux-theme .w100{ padding-block:clamp(40px,5vw,72px); }
body.lux-theme .page-gap{ padding-block:clamp(40px,5vw,72px); }
body.lux-theme .bottom-20{ margin-bottom:20px; }
body.lux-theme .bottom-50{ margin-bottom:clamp(28px,4vw,50px); }
body.lux-theme .bottom-100{ margin-bottom:clamp(40px,7vw,100px); }

body.lux-theme p{ color:var(--hf-muted); font-weight:300; }
body.lux-theme strong,
body.lux-theme b{ color:var(--hf-white); font-weight:600; }
body.lux-theme a:not(.hf-btn):not(.button):not(.hf-top):not(.pricing-button){ color:var(--hf-cyan); }
body.lux-theme a:not(.hf-btn):not(.button):not(.hf-top):hover{ color:var(--hf-white); }

body.lux-theme hr{ border:0; border-top:1px solid var(--hf-line); margin-block:clamp(28px,4vw,48px); }

/* ============================ 8. CARD FAMILIES (generic reskin) ============================ */

body.lux-theme .glass-card,
body.lux-theme .glass-card-soft,
body.lux-theme .service-block-card,
body.lux-theme .service-hero-card,
body.lux-theme .service-tech-card,
body.lux-theme .service-cta-card,
body.lux-theme .tx-stat-card,
body.lux-theme .topology-stat-box,
body.lux-theme .topology-feature-card,
body.lux-theme .about-v2-pillar-card,
body.lux-theme .about-v2-mini-card,
body.lux-theme .advantage-pro-card,
body.lux-theme .route-server-address-item,
body.lux-theme .contact-v2-field,
body.lux-theme .partner-field,
body.lux-theme .hf-tile{
  position:relative; overflow:hidden;
  background:var(--hf-panel) !important;
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--hf-line) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:var(--hf-white);
  transition:border-color .4s var(--hf-e), background .4s var(--hf-e);
}
body.lux-theme .glass-card:hover,
body.lux-theme .service-block-card:hover,
body.lux-theme .service-tech-card:hover,
body.lux-theme .tx-stat-card:hover,
body.lux-theme .topology-stat-box:hover,
body.lux-theme .about-v2-pillar-card:hover,
body.lux-theme .about-v2-mini-card:hover,
body.lux-theme .advantage-pro-card:hover,
body.lux-theme .hf-tile:hover{
  border-color:var(--hf-line-hot) !important;
  background:var(--hf-panel-2) !important;
}

/* card spotlight follows the pointer */
body.lux-theme .hf-spot::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%), rgba(0,232,213,.16), transparent 62%);
  opacity:0; transition:opacity .45s;
}
body.lux-theme .hf-spot:hover::before{ opacity:1; }

/* eyebrow / label families */
body.lux-theme .service-kicker,
body.lux-theme .service-block-label,
body.lux-theme .partners-overline,
body.lux-theme .privacy-section-kicker,
body.lux-theme .contact-v2-kicker,
body.lux-theme .about-v2-section-label,
body.lux-theme .topology-feature-card__eyebrow,
body.lux-theme .tx-stat-label,
body.lux-theme .footer-title{
  font-family:var(--hf-mono) !important;
  font-size:.625rem !important;
  font-weight:400 !important;
  letter-spacing:.22em !important;
  text-transform:uppercase !important;
  color:var(--hf-cyan) !important;
  background:none !important;
}

body.lux-theme .tx-stat-value{
  font-family:var(--hf-disp) !important;
  font-weight:800 !important;
  font-size:clamp(1.9rem,3.6vw,3rem) !important;
  letter-spacing:-.04em !important;
  font-variant-numeric:tabular-nums;
  color:var(--hf-white) !important;
}

body.lux-theme .tx-pill{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--hf-mono); font-size:.625rem;
  letter-spacing:.13em; text-transform:uppercase;
  padding:5px 10px; border-radius:0;
  border:1px solid var(--hf-line-hot);
  background:rgba(0,232,213,.07);
  color:var(--hf-cyan);
}

body.lux-theme .service-bullet-list{ list-style:none; padding:0; margin:0; }
body.lux-theme .service-bullet-list li{
  position:relative; padding-left:22px; margin-bottom:10px;
  color:var(--hf-muted); font-weight:300;
}
body.lux-theme .service-bullet-list li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:6px; height:6px; background:var(--hf-cyan); transform:rotate(45deg);
}

/* ============================ 9. TABLES ============================ */

body.lux-theme .table-responsive,
body.lux-theme .members-responsive{ overflow-x:auto; }

body.lux-theme table{
  width:100%; border-collapse:collapse; background:none !important;
  font-size:.875rem;
}
body.lux-theme thead th,
body.lux-theme table th{
  text-align:left;
  font-family:var(--hf-mono); font-size:.625rem; font-weight:400;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--hf-dim) !important;
  background:none !important;
  border:0; border-bottom:1px solid var(--hf-line) !important;
  padding:0 14px 12px 0;
}
body.lux-theme table td{
  padding:15px 14px 15px 0;
  border:0; border-bottom:1px solid var(--hf-line) !important;
  color:var(--hf-muted) !important;
  background:none !important;
  vertical-align:middle;
}
body.lux-theme table tbody tr{ transition:background .3s; }
body.lux-theme table tbody tr:hover{ background:rgba(0,232,213,.05) !important; }
body.lux-theme table td:first-child{ color:var(--hf-white) !important; font-weight:600; }
body.lux-theme table td a{ color:var(--hf-cyan) !important; }

/* ============================ 10. FORMS ============================ */

body.lux-theme input:not([type=checkbox]):not([type=radio]),
body.lux-theme select,
body.lux-theme textarea,
body.lux-theme .input{
  width:100%;
  background:rgba(6,8,18,.7) !important;
  border:1px solid var(--hf-line) !important;
  border-radius:0 !important;
  color:var(--hf-white) !important;
  font-family:var(--hf-body); font-size:.9375rem;
  padding:14px 16px;
  transition:border-color .3s, background .3s;
  box-shadow:none !important;
}
body.lux-theme input:focus,
body.lux-theme select:focus,
body.lux-theme textarea:focus{
  border-color:var(--hf-cyan) !important;
  background:rgba(10,14,30,.9) !important;
  outline:none;
}
body.lux-theme ::placeholder{ color:var(--hf-dim); opacity:1; }
body.lux-theme label{
  font-family:var(--hf-mono); font-size:.625rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--hf-dim);
}

/* ============================ 11. ACCORDION (FAQ) ============================ */

body.lux-theme .accordion-section-title{
  display:block;
  background:var(--hf-panel) !important;
  border:1px solid var(--hf-line) !important;
  border-radius:0 !important;
  color:var(--hf-white) !important;
  font-family:var(--hf-disp); font-weight:700;
  font-size:1rem; letter-spacing:-.01em; text-transform:none;
  padding:18px 22px;
  margin-top:10px;
  transition:border-color .35s, background .35s;
  text-decoration:none;
}
body.lux-theme .accordion-section-title:hover,
body.lux-theme .accordion-section-title.active{
  border-color:var(--hf-line-hot) !important;
  background:var(--hf-panel-2) !important;
  color:var(--hf-cyan) !important;
}
body.lux-theme .accordion-section-content{
  background:rgba(6,8,18,.6) !important;
  border:1px solid var(--hf-line); border-top:0;
  padding:20px 22px;
  color:var(--hf-muted) !important;
}

/* ============================ 12. PAGINATION ============================ */

body.lux-theme .pages a,
body.lux-theme .page-nav,
body.lux-theme .page-link{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:42px; height:42px; padding:0 14px;
  background:var(--hf-panel) !important;
  border:1px solid var(--hf-line) !important;
  border-radius:0 !important;
  font-family:var(--hf-mono); font-size:.75rem;
  color:var(--hf-muted) !important;
  transition:border-color .3s, color .3s;
  text-decoration:none;
}
body.lux-theme .pages a:hover,
body.lux-theme .page-nav:hover,
body.lux-theme .page-link:hover,
body.lux-theme .pages a.active{
  border-color:var(--hf-cyan) !important;
  color:var(--hf-cyan) !important;
}

/* ============================ 13. FOOTER ============================ */

body.lux-theme .footer-connect,
body.lux-theme .footer-wrap,
body.lux-theme .footer{
  background:transparent !important;
  border:0;
}
.hf-foot{
  position:relative; z-index:2;
  border-top:1px solid var(--hf-line);
  background:rgba(4,5,12,.82);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
}
.hf-foot__grid{
  display:grid; grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr));
  gap:clamp(24px,3vw,50px);
  padding-block:clamp(50px,6vw,84px) 0;
}
@media (max-width:1000px){ .hf-foot__grid{ grid-template-columns:1fr 1fr 1fr; } }
@media (max-width:600px){ .hf-foot__grid{ grid-template-columns:1fr 1fr; } }
.hf-foot__brand img{ height:40px; width:auto; margin-bottom:20px; }
.hf-foot__brand p{ color:var(--hf-dim); font-size:.875rem; max-width:32ch; font-weight:300; }
.hf-foot h5{
  font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--hf-cyan); margin:0 0 16px; font-weight:400;
}
.hf-foot ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:9px; }
.hf-foot ul a{ font-size:.875rem; color:var(--hf-muted) !important; text-decoration:none; transition:color .25s, padding-left .3s var(--hf-e); }
.hf-foot ul a:hover{ color:var(--hf-cyan) !important; padding-left:5px; }
.hf-foot__bar{
  margin-top:clamp(40px,5vw,70px); padding-block:24px;
  border-top:1px solid var(--hf-line);
  display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center;
  font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.14em; color:var(--hf-dim);
}
.hf-foot__bar nav{ display:flex; gap:18px; flex-wrap:wrap; }
.hf-foot__bar a{ color:var(--hf-dim) !important; text-decoration:none; }
.hf-foot__bar a:hover{ color:var(--hf-cyan) !important; }

.hf-contact{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
  background:var(--hf-line); border-block:1px solid var(--hf-line);
  position:relative; z-index:2;
}
.hf-contact > div{ background:rgba(6,8,18,.72); padding:clamp(24px,3vw,40px) var(--hf-pad); }
.hf-contact h5{
  font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.24em;
  text-transform:uppercase; color:var(--hf-cyan); margin:0 0 12px; font-weight:400;
}
.hf-contact p{ margin:0; color:var(--hf-muted); font-size:.9375rem; font-weight:300; line-height:1.7; }
.hf-contact a{ color:var(--hf-white) !important; border-bottom:1px solid var(--hf-line-hot); text-decoration:none; }
.hf-contact a:hover{ color:var(--hf-cyan) !important; }
@media (max-width:820px){ .hf-contact{ grid-template-columns:1fr; } }

/* ============================ 14. REVEAL ============================ */

.js .hf-rv{ opacity:0; transform:translateY(34px); }
.hf-rv.in{ opacity:1; transform:none; transition:opacity 1s var(--hf-e), transform 1s var(--hf-e); }
.js .hf-stag > *{ opacity:0; transform:translateY(28px); }
.hf-stag.in > *{ opacity:1; transform:none; transition:opacity .9s var(--hf-e), transform .9s var(--hf-e); }
.hf-stag.in > *:nth-child(2){ transition-delay:.07s }
.hf-stag.in > *:nth-child(3){ transition-delay:.14s }
.hf-stag.in > *:nth-child(4){ transition-delay:.21s }
.hf-stag.in > *:nth-child(5){ transition-delay:.28s }
.hf-stag.in > *:nth-child(6){ transition-delay:.35s }
.hf-stag.in > *:nth-child(7){ transition-delay:.42s }

/* ============================ 15. LEGACY BITS TO RETIRE ============================ */

body.lux-theme .header,
body.lux-theme .mobile-menu-drawer,
body.lux-theme .mobile-menu-overlay,
body.lux-theme .footer-connect,
body.lux-theme .theme-toggle,
body.lux-theme #logo,
body.lux-theme .title-wave,
body.lux-theme .bg-map{ display:none !important; }

/* ============================ 16. MOTION PREFERENCES ============================ */

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  body.lux-theme *,
  body.lux-theme *::before,
  body.lux-theme *::after{
    animation-duration:.001s !important;
    animation-iteration-count:1 !important;
    transition-duration:.001s !important;
  }
  .js .hf-rv, .js .hf-stag > *{ opacity:1 !important; transform:none !important; }
}

/* ============================================================================
   17. HARD OVERRIDES — the legacy sheet is a light theme; force it dark.
   Specificity here is deliberate: body.lux-theme .maxtelekom + :is(type…)
   outranks the legacy rules without resorting to !important on every line.
   ============================================================================ */

body.lux-theme .maxtelekom{ color:var(--hf-muted); }

body.lux-theme .maxtelekom :is(p,li,td,dd,dt,figcaption,blockquote,small,span,div,section,article,aside){
  color:inherit;
}
body.lux-theme .maxtelekom :is(h1,h2,h3,h4,h5,h6,strong,b,th,legend){
  color:var(--hf-white);
}
body.lux-theme .maxtelekom :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--hf-disp);
  letter-spacing:-.03em;
}

/* no legacy light grounds anywhere inside the page body */
body.lux-theme .maxtelekom :is(div,section,article,aside,header,ul,ol,li,dl){
  background-image:none;
}
body.lux-theme .maxtelekom :is(section,article,aside,ul,ol,dl,figure){
  background-color:transparent;
}

/* links: no legacy underlines */
body.lux-theme .maxtelekom a{ text-decoration:none; }
body.lux-theme .maxtelekom a:hover{ text-decoration:none; }

/* sub-hero: strip the legacy photo/overlay treatment for good */
body.lux-theme .sub-hero{
  min-height:0 !important;
  height:auto !important;
  padding:clamp(116px,14vw,180px) 0 clamp(30px,4vw,52px) !important;
  background-image:none !important;
  background-color:transparent !important;
}
body.lux-theme .sub-hero > *{ position:relative; }
body.lux-theme .sub-hero .tx-pill,
body.lux-theme .sub-hero .sub-hero-badge{ position:static !important; }

/* the aurora is a hero effect — quieten it behind dense inner pages */
body:not(.page-index) #hf-veil{
  background:
    radial-gradient(140% 120% at 60% 30%, rgba(4,4,10,.55) 12%, rgba(4,4,10,.90) 92%),
    linear-gradient(180deg, rgba(4,4,10,.55), rgba(4,4,10,.72) 30%, rgba(4,4,10,.90));
}
body:not(.page-index) #hf-bg{ opacity:.75; }

/* readable text needs a floor of contrast over any effect */
body.lux-theme .maxtelekom .wrap{ position:relative; z-index:2; }

/* ============================================================================
   18. LAYOUT MODE — the legacy sheet floats its top-level blocks and makes the
   page wrapper inline-block. Normal flow is what the new chrome expects.
   ============================================================================ */

body.lux-theme .maxtelekom{
  display:block !important;
  width:100% !important;
  float:none !important;
}
body.lux-theme .w100,
body.lux-theme .sub-hero,
body.lux-theme .block-grey,
body.lux-theme .block-map,
body.lux-theme .page-gap,
body.lux-theme .footer-connect,
body.lux-theme .footer-wrap{
  float:none !important;
  width:100% !important;
  clear:both;
}
body.lux-theme .hf-contact,
body.lux-theme .hf-foot{ clear:both; }

/* ============================================================================
   19. SPECIFICITY REPAIRS — headings must beat the generic colour reset in §17
   ============================================================================ */

body.lux-theme .maxtelekom .sub-hero-title,
body.lux-theme .maxtelekom .page-title,
body.lux-theme .maxtelekom .tx-stat-value,
body.lux-theme .maxtelekom .service-block-card h3,
body.lux-theme .maxtelekom .glass-card h3{
  color:var(--hf-white);
}
body.lux-theme .maxtelekom .hf-kicker,
body.lux-theme .maxtelekom .service-kicker,
body.lux-theme .maxtelekom .service-block-label,
body.lux-theme .maxtelekom .about-v2-section-label,
body.lux-theme .maxtelekom .contact-v2-kicker,
body.lux-theme .maxtelekom .privacy-section-kicker,
body.lux-theme .maxtelekom .partners-overline,
body.lux-theme .maxtelekom .tx-stat-label{ color:var(--hf-cyan); }

body.lux-theme .maxtelekom .breadcrumb,
body.lux-theme .maxtelekom .breadcrumb *{ color:var(--hf-dim); }
body.lux-theme .maxtelekom .breadcrumb a{ color:var(--hf-cyan); }

/* compact sub-hero: the legacy one reserved room for a photo we no longer show */
body.lux-theme .sub-hero .wrap{ display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
body.lux-theme .sub-hero .tx-pill,
body.lux-theme .sub-hero .sub-hero-badge,
body.lux-theme .sub-hero .sub-hero-tag{
  position:static !important;
  order:-1;
  margin:0 !important;
  inset:auto !important;
  transform:none !important;
}
body.lux-theme .sub-hero-title{ margin:0 !important; }
body.lux-theme .sub-hero-title::before,
body.lux-theme .sub-hero-title::after{ display:none !important; }
body.lux-theme .breadcrumb{ order:-2; }

/* the aurora should still be felt on inner pages, just not fight the copy */
body:not(.page-index) #hf-bg{ opacity:.9; }
body:not(.page-index) #hf-veil{
  background:
    radial-gradient(140% 120% at 65% 22%, rgba(4,4,10,.42) 10%, rgba(4,4,10,.88) 92%),
    linear-gradient(180deg, rgba(4,4,10,.45), rgba(4,4,10,.66) 30%, rgba(4,4,10,.88));
}

/* ============================================================================
   20. CLOSED MOBILE SHEET MUST NOT PAINT
   clip-path hides the sheet, but Chromium still applies its backdrop-filter to
   the whole viewport — which blurs the page behind it. Gate both on is-open.
   ============================================================================ */

.hf-sheet{
  visibility:hidden;
  pointer-events:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  background:transparent;
  transition:clip-path .8s var(--hf-e), visibility 0s linear .8s;
}
.hf-sheet.is-open{
  visibility:visible;
  pointer-events:auto;
  background:rgba(4,4,10,.96);
  backdrop-filter:blur(30px);
  -webkit-backdrop-filter:blur(30px);
  transition:clip-path .8s var(--hf-e), visibility 0s;
}

/* ============================================================================
   21. HOMEPAGE
   ============================================================================ */

.hf-h2{
  font-family:var(--hf-disp); font-weight:800;
  font-size:clamp(1.9rem,4.4vw,3.6rem); line-height:.94;
  letter-spacing:-.035em; text-transform:uppercase; margin:22px 0 0;
  text-wrap:balance;
  filter:drop-shadow(0 6px 40px rgba(4,4,10,.92));
}
.hf-lede{
  font-size:clamp(.9375rem,1.05vw,1.0625rem);
  color:var(--hf-muted); max-width:60ch; font-weight:300;
}
.hf-sec{ padding-block:clamp(72px,10vw,150px); position:relative; z-index:2; }
.hf-sec-head{ margin-bottom:clamp(40px,5vw,78px); position:relative; }
.hf-sec-head__row{
  display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:36px; align-items:end;
}
@media (max-width:860px){ .hf-sec-head__row{ grid-template-columns:1fr; align-items:start; } }

/* ---------- hero ---------- */
.hf-hero{
  position:relative; z-index:2;
  min-height:100svh; display:flex; align-items:center;
  padding-block:130px 60px; overflow:hidden;
}
.hf-hero::before{
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(80% 110% at 16% 62%, rgba(4,4,10,.72) 4%, rgba(4,4,10,.28) 44%, transparent 70%);
}
.hf-hero .wrap{ width:100%; }
.hf-hero .hf-kicker{ text-shadow:0 2px 18px rgba(4,4,10,.95); }
.hf-hero__title{
  font-family:var(--hf-disp); font-weight:800; max-width:22ch;
  font-size:clamp(2.1rem,6.9vw,7rem); line-height:.9;
  letter-spacing:-.035em; text-transform:uppercase; margin:26px 0 0;
  filter:drop-shadow(0 8px 50px rgba(4,4,10,.95)) drop-shadow(0 2px 10px rgba(4,4,10,.8));
}
.hf-hero__title .ln{ display:block; overflow:hidden; }
.hf-hero__title .ln > span{
  display:block; transform:translateY(105%) skewY(6deg);
  animation:hf-line 1.1s var(--hf-e) forwards;
}
.hf-hero__title .ln:nth-child(1) > span{ animation-delay:.18s; }
.hf-hero__title .ln:nth-child(2) > span{ animation-delay:.30s; }
.hf-hero__title .ln:nth-child(3) > span{ animation-delay:.42s; }
@keyframes hf-line{ to{ transform:none; } }

.hf-hero__bottom{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,auto);
  gap:34px; align-items:end; margin-top:44px;
}
.hf-hero .hf-lede{ text-shadow:0 2px 22px rgba(4,4,10,.95); }
.hf-hero__act{ display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.hf-hero__chips{ display:flex; flex-direction:column; gap:10px; }
.hf-chip{
  display:flex; align-items:center; gap:14px; padding:12px 18px;
  background:var(--hf-panel); border:1px solid var(--hf-line);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  font-family:var(--hf-mono); font-size:.6875rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--hf-muted);
  transition:border-color .35s, transform .35s var(--hf-e);
}
.hf-chip:hover{ border-color:var(--hf-line-hot); transform:translateX(-6px); }
.hf-chip b{ color:var(--hf-cyan); font-weight:500; font-size:.875rem; }
@media (max-width:820px){
  .hf-hero{ padding-block:104px 48px; min-height:0; }
  .hf-hero::before{ background:radial-gradient(120% 90% at 50% 46%, rgba(4,4,10,.86) 10%, rgba(4,4,10,.62) 55%, rgba(4,4,10,.35) 85%); }
  .hf-hero__bottom{ grid-template-columns:1fr; }
  .hf-hero__act{ flex-direction:column; align-items:stretch; }
  .hf-hero__act .hf-btn{ width:100%; }
}

/* ---------- tickers ---------- */
.hf-ticker{
  position:relative; z-index:2; overflow:hidden; padding-block:16px;
  border-block:1px solid var(--hf-line);
  background:rgba(6,8,18,.6);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.hf-ticker + .hf-ticker{ border-top:0; }
.hf-ticker__row{ display:flex; width:max-content; animation:hf-slide 46s linear infinite; }
.hf-ticker--rev .hf-ticker__row{ animation-direction:reverse; animation-duration:58s; }
.hf-ticker:hover .hf-ticker__row{ animation-play-state:paused; }
@keyframes hf-slide{ to{ transform:translateX(-50%); } }
.hf-ticker__row span{
  display:inline-flex; align-items:center; gap:16px; padding-inline:22px;
  font-family:var(--hf-disp); font-weight:700; font-size:.875rem;
  text-transform:uppercase; letter-spacing:.01em;
  color:rgba(238,243,255,.42); white-space:nowrap;
}
.hf-ticker__row span::after{ content:""; width:5px; height:5px; background:var(--hf-cyan); border-radius:50%; opacity:.7; }
.hf-ticker--rev .hf-ticker__row span{ color:rgba(123,92,255,.5); }
.hf-ticker--rev .hf-ticker__row span::after{ background:var(--hf-pink); }

/* ---------- stats ---------- */
.hf-stats{
  position:relative; z-index:2;
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:1px; background:var(--hf-line); border-block:1px solid var(--hf-line);
}
.hf-stat{
  background:rgba(6,8,18,.72); position:relative; overflow:hidden;
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  padding:clamp(28px,4vw,54px) clamp(18px,2.4vw,34px);
  transition:background .5s;
}
.hf-stat::after{
  content:""; position:absolute; inset:auto 0 0 0; height:2px;
  background:linear-gradient(90deg,var(--hf-cyan),var(--hf-violet));
  transform:scaleX(0); transform-origin:left; transition:transform .7s var(--hf-e);
}
.hf-stat:hover::after{ transform:scaleX(1); }
.hf-stat:hover{ background:rgba(16,20,44,.8); }
.hf-stat__n{
  font-family:var(--hf-disp); font-weight:800;
  font-size:clamp(1.9rem,3.9vw,3.3rem); line-height:.94;
  letter-spacing:-.045em; font-variant-numeric:tabular-nums;
  display:flex; align-items:baseline; gap:.1em; color:var(--hf-white);
}
.hf-stat__u{ font-family:var(--hf-body); font-size:clamp(.8125rem,1.05vw,1rem); font-weight:600; color:var(--hf-cyan); letter-spacing:0; }
.hf-stat__l{ margin-top:16px; font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--hf-dim); }
@media (max-width:900px){ .hf-stats{ grid-template-columns:repeat(2,1fr); } }

/* ---------- services stack ---------- */
.hf-stack{ position:relative; }
.hf-stack__item{ position:sticky; top:14vh; margin-bottom:34px; will-change:transform; }
.hf-card{
  position:relative; overflow:hidden;
  border:1px solid var(--hf-line);
  background:linear-gradient(150deg, rgba(18,22,48,.92), rgba(8,10,22,.95));
  backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
  padding:clamp(28px,4vw,58px);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.72fr);
  gap:clamp(24px,4vw,56px); align-items:center;
  min-height:clamp(320px,42vh,420px);
  box-shadow:0 40px 100px -40px #000;
}
.hf-card__glow{ position:absolute; width:340px; height:340px; border-radius:50%; filter:blur(90px); opacity:.4; pointer-events:none; right:-60px; top:-90px; }
.hf-card__no{ font-family:var(--hf-mono); font-size:.6875rem; letter-spacing:.26em; text-transform:uppercase; color:var(--hf-cyan); }
body.lux-theme .hf-card h3{
  font-family:var(--hf-disp); font-weight:800;
  font-size:clamp(1.35rem,2.5vw,2.2rem); line-height:1.02;
  letter-spacing:-.028em; text-transform:uppercase; margin:18px 0 0; color:var(--hf-white);
}
.hf-card p{ color:var(--hf-muted); margin:20px 0 0; font-weight:300; max-width:52ch; }
.hf-card .hf-btn{ margin-top:28px; }
.hf-card__spec{ display:flex; flex-direction:column; gap:1px; background:var(--hf-line); border:1px solid var(--hf-line); }
.hf-card__spec > div{ background:rgba(6,8,18,.75); display:flex; justify-content:space-between; gap:16px; align-items:baseline; padding:14px 18px; font-family:var(--hf-mono); font-size:.75rem; }
.hf-card__spec .k{ color:var(--hf-dim); font-size:.625rem; letter-spacing:.16em; text-transform:uppercase; }
.hf-card__spec .v{ color:var(--hf-white); }
@media (max-width:880px){
  .hf-card{ grid-template-columns:1fr; min-height:0; padding:24px 20px; }
  .hf-stack__item{ position:relative; top:auto; }
}

/* ---------- globe ---------- */
.hf-globe-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.85fr); gap:clamp(28px,5vw,72px); align-items:center; }
.hf-globe-wrap{ position:relative; aspect-ratio:1/1; }
.hf-globe-wrap canvas{ width:100%; height:100%; }
.hf-pops{ list-style:none; margin:0; padding:0; border-top:1px solid var(--hf-line); }
.hf-pops li{
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:center;
  padding:15px 0; border-bottom:1px solid var(--hf-line);
  transition:padding-left .4s var(--hf-e), background .4s;
}
.hf-pops li:hover{ padding-left:12px; background:linear-gradient(90deg,rgba(0,232,213,.07),transparent); }
.hf-pops b{ font-weight:600; font-size:.9375rem; color:var(--hf-white); }
.hf-pops small{ display:block; color:var(--hf-dim); font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; margin-top:3px; }
.hf-dot-live{ width:7px; height:7px; border-radius:50%; background:var(--hf-cyan); box-shadow:0 0 12px var(--hf-cyan); }
@media (max-width:900px){ .hf-globe-grid{ grid-template-columns:1fr; } .hf-globe-wrap{ max-width:460px; margin-inline:auto; } }

/* ---------- bento ---------- */
.hf-bento{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.hf-tile{
  position:relative; overflow:hidden;
  border:1px solid var(--hf-line); background:var(--hf-panel);
  backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
  padding:clamp(22px,2.6vw,34px); min-height:200px;
  display:flex; flex-direction:column; justify-content:flex-end;
  transition:border-color .4s, transform .25s var(--hf-e);
}
.hf-tile__ico{ width:34px; height:34px; color:var(--hf-cyan); margin-bottom:auto; }
body.lux-theme .hf-tile h3{
  font-family:var(--hf-disp); font-weight:700; font-size:1.0625rem;
  text-transform:uppercase; letter-spacing:-.02em; margin:22px 0 8px; color:var(--hf-white);
}
.hf-tile p{ margin:0; font-size:.875rem; color:var(--hf-muted); font-weight:300; }
.hf-tile--w4{ grid-column:span 4; }
.hf-tile--w3{ grid-column:span 3; }
.hf-tile--w2{ grid-column:span 2; }
.hf-tile--tall{ min-height:300px; }
.hf-tile--traffic{ grid-column:span 4; min-height:300px; padding-bottom:0; justify-content:flex-start; }
.hf-tile--traffic canvas{ width:100%; height:190px; margin-top:auto; }
.hf-traffic-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:18px; flex-wrap:wrap; }
.hf-traffic-now{ font-family:var(--hf-disp); font-weight:800; font-size:clamp(1.5rem,2.4vw,2.1rem); letter-spacing:-.04em; line-height:1; color:var(--hf-white); }
.hf-traffic-now span{ font-family:var(--hf-body); font-size:.9rem; font-weight:600; color:var(--hf-cyan); }
@media (max-width:900px){ .hf-bento{ grid-template-columns:repeat(2,1fr); } .hf-tile--w4,.hf-tile--w3,.hf-tile--w2,.hf-tile--traffic{ grid-column:span 1; } }
@media (max-width:560px){ .hf-bento{ grid-template-columns:1fr; } }

/* ---------- news rail ---------- */
.hf-rail{ display:flex; gap:18px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:20px; }
.hf-rail::-webkit-scrollbar{ height:3px; }
.hf-rail::-webkit-scrollbar-track{ background:var(--hf-line); }
.hf-rail::-webkit-scrollbar-thumb{ background:linear-gradient(90deg,var(--hf-cyan),var(--hf-violet)); }
.hf-story{
  flex:0 0 clamp(280px,32vw,400px); scroll-snap-align:start;
  border:1px solid var(--hf-line); background:var(--hf-panel);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  padding:26px; display:flex; flex-direction:column; gap:14px;
  transition:border-color .4s, transform .5s var(--hf-e), background .4s;
}
.hf-story:hover{ border-color:var(--hf-line-hot); transform:translateY(-8px); background:var(--hf-panel-2); }
.hf-story time{ font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--hf-cyan); }
body.lux-theme .hf-story h3{
  font-family:var(--hf-disp); font-weight:700; font-size:1.0625rem;
  text-transform:uppercase; letter-spacing:-.02em; line-height:1.1; margin:0; color:var(--hf-white);
}
.hf-story p{ margin:0; font-size:.875rem; color:var(--hf-muted); font-weight:300; }
.hf-story__go{ margin-top:auto; font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--hf-violet); }
.hf-story:hover .hf-story__go{ color:var(--hf-cyan); }

/* ---------- CTA ---------- */
.hf-cta{ position:relative; z-index:2; text-align:center; overflow:hidden; }
.hf-cta::before{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(70% 90% at 50% 50%, rgba(4,4,10,.86) 12%, rgba(4,4,10,.4) 55%, transparent 80%);
}
.hf-cta__in{ padding-block:clamp(90px,13vw,180px); }
.hf-cta .hf-kicker{ justify-content:center; }
.hf-cta .hf-h2{ margin:26px auto 0; max-width:16ch; }
.hf-cta .hf-lede{ margin:26px auto 0; max-width:52ch; }
.hf-cta__act{ display:flex; justify-content:center; flex-wrap:wrap; gap:14px; margin-top:40px; }
.hf-cta__orb{
  position:absolute; left:50%; top:50%; translate:-50% -50%;
  width:min(90vw,760px); aspect-ratio:1/1; border-radius:50%;
  background:radial-gradient(circle, rgba(123,92,255,.28), transparent 62%);
  filter:blur(60px); pointer-events:none;
  animation:hf-orb 12s ease-in-out infinite alternate;
}
@keyframes hf-orb{ from{ transform:scale(.85) } to{ transform:scale(1.12) } }

/* gradient + outline text must survive the §17 colour reset */
body.lux-theme .maxtelekom .hf-grad,
body.lux-theme .maxtelekom .hf-outline{ color:transparent; }
body.lux-theme .maxtelekom .hf-outline{ -webkit-text-stroke:1.6px rgba(238,243,255,.62); }
body.lux-theme .maxtelekom .hf-grad{
  background:linear-gradient(100deg,var(--hf-cyan) 0%,var(--hf-violet) 45%,var(--hf-pink) 90%);
  -webkit-background-clip:text; background-clip:text;
  background-size:220% 100%;
}

/* ============================================================================
   22. SCROLL-LINKED VEIL
   Full aurora in the hero, calm readable ground once you scroll into content.
   JS writes --hf-dim (0 → 1); without JS the dark layer is simply on.
   ============================================================================ */

#hf-veil::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(140% 120% at 65% 22%, rgba(4,4,10,.50) 10%, rgba(4,4,10,.90) 92%),
    linear-gradient(180deg, rgba(4,4,10,.50), rgba(4,4,10,.70) 30%, rgba(4,4,10,.90));
  opacity:var(--hf-dim, 1);
  transition:opacity .25s linear;
}
/* inner pages have no hero to show off — keep the calm ground throughout */
body:not(.page-index){ --hf-dim:1 !important; }
body:not(.page-index) #hf-veil{
  background:
    radial-gradient(135% 115% at 60% 40%, transparent 26%, rgba(4,4,10,.72) 96%),
    linear-gradient(180deg, rgba(4,4,10,.30), rgba(4,4,10,.04) 34%, rgba(4,4,10,.46));
}

/* ============================================================================
   23. SOURCED-CONTENT REBUILD
   The homepage now renders only what the language files, config.php and the
   database provide, so a few blocks changed shape. These override §21.
   ============================================================================ */

:root{
  --hf-glow-1:#00E8D5;
  --hf-glow-2:#7B5CFF;
  --hf-glow-3:#FF3D8B;
  --hf-glow-4:#2BA6FF;
}

/* hero: one headline, no carousel, no line-mask animation */
.hf-hero__title{
  max-width:20ch;
  animation:hf-up .9s var(--hf-e) .15s both;
}
.hf-hero .hf-kicker{ animation:hf-up .8s var(--hf-e) .05s both; }
.hf-hero__bottom{ animation:hf-up .9s var(--hf-e) .3s both; }
@keyframes hf-up{ from{ opacity:0; transform:translateY(20px) } to{ opacity:1; transform:none } }
.hf-hero__chips .hf-chip{ justify-content:space-between; }
.hf-hero__chips .hf-chip b{ font-size:.8125rem; }

/* section heads are a simple stack now */
.hf-sec-head{ display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.hf-sec-head .hf-h2{ margin:0; }
.hf-sec-head .hf-lede{ margin-top:6px; }

/* the page-about paragraph, set as a statement */
.hf-statement{
  font-family:var(--hf-disp);
  font-weight:600;
  font-size:clamp(1.15rem,2.1vw,1.75rem);
  line-height:1.34;
  letter-spacing:-.018em;
  color:var(--hf-white);
  max-width:34ch;
  margin:0;
  text-transform:none;
  text-wrap:pretty;
}
@media (max-width:820px){ .hf-statement{ max-width:none; } }

/* service cards: single column — no invented spec table */
body.lux-theme .hf-card{
  display:block;
  min-height:clamp(260px,34vh,340px);
}
body.lux-theme .hf-card h3{ margin:14px 0 0; max-width:20ch; }
body.lux-theme .hf-card p{ max-width:64ch; }

/* why-turkix tiles carry a real index, not a decorative icon */
.hf-bento{ grid-template-columns:repeat(3,1fr); }
.hf-tile{ grid-column:auto; justify-content:flex-start; min-height:210px; }
.hf-tile__n{
  font-family:var(--hf-mono); font-size:.625rem; letter-spacing:.2em;
  color:var(--hf-cyan); display:block; margin-bottom:auto;
}
body.lux-theme .hf-tile h3{ margin:26px 0 8px; }
@media (max-width:900px){ .hf-bento{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .hf-bento{ grid-template-columns:1fr; } }

/* route-server details */
.hf-spec{ list-style:none; margin:26px 0 0; padding:0; display:flex; flex-direction:column; gap:1px; background:var(--hf-line); border:1px solid var(--hf-line); }
.hf-spec li{
  background:rgba(6,8,18,.75);
  display:flex; justify-content:space-between; gap:18px; align-items:flex-start;
  padding:14px 18px; font-family:var(--hf-mono); font-size:.75rem;
}
.hf-spec .k{ color:var(--hf-dim); font-size:.625rem; letter-spacing:.16em; text-transform:uppercase; flex:none; }
.hf-spec .v{ color:var(--hf-white); text-align:right; line-height:1.7; word-break:break-all; }

/* news cards can carry the real article image */
.hf-story__img{ display:block; margin:-26px -26px 4px; overflow:hidden; border-bottom:1px solid var(--hf-line); }
.hf-story__img img{ width:100%; height:170px; object-fit:cover; display:block; }

/* CTA centred stack */
.hf-cta .hf-kicker{ justify-content:center; }
.hf-cta .hf-lede{ margin-inline:auto; }

/* service card is a single link target — no invented button label */
body.lux-theme a.hf-card{ display:block; text-decoration:none; color:inherit; }
body.lux-theme a.hf-card:hover{ border-color:var(--hf-line-hot); }
.hf-card__no{ display:block; }
.hf-card__arrow{
  display:inline-block; margin-top:26px;
  font-family:var(--hf-mono); font-size:1.25rem; line-height:1;
  color:var(--hf-cyan);
  transition:transform .4s var(--hf-e);
}
body.lux-theme a.hf-card:hover .hf-card__arrow{ transform:translateX(10px); }

/* the card is a link, but its body text is body text */
body.lux-theme a.hf-card h3{ color:var(--hf-white); }
body.lux-theme a.hf-card p,
body.lux-theme a.hf-card p *{ color:var(--hf-muted); }
body.lux-theme a.hf-card .hf-card__no{ color:var(--hf-cyan); }

/* globe: cap the square so a short PoP list doesn't leave a canyon */
.hf-globe-wrap{ max-width:520px; max-height:520px; margin-inline:auto; }
.hf-globe-grid{ align-items:center; }

/* ============================================================================
   24. TYPE & MENU STABILITY
   Three problems reported on the live site, all reproduced and measured:
     a) headings too large / overflowing  — Syne 800 is a very wide display face
        and the sizes were tuned against a fallback that never loaded locally.
     b) ragged, "crooked" headings        — text-wrap:balance + tight negative
        tracking on uppercase display type.
     c) menu shifting                     — measured: the Bulgarian menu is 19px
        WIDER than the available space at 1280px. Plus magnetic buttons that
        translate on hover, a header that hides on scroll, and web-font swap
        reflow in the nav.
   ============================================================================ */

/* --- one display family, not two. Manrope 800 replaces Syne everywhere.
       Fewer web fonts = less swap reflow, and predictable widths. --- */
:root{
  --hf-disp:"Manrope","Helvetica Neue",Arial,sans-serif;
}

/* nav labels never depend on a web font, so the menu can never reflow on load */
.hf-menu a.hf-top,
.hf-langs a,
.hf-sub a{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

/* --- display type: smaller, calmer, and it always wraps rather than overflows --- */
body.lux-theme h1, body.lux-theme h2, body.lux-theme h3,
body.lux-theme h4, body.lux-theme h5, body.lux-theme h6,
body.lux-theme .page-title,
body.lux-theme .sub-hero-title,
body.lux-theme .hf-h2,
body.lux-theme .hf-hero__title{
  letter-spacing:-.018em;
  text-wrap:pretty;
  overflow-wrap:break-word;
  hyphens:none;
}
body.lux-theme .hf-hero__title{
  font-size:clamp(1.9rem,5.4vw,4.6rem);
  line-height:1.0;
  max-width:17ch;
}
body.lux-theme .hf-h2{
  font-size:clamp(1.6rem,3.4vw,2.6rem);
  line-height:1.05;
  max-width:20ch;
}
body.lux-theme .sub-hero-title{
  font-size:clamp(1.6rem,3.4vw,2.6rem);
  line-height:1.06;
  max-width:20ch;
}
body.lux-theme .page-title{
  font-size:clamp(1.5rem,3vw,2.3rem);
  line-height:1.08;
}
body.lux-theme .hf-statement{
  font-size:clamp(1.05rem,1.8vw,1.5rem);
  line-height:1.42;
  letter-spacing:-.01em;
  max-width:40ch;
}
body.lux-theme a.hf-card h3{ font-size:clamp(1.25rem,2.1vw,1.9rem); line-height:1.08; }
body.lux-theme .hf-tile h3{ font-size:1rem; letter-spacing:-.01em; }
body.lux-theme .hf-story h3{ font-size:1rem; letter-spacing:-.01em; }
.hf-stat__n{ font-size:clamp(1.7rem,3.2vw,2.8rem); letter-spacing:-.03em; }

/* no glyph-stroke effects — they collide on a heavy face */
.hf-outline{ -webkit-text-stroke:0; color:var(--hf-white); }

/* --- header: nothing in it may move --- */
body.lux-theme .hf-head.is-hidden{ transform:none; }   /* never hide on scroll */
.hf-head .hf-mag{ transform:none !important; }          /* kill magnetic drift in the nav */

/* buy the menu room, and hand over to the mobile sheet before it can collide */
.hf-nav{ gap:18px; }
.hf-menu{ gap:0; }
.hf-menu a.hf-top{ padding:10px 11px; font-size:.78125rem; }
.hf-act{ gap:8px; }
.hf-btn--sm{ padding:11px 15px; letter-spacing:.1em; }

@media (max-width:1400px){ .hf-langs{ display:none; } }   /* languages live in the sheet below this */
@media (max-width:1340px){
  .hf-menu{ display:none; }
  .hf-burger{ display:flex; margin-inline-start:auto; }
  .hf-act .hf-btn--ghost{ display:none; }
}

/* the sheet keeps the language switcher usable once the bar drops it */
.hf-sheet .hf-langs{ display:flex !important; justify-content:center; gap:6px; }
.hf-sheet .hf-langs a{ padding:10px 16px; border:1px solid var(--hf-line); font-size:.8125rem; }

/* ============================================================================
   25. TWO MORE DEFECTS FOUND IN REVIEW
   a) On phones the logo + two CTAs + burger did not fit: the "Apply now"
      button was clipped by the viewport edge. Both CTAs already live in the
      mobile sheet, so the bar keeps only the logo and the burger.
   b) The sticky service cards slid under the fixed header. Cause: body had
      overflow-x:hidden, which makes an ancestor scroll container and breaks
      position:sticky. overflow-x:clip does the same clipping without it.
   ============================================================================ */

body.lux-theme{ overflow-x:clip; }

@media (max-width:640px){
  .hf-act .hf-btn{ display:none; }
  .hf-burger{ margin-inline-start:auto; }
}

/* sticky offset is derived from the header height, not a guessed vh value */
:root{ --hf-head-h:80px; }
@media (max-width:600px){ :root{ --hf-head-h:66px; } }
.hf-stack__item{ top:calc(var(--hf-head-h) + 28px); }
body.lux-theme [id]{ scroll-margin-top:calc(var(--hf-head-h) + 20px); }

/* the legacy sheet sets overflow on the page wrapper, which silently disables
   position:sticky for everything inside it */
body.lux-theme .maxtelekom{ overflow:visible !important; }

/* specificity: the base button rule is body.lux-theme .hf-btn, so match it */
@media (max-width:640px){
  body.lux-theme .hf-act .hf-btn{ display:none; }
}

/* ============================================================================
   26. LEGACY HEADER — FINAL RETIREMENT
   The old header markup is still in the DOM (kept so its PHP keeps working).
   On phones its action cluster was painting a second burger and a language
   pill next to the new one. Hidden here, at the end of the sheet, together
   with every child that the earlier blanket rule did not reach.
   ============================================================================ */

body.lux-theme header.header,
body.lux-theme .header-actions,
body.lux-theme .top-online,
body.lux-theme .top-online2,
body.lux-theme .lang-switch,
body.lux-theme .lang-menu,
body.lux-theme .mobile-menu-button,
body.lux-theme .mobile-menu-drawer,
body.lux-theme .mobile-menu-overlay,
body.lux-theme #logo,
body.lux-theme .theme-toggle{
  display:none !important;
}

/* the new bar: logo left, burger hard right, nothing in between on phones */
.hf-nav > .hf-act{ margin-inline-start:auto; }

/* ============================================================================
   27. MENU STRUCTURE — the real cause of the "side by side" items
   The legacy sheet floats every <li> left. In the dropdowns and the mobile
   sheet that made entries flow horizontally and run together. Every list in
   the new chrome is reset to normal block flow here.
   ============================================================================ */

.hf-menu li,
.hf-sub li,
.hf-sheet li,
.hf-foot li,
.hf-pops li,
.hf-spec li{
  float:none !important;
  width:auto !important;
  display:block;
  list-style:none;
  margin:0;
  clear:none;
}
.hf-menu > li{ display:block; }
.hf-pops li{ display:grid; }
.hf-spec li{ display:flex; }

/* dropdowns: wide enough that no label has to wrap, badge stays on its line */
.hf-sub{
  min-width:290px;
  max-width:360px;
  left:auto; right:auto;
}
.hf-sub a{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:16px;
  white-space:normal;
}
.hf-sub a em{ flex:none; white-space:nowrap; }

/* keep the last dropdowns from overflowing the right edge of the window */
.hf-menu > li:nth-last-child(-n+2) .hf-sub{ left:auto; right:0; }

/* mobile sheet: one link per row, comfortable target size */
.hf-sheet ul{ display:block; }
.hf-sheet ul a{
  display:block;
  width:100%;
  white-space:normal;
}

/* ============================================================================
   28. VERTICAL RHYTHM — the live page had large dead bands between sections
   ============================================================================ */

.hf-sec{ padding-block:clamp(56px,6.5vw,96px); }
.hf-sec-head{ margin-bottom:clamp(28px,3.4vw,48px); }

/* network: the globe column was taller than the list, leaving a canyon */
.hf-globe-grid{ align-items:start; gap:clamp(24px,3.5vw,56px); }
.hf-globe-wrap{ max-width:460px; max-height:460px; margin-inline:0; }
@media (max-width:900px){ .hf-globe-wrap{ margin-inline:auto; } }

/* route-server block sat in an odd narrow column beside a stray button */
.hf-spec{ margin-top:20px; }
.hf-spec li{ justify-content:space-between; }
.hf-globe-grid .hf-btn{ display:inline-flex; margin-top:20px; }

/* the stacked service cards do not need half a screen of air each */
.hf-stack__item{ margin-bottom:20px; }
body.lux-theme .hf-card{ min-height:0; padding:clamp(24px,3vw,44px); }

/* CTA was floating in a very tall empty band */
.hf-cta__in{ padding-block:clamp(64px,8vw,120px); }

/* ============================================================================
   29. FLOAT RESET FOR THE WHOLE CHROME
   §27 reset the <li> elements, but the legacy sheet also floats <ul>, <h4>
   and generic <div>s, so the mobile sheet's four groups overlapped each other.
   Everything inside the new chrome is taken out of float flow, once.
   ============================================================================ */

.hf-head, .hf-head *,
.hf-sheet, .hf-sheet *,
.hf-foot, .hf-foot *,
.hf-contact, .hf-contact *{
  float:none !important;
}
.hf-sheet ul,
.hf-sheet h4,
.hf-sheet > .wrap > *{
  width:auto !important;
  clear:both;
}
.hf-sheet h4{ display:block; }
.hf-sheet ul{ display:block; margin-bottom:18px; }

/* the two sheet CTAs sat on top of each other on narrow screens */
.hf-sheet .hf-btn{ display:inline-flex; width:100%; }
.hf-sheet .hf-langs{ width:auto !important; }
.hf-sheet .hf-langs a{ width:auto !important; }

/* footer columns are grid items, never floats */
.hf-foot__grid > *{ width:auto !important; min-width:0; }

/* ============================================================================
   30. INNER-PAGE TOP SPACE + LARGER, GRABBABLE GLOBE
   The sub-hero still reserved 180px of padding above the breadcrumb — space
   the old design needed for a background photo that is no longer shown.
   ============================================================================ */

body.lux-theme .sub-hero{
  padding:calc(var(--hf-head-h) + 26px) 0 clamp(20px,2.6vw,34px) !important;
}
body.lux-theme .sub-hero .wrap{ gap:10px; }
body.lux-theme .breadcrumb{ margin-bottom:6px; }

/* the "IXP NETWORK" pill floated off on its own line at the right */
body.lux-theme .sub-hero .tx-pill{ align-self:flex-start; }

/* first content block after the sub-hero does not need another big gap */
body.lux-theme .sub-hero + .w100,
body.lux-theme .sub-hero + .page-gap{ padding-top:clamp(24px,3vw,44px); }

/* --- globe: larger, and it reads as something you can grab --- */
.hf-globe-wrap{ max-width:600px; max-height:600px; }
.hf-globe-wrap canvas{ cursor:grab; }
.hf-globe-wrap canvas:active{ cursor:grabbing; }
.hf-globe-grid{ grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); }
@media (max-width:900px){
  .hf-globe-grid{ grid-template-columns:1fr; }
  .hf-globe-wrap{ max-width:520px; }
}

/* breadcrumb: one compact row, not five stacked blocks */
body.lux-theme .breadcrumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:.55em;
  min-height:0 !important; height:auto !important; line-height:1.4;
}
body.lux-theme .breadcrumb > *{
  display:inline !important;
  height:auto !important; min-height:0 !important;
  margin:0 !important; padding:0 !important;
  line-height:inherit;
}
body.lux-theme .breadcrumb i,
body.lux-theme .breadcrumb svg{ opacity:.5; }

/* the sub-hero title reserved room for artwork that is no longer rendered */
body.lux-theme .sub-hero-title{
  padding:0 !important;
  min-height:0 !important;
  height:auto !important;
}

/* final trim: content starts just below the fixed bar */
body.lux-theme .sub-hero{ padding-top:calc(var(--hf-head-h) + 12px) !important; }
body.lux-theme .sub-hero .wrap{ gap:6px; }

/* ============================================================================
   31. UNBREAKABLE STRINGS
   Values like "7/24/365", "EVPN/MPLS" and "Ethernet • LR4" are single tokens
   with no space to wrap at, so at display sizes they pushed out of their card.
   ============================================================================ */

body.lux-theme .maxtelekom :is(strong,b,small,span,td,dd,h3,h4){
  overflow-wrap:anywhere;
  min-width:0;
}
body.lux-theme .maxtelekom :is(.tx-stat-value,.topology-stat-box strong,.service-tech-card strong){
  font-size:clamp(1.2rem,2.2vw,1.9rem) !important;
  line-height:1.12;
  letter-spacing:-.02em;
}
body.lux-theme .maxtelekom small{ font-size:.6875rem; line-height:1.5; }

/* the globe no longer paints a coloured ring around itself */
.hf-globe-wrap::after{ display:none !important; }
