/* Custom PLP Page — front end. Design values come from CSS variables set in Custom PLP → Design. */

/* ---------- Listing ---------- */
.cplp{display:flex;gap:var(--cplp-layout-gap,50px);font-family:var(--cplp-font,inherit);font-weight:var(--cplp-weight,300);color:var(--cplp-text,#2f7d6b);background:var(--cplp-bg,transparent);max-width:var(--cplp-max,1400px);margin:0 auto;padding:40px 20px;box-sizing:border-box}
.cplp *,.cplp *::before,.cplp *::after{box-sizing:border-box}
.cplp a{color:var(--cplp-text);text-decoration:none}
.cplp-side{flex:0 0 var(--cplp-side,260px);min-width:0}
.cplp-side h3{font-family:inherit;font-weight:var(--cplp-weight);font-size:var(--cplp-title-size,28px);line-height:1.2;margin:0 0 25px;padding-bottom:25px;border-bottom:1px solid var(--cplp-border,#cfe0db);color:var(--cplp-text)}
.cplp-side ul{list-style:none;margin:0;padding:0}
.cplp-side li{margin:0 0 22px;font-size:var(--cplp-cat-size,20px);font-weight:var(--cplp-weight);line-height:1.3}
.cplp-side li::before{content:none}
.cplp-side li.on a{color:var(--cplp-active,#d40000);text-decoration:underline;text-underline-offset:4px}
.cplp-side a:hover{text-decoration:underline;text-underline-offset:4px}
.cplp-main{flex:1;min-width:0}
.cplp-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:30px;font-size:var(--cplp-bar-size,18px);font-weight:var(--cplp-weight)}
.cplp-bar span{margin:0;line-height:1;white-space:nowrap}
.cplp-bar form{margin:0;display:flex;align-items:center}
.cplp-bar label{display:inline-flex;align-items:center;gap:8px;margin:0;white-space:nowrap;font-weight:var(--cplp-weight);color:var(--cplp-text);font-size:inherit}
.cplp-bar select{width:auto;min-width:0;height:auto;border:0;box-shadow:none;background-color:transparent;color:var(--cplp-text);font:inherit;padding:0 4px;margin:0;cursor:pointer}
.cplp-grid{display:grid;grid-template-columns:repeat(var(--cplp-cols,3),minmax(0,1fr));gap:var(--cplp-gap,35px)}
.cplp-item{display:flex;flex-direction:column;min-width:0}
.cplp-item-link{display:block}
.cplp-img{display:block;overflow:hidden;border-radius:var(--cplp-img-radius,0)}
.cplp-item img{width:100%;height:auto;aspect-ratio:var(--cplp-ratio,16/9);object-fit:cover;display:block;margin:0;border-radius:0;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.cplp-item-link:hover img{transform:scale(var(--cplp-zoom,1.04))}
.cplp-item h4{font-family:inherit;font-weight:var(--cplp-weight);font-size:var(--cplp-ptitle-size,22px);line-height:1.25;margin:22px 0 12px;color:var(--cplp-text)}
.cplp-item .line{width:var(--cplp-accent-w,35px);height:2px;background:var(--cplp-text);transition:width .35s ease}
.cplp-item-link:hover .line{width:calc(var(--cplp-accent-w,35px) * 1.8)}
.cplp-card-cta{display:inline-block;margin-top:16px;font-size:calc(var(--cplp-bar-size,18px) * .85)}
.cplp-card-cta:hover{text-decoration:underline}
.cplp-item .cplp-appt-btn{margin-top:16px;align-self:flex-start}
.cplp-empty{font-size:var(--cplp-bar-size);margin:20px 0}
.cplp-pages{display:flex;gap:8px;justify-content:center;margin-top:45px;font-size:var(--cplp-bar-size)}
.cplp-pages a,.cplp-pages span{min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--cplp-border)}
.cplp-pages span.on{background:var(--cplp-text);color:#fff;border-color:var(--cplp-text)}
.cplp-admin-warning{padding:10px 14px;background:#fff8e5;border-left:4px solid #dba617;color:#50575e;font-size:14px;margin:10px 0}

@media (max-width:1000px){
	.cplp-grid{grid-template-columns:repeat(var(--cplp-cols-t,2),minmax(0,1fr))}
	.cplp{gap:calc(var(--cplp-layout-gap,50px) * .6)}
	.cplp-side{flex-basis:calc(var(--cplp-side,260px) * .8)}
}
@media (max-width:700px){
	.cplp{flex-direction:column;gap:25px;padding:24px 16px}
	.cplp-side{flex:none}
	.cplp-grid{grid-template-columns:repeat(var(--cplp-cols-m,1),minmax(0,1fr))}
	.cplp-side h3{margin-bottom:16px;padding-bottom:16px}
	.cplp-mobile-scroll .cplp-side ul{display:flex;gap:22px;overflow-x:auto;white-space:nowrap;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
	.cplp-mobile-scroll .cplp-side li{margin:0;flex:0 0 auto}
	.cplp-bar{font-size:calc(var(--cplp-bar-size,18px) * .9)}
}

/* ---------- Appointment button (product page, cards, loops) ---------- */
.cplp-appt{margin:24px 0;font-family:var(--cplp-font,inherit)}
.cplp-appt-before,.cplp-appt-after{font-size:15px;line-height:1.6;opacity:.85}
.cplp-appt-before p,.cplp-appt-after p{margin:0 0 10px}
.cplp-appt-before{margin-bottom:14px}
.cplp-appt-after{margin-top:14px}
.cplp-appt-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
a.cplp-appt-btn,a.cplp-appt-btn:visited{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:var(--cplp-btn-width,auto);padding:var(--cplp-btn-py,14px) var(--cplp-btn-px,32px);background:var(--cplp-btn-bg,#2f7d6b);color:var(--cplp-btn-text,#fff);border:1px solid var(--cplp-btn-bg,#2f7d6b);border-radius:var(--cplp-btn-radius,0);font-family:var(--cplp-font,inherit);font-size:var(--cplp-btn-size,16px);font-weight:500;line-height:1.2;letter-spacing:var(--cplp-btn-ls,0);text-transform:var(--cplp-btn-transform,none);text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s;box-shadow:none}
a.cplp-appt-btn:hover,a.cplp-appt-btn:focus-visible{background:var(--cplp-btn-hover-bg,#245f52);border-color:var(--cplp-btn-hover-bg,#245f52);color:var(--cplp-btn-hover-text,#fff);text-decoration:none}
a.cplp-appt-btn:focus-visible{outline:2px solid var(--cplp-btn-hover-bg);outline-offset:3px}
a.cplp-appt-btn.is-loading{opacity:.7;pointer-events:none}
.cplp-appt-btn .cplp-icon{flex:0 0 auto}
.cplp-appt-btn--loop,.cplp-appt-btn--card{--cplp-btn-width:auto;font-size:calc(var(--cplp-btn-size,16px) * .875);padding:calc(var(--cplp-btn-py,14px) * .75) calc(var(--cplp-btn-px,32px) * .7)}
a.cplp-appt-secondary{display:inline-flex;align-items:center;padding:var(--cplp-btn-py,14px) var(--cplp-btn-px,32px);border:1px solid var(--cplp-btn-bg,#2f7d6b);color:var(--cplp-btn-bg,#2f7d6b);background:transparent;border-radius:var(--cplp-btn-radius,0);font-family:var(--cplp-font,inherit);font-size:var(--cplp-btn-size,16px);font-weight:500;line-height:1.2;letter-spacing:var(--cplp-btn-ls,0);text-transform:var(--cplp-btn-transform,none);text-decoration:none;transition:background .25s,color .25s}
a.cplp-appt-secondary:hover{background:var(--cplp-btn-bg,#2f7d6b);color:var(--cplp-btn-text,#fff)}
a.cplp-back{display:inline-flex;gap:6px;align-items:center;margin-bottom:14px;font-size:14px;color:var(--cplp-text,#2f7d6b);text-decoration:none;font-family:var(--cplp-font,inherit)}
a.cplp-back:hover{text-decoration:underline}
.cplp-inline-wrap{clear:both;margin:40px 0;scroll-margin-top:100px}
.cplp-inline-calendly{min-width:320px;width:100%}

/* ---------- Safety net: themes that re-add price / cart form on custom hooks ---------- */
.cplp-safety-net .summary form.cart,
.cplp-safety-net .entry-summary form.cart,
.cplp-safety-net .summary .single_add_to_cart_button,
.cplp-safety-net .summary .quantity,
.cplp-safety-net .wc-block-add-to-cart-form,
.cplp-safety-net.cplp-hide-price .summary > .price,
.cplp-safety-net.cplp-hide-price .entry-summary > .price,
.cplp-safety-net .elementor-widget-woocommerce-product-add-to-cart form.cart{display:none!important}
