/* World Ledgers landing + features enhancements
   Lightweight, no-build-step, designed to sit on top of app.min.css */

:root{
  --wl-primary:#EC7016;
  --wl-secondary:#141432;
  --wl-surface:#ffffff;
  --wl-surface-2:#f6f7fb;
  --wl-text:#0f172a;
  --wl-muted:#64748b;
  --wl-border:rgba(15,23,42,.10);
  --wl-shadow:0 18px 45px rgba(15, 23, 42, .10);
  --wl-shadow-sm:0 10px 25px rgba(15, 23, 42, .08);
}

/* Better default typography on public pages */
body .layout-wrapper.landing{
  color:var(--wl-text);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

.wl-header{
  transition:background-color .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.wl-header.navbar-landing{
  backdrop-filter: blur(10px);
  background:rgba(6, 10, 24, .72) !important;
  border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 12px 32px rgba(2,6,23,.18);
}
.wl-header .navbar-brand{
  margin-right:1rem;
}
.wl-header .navbar-nav .nav-link{
  position:relative;
  font-weight:650;
  letter-spacing:.01em;
  padding:.65rem .85rem !important;
  color:rgba(255,255,255,.82) !important;
  transition:color .2s ease;
}
.wl-header .navbar-nav .nav-link:hover{
  color:#fff !important;
}
.wl-header .navbar-nav .nav-link::after{
  content:"";
  position:absolute;
  left:.95rem;
  right:.95rem;
  bottom:.35rem;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(236,112,22,0), rgba(236,112,22,.95), rgba(236,112,22,0));
  transform:scaleX(.2);
  transform-origin:center;
  opacity:0;
  transition:transform .2s ease, opacity .2s ease;
}
.wl-header .navbar-nav .nav-link.active::after,
.wl-header .navbar-nav .nav-link:hover::after{
  transform:scaleX(1);
  opacity:1;
}
.wl-header-actions{
  display:flex;
  gap:.5rem;
  align-items:center;
}
.wl-header-btn{
  padding:.55rem .9rem !important;
  border-radius:14px !important;
  line-height:1.05;
  white-space:nowrap;
}

/* Ensure header buttons look balanced */
.wl-header .wl-btn-ghost{
  background:rgba(255,255,255,.08) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  color:#fff !important;
}

/* Reduce visual heaviness on very small widths */
@media (max-width:420px){
  .wl-header-actions{
    gap:.4rem;
  }
  .wl-header-btn{
    padding:.5rem .75rem !important;
    border-radius:12px !important;
  }
}

/* Footer polish */
footer.custom-footer{
  position:relative;
  overflow:hidden;
}
footer.custom-footer::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background:linear-gradient(90deg, rgba(236,112,22,0), rgba(236,112,22,.55), rgba(255,255,255,.10), rgba(236,112,22,.25), rgba(236,112,22,0));
  opacity:1;
}
footer.custom-footer::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 520px at 18% 0%, rgba(236,112,22,.12), transparent 58%),
    radial-gradient(900px 520px at 88% 20%, rgba(255,255,255,.08), transparent 62%);
  opacity:.28;
}
footer.custom-footer > .container{
  position:relative;
  z-index:1;
}
footer.custom-footer .footer-list a{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  text-decoration:none;
  opacity:.86;
  transition:opacity .2s ease, transform .2s ease, color .2s ease;
}
footer.custom-footer .footer-list a:hover{
  opacity:1;
  transform:translateX(2px);
  color:#fff !important;
}
footer.custom-footer h5{
  letter-spacing:-.01em;
}
footer.custom-footer .footer-social-link a{
  width:36px;
  height:36px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.10);
  transition:transform .2s ease, background-color .2s ease, border-color .2s ease;
}
footer.custom-footer .footer-social-link a i,
footer.custom-footer .footer-social-link a svg{
  width:18px;
  height:18px;
  display:block;
}
footer.custom-footer .footer-social-link a svg{
  fill:currentColor;
}
footer.custom-footer .footer-social-link a:hover{
  transform:translateY(-2px);
  background:rgba(236,112,22,.18);
  border-color:rgba(236,112,22,.25);
}

