/* Base reset */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;color:#0e0f11;background:#fafafa}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* HERO */
.hero{position:relative;min-height:100vh;overflow:hidden;z-index:1}
.hero .media{position:absolute;inset:0;background:#000}

img.Smallpics {
    margin-left: 0vh;
    width: 420px;
    height: auto;
}

/* BRAND BAR per request */
.brandbar {
  position: absolute;
  top: 3vh;
  left: 0;
  right: 0;
  height: 12vh;
  display: flex;
  align-items: center;
  justify-content: left;
  z-index: 50;
  padding-left: 20vh;
  padding-right: 20vh;
  opacity: 1;
  transition: top .35s ease, box-shadow .35s ease, opacity .5s ease-in-out;
  will-change: transform, opacity;
  backface-visibility: hidden;
  transform: translateZ(0);
  
}
.brandbar.is-fixed{opacity:1; 
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  padding-left: 20vh;
  padding-right: 20vh;
  background: #ffffff;
  box-shadow:0 4px 16px rgba(0,0,0,.15);
  opacity: 1;
}
.brandbar__logo{ height:100px; width:auto;}

/* Rows */
.rows{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}
.row--rev{direction:rtl}.row--rev>.col{direction:ltr}
.col{position:relative;background:#fff;overflow:hidden}
.col--media{display:flex;align-items:center;justify-content:center;background:#fff;background-image: var(--img-bg);
background-repeat:no-repeat;background-position:center;background-size:cover}
.col--media2{display:flex;align-items:center;justify-content:center;background:#fff;background-image: var(--img-bgdark);
background-repeat:no-repeat;background-position:center;background-size:cover}
.cover{max-width:70%;max-height:70%;width:auto;height:auto;object-fit:contain;margin:auto;text-align:left;}
.imagecontainer {
  width: 100%;
  margin-top: 5vh;
  height: auto;
  text-align: center;
}	
.arrw {
    position: absolute;
    z-index: 2;
    width: 60px;
    height: 60px;
    object-fit: contain;
}
.arrw--left {
    margin-top: -10vh !important;
    margin-left: 6% !important;
}
.col--text{  display:flex;justify-content:center;padding: 40px 15vh;background:#fff;color:#111;text-align: left; flex-direction: column; align-items: flex-start; text-align:left; }
.col--text h2{letter-spacing:.15em;font-weight:700;margin:0px;font-size:clamp(31px, 4.32vw, 61px);line-height:1}

.row--logos-contact .contact h3{letter-spacing:.15em;font-weight:700;margin:0px;font-size:clamp(31px, 4.32vw, 61px);line-height:1;color:#dddddd;text-align: left;}
.col--text p{margin:0;font-size:clamp(19px, 2.3vw, 25px)}

div#row-platforms {padding-top: 130px;}

/* Partners dark media */
#row-partners .col--media{background-image: var(--img-bgdark)}

/* Logos + Contact */
.row--logos-contact{min-height:auto;background:#333;color:#e9e9e9}
.row--logos-contact .col{background:#333;color:#e9e9e9}
.row--logos-contact .logos{display:grid;grid-template-columns:repeat(4, minmax(0, 1fr)); grid-template-columns: repeat(3, minmax(0, 1fr));align-items:center;justify-content:center;min-height:clamp(172px, 25.92vw, 259px);margin:0;padding:18px}
.row--logos-contact .logos img {
    max-height: 200px;
    width: auto;
    height: auto;
    object-fit: contain;
    opacity: 1;
}
.row--logos-contact .contact{display:flex;flex-direction:column;gap:14px;justify-content:center;align-items:center;text-align:center;color:#e9e9e9}	
.links{list-style:none;padding:0;margin:0}.links li{margin:8px 0}
h1#row-contact {margin-top: 15vh;}
div.links {
    margin-top: 0vh;
    text-align: left;
    margin-left: -8vh;
    font-size: 1.5em;
}
.links a{color:#ccc;text-decoration:none;padding-bottom:2px;text-align: left;}
.links a:hover{color:#fff; text-decoration: underline;}


.social{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:nowrap}
.social img {
    height: clamp(100px, 6vw, 150px);
    width: auto;
}
.newsletter{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center;width:100%;max-width:520px}
.newsletter input{flex:1 1 260px;min-width:200px;height:44px;padding:0 14px;border:1px solid #ccc;border-radius:24px;background:#fff;font-size:clamp(19px, 2.3vw, 25px)}
.newsletter button{height:44px;padding:0 18px;border:none;border-radius:24px;cursor:pointer;background:#111;color:#fff;font-weight:600}
.form-msg{margin:6px 2px 0;font-size:14px;color:#1a6}

/* Footer */
.footer{position:relative;margin-top:0;background:#333}
.footer .media{height:28vh;min-height:240px;background:#000}
.footer .legal{display:flex;gap:10px;justify-content:space-between;align-items:center;padding:10px 16px;font-size:13px;color:#e9e9e9;background:#333;border-top:1px solid rgba(255,255,255,.15)}
.footer .legal nav{display:flex;gap:18px}
.footer .legal a{color:#f2f2f2;text-decoration:none}
.footer .legal a:hover{color:#fff;text-decoration:underline}

/* Responsive */
@media (max-width:1024px){ .row{min-height:90vh} }
@media (max-width:600px){
  .row{grid-template-columns:1fr;min-height:auto}
  .col{min-height:100svh}
  .col--media{min-height:100svh}
  .row--rev{direction:ltr}
  .brandbar{margin-left: 4vh; margin-right: 4vh}
}

/* 4 columns for logos when space allows */
@media (min-width: 1200px){
  .row--logos-contact .logos{
    grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 900px){
  .row--logos-contact .logos{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.col--text > p{ margin-top: 12px;     padding-left: 15vh;
    /*padding-right: 15vh;*/
}

.col--text > h2 { padding-left: 15vh; }

/* Parallax strip above partners */
.parallax .media {
  height: 21vh;
  width: auto;
  min-height: 470px;
  background-image: var(--img-homebot);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}


/* Social icons (replace sn1..sn5 images) */
.social .social-network.social-circle{
  list-style:none;
  display:flex;
  gap:12px;
  align-items:center;
  justify-content:center;
  padding:0;
  margin:0;
  flex-wrap:nowrap;
}
.social .social-network.social-circle li{display:block}
.social .social-network.social-circle li a{
  display:flex;
  align-items:center;
  justify-content:center;
  width: clamp(100px, 6vw, 150px);
  height: clamp(100px, 6vw, 150px);
  border-radius: 999px;
  background: #111;
  color: #fff;
  text-decoration: none;
}
.social .social-network.social-circle li a i{
  font-size: clamp(32px, 3.2vw, 54px);
  line-height: 1;
}
/* subtle hover */
.social .social-network.social-circle li a:hover{opacity:.9; transform: translateY(-2px)}


/* Fine-tuned social media icon sizing */
.social ul.social-network.social-circle {
  list-style: none;
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: center;
  padding: 0;
  margin: 0;
  flex-wrap: nowrap;
}
.social ul.social-network.social-circle li {
  display: block;
}
.social ul.social-network.social-circle li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 64px; /* match approximate original sn..png size */
  height: 64px;
  border-radius: 999px;
  background: #111;
  color: #fff;
  text-decoration: none;
  font-size: 28px;
}
.social ul.social-network.social-circle li a i {
  line-height: 1;
}
.social ul.social-network.social-circle li a:hover {
  opacity: 0.9;
  transform: translateY(-2px);
}

/* --- Scoped social icon sizing (no impact outside .social) --- */
.social .social-network.social-circle li a{
  width: clamp(90px, 6vw, 140px);
  height: clamp(90px, 6vw, 140px);
}
.social .social-network.social-circle li a i{
  font-size: clamp(28px, 3vw, 38px);
}

/* Custom styling for Twitter X icon */
i.fa-brands.fa-twitter {
    font-family: sans-serif;
}
i.fa-brands.fa-twitter::before {
    content: "𝕏";
    font-size: 1.1em;
}

/* Reddit icon styling */
.reddit-icon {
  width: 46px;
  height: 46px;
  fill: #ffffff;
  transition: fill 0.3s ease;
}

.icoReddit:hover .reddit-icon {
  fill: #990000;
}


.form-control {
	display: block;
	width: 80%;
	height: 40px;
	padding: 6px 12px;
	font-size: 14px;
	line-height: 1.42857143;
	color: #555;
	background-color: #fff;
	background-image: none;
	border: 1px solid #ccc;
	border-radius: 30px;
	-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
	box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
	-webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
	-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
	-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
	transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
	transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
	transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
}

section#section-footer .btregister {
	text-align: center;
	width: 80%;
	font-family: "Helvetica Neue", "Helvetica", "Arial", "sans-serif";
	font-size: 14px;
	font-weight: 500;
	color: #fff;
	padding: 10px;
	border-radius: 30px;
	margin-top: 10px;
	margin-bottom: 20px;
}

.contactinfo {
	padding-top: 5px;
	font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
	color: #fff;
	font-size: 13px;
	font-weight: 400;
}

/* === Newsletter replacement styles (scoped) === */
.form-control {
  display: block;
  width: 80%;
  height: 40px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 30px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
  box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
  -webkit-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
  -o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
  -webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
}

.btregister {
  text-align: center;
  width: 80%;
  font-family: "Helvetica Neue", "Helvetica", "Arial", "sans-serif";
  font-size: 14px;
  font-weight: 500;
  color: #fff;
  padding: 10px;
  border-radius: 30px;
  margin-top: 10px;
  margin-bottom: 20px;
}

.contactinfo {
  padding-top: 5px;
  font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
  color: #fff;
  font-size: 13px;
  font-weight: 400;
}

/* Adjusted newsletter spacing and sizing */

.form-control {
  width: 50vh !important;
}

.btregister {
  width: 50vh !important;
}

/* === Newsletter form layout tweaks per request === */
.nlform { margin-top: 2vh; }

.nlform .btregister { width: 50vh; }

/* === Scoped button styles (no Bootstrap dependency) === */
.nlform .btn{
  display:inline-block;
  padding:10px 16px;
  font-size:14px;
  line-height:1.42857143;
  border-radius:30px;
  border:1px solid transparent;
  cursor:pointer;
  text-align:center;
  text-decoration:none;
  user-select:none;
}

.nlform .btn-info{
  background:#17a2b8;
  border-color:#13899c;
  color:#fff;
}

.nlform .btn-info:hover,
.nlform .btn-info:focus{
  filter:brightness(0.95);
  outline:none;
}

/* === Adjustments per request === */
.social { margin-top: 5vh; }

.footer .legal {
  font-size: 14px; /* uniform font size */
  line-height: 2.2em; /* more height for the full line */
}

.footer .legal small,
.footer .legal nav a {
  font-size: 14px; /* ensure same font size for both text and links */
}


/* === Requested overrides (v13) === */
.footer .legal {
  background-color: #212121;
  line-height: 2.5em;
}

/* === Responsive & layout adjustments === */

/* Center Xaracom logo bar on mobile, adjust width after scroll */
.brandbar {
  display: flex;
  top: 50px;
  justify-content: space-between;
  align-items: center;
  padding-left: 10px;
  padding-right: 10px;
  width: 100%;
}
@media (max-width: 600px) {
  .brandbar__logo {
    width: 60%;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Column text adjustments for mobile, keep title and text left-aligned */
.col--text {
  display: flex;
  justify-content: center;
  text-align: left;
}
@media (max-width: 600px) {
  
}

/* pan5.png centering with 80vh width */
#row-partners .col--media img.cover2 {
  width: 80vh;
  margin: auto;
}

/* Logos section adjustments for 3 columns on desktop, 2 on mobile */
.row--logos-contact .logos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 15px;
}
@media (max-width: 900px) {
  .row--logos-contact .logos {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 600px) {
  .row--logos-contact .logos {
    grid-template-columns: repeat(2, 1fr);
  }
}
.row--logos-contact .logos img {
  object-fit: contain;
  width: auto;
  max-height: 150px;
  margin: auto;
}

/* === Responsive fixes === */

/* Ensure the logo doesn't stretch on mobile */
.brandbar__logo {
  width: auto;
  height: auto;
}

/* Adjust pan5.png (cover2) to fit better on mobile */
#row-partners .col--media img.cover2 {
  max-width: 70%;
  max-height: 70%;
  width: auto;
  height: auto;
  object-fit: contain;
  margin: auto;
}

/* Adjust col--text for better mobile spacing */

@media (max-width: 600px) {
  .col--text {
    width: auto;
    padding-left: 10px;
    padding-right: 10px;
  }

  .col--text h2, .col--text p {
    margin-bottom: 15px;
  }
}

/* === Adjustments === */
.brandbar {
  padding-left: 5vh !important;
  padding-right: 0;
}

@media (max-width: 600px) {
  .brandbar__logo {
    width: 100%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
  }
}

/* === Adjustments for mobile logo === */


/* === Form and button adjustments === */
.nlform .form-control,
.nlform .btn {
  height: 50px;
  width: 100%;
  margin: 20px;
  margin-left: auto;
  margin-right: auto;
  display: block;
}

@media (max-width: 600px) {
  .nlform .form-control,
  .nlform .btn {
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}

/* === Adjust logo grid gap and add margin around the entire logos section === */
.row--logos-contact .logos {
  gap: 0px;
  margin: 20px; /* Add margin around the entire logos section */
}

.row--logos-contact .logos img {
  margin: 10px; /* Add space around each individual logo */
}

/* === Adjust margins for figures to ensure breathing space around logos === */
figure {
  margin: 0px !important;
}

/* Ensure form-control and submit button are always 80% in width */
.nlform .form-control,
.nlform .btn {
  margin-left: auto;
  margin-right: auto;
  display: block;
}


/* === Logo and Footer adjustments === */
/* Center brand logo and reduce size by ~20% (from 100px -> 80px) */
.brandbar { /*justify-content: center;*/ }
.brandbar__logo {
  height: 100px !important;
  width: auto !important;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.footer .legal {
  background-color: #212121;
  line-height: 2.5em;
}



/* Ensure the form-control and submit button are always centered and 80% width */
.nlform .form-control,
.nlform .btn {
  margin-left: auto;
  margin-right: auto;
  display: block;
}

/* === Back-to-top button === */
.to-top{
  position: fixed;
  right: 5vh;
  bottom: 5vh;
  width: 56px;
  height: 56px;
  background: #000;
  color: #fff;
  border: none;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  z-index: 999;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}
.to-top--show{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.to-top:focus{ outline: 2px solid #fff; outline-offset: 2px; }


/* === Logo centering & no-distortion safeguards === */
/* Always size the logo by height only; keep width:auto to prevent distortion */
.brandbar__logo {
  height: 100px !important;   /* ~20% smaller than 100px */
  width: auto !important;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/* On mobile: ensure the brand bar doesn't push the logo off-center */
@media (max-width: 600px){
  .brandbar{
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    justify-content: center !important;
  }
  .brandbar.is-fixed{
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  .brandbar__logo{
    height: 80px !important;  /* keep same height; width stays auto */
    width: auto !important;
    margin: 0 auto !important;
  }
  
  .nlform .form-control, .nlform .btn {
	width: 400px !important;
  } 
}

/* === Back-to-top arrow refinements === */
.to-top{
  right: 2vh !important;
  bottom: 7vh !important;
  border-radius: 12px;
}
.to-top svg{
  width: 62%;
  height: 62%;
  display: block;
}

/* === Skip (scroll down) & Back-to-top buttons using arrtop.png === */
.hero .skip{
  position: fixed !important;
  right: 2vh !important;
  bottom: 7vh !important;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 0;
  z-index: 998;
  opacity: 1;
  transform: translateY(0);
  transition: opacity .25s ease, transform .25s ease;
}
.hero .skip.skip--hide{
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
}
.hero .skip .skip__img{
  width: 100%;
  height: 100%;
  display: block;
  transform: rotate(180deg); /* invert to point down */
}

/* Back-to-top */
.to-top{
  position: fixed;
  right: 2vh;
  bottom: 2vh;
  width: 56px;
  height: 56px;
  background: transparent;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 999;
  opacity: 0;
  transform: translateY(8px);
  pointer-events: none;
  transition: opacity .25s ease, transform .25s ease;
}
.to-top img{
  width: 100%;
  height: 100%;
  display: block;
}
.to-top--show{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}


/* === Skip & Back-to-top: 20% smaller and forced square === */
.hero .skip,
.to-top{
  width: 45px !important;   /* 56px * 0.8 ≈ 45px */
  height: 45px !important;
  aspect-ratio: 1 / 1;
}

.hero .skip .skip__img,
.to-top img{
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: contain;
}


/* === Unify control button sizes === */
:root { --ctl-btn-size: 45px; } /* same size for both buttons */

.hero .skip,
.to-top{
  width: var(--ctl-btn-size) !important;
  height: var(--ctl-btn-size) !important;
  padding: 0 !important;
  border: 0 !important;
  aspect-ratio: 1 / 1;
}

.hero .skip .skip__img,
.to-top img{
  width: 100% !important;
  height: 100% !important;
  display: block;
  object-fit: contain;
}


/* === Centered DEMO REEL badge === */
.demo-reel{
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: #000;
  color: #fff;
  min-height: 40px;
  padding: 20px;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  z-index: 1000;
  opacity: 1;
  transition: opacity .25s ease, transform .25s ease;
  pointer-events: none; /* purely informational */
}
.demo-reel--hide{
  opacity: 0;
  transform: translate(-50%, calc(-50% + 8px));
}
.demo-reel__title{
  font-weight: 700;
  letter-spacing: .12em;
  font-size: 18px;
  line-height: 1.2;
}
.demo-reel__sub{
  margin-top: 6px;
  font-size: 13px;
  opacity: .85;
  line-height: 1.2;
}


/* === Arrow alignment update (per request) === */
/* Remove positioning for left arrows so they can sit next to titles */
.arrw--left{
  top: auto !important;
  left: auto !important;
  position: static !important;
  margin: 0 12px 0 0; /* small space before the title */
}

/* Keep only right:15vh for right arrows; drop top to harmonize */
.arrw--right{
    top: auto !important;
    margin-top: -12vh;
}

/* === arrow-align overrides (scoped & minimal) === */
.col--text .arrw{ position: absolute !important; } /* ensure absolute for precise placement */


/* === Text boxes adjustments (only h2 and p inside .col--text) === */
.col--text > p {
  margin-top: 12px;
  padding-left: 10%;
  width: calc(100% - 10%);
}
.col--text > h2 {
  padding-left: 10%;
  width: calc(100% - 10%);
}


/* Background video */
.bg-video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  background:#000;
  display:block;
}


/* === Hamburger menu & site nav === */
.menu-toggle{
  position: absolute;
  right: 3vh;
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 36px;
  padding: 0;
  border: 0;
  background: transparent;
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  z-index: 60; /* above brandbar */
  outline: none;
}
/*.menu-toggle:focus{ outline: 2px solid #111; outline-offset: 2px; }*/
.menu-toggle:focus{ outline: none; outline-offset: 2px; }

.menu-toggle .menu-bar{
  display:block;
  width: 100%;
  height: 4px;
  background:#ffffff;
  border-radius: 2px;
  transition: transform .25s ease, opacity .25s ease;
  outline: none;
}
.brandbar.is-fixed .menu-toggle .menu-bar{ background:#111; }
.menu-toggle.is-open .menu-bar:nth-child(1){ transform: translateY(16px) rotate(45deg); }
.menu-toggle.is-open .menu-bar:nth-child(2){ opacity: 0; }
.menu-toggle.is-open .menu-bar:nth-child(3){ transform: translateY(-16px) rotate(-45deg); }


/* Dropdown nav positioned under the brandbar, aligned to the right */
.site-nav{
  position: fixed;
  top: calc(12vh + 50px); /* default brandbar height */
  right: 3vh;
  background:#ffffff;
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
  padding: 12px;
  z-index: 55;
  min-width: 240px;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
}
/* Adjust when brandbar becomes fixed and height stays the same */
.brandbar.is-fixed ~ .site-nav{
  /*top: calc(12vh + 4px);*/
}

.site-nav.is-open{
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}
.site-nav__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap: 6px;
}
.site-nav__list a{
  display:block;
  padding: 10px 12px;
  border-radius: 8px;
  color:#111;
  text-decoration:none;
  font-weight: 600;
  letter-spacing: .02em;
}
.site-nav__list a:hover{
  background:#f3f3f3;
}

/* Mobile tweaks */
@media (max-width: 600px){
  .menu-toggle{ right: 12px; }
  .site-nav{ right: 12px; top: calc(80px + 78px) !important; } /* aligns under smaller mobile logo */
  /*.brandbar.is-fixed ~ .site-nav{ top: calc(80px + 8px); }*/
  .parallax .media {display: none;}
  img.cover2 {width: 80%;}
}



/* === HERO Swiper (videos) === */
.hero .hero-swiper { position: absolute; inset: 0; z-index: 2; }
.hero .hero-swiper .swiper-wrapper, 
.hero .hero-swiper .swiper-slide { height: 100%; }
.hero .hero-swiper .swiper-slide .media { position:absolute; inset:0; background:#000; }
.hero .hero-swiper .swiper-slide .hero-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; background:#000; padding-top: 40px;
}

/* Pagination: bullets only, centered at 10vh */
.hero .hero-pagination{
  position:absolute; left:50%; bottom:18vh !important;
  display:flex; gap:12px; align-items:center; justify-content:center; z-index:3;
}

/* Bullets start as round grey dots */
.hero .hero-pagination .swiper-pagination-bullet{
  width:12px; height:12px; border-radius:999px;
  background: rgba(255,255,255,.45); opacity:1;
  position:relative; overflow:hidden;
  margin:0 !important;
  transition: width .25s ease, height .25s ease, border-radius .25s ease, background .25s ease;
}
/* Active bullet becomes an elongated pill */
.hero .hero-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active{
  width:64px; height:8px; border-radius:24px;
  background: rgba(255,255,255,.28);
}
/* Inner blue bar that shrinks with time */
.hero .hero-pagination .swiper-pagination-bullet .bar{
  position:absolute; left:0; top:0; bottom:0; width:100%;
  transform-origin:left center;
  transform: scaleX(1);
  background:#1e90ff; /* blue for active */
  transition: none;
}
/* Non-active bullets: hide blue bar */
.hero .hero-pagination .swiper-pagination-bullet:not(.swiper-pagination-bullet-active) .bar{
  background: transparent;
  transform: scaleX(1);
}


/* === HERO Overlay (texts) — scoped, minimal === */
/* === Project Overlay (synced with hero videos) === */
.project-overlay{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 4;
  pointer-events: none;
}
.project-overlay__text{
  color: #fff;
  text-align: center;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.15;
  font-size: clamp(22px, 8.6vw, 56px);
  max-width: min(92vw, 1100px);
  padding: 0 4vw;
  text-shadow: 0 2px 18px rgba(0,0,0,.45), 0 0 2px rgba(0,0,0,.5);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .45s ease, transform .45s ease;
  white-space: pre-line;
  margin-top: -20vh;
}

div#ProjectOverlayText {
    position: absolute;
    top: var(--swiper-pagination-top, auto);
    bottom: 12vh !important;
    font-size: clamp(16px, 1.6vw, 18px);
    color: #fff;
}

.project-overlay__text.is-show{
  opacity: 1;
  transform: translateY(0);
}

.hero .hero-overlay{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 4; /* above pagination (z:3) */
  pointer-events: none;
}
.hero .hero-overlay__text{
  color: #fff;
  text-align: center;
  font-weight: 800;
  letter-spacing: .01em;
  line-height: 1.15;
  font-size: clamp(22px, 8.6vw, 56px);
  max-width: min(92vw, 1100px);
  padding: 0 4vw;
  text-shadow: 0 2px 18px rgba(0,0,0,.45), 0 0 2px rgba(0,0,0,.5);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .55s ease, transform .55s ease;
  white-space: pre-line; /* honor \n */
  margin-top: -20vh; /* slightly higher position */
}
.hero .hero-overlay__text.is-show{
  opacity: 1;
  transform: translateY(0);
}

/* Mobile boost: larger font */
@media (max-width: 420px){
  .hero .hero-overlay__text{
    font-size: clamp(22px, 7.2vw, 32px);
  }
}



/* === Status badge (scoped, minimal) === */
.col--text .status-line {
    text-align: left;
    font-size: clamp(17px, 2.1vw, 23px);
    margin-top: 15%;
    padding-left: 10%;
    width: calc(100% - 10%);
    /* margin-bottom: 5vh; */
}

.status-badge {
    display: inline-block;
    padding: 12px;
    border: 1px solid rgba(0, 0, 0, .25);
    border-radius: 8px;
    text-decoration: none;
    color: inherit;
    background: #fff;
    font-size: 18px;
}

.status-badge .ok {
    font-weight: 900;
    color: #fff;
    background: #00b309;
    border-radius: 6px;
    font-size: 24px;
    margin-left: 50px;
    border: 5px solid #00b309;
    padding: 3px;
}


/* === CTA buttons next to MENU === */
.brandbar__actions{
  position: absolute;
  right: 100px; /* leave room for the 44px menu button + gap */
  top: 50%;
  transform: translateY(-50%);
  display: inline-flex;
  gap: 10px;
  align-items: center;
  z-index: 59; /* under the menu-toggle (60) */
  pointer-events: auto;
  float: right;
}

.brandbar__actions .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0px 34px;
    border-radius: 100px;
	min-width: 100px;
    height: 45px;
    font-weight: 700;
    letter-spacing: .02em;
    text-decoration: none;
    font-size: 14px;
    line-height: 1;
    border: 1px solid transparent;
    white-space: nowrap;
    transition: transform .15s ease, filter .15s ease, background-color .15s ease;
    user-select: none;
}

.brandbar__actions .btn:hover{ transform: translateY(-1px); filter: brightness(0.98); }

/* Visual styles */
.brandbar__actions .btn-cta{
  background: #111;
  color: #fff;
  border-color: #111;
}
.brandbar.is-fixed .brandbar__actions .btn-cta{ background:#000; border-color:#000; }
.brandbar__actions .btn-login{
  background: #fff;
  color: #111;
  border-color: #111;
}
.brandbar.is-fixed .brandbar__actions .btn-login{ background:#f8f8f8; }

/* Tighten layout slightly on medium widths */
@media (max-width: 1024px){
  .brandbar__actions{
    right: 58px;
    gap: 8px;
  }
  .brandbar__actions .btn{
    padding: 8px 28px !important;
    font-size: 13px;
	margin-left: 80px;
	font-family: system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  }
}

/* === Mobile portrait behavior: crop 100px on the right of the Xaracom logo,
   keep it centered, and let the two buttons sit over that freed area. === */
.brandbar__logo-wrap{ position: relative; }

@media (max-width: 600px) and (orientation: portrait){
  img.Smallpics {
        width: 350px;
        height: auto;
        margin-left: 0vh;
  }
  .brandbar{ /*justify-content: center; */}
  .brandbar__logo{ 
    /* crop (hide) the rightmost 100px without moving the logo container */
  }
  .brandbar__actions {
        position: absolute;
        left: 12.5vh;
        top: 50%;
        transform: translateY(-50%);
        display: flex;
        float: right;
        gap: 6px;
    }
  .brandbar__actions .btn{
    padding: 8px 10px;
    font-size: 12px;
  }
  
  .brandbar__logo-wrap {
    position: absolute;
    left: 20px;
    overflow: hidden;
	width: 90px;
  }
  .site-nav {
	right: 20px;
	top: calc(80px + 38px);
  }
  
  .contact h3 {
    margin-top: -10vh !important;
    margin-left: -16vh !important;
  }
}

/* Ensure contrast of menu bars vs background stays readable */
.brandbar .menu-toggle .menu-bar{ background: #ffffff; }
.brandbar.is-fixed .menu-toggle .menu-bar{ background: #111111; }


/* Hide any non-carousel background video in hero media */
.hero .media video:not(.hero-video){ display:none !important; }
