.undo-pp-shell{
    width:min(var(--undo-pp-container,1200px),calc(100% - 32px));
    margin:40px auto 72px;
}
.undo-pp-archive-header{margin-bottom:28px}
.undo-pp-archive-header h1,.undo-pp-single h1{margin:0 0 10px}
.undo-pp-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px;margin-bottom:18px}
.undo-pp-filters select,.undo-pp-reset{min-height:44px;border:1px solid #d7dbe2;border-radius:10px;background:#fff;padding:0 12px}
.undo-pp-reset{cursor:pointer}
.undo-pp-map{height:480px;border-radius:var(--undo-pp-radius,18px);overflow:hidden;border:1px solid #e3e6eb;background:#f5f6f7}
.undo-pp-results-meta{margin:16px 0;color:#5f6570}
.undo-pp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.undo-pp-card{border:1px solid #e4e6eb;border-radius:var(--undo-pp-radius,16px);overflow:hidden;background:#fff;box-shadow:0 8px 26px rgba(20,27,40,.06)}
.undo-pp-card[hidden]{display:none!important}
.undo-pp-card-image{display:block;position:relative;aspect-ratio:16/10;background:#eef0f3;overflow:hidden}
.undo-pp-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}
.undo-pp-card:hover .undo-pp-card-image img{transform:scale(1.03)}
.undo-pp-placeholder{display:block;width:100%;height:100%;background:linear-gradient(135deg,#eceff3,#dfe4ea)}
.undo-pp-status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;background:#edf2f7;color:#2f3a4a}
.undo-pp-card-image .undo-pp-status{position:absolute;top:12px;inset-inline-start:12px;background:rgba(255,255,255,.92)}
.undo-pp-status-completed{background:#e7f8ee;color:#166534}
.undo-pp-status-ongoing{background:#fff7db;color:#92400e}
.undo-pp-status-upcoming{background:#eaf0ff;color:#1d4ed8}
.undo-pp-card-body{padding:18px}
.undo-pp-card h3{font-size:20px;line-height:1.25;margin:0 0 10px}
.undo-pp-card h3 a{text-decoration:none;color:inherit}
.undo-pp-card-line{margin:6px 0;color:#616875;font-size:14px}
.undo-pp-tags{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}
.undo-pp-tags span{background:#f1f3f6;padding:6px 9px;border-radius:999px;font-size:12px}
.undo-pp-view-project,.undo-pp-popup a{font-weight:700;text-decoration:none;color:var(--undo-pp-primary,#2563eb)}
.undo-pp-empty{padding:28px;text-align:center;border:1px dashed #cfd4dc;border-radius:var(--undo-pp-radius,14px)}
.undo-pp-popup{line-height:1.5;min-width:190px}
.undo-pp-popup strong{display:block;font-size:15px;margin-bottom:6px}
.undo-pp-popup a{display:inline-block;margin-top:8px}

.undo-pp-single-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,var(--undo-pp-hero-image-width,55%));gap:34px;align-items:center;margin-bottom:30px}
.undo-pp-single-image img{width:100%;height:auto;border-radius:var(--undo-pp-radius,20px);display:block}
.undo-pp-single-hero-copy h1{font-size:clamp(28px,5vw,var(--undo-pp-title-size,64px));line-height:1.04;margin-top:12px}
.undo-pp-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0 44px}
.undo-pp-facts>div{border:1px solid #e4e6eb;border-radius:var(--undo-pp-radius,14px);padding:16px}
.undo-pp-facts span{display:block;font-size:12px;color:#6c7380;margin-bottom:6px}
.undo-pp-section{margin:42px 0}
.undo-pp-section h2{margin-bottom:16px}
.undo-pp-preline{white-space:pre-line}
.undo-pp-tags-large span{font-size:14px;padding:8px 12px}
.undo-pp-single-map{height:var(--undo-pp-map-height,420px)}

.undo-pp-gallery{display:grid;grid-template-columns:repeat(var(--undo-pp-gallery-columns,3),minmax(0,1fr));gap:12px}
.undo-pp-gallery>a,.undo-pp-gallery-item{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:var(--undo-pp-radius,14px);background:#f1f3f6}
.undo-pp-gallery-item>a{display:block;width:100%;height:100%}
.undo-pp-gallery img{width:100%;height:100%;object-fit:cover;display:block}

.undo-pp-arrow{display:inline-block}
[dir="rtl"] .undo-pp-arrow{transform:scaleX(-1)}

.undo-pp-used-products{display:grid;grid-template-columns:repeat(var(--undo-pp-product-columns,4),minmax(0,1fr));gap:16px}
.undo-pp-used-product{display:flex;flex-direction:column;gap:10px;text-decoration:none;border:1px solid rgba(0,0,0,.1);border-radius:var(--undo-pp-radius,12px);padding:12px;background:#fff;transition:transform .18s ease,box-shadow .18s ease;color:inherit}
.undo-pp-used-product:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
.undo-pp-used-product-image img{display:block;width:100%;height:auto;border-radius:max(0px,calc(var(--undo-pp-radius,12px) - 4px))}
.undo-pp-used-product-name{font-weight:600;color:inherit}
.undo-pp-used-product-price{font-size:.9em}

.undo-pp-component{box-sizing:border-box}
.undo-pp-sc-featured img{display:block;max-width:100%;height:auto;border-radius:var(--undo-pp-radius,16px)}
.undo-pp-term-list{margin:0;padding-inline-start:1.2em}
.undo-pp-tags-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.undo-pp-tags-grid span{display:block}
.undo-pp-shortcode-map{width:100%}

@media(max-width:900px){
    .undo-pp-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
    .undo-pp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .undo-pp-single-hero{grid-template-columns:1fr}
    .undo-pp-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
    .undo-pp-used-products{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
    .undo-pp-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
    .undo-pp-filters,.undo-pp-grid,.undo-pp-facts{grid-template-columns:1fr}
    .undo-pp-map{height:380px}
    .undo-pp-single-map,.undo-pp-shortcode-map{height:var(--undo-pp-map-height,380px)}
    .undo-pp-shell{width:min(100% - 20px,var(--undo-pp-container,1200px))}
    .undo-pp-used-products{grid-template-columns:1fr}
}

/* Elementor integration */
.undo-pp-elementor-placeholder{padding:14px 16px;border:1px dashed #aab2bd;border-radius:8px;background:#f7f8fa;color:#50575e;font-size:13px}
.undo-pp-elementor-prefix,.undo-pp-elementor-suffix{display:inline-block}
.undo-pp-elementor-text>:first-child{margin-top:0}
.undo-pp-elementor-text>:last-child{margin-bottom:0}
.undo-pp-term-list{display:flex;flex-direction:column}

/* Elementor v0.6 styling helpers */
.undo-pp-elementor-info{display:flex;align-items:center;flex-wrap:wrap}
.undo-pp-elementor-featured,.undo-pp-elementor-gallery,.undo-pp-elementor-map,.undo-pp-elementor-wc-products,.undo-pp-elementor-taxonomy,.undo-pp-elementor-text{box-sizing:border-box}
.undo-pp-elementor-featured img,.undo-pp-gallery-item img{transition:opacity .25s ease,transform .25s ease}
.undo-pp-gallery-item{overflow:hidden}

/* Elementor Pro widgets */
.undo-pp-pro-hero{position:relative;display:flex;flex-direction:column;background-repeat:no-repeat;background-size:cover;background-position:center;overflow:hidden}
.undo-pp-pro-hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none}
.undo-pp-pro-hero-content{position:relative;z-index:1}
.undo-pp-pro-hero-title{margin-top:0}
.undo-pp-pro-hero-meta{display:flex;align-items:center;flex-wrap:wrap}
.undo-pp-pro-hero-meta>span,.undo-pp-pro-hero-meta>.undo-pp-component{display:inline-flex;align-items:center}
.undo-pp-pro-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.undo-pp-pro-meta-card{box-sizing:border-box;min-width:0}
.undo-pp-pro-meta-label{font-weight:600}
.undo-pp-pro-meta-value .undo-pp-term-inline{display:inline}

/* Elementor icon-library integration (v0.7.4). */
.undo-pp-elementor-icon,.undo-pp-pro-meta-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;line-height:1}
.undo-pp-elementor-icon i,.undo-pp-pro-meta-icon i{line-height:1}
.undo-pp-elementor-icon svg,.undo-pp-pro-meta-icon svg{display:block;width:1em;height:1em;fill:currentColor}

/* v0.7.6 Elementor structural refinements. Visual appearance remains controlled by Elementor. */
.undo-pp-pro-meta-contractor{display:inline-flex;align-items:center;flex-wrap:wrap}
.undo-pp-pro-meta-contractor-main{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.25em}
.undo-pp-pro-meta-contractor-label--above{flex-basis:100%;width:100%;display:block}
.undo-pp-pro-status-value{display:inline}
.undo-pp-pro-meta-label-wrap,.undo-pp-pro-meta-value-wrap{display:flex;align-items:center}
.undo-pp-pro-meta-label,.undo-pp-pro-meta-value{display:inline-flex;align-items:center}
.undo-pp-pro-meta-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.undo-pp-pro-meta-icon svg{width:1em;height:1em;display:block}

/* Elementor Portfolio Builder (v0.8.0). */
.undo-pp-card-title{font-size:20px;line-height:1.25;margin:0 0 10px}
.undo-pp-card-title a{text-decoration:none;color:inherit}
.undo-pp-card-location,.undo-pp-card-contractor{display:flex;align-items:center;flex-wrap:wrap;gap:.35em}
.undo-pp-card-location-icon,.undo-pp-card-contractor-icon,.undo-pp-card-button-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;line-height:1}
.undo-pp-card-location-icon svg,.undo-pp-card-contractor-icon svg,.undo-pp-card-button-icon svg{display:block;width:1em;height:1em;fill:currentColor}
.undo-pp-card-status-body{margin-bottom:10px}
.undo-pp-view-project{display:inline-flex;align-items:center;gap:.4em}
.undo-pp-elementor-portfolio .undo-pp-portfolio{width:100%}
.undo-pp-elementor-portfolio .undo-pp-filters{align-items:stretch}
.undo-pp-elementor-portfolio .undo-pp-filter,.undo-pp-elementor-portfolio .undo-pp-reset{width:100%}
.undo-pp-elementor-portfolio .undo-pp-card{min-width:0}
.undo-pp-elementor-portfolio .undo-pp-card-body{box-sizing:border-box}

/* Category-based portfolio map markers (v0.9.0). */
.undo-pp-category-marker-wrap{background:transparent!important;border:0!important}
.undo-pp-category-marker{--undo-pp-marker-color:#2563eb;position:relative;display:flex;width:38px;height:38px;align-items:center;justify-content:center;background:var(--undo-pp-marker-color);border:2px solid #fff;border-radius:50% 50% 50% 0;box-shadow:0 5px 14px rgba(15,23,42,.28);transform:rotate(-45deg);box-sizing:border-box}
.undo-pp-category-marker__inner{display:flex;width:25px;height:25px;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;background:#fff;transform:rotate(45deg);box-sizing:border-box}
.undo-pp-category-marker__image{display:block;width:18px;height:18px;object-fit:contain}
.undo-pp-category-marker__dot{display:block;width:8px;height:8px;border-radius:50%;background:var(--undo-pp-marker-color)}

/* Website Portfolio Module (v0.11.0). */
.undo-pp-website-preview{box-sizing:border-box;overflow:hidden;background:#fff;border:1px solid #dfe3e8;border-radius:16px;box-shadow:0 16px 40px rgba(15,23,42,.10)}
.undo-pp-website-browser-bar{display:flex;align-items:center;gap:14px;min-height:48px;padding:10px 14px;background:#f2f4f7;border-bottom:1px solid #dfe3e8;box-sizing:border-box}
.undo-pp-browser-dots{display:inline-flex;gap:6px;flex:0 0 auto}.undo-pp-browser-dots i{display:block;width:10px;height:10px;border-radius:50%;background:#aab2bd}
.undo-pp-browser-address{display:block;min-width:0;flex:1;padding:7px 12px;border-radius:8px;background:#fff;color:#667085;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.undo-pp-website-viewport{position:relative;width:100%;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;background:#eef1f5}
.undo-pp-website-preview--no-manual .undo-pp-website-viewport{overflow-y:hidden}
.undo-pp-website-viewport img{display:block;width:100%;height:auto;max-width:none}
.undo-pp-website-preview-actions{display:flex;margin-top:18px}
.undo-pp-visit-website{display:inline-flex;align-items:center;justify-content:center;gap:.45em;text-decoration:none;padding:11px 18px;border-radius:9px;background:var(--undo-pp-primary,#2563eb);color:#fff;font-weight:700}
.undo-pp-visit-website:hover{color:#fff}
.undo-pp-visit-website-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.undo-pp-visit-website-icon svg{display:block;width:1em;height:1em;fill:currentColor}
.undo-pp-website-tech-tags,.undo-pp-website-info-tags{display:inline-flex;flex-wrap:wrap;gap:7px}.undo-pp-website-tech-tags>span,.undo-pp-website-info-tags>span{display:inline-flex;padding:6px 9px;border-radius:999px;background:#f1f3f6;font-size:.9em}
.undo-pp-device-screenshots{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.25fr) minmax(0,.75fr);gap:22px;align-items:end}
.undo-pp-device-shot{min-width:0;text-align:center}.undo-pp-device-frame{padding:10px;background:#17191c;border-radius:14px;box-shadow:0 12px 32px rgba(0,0,0,.14)}
.undo-pp-device-shot--tablet .undo-pp-device-frame{border-radius:18px}.undo-pp-device-shot--mobile .undo-pp-device-frame{border-radius:26px;padding:8px}
.undo-pp-device-screen{overflow:hidden;border-radius:8px;background:#fff}.undo-pp-device-shot--mobile .undo-pp-device-screen{border-radius:20px}
.undo-pp-device-screen img{display:block;width:100%;height:auto}.undo-pp-device-label{display:block;margin-top:9px;font-size:13px;color:#667085}
.undo-pp-elementor-website-info{display:flex;align-items:center;flex-wrap:wrap;gap:.4em}.undo-pp-website-info-label{display:inline-flex;margin-inline-end:.35em;font-weight:600}.undo-pp-website-info-label--above{flex-basis:100%;width:100%;display:block;margin:0 0 .3em}.undo-pp-website-info-value{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.35em}.undo-pp-website-info-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1}.undo-pp-website-info-icon svg{display:block;width:1em;height:1em;fill:currentColor}
.undo-pp-website-default-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.undo-pp-website-default-meta>div{padding:14px;border:1px solid #e4e6eb;border-radius:var(--undo-pp-radius,14px)}.undo-pp-website-default-meta span{display:block;font-size:12px;color:#6c7380;margin-bottom:5px}
@media(max-width:900px){.undo-pp-device-screenshots{grid-template-columns:1fr 1fr}.undo-pp-device-shot--desktop{grid-column:1/-1}.undo-pp-website-default-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.undo-pp-device-screenshots,.undo-pp-website-default-meta{grid-template-columns:1fr}.undo-pp-device-shot--desktop{grid-column:auto}}
