:root{
  --sw-orange:#FC8019;
  --sw-dark:#0f172a;
  --sw-muted:#64748b;
}

body.sw-site{
  background: radial-gradient(1200px 600px at 10% 0%, rgba(252,128,25,.14), transparent 55%),
              radial-gradient(900px 500px at 90% 10%, rgba(59,130,246,.12), transparent 55%),
              #ffffff;
  color:#0b1220;
}

.sw-site-nav{
  backdrop-filter:saturate(150%) blur(10px);
  background:rgba(255,255,255,.82);
  border-bottom:1px solid rgba(15,23,42,.06);
}

.sw-brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--sw-dark);
}

.sw-brand-badge{
  width:38px;height:38px;border-radius:14px;
  background:linear-gradient(135deg,var(--sw-orange),#ffb15c);
  box-shadow:0 10px 26px rgba(252,128,25,.28);
  display:flex;align-items:center;justify-content:center;
  font-weight:900;color:#111827;
}

.sw-hero{
  padding:72px 0 22px 0;
  position:relative;
  overflow:hidden;
}

.sw-hero::before{
  content:"";
  position:absolute;
  inset:-120px -180px auto auto;
  width:520px;height:520px;
  background:radial-gradient(circle at 30% 30%, rgba(252,128,25,.35), transparent 60%);
  filter:blur(12px);
  transform: rotate(10deg);
}

.sw-hero::after{
  content:"";
  position:absolute;
  inset:auto auto -140px -160px;
  width:520px;height:520px;
  background:radial-gradient(circle at 30% 30%, rgba(59,130,246,.22), transparent 60%);
  filter:blur(14px);
  transform: rotate(-12deg);
}

.sw-hero-card{
  position:relative;
  z-index:1;
  background:rgba(255,255,255,.82);
  border:1px solid rgba(15,23,42,.06);
  border-radius:22px;
  padding:22px;
  box-shadow:0 18px 60px rgba(15,23,42,.10);
}

.sw-gradient-text{
  background:linear-gradient(90deg,#0f172a,var(--sw-orange));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.sw-btn-primary{
  background:var(--sw-orange);
  border-color:var(--sw-orange);
  font-weight:800;
  border-radius:14px;
}
.sw-btn-primary:hover{ filter:brightness(.98); }

.sw-btn-soft{
  border-radius:14px;
  font-weight:800;
  border:1px solid rgba(15,23,42,.10);
  background:rgba(255,255,255,.75);
}

.sw-section-title{
  font-weight:900;
  letter-spacing:.2px;
}

.sw-card{
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.06);
  border-radius:18px;
  box-shadow:0 10px 32px rgba(15,23,42,.08);
}

.sw-service-card{
  transition: transform .18s ease, box-shadow .18s ease;
}

.sw-service-card:hover{
  transform: translateY(-3px);
  box-shadow:0 18px 46px rgba(15,23,42,.14);
}

.sw-icon-pill{
  width:48px;height:48px;
  border-radius:18px;
  background:rgba(252,128,25,.12);
  color:var(--sw-orange);
  display:flex;align-items:center;justify-content:center;
  font-size:22px;
}

/* Scroll reveal */
.sw-reveal{
  opacity:0;
  transform: translateY(14px);
  transition: opacity .55s ease, transform .55s ease;
}
.sw-reveal.is-in{
  opacity:1;
  transform: translateY(0);
}

/* Floating blobs */
.sw-blob{
  position:absolute;
  border-radius:999px;
  filter: blur(18px);
  opacity:.8;
  animation: swFloat 6s ease-in-out infinite;
}
@keyframes swFloat{
  0%,100%{ transform: translate3d(0,0,0); }
  50%{ transform: translate3d(0,-10px,0); }
}

.sw-footer{
  border-top:1px solid rgba(15,23,42,.06);
  background:rgba(255,255,255,.72);
}

/* Map */
#swMap{
  height:420px;
  border-radius:18px;
  border:1px solid rgba(15,23,42,.08);
  overflow:hidden;
}

