/* QLNPL v3.0.0 — public website: app-style refresh layered on public.css (same look as the admin/portal shell) */
:root{--pa-r:18px;--pa-ring:0 0 0 3px rgba(20,153,84,.18)}
body.pl-page{background:#fff;-webkit-tap-highlight-color:transparent}
.pl-nav{background:rgba(255,255,255,.88);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--pl-line)}
.pl-btn{border-radius:14px;font-weight:800;transition:transform .15s,box-shadow .15s}
.pl-btn:active{transform:scale(.97)}
.pl-btn--primary{box-shadow:0 6px 18px rgba(20,153,84,.28)}
.pl-panel,.pl-card{border-radius:var(--pa-r);border:1px solid var(--pl-line);box-shadow:var(--pl-shadow-sm)}
.pl-input,.pl-textarea,select.pl-input{min-height:48px;border-radius:12px;border:1.5px solid var(--pl-line)}
.pl-input:focus,.pl-textarea:focus{outline:0;border-color:var(--pl-green);box-shadow:var(--pa-ring)}
.pl-eyebrow{border-radius:999px}
.pl-section-head{max-width:720px;margin-left:auto;margin-right:auto}
a:focus-visible,button:focus-visible{outline:3px solid rgba(20,153,84,.45);outline-offset:2px;border-radius:8px}