.wl-page{
  background:
    radial-gradient(1200px 600px at 15% -10%, rgba(236,112,22,.18), transparent 55%),
    radial-gradient(1000px 550px at 85% 0%, rgba(20,20,50,.20), transparent 55%),
    linear-gradient(180deg, #fff, #fff);
}

.wl-section{
  padding:clamp(48px, 6vw, 96px) 0;
}

.wl-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.35rem .75rem;
  border-radius:999px;
  background:rgba(236,112,22,.10);
  color:var(--wl-secondary);
  border:1px solid rgba(236,112,22,.20);
  font-weight:600;
  letter-spacing:.01em;
}

.wl-hero{
  position:relative;
  overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.wl-hero .bg-overlay{
  opacity:.55 !important;
}
.wl-hero::after{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  background:
    radial-gradient(900px 500px at 12% 0%, rgba(236,112,22,.26), transparent 58%),
    radial-gradient(900px 500px at 86% 8%, rgba(255,255,255,.10), transparent 62%),
    radial-gradient(700px 420px at 50% 60%, rgba(20,20,50,.22), transparent 64%),
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.42));
}
.wl-hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(700px 520px at 40% 40%, rgba(236,112,22,.10), transparent 65%),
    radial-gradient(700px 520px at 75% 55%, rgba(255,255,255,.06), transparent 70%);
  opacity:.75;
}
.wl-hero > .container{
  position:relative;
  z-index:1;
}

.wl-hero-title{
  font-size:clamp(2rem, 4.6vw, 3.5rem);
  line-height:1.1;
  letter-spacing:-.02em;
}
.wl-hero-subtitle{
  font-size:clamp(1rem, 1.6vw, 1.15rem);
  color:rgba(255,255,255,.82);
}

.wl-breadcrumb{
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  align-items:center;
  font-size:.95rem;
  color:rgba(255,255,255,.80);
}
.wl-breadcrumb a{
  color:rgba(255,255,255,.90);
  text-decoration:none;
}
.wl-breadcrumb a:hover{
  color:#fff;
  text-decoration:underline;
}

.wl-card{
  background:var(--wl-surface);
  border:1px solid var(--wl-border);
  border-radius:18px;
  box-shadow:var(--wl-shadow-sm);
  overflow:hidden;
}

/* Pricing cards (use existing wl-card primitives) */
#pricing{
  position:relative;
}
#pricing::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(1000px 520px at 10% 0%, rgba(236,112,22,.10), transparent 55%),
    radial-gradient(900px 520px at 85% 20%, rgba(20,20,50,.08), transparent 55%);
  opacity:.9;
}
#pricing > .container{
  position:relative;
  z-index:1;
}

#pricing .wl-card{
  position:relative;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
#pricing .wl-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--wl-shadow);
  border-color:rgba(236,112,22,.22);
}
#pricing hr{
  border-color:rgba(15,23,42,.10);
  opacity:1;
}
#pricing .fs-2{
  letter-spacing:-.02em;
}

/* Make pricing cards scan better */
#pricing .wl-price-card{
  overflow:hidden;
}
#pricing .wl-price-card .wl-eyebrow{
  background:rgba(20,20,50,.06);
  border-color:rgba(20,20,50,.12);
  color:var(--wl-secondary);
}
#pricing .wl-price-card .wl-icon-badge{
  width:50px;
  height:50px;
  border-radius:14px;
  background:rgba(236,112,22,.08);
  border-color:rgba(236,112,22,.14);
}
#pricing .wl-price-card .wl-icon-badge i{
  font-size:22px;
}

#pricing .wl-price{
  padding:.15rem 0 0;
}
#pricing .wl-price-value{
  line-height:1.05;
}
#pricing .wl-price-unit{
  white-space:nowrap;
}

/* Featured plan */
#pricing .wl-price-card.is-featured{
  border-color:rgba(236,112,22,.28);
  box-shadow:0 18px 45px rgba(236,112,22,.10), var(--wl-shadow-sm);
}
#pricing .wl-price-card.is-featured::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:20px;
  padding:2px;
  background:linear-gradient(135deg, rgba(236,112,22,.75), rgba(255,138,58,.35), rgba(20,20,50,.20));
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
  opacity:.9;
}

