/* Third Vision v5.7 — Organized Frontend / Services / Portfolio */
:root{--tv57-ink:#151515;--tv57-muted:#6f6b66;--tv57-line:#e7e2dc;--tv57-soft:#f6f3ef;--tv57-red:#d71920;--tv57-radius:24px;--tv57-shadow:0 20px 60px rgba(25,20,15,.08)}
body.tv57-public{background:#fff}
body.tv57-public main{overflow:hidden}
.tv57-section-rule{height:1px;background:var(--tv57-line);width:min(1320px,calc(100% - 48px));margin:0 auto}

/* Homepage organization */
.tv57-home .tv30-hero{min-height:min(86vh,880px)}
.tv57-home .tv30-hero-inner{max-width:1320px;margin-inline:auto;width:calc(100% - 48px)}
.tv57-home .tv30-hero-copy{max-width:640px}
.tv57-home .tv57-capability-strip{position:relative;z-index:4;background:#111;color:#fff;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.tv57-capability-inner{width:min(1320px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;min-height:82px}
.tv57-capability-title{display:flex;align-items:center;gap:10px;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#aaa;white-space:nowrap}
.tv57-capability-title i{width:7px;height:7px;background:var(--tv57-red);border-radius:50%}
.tv57-capability-list{display:flex;gap:0;overflow:hidden;white-space:nowrap}
.tv57-capability-list span{display:inline-flex;align-items:center;font-size:.79rem;letter-spacing:.04em;color:#eee}
.tv57-capability-list span:not(:last-child)::after{content:"/";color:#555;margin:0 18px}
.tv57-capability-strip a{display:inline-flex;align-items:center;gap:8px;color:#fff;text-decoration:none;border:1px solid #3b3b3b;border-radius:999px;padding:11px 15px;font-size:.78rem;white-space:nowrap}
.tv57-home .intro.wrap.section,.tv57-home .selected-portfolio,.tv57-home .services-section>.wrap,.tv57-home .process-grid{padding-top:clamp(78px,8vw,130px);padding-bottom:clamp(78px,8vw,130px)}
.tv57-home .section-heading{align-items:flex-end;border-bottom:1px solid var(--tv57-line);padding-bottom:26px;margin-bottom:36px}
.tv57-home .section-heading h2{max-width:850px}
.tv57-home .service-grid{gap:20px}
.tv57-home .service-card{border-radius:20px;overflow:hidden;min-height:520px;box-shadow:none;border:1px solid rgba(0,0,0,.06)}
.tv57-home .service-card img{transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .5s ease}
.tv57-home .service-card:hover img{transform:scale(1.035);filter:saturate(.94)}
.tv57-home .selected-portfolio>.portfolio-spread{border-top:0;border-radius:24px;background:var(--tv57-soft);overflow:hidden;padding:0;margin-top:26px}
.tv57-home .selected-portfolio>.portfolio-spread .spread-copy{padding:clamp(28px,4vw,58px)}
.tv57-home .selected-portfolio>.portfolio-spread .spread-image{min-height:500px}
.tv57-home .tv46-explore{margin-top:0}
.tv57-home .process-section{border-top:1px solid var(--tv57-line);border-bottom:1px solid var(--tv57-line)}

/* Services page */
.tv57-services .page-intro{padding-bottom:36px}
.tv57-service-nav{position:sticky;top:76px;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid var(--tv57-line);border-bottom:1px solid var(--tv57-line)}
.tv57-service-nav-inner{width:min(1320px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:24px;min-height:72px}
.tv57-service-nav-label{font-size:.63rem;letter-spacing:.15em;text-transform:uppercase;color:#8c8883;white-space:nowrap}
.tv57-service-nav-links{display:flex;overflow-x:auto;gap:8px;scrollbar-width:none;padding:10px 0}
.tv57-service-nav-links::-webkit-scrollbar{display:none}
.tv57-service-nav-links a{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;color:#666;border:1px solid #e4dfd8;border-radius:999px;padding:9px 13px;font-size:.72rem;transition:.2s}
.tv57-service-nav-links a span{font-size:.6rem;color:#aaa}
.tv57-service-nav-links a:hover,.tv57-service-nav-links a.active{background:#151515;color:#fff;border-color:#151515}
.tv57-service-nav-links a.active span{color:#f2a3a7}
.tv57-service-nav-cta{color:#151515;text-decoration:none;font-size:.75rem;font-weight:650;white-space:nowrap}
.tv57-services .service-detail{position:relative;width:min(1320px,calc(100% - 48px));margin:0 auto;padding:clamp(72px,8vw,128px) 0;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(45px,7vw,110px);align-items:center;border-bottom:1px solid var(--tv57-line)}
.tv57-services .service-detail:nth-of-type(even)>div:first-child{order:2}
.tv57-services .service-detail:nth-of-type(even)>div:last-child{order:1}
.tv57-services .service-detail>div:first-child{position:relative}
.tv57-services .service-detail>div:first-child img{width:100%;height:clamp(430px,48vw,690px);object-fit:cover;border-radius:22px;box-shadow:var(--tv57-shadow)}
.tv57-services .service-detail>div:last-child{max-width:600px}
.tv57-services .service-detail h2{font-size:clamp(2.7rem,5vw,5.2rem);letter-spacing:-.055em;line-height:.95;margin:.18em 0 .38em}
.tv57-services .service-detail>div:last-child>p:not(.eyebrow){font-size:1.05rem;line-height:1.8;color:#65615d}
.tv57-services .service-detail h3{margin-top:26px;padding-top:18px;border-top:1px solid var(--tv57-line);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}
.tv57-services .small-note{position:absolute;left:16px;bottom:16px;background:rgba(15,15,15,.82);color:#fff!important;padding:8px 10px;border-radius:8px;margin:0!important;font-size:.62rem!important;backdrop-filter:blur(8px)}
.tv57-service-index{position:absolute;right:0;top:clamp(72px,8vw,128px);font-size:clamp(5rem,11vw,10rem);line-height:.8;letter-spacing:-.08em;color:#f1eeea;font-weight:700;pointer-events:none;z-index:-1}

/* Portfolio page */
.tv57-projects .portfolio-intro{padding-top:clamp(100px,11vw,160px);padding-bottom:62px}
.tv57-projects .portfolio-title{align-items:end}
.tv57-projects .tv46-project-gateway{border-radius:24px;width:min(1320px,calc(100% - 48px));margin:0 auto 68px;box-shadow:var(--tv57-shadow)}
.tv57-portfolio-summary{width:min(1320px,calc(100% - 48px));margin:0 auto 24px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.tv57-summary-card{padding:22px 24px;border:1px solid var(--tv57-line);border-radius:18px;background:#fff;display:flex;align-items:end;justify-content:space-between;gap:18px}
.tv57-summary-card strong{font-size:2rem;letter-spacing:-.04em}.tv57-summary-card span{font-size:.65rem;color:#8a857f;text-transform:uppercase;letter-spacing:.12em;text-align:right}
.tv57-projects .portfolio-collection{padding-top:0}
.tv57-projects .collection-tools{position:sticky;top:72px;z-index:25;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border:1px solid var(--tv57-line);border-radius:20px;padding:20px;margin-bottom:42px;box-shadow:0 12px 40px rgba(20,16,12,.05)}
.tv57-projects .collection-heading{display:grid;grid-template-columns:1fr minmax(250px,420px) auto;align-items:end;gap:18px}
.tv57-projects .collection-heading label{margin:0}
.tv57-view-switch{display:flex;gap:6px;justify-self:end}
.tv57-view-switch button,.tv57-reset-filter{border:1px solid #ded8d1;background:#fff;color:#5f5a55;border-radius:999px;min-height:36px;padding:0 12px;font-size:.68rem;cursor:pointer}
.tv57-view-switch button.active{background:#151515;color:#fff;border-color:#151515}
.tv57-reset-filter{margin-left:8px}
.tv57-projects .category-filters{margin-top:16px;display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.tv57-projects .category-filters::-webkit-scrollbar{display:none}
.tv57-projects .portfolio-spread{border-top:1px solid var(--tv57-line);padding-top:42px;padding-bottom:42px;transition:opacity .25s ease,transform .25s ease}
.tv57-projects .spread-image{border-radius:18px;overflow:hidden;background:#f3f0ec}
.tv57-projects .spread-image img{transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.tv57-projects .portfolio-spread:hover .spread-image img{transform:scale(1.025)}
.tv57-projects .spread-copy h2{max-width:680px}
.tv57-projects .portfolio-collection.tv57-compact-view{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tv57-projects .portfolio-collection.tv57-compact-view .collection-tools{grid-column:1/-1}
.tv57-projects .portfolio-collection.tv57-compact-view .portfolio-spread{display:flex!important;flex-direction:column;padding:0;border:1px solid var(--tv57-line);border-radius:18px;overflow:hidden;background:#fff;min-width:0}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-image{order:1;border-radius:0;aspect-ratio:4/3;min-height:0}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-image img{width:100%;height:100%;object-fit:cover}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-copy{order:2;padding:22px;display:block}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-number{font-size:.65rem}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-copy h2{font-size:1.55rem;margin:8px 0 10px;line-height:1.06}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-description{font-size:.82rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-facts{display:none}
.tv57-projects .portfolio-collection.tv57-compact-view .spread-image-caption{display:none}
.tv57-projects .portfolio-collection.tv57-compact-view .text-link{font-size:.72rem}
.tv57-projects .portfolio-collection.tv57-compact-view .tv46-project-enquire{display:none}
.tv57-projects .portfolio-collection.tv57-compact-view .collection-count{grid-column:1/-1}

@media(max-width:1000px){
 .tv57-capability-inner{grid-template-columns:1fr auto}.tv57-capability-title{display:none}
 .tv57-service-nav-inner{grid-template-columns:1fr auto}.tv57-service-nav-label{display:none}
 .tv57-services .service-detail{grid-template-columns:1fr;gap:30px}.tv57-services .service-detail:nth-of-type(even)>div:first-child,.tv57-services .service-detail:nth-of-type(even)>div:last-child{order:initial}.tv57-services .service-detail>div:last-child{max-width:none}.tv57-service-index{top:68px}
 .tv57-projects .portfolio-collection.tv57-compact-view{grid-template-columns:repeat(2,minmax(0,1fr))}.tv57-projects .collection-heading{grid-template-columns:1fr 1fr}.tv57-view-switch{grid-column:1/-1;justify-self:start}
}
@media(max-width:700px){
 .tv57-home .tv30-hero-inner,.tv57-capability-inner,.tv57-service-nav-inner,.tv57-services .service-detail,.tv57-projects .tv46-project-gateway,.tv57-portfolio-summary{width:calc(100% - 28px)}
 .tv57-capability-inner{min-height:68px}.tv57-capability-list{gap:14px;overflow-x:auto;scrollbar-width:none}.tv57-capability-list span:not(:last-child)::after{margin:0 10px}.tv57-capability-strip a{display:none}
 .tv57-service-nav{top:64px}.tv57-service-nav-inner{display:block;min-height:auto}.tv57-service-nav-cta{display:none}.tv57-service-nav-links{padding:10px 0}
 .tv57-services .service-detail{padding:62px 0}.tv57-services .service-detail>div:first-child img{height:clamp(280px,88vw,450px);border-radius:16px}.tv57-services .service-detail h2{font-size:2.65rem}.tv57-service-index{font-size:5rem;top:60px}
 .tv57-projects .portfolio-intro{padding-top:90px}.tv57-projects .tv46-project-gateway{margin-bottom:42px}.tv57-portfolio-summary{grid-template-columns:1fr 1fr}.tv57-summary-card:last-child{grid-column:1/-1}.tv57-projects .collection-tools{top:64px;border-left:0;border-right:0;border-radius:0;margin-inline:-14px;padding-inline:14px}.tv57-projects .collection-heading{grid-template-columns:1fr}.tv57-view-switch{grid-column:auto}.tv57-projects .portfolio-collection.tv57-compact-view{grid-template-columns:1fr;gap:14px}.tv57-projects .portfolio-spread{padding-top:28px;padding-bottom:28px}
}
@media(prefers-reduced-motion:reduce){.tv57-home .service-card img,.tv57-projects .spread-image img,.tv57-projects .portfolio-spread{transition:none!important}}
