/* First-party homepage presentation. Original service artwork is preserved. */
.t3-isotope-menu .t3-module { margin-bottom: 8px; }
.t3-isotope-menu .t3-module button { border: 0; background: none; }
.t3-isotope-menu > div > div { padding: 0; }
.t3-spotlight-services .cell.is-dragging { z-index: 10; cursor: move; }
.t3-spotlight-services .flat { position: relative; }
.t3-spotlight-services .flat .control { position: absolute; width: 100%; display: block; opacity: 0; pointer-events: none; }
.t3-spotlight-services .flat:hover .control,
.t3-spotlight-services .flat:focus-within .control { opacity: 1; pointer-events: auto; }
.t3-spotlight-services .flat .simg { background-repeat: no-repeat; background-size: contain; background-position: bottom center; }
.t3-spotlight-services .flat a { display: block; text-align: center; overflow: hidden; text-decoration: none; }
.t3-spotlight-services .flat-removed { background-repeat: no-repeat; background-size: contain; background-position: center; height: 44px; width: 44px; display: inline-block; margin: 6px; }
.t3-spotlight-services :is(.repair-link,.notification) { padding-bottom: 16px; font-size: 14px; }
.t3-spotlight-services .repair-link span { cursor: pointer; }
.t3-spotlight-services .repair-link .twoip-icon { color: var(--twoip-primary); margin-right: 6px; }
:is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat a {
  display: block; background-repeat: no-repeat; color: var(--twoip-on-surface);
}
.t3-spotlight-top .module_rating a,
.t3-spotlight-bottom .module_rating a,
.t3-spotlight-api .module_rating a {
  --twoip-service-art-image: url('/images/icon/Rating.png');
}
.t3-spotlight-top .module_account a,
.t3-spotlight-bottom .module_account a,
.t3-spotlight-api .module_account a {
  --twoip-service-art-image: url('/images/icon/Account.png');
}
.t3-spotlight-top .module_layer2 a,
.t3-spotlight-bottom .module_layer2 a,
.t3-spotlight-api .module_layer2 a {
  --twoip-service-art-image: url('/images/icon/Api.png');
}
.t3-spotlight-top .module_layer3 a,
.t3-spotlight-bottom .module_layer3 a,
.t3-spotlight-api .module_layer3 a {
  --twoip-service-art-image: url('/images/icon/Speedometer.png');
}
.t3-spotlight-top .module_layer4 a,
.t3-spotlight-bottom .module_layer4 a,
.t3-spotlight-api .module_layer4 a {
  --twoip-service-art-image: url('/images/icon/Speedometer-site.png');
}
.t3-spotlight-top .module_layer33 a,
.t3-spotlight-bottom .module_layer33 a,
.t3-spotlight-api .module_layer33 a {
  --twoip-service-art-image: url('/images/icon/IP-blok.png');
}
.t3-spotlight-top .module_layer34 a,
.t3-spotlight-bottom .module_layer34 a,
.t3-spotlight-api .module_layer34 a {
  --twoip-service-art-image: url('/images/icon/Password_generator.png');
}
.t3-spotlight-top .module_layer35 a,
.t3-spotlight-bottom .module_layer35 a,
.t3-spotlight-api .module_layer35 a {
  --twoip-service-art-image: url('/images/icon/Api_stat.png');
}

/* Compact filters, destination links and illustration-led service cards. */
body .t3-isotope-menu .t3-module .module-ct > .row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-inline: 0; background: transparent; border: 0; }
body .t3-isotope-menu .t3-module button { width: auto; min-width: 0; margin-bottom: 0; padding-inline: 0; display: flex; }
/* The direct tab surface owns decoration; nested compact labels own only text. */
body .t3-isotope-menu .module-ct > .row > button > span::before {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--twoip-category-icon-size, 16px);
  font-family: "Font Awesome 7 Free";
  font-weight: 900;
  font-size: var(--twoip-category-icon-size, 16px);
  line-height: 1;
  color: currentColor;
}

body .t3-isotope-menu .module-ct > .row > button:nth-of-type(1) > span::before {
  content: "\f00a";
}

