/* =========================================================
   NEXSYS LANDING (Guest-only homepage /)
   File: overrides.landing.css
   Scope: .nexsys-portal-wrapper and landing sections only
========================================================= */

/* Page fade-in (landing only) */
.nexsys-portal-wrapper .nexsys-fade-in{
  animation: nexsysFadeIn 0.45s ease-out both;
}
@keyframes nexsysFadeIn{
  from{ opacity:0; transform: translateY(8px); }
  to{ opacity:1; transform: translateY(0); }
}

/* Landing wrapper */
.nexsys-portal-wrapper{
  background:#f4f6f8;
  padding-bottom:50px;
}

.nexsys-portal-wrapper .nexsys-portal-container{
  max-width:1150px;
  margin:0 auto;
  padding:45px 20px;
  position:relative;
  z-index:1;
  pointer-events:none;
}

/* Re-enable clicks on all actual interactive children */
.nexsys-portal-wrapper .nexsys-portal-container a,
.nexsys-portal-wrapper .nexsys-portal-container button,
.nexsys-portal-wrapper .nexsys-portal-container input,
.nexsys-portal-wrapper .nexsys-portal-container select,
.nexsys-portal-wrapper .nexsys-portal-container textarea,
.nexsys-portal-wrapper .nexsys-portal-container form {
  pointer-events: auto;
}

/* =========================
   HERO (Updated Brand Match)
========================= */

.nexsys-portal-wrapper .nexsys-portal-hero{
  position:relative;
  min-height: calc(100vh - 70px); /* adjust if navbar height changes */
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  overflow:hidden;

  padding:30px 20px;

  background:
    radial-gradient(circle at 30% 20%, rgba(59,198,255,.12), transparent 60%),
    linear-gradient(135deg, rgba(31,141,187,.06), rgba(15,111,149,.10));

  backdrop-filter: blur(8px);
  border-bottom: 1px solid rgba(0,0,0,.04);
}

/* soft glow blob */
.nexsys-portal-wrapper .nexsys-portal-hero::before{
  content:'';
  position:absolute;
  top:-220px;
  left:50%;
  transform:translateX(-50%);
  width:860px;
  height:860px;
  background: radial-gradient(circle, rgba(31,141,187,.18) 0%, transparent 60%);
  z-index:0;
}

/* subtle highlight overlay */
.nexsys-portal-wrapper .nexsys-portal-hero::after{
  content:'';
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 20% 15%, rgba(255,255,255,.25), transparent 38%),
    radial-gradient(circle at 80% 30%, rgba(255,255,255,.18), transparent 45%);
  opacity:.35;
  pointer-events:none;
  z-index:0;
}

/* Optional faint watermark background (if you add .nexsys-portal-hero__bg in markup) */
.nexsys-portal-wrapper .nexsys-portal-hero__bg{
  position:absolute;
  inset:-80px -80px auto auto;
  width:520px;
  height:520px;
  background-image:url("/uploads/themes/asset/client_logo.png");
  background-repeat:no-repeat;
  background-size:contain;
  opacity:0.05;
  transform: rotate(6deg);
  pointer-events:none;
  filter: grayscale(100%);
}

/* Hero typography */
.nexsys-portal-wrapper .nexsys-portal-hero h1{
  font-size:42px;
  font-weight:750;
  letter-spacing:-.6px;
  color:#0E2A38;
  margin-bottom:18px;
}

.nexsys-portal-wrapper .nexsys-portal-hero p{
  font-size:18px;
  font-weight:400;
  color:#5B6B75;
  max-width:650px;
  margin:0 auto 24px;
  line-height:1.65;
}

/* Hero button group */
.nexsys-portal-wrapper .nexsys-portal-actions{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
}

.nexsys-portal-wrapper .btn-primary-portal,
.nexsys-portal-wrapper .btn-secondary-portal{
  text-decoration:none !important;
  -webkit-text-decoration:none !important;
  line-height:1;
  border-radius:10px;
  font-weight:700;
  letter-spacing:.2px;
  padding:12px 28px;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease, filter .18s ease;
}

