/* Titanas Portfolio — visual system inspired by the supplied industrial/construction mockup */
.tp-portfolio-wrap,.tp-single-project{--tp-yellow:#ffd400;--tp-ink:#171717;--tp-muted:#777;color:var(--tp-ink);font-family:inherit;width:100%;}
.tp-portfolio-wrap{padding:0 0 clamp(42px,6vw,86px);}
.tp-portfolio-hero{position:relative;isolation:isolate;overflow:hidden;min-height:440px;background:radial-gradient(ellipse at 78% 110%,#a9a9a9 0,#555 28%,transparent 55%),linear-gradient(110deg,#111 0%,#171717 57%,#292929 100%);color:#fff;padding:clamp(42px,6vw,78px) clamp(22px,6vw,82px) 30px;}
.tp-hero-grid{position:absolute;inset:0;z-index:-1;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:28px 28px;mask-image:linear-gradient(90deg,#000 0%,#000 72%,transparent 100%);}
.tp-hero-inner{max-width:1320px;margin:auto;min-height:320px;display:flex;align-items:center;position:relative;}
.tp-hero-copy{position:relative;z-index:2;max-width:650px;padding:12px 0 30px;}
.tp-portfolio-hero .tp-eyebrow{display:inline-block;border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.08);color:#eee;border-radius:30px;padding:8px 14px;font-size:9px;font-weight:800;letter-spacing:1.1px;}
.tp-kicker{margin:28px 0 10px!important;color:var(--tp-yellow)!important;font-size:11px!important;font-weight:800!important;letter-spacing:2.5px!important;text-transform:uppercase;}
.tp-hero-copy h2{margin:0!important;color:#fff!important;font-size:clamp(42px,6vw,76px)!important;line-height:.99!important;letter-spacing:-3px!important;font-weight:700!important;max-width:680px;}
.tp-hero-description{max-width:480px;color:#d0d0d0!important;font-size:14px!important;line-height:1.7!important;margin:22px 0 25px!important;}
.tp-hero-button{display:inline-flex;align-items:center;gap:20px;padding:14px 20px;background:var(--tp-yellow);color:#171717!important;text-decoration:none!important;font-size:10px;font-weight:900;letter-spacing:.7px;border-radius:2px;transition:transform .2s,background .2s;}
.tp-hero-button:hover{background:#fff;transform:translateY(-2px);}
.tp-hero-button span{font-size:17px;line-height:10px;}
.tp-hero-art{position:absolute;right:0;bottom:-1px;width:47%;height:100%;overflow:hidden;pointer-events:none;}
.tp-art-ring{position:absolute;width:min(32vw,380px);height:min(32vw,380px);right:10%;bottom:-18%;border:1px solid rgba(255,255,255,.24);border-radius:50%;box-shadow:0 0 0 24px rgba(255,255,255,.035),0 0 0 58px rgba(255,255,255,.025);}
.tp-art-block{position:absolute;display:block;transform:skewY(-18deg);background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.18);}
.tp-art-block-one{width:44%;height:64%;right:18%;bottom:-7%;}
.tp-art-block-two{width:27%;height:42%;right:0;bottom:-4%;background:linear-gradient(135deg,rgba(255,212,0,.26),rgba(255,212,0,.02));border-color:rgba(255,212,0,.35);}
.tp-art-caption{position:absolute;right:13%;bottom:24%;padding:13px 17px;background:rgba(255,255,255,.1);border-left:3px solid var(--tp-yellow);color:#eee;font-size:9px;line-height:1.8;letter-spacing:1px;backdrop-filter:blur(8px);}
.tp-art-caption b{font-size:13px;color:#fff;}
.tp-hero-bottom{max-width:1320px;margin:20px auto 0;padding-top:15px;border-top:1px solid rgba(255,255,255,.18);display:flex;justify-content:space-between;color:#bdbdbd;font-size:9px;letter-spacing:1.4px;font-weight:700;}
.tp-project-stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--tp-yellow);padding:18px clamp(20px,6vw,82px);gap:20px;}
.tp-project-stats>div{display:flex;align-items:baseline;gap:10px;justify-content:center;border-right:1px solid rgba(0,0,0,.17);}
.tp-project-stats>div:last-child{border:0;}.tp-project-stats strong{font-size:clamp(24px,3vw,34px);font-weight:800;letter-spacing:-1.5px;}.tp-project-stats span{font-size:9px;font-weight:900;letter-spacing:1px;}
.tp-project-section{max-width:1320px;margin:0 auto;padding:clamp(48px,6vw,82px) clamp(18px,4vw,46px) 0;}
.tp-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:30px;}
.tp-eyebrow-light{background:#f0f0f0;color:#333;border-radius:2px;padding:7px 11px;font-size:9px;letter-spacing:1.5px;font-weight:900;}
.tp-section-heading h3{font-size:clamp(28px,4vw,46px)!important;line-height:1.05!important;letter-spacing:-1.6px!important;margin:13px 0 0!important;color:#191919!important;font-weight:750!important;}
.tp-section-heading h3 span{color:#e0b900;}.tp-section-heading>p{max-width:390px;color:#777;font-size:13px;line-height:1.7;margin:0 0 3px;}
.tp-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 28px;padding-bottom:18px;border-bottom:1px solid #e8e8e8;}
.tp-filters button{display:inline-flex;align-items:center;gap:9px;border:1px solid #dedede;background:#fff;color:#444;border-radius:2px;padding:11px 15px;font:800 10px/1 inherit;letter-spacing:.3px;cursor:pointer;transition:all .2s;}
.tp-filters button span{font-size:9px;opacity:.65;}.tp-filters button:hover,.tp-filters button.is-active{background:#171717;border-color:#171717;color:#fff;box-shadow:inset 0 -3px 0 var(--tp-yellow);}
.tp-project-grid{display:grid;grid-template-columns:repeat(var(--tp-columns,3),minmax(0,1fr));gap:26px 22px;}
.tp-project-card{min-width:0;background:#fff;border:1px solid #e8e8e8;transition:transform .25s,box-shadow .25s;}.tp-project-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(0,0,0,.09);}.tp-project-card[hidden]{display:none!important;}
.tp-project-image{height:clamp(190px,22vw,285px);display:block;position:relative;overflow:hidden;background:linear-gradient(135deg,#343434,#aaa);text-decoration:none!important;}
.tp-project-image img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s;}.tp-project-card:hover .tp-project-image img{transform:scale(1.055);}
.tp-image-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06),transparent 45%,rgba(0,0,0,.55));}
.tp-image-placeholder{height:100%;display:grid;place-items:center;color:#ddd;font-size:10px;letter-spacing:2px;}
.tp-card-arrow{position:absolute;right:14px;top:14px;width:38px;height:38px;display:grid;place-items:center;background:var(--tp-yellow);color:#111;font-size:20px;transition:transform .2s;}.tp-project-card:hover .tp-card-arrow{transform:rotate(45deg);}
.tp-image-index{position:absolute;left:17px;bottom:14px;color:#fff;font-size:17px;font-weight:800;letter-spacing:1px;}.tp-image-index i{font-size:8px;font-style:normal;font-weight:700;letter-spacing:1.5px;color:#eee;margin-left:5px;}
.tp-project-copy{padding:20px 20px 18px;}.tp-project-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#888;font-size:10px;}.tp-status{display:inline-flex;align-items:center;gap:7px;padding:0;background:none;color:#555;font-size:9px;line-height:1;font-weight:900;text-transform:uppercase;letter-spacing:.8px;}.tp-status i{display:block;width:7px;height:7px;border-radius:50%;background:#888;}.tp-status-completed i{background:#21a45b;}.tp-status-in-progress i{background:#d6a900;}.tp-status-planning i{background:#4775ce;}.tp-status-on-hold i{background:#c94b4b;}
.tp-project-copy h4{font-size:22px!important;line-height:1.18!important;letter-spacing:-.6px!important;margin:15px 0 8px!important;font-weight:750!important;color:#171717!important;}.tp-project-copy h4 a{color:inherit!important;text-decoration:none!important;}.tp-project-copy>p{font-size:12px;line-height:1.75;color:#777;margin:0 0 19px;}
.tp-card-links{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #ededed;padding-top:15px;}.tp-text-link,.tp-live-link{font-size:9px;font-weight:900;letter-spacing:.8px;text-decoration:none!important;color:#171717!important;}.tp-text-link span{color:#c5a000;margin-left:5px;font-size:15px;}.tp-live-link{color:#777!important;}
.tp-project-footer{display:flex;justify-content:space-between;gap:20px;margin-top:34px;padding:18px 0;border-top:1px solid #e6e6e6;color:#777;font-size:9px;font-weight:900;letter-spacing:1.4px;}.tp-project-footer b{color:#c6a400;font-size:15px;margin-left:5px;}.tp-no-projects{grid-column:1/-1;text-align:center;padding:55px 20px;background:#f5f5f5;color:#666;}
/* Individual project detail */
.tp-single-project{max-width:1240px;margin:0 auto;padding:clamp(30px,5vw,65px) 20px 80px;}.tp-single-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;}.tp-single-project .tp-eyebrow{background:#f1f1f1;color:#333;border-radius:2px;padding:7px 11px;font-size:9px;font-weight:900;letter-spacing:1.3px;}.tp-single-project h1{font-size:clamp(34px,5vw,58px);line-height:1.05;letter-spacing:-2px;margin:14px 0;color:#171717;}.tp-single-featured{overflow:hidden;background:#eee;}.tp-single-featured img{display:block;width:100%;height:auto;max-height:690px;object-fit:cover;}.tp-single-info{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:48px;padding:38px 0;}.tp-single-description{font-size:15px;line-height:1.85;color:#555;}.tp-project-facts{background:#f5f5f5;border-top:4px solid var(--tp-yellow);padding:24px;height:max-content;}.tp-project-facts h3{margin:0 0 18px;font-size:18px;}.tp-project-facts p{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #e2e2e2;padding:12px 0;margin:0;font-size:12px;}.tp-project-facts p b{color:#222;}.tp-project-facts p span{color:#666;text-align:right;}.tp-button{display:block;text-align:center;background:var(--tp-yellow);color:#111!important;text-decoration:none!important;padding:14px 18px;font-size:10px;font-weight:900;letter-spacing:.7px;margin-top:20px;}.tp-single-gallery{padding-top:15px;}.tp-single-gallery h2{font-size:clamp(27px,4vw,38px);letter-spacing:-1px;margin:14px 0;}.tp-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:20px;}.tp-gallery-grid a{display:block;overflow:hidden;background:#eee;}.tp-gallery-grid img{width:100%;height:230px;object-fit:cover;display:block;transition:transform .3s;}.tp-gallery-grid a:hover img{transform:scale(1.04);}
@media(max-width:900px){.tp-hero-art{width:42%;opacity:.75;}.tp-project-grid{grid-template-columns:repeat(min(2,var(--tp-columns,2)),minmax(0,1fr));}.tp-single-info{grid-template-columns:1fr;gap:22px;}.tp-project-stats{padding-left:20px;padding-right:20px;}}
@media(max-width:640px){.tp-portfolio-hero{min-height:390px;padding:38px 22px 22px;}.tp-hero-inner{min-height:295px;}.tp-hero-copy{max-width:100%;}.tp-hero-copy h2{font-size:clamp(42px,12vw,58px)!important;letter-spacing:-2px!important;max-width:440px;}.tp-hero-description{max-width:330px;font-size:12px!important;}.tp-hero-art{width:55%;opacity:.28;}.tp-art-caption{display:none;}.tp-hero-bottom{font-size:7px;letter-spacing:.7px;}.tp-project-stats{grid-template-columns:repeat(2,1fr);gap:12px 5px;padding:15px 12px;}.tp-project-stats>div{justify-content:center;border-right:0;}.tp-project-stats strong{font-size:26px;}.tp-project-stats span{font-size:8px;}.tp-project-section{padding:43px 16px 0;}.tp-section-heading{display:block;margin-bottom:22px;}.tp-section-heading h3{font-size:32px!important;}.tp-section-heading>p{margin-top:12px;font-size:12px;}.tp-filters{gap:6px;}.tp-filters button{padding:10px 11px;font-size:9px;}.tp-project-grid{grid-template-columns:1fr;gap:18px;}.tp-project-image{height:235px;}.tp-project-copy{padding:17px;}.tp-project-copy h4{font-size:21px!important;}.tp-project-footer{font-size:7px;letter-spacing:.8px;}.tp-single-top{align-items:flex-start;flex-direction:column;}.tp-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.tp-gallery-grid img{height:150px;}.tp-single-project{padding-left:15px;padding-right:15px;}}

/* Individual project image viewer: featured image on the left, selectable gallery on the right. */
.tp-project-media-viewer{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;align-items:stretch;margin:0 0 12px;}
.tp-project-media-viewer .tp-single-featured{display:block;min-width:0;overflow:hidden;background:#eee;min-height:360px;max-height:690px;}
.tp-project-media-viewer .tp-single-featured img{display:block;width:100%;height:100%;min-height:360px;max-height:690px;object-fit:cover;}
.tp-project-gallery-rail{display:grid;grid-template-columns:1fr;grid-auto-rows:minmax(100px,1fr);gap:10px;max-height:690px;overflow-y:auto;padding-right:3px;}
.tp-project-gallery-thumb{display:block;padding:0;border:2px solid transparent;background:#eee;cursor:pointer;overflow:hidden;min-height:100px;}
.tp-project-gallery-thumb img{display:block;width:100%;height:100%;min-height:100px;max-height:190px;object-fit:cover;transition:transform .25s;}
.tp-project-gallery-thumb:hover img{transform:scale(1.04);}
.tp-project-gallery-thumb.is-active{border-color:var(--tp-yellow);}
.tp-project-gallery-thumb:focus-visible{outline:3px solid #111;outline-offset:2px;}
@media(max-width:760px){.tp-project-media-viewer{grid-template-columns:minmax(0,1fr) 112px;gap:8px;}.tp-project-media-viewer .tp-single-featured,.tp-project-media-viewer .tp-single-featured img{min-height:250px;max-height:480px;}.tp-project-gallery-rail{max-height:480px;grid-auto-rows:minmax(80px,1fr);gap:7px;}.tp-project-gallery-thumb,.tp-project-gallery-thumb img{min-height:80px;}}
@media(max-width:420px){.tp-project-media-viewer{grid-template-columns:minmax(0,1fr) 88px;}.tp-project-media-viewer .tp-single-featured,.tp-project-media-viewer .tp-single-featured img{min-height:210px;}.tp-project-gallery-rail{max-height:390px;}.tp-project-gallery-thumb,.tp-project-gallery-thumb img{min-height:70px;}}