/* Pricing checklist should be single column + less "pill" */
#pricing .wl-checklist{
  grid-template-columns:1fr !important;
  gap:.55rem;
}
#pricing .wl-checklist li{
  padding:.55rem .65rem;
  border-radius:12px;
  background:rgba(246,247,251,.55);
  border-color:rgba(15,23,42,.07);
}
#pricing .wl-checklist li:hover{
  transform:none;
  background:rgba(236,112,22,.05);
  border-color:rgba(236,112,22,.14);
}

.wl-feature-card{
  height:100%;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.wl-feature-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--wl-shadow);
  border-color:rgba(236,112,22,.28);
}
.wl-feature-card .wl-cover{
  position:relative;
  height:220px;
  overflow:hidden;
}
.wl-feature-card .wl-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.01);
  transition:transform .35s ease, filter .35s ease;
  filter:saturate(1.02) contrast(1.02);
}
.wl-feature-card:hover .wl-cover img{
  transform:scale(1.06);
}
.wl-feature-card .wl-cover::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(20,20,50,.10), rgba(20,20,50,.55));
  opacity:.55;
  transition:opacity .35s ease;
}
.wl-feature-card:hover .wl-cover::after{
  opacity:.38;
}
.wl-feature-card .wl-body{
  padding:1.15rem 1.15rem 1.25rem;
}
.wl-feature-card .wl-title{
  font-weight:700;
  letter-spacing:-.01em;
  margin:0 0 .4rem;
}
.wl-feature-card .wl-desc{
  color:var(--wl-muted);
  margin:0 0 1rem;
}

.wl-btn{
  border-radius:12px !important;
  font-weight:700;
  letter-spacing:.01em;
  transition:transform .2s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
}
.wl-btn:active{
  transform:translateY(1px);
}
.wl-btn-primary{
  background:linear-gradient(135deg, var(--wl-primary), #ff8a3a) !important;
  border-color:transparent !important;
  box-shadow:0 14px 30px rgba(236,112,22,.22);
}
.wl-btn-primary:hover{
  box-shadow:0 18px 40px rgba(236,112,22,.26);
  transform:translateY(-1px);
}

/* Make sections feel less flat */
.section{
  position:relative;
}
.section + .section{
  scroll-margin-top:90px;
}

/* Anchor target for Pricing cards */
#pricing-plans{
  scroll-margin-top:90px;
}

@media (prefers-reduced-motion: reduce){
  .wl-btn-primary:hover{ transform:none !important; }
}
.wl-btn-ghost{
  background:rgba(255,255,255,.10) !important;
  border:1px solid rgba(255,255,255,.22) !important;
  color:#fff !important;
  backdrop-filter: blur(6px);
}
.wl-btn-ghost:hover{
  background:rgba(255,255,255,.14) !important;
  border-color:rgba(255,255,255,.32) !important;
}

/* Feature detail sections */
.wl-feature-block{
  padding:1.25rem;
  border-radius:18px;
  border:1px solid var(--wl-border);
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.88));
  box-shadow:var(--wl-shadow-sm);
}
@media (min-width:992px){
  .wl-feature-block{
    padding:1.75rem;
  }
}

.wl-icon-badge{
  width:56px;
  height:56px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:rgba(236,112,22,.10);
  border:1px solid rgba(236,112,22,.18);
  color:var(--wl-secondary);
}
.wl-icon-badge i{
  font-size:24px;
  color:var(--wl-primary);
}

.wl-checklist{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:.65rem;
}
@media (min-width:576px){
  .wl-checklist{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.75rem 1rem;
  }
}
.wl-checklist li{
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  padding:.65rem .75rem;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(246,247,251,.75);
  color:var(--wl-muted);
  transition:transform .2s ease, background-color .2s ease, border-color .2s ease;
}
.wl-checklist li:hover{
  transform:translateY(-2px);
  background:rgba(236,112,22,.06);
  border-color:rgba(236,112,22,.18);
}

