.home-page-frame {
    transition: filter .28s ease, transform .28s ease;
  }

  body.login-overlay-active {
    overflow: hidden;
  }

  body.login-overlay-active .home-page-frame {
    filter: blur(8px);
    transform: scale(1.01);
    pointer-events: none;
    user-select: none;
  }

  .login-blur-overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem;
    background:
      radial-gradient(900px 420px at 15% 10%, rgba(199,154,99,.26), transparent 60%),
      radial-gradient(700px 360px at 85% 10%, rgba(255,255,255,.14), transparent 58%),
      linear-gradient(135deg, rgba(20,25,31,.72), rgba(20,25,31,.60));
    backdrop-filter: blur(4px);
  }

  .index-login-card {
    width: 100%;
    max-width: 460px;
    border: 1px solid rgba(255,255,255,.20);
    border-radius: 28px;
    background: rgba(255,255,255,.96);
    box-shadow: 0 30px 90px rgba(0,0,0,.28);
    overflow: hidden;
    animation: loginPop .35s ease both;
  }

  @keyframes loginPop {
    from {
      opacity: 0;
      transform: translateY(18px) scale(.98);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

  .index-login-top {
    position: relative;
    padding: 1.5rem 1.5rem 1.15rem;
    color: #fff;
    background:
      linear-gradient(135deg, rgba(31,39,48,.96), rgba(58,70,82,.94)),
      radial-gradient(500px 160px at 80% 0%, rgba(199,154,99,.42), transparent 60%);
    overflow: hidden;
  }

  .index-login-top::after {
    content: "";
    position: absolute;
    width: 210px;
    height: 210px;
    border-radius: 50%;
    right: -80px;
    top: -90px;
    background: radial-gradient(circle, rgba(199,154,99,.40), rgba(199,154,99,.04));
    pointer-events: none;
  }

  .index-login-brand {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    gap: .9rem;
  }

  .index-login-logo {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(255,255,255,.22);
    box-shadow: 0 12px 28px rgba(0,0,0,.15);
    flex-shrink: 0;
  }

  .index-login-logo img {
    max-width: 52px;
    max-height: 52px;
    object-fit: contain;
  }

  .index-login-brand h2 {
    margin: 0;
    font-size: 1.2rem;
    font-weight: 900;
    line-height: 1.2;
  }

  .index-login-brand p {
    margin: .25rem 0 0;
    color: rgba(255,255,255,.78);
    font-size: .9rem;
  }

  .index-login-body {
    padding: 1.5rem;
  }

  .index-login-body .form-label {
    font-weight: 800;
    color: #1f2730;
    font-size: .9rem;
  }

  .index-login-body .form-control {
    min-height: 48px;
    border-radius: 14px;
    border-color: rgba(31,39,48,.14);
    box-shadow: none;
  }

  .index-login-body .form-control:focus {
    border-color: #c79a63;
    box-shadow: 0 0 0 .18rem rgba(199,154,99,.16);
  }

  .index-login-btn {
    border: none;
    width: 100%;
    min-height: 50px;
    border-radius: 999px;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, #c79a63, #8f6a3d);
    box-shadow: 0 14px 30px rgba(199,154,99,.25);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
  }

  .index-login-btn:hover {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 18px 38px rgba(199,154,99,.32);
    filter: brightness(1.03);
  }

  .login-mini-links {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
    font-size: .88rem;
  }

  .login-mini-links a {
    color: #8f6a3d;
    font-weight: 800;
    text-decoration: none;
  }

  .login-mini-links a:hover {
    text-decoration: underline;
  }

  .login-secure-note {
    margin-top: 1rem;
    padding: .78rem .9rem;
    border-radius: 16px;
    background: rgba(31,39,48,.04);
    color: rgba(31,39,48,.72);
    font-size: .84rem;
    line-height: 1.55;
    display: flex;
    gap: .6rem;
  }

  .login-secure-note i {
    color: #c79a63;
    margin-top: .15rem;
  }

  .home-hero{
    position:relative;
    overflow:hidden;
    padding:6.2rem 0 5rem;
    background:
      linear-gradient(110deg, rgba(31,39,48,.92) 0%, rgba(31,39,48,.80) 45%, rgba(31,39,48,.74) 100%),
      url('../assets/images/security.jpg');
    background-size:cover;
    background-position:center;
    border-bottom:1px solid rgba(255,255,255,.08);
  }

  .hero-orb{
    position:absolute;
    border-radius:50%;
    filter:blur(8px);
    opacity:.45;
    pointer-events:none;
    will-change:transform, opacity;
    animation:floatOrb 8s ease-in-out infinite;
  }

  .orb-1{
    width:220px;
    height:220px;
    top:70px;
    left:-60px;
    background:radial-gradient(circle, rgba(199,154,99,.45), rgba(199,154,99,.03));
    animation-delay:0s;
  }

  .orb-2{
    width:180px;
    height:180px;
    top:30px;
    right:8%;
    background:radial-gradient(circle, rgba(255,255,255,.16), rgba(255,255,255,.01));
    animation-delay:1.2s;
  }

  .orb-3{
    width:260px;
    height:260px;
    bottom:-80px;
    right:-60px;
    background:radial-gradient(circle, rgba(199,154,99,.22), rgba(199,154,99,.02));
    animation-delay:2.2s;
  }

  @keyframes floatOrb{
    0%,100%{ transform:translateY(0) scale(1); }
    50%{ transform:translateY(-18px) scale(1.04); }
  }

  .hero-shell{
    position:relative;
    z-index:2;
  }

  .hero-center{
    max-width: 1120px;
    margin: 0 auto;
    text-align: center;
  }

  .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    padding:.58rem .95rem;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.16);
    color:#fff;
    font-size:.82rem;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
    backdrop-filter:blur(8px);
  }

  .eyebrow i{ color:#e4bc8c; }

  .hero-title{
    font-size:clamp(2.2rem, 4.6vw, 4.3rem);
    line-height:1.18;
    font-weight:900;
    letter-spacing:.01em;
    color:#fff;
    margin:1rem auto 1rem;
    max-width: 980px;
  }

  .hero-dynamic{
    position:relative;
    display:inline-block;
    color:#e4bc8c;
    transition:opacity .22s ease, transform .22s ease;
  }

  .hero-dynamic.switching{
    opacity:0;
    transform:translateY(10px);
  }

  .hero-dynamic::after{
    content:"";
    position:absolute;
    left:0;
    bottom:-6px;
    width:100%;
    height:4px;
    border-radius:999px;
    background:linear-gradient(90deg, #c79a63, #e4bc8c);
    transform-origin:left center;
    animation:pulseLine 1.8s ease-in-out infinite;
  }

  @keyframes pulseLine{
    0%,100%{ transform:scaleX(.92); opacity:.85; }
    50%{ transform:scaleX(1.03); opacity:1; }
  }

  .hero-text{
    font-size:1.08rem;
    color:rgba(255,255,255,.88);
    max-width:900px;
    margin:0 auto 1.6rem;
    line-height:1.82;
  }

  .hero-actions{
    display:flex;
    flex-wrap:wrap;
    gap:.85rem;
    justify-content:center;
    margin-bottom:1.5rem;
  }

  .btn-gold,
  .btn-light-outline{
    position:relative;
    overflow:hidden;
    isolation:isolate;
  }

  .btn-gold::after,
  .btn-light-outline::after{
    content:"";
    position:absolute;
    top:-10%;
    left:-140%;
    width:38%;
    height:120%;
    transform:skewX(-22deg);
    background:linear-gradient(120deg, transparent, rgba(255,255,255,.32), transparent);
    transition:transform .78s ease;
    z-index:0;
    pointer-events:none;
  }

  .btn-gold:hover::after,
  .btn-light-outline:hover::after{
    transform:translateX(390%) skewX(-22deg);
  }

  .btn-gold > *,
  .btn-light-outline > *{
    position:relative;
    z-index:1;
  }

  .btn-gold{
    border:none;
    border-radius:999px;
    padding:.94rem 1.35rem;
    font-weight:800;
    letter-spacing:.03em;
    text-transform:uppercase;
    font-size:.82rem;
    color:#fff;
    background:linear-gradient(135deg, var(--swayz-gold, #c79a63), var(--swayz-gold-dark, #8f6a3d));
    box-shadow:0 14px 34px rgba(199,154,99,.25);
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    transition:transform .22s ease, box-shadow .22s ease;
  }

  .btn-gold:hover{
    color:#fff;
    transform:translateY(-2px) scale(1.02);
    box-shadow:0 18px 40px rgba(199,154,99,.32);
  }

  .btn-light-outline{
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    padding:.92rem 1.3rem;
    font-weight:800;
    letter-spacing:.03em;
    text-transform:uppercase;
    font-size:.82rem;
    color:#fff;
    background:rgba(255,255,255,.08);
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    backdrop-filter:blur(8px);
    transition:all .22s ease;
  }

  .btn-light-outline:hover{
    background:#fff;
    color:var(--swayz-ink, #1f2730);
    transform:translateY(-2px) scale(1.02);
  }

  .hero-points{
    display:flex;
    flex-wrap:wrap;
    gap:1rem 1.4rem;
    justify-content:center;
  }

  .hero-points span{
    display:inline-flex;
    align-items:center;
    gap:.48rem;
    color:#fff;
    font-weight:700;
    font-size:.92rem;
  }

  .hero-points i{ color:#e4bc8c; }

  .quick-links-wrap{
    margin-top:-34px;
    position:relative;
    z-index:5;
  }

  .quick-links-shell{
    background:rgba(255,255,255,.96);
    border:1px solid var(--swayz-line, rgba(31,39,48,.10));
    border-radius:28px;
    padding:1.35rem;
    box-shadow:0 24px 54px rgba(31,39,48,.10);
    backdrop-filter:blur(10px);
  }

  .quick-links-row{
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 1rem;
  }

  .quick-links-row > div{
    display:flex;
  }

  .quick-link-card{
    width:100%;
    min-height:98px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    padding:1.08rem 1.08rem;
    border-radius:20px;
    color:#fff;
    text-decoration:none;
    position:relative;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.10);
    box-shadow:0 14px 34px rgba(31,39,48,.10);
    transition:transform .2s ease, box-shadow .2s ease, filter .2s ease;
  }

  .quick-link-card:hover{
    color:#fff;
    transform:translateY(-4px);
    box-shadow:0 22px 44px rgba(31,39,48,.14);
    filter:saturate(1.04);
  }

  .quick-link-card::after{
    content:"";
    position:absolute;
    inset:-35% -15%;
    background:radial-gradient(420px 180px at 78% 25%, rgba(255,255,255,.20), transparent 60%);
    pointer-events:none;
  }

  .quick-link-left{
    display:flex;
    align-items:center;
    gap:.9rem;
    position:relative;
    z-index:1;
  }

  .quick-link-icon{
    width:50px;
    height:50px;
    border-radius:16px;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.16);
    font-size:1.12rem;
    flex-shrink:0;
  }

  .quick-link-heading{
    font-weight:900;
    font-size:1rem;
    margin:0;
    line-height:1.15;
  }

  .quick-link-sub{
    margin:.25rem 0 0;
    opacity:.92;
    font-size:.9rem;
    line-height:1.4;
  }

  .quick-link-arrow{
    width:42px;
    height:42px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.14);
    border:1px solid rgba(255,255,255,.16);
    position:relative;
    z-index:1;
    flex-shrink:0;
  }

  .ql-primary{ background:linear-gradient(135deg, #1f2730, #3a4652); }
  .ql-gold{ background:linear-gradient(135deg, #c79a63, #8f6a3d); }
  .ql-dark{ background:linear-gradient(135deg, #2a313a, #161b21); }
  .ql-earth{ background:linear-gradient(135deg, #65503e, #2a313a); }
  .ql-night{ background:linear-gradient(135deg, #2e3742, #1b2129); }
  .ql-green{ background:linear-gradient(135deg, #4e6657, #23312b); }
  .ql-blue{ background:linear-gradient(135deg, #3b556f, #202a35); }
  .ql-brown{ background:linear-gradient(135deg, #7a5c3e, #2b2118); }

  .section-block{
    padding:5.6rem 0;
  }

  .section-light{
    background:
      radial-gradient(700px 180px at 0% 0%, rgba(199,154,99,.08), transparent 50%),
      linear-gradient(180deg, #fff, #fcfaf7);
  }

  .section-tag{
    display:inline-flex;
    align-items:center;
    gap:.5rem;
    color:var(--swayz-gold-dark, #8f6a3d);
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:.8rem;
    font-weight:900;
    margin-bottom:.9rem;
  }

  .section-title{
    font-size:clamp(1.95rem, 3vw, 3rem);
    line-height:1.08;
    font-weight:900;
    color:var(--swayz-ink-2, #1f2730);
    margin-bottom:.8rem;
  }

  .section-lead{
    color:var(--swayz-muted, #667085);
    font-size:1.02rem;
    max-width:50rem;
    margin:0;
    line-height:1.8;
  }

  .strength-card,
  .industry-card,
  .cta-panel{
    background:rgba(255,255,255,.95);
    border:1px solid var(--swayz-line, rgba(31,39,48,.10));
    box-shadow:0 16px 44px rgba(31,39,48,.06);
  }

  .strength-card{
    height:100%;
    border-radius:24px;
    padding:1.4rem;
    transition:transform .22s ease, box-shadow .22s ease;
  }

  .industry-card{
    height:100%;
    border-radius:22px;
    padding:1.35rem;
    transition:transform .22s ease, box-shadow .22s ease;
  }

  .strength-card:hover,
  .industry-card:hover{
    transform:translateY(-6px);
    box-shadow:0 26px 58px rgba(31,39,48,.11);
  }

  .strength-card h3,
  .industry-card h4{
    font-size:1.12rem;
    font-weight:900;
    margin-bottom:.55rem;
    color:var(--swayz-ink-2, #1f2730);
  }

  .strength-card p,
  .industry-card p{
    color:var(--swayz-muted, #667085);
    margin-bottom:1rem;
    line-height:1.78;
  }

  .strength-list{
    list-style:none;
    padding:0;
    margin:0;
  }

  .strength-list li{
    display:flex;
    gap:.6rem;
    margin-bottom:.7rem;
    color:var(--swayz-ink, #1f2730);
    font-weight:600;
    line-height:1.65;
  }

  .strength-list i{
    color:var(--swayz-gold-dark, #8f6a3d);
    margin-top:.2rem;
  }

  .showcase-wrap{
    background:
      linear-gradient(135deg, rgba(31,39,48,.98), rgba(46,55,66,.95)),
      linear-gradient(180deg, #202833, #2e3742);
    color:#fff;
    border-radius:34px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 26px 62px rgba(31,39,48,.18);
  }

  .showcase-copy{
    padding:2.2rem;
  }

  .showcase-copy .section-title,
  .showcase-copy .section-lead{
    color:#fff;
  }

  .showcase-copy .section-lead{ opacity:.84; }

  .showcase-points{
    list-style:none;
    padding:0;
    margin:1.3rem 0 0;
  }

  .showcase-points li{
    display:flex;
    gap:.7rem;
    margin-bottom:1rem;
    color:rgba(255,255,255,.9);
    line-height:1.75;
  }

  .showcase-points i{
    color:#e3bc8d;
    margin-top:.2rem;
  }

  .showcase-image{
    min-height:430px;
    height:100%;
    border-left:1px solid rgba(255,255,255,.08);
    position:relative;
    overflow:hidden;
    background-image:
      linear-gradient(180deg, rgba(31,39,48,.16), rgba(31,39,48,.34)),
      url('../assets/images/construction1.jpg');
    background-size:cover;
    background-position:center;
  }

  .showcase-badge{
    position:absolute;
    right:18px;
    bottom:18px;
    background:rgba(255,255,255,.90);
    color:var(--swayz-ink-2, #1f2730);
    padding:.7rem 1rem;
    border-radius:16px;
    font-weight:900;
    text-transform:uppercase;
    letter-spacing:.06em;
    box-shadow:0 12px 30px rgba(0,0,0,.16);
    animation:softFloat 2.8s ease-in-out infinite;
    font-size:.78rem;
  }

  .cta-panel{
    border-radius:30px;
    padding:2.4rem;
    position:relative;
    overflow:hidden;
    background:
      linear-gradient(110deg, rgba(31,39,48,.84), rgba(31,39,48,.68)),
      url('../assets/images/full-shot-man-walking-with-cleaning-cart.jpg');
    background-size:cover;
    background-position:center;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 18px 50px rgba(31,39,48,.12);
  }

  .cta-panel::before{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(135deg, rgba(199,154,99,.08), transparent 45%);
    pointer-events:none;
  }

  .cta-panel > *{
    position:relative;
    z-index:2;
  }

  .cta-panel h2{
    font-size:clamp(1.7rem, 2.8vw, 2.6rem);
    font-weight:900;
    color:#fff;
    margin-bottom:.65rem;
  }

  .cta-panel p{
    color:rgba(255,255,255,.84);
    margin:0;
    line-height:1.8;
  }

  .reveal{
    opacity:1;
    transform:none;
    transition:opacity .7s ease, transform .7s ease;
  }

  .js-lite .reveal{
    opacity:0;
    transform:translateY(34px);
  }

  .js-lite .reveal.in-view{
    opacity:1;
    transform:translateY(0);
  }

  .js-lite .hero-orb,
  .js-lite .eyebrow,
  .js-lite .hero-title,
  .js-lite .hero-text,
  .js-lite .hero-actions a,
  .js-lite .hero-points span{
    opacity:0;
    transform:translateY(22px);
    transition:opacity .75s ease, transform .75s ease;
  }

  .js-lite body.page-ready .hero-orb,
  .js-lite body.page-ready .eyebrow,
  .js-lite body.page-ready .hero-title,
  .js-lite body.page-ready .hero-text,
  .js-lite body.page-ready .hero-actions a,
  .js-lite body.page-ready .hero-points span{
    opacity:1;
    transform:none;
  }

  .js-lite body.page-ready .orb-1{ transition-delay:.05s; }
  .js-lite body.page-ready .orb-2{ transition-delay:.15s; }
  .js-lite body.page-ready .orb-3{ transition-delay:.25s; }
  .js-lite body.page-ready .eyebrow{ transition-delay:.08s; }
  .js-lite body.page-ready .hero-title{ transition-delay:.18s; }
  .js-lite body.page-ready .hero-text{ transition-delay:.30s; }
  .js-lite body.page-ready .hero-actions a:nth-child(1){ transition-delay:.40s; }
  .js-lite body.page-ready .hero-actions a:nth-child(2){ transition-delay:.48s; }
  .js-lite body.page-ready .hero-points span:nth-child(1){ transition-delay:.56s; }
  .js-lite body.page-ready .hero-points span:nth-child(2){ transition-delay:.62s; }
  .js-lite body.page-ready .hero-points span:nth-child(3){ transition-delay:.68s; }

  @keyframes softFloat{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-4px); }
  }

  @media (prefers-reduced-motion: reduce){
    *, *::before, *::after{
      animation:none !important;
      transition:none !important;
      scroll-behavior:auto !important;
    }

    .reveal,
    .js-lite .reveal,
    .js-lite .hero-orb,
    .js-lite .eyebrow,
    .js-lite .hero-title,
    .js-lite .hero-text,
    .js-lite .hero-actions a,
    .js-lite .hero-points span{
      opacity:1 !important;
      transform:none !important;
    }
  }

  @media (max-width: 991.98px){
    .home-hero{
      padding:5rem 0 4rem;
      background-position:center;
    }

    .hero-title{
      max-width: 100%;
    }

    .hero-text{
      max-width: 100%;
    }

    .showcase-image{
      min-height:280px;
      border-left:none;
      border-top:1px solid rgba(255,255,255,.08);
    }

    .quick-links-wrap{
      margin-top:-18px;
    }
  }

  @media (max-width: 575.98px) {
    .login-blur-overlay {
      align-items: flex-start;
      overflow-y: auto;
      padding-top: 1rem;
      padding-bottom: 1rem;
    }

    .index-login-top,
    .index-login-body {
      padding-left: 1.15rem;
      padding-right: 1.15rem;
    }

    .index-login-logo {
      width: 58px;
      height: 58px;
      border-radius: 18px;
    }

    .index-login-brand h2 {
      font-size: 1.08rem;
    }
  }
/* Small presentation rules moved out of index.php */
.hero-user-name {
  color: #e4bc8c;
}

.register-link {
  color: #8f6a3d;
  font-weight: 800;
}

.register-link:hover {
  color: #8f6a3d;
}