/* Primary */
.nexsys-portal-wrapper .btn-primary-portal{
  background: linear-gradient(135deg, #1F8DBB, #16739A);
  border:none;
  color:#fff !important;
  box-shadow: 0 10px 22px rgba(15,111,149,.22);
}

.nexsys-portal-wrapper .btn-primary-portal:hover{
  background: linear-gradient(135deg, #0E4F6B, #083B4F);
  transform: translateY(-3px);
  box-shadow: 0 18px 34px rgba(15,111,149,.35);
  filter:saturate(1.05);
  color:#fff !important;
  text-decoration:none !important;
}

.nexsys-portal-wrapper .btn-primary-portal:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(31,141,187,.25), 0 12px 26px rgba(15,111,149,.28);
}

/* Secondary */
.nexsys-portal-wrapper .btn-secondary-portal{
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(15,111,149,.35);
  color: #0F6F95 !important;
  box-shadow: 0 10px 20px rgba(0,0,0,.06);
  backdrop-filter: blur(8px);
}

.nexsys-portal-wrapper .btn-secondary-portal:hover{
  background: rgba(255,255,255,.72);
  border-color: rgba(15,111,149,.55);
  color:#083B4F !important;
  transform: translateY(-3px);
  box-shadow: 0 18px 34px rgba(0,0,0,.10);
  text-decoration:none !important;
}

.nexsys-portal-wrapper .btn-secondary-portal:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(31,141,187,.22), 0 12px 26px rgba(0,0,0,.08);
}

/* =========================
   Domain Search (Hero)
========================= */

.nexsys-portal-wrapper .nx-domain-search{
  margin:18px auto 0;
  max-width:820px;
  padding:18px 18px 14px;
  border-radius:16px;
  background: rgba(255,255,255,.55);
  border: 1px solid rgba(255,255,255,.35);
  box-shadow: 0 18px 40px rgba(0,0,0,.06);
  backdrop-filter: blur(10px);
}

.nexsys-portal-wrapper .nx-domain-search__title{
  font-weight:700;
  font-size:14px;
  letter-spacing:.2px;
  color: rgba(14,42,56,.85);
  margin-bottom:10px;
}

.nexsys-portal-wrapper .nx-domain-search__form{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}

.nexsys-portal-wrapper .nx-domain-search__field{
  flex:1 1 420px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:14px;
  background: rgba(255,255,255,.8);
  border: 1px solid rgba(31,141,187,.18);
}

.nexsys-portal-wrapper .nx-domain-search__field i{
  color: rgba(15,111,149,.85);
}

.nexsys-portal-wrapper .nx-domain-input{
  width:100%;
  border:none !important;
  outline:none !important;
  background:transparent !important;
  font-weight:600;
  color:#0E2A38;
  padding:0 !important;
}

.nexsys-portal-wrapper .nx-domain-input::placeholder{
  color: rgba(14,42,56,.45);
  font-weight:600;
}

.nexsys-portal-wrapper .nx-domain-search__btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:12px 18px;
  border-radius:14px;
  border: 1px solid rgba(31,141,187,.22);
  background: linear-gradient(135deg, #1F8DBB, #0F6F95);
  color:#fff;
  font-weight:700;
  box-shadow: 0 10px 22px rgba(15,111,149,.20);
  transition: all .22s ease;
  text-decoration:none !important;
}

