:root{
  --nila-ink:#102925;
  --nila-ink-soft:#39544d;
  --nila-deep:#0b3b35;
  --nila-deep-2:#123f3a;
  --nila-gold:#d7aa46;
  --nila-lime:#cfe56b;
  --nila-mint:#dff5e9;
  --nila-paper:#fbf6ea;
  --nila-paper-2:#f4ead8;
  --nila-card:#fffdf7;
  --nila-line:rgba(16,41,37,.12);
  --nila-shadow:0 24px 70px rgba(16,41,37,.16);
  --nila-shadow-soft:0 14px 40px rgba(16,41,37,.10);
  --nila-radius:28px;
}
html{scroll-behavior:smooth;}
body{
  background:
    radial-gradient(circle at 12% 8%, rgba(207,229,107,.24), transparent 30vw),
    radial-gradient(circle at 88% 12%, rgba(215,170,70,.18), transparent 28vw),
    linear-gradient(145deg, #fffaf0 0%, #f6ecd9 46%, #edf6ed 100%) !important;
  color:var(--nila-ink);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background-image:
    linear-gradient(rgba(16,41,37,.026) 1px, transparent 1px),
    linear-gradient(90deg, rgba(16,41,37,.022) 1px, transparent 1px);
  background-size:46px 46px;
  mask-image:linear-gradient(to bottom, rgba(0,0,0,.55), transparent 78%);
}
a,button,input,select,textarea{transition:background .22s ease,border-color .22s ease,color .22s ease,box-shadow .22s ease,transform .22s ease,opacity .22s ease;}
button,.btn,.cta,.primary-btn,.secondary-btn,[class*="button"],input[type="submit"]{
  border-radius:999px !important;
  box-shadow:0 12px 28px rgba(16,41,37,.10);
}
button:hover,.btn:hover,.cta:hover,.primary-btn:hover,.secondary-btn:hover,[class*="button"]:hover,input[type="submit"]:hover{
  transform:translateY(-2px);
  box-shadow:0 18px 38px rgba(16,41,37,.16);
}
input,select,textarea{
  border-radius:18px !important;
  border:1px solid rgba(16,41,37,.14) !important;
  background:rgba(255,253,247,.88) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 10px 24px rgba(16,41,37,.04);
}
input:focus,select:focus,textarea:focus{
  outline:none !important;
  border-color:rgba(215,170,70,.75) !important;
  box-shadow:0 0 0 5px rgba(215,170,70,.18),0 16px 36px rgba(16,41,37,.08) !important;
}
.site-header,header,.navbar,.nav,.topbar{
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.hero,.dir-hero,.section-hero,.page-hero,[class*="hero"]{
  position:relative;
  overflow:hidden;
}
.hero:after,.dir-hero:after,.section-hero:after,.page-hero:after{
  content:"";
  position:absolute;
  width:340px;
  height:340px;
  right:-120px;
  top:-120px;
  background:radial-gradient(circle, rgba(207,229,107,.38), transparent 65%);
  pointer-events:none;
}
.card,.panel,.tile,.dir-card,.provider-card,.nila-pcard,.nila-gcard,.review-card,.dashboard-card,.stat-card,.empty-state,.pp-about,.pp-body,.request-card,.notice-card{
  border:1px solid var(--nila-line) !important;
  background:linear-gradient(145deg, rgba(255,253,247,.96), rgba(255,248,232,.86)) !important;
  box-shadow:var(--nila-shadow-soft) !important;
  border-radius:var(--nila-radius) !important;
  position:relative;
  overflow:hidden;
}
.card:before,.panel:before,.tile:before,.dir-card:before,.provider-card:before,.dashboard-card:before,.stat-card:before,.pp-about:before,.pp-body:before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg, rgba(255,255,255,.72), transparent 38%);
  pointer-events:none;
}
.dir-body{
  gap:26px !important;
  align-items:start !important;
}
.dir-sidebar,.dir-map-card{
  border:1px solid rgba(16,41,37,.13) !important;
  border-radius:30px !important;
  background:rgba(255,253,247,.78) !important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  box-shadow:0 22px 70px rgba(16,41,37,.13) !important;
}
.dir-map-card{
  overflow:hidden;
  position:sticky;
  top:92px;
}
#dirMap,#heroMap,.map,.google-map{
  border-radius:28px !important;
  overflow:hidden !important;
  filter:saturate(1.05) contrast(1.02);
}
#dirGrid,.provider-grid,.cards-grid,.results-grid{
  display:grid;
  gap:18px !important;
}
.dir-card,.provider-card,.nila-pcard{
  cursor:pointer;
  transform:translateZ(0);
}
.dir-card:hover,.provider-card:hover,.nila-pcard:hover{
  transform:translateY(-5px) scale(1.01);
  box-shadow:0 28px 80px rgba(16,41,37,.20) !important;
  border-color:rgba(215,170,70,.42) !important;
}
.dir-card h3,.provider-card h3,.nila-pcard h3,.pp-hero h1,.nila-profile-hero h1{
  letter-spacing:-.035em;
}
.dir-card .badge,.provider-card .badge,.tag,.pill,.dir-cat,.hcat,.status,.nila-role-pill{
  border-radius:999px !important;
  border:1px solid rgba(16,41,37,.12) !important;
  background:rgba(255,253,247,.76) !important;
  box-shadow:0 8px 18px rgba(16,41,37,.06);
}
.dir-cat,.hcat{
  position:relative;
  overflow:hidden;
}
.dir-cat.active,.hcat.active,[aria-selected="true"]{
  background:linear-gradient(135deg, var(--nila-deep), #17665b) !important;
  color:#fff !important;
  border-color:rgba(215,170,70,.54) !important;
  box-shadow:0 16px 32px rgba(16,41,37,.18) !important;
}
.dir-cat:hover,.hcat:hover{
  transform:translateY(-2px);
  border-color:rgba(215,170,70,.5) !important;
}
#dirSearch,#dirLoc,#serviceInput,#locInput{
  min-height:52px;
  font-size:16px !important;
}
.nila-empty-state,.empty-state,.dir-empty,.no-results{
  padding:34px !important;
  text-align:center;
  background:
    radial-gradient(circle at top left, rgba(207,229,107,.26), transparent 35%),
    linear-gradient(145deg, rgba(255,253,247,.98), rgba(246,236,217,.9)) !important;
}
.nila-empty-state h3,.empty-state h3,.dir-empty h3,.no-results h3{
  font-size:clamp(24px,3vw,34px);
  margin-bottom:10px;
}
#providerProfileMount,.provider-profile,.nila-clean-profile{
  position:relative;
}
.pp-hero,.nila-profile-hero{
  border-radius:34px !important;
  background:
    radial-gradient(circle at 16% 20%, rgba(207,229,107,.28), transparent 35%),
    linear-gradient(135deg, #0e3a35, #165a50 58%, #d7aa46 140%) !important;
  color:#fff !important;
  box-shadow:0 30px 90px rgba(16,41,37,.25) !important;
  overflow:hidden;
}
.pp-hero:after,.nila-profile-hero:after{
  content:"";
  position:absolute;
  width:420px;
  height:420px;
  right:-160px;
  bottom:-210px;
  background:radial-gradient(circle, rgba(255,255,255,.24), transparent 68%);
}
.pp-avatar,.avatar,[class*="avatar"]{
  box-shadow:0 18px 36px rgba(16,41,37,.18), inset 0 1px 0 rgba(255,255,255,.5) !important;
}
.nila-reveal{
  opacity:0;
  transform:translateY(22px);
}
.nila-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
  transition:opacity .75s ease, transform .75s cubic-bezier(.2,.8,.2,1);
}
.nila-float-soft{
  animation:nilaFloatSoft 7s ease-in-out infinite;
}
@keyframes nilaFloatSoft{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
.nila-pulse-glow{
  position:relative;
}
.nila-pulse-glow:after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:inherit;
  border:1px solid rgba(215,170,70,.35);
  opacity:0;
  animation:nilaPulse 2.8s ease-in-out infinite;
  pointer-events:none;
}
@keyframes nilaPulse{
  0%{opacity:0; transform:scale(.98)}
  50%{opacity:1; transform:scale(1.015)}
  100%{opacity:0; transform:scale(1.03)}
}
.nila-spotlight-card{
  --mx:50%;
  --my:50%;
}
.nila-spotlight-card:after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at var(--mx) var(--my), rgba(215,170,70,.22), transparent 34%);
  opacity:0;
  transition:opacity .25s ease;
}
.nila-spotlight-card:hover:after{opacity:1;}
.nila-action-rail{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.nila-glass-bar{
  background:rgba(255,253,247,.7) !important;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  border:1px solid rgba(16,41,37,.12) !important;
  box-shadow:0 18px 50px rgba(16,41,37,.10) !important;
}
@media (max-width:900px){
  .dir-body{display:flex !important; flex-direction:column !important;}
  .dir-map-card{position:relative; top:auto; width:100%;}
  #dirMap,#heroMap{min-height:360px !important;}
  .dir-sidebar{width:100% !important;}
  .dir-card,.provider-card{border-radius:24px !important;}
}
@media (max-width:560px){
  body:before{background-size:32px 32px;}
  .dir-hero,.hero,.page-hero{border-radius:0 0 32px 32px !important;}
  #dirMap,#heroMap{min-height:320px !important;}
  .card,.panel,.tile,.dir-card,.provider-card,.pp-body,.pp-about{border-radius:22px !important;}
  input,select,textarea{font-size:16px !important;}
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
  .nila-reveal{opacity:1 !important; transform:none !important;}
}
