/* Adopted component notices and maintained-source provenance:
 * libs/presentation/THIRD-PARTY-NOTICES.txt; docs/frontend-asset-provenance.md.
 * 2ip modifications include split product styling and Bootstrap5 selectors. */
.logo {
  text-align: center;
}
.logo a {
  display: inline-block;
  line-height: 1;
  margin: 0;
}
.logo-image span,
.logo-image small {
  display: none;
}
.logo-text a {
  text-decoration: none;
  font-size: 32px;
  font-weight: bold;
}
.logo-text:hover a,
.logo-text a:hover,
.logo-text a:active,
.logo-text a:focus {
  text-decoration: none;
}
.logo-text .site-slogan {
  display: block;
  font-size: 16px;
  margin-top: 5px;
}
.head-search {
  margin-top: 0;
}
.head-search:before,
.head-search:after {
  content: " ";
  display: table;
}
.head-search:after {
  clear: both;
}
.head-search form {
  margin: 0;
}
.head-search label {
  display: none;
}
.head-search .search {
  position: relative;
}
.head-search .search:before {
  content: "\f002";font-family:"Font Awesome 7 Free";font-weight:900;
  display: block;
  position: absolute;
  left: 10px;
  top: 6px;
  color: var(--twoip-on-surface-variant);
}
@media screen and (min-width: 768px) {
  .head-search .search {
    float: right;
  }
}
.head-search .form-control {
  width: 100%;
  padding-left: 30px;
}
@media screen and (min-width: 768px) {
  .head-search .form-control {
    width: 150px;
  }
  .head-search .form-control:focus {
    width: 200px;
  }
}
.t3-mainbody {
  padding-top: 16px;
  padding-bottom: 16px;
}
.t3-sidebar {
  padding-top: 16px;
  padding-bottom: 16px;
}
.t3-footer {
  border-top: 1px solid var(--twoip-outline-variant);
  background: var(--twoip-surface-container);
  color: var(--twoip-on-surface-variant);
}
.t3-footer:before,
.t3-footer:after {
  content: " ";
  display: table;
}
.t3-footer:after {
  clear: both;
}
.t3-footer small {
  display: block;
  font-size: 100%;
}
.t3-footnav {
  padding: 16px 0;
}
.t3-footnav:before,
.t3-footnav:after {
  content: " ";
  display: table;
}
.t3-footnav:after {
  clear: both;
}
@media screen and (min-width: 768px) {
  .t3-footnav {
    padding: 32px 0;
  }
}
.t3-footnav .t3-module {
  background: var(--twoip-surface-container);
  color: var(--twoip-on-surface-variant);
  margin-top: 8px;
  margin-bottom: 8px;
}
.t3-footnav .t3-module .module-title {
  color: var(--twoip-on-surface);
  font-size: 20px;
  margin-bottom: 8px;
}
.t3-footnav .t3-module ul {
  list-style: none;
  margin-left: 0;
  margin-bottom: 0;
  padding-left: 0;
}
.t3-footnav .t3-module ul > li {
  line-height: 24px;
}


.t3-copyright {
  border-top: 1px solid var(--twoip-outline-variant);
  font-size: 14px;
  padding: 32px 0 64px;
}
.t3-copyright:before,
.t3-copyright:after {
  content: " ";
  display: table;
}
.t3-copyright:after {
  clear: both;
}
.t3-copyright small {
  margin-bottom: 5px;
}
.copyright {
  margin-bottom: 16px;
}
.poweredby:before,
.poweredby:after {
  content: " ";
  display: table;
}
.poweredby:after {
  clear: both;
}
@media screen and (min-width: 991px) {
  .poweredby {
    text-align: right;
  }
}
.poweredby .t3-logo,
.poweredby .t3-logo-small {
  opacity: .8;
  display: inline-block;
}

::selection {
  background: var(--twoip-primary);
  color: var(--twoip-on-primary);
}
::-moz-selection {
  background: var(--twoip-primary);
  color: var(--twoip-on-primary);
}