/* Plain checklist variant (use for narrow cards on landing) */
.wl-checklist.wl-checklist-plain{
  grid-template-columns:1fr !important;
  gap:.55rem;
}
.wl-checklist.wl-checklist-plain li{
  padding:.35rem 0;
  border:none;
  background:transparent;
  border-radius:0;
  color:var(--wl-muted);
}
.wl-checklist.wl-checklist-plain li:hover{
  transform:none;
  background:transparent;
  border-color:transparent;
}
.wl-checklist.wl-checklist-plain .wl-check{
  width:20px;
  height:20px;
  background:rgba(236,112,22,.10);
}

/* Softer card for info panels */
.wl-info-card{
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.80));
}

/* Make sections after pricing feel premium */
#faq, #onboarding{
  position:relative;
}
#faq::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 520px at 12% 0%, rgba(236,112,22,.08), transparent 58%),
    radial-gradient(900px 520px at 88% 20%, rgba(20,20,50,.06), transparent 58%);
}
#faq > .container, #onboarding > .container{
  position:relative;
  z-index:1;
}

/* CTA polish */
.wl-cta{
  overflow:hidden;
}
.wl-cta::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 520px at 15% 0%, rgba(255,255,255,.14), transparent 55%),
    radial-gradient(900px 520px at 85% 30%, rgba(20,20,50,.20), transparent 60%),
    linear-gradient(135deg, rgba(236,112,22,.85), rgba(236,112,22,.92));
  opacity:1;
}
.wl-cta .container{
  position:relative;
  z-index:1;
}
.wl-cta .btn{
  border-radius:14px;
  box-shadow:0 14px 34px rgba(15,23,42,.18);
}

/* FAQ accordion -> card-like */
#faq .accordion-border-box .accordion-item{
  border:1px solid rgba(15,23,42,.08) !important;
  border-radius:16px !important;
  overflow:hidden;
  box-shadow:var(--wl-shadow-sm);
  background:rgba(255,255,255,.92);
}
#faq .accordion-border-box .accordion-item + .accordion-item{
  margin-top:.85rem;
}
#faq .accordion-button{
  font-weight:700;
  letter-spacing:-.01em;
  padding:1rem 1.05rem;
}
#faq .accordion-button:not(.collapsed){
  background:rgba(236,112,22,.06);
  color:var(--wl-secondary);
}
#faq .accordion-body{
  color:var(--wl-muted);
  line-height:1.7;
  padding:1rem 1.05rem 1.15rem;
}

/* Reviews section -> more luxurious */
#reviews{
  position:relative;
  overflow:hidden;
}
#reviews .bg-overlay{
  pointer-events:none;
}
#reviews::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 520px at 20% 0%, rgba(255,255,255,.14), transparent 60%),
    radial-gradient(900px 520px at 80% 30%, rgba(20,20,50,.20), transparent 60%);
  opacity:1;
}
#reviews > .container{
  position:relative;
  z-index:1;
}
#reviews .client-review-swiper{
  border-radius:22px !important;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(20,20,50,.16);
  backdrop-filter: blur(10px);
  box-shadow:0 28px 70px rgba(15,23,42,.28);
  padding:1.25rem 0;
}
#reviews .client-review-swiper .fs-20{
  font-size:1.15rem !important;
  line-height:1.75;
}
#reviews .swiper-button-next,
#reviews .swiper-button-prev{
  width:44px;
  height:44px;
  box-shadow:0 18px 40px rgba(15,23,42,.28);
  z-index:6;
  cursor:pointer;
}

/* Onboarding -> modern cards */
#onboarding::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 520px at 10% 10%, rgba(236,112,22,.07), transparent 60%),
    radial-gradient(900px 520px at 90% 0%, rgba(20,20,50,.05), transparent 60%);
}
#onboarding .process-card{
  position:relative;
  border-radius:20px;
  border:1px solid rgba(15,23,42,.08);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.80));
  box-shadow:var(--wl-shadow-sm);
  padding:1.25rem 1.1rem;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  overflow:visible; /* ensure connectors can sit outside */
}
#onboarding .process-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--wl-shadow);
  border-color:rgba(236,112,22,.18);
}
#onboarding .process-card h5{
  font-weight:800;
  letter-spacing:-.01em;
}