.nexsys-portal-wrapper .nx-domain-search__btn:hover{
  transform: translateY(-2px);
  background: linear-gradient(135deg, #0E4F6B, #083B4F);
  box-shadow: 0 16px 30px rgba(15,111,149,.32);
  text-decoration:none !important;
}

.nexsys-portal-wrapper .nx-domain-search__btn:focus{
  outline:none;
  box-shadow: 0 0 0 3px rgba(31,141,187,.22), 0 14px 26px rgba(15,111,149,.28);
}

.nexsys-portal-wrapper .nx-domain-search__spotlight-label{
  margin-top:14px;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.5px;
  color: rgba(14,42,56,.55);
}

.nexsys-portal-wrapper .nx-domain-search__tlds{
  margin-top:14px;
  max-width:720px;
  margin-left:auto;
  margin-right:auto;
}

/* Grid mode for 10 buttons */
.nexsys-portal-wrapper .nx-domain-search__tlds--grid{
  display:grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap:10px;
  justify-items:center;
}

/* Flex fallback (if you ever use non-grid mode) */
.nexsys-portal-wrapper .nx-domain-search__tlds:not(.nx-domain-search__tlds--grid){
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.nexsys-portal-wrapper .nx-tld{
  width:100%;
  max-width:90px;
  text-align:center;
  border-radius:999px;
  padding:7px 14px;
  font-weight:800;
  font-size:13px;
  border: 1px solid rgba(31,141,187,.20);
  background: rgba(255,255,255,.65);
  color: rgba(15,111,149,.95);
  transition: all .18s ease;
  box-shadow: 0 4px 10px rgba(0,0,0,.04);
}

.nexsys-portal-wrapper .nx-tld:hover{
  transform: translateY(-2px);
  background: rgba(255,255,255,.85);
  border-color: rgba(31,141,187,.35);
  box-shadow: 0 10px 18px rgba(0,0,0,.08);
}

.nexsys-portal-wrapper .nx-domain-search__hint{
  margin-top:10px;
  font-size:12.5px;
  color: rgba(14,42,56,.60);
}

/* Mobile tweaks */
@media (max-width: 575px){
  .nexsys-portal-wrapper .nx-domain-search{
    padding:16px 14px 12px;
  }
  .nexsys-portal-wrapper .nx-domain-search__btn{
    width:100%;
  }
  .nexsys-portal-wrapper .nx-domain-search__tlds--grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .nexsys-portal-wrapper .nx-tld{
    max-width:none;
  }
  .nexsys-portal-wrapper .nexsys-portal-hero h1{ font-size:30px; }
  .nexsys-portal-wrapper .nexsys-portal-hero p{ font-size:16px; }
}

/* =========================
   TRUST STRIP
========================= */
.nexsys-portal-wrapper .nexsys-trust-strip{
  background:#ffffff;
  border-bottom: 1px solid #e9edf1;
}
.nexsys-portal-wrapper .nexsys-trust-strip__inner{
  padding:18px 20px;
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap:14px;
  align-items:center;
}
.nexsys-portal-wrapper .trust-item{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#4d4d4d;
  font-size:14px;
  font-weight:500;
}
.nexsys-portal-wrapper .trust-item i{
  color:#3994A8;
  font-size:16px;
}
@media (max-width: 991px){
  .nexsys-portal-wrapper .nexsys-trust-strip__inner{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding:16px 20px;
  }
}
@media (max-width: 575px){
  .nexsys-portal-wrapper .nexsys-trust-strip__inner{
    grid-template-columns: 1fr;
  }
}

/* =========================
   SYSTEM STATUS (optional section)
========================= */
.nexsys-portal-wrapper .nexsys-status{
  background:#f4f6f8;
  padding-top:18px;
}
.nexsys-portal-wrapper .nexsys-status .nexsys-portal-container{
  padding-top:18px;
  padding-bottom:0;
}
.nexsys-portal-wrapper .nexsys-status-card{
  background:#ffffff;
  border:1px solid #e9edf1;
  border-radius:10px;
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.05);
}
.nexsys-portal-wrapper .nexsys-status-title{
  font-weight:600;
  color:#1f1f1f;
  margin-bottom:2px;
}
.nexsys-portal-wrapper .nexsys-status-subtitle{
  font-size:14px;
  color:#6b6b6b;
}
.nexsys-portal-wrapper .nexsys-status-right{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.nexsys-portal-wrapper .status-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:999px;
  padding:8px 12px;
  font-size:13px;
  font-weight:600;
  border:1px solid transparent;
}
.nexsys-portal-wrapper .status-dot{
  width:9px; height:9px;
  border-radius:50%;
  display:inline-block;
}
.nexsys-portal-wrapper .status-ok{
  background: rgba(57,148,168,0.10);
  color:#2e7f91;
  border-color: rgba(57,148,168,0.18);
}
.nexsys-portal-wrapper .status-ok .status-dot{
  background:#2e7f91;
}
.nexsys-portal-wrapper .status-link{
  font-size:13px;
  font-weight:600;
  color:#3994A8 !important;
  text-decoration:none !important;
}
.nexsys-portal-wrapper .status-link:hover{
  color:#2e7f91 !important;
  text-decoration: underline !important;
}

/* =========================
   LANDING DASHBOARD GRID
========================= */
.nexsys-portal-wrapper .nexsys-portal-dashboard{
  position:relative;
  padding-top:40px;
  padding-bottom:60px;

  background:
    radial-gradient(circle at 20% 10%, rgba(31,141,187,.06), transparent 35%),
    radial-gradient(circle at 80% 20%, rgba(31,141,187,.05), transparent 40%),
    #eef2f5;
}

.nexsys-portal-wrapper .nexsys-portal-dashboard::before{
  content:"";
  position:absolute;
  top:-30px;
  left:0;
  right:0;
  height:60px;
  background: linear-gradient(to bottom, rgba(255,255,255,.0), #eef2f5);
}

.nexsys-portal-wrapper .nexsys-portal-dashboard .grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap:30px;
  margin-top:20px;
}

/* Portal Card */
.nexsys-portal-wrapper .portal-card{
  background:#ffffff;
  padding:40px 30px;
  border-radius:16px;
  text-align:center;
  text-decoration:none !important;
  color:#333 !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  box-shadow: 0 10px 22px rgba(0,0,0,.06);
  display:block;
  border: 1px solid rgba(15,111,149,.10);
  position:relative;
  overflow:hidden;
  will-change: transform;
}

/* top accent bar */
.nexsys-portal-wrapper .portal-card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:100%;
  height:4px;
  background: linear-gradient(90deg, rgba(31,141,187,.0), rgba(31,141,187,.65), rgba(31,141,187,.0));
  opacity:.55;
}
.nexsys-portal-wrapper .portal-card:hover::before{ opacity:1; }

