/* assets/css/site.css */
/* Bootstrap is unchanged; this file adds brand styling + modern feel. */

:root{
  --ptl-bg: #0b1411;
  --ptl-bg-2: #0f1f19;
  --ptl-card: rgba(255,255,255,.06);
  --ptl-border: rgba(255,255,255,.12);
  --ptl-text: rgba(255,255,255,.92);
  --ptl-muted: rgba(255,255,255,.62);

  --ptl-primary: #2fbf71;   /* modern green */
  --ptl-primary-2: #1f8a52; /* deeper green */
  --ptl-accent: #f0e4c2;    /* warm sand */
}

.ptl-body{
  font-family: "Inter", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background: #ffffff;
  color: #111;
}

/* Topbar */
.ptl-topbar{
  background: linear-gradient(90deg, var(--ptl-bg), var(--ptl-bg-2));
}
.ptl-topbar-link{
  color: var(--ptl-muted);
  text-decoration: none;
}
.ptl-topbar-link:hover{ color: #fff; }

/* Navbar */
.ptl-navbar{
  background: linear-gradient(90deg, var(--ptl-bg), var(--ptl-bg-2));
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.ptl-navbar .nav-link{
  color: rgba(255,255,255,.80);
}
.ptl-navbar .nav-link:hover{ color: #fff; }

.ptl-logo-mark{
  width: 34px; height: 34px;
  border-radius: 12px;
  background: radial-gradient(circle at 30% 30%, var(--ptl-primary), var(--ptl-primary-2));
  box-shadow: 0 10px 25px rgba(47,191,113,.25);
  display: inline-block;
}
.ptl-brand-text{ line-height: 1.1; }
.ptl-brand-name{ color: #fff; font-weight: 700; display:block; font-size: 1rem; }
.ptl-brand-sub{ color: rgba(255,255,255,.65); font-size: .82rem; display:block; }

.ptl-btn-primary{
  background: linear-gradient(180deg, var(--ptl-primary), var(--ptl-primary-2));
  border: 0;
  box-shadow: 0 10px 30px rgba(47,191,113,.25);
}
.ptl-btn-primary:hover{
  filter: brightness(1.03);
}

.ptl-btn-outline{
  border-color: rgba(255,255,255,.35);
  color: #fff;
}
.ptl-btn-outline:hover{
  background: rgba(255,255,255,.10);
  border-color: rgba(255,255,255,.45);
}

/* Global CTA bar */
.ptl-cta-bar{
  position: sticky;
  top: calc(56px + 0px); /* below navbar; adjusts naturally */
  z-index: 1020;
  background: rgba(11,20,17,.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.ptl-cta-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 1rem;
  padding: .6rem 0;
}
.ptl-cta-badge{
  background: rgba(47,191,113,.15);
  color: #c6f6d5;
  border: 1px solid rgba(47,191,113,.35);
  padding: .25rem .6rem;
  border-radius: 999px;
  font-size: .8rem;
  font-weight: 600;
  width: fit-content;
}
.ptl-cta-text{
  color: rgba(255,255,255,.86);
  font-weight: 600;
}
.ptl-cta-sub{ color: rgba(255,255,255,.55); font-weight: 500; margin-left: .25rem; }
.ptl-cta-actions{
  display:flex;
  gap: .5rem;
}
.ptl-cta-btn{
  border-radius: 14px;
  display:flex;
  align-items:center;
  gap:.35rem;
  padding: .55rem .8rem;
}
.ptl-cta-ic{ font-size: 1rem; }

/* Mobile: convert CTA into bottom bar */
@media (max-width: 767.98px){
  .ptl-cta-bar{
    position: fixed;
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    border-top: 1px solid rgba(255,255,255,.10);
    border-bottom: 0;
  }
  .ptl-main{ padding-bottom: 84px; } /* room for bottom bar */
  .ptl-cta-inner{ padding: .55rem 0; }
  .ptl-cta-btn span:last-child{ display:none; } /* icons only */
  .ptl-cta-btn{ padding: .65rem .8rem; }
}

/* Hero */
.ptl-hero{
  background: radial-gradient(circle at 20% 10%, rgba(47,191,113,.20), transparent 40%),
              radial-gradient(circle at 80% 0%, rgba(240,228,194,.14), transparent 38%),
              linear-gradient(180deg, var(--ptl-bg), var(--ptl-bg-2));
  color: var(--ptl-text);
  position: relative;
  overflow: hidden;
}
.ptl-pill{
  display:inline-block;
  padding: .35rem .75rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.80);
  background: rgba(255,255,255,.06);
  font-size: .9rem;
}
.py-lg-6{ padding-top: 4.5rem !important; padding-bottom: 4.5rem !important; }

.ptl-hero-card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px;
  padding: .75rem;
}
.ptl-hero-card-caption{
  padding: .75rem .25rem .25rem;
}

.ptl-trust{
  display:grid;
  gap: .75rem;
}
.ptl-trust-item{
  display:flex;
  gap: .75rem;
  align-items:flex-start;
}
.ptl-trust-ic{
  width: 36px; height: 36px;
  border-radius: 14px;
  background: rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:center;
  border: 1px solid rgba(255,255,255,.12);
}

/* Decorative wave */
.ptl-hero-wave{
  position:absolute;
  left:-10%;
  right:-10%;
  bottom:-1px;
  height: 72px;
  background: linear-gradient(90deg, rgba(47,191,113,.20), rgba(240,228,194,.18));
  clip-path: polygon(0 50%, 10% 65%, 25% 55%, 40% 72%, 55% 58%, 70% 68%, 85% 52%, 100% 62%, 100% 100%, 0 100%);
  opacity: .55;
}

/* Sections */
.ptl-section{ background:#fff; }
.ptl-section-soft{ background: #f7faf8; }

.ptl-card{
  display:block;
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 20px;
  padding: 1rem;
  text-decoration:none;
  color: inherit;
  box-shadow: 0 12px 30px rgba(0,0,0,.04);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.ptl-card:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 44px rgba(0,0,0,.08);
  border-color: rgba(47,191,113,.25);
}
.ptl-card-ic{
  width: 44px; height: 44px;
  border-radius: 16px;
  background: rgba(47,191,113,.10);
  border: 1px solid rgba(47,191,113,.22);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 1.2rem;
}
.ptl-card-cta{ color: var(--ptl-primary-2); font-weight: 700; }

.ptl-chip{
  background: #fff;
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 999px;
  padding: .55rem .8rem;
  text-align:center;
  font-weight: 600;
}

/* Gallery */
.ptl-gallery-img{
  border: 1px solid rgba(0,0,0,.08);
  transition: transform .15s ease;
}
.ptl-gallery-img:hover{ transform: scale(1.01); }

/* Reviews panel */
.ptl-review-panel{
  border-radius: 24px;
  background: #ffffff;
  border: 1px solid rgba(0,0,0,.08);
  padding: 1.25rem;
  box-shadow: 0 12px 30px rgba(0,0,0,.04);
}
.ptl-review{
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 18px;
  padding: 1rem;
  margin-bottom: .75rem;
}
.ptl-review-stars{ letter-spacing: 1px; }

/* CTA section */
.ptl-section-cta{
  background: linear-gradient(90deg, var(--ptl-bg), var(--ptl-bg-2));
}

/* Footer */
.ptl-footer{
  background: linear-gradient(90deg, var(--ptl-bg), var(--ptl-bg-2));
  color: var(--ptl-text);
}
.ptl-footer-title{
  font-weight: 700;
  margin-bottom: .75rem;
}
.ptl-footer-link{
  color: rgba(255,255,255,.70);
  text-decoration:none;
}
.ptl-footer-link:hover{ color:#fff; }

.ptl-footer-card{
  border-radius: 18px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  padding: 1rem;
}
.ptl-footer-bottom{
  border-top: 1px solid rgba(255,255,255,.10);
}