/* NILA Connect v21.23 3D Product Identity Build
   Uses the generated premium 3D visual language as the product identity.
   This is not a photo dump: hero, category, directory, provider and dashboard visuals are controlled accents.
*/
:root{
  --nila23-ink:#10231d;
  --nila23-green:#124734;
  --nila23-green-2:#1f6b50;
  --nila23-cream:#fff8ec;
  --nila23-paper:#fffdf8;
  --nila23-stone:#eee4d3;
  --nila23-gold:#c49a43;
  --nila23-line:rgba(16,35,29,.12);
  --nila23-shadow:0 30px 90px -55px rgba(16,35,29,.55);
}
body{
  background:
    radial-gradient(circle at 18% 8%, rgba(196,154,67,.13), transparent 28%),
    radial-gradient(circle at 86% 14%, rgba(31,107,80,.12), transparent 34%),
    linear-gradient(180deg,var(--nila23-cream),#fffdf8 42%,#fbf5e8) !important;
  color:var(--nila23-ink) !important;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  opacity:.22;
  background-image:linear-gradient(rgba(18,71,52,.04) 1px, transparent 1px),linear-gradient(90deg,rgba(18,71,52,.04) 1px, transparent 1px);
  background-size:34px 34px;
}
.nav{ background:rgba(255,253,248,.82) !important; backdrop-filter:blur(18px); border-bottom:1px solid var(--nila23-line) !important; }
.btn-primary,.btn-gold,.hs-submit,.v21-go,.v21-btn.primary{ background:linear-gradient(135deg,var(--nila23-green),var(--nila23-green-2)) !important; color:#fffaf0 !important; border-color:transparent !important; box-shadow:0 16px 40px -26px rgba(18,71,52,.75) !important; }
.btn-outline,.v21-btn.ghost{ border-color:rgba(18,71,52,.18) !important; color:var(--nila23-green) !important; background:rgba(255,253,248,.76) !important; }
/* Homepage hero rebuilt around the 3D scene */
.v21-hero,.v19-hero{
  background:transparent !important;
  padding-top:44px !important;
  padding-bottom:54px !important;
}
.v21-hero .wrap{ max-width:1280px !important; }
.v21-hero-grid{
  align-items:center !important;
  gap:38px !important;
}
.v21-eyebrow,.v19-eyebrow{
  background:rgba(18,71,52,.08) !important;
  color:var(--nila23-green) !important;
  border:1px solid rgba(18,71,52,.12) !important;
}
.v21-eyebrow .pulse,.v19-eyebrow .dot{ background:var(--nila23-green-2) !important; box-shadow:0 0 0 5px rgba(31,107,80,.12) !important; }
.v21-h1,.v19-h1{ color:var(--nila23-ink) !important; letter-spacing:-.055em !important; }
.v21-h1 em,.v19-h1 em{ color:var(--nila23-green-2) !important; text-shadow:0 20px 55px rgba(31,107,80,.12); }
.v21-sub,.v19-sub{ color:rgba(16,35,29,.72) !important; }
.v21-search,.v19-search{
  background:rgba(255,253,248,.88) !important;
  border:1px solid rgba(18,71,52,.14) !important;
  box-shadow:0 28px 80px -50px rgba(16,35,29,.55), inset 0 1px 0 rgba(255,255,255,.8) !important;
  border-radius:26px !important;
}
.v21-field,.hs-field{ background:#fffdf8 !important; border:1px solid rgba(18,71,52,.12) !important; border-radius:18px !important; }
.v21-field:focus-within,.hs-field:focus-within{ border-color:rgba(31,107,80,.42) !important; box-shadow:0 0 0 4px rgba(31,107,80,.10) !important; }
.v21-trust,.v19-trust{ color:rgba(16,35,29,.78) !important; }
.v21-trust .ti,.v19-trust .tk{ background:rgba(31,107,80,.11) !important; color:var(--nila23-green-2) !important; }
.v21-hero-visual,.v19-discover{
  min-height:440px !important;
  border-radius:34px !important;
  background:linear-gradient(145deg,rgba(255,253,248,.94),rgba(248,239,219,.82)) !important;
  border:1px solid rgba(18,71,52,.13) !important;
  box-shadow:var(--nila23-shadow), inset 0 1px 0 rgba(255,255,255,.85) !important;
  overflow:hidden !important;
}
.v21-hero-visual::before,.v19-discover::before{
  content:"";
  position:absolute;
  inset:-20% -8% auto auto;
  width:65%; height:55%;
  border-radius:50%;
  background:radial-gradient(circle, rgba(196,154,67,.18), transparent 63%);
  pointer-events:none;
}
.v21-hero-visual img.cover{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  padding:18px !important;
  background:transparent !important;
  transform:none !important;
}
.v21-hero-visual .badge-tl{ background:rgba(255,253,248,.92) !important; border:1px solid rgba(18,71,52,.12) !important; color:var(--nila23-green) !important; box-shadow:0 18px 38px -28px rgba(16,35,29,.5) !important; }
.v21-hero-visual .ovr{
  background:rgba(255,253,248,.9) !important;
  border:1px solid rgba(18,71,52,.14) !important;
  box-shadow:0 22px 50px -34px rgba(16,35,29,.45) !important;
}
.v21-hero-visual .ovr .dot{ background:var(--nila23-gold) !important; box-shadow:0 0 0 5px rgba(196,154,67,.16) !important; }
/* 3D category system */
.v21-cat-grid{ grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:18px !important; }
.v23-cat-card.v21-cat{
  min-height:0 !important;
  display:grid !important;
  grid-template-columns:1fr !important;
  overflow:hidden !important;
  border-radius:28px !important;
  border:1px solid rgba(18,71,52,.12) !important;
  background:rgba(255,253,248,.9) !important;
  box-shadow:0 24px 70px -50px rgba(16,35,29,.38) !important;
  color:var(--nila23-ink) !important;
  text-decoration:none !important;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease !important;
}
.v23-cat-card.v21-cat:hover{ transform:translateY(-5px) !important; border-color:rgba(31,107,80,.32) !important; box-shadow:0 36px 90px -52px rgba(16,35,29,.5) !important; }
.v23-cat-card .ph{
  height:168px !important;
  min-height:168px !important;
  aspect-ratio:auto !important;
  border-radius:0 !important;
  background:linear-gradient(145deg,#fff8ec,#f4ead6) !important;
  position:relative !important;
  overflow:hidden !important;
}
.v23-cat-card .ph img{ width:100% !important; height:100% !important; object-fit:contain !important; padding:10px !important; transform:none !important; }
.v23-cat-card .ph::after{ display:none !important; }
.v23-cat-card .meta{ padding:15px 16px 16px !important; }
.v23-cat-card .meta h3{ font-size:18px !important; color:var(--nila23-ink) !important; margin:0 !important; }
.v23-cat-card .meta p{ margin-top:5px !important; font-size:12.7px !important; color:rgba(16,35,29,.65) !important; line-height:1.35 !important; }
.v23-cat-card .meta .more{ display:inline-flex !important; margin-top:12px !important; color:var(--nila23-green-2) !important; font-weight:800 !important; font-size:12.5px !important; }
.v23-cat-icon{
  position:absolute; left:13px; top:13px; z-index:2; width:38px; height:38px;
  display:grid; place-items:center; border-radius:14px;
  background:rgba(255,253,248,.92); border:1px solid rgba(18,71,52,.12); color:var(--nila23-green); box-shadow:0 14px 28px -20px rgba(16,35,29,.5);
}
/* Directory, cards and map feel part of one product */
.v21-dir-hero{ background:linear-gradient(180deg,rgba(255,248,236,.96),rgba(255,253,248,.88)) !important; border-bottom:1px solid rgba(18,71,52,.10) !important; }
.v21-dir-search{ background:rgba(255,253,248,.92) !important; border:1px solid rgba(18,71,52,.14) !important; box-shadow:0 24px 60px -48px rgba(16,35,29,.5) !important; border-radius:24px !important; }
.v21-cat-rail,.v21-dir-toolbar{ background:rgba(255,253,248,.78) !important; backdrop-filter:blur(12px); }
.v21-cat-rail .chip,.dir-cat{ border-color:rgba(18,71,52,.13) !important; background:#fffdf8 !important; color:var(--nila23-ink) !important; }
.v21-cat-rail .chip.active,.dir-cat.active{ background:linear-gradient(135deg,var(--nila23-green),var(--nila23-green-2)) !important; color:#fffaf0 !important; border-color:transparent !important; }
.v21-dir-map .frame,#dirMapCard,.map-card{
  border-radius:28px !important;
  border:1px solid rgba(18,71,52,.16) !important;
  box-shadow:0 36px 85px -60px rgba(16,35,29,.56) !important;
  background:#f9f2e4 !important;
  overflow:hidden !important;
}
.dir-card,.provider-card,.nila-pcard,.nila-gcard{
  border-radius:24px !important;
  border:1px solid rgba(18,71,52,.13) !important;
  background:rgba(255,253,248,.94) !important;
  box-shadow:0 20px 55px -46px rgba(16,35,29,.45) !important;
}
.dir-card:hover,.provider-card:hover,.nila-pcard:hover{ transform:translateY(-3px) !important; box-shadow:0 34px 85px -54px rgba(16,35,29,.52) !important; }
.v23-empty-3d{
  padding:28px !important; border-radius:28px; border:1px solid rgba(18,71,52,.12);
  background:rgba(255,253,248,.92); text-align:center; box-shadow:0 24px 70px -52px rgba(16,35,29,.35);
}
.v23-empty-3d img{ max-width:220px; width:55%; height:auto; display:block; margin:0 auto 12px; }
.v23-empty-3d h3{ margin:0 0 6px; color:var(--nila23-ink); font-size:22px; }
.v23-empty-3d p{ margin:0 auto 14px; max-width:48ch; color:rgba(16,35,29,.68); }
/* Provider profile readability and controlled 3D accent */
.v21-pp-cover{ border-radius:30px !important; background:linear-gradient(145deg,#fff8ec,#f2e8d5) !important; border:1px solid rgba(18,71,52,.14) !important; box-shadow:var(--nila23-shadow) !important; min-height:300px !important; }
.v21-pp-cover img{ object-fit:contain !important; padding:10px !important; background:transparent !important; opacity:1 !important; transform:none !important; }
.v21-pp-cover::after{ background:linear-gradient(180deg,rgba(255,253,248,.02),rgba(255,253,248,.72)) !important; height:42% !important; }
.premium-hero,.provider-hero,.profile-hero{
  background:linear-gradient(145deg,#fffdf8,#f4ead6) !important;
  color:var(--nila23-ink) !important;
  border:1px solid rgba(18,71,52,.13) !important;
  box-shadow:0 26px 80px -58px rgba(16,35,29,.5) !important;
}
.premium-hero h1,.provider-hero h1,.profile-hero h1,.premium-headline h1,.premium-headline{ color:var(--nila23-ink) !important; text-shadow:none !important; opacity:1 !important; }
.premium-hero p,.provider-hero p,.profile-hero p{ color:rgba(16,35,29,.72) !important; }
/* Dashboards as app workspaces */
.v21-dash-shell,.v23-dash-panel{
  background:rgba(255,253,248,.94) !important; border:1px solid rgba(18,71,52,.12) !important; box-shadow:0 30px 90px -64px rgba(16,35,29,.5) !important;
}
.v21-nba,.v23-next-action{ background:linear-gradient(135deg,var(--nila23-green),#0f3529) !important; color:#fffaf0 !important; }
/* Mobile */
@media(max-width:980px){
  .v21-hero-visual{ min-height:330px !important; }
  .v21-cat-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .v23-cat-card .ph{ height:130px !important; min-height:130px !important; }
}
@media(max-width:560px){
  .v21-cat-grid{ grid-template-columns:1fr !important; }
  .v23-cat-card.v21-cat{ grid-template-columns:116px 1fr !important; }
  .v23-cat-card .ph{ height:116px !important; min-height:116px !important; }
  .v23-cat-card .meta{ padding:12px !important; }
  .v21-hero-visual{ min-height:270px !important; border-radius:24px !important; }
}
@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; } }