/* Ads can override the wrapper's min-height inline; its flex parent keeps it full-height. */
body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
}
.t3-wrapper {
  min-height: 100vh;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  flex-shrink: 0;
  width: 100%;
}
.t3-page-content {
  flex: 1 0 auto;
  width: 100%;
}
:root { --twoip-footer-ad-gap: 16px; --twoip-footer-ad-reserve: 248px; }
/* Footer-ad gaps reuse existing content spacing, without adding a second top gap. */
body .t3-page-content:has(> .t3-sl-adsense-bottom) > #t3-mainbody { padding-block-end: var(--twoip-footer-ad-gap); }
body .t3-page-content--home:has(> .t3-sl-adsense-bottom) .t3-sl-bottom .t3-module { margin-block-end: var(--twoip-footer-ad-gap); }
body .t3-sl-adsense-bottom {
  padding-block: 0 var(--twoip-footer-ad-gap);
  min-block-size: calc(var(--twoip-footer-ad-reserve) + var(--twoip-footer-ad-gap));
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
}
/* Carry the shell's remaining height through the owned content column.
 * Cards grow; forms/results and the following ad slots stay intrinsic. */
.t3-page-content:is(:has(#t3-content .twoip-service), :has(> .t3-sl-adsense-bottom):not(.t3-page-content--home)) {
  display: flex;
  flex-direction: column;
  > :not(#t3-mainbody) { flex: 0 0 auto; }
  > #t3-mainbody {
    display: flex;
    flex-direction: column;
    flex: 1 0 auto;
    > .row,
    > .row > .twoip-content-column > .row { flex: 1 0 auto; }
    > .row > .twoip-content-column,
    > .row > .twoip-content-column > .row > .col-lg-12 {
      display: flex;
      flex-direction: column;
    }
    #t3-content { flex: 1 0 auto; }
  }
}
@media screen and (max-width: 767px) {
  .t3-wrapper > .t3-sl-userinfo,
  .t3-wrapper > .t3-sl-helper {
    width: 100%;
  }
}
.t3-header .head-message {
  margin-top: -16px;
  margin-bottom: 16px;
  background-color: var(--twoip-primary);
  padding: 5px 0 6px;
}
.t3-header .head-message a {
  color: var(--twoip-on-primary);
}
.t3-header .head-message a:hover {
  border-bottom: 1px solid var(--twoip-on-primary);
}
.t3-header .top-banner {
  position: relative;
}
@media screen and (max-width: 991px) {
  .t3-header .top-banner {
    margin-bottom: 26px;
  }
}
.t3-header .top-banner .img {
  margin: 0 auto;
}
.t3-header .social_block_links {
  display: block;
  padding: 10px;
}
.t3-header .social_block_links.insta {
  padding: 12px 10px 10px 10px;
}
@media screen and (max-width: 991px) {
  .t3-header .social_block_links.insta {
    padding: 12px 10px 10px 10px;
  }
}
.t3-header .social_block_links.tg {
  padding: 4px 10px 10px 10px;
}
@media screen and (max-width: 991px) {
  .t3-header .social_block_links.tg {
    padding: 8px 10px 10px 10px;
  }
}
.t3-header .languages {
  top: 30px;
}
.t3-header .alert-mess {
  padding-top: 8px;
}
.t3-header .alert-mess .alert-mess-text {
  background-repeat: no-repeat;
  background-position: 9px center;
  background-size: auto 100%;
  padding-left: 11%;
  color: var(--twoip-on-primary);
  font-size: 110%;
}
@media screen and (max-width: 991px) {
  .t3-header .alert-mess .alert-mess-text {
    font-size: 3vw;
    padding-left: 16vw;
    font-weight: normal;
  }
}
.t3-header .logo .site-title {
  font-size: 160%;
  font-family: '2ip-title';
  color: var(--twoip-on-surface-variant);
  top: 6px;
  left: 3px;
  position: relative;
  z-index: 99;
}
@media screen and (max-width: 991px) {
  .t3-header .logo {
    position: relative;
    margin: -12px 0 10px;
  }
}
@media screen and (max-width: 991px) {
  .t3-header .blq,
  .t3-header .block-mess {
    margin-bottom: 32px;
  }
}
