/* === CLEVER VILLA FRONTEND CSS v1.4 === */

/* === TAGS FIX — must be inline badges, not blocks === */
.cv-tags{display:inline-flex;flex-wrap:wrap;gap:4px;position:absolute;bottom:8px;left:8px;z-index:2;max-width:calc(100% - 16px)}
.cv-tag-badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600;text-decoration:none;line-height:1.4;white-space:nowrap;backdrop-filter:blur(4px)}
.cv-new-badge{position:absolute;top:8px;left:8px;background:#2196F3;color:#fff;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600;z-index:2}

/* === HERO === */
.cv-hero{min-height:520px;background-size:cover;background-position:center;position:relative}
.cv-hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,40,.75) 0%,rgba(21,101,192,.6) 100%);display:flex;align-items:center;justify-content:center;text-align:center}
.cv-hero-title{color:#fff;font-size:46px;font-weight:700;margin:0 0 12px;text-shadow:0 2px 20px rgba(0,0,0,.3)}
.cv-hero-sub{color:rgba(255,255,255,.85);font-size:17px;margin-bottom:32px}

/* === SEARCH === */
.cv-search-wrap{position:relative;max-width:560px;margin:0 auto}
.cv-search-box{display:flex;align-items:center;background:#fff;border-radius:50px;padding:4px;box-shadow:0 4px 24px rgba(0,0,0,.15);overflow:hidden}
.cv-search-icon{padding:0 6px 0 16px;font-size:18px;opacity:.5}
.cv-search-input{flex:1;padding:12px 8px;border:none;font-size:15px;outline:none;background:transparent;font-family:inherit}
.cv-search-btn{background:#1565C0;color:#fff;border:none;padding:10px 24px;border-radius:50px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .2s}
.cv-search-btn:hover{background:#0d47a1}
.cv-search-results{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.15);margin-top:6px;display:none;z-index:100;overflow:hidden}
.cv-search-results.active{display:block}
.cv-search-item{display:flex;align-items:center;gap:12px;padding:10px 16px;text-decoration:none;color:#1a1a2e;transition:background .15s}
.cv-search-item:hover{background:#f5f7fa}
.cv-search-item img{width:44px;height:44px;border-radius:8px;object-fit:cover}
.cv-search-item-text{flex:1}
.cv-search-item-text strong{display:block;font-size:14px}
.cv-search-item-text small{color:#6b7280;font-size:12px}
.cv-search-noimg{width:44px;height:44px;border-radius:8px;background:#E6F1FB;display:flex;align-items:center;justify-content:center;font-size:18px}

/* Hero tag filter buttons */
.cv-hero-tags{display:flex;gap:8px;justify-content:center;margin-top:20px;flex-wrap:wrap}
.cv-hero-tag{background:rgba(255,255,255,.15);color:#fff;padding:7px 18px;border-radius:50px;font-size:13px;font-weight:500;text-decoration:none;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);transition:all .2s}
.cv-hero-tag:hover{background:rgba(255,255,255,.3)}

/* === CATEGORY CARDS === */
.cv-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.cv-cat-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:32px 20px;text-align:center;text-decoration:none;color:#1a1a2e;transition:all .25s;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.cv-cat-card:hover{border-color:#2196F3;box-shadow:0 8px 24px rgba(33,150,243,.12);transform:translateY(-3px)}
.cv-cat-icon{font-size:40px;display:block;margin-bottom:14px}
.cv-cat-card h3{font-size:16px;font-weight:600;margin:0 0 4px}
.cv-cat-count{font-size:13px;color:#6b7280}

/* === CAROUSELS === */
.cv-carousel{overflow:hidden;position:relative}
.cv-carousel-track{display:flex;gap:16px;animation:cvScrollLeft 35s linear infinite}
.cv-dev-carousel .cv-carousel-track{animation:cvScrollRight 35s linear infinite}
@keyframes cvScrollLeft{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
@keyframes cvScrollRight{0%{transform:translateX(-50%)}100%{transform:translateX(0)}}
.cv-carousel:hover .cv-carousel-track{animation-play-state:paused}

.cv-area-item{flex:0 0 240px;position:relative;border-radius:14px;overflow:hidden;height:170px;display:block;text-decoration:none}
.cv-area-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.cv-area-item:hover img{transform:scale(1.05)}
.cv-area-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#E6F1FB,#1565C0)}
.cv-area-overlay{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff}
.cv-area-name{font-weight:600;font-size:15px;display:block}
.cv-area-count{font-size:12px;opacity:.8}

.cv-dev-item{flex:0 0 170px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:22px 16px;text-align:center;text-decoration:none;color:#1a1a2e;display:flex;flex-direction:column;align-items:center;gap:6px;box-shadow:0 1px 4px rgba(0,0,0,.04);transition:box-shadow .2s}
.cv-dev-item:hover{box-shadow:0 6px 20px rgba(0,0,0,.08)}
.cv-dev-item img{width:80px;height:50px;object-fit:contain}
.cv-dev-initials{width:56px;height:56px;border-radius:50%;background:#E6F1FB;color:#1565C0;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}
.cv-dev-name{font-size:13px;font-weight:600}
.cv-dev-years{font-size:11px;color:#6b7280}

/* === TAG SLIDER === */
.cv-tag-slider{width:100%}
.cv-tag-buttons{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.cv-tag-btn{padding:8px 22px;border:2px solid #e5e7eb;background:#fff;border-radius:50px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}
.cv-tag-btn.active,.cv-tag-btn:hover{background:#1565C0;color:#fff;border-color:#1565C0}
.cv-tag-slider-wrap{position:relative;border-radius:16px;overflow:hidden}
.cv-tag-slides{display:flex;transition:transform .5s ease}
.cv-tag-slide{min-width:100%;height:440px;background-size:cover;background-position:center;position:relative;flex-shrink:0}
.cv-tag-slide-overlay{position:absolute;inset:0;background:linear-gradient(to right,rgba(0,0,0,.7) 35%,transparent 70%);display:flex;align-items:flex-end;padding:44px}
.cv-tag-slide-content{color:#fff;max-width:520px}
.cv-type-badge{display:inline-block;background:rgba(255,255,255,.2);padding:4px 14px;border-radius:20px;font-size:11px;font-weight:600;margin-bottom:8px;backdrop-filter:blur(4px)}
.cv-tag-slide-content h2{font-size:30px;font-weight:700;margin:0 0 6px}
.cv-tag-slide-content h2 a{color:#fff;text-decoration:none}
.cv-slide-meta{font-size:14px;opacity:.8;margin-bottom:12px}
.cv-slide-details{display:flex;gap:16px;flex-wrap:wrap}
.cv-slide-details span{font-size:14px;font-weight:500}
.cv-slide-score{padding:3px 10px;border-radius:20px}
.cv-sc-green{background:rgba(29,158,117,.2);color:#1D9E75}
.cv-sc-yellow{background:rgba(239,159,39,.2);color:#EF9F27}
.cv-sc-red{background:rgba(226,75,74,.2);color:#E24B4A}
.cv-slider-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.cv-slider-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.4);cursor:pointer;border:none;padding:0;transition:background .2s}
.cv-slider-dot.active{background:#fff;width:24px;border-radius:4px}

/* === PROJECT CARDS === */
.cv-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cv-pcard{background:#fff;border-radius:14px;overflow:hidden;border:1px solid #e5e7eb;transition:all .25s;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.cv-pcard:hover{box-shadow:0 8px 28px rgba(0,0,0,.1);transform:translateY(-2px)}
.cv-pcard-img{display:block;position:relative;height:200px;overflow:hidden;background:#E6F1FB}
.cv-pcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.cv-pcard:hover .cv-pcard-img img{transform:scale(1.04)}
.cv-noimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:48px;background:#E6F1FB}
.cv-pcard-body{padding:16px 18px}
.cv-pcard-body h3{font-size:16px;font-weight:600;margin:0 0 6px}
.cv-pcard-body h3 a{color:#1a1a2e;text-decoration:none}
.cv-pcard-meta{font-size:13px;color:#6b7280;margin-bottom:10px}
.cv-pcard-meta a{color:#2196F3;text-decoration:none}
.cv-pcard-foot{display:flex;flex-wrap:wrap;gap:8px 12px;font-size:12px;color:#6b7280;border-top:1px solid #f0f0f0;padding-top:10px}
.cv-pcard-foot span{display:inline-flex;align-items:center;gap:3px}

/* === SCORE SECTION — FIX: buttons always clickable === */
.cv-score-box{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:28px;text-align:center}
.cv-score-box h3{font-size:18px;font-weight:700;margin:0 0 4px}
.cv-score-box>p{font-size:13px;color:#6b7280;margin:0 0 20px}
.cv-score-buttons{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;position:relative;z-index:2}
.cv-score-result{margin-top:24px;display:none}
.cv-score-result.visible{display:block}
.cv-score-overall{font-size:56px;font-weight:700;margin:8px 0}
.cv-score-overall.cv-sc-green{color:#1D9E75}
.cv-score-overall.cv-sc-yellow{color:#EF9F27}
.cv-score-overall.cv-sc-red{color:#E24B4A}
.cv-score-levels{display:flex;flex-direction:column;gap:12px;margin-top:20px;text-align:left}
.cv-score-level{display:flex;flex-direction:column;gap:4px}
.cv-score-level-header{display:flex;justify-content:space-between;font-size:13px;font-weight:500}
.cv-score-bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}
.cv-score-bar-fill{height:100%;border-radius:4px;transition:width .6s ease}

/* Score circle (project page sidebar) */
.cv-score-circle{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;position:relative}
.cv-score-circle::before{content:'';position:absolute;inset:0;border-radius:50%;border:6px solid #e5e7eb}
.cv-score-circle-val{font-size:32px;font-weight:700;line-height:1}
.cv-score-circle-val small{font-size:16px;font-weight:400;color:#6b7280}

/* === PRICING TABLE === */
.cv-pricing-table{width:100%;border-collapse:collapse;border-radius:10px;overflow:hidden}
.cv-pricing-table th{background:#1565C0;color:#fff;padding:10px 14px;font-size:13px;font-weight:600;text-align:left}
.cv-pricing-table td{padding:10px 14px;font-size:14px;border-bottom:1px solid #e5e7eb}
.cv-pricing-table tr:nth-child(even) td{background:#f9fafb}

/* === AMENITY GRID — icon cards === */
.cv-amenity-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.cv-amenity-card{background:#f5f7fa;border:1px solid #eee;border-radius:10px;padding:14px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:500;text-align:center}
.cv-amenity-card span:first-child{font-size:24px}

/* === FEATURE PILLS === */
.cv-fab-section{margin-bottom:20px}
.cv-fab-section h4{font-size:15px;font-weight:600;margin:0 0 10px;color:#1565C0}
.cv-fab-grid{display:flex;flex-wrap:wrap;gap:8px}
.cv-fab-pill{background:#E6F1FB;color:#1565C0;padding:6px 14px;border-radius:8px;font-size:13px;display:flex;align-items:center;gap:4px}
.cv-fab-pill::before{content:'✓';font-weight:700}

/* === LANDMARK CARDS === */
.cv-landmarks-group{margin-bottom:20px}
.cv-landmarks-group h4{display:flex;align-items:center;gap:6px;font-size:15px;font-weight:600;margin:0 0 10px}
.cv-landmark-list{display:flex;flex-direction:column;gap:6px}
.cv-landmark-item{display:flex;justify-content:space-between;padding:8px 12px;background:#f9fafb;border-radius:8px;font-size:13px}
.cv-landmark-dist{color:#6b7280;font-weight:500}

/* === ENQUIRY FORM === */
.cv-enquiry-form{display:flex;flex-direction:column;gap:12px;max-width:480px}
.cv-form-heading{font-size:18px;font-weight:700;margin:0 0 4px;color:#1a1a2e}
.cv-enquiry-form input,.cv-enquiry-form select,.cv-enquiry-form textarea{padding:12px 16px;border:1px solid #e5e7eb;border-radius:10px;font-size:14px;font-family:inherit;outline:none;transition:border .2s;background:#fff}
.cv-enquiry-form input:focus,.cv-enquiry-form select:focus,.cv-enquiry-form textarea:focus{border-color:#2196F3;box-shadow:0 0 0 3px rgba(33,150,243,.1)}
.cv-checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}
.cv-checkbox-label input{width:auto}
.cv-form-msg{font-size:13px;font-weight:500}
.cv-form-msg.success{color:#1D9E75}
.cv-form-msg.error{color:#E24B4A}

/* Sidebar form (project page) */
.cv-sidebar-form{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:24px;box-shadow:0 2px 12px rgba(0,0,0,.06)}
.cv-sidebar-form .cv-enquiry-form{max-width:100%}

/* === BUTTONS === */
.cv-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 24px;border-radius:10px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;border:none;transition:all .2s;text-decoration:none}
.cv-btn-primary{background:#1565C0;color:#fff}
.cv-btn-primary:hover{background:#0d47a1;box-shadow:0 4px 12px rgba(21,101,192,.3)}
.cv-btn-outline{background:transparent;color:#1565C0;border:2px solid #1565C0}
.cv-btn-outline:hover{background:#1565C0;color:#fff}
.cv-btn-wa{background:#25D366;color:#fff}
.cv-btn-wa:hover{background:#1da851}
.cv-btn-call{background:#1565C0;color:#fff}
.cv-btn-call:hover{background:#0d47a1}
.cv-btn-ghost{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(4px)}

/* === POPUP MODALS === */
.cv-popup-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:9999;backdrop-filter:blur(3px)}
.cv-popup-overlay.active{display:flex}
.cv-popup{background:#fff;border-radius:18px;padding:32px;max-width:420px;width:92%;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.cv-popup-close{position:absolute;top:14px;right:18px;background:none;border:none;font-size:22px;cursor:pointer;color:#6b7280;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .15s}
.cv-popup-close:hover{background:#f0f0f0}
.cv-popup h3{font-size:18px;font-weight:700;margin:0 0 16px}
.cv-popup input,.cv-popup select{width:100%;padding:11px 14px;border:1px solid #e5e7eb;border-radius:10px;font-size:14px;margin-bottom:10px;font-family:inherit;outline:none;box-sizing:border-box}
.cv-popup input:focus,.cv-popup select:focus{border-color:#2196F3}
.cv-popup .cv-btn{width:100%}

/* === DETAIL CARDS === */
.cv-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
.cv-detail-card{background:#f5f7fa;border-radius:10px;padding:16px;text-align:center;border:1px solid #eee}
.cv-detail-card .cv-detail-label{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}
.cv-detail-card .cv-detail-value{font-size:16px;font-weight:700;color:#1a1a2e;margin-top:4px}

/* === GALLERY + LIGHTBOX === */
.cv-gallery-grid{display:grid;grid-template-columns:2fr 1fr;gap:6px;border-radius:14px;overflow:hidden;max-height:440px}
.cv-gallery-main{grid-row:1/3;cursor:pointer;overflow:hidden}
.cv-gallery-main img{width:100%;height:100%;object-fit:cover}
.cv-gallery-side{cursor:pointer;overflow:hidden;position:relative}
.cv-gallery-side img{width:100%;height:100%;object-fit:cover}
.cv-gallery-more{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;font-weight:700}
.cv-gallery-viewall{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.9);color:#1a1a2e;padding:8px 20px;border-radius:50px;font-size:13px;font-weight:600;cursor:pointer;border:none;backdrop-filter:blur(4px);z-index:3}
.cv-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center;z-index:10000}
.cv-lightbox.active{display:flex}
.cv-lightbox img{max-width:90%;max-height:85vh;border-radius:6px}
.cv-lightbox-close{position:absolute;top:16px;right:20px;color:#fff;font-size:28px;cursor:pointer;background:rgba(255,255,255,.1);border:none;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2}
.cv-lightbox-prev,.cv-lightbox-next{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:28px;cursor:pointer;background:rgba(255,255,255,.1);border:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:2;transition:background .15s}
.cv-lightbox-prev:hover,.cv-lightbox-next:hover{background:rgba(255,255,255,.2)}
.cv-lightbox-prev{left:16px}
.cv-lightbox-next{right:16px}
.cv-lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-size:14px}

/* === MAP === */
.cv-map-embed{border-radius:14px;overflow:hidden;margin-top:8px}
.cv-map-embed iframe{width:100%;height:400px;border:none}

/* === SHARE === */
.cv-share{display:flex;gap:8px;flex-wrap:wrap}
.cv-share-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;color:#fff;text-decoration:none;cursor:pointer;border:none;transition:opacity .2s}
.cv-share-btn:hover{opacity:.85}
.cv-share-fb{background:#1877F2}.cv-share-tw{background:#1DA1F2}.cv-share-wa{background:#25D366}.cv-share-li{background:#0A66C2}

/* === BREADCRUMB === */
.cv-breadcrumb{font-size:13px;color:#6b7280;margin-bottom:16px;display:flex;flex-wrap:wrap;gap:4px}
.cv-breadcrumb a{color:#2196F3;text-decoration:none}

/* === ARCHIVE === */
.cv-archive-header{text-align:center;padding:44px 20px;background:linear-gradient(135deg,#0a1628,#1565C0);color:#fff;border-radius:16px;margin-bottom:32px}
.cv-archive-header h1{font-size:28px;font-weight:700;margin:0 0 6px}
.cv-archive-header p{font-size:14px;opacity:.85;margin:0}

/* === TERM PROFILE === */
.cv-term-profile{display:flex;gap:20px;align-items:center;padding:24px;background:#fff;border:1px solid #e5e7eb;border-radius:14px;margin-bottom:24px;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.cv-term-profile img{width:80px;height:80px;object-fit:contain;border-radius:10px}
.cv-term-profile-info h2{font-size:20px;font-weight:700;margin:0 0 4px}
.cv-term-profile-info p{font-size:13px;color:#6b7280;margin:0}

/* === FILTER BAR === */
.cv-filter-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.cv-filter-bar select{padding:9px 14px;border:1px solid #e5e7eb;border-radius:10px;font-size:14px;font-family:inherit;background:#fff}

/* === CONTACT BLOCK === */
.cv-contact-block{display:flex;flex-direction:column;gap:16px}
.cv-contact-row{display:flex;align-items:flex-start;gap:12px;font-size:14px}
.cv-contact-icon{font-size:20px;width:28px;text-align:center;flex-shrink:0;margin-top:2px}
.cv-contact-row a{color:#2196F3;text-decoration:none}
.cv-contact-row strong{display:block;font-size:13px;color:#6b7280;font-weight:500;margin-bottom:2px}

/* === TOOLS === */
.cv-tools{background:#fff;border:1px solid #e5e7eb;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.04)}
.cv-tool-tabs{display:flex;border-bottom:1px solid #e5e7eb}
.cv-tool-tab{flex:1;padding:13px;background:none;border:none;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit;color:#6b7280;transition:all .2s}
.cv-tool-tab.active{color:#1565C0;border-bottom:2px solid #1565C0;background:#f5f7fa}
.cv-tool-panel{padding:24px;display:none}
.cv-tool-panel.active{display:block}
.cv-tool-row{margin-bottom:16px}
.cv-tool-row label{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}
.cv-tool-row input[type=range]{width:100%;accent-color:#1565C0}
.cv-tool-row input[type=number]{width:100%;padding:10px 14px;border:1px solid #e5e7eb;border-radius:10px;font-size:14px;font-family:inherit}
.cv-tool-result{background:#f5f7fa;border-radius:10px;padding:20px;text-align:center}
.cv-tool-result-main span{font-size:13px;color:#6b7280;display:block}
.cv-tool-result-main strong{font-size:28px;color:#1565C0;display:block;margin-top:4px}
.cv-tool-result-sub{display:flex;justify-content:center;gap:24px;margin-top:12px;font-size:13px;color:#6b7280}
.cv-tool-result-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #e5e7eb;font-size:14px}
.cv-tool-result-row:last-child{border:none}
.cv-tool-result-total{font-weight:700;font-size:16px;border-top:2px solid #1565C0;margin-top:4px;padding-top:12px}

/* === STICKY TAB BAR === */
.cv-tab-bar{display:flex;gap:0;border-bottom:1px solid #e5e7eb;background:#fff;overflow-x:auto;-webkit-overflow-scrolling:touch}
.cv-tab-bar.sticky{position:sticky;top:0;z-index:90;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.cv-tab-link{padding:12px 18px;font-size:13px;font-weight:500;color:#6b7280;text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;transition:all .2s}
.cv-tab-link.active{color:#1565C0;border-bottom-color:#1565C0}

/* === FLOATING BUTTONS === */
.cv-float-btns{position:fixed;bottom:90px;right:16px;display:flex;flex-direction:column;gap:10px;z-index:900}
.cv-float-btn{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.2);text-decoration:none;border:none;cursor:pointer;transition:transform .2s}
.cv-float-btn:hover{transform:scale(1.08)}
.cv-float-wa{background:#25D366}
.cv-float-call{background:#1565C0}
.cv-float-btn svg{width:24px;height:24px;fill:#fff}

.cv-btt{position:fixed;bottom:90px;right:76px;width:40px;height:40px;border-radius:50%;background:#1565C0;color:#fff;display:none;align-items:center;justify-content:center;font-size:18px;cursor:pointer;border:none;box-shadow:0 2px 8px rgba(0,0,0,.15);z-index:900}
.cv-btt.show{display:flex}

/* === MOBILE BOTTOM NAV === */
.cv-mobile-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;z-index:950;padding:6px 0 env(safe-area-inset-bottom,6px)}
.cv-mobile-nav-inner{display:flex;justify-content:space-around}
.cv-mobile-nav a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10px;color:#6b7280;text-decoration:none;padding:4px 8px}
.cv-mobile-nav a span:first-child{font-size:20px}

.cv-mobile-sticky{display:none;position:fixed;bottom:56px;left:0;right:0;background:#fff;border-top:1px solid #e5e7eb;padding:8px 16px;z-index:940;gap:8px}
.cv-mobile-sticky .cv-btn{flex:1;padding:10px;font-size:13px}

/* === PAGE HEADER === */
.cv-page-header{background:linear-gradient(135deg,#0a1628,#1565C0);color:#fff;padding:48px 20px;text-align:center;border-radius:16px;margin-bottom:32px}
.cv-page-header h1{font-size:28px;font-weight:700;margin:0}

/* === ACTION BUTTONS === */
.cv-action-btns{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}

/* === RATING CARDS === */
.cv-rating-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.cv-rating-card{padding:14px;border-radius:10px;text-align:center}
.cv-rating-card .label{font-size:12px;color:#6b7280;margin-bottom:4px}
.cv-rating-card .value{font-size:16px;font-weight:700}
.cv-rating-excellent{background:#E1F5EE;color:#085041}
.cv-rating-good{background:#E6F1FB;color:#0C447C}
.cv-rating-average{background:#FAEEDA;color:#633806}
.cv-rating-poor{background:#FCEBEB;color:#791F1F}

.cv-load-more{text-align:center;margin-top:32px}
.cv-related{margin-top:40px}
.cv-related h3{font-size:20px;font-weight:700;margin-bottom:16px}
.cv-two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.cv-proj-section{margin-bottom:32px;scroll-margin-top:80px}

/* === TWO COLUMN PROJECT LAYOUT === */
.cv-proj-layout{display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start}
.cv-proj-sidebar{position:sticky;top:80px;display:flex;flex-direction:column;gap:20px}

/* === GET IN TOUCH SECTION (dark bg like reference) === */
.cv-cta-section{background:linear-gradient(135deg,#0a1628,#1a3a5c);border-radius:20px;padding:48px;color:#fff}
.cv-cta-section h2{font-size:24px;font-weight:700;margin:0 0 6px}
.cv-cta-section p{font-size:14px;opacity:.8;margin:0 0 24px}
.cv-cta-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.cv-cta-contact .cv-contact-row{color:rgba(255,255,255,.85)}
.cv-cta-contact .cv-contact-row a{color:#90caf9}
.cv-cta-contact .cv-contact-row strong{color:rgba(255,255,255,.6)}
.cv-cta-form .cv-enquiry-form input,.cv-cta-form .cv-enquiry-form select,.cv-cta-form .cv-enquiry-form textarea{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);color:#fff}
.cv-cta-form .cv-enquiry-form input::placeholder,.cv-cta-form .cv-enquiry-form select,.cv-cta-form .cv-enquiry-form textarea::placeholder{color:rgba(255,255,255,.5)}

/* === HOMEPAGE POPUP === */
.cv-home-popup{position:fixed;bottom:24px;left:24px;background:#fff;border-radius:16px;padding:24px;max-width:340px;box-shadow:0 12px 40px rgba(0,0,0,.15);z-index:800;display:none;border:1px solid #e5e7eb}
.cv-home-popup.show{display:block}
.cv-home-popup-close{position:absolute;top:8px;right:12px;background:none;border:none;font-size:18px;cursor:pointer;color:#6b7280}
.cv-home-popup h4{font-size:16px;font-weight:700;margin:0 0 4px}
.cv-home-popup p{font-size:13px;color:#6b7280;margin:0 0 12px}

/* === RESPONSIVE === */
@media(max-width:1024px){
    .cv-project-grid{grid-template-columns:repeat(2,1fr)}
    .cv-two-col,.cv-cta-grid{grid-template-columns:1fr}
    .cv-proj-layout{grid-template-columns:1fr}
    .cv-proj-sidebar{position:static}
}
@media(max-width:768px){
    .cv-mobile-nav{display:block}
    .cv-mobile-sticky{display:flex}
    .cv-float-btns{bottom:140px}
    .cv-btt{bottom:140px;right:16px}
    .cv-hero-title{font-size:30px}
    .cv-hero{min-height:420px}
    .cv-cat-grid{grid-template-columns:repeat(2,1fr);gap:12px}
    .cv-project-grid{grid-template-columns:1fr}
    .cv-gallery-grid{grid-template-columns:1fr;max-height:none}
    .cv-gallery-main{grid-row:auto}
    .cv-tag-slide{height:320px}
    .cv-detail-grid{grid-template-columns:repeat(2,1fr)}
    .cv-term-profile{flex-direction:column;text-align:center}
    .cv-filter-bar{flex-direction:column}
    .cv-tab-link{padding:10px 12px;font-size:12px}
    .cv-tab-bar.sticky{top:0}
    .cv-home-popup{left:12px;right:12px;bottom:70px;max-width:none}
    body{padding-bottom:60px}
}
@media(max-width:480px){
    .cv-cat-grid{grid-template-columns:1fr 1fr}
    .cv-detail-grid{grid-template-columns:1fr 1fr}
    .cv-hero-title{font-size:26px}
    .cv-tag-slide{height:260px}
    .cv-tag-slide-content h2{font-size:20px}
    .cv-cta-section{padding:28px 20px}
}