/* Website chat bubble */
.sw-chat-fab{
  position:fixed;
  right:16px;
  bottom:16px;
  width:58px;
  height:58px;
  border:none;
  border-radius:22px;
  background:linear-gradient(135deg,var(--sw-orange),#ffb15c);
  box-shadow:0 14px 36px rgba(252,128,25,.30);
  color:#111827;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:24px;
  z-index:9999;
  animation: swChatJump 1.8s ease-in-out infinite;
}
.sw-chat-fab:active{ transform: scale(.98); }

.sw-chat-bubble{
  position:fixed;
  right:84px;
  bottom:24px;
  background:#111827;
  color:#fff;
  border-radius:16px;
  padding:10px 12px;
  font-weight:800;
  font-size:12px;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 12px 30px rgba(0,0,0,.22);
  z-index:9998;
  transform: translateY(8px);
  opacity:0;
  pointer-events:none;
  transition: opacity .18s ease, transform .18s ease;
}
.sw-chat-bubble.is-show{
  opacity:1;
  transform: translateY(0);
}
.sw-chat-bubble::after{
  content:"";
  position:absolute;
  right:-6px;
  bottom:16px;
  width:12px;
  height:12px;
  background:#111827;
  transform: rotate(45deg);
  border-right:1px solid rgba(255,255,255,.12);
  border-bottom:1px solid rgba(255,255,255,.12);
}

.sw-chat-panel{
  position:fixed;
  right:14px;
  bottom:86px;
  width:min(360px, calc(100vw - 28px));
  max-height: min(520px, calc(100vh - 120px));
  background:rgba(255,255,255,.92);
  border:1px solid rgba(15,23,42,.10);
  border-radius:18px;
  box-shadow:0 18px 70px rgba(15,23,42,.18);
  overflow:hidden;
  z-index:9999;
  transform: translateY(14px);
  opacity:0;
  pointer-events:none;
  transition: opacity .2s ease, transform .2s ease;
}
.sw-chat-panel.is-open{
  opacity:1;
  transform: translateY(0);
  pointer-events:auto;
}
.sw-chat-panel__head{
  background:linear-gradient(135deg,#111827,#0b1220);
  color:#fff;
  padding:12px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.sw-chat-panel__title{
  font-weight:900;
  letter-spacing:.2px;
  font-size:14px;
}
.sw-chat-panel__sub{
  font-size:12px;
  color:rgba(255,255,255,.72);
}
.sw-chat-panel__close{
  width:34px;
  height:34px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.08);
  color:#fff;
  font-size:20px;
  line-height:1;
}
.sw-chat-panel__body{
  padding:12px;
  background:rgba(255,255,255,.92);
}
.sw-chat-msg{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-bottom:10px;
}
.sw-chat-msg__dot{
  width:34px;
  height:34px;
  border-radius:14px;
  background:rgba(252,128,25,.14);
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--sw-orange);
  flex:0 0 auto;
}
.sw-chat-msg__bubble{
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  padding:10px 12px;
  box-shadow:0 10px 28px rgba(15,23,42,.06);
}
.sw-chat-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.sw-chat-input{
  display:flex;
  gap:10px;
  margin-top:12px;
}
.sw-chat-input input{
  border-radius:14px;
}
.sw-chat-send{
  border-radius:14px;
  font-weight:900;
}

@keyframes swChatJump{
  0%, 100% { transform: translateY(0); }
  45% { transform: translateY(-8px); }
  60% { transform: translateY(0); }
}

@media (max-width: 991.98px){
  .sw-hero{ padding-top:64px; }
  #swMap{ height:360px; }
}

@media (prefers-reduced-motion: reduce){
  .sw-reveal{ transition:none; }
  .sw-blob{ animation:none; }
}
