/* Celtaclab Services & Promotions – frontend */
:root{--clab-primary:#2a2090;--clab-accent:#e5231b;--clab-gap:30px;--clab-cols:3}

/* Hero */
.clab-hero{position:relative;background:var(--clab-hero-bg,var(--clab-primary));color:var(--clab-hero-color,#fff);padding:70px 20px;text-align:center;margin-bottom:var(--clab-curve,50px);box-sizing:border-box}
.clab-hero::after{content:"";position:absolute;left:0;right:0;top:100%;height:var(--clab-curve,50px);background:var(--clab-hero-bg,var(--clab-primary));border-radius:0 0 50% 50% / 0 0 100% 100%}
.clab-hero__title{margin:0;color:inherit;font-size:clamp(26px,4vw,40px);font-weight:700;line-height:1.2}

/* Grid */
.clab-grid{display:grid;grid-template-columns:repeat(var(--clab-cols,3),minmax(0,1fr));gap:var(--clab-gap,30px);max-width:1200px;margin:0 auto;padding:10px 0}
.clab-card{display:flex;flex-direction:column;text-align:center;box-sizing:border-box}
.clab-card__img{position:relative;display:block;line-height:0;overflow:hidden}
.clab-card__img img,.clab-img{display:block;width:100%;height:auto;max-width:100%}
.clab-badge{position:absolute;top:12px;left:12px;background:var(--clab-accent);color:#fff;font-size:12px;font-weight:700;line-height:1;padding:6px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}
.clab-card__title{margin:18px 0 8px;font-size:20px;line-height:1.35;font-weight:700}
.clab-card__title a{color:inherit;text-decoration:none}
.clab-card__price{margin:0 0 8px;font-weight:700;color:var(--clab-accent)}
.clab-card__price del{color:#888;font-weight:400;margin-left:6px}
.clab-card__excerpt{margin:0 0 16px;color:#444;line-height:1.6}
.clab-card__action{margin-top:auto;padding-top:6px}
.clab-empty{text-align:center;color:#777}

/* Buttons */
.clab-btn{display:inline-block;background:var(--clab-accent);color:#fff!important;padding:12px 30px;border-radius:999px;text-decoration:none!important;font-weight:600;line-height:1.2;transition:filter .2s,transform .2s}
.clab-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.clab-btn--alt{background:var(--clab-primary)}

/* Pagination */
.clab-pagination{margin:30px 0;text-align:center}
.clab-pagination .page-numbers{display:inline-block;margin:0 3px;padding:8px 14px;border:1px solid #ddd;border-radius:6px;text-decoration:none;color:var(--clab-primary)}
.clab-pagination .page-numbers.current{background:var(--clab-primary);border-color:var(--clab-primary);color:#fff}

/* Detail */
.clab-detail{max-width:1100px;margin:0 auto;padding:20px;box-sizing:border-box}
.clab-block{display:flex;gap:40px;align-items:flex-start;margin-bottom:50px}
.clab-block__media,.clab-block__text{flex:1 1 0;min-width:0}
.clab-layout--image-right{flex-direction:row-reverse}
.clab-layout--image-top,.clab-layout--text-top{flex-direction:column}
.clab-layout--text-top{flex-direction:column-reverse}
.clab-layout--image-top>*,.clab-layout--text-top>*{flex:none;width:100%}
.clab-layout--image-only,.clab-layout--text-only{display:block}
.clab-layout--image-only .clab-block__media{max-width:900px;margin:0 auto}
.clab-layout--text-only .clab-block__text{max-width:900px;margin:0 auto}

.clab-detail__headline{margin:0 0 14px;color:var(--clab-primary);font-size:26px;line-height:1.35;font-weight:700}
.clab-detail__highlight{margin:0 0 14px;color:var(--clab-primary);font-size:19px;font-weight:700;line-height:1.5}
.clab-detail__price{margin:0 0 14px;font-size:18px}
.clab-detail__price strong{color:var(--clab-accent)}
.clab-detail__offer{margin:0 0 6px;color:var(--clab-accent);font-size:18px;font-weight:700}
.clab-detail__valid{margin:10px 0 0;color:#666;font-size:14px}
.clab-detail__content>*:first-child{margin-top:0}
.clab-block__title{margin:0 0 12px;color:var(--clab-primary);font-size:20px;font-weight:700;line-height:1.35}
.clab-block__text p{margin:0 0 .8em}
.clab-list{margin:0 0 1em;padding-left:1.2em}
.clab-list li{margin:0 0 .5em}
.clab-detail__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:40px 0 20px}

/* Responsive */
@media(max-width:1024px){
	.clab-block{gap:28px}
}
@media(max-width:767px){
	.clab-grid{--clab-cols:1}
	.clab-layout--image-left,.clab-layout--image-right{flex-direction:column}
	.clab-layout--image-left>*,.clab-layout--image-right>*{flex:none;width:100%}
	.clab-block{margin-bottom:36px}
}
@media(min-width:768px) and (max-width:1024px){
	.clab-grid{--clab-cols:2}
}