
/* ===== v22 PREMIUM CORE ===== */
:root{
 --tb-premium-max:1180px;
 --tb-premium-gap:clamp(20px,3vw,42px);
 --tb-premium-line:color-mix(in srgb,var(--tb-colour-text) 13%,transparent);
}
.tb-premium-header{background:var(--tb-colour-surface);color:var(--tb-colour-text);border-bottom:1px solid var(--tb-premium-line)}
.tb-premium-header__inner{min-height:76px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px}
.tb-premium-header .tb-brand{display:grid;text-decoration:none;color:inherit;line-height:1}.tb-premium-header .tb-brand strong{font-size:15px;letter-spacing:.04em}.tb-premium-header .tb-brand small{font-size:8px;color:var(--tb-colour-text-muted);margin-top:5px}
.tb-premium-header nav{display:flex;justify-content:center;gap:22px}.tb-premium-header nav a,.tb-premium-header__top a,.tb-header-link{text-decoration:none;color:inherit;font-size:10px}
.tb-premium-header--overlay{position:relative;z-index:4;background:var(--tb-colour-dark);color:#fff;border:0}
.tb-premium-header--centred{padding:14px 0}.tb-premium-header--centred .tb-premium-header__top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.tb-premium-header--centred .tb-premium-header__top>*:last-child{text-align:right}.tb-premium-header--centred nav{margin-top:12px;padding-top:12px;border-top:1px solid var(--tb-premium-line)}
.tb-premium-header--minimal .tb-premium-header__inner{min-height:84px}.tb-premium-header--minimal nav{justify-content:flex-start}.tb-premium-header--minimal .tb-header-link{font-weight:700}

.tb-premium-hero{position:relative;overflow:hidden}
.tb-premium-hero .tb-title{margin:.35em 0 .3em;font-size:clamp(34px,5.3vw,70px);line-height:.95;letter-spacing:-.045em}
.tb-premium-hero .tb-copy{font-size:14px;line-height:1.55;max-width:54ch;color:inherit;opacity:.82}
.tb-premium-hero .tb-actions{display:flex;gap:15px;align-items:center;margin-top:24px}.tb-text-link{color:inherit;text-decoration:none;font-size:11px;border-bottom:1px solid currentColor;padding-bottom:3px}
.tb-premium-hero .tb-eyebrow{font-size:9px;letter-spacing:.17em;font-weight:800}
.tb-premium-hero--split{display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);min-height:470px;background:var(--tb-colour-surface)}
.tb-premium-hero--split .tb-premium-hero__copy{padding:clamp(44px,7vw,82px);align-self:center}
.tb-premium-hero__image,.tb-service-image,.tb-project-image{background-image:var(--tb-preview-image),linear-gradient(145deg,#7d8b91,#394a54);background-size:cover;background-position:center}
.tb-premium-hero--split .tb-premium-hero__image{position:relative;min-height:470px}.tb-image-caption{position:absolute;right:18px;bottom:16px;background:rgba(5,12,20,.72);color:#fff;padding:7px 10px;border-radius:5px;font-size:8px}
.tb-mini-proof{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px;padding-top:18px;border-top:1px solid var(--tb-premium-line);font-size:8px;color:var(--tb-colour-text-muted)}
.tb-premium-hero--full{min-height:540px;background-image:var(--tb-preview-image),linear-gradient(145deg,#687a83,#253843);background-size:cover;background-position:center;color:#fff;display:flex;align-items:center}
.tb-premium-hero--full .tb-premium-hero__overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,10,16,.78),rgba(4,10,16,.18) 65%,rgba(4,10,16,.08))}
.tb-premium-hero--full .tb-premium-hero__content{position:relative;z-index:2;max-width:700px;margin-left:0}.tb-premium-hero--full .tb-title{max-width:760px}
.tb-premium-hero--full .tb-premium-hero__bottom{position:absolute;z-index:2;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(4,10,16,.72);backdrop-filter:blur(8px);padding:16px 30px;font-size:9px;text-align:center}
.tb-premium-hero--video{min-height:520px;color:#fff;background-image:linear-gradient(90deg,rgba(4,10,16,.78),rgba(4,10,16,.28)),var(--tb-preview-image);background-size:cover;background-position:center}
.tb-premium-video-layout{min-height:520px;display:grid;grid-template-columns:1fr .55fr;align-items:center}.tb-video-play{justify-self:center;width:120px;height:120px;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;backdrop-filter:blur(8px)}.tb-video-play span{font-size:24px}.tb-video-play small{font-size:7px}
.tb-premium-hero--asym{display:grid;grid-template-columns:38% 62%;min-height:500px;background:var(--tb-colour-surface);position:relative}.tb-premium-hero--asym .tb-premium-hero__copy{padding:70px 36px;align-self:center;z-index:2}.tb-premium-hero--asym .tb-premium-hero__image{min-height:500px;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%)}.tb-premium-float-card{position:absolute;right:4%;bottom:7%;background:#fff;padding:14px 18px;box-shadow:var(--tb-shadow-md);display:grid;border-radius:10px}.tb-premium-float-card strong{font-size:17px}.tb-premium-float-card span{font-size:8px;color:#666}
.tb-premium-hero--minimal{min-height:380px;display:grid;place-items:center;text-align:center;background:var(--tb-colour-surface)}.tb-premium-hero--minimal .tb-premium-hero__content{max-width:850px}.tb-premium-hero--minimal .tb-copy{margin-inline:auto}
.tb-premium-hero--project{min-height:560px;background-image:linear-gradient(0deg,rgba(4,10,16,.8),rgba(4,10,16,.05) 64%),var(--tb-preview-image);background-size:cover;background-position:center;display:flex;align-items:end;color:#fff}.tb-premium-project-panel{margin:0 0 40px 42px;max-width:520px;background:rgba(5,12,20,.62);backdrop-filter:blur(8px);padding:28px 30px}.tb-premium-project-panel .tb-title{font-size:clamp(34px,4.6vw,60px)}.tb-project-index{position:absolute;right:38px;bottom:42px;display:grid;grid-template-columns:auto 90px auto;gap:8px;align-items:center;font-size:8px}.tb-project-index i{height:1px;background:#fff}
.tb-premium-hero--overlay{min-height:520px;background-image:linear-gradient(90deg,rgba(4,10,16,.9) 0 42%,rgba(4,10,16,.12) 75%),var(--tb-preview-image);background-size:cover;background-position:center;color:#fff;display:flex;align-items:center}.tb-premium-overlay-card{width:min(520px,52%);margin-left:clamp(28px,6vw,70px);padding:30px 0}.tb-premium-overlay-card .tb-title{font-size:clamp(36px,5vw,66px)}.tb-premium-overlay-card ul{padding-left:18px;font-size:10px;line-height:1.8;opacity:.82}
.tb-premium-hero--slider{min-height:560px;background-image:linear-gradient(90deg,rgba(4,10,16,.72),rgba(4,10,16,.12)),var(--tb-preview-image);background-size:cover;background-position:center;color:#fff}.tb-premium-slide{min-height:560px;display:flex;align-items:end;padding:0 0 62px 6%}.tb-premium-slide__copy{max-width:600px}.tb-premium-slider-controls{position:absolute;right:34px;bottom:28px;display:flex;gap:12px;align-items:center}.tb-premium-slider-controls button{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.6);background:transparent;color:#fff}
.tb-premium-hero--cinematic{min-height:540px;background:radial-gradient(circle at 80% 20%,color-mix(in srgb,var(--tb-colour-primary) 22%,transparent),transparent 18%),linear-gradient(90deg,#07101a,#1f3442);color:#fff;display:grid;align-items:center}.tb-cinematic-grid{display:grid;grid-template-columns:1.25fr .55fr;gap:50px;align-items:end}.tb-premium-hero--cinematic .tb-title{font-size:clamp(48px,7vw,86px);max-width:760px}.tb-cinematic-side{padding-bottom:12px}.tb-cinematic-side p{font-size:12px;line-height:1.6;opacity:.7}.tb-cinematic-rule{position:absolute;left:5%;right:5%;bottom:34px;height:1px;background:rgba(255,255,255,.2)}

.tb-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:28px}.tb-section-heading .tb-title{max-width:700px}
.tb-premium-service-grid{grid-template-columns:repeat(3,1fr)}.tb-premium-service-grid article{padding:26px 22px;border-top:1px solid var(--tb-premium-line)}.tb-premium-service-grid article>span{font-size:9px;color:var(--tb-colour-primary)}.tb-premium-service-grid h3{font-size:20px;margin:28px 0 8px}.tb-premium-service-grid p{font-size:11px;color:var(--tb-colour-text-muted)}.tb-premium-service-grid a{font-size:9px;color:inherit;text-decoration:none}
.tb-premium-image-services,.tb-premium-feature-services{grid-template-columns:repeat(3,1fr)}.tb-premium-image-services article,.tb-premium-feature-services article{background:var(--tb-colour-surface);border:1px solid var(--tb-premium-line);overflow:hidden}.tb-premium-image-services .tb-service-image,.tb-premium-feature-services .tb-service-image{min-height:190px}.tb-premium-image-services article>div:last-child,.tb-premium-feature-services article>div:last-child{padding:18px}.tb-premium-image-services h3,.tb-premium-feature-services h3{font-size:17px;margin:6px 0}.tb-premium-image-services p,.tb-premium-feature-services p{font-size:10px;color:var(--tb-colour-text-muted)}
.tb-premium-service-rows article{display:grid;grid-template-columns:46px 1fr 1fr auto;gap:20px;align-items:center;padding:22px 0;border-top:1px solid var(--tb-premium-line)}.tb-premium-service-rows article span{font-size:9px;color:var(--tb-colour-primary)}.tb-premium-service-rows article h3{font-size:19px;margin:0}.tb-premium-service-rows article p{font-size:10px;color:var(--tb-colour-text-muted)}.tb-premium-service-rows article a{font-size:9px;color:inherit;text-decoration:none}
.tb-premium-alt-services article{display:grid;grid-template-columns:1fr 1fr;min-height:330px}.tb-premium-alt-services .tb-service-image{min-height:330px}.tb-premium-alt-services article>div:not(.tb-service-image){padding:52px;align-self:center}.tb-premium-alt-services h2{font-size:32px;margin:.4em 0}.tb-premium-alt-services p{font-size:11px;line-height:1.6;color:var(--tb-colour-text-muted)}
.tb-numbered-services article{display:grid;grid-template-columns:70px 1fr 1fr 30px;align-items:center;border-top:1px solid var(--tb-premium-line);padding:22px 0}.tb-numbered-services article span{font-size:9px;color:var(--tb-colour-primary)}.tb-numbered-services h2{font-size:24px;margin:0}.tb-numbered-services p{font-size:10px;color:var(--tb-colour-text-muted)}
.tb-premium-hover-services{grid-template-columns:repeat(4,1fr)}.tb-premium-hover-services article{min-height:280px;background-image:linear-gradient(0deg,rgba(4,10,16,.82),rgba(4,10,16,.08)),var(--tb-preview-image);background-size:cover;background-position:center;display:flex;align-items:end;color:#fff;overflow:hidden}.tb-premium-hover-services article>div{padding:20px;transition:.35s}.tb-premium-hover-services article:hover>div{transform:translateY(-12px)}.tb-premium-hover-services h3{font-size:19px}

.tb-premium-review-wall{display:grid;grid-template-columns:.7fr 1.3fr;gap:42px;align-items:center}.tb-review-score{display:grid;margin-top:20px}.tb-review-score strong{font:400 54px/1 var(--tb-font-heading)}.tb-review-score span{color:var(--tb-colour-primary)}.tb-review-score small{opacity:.65}.tb-review-stack{display:grid;gap:10px}.tb-review-stack blockquote{margin:0;padding:20px;border:1px solid rgba(255,255,255,.16);font-size:13px}.tb-review-stack cite{display:block;margin-top:12px;font-size:8px;opacity:.6}
.tb-premium-review-cards{grid-template-columns:repeat(3,1fr)}.tb-premium-review-cards blockquote{margin:0;padding:22px;background:var(--tb-colour-surface);border:1px solid var(--tb-premium-line)}.tb-premium-review-cards span{color:var(--tb-colour-primary);font-size:10px}.tb-premium-review-cards p{font:400 16px/1.45 var(--tb-font-heading)}.tb-premium-review-cards cite{font-size:8px;color:var(--tb-colour-text-muted)}
.tb-premium-review-carousel{text-align:center;padding:80px 0;background:var(--tb-colour-dark);color:#fff}.tb-premium-review-carousel blockquote{max-width:760px;margin:0 auto 18px;font:400 clamp(24px,3.3vw,42px)/1.25 var(--tb-font-heading)}.tb-quote-mark{font:400 72px/1 var(--tb-font-heading);color:var(--tb-colour-primary)}.tb-review-person{display:grid;gap:4px}.tb-review-person span{color:var(--tb-colour-primary)}.tb-review-person small{opacity:.6}.tb-carousel-nav{display:flex;justify-content:center;gap:12px;align-items:center;margin-top:26px}.tb-carousel-nav button{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff}
.tb-premium-rating{display:grid;grid-template-columns:.65fr 1fr 1fr;gap:28px;align-items:center}.tb-rating-summary{display:grid}.tb-rating-summary strong{font:400 58px/1 var(--tb-font-heading)}.tb-rating-summary span{color:var(--tb-colour-primary)}.tb-rating-bars>div{display:grid;grid-template-columns:30px 1fr 36px;gap:8px;align-items:center;margin:8px 0}.tb-rating-bars i{height:5px;background:#e8ebed}.tb-rating-bars b{display:block;height:100%;background:var(--tb-colour-primary)}.tb-rating-bars em{font-size:8px;font-style:normal}.tb-rating-reasons>div{display:flex;justify-content:space-between;border-top:1px solid var(--tb-premium-line);padding:10px 0;font-size:9px}

.tb-featured-project{display:grid;grid-template-columns:1.2fr .8fr;min-height:380px;background:var(--tb-colour-dark);color:#fff}.tb-featured-project .tb-project-image{min-height:380px}.tb-featured-project>div:last-child{padding:46px;align-self:center}.tb-featured-project h3{font-size:30px;margin:.4em 0}.tb-featured-project p{font-size:11px;opacity:.7}
.tb-premium-case-study{min-height:480px;background-image:linear-gradient(0deg,rgba(4,10,16,.75),rgba(4,10,16,.1)),var(--tb-preview-image);background-size:cover;background-position:center;color:#fff;display:flex;align-items:end}.tb-case-copy{padding-bottom:44px}.tb-premium-case-study .tb-title{font-size:46px;max-width:700px}
.tb-alt-projects article{display:grid;grid-template-columns:1fr 1fr;min-height:330px}.tb-alt-projects .tb-project-image{min-height:330px}.tb-alt-projects article>div:not(.tb-project-image){padding:46px;align-self:center}.tb-alt-projects h2{font-size:30px}.tb-alt-projects p{font-size:11px;color:var(--tb-colour-text-muted)}
.tb-project-strip{display:grid;grid-auto-flow:column;grid-auto-columns:48%;gap:12px;overflow:hidden}.tb-project-strip article{display:grid;gap:8px}.tb-project-strip .tb-project-image{min-height:250px}.tb-project-strip strong{font-size:14px}.tb-project-strip small{font-size:8px;color:var(--tb-colour-text-muted)}
.tb-overlay-projects{grid-template-columns:repeat(3,1fr)}.tb-overlay-projects article{min-height:320px;background-image:linear-gradient(0deg,rgba(4,10,16,.8),rgba(4,10,16,.05)),var(--tb-preview-image);background-size:cover;background-position:center;display:flex;align-items:end;color:#fff}.tb-overlay-projects article>div{padding:18px}.tb-overlay-projects h3{font-size:18px}.tb-overlay-projects a{font-size:8px;color:#fff}
.tb-premium-masonry{display:grid;grid-template-columns:1.3fr .8fr 1fr;grid-auto-rows:130px;gap:8px}.tb-premium-masonry i{background-image:var(--tb-preview-image),linear-gradient(145deg,#7d8b91,#394a54);background-size:cover;background-position:center}.tb-premium-masonry i:first-child{grid-row:span 2}.tb-premium-masonry i:nth-child(4){grid-column:span 2}

.tb-premium-trust{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--tb-premium-line);border-bottom:1px solid var(--tb-premium-line)}.tb-premium-trust>div{padding:18px;border-right:1px solid var(--tb-premium-line);display:grid;gap:5px}.tb-premium-trust>div:last-child{border-right:0}.tb-premium-trust small{font-size:7px;color:var(--tb-colour-text-muted)}.tb-premium-trust strong{font:400 26px/1 var(--tb-font-heading)}.tb-premium-trust span{font-size:8px;color:var(--tb-colour-text-muted)}
.tb-premium-guarantees{grid-template-columns:repeat(3,1fr)}.tb-premium-guarantees article{padding:26px;border:1px solid var(--tb-premium-line)}.tb-premium-guarantees article>span{font-size:24px;color:var(--tb-colour-primary)}.tb-premium-guarantees h3{font-size:18px}.tb-premium-guarantees p{font-size:10px;color:var(--tb-colour-text-muted)}
.tb-premium-accreditation-ribbon{padding:20px 0;background:var(--tb-colour-surface)}.tb-premium-accreditation-ribbon .tb-container{display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:8px}.tb-premium-accreditation-ribbon span{color:var(--tb-colour-text-muted)}.tb-premium-accreditation-ribbon b{font-size:9px;letter-spacing:.04em}
.tb-premium-counters{display:grid;grid-template-columns:repeat(4,1fr)}.tb-premium-counters article{padding:24px;border-top:1px solid var(--tb-premium-line);display:grid}.tb-premium-counters strong{font:400 38px/1 var(--tb-font-heading)}.tb-premium-counters span{font-size:8px;color:var(--tb-colour-text-muted);margin-top:6px}

.tb-premium-cta--full{background:var(--tb-colour-primary);color:var(--tb-colour-primary-contrast);padding:52px 0}.tb-premium-cta--full .tb-container{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px}.tb-premium-cta h2{font-size:34px;margin:.2em 0}.tb-premium-cta p{font-size:10px;opacity:.72}.tb-premium-cta--inline{background:var(--tb-colour-dark);color:#fff;padding:22px 0}.tb-premium-cta--inline .tb-container{display:grid;grid-template-columns:1fr auto auto;gap:22px;align-items:center}.tb-premium-cta--minimal{padding:26px 0;border-top:1px solid var(--tb-premium-line);border-bottom:1px solid var(--tb-premium-line)}.tb-premium-cta--minimal .tb-container{display:flex;justify-content:space-between}.tb-premium-cta--minimal a{color:inherit}.tb-premium-cta--split{display:grid;grid-template-columns:1fr 1fr;background:var(--tb-colour-surface)}.tb-cta-image{min-height:310px;background-image:var(--tb-preview-image),linear-gradient(145deg,#7d8b91,#394a54);background-size:cover;background-position:center}.tb-premium-cta--split>div:last-child{padding:52px;align-self:center}

.tb-premium-footer{background:var(--tb-colour-dark);color:#fff;padding:44px 0}.tb-premium-footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px}.tb-premium-footer strong{font-size:17px}.tb-premium-footer p{font-size:9px;opacity:.65;max-width:38ch}.tb-premium-footer small{font-size:7px;opacity:.55;text-transform:uppercase;letter-spacing:.12em}.tb-premium-footer a{display:block;color:#fff;text-decoration:none;font-size:9px;margin-top:7px}.tb-premium-footer--compact{padding:18px 0}.tb-premium-footer--compact .tb-container,.tb-premium-footer--minimal .tb-container{display:flex;justify-content:space-between;align-items:center;font-size:8px}.tb-premium-footer--editorial .tb-container{display:grid;grid-template-columns:1fr auto auto;align-items:end}.tb-premium-footer--editorial nav{display:flex;gap:18px}.tb-premium-footer--minimal{padding:22px 0}

@media(max-width:800px){
 .tb-premium-header nav{display:none}
 .tb-premium-header__inner{grid-template-columns:1fr auto}
 .tb-premium-header__top>*:not(.tb-brand){display:none}
 .tb-premium-header--centred .tb-premium-header__top{grid-template-columns:1fr}
 .tb-premium-hero--split,.tb-premium-hero--asym{grid-template-columns:1fr}
 .tb-premium-hero--split .tb-premium-hero__copy,.tb-premium-hero--asym .tb-premium-hero__copy{padding:38px 24px}
 .tb-premium-hero--split .tb-premium-hero__image,.tb-premium-hero--asym .tb-premium-hero__image{min-height:240px;clip-path:none}
 .tb-premium-float-card{right:18px;bottom:18px}
 .tb-premium-video-layout,.tb-cinematic-grid{grid-template-columns:1fr}.tb-video-play{justify-self:start;margin-bottom:30px;width:90px;height:90px}
 .tb-premium-project-panel{margin:0 18px 20px}.tb-premium-overlay-card{width:auto;margin:0 24px}.tb-premium-hero--full .tb-premium-hero__bottom{grid-template-columns:1fr 1fr 1fr;padding:12px 8px}
 .tb-premium-service-grid,.tb-premium-image-services,.tb-premium-feature-services,.tb-premium-hover-services,.tb-premium-review-cards,.tb-premium-guarantees,.tb-premium-trust,.tb-premium-counters{grid-template-columns:1fr 1fr}
 .tb-premium-service-rows article{grid-template-columns:34px 1fr}.tb-premium-service-rows article p,.tb-premium-service-rows article a{grid-column:2}
 .tb-premium-alt-services article,.tb-featured-project,.tb-alt-projects article,.tb-premium-review-wall,.tb-premium-rating,.tb-premium-cta--split{grid-template-columns:1fr}
 .tb-premium-alt-services article>div:not(.tb-service-image),.tb-featured-project>div:last-child,.tb-alt-projects article>div:not(.tb-project-image),.tb-premium-cta--split>div:last-child{padding:28px}
 .tb-project-strip{grid-auto-columns:76%}.tb-overlay-projects{grid-template-columns:1fr 1fr}.tb-premium-masonry{grid-template-columns:1fr 1fr}
 .tb-premium-cta--full .tb-container,.tb-premium-cta--inline .tb-container{grid-template-columns:1fr}.tb-premium-footer__grid,.tb-premium-footer--editorial .tb-container{grid-template-columns:1fr}
}