/* phone: app bottom bar */
.pa-tabbar{display:none}
@media (max-width:900px){
  body.pl-page{padding-bottom:76px}
  .pa-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--pl-line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -6px 24px rgba(16,32,26,.08)}
  .pa-tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;border-radius:14px;font-size:.68rem;font-weight:700;color:var(--pl-ink-faint);text-decoration:none}
  .pa-tabbar a i{font-size:1.3rem;line-height:1}
  .pa-tabbar a.on{color:var(--pl-green-dark);background:#e8f7ef}
  .pa-tabbar a.pa-main{color:#fff;background:var(--pl-gradient);box-shadow:0 6px 16px rgba(20,153,84,.35);transform:translateY(-10px);min-height:56px;border-radius:18px}
  .pl-fab{bottom:92px!important}
  .pl-footer__bottom{flex-direction:column;gap:.4rem;text-align:center}
  .pl-section{padding-top:2.6rem;padding-bottom:2.6rem}
}
@media (prefers-reduced-motion:reduce){.pl-btn{transition:none}}

/* ---- inner pages (about, products, track, cart, FAQs, samples, client work, process, quote) ---- */
body.pl-page:not(.page-home) .pl-section[style*="padding-top:3rem"]:first-of-type{
  background:linear-gradient(180deg,#e8f7ef 0,#f6faf8 55%,#fff 100%);border-bottom:1px solid var(--pl-line-soft);padding-top:3.2rem!important}
body.pl-page:not(.page-home) .pl-section[style*="padding-top:3rem"]:first-of-type .pl-h1{font-size:clamp(1.8rem,4.5vw,2.7rem);letter-spacing:-.01em}
.pl-section--soft{background:var(--pl-bg-soft)}
/* cards: product tiles, samples, works, steps */
.pl-card,.qs-card,.pl-step,.pl-product{border-radius:var(--pa-r);transition:transform .2s,box-shadow .2s}
.pl-card:hover,.pl-product:hover{transform:translateY(-3px);box-shadow:var(--pl-shadow)}
.qs-card{border-color:var(--pl-line)}
/* tables (cart, track) become tidy cards on phones */
.pl-page table{border-collapse:separate;border-spacing:0}
.pl-page .pl-alert{border-radius:12px}
details.pl-faq,.pl-faq__item{border:1px solid var(--pl-line);border-radius:14px;background:#fff}
@media (max-width:700px){
  .pl-page .pl-container{padding-left:16px;padding-right:16px}
  .pl-btn--lg,.pl-btn--block{min-height:50px}
  .pl-page table.pl-cart,.pl-page .pl-table{display:block;overflow-x:auto}
}

/* primary buttons keep white text everywhere (hero / nav link colours were overriding it) */
.pl-page a.pl-btn--primary,.pl-page .pl-hero a.pl-btn--primary,.pl-page .pl-nav__links a.pl-btn--primary,.pl-page a.pl-btn--primary:hover{color:#fff}

/* ---- phone fixes (v3.0.0 audit): header never wider than the screen, 16px inputs (no iOS zoom), roomy tap targets ---- */
@media (max-width:900px){
  .pl-nav__row{gap:.6rem}
  .pl-nav__brand{flex-shrink:1;min-width:0;overflow:hidden}
  .pl-page .pl-nav__brand img{height:34px;width:auto;max-width:none;flex-shrink:0}   /* was overridden by .pl-page img{height:auto} below */
  .pl-nav__brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(.78rem,4.2vw,1.02rem)}
  .pl-nav__toggle{flex:0 0 auto}
  .pl-page input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=color]):not([type=hidden]),.pl-page select,.pl-page textarea{font-size:16px}
  .pl-page img{max-width:100%;height:auto}
}
@media (max-width:360px){.pl-container{padding-left:14px;padding-right:14px}.pl-h1{font-size:1.65rem}}

/* ---- v2 home content ---- */
.pl-hero__tag{margin:.9rem 0 0;font:800 .78rem var(--pl-font-display);letter-spacing:.09em;text-transform:uppercase;color:var(--pl-green-dark)}
.pl-stats-title{text-align:center;font:800 1.15rem var(--pl-font-display);margin:2.2rem 0 1rem;color:var(--pl-ink)}
.pl-stats-note{text-align:center;font-style:italic;color:var(--pl-ink-faint);margin:1rem 0 0}
.pl-steps--5{grid-template-columns:repeat(5,1fr)}
@media (max-width:1100px){.pl-steps--5{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.pl-steps--5{grid-template-columns:1fr}}
.pl-opt{background:#fff;border:1px solid var(--pl-line);border-radius:16px;overflow:hidden}
.pl-opt__table{width:100%;border-collapse:collapse;display:table!important;overflow:visible!important}
.pl-opt__table th{background:var(--pl-green-50,#eef8f2);text-align:left;font:800 .8rem var(--pl-font-display);letter-spacing:.04em;text-transform:uppercase;padding:.85rem 1.1rem}
.pl-opt__table td{padding:.95rem 1.1rem;border-top:1px solid var(--pl-line)}
.pl-opt__table .num{text-align:right;white-space:nowrap}
@media (max-width:600px){
  .pl-opt__table thead{display:none}
  .pl-opt__table,.pl-opt__table tbody,.pl-opt__table tr,.pl-opt__table td{display:block!important;width:100%}
  .pl-opt__table tr{padding:.7rem 1rem;border-top:1px solid var(--pl-line)}.pl-opt__table tr:first-child{border-top:0}
  .pl-opt__table td{border:0;padding:.15rem 0;text-align:left!important}
  .pl-opt__table td[data-l]:not(:first-child)::before{content:attr(data-l) ": ";color:var(--pl-ink-faint);font-weight:600}
}
.pl-bulk{margin-top:1.6rem;padding:1.5rem;border-radius:18px;background:linear-gradient(135deg,#0f6b3f,#16a05c);color:#fff}
.pl-bulk h3{margin:0 0 .5rem;font:800 1.3rem var(--pl-font-display)}.pl-bulk p{margin:.3rem 0;color:#e7f6ee;line-height:1.6}
.pl-bulk .pl-btn{margin-top:1rem;background:#fff;color:#0f6b3f!important}
.pl-final-tag{margin:1rem 0 0;font:800 1.05rem var(--pl-font-display);color:#8fe3b4}
.pl-contact-card{display:grid;gap:.5rem;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:18px;padding:1.3rem;margin:0 0 1.6rem;color:#e7f6ee}
.pl-contact-card b{font:800 1.1rem var(--pl-font-display);color:#fff}.pl-contact-card a,.pl-contact-card span{color:#e7f6ee;display:flex;gap:.55rem;align-items:center;min-height:36px}.pl-contact-card i{color:#8fe3b4}
.pl-contact-card__cta{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:.6rem}.pl-contact-card__cta a{display:inline-flex}
.pl-btn--light{background:#fff;color:#0f6b3f!important}

/* very small phones: hero buttons stack and never run past the screen edge */
@media (max-width:480px){
  .pl-hero__actions{flex-direction:column;align-items:stretch;gap:.7rem}
  .pl-hero__actions .pl-btn{width:100%;max-width:100%;justify-content:center;white-space:normal;text-align:center}
}
@media (max-width:480px){
  .pl-bulk .pl-btn,.pl-contact-card__cta .pl-btn,.pl-section .pl-btn{max-width:100%;white-space:normal;text-align:center;justify-content:center}
  .pl-bulk{padding:1.2rem}
}