body .t3-isotope-menu .module-ct > .row > button:nth-of-type(2) > span::before {
  content: "\f3c5";
}

body .t3-isotope-menu .module-ct > .row > button:nth-of-type(3) > span::before {
  content: "\f15c";
}

body .t3-isotope-menu .module-ct > .row > button:nth-of-type(4) > span::before {
  content: "\f013";
}
@media (max-width: 1099px) { body .t3-isotope-menu .t3-module .module-ct > .row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body .t3-spotlight-services { --twoip-service-card-min-height: 220px; --twoip-service-card-top-inset: 32px; --twoip-service-art-size: 112px; }
/* One service surface; compact/large differences are layout and capabilities. */
body :is(.t3-spotlight-services,.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat > a {
  background-color: var(--twoip-service-surface); border: 1px solid transparent;
  border-radius: var(--twoip-radius-category); color: var(--twoip-on-surface);
  font-family: "2ip"; font-size: 14px; font-weight: 500; line-height: 1.35;
  word-break: normal; overflow-wrap: normal; text-decoration: none;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
body :is(.t3-spotlight-services,.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat > a:hover {
  background-color: var(--twoip-service-hover); border-color: var(--twoip-primary); color: var(--twoip-on-primary-container);
}
body :is(.t3-spotlight-services,.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat > a:active { background-color: var(--twoip-primary-container); border-color: var(--twoip-primary); }
body :is(.t3-spotlight-services,.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat > a:focus-visible { outline: 2px solid var(--twoip-primary); outline-offset: -3px; }
body :is(.t3-spotlight-services,.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat > a:focus-visible:not(:active) { background-color: var(--twoip-service-surface); }
body .t3-spotlight-services .t3-module { background: transparent; border: 0; box-shadow: none; }
body .t3-spotlight-services .cell.is-dragging .flat > a { border-color: var(--twoip-primary); background-color: var(--twoip-service-hover); }
body :is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat > a {
  display: flex;
  align-items: center;
  gap: var(--twoip-featured-gap, 8px);
  width: 100%;
  min-height: var(--twoip-featured-height, 60px);
  height: 100%;
  padding: var(--twoip-featured-padding, 10px);
  font-size: var(--twoip-featured-font-size, var(--twoip-type-label));
  background-image: none;
  white-space: normal;
}
body :is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .flat > a::before {
  content: "";
  flex: 0 0 var(--twoip-featured-icon-box, 36px);
  width: var(--twoip-featured-icon-box, 36px);
  height: var(--twoip-featured-icon-box, 36px);
  background: var(--twoip-service-art-surface) var(--twoip-service-art-image) center / var(--twoip-featured-art-size, 28px) no-repeat;
  border-radius: var(--twoip-radius-small);
}
body :is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .row > .twoip-current-grid:has(> .flat) { display: flex; width: 100%; }
body :is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .row:has(> .twoip-current-grid > .flat) { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); grid-auto-rows: 1fr; }
@media (max-width: 767px) { body :is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .row:has(> .twoip-current-grid > .flat) { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body :is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) .t3-module { display: flex; width: 100%; background: transparent; border: 0; box-shadow: none; }
@media (pointer: coarse) { body .t3-isotope-menu .t3-module button { min-height: 44px; } }
body .t3-spotlight-services .flat a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  text-align: center;
  height: var(--twoip-service-card-height, auto);
  min-height: var(--twoip-service-card-min-height);
  padding: var(--twoip-service-card-top-inset) 10px 12px;
  line-height: 1.35;
  font-size: var(--twoip-type-label);
  font-weight: 500;
  color: var(--twoip-on-surface);
}
body .t3-spotlight-services .flat a:focus-visible { outline-offset: -3px; border-radius: var(--twoip-radius-medium); }
body .t3-spotlight-services .flat .simg { display: grid; place-items: center; flex: 0 0 var(--twoip-service-art-size); width: var(--twoip-service-art-size); height: var(--twoip-service-art-size); margin: 0; background-position: center; background-color: var(--twoip-service-art-surface); padding: calc(var(--twoip-service-art-size) * .11); background-origin: content-box; background-size: contain; border-radius: var(--twoip-radius-full); }
body .t3-spotlight-services .flat .service-title {
  width: 100%;
  min-width: 0;
  min-height: 2lh;
  margin: 0;
  flex-shrink: 0;
  text-align: center;
  white-space: normal;
  overflow-wrap: normal;
  word-break: normal;
}
body .t3-spotlight-services .flat .control { top: 2px; padding: 0 4px; }
body .t3-spotlight-services .flat .control button.control-el {
  display: grid; place-items: center; width: 28px; height: 28px; padding: 0;
  color: var(--twoip-control-ink, var(--twoip-on-surface-variant)); border: 0; border-radius: var(--twoip-radius-full);
  background: var(--twoip-destructive-fill, var(--twoip-surface-container)); font-size: 14px;
}
body .t3-spotlight-services .flat .control button.control-el:not(.remove):is(:hover,:focus-visible) { color: var(--twoip-primary); background: var(--twoip-primary-container); }
body .t3-spotlight-services .flat .control [data-type="drag"] { cursor: grab; }
body .t3-spotlight-services .flat .control [data-type="drag"]:active { cursor: grabbing; }
body .t3-spotlight-services .flat-removed { border-radius: var(--twoip-radius-small); }
@media (max-width: 767px) {
  body .t3-spotlight-services .flat .control { --twoip-card-control-inset: 4px; top: var(--twoip-card-control-inset); padding-inline: var(--twoip-card-control-inset); }
  body .t3-spotlight-services .flat .control > .twoip-current-grid { padding-inline: 0; }
  body .t3-spotlight-services .flat .control button.control-el { width: 44px; height: 44px; }
}
@media (max-width: 480px) {
  body .t3-spotlight-services { --twoip-service-card-min-height: 220px; --twoip-service-card-top-inset: 48px; --twoip-service-art-size: 88px; }
  body .t3-spotlight-services .flat a {
    gap: 8px;
    padding-inline: 6px;
  }
}
@media (hover: none), (pointer: coarse) {
  body .t3-spotlight-services .flat .control { opacity: 1; pointer-events: auto; }
  body .t3-spotlight-services .flat .control button.control-el { width: 44px; height: 44px; background: var(--twoip-destructive-fill, transparent); }
}

@media (max-width: 1099px) { body #flat > .cell { width: 50%; } }
@media (max-width: 359px) {
  body #flat > .cell { width: 100%; }
}

body .service-art--security { --twoip-service-art-surface: var(--twoip-art-security); }
body .service-art--communication { --twoip-service-art-surface: var(--twoip-art-communication); }
body .service-art--infrastructure { --twoip-service-art-surface: var(--twoip-art-infrastructure); }
body .service-art--location { --twoip-service-art-surface: var(--twoip-art-location); }

/* Stored category links must not occupy a grid cell before DOM normalization. */
body .t3-isotope-menu .module-ct > .row > a:has(> button) { display: contents; }
/* Match the existing grid gutter/flow before the runtime adapter marks #flat. */
body #flat { display: flow-root; }
body #flat > .cell { float: left; position: relative; padding-inline: 9px; }
/* Hero icons are anchored to their own cells even before the adapter runs. */
body .ipblock .showip_mod :is(.ipblockgrid,.s-ipblockgrid) > div { position: relative; }

/* Desktop middle navigation scale. Mobile retains its approved density. */
@media (min-width: 1100px) {
  body .t3-spotlight-services .flat a {
    font-size: var(--twoip-type-body);
  }
  body .t3-isotope-menu {
    --twoip-tab-min-height: 60px;
    --twoip-tab-padding-block: 12px;
    --twoip-tab-font-size: var(--twoip-type-title);
    --twoip-category-icon-size: 20px;
  }
  body :is(.t3-spotlight-top,.t3-spotlight-bottom,.t3-spotlight-api) {
    --twoip-featured-height: 72px;
    --twoip-featured-gap: 12px;
    --twoip-featured-padding: 12px;
    --twoip-featured-font-size: var(--twoip-type-body);
    --twoip-featured-icon-box: 44px;
    --twoip-featured-art-size: 36px;
  }
}