/* Icon badge */
.nexsys-portal-wrapper .portal-card i{
  font-size:44px;
  margin-bottom:14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:72px;
  height:72px;
  border-radius:18px;
  background: rgba(31,141,187,.08);
  box-shadow: inset 0 0 0 1px rgba(31,141,187,.14);
  color:#3994A8;
  transition: transform .18s ease, color .18s ease, background .18s ease, box-shadow .18s ease;
}

.nexsys-portal-wrapper .portal-card h3{
  font-size:20px;
  font-weight:700;
  margin-bottom:10px;
  color:#1f1f1f;
}

.nexsys-portal-wrapper .portal-card p{
  font-size:14px;
  color:#777;
  margin:0;
  line-height:1.45;
}

.nexsys-portal-wrapper .portal-card:hover{
  transform: translateY(-6px);
  box-shadow:
    0 18px 32px rgba(0,0,0,.08),
    0 0 0 1px rgba(31,141,187,.12);
  border-color: rgba(15,111,149,.22);
  cursor:pointer;
  text-decoration:none !important;
}

.nexsys-portal-wrapper .portal-card:hover i{
  transform: translateY(-5px) scale(1.04);
  color:#2e7f91;
  background: rgba(31,141,187,.10);
  box-shadow: inset 0 0 0 1px rgba(31,141,187,.22);
}

/* Watermark responsive tweak */
@media (max-width: 991px){
  .nexsys-portal-wrapper .nexsys-portal-hero__bg{
    width:360px;
    height:360px;
    inset:-60px -60px auto auto;
    opacity:0.045;
  }
}