/* Restore + animate onboarding connector arrows */
#onboarding .process-arrow-img{
  position:absolute;
  top:34px;
  right:-74px;
  width:160px;
  z-index:2;
  opacity:.9;
  pointer-events:none;
  filter:drop-shadow(0 16px 26px rgba(15,23,42,.12));
}
#onboarding .process-arrow-img img{
  width:100%;
  height:auto;
  display:block;
  transform-origin:left center;
  animation:wl-arrow-float 2.8s ease-in-out infinite;
}

@keyframes wl-arrow-float{
  0%, 100% { transform:translateY(0) translateX(0) rotate(0deg); opacity:.92; }
  50% { transform:translateY(-6px) translateX(2px) rotate(-1deg); opacity:1; }
}

@media (max-width:991.98px){
  #onboarding .process-arrow-img{ display:none !important; }
}

@media (prefers-reduced-motion: reduce){
  #onboarding .process-arrow-img img{ animation:none !important; }
}
.wl-checklist .wl-check{
  width:22px;
  height:22px;
  border-radius:999px;
  background:rgba(236,112,22,.14);
  display:grid;
  place-items:center;
  flex:0 0 auto;
  margin-top:.08rem;
}
.wl-checklist .wl-check i{
  font-size:16px;
  color:var(--wl-primary);
}

/* Back-compat styling for existing feature pages (no markup change needed) */
.feature-section{
  padding-top:clamp(88px, 8vw, 120px) !important;
  margin-top:0 !important;
}
.feature-section .animate-fadeInUp{
  margin-top:0 !important;
}
.feature-icon{
  width:56px;
  height:56px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:rgba(236,112,22,.10) !important;
  border:1px solid rgba(236,112,22,.18);
  margin-bottom:1rem !important;
}
.feature-icon i{
  color:var(--wl-primary) !important;
  font-size:24px !important;
}
.feature-image{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:var(--wl-shadow);
  background:#0b1220;
}
.feature-image img{
  width:100%;
  height:auto;
  display:block;
  transform:scale(1.01);
  transition:transform .35s ease;
}
.feature-image:hover img{
  transform:scale(1.05);
}

.feature-list{
  list-style:none;
  padding-left:0;
  display:grid;
  gap:.65rem;
}
@media (min-width:576px){
  .feature-list{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:.75rem 1rem;
  }
}
.feature-list li{
  padding:.65rem .75rem;
  border-radius:14px;
  border:1px solid rgba(15,23,42,.08);
  background:rgba(246,247,251,.75);
  transition:transform .2s ease, background-color .2s ease, border-color .2s ease;
}
.feature-list li:hover{
  transform:translateY(-2px);
  background:rgba(236,112,22,.06);
  border-color:rgba(236,112,22,.18);
}
.feature-list li i{
  width:22px;
  height:22px;
  border-radius:999px;
  background:rgba(236,112,22,.14);
  display:grid;
  place-items:center;
  color:var(--wl-primary) !important;
}

.wl-media{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.06);
  box-shadow:var(--wl-shadow);
  background:#0b1220;
}
.wl-media img{
  width:100%;
  height:auto;
  display:block;
  transform:scale(1.01);
  transition:transform .35s ease;
}
.wl-media:hover img{
  transform:scale(1.05);
}

/* Scroll reveal animation */
.wl-reveal{
  opacity:0;
  transform:translateY(32px) scale(.985);
  filter:blur(6px);
  transition:
    opacity .75s ease,
    transform .75s cubic-bezier(.2,.8,.2,1),
    filter .75s ease;
  will-change:opacity, transform;
}
.wl-reveal.is-visible{
  opacity:1;
  transform:translateY(0);
  filter:blur(0);
}
.wl-reveal[data-wl-delay="1"]{ transition-delay:80ms; }
.wl-reveal[data-wl-delay="2"]{ transition-delay:160ms; }
.wl-reveal[data-wl-delay="3"]{ transition-delay:240ms; }
.wl-reveal[data-wl-delay="4"]{ transition-delay:320ms; }

@media (prefers-reduced-motion: reduce){
  .wl-reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
  .wl-feature-card,
  .wl-feature-card .wl-cover img,
  .wl-checklist li,
  .wl-media img{
    transition:none !important;
  }
}

