
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--tb-bg);color:var(--tb-ink);font:400 16px/1.6 var(--tb-font-body)}
img{display:block;width:100%;height:100%;object-fit:cover}a{color:inherit;text-decoration:none}button{font:inherit}
.tb-container{width:min(calc(100% - 2*var(--tb-gutter)),var(--tb-container));margin:auto}.tb-section{padding:var(--tb-section) 0}
.tb-dark{background:var(--tb-dark);color:#fff}.tb-alt{background:#ece9e2}.tb-grid{display:grid;gap:1rem}
.tb-eyebrow{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--tb-accent)}
.tb-title{font:400 clamp(2rem,4vw,4.3rem)/1.04 var(--tb-font-display);margin:.5rem 0 1rem}.tb-copy{color:var(--tb-muted);max-width:58ch}
.tb-dark .tb-copy{color:rgba(255,255,255,.7)}.tb-btn{display:inline-flex;padding:.8rem 1.1rem;background:var(--tb-accent);border:0;border-radius:var(--tb-r-sm);font-size:.78rem;font-weight:700;letter-spacing:.04em}
.tb-btn--outline{background:transparent;border:1px solid currentColor}.tb-actions{display:flex;gap:.75rem;flex-wrap:wrap}.tb-card{background:#fff;border:1px solid var(--tb-line);border-radius:var(--tb-r-md);overflow:hidden}
.tb-media{background:linear-gradient(145deg,#d9d5cc,#9ca5aa);min-height:280px}.tb-media.dark{background:radial-gradient(circle at 70% 20%,rgba(185,138,66,.35),transparent 22%),linear-gradient(145deg,#29465d,#09131d 70%)}
[data-effect]{--delay:0ms;transition:opacity var(--tb-slow) var(--tb-ease) var(--delay),transform var(--tb-slow) var(--tb-ease) var(--delay)}
[data-effect=fade],[data-effect=up],[data-effect=left],[data-effect=right]{opacity:0}[data-effect=up]{transform:translateY(var(--tb-reveal))}[data-effect=left]{transform:translateX(calc(-1*var(--tb-reveal)))}[data-effect=right]{transform:translateX(var(--tb-reveal))}[data-effect].is-visible{opacity:1;transform:none}
[data-hover=zoom]{overflow:hidden}[data-hover=zoom] img,.tb-media{transition:transform var(--tb-slow) var(--tb-ease)}[data-hover=zoom]:hover img,[data-hover=zoom]:hover.tb-media{transform:scale(var(--tb-hover-scale))}
[data-hover=lift]{transition:transform var(--tb-speed) var(--tb-ease),box-shadow var(--tb-speed)}[data-hover=lift]:hover{transform:translateY(-7px);box-shadow:var(--tb-shadow)}
[data-hover=expand]{transition:transform var(--tb-speed) var(--tb-ease)}[data-hover=expand]:hover{transform:scale(1.018)}
.tb-header{height:72px;background:#fff;border-bottom:1px solid var(--tb-line);display:flex;align-items:center}.tb-header .tb-container{display:flex;align-items:center;gap:1.4rem}.tb-brand{font-weight:800;letter-spacing:.15em}.tb-nav{margin-left:auto;display:flex;align-items:center;gap:1.3rem;font-size:.8rem}
.tb-header.overlay{position:absolute;z-index:10;width:100%;background:transparent;color:#fff;border:0}.tb-header.centered .tb-brand{position:absolute;left:50%;transform:translateX(-50%)}.tb-header.minimal .tb-nav a:not(:last-child){display:none}
.tb-hero{min-height:650px;display:grid;align-items:center}.tb-hero.split{grid-template-columns:1fr 1fr;background:#fff}.tb-hero__copy{padding:clamp(2rem,7vw,7rem)}.tb-hero__media{height:100%;min-height:650px}
.tb-hero.full,.tb-hero.video,.tb-hero.project{position:relative;color:#fff;background:var(--tb-dark)}.tb-hero.full .tb-hero__copy,.tb-hero.video .tb-hero__copy,.tb-hero.project .tb-hero__copy{position:relative;z-index:2;max-width:760px}
.tb-hero.asym{grid-template-columns:.8fr 1.2fr;background:#fff;overflow:hidden}.tb-hero.asym .tb-hero__media{clip-path:polygon(18% 0,100% 0,100% 100%,0 100%)}
.tb-hero.minimal{text-align:center;background:#faf9f6}.tb-hero.minimal .tb-hero__copy{max-width:750px;margin:auto}
.tb-services.icons{grid-template-columns:repeat(4,1fr)}.tb-service{padding:2rem;text-align:center}.tb-icon{width:46px;height:46px;border:1px solid var(--tb-accent);border-radius:50%;display:grid;place-items:center;margin:0 auto 1rem;color:var(--tb-accent)}
.tb-services.images{grid-template-columns:repeat(3,1fr)}.tb-service-image .tb-media{min-height:260px}.tb-service-image .body{padding:1rem}
.tb-service-row{display:grid;grid-template-columns:80px 1fr auto;gap:1rem;padding:1.25rem 0;border-top:1px solid var(--tb-line);align-items:center}
.tb-expand details{border-top:1px solid var(--tb-line);padding:1.2rem}.tb-expand summary{cursor:pointer;font-weight:700}
.tb-service-alt{display:grid;grid-template-columns:1fr 1fr;align-items:center}.tb-service-alt .copy{padding:clamp(2rem,6vw,6rem)}
.tb-feature{display:grid;grid-template-columns:1.4fr .8fr;gap:1rem}.tb-feature .tb-media{min-height:520px}.tb-feature .panel{align-self:end;background:#fff;padding:2rem;margin-left:-110px;z-index:2;box-shadow:var(--tb-shadow)}
.tb-case{min-height:620px;display:grid;align-items:end;padding:3rem;color:#fff;background:var(--tb-dark)}.tb-project-list .item{display:grid;grid-template-columns:180px 1fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--tb-line)}.tb-project-list .tb-media{min-height:110px}
.tb-hscroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(280px,38%);overflow:auto;gap:1rem;scroll-snap-type:x mandatory}.tb-hscroll>*{scroll-snap-align:start}.tb-overlap{display:flex;min-height:430px;align-items:center;justify-content:center}.tb-overlap .tb-card{width:32%;margin-left:-6%;box-shadow:var(--tb-shadow);transform:rotate(-2deg)}.tb-overlap .tb-card:nth-child(2){transform:translateY(-20px) rotate(2deg);z-index:2}
.tb-gallery.masonry{grid-template-columns:1.2fr .8fr .8fr 1.2fr}.tb-gallery.standard{grid-template-columns:repeat(3,1fr)}.tb-gallery .tb-media{min-height:250px}.tb-carousel{position:relative}.tb-carousel .slide{display:none}.tb-carousel .slide.active{display:block}.tb-carousel .tb-media{min-height:500px}
.tb-lightbox-grid{grid-template-columns:repeat(3,1fr)}.tb-lightbox{position:fixed;inset:0;background:rgba(5,10,15,.94);z-index:100;display:none;padding:5vw}.tb-lightbox.open{display:grid;place-items:center}.tb-lightbox .tb-media{width:min(100%,1100px);height:75vh}
.tb-before{position:relative;min-height:500px;overflow:hidden}.tb-before .after{position:absolute;inset:0 50% 0 0;border-right:2px solid #fff}.tb-editorial{display:grid;grid-template-columns:.7fr 1.2fr .7fr;gap:1rem;align-items:center}.tb-editorial .tb-media:nth-child(2){min-height:500px}
.tb-quote{text-align:center;max-width:900px;margin:auto}.tb-quote blockquote{font:400 clamp(1.5rem,3vw,2.4rem)/1.35 var(--tb-font-display)}
.tb-test-cards{grid-template-columns:repeat(3,1fr)}.tb-test-card{padding:1.5rem}.tb-review{display:grid;grid-template-columns:.7fr 1.3fr;gap:3rem;align-items:center}.tb-rating{font:400 4rem var(--tb-font-display)}
.tb-person-quote{display:grid;grid-template-columns:.7fr 1.3fr;align-items:center;background:#fff}.tb-person-quote .copy{padding:3rem}.tb-person-quote .tb-media{min-height:420px}
.tb-cta.overlay,.tb-cta.full{min-height:400px;display:grid;align-items:center;background:var(--tb-dark);color:#fff}.tb-cta.split{display:grid;grid-template-columns:1fr 1fr;background:#fff}.tb-cta.split .copy{padding:4rem}.tb-cta.strip{padding:2rem;background:#eeeae2}.tb-cta.strip .tb-container{display:flex;justify-content:space-between;align-items:center}
.tb-modal{position:fixed;inset:0;background:rgba(5,10,15,.75);z-index:100;display:none;place-items:center}.tb-modal.open{display:grid}.tb-modal .panel{width:min(92%,460px);background:#fff;padding:2rem;border-radius:var(--tb-r-md)}
.tb-footer{background:var(--tb-dark);color:#fff;padding:4rem 0 2rem}.tb-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2rem}.tb-footer a{display:block;color:rgba(255,255,255,.65);font-size:.85rem;margin:.4rem 0}.tb-footer.compact .tb-container{display:flex;justify-content:space-between}.tb-footer.cta .top{display:flex;justify-content:space-between;align-items:center;padding-bottom:2rem;border-bottom:1px solid rgba(255,255,255,.12)}.tb-footer.editorial .tb-brand{font:400 4rem var(--tb-font-display)}
.tb-case.is-fullscreen{position:fixed;inset:1rem;z-index:99;box-shadow:var(--tb-shadow-lg);overflow:auto}
@media(max-width:800px){.tb-nav{display:none}.tb-hero.split,.tb-hero.asym,.tb-service-alt,.tb-cta.split,.tb-review,.tb-person-quote,.tb-feature{grid-template-columns:1fr}.tb-services.icons,.tb-services.images,.tb-test-cards,.tb-gallery.standard,.tb-lightbox-grid{grid-template-columns:repeat(2,1fr)}.tb-feature .panel{margin:-60px 1rem 0}.tb-gallery.masonry,.tb-editorial{grid-template-columns:1fr 1fr}.tb-footer-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.tb-services.icons,.tb-services.images,.tb-test-cards,.tb-gallery.standard,.tb-lightbox-grid,.tb-gallery.masonry,.tb-editorial,.tb-footer-grid{grid-template-columns:1fr}.tb-hscroll{grid-auto-columns:82%}.tb-hero{min-height:560px}.tb-hero__media{min-height:380px}}

/* v3 creative variants */
.tb-hero--overlay{background:linear-gradient(90deg,rgba(4,10,16,.78),rgba(4,10,16,.08)),linear-gradient(145deg,#213a31,#08131b)}
.tb-hero-slider{position:relative}.tb-hero-slider .slide{min-height:650px;align-items:center}.tb-hero-slider .slide.active{display:grid}.tb-slider-controls{position:absolute;z-index:4;bottom:2rem;right:2rem;display:flex;gap:.5rem}
.tb-hero--cinematic{background:linear-gradient(90deg,#0a131e 0%,rgba(10,19,30,.72) 38%,rgba(10,19,30,.05) 75%),linear-gradient(145deg,#273f54,#08111b)}
.tb-number-list article{display:grid;grid-template-columns:50px 1fr 40px;align-items:center;border-top:1px solid var(--tb-line);padding:1rem}.tb-number-list button{border:0;background:none;font-size:1.2rem}
.tb-hover-services{grid-template-columns:repeat(4,1fr)}.tb-hover-services article{min-height:330px;position:relative;overflow:hidden;display:flex;align-items:end;padding:1.2rem;color:#fff}.tb-hover-services article>div{transform:translateY(42px);transition:transform var(--tb-speed) var(--tb-ease)}.tb-hover-services article:hover>div{transform:none}
.tb-project-masonry{display:grid;grid-template-columns:1fr 1.2fr 1fr;grid-auto-rows:190px;gap:.5rem}.tb-project-masonry .tb-media:nth-child(2),.tb-project-masonry .tb-media:nth-child(5){grid-row:span 2}
.tb-project-overlay{min-height:540px;position:relative;display:grid;place-items:center;text-align:center}.tb-project-overlay__copy{background:rgba(6,13,21,.72);padding:2rem;min-width:min(90%,500px);color:#fff;backdrop-filter:blur(8px)}
.tb-before-range{position:absolute;left:10%;right:10%;bottom:1.5rem;width:80%;z-index:3}.tb-project-detail{display:grid;grid-template-columns:1.4fr .7fr;gap:2rem;align-items:center}.tb-project-detail .tb-media{min-height:460px}
.tb-stacked-projects{position:relative;min-height:480px;display:grid;place-items:center}.tb-stacked-projects .tb-card{position:absolute;width:min(58%,620px);transform:translateX(-8%) rotate(-2deg)}.tb-stacked-projects .tb-card:nth-child(2){transform:translateX(0) rotate(0);z-index:2}.tb-stacked-projects .tb-card:nth-child(3){transform:translateX(8%) rotate(2deg)}.tb-stacked-projects>a{position:absolute;right:0;bottom:0}
.tb-justified{display:grid;grid-template-columns:1.4fr .8fr 1.1fr;grid-auto-rows:190px;gap:.4rem}.tb-justified .tb-media:nth-child(1),.tb-justified .tb-media:nth-child(5){grid-row:span 2}
.tb-polaroids{display:flex;justify-content:center;gap:1rem;padding:2rem}.tb-polaroids figure{background:#fff;padding:.6rem .6rem 2rem;width:28%;box-shadow:var(--tb-shadow);transform:rotate(-3deg)}.tb-polaroids figure:nth-child(2){transform:translateY(-20px) rotate(2deg)}.tb-polaroids figure:nth-child(3){transform:rotate(4deg)}.tb-polaroids .tb-media{min-height:260px}
.tb-parallax-strip{min-height:390px;display:grid;align-items:center;color:#fff;background-attachment:fixed}.tb-parallax-strip .tb-title{max-width:420px}
.tb-logo-row{display:flex;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:2rem}.tb-compact-test article{display:none;grid-template-columns:70px 1fr;gap:1.5rem;align-items:center;max-width:700px;margin:auto}.tb-compact-test article.active{display:grid}.tb-avatar{width:64px;height:64px;border-radius:50%;background:#b9bdc0}
.tb-form-cta{display:grid;grid-template-columns:1fr .8fr;gap:3rem;align-items:center}.tb-form-cta form{padding:1rem;display:grid;gap:.7rem}.tb-form-cta input{min-height:46px;border:1px solid var(--tb-line);padding:0 .8rem}
.tb-floating-demo{min-height:230px;position:relative}.tb-floating-cta{position:absolute;right:4%;top:25%;width:110px;height:110px;border-radius:50%;background:var(--tb-accent);color:var(--tb-dark);display:grid;place-items:center;text-align:center;font-weight:700;transition:transform var(--tb-speed)}.tb-floating-cta:hover{transform:scale(1.1) rotate(4deg)}
.tb-stat-grid{grid-template-columns:repeat(4,1fr);text-align:center}.tb-stat-grid strong,.tb-stat-grid small,.tb-stat-grid span{display:block}.tb-stat-grid strong{font:400 2.4rem var(--tb-font-display)}
.tb-process{display:flex;align-items:center;justify-content:center;gap:1.2rem}.tb-process div{display:grid;place-items:center}.tb-process b{width:48px;height:48px;border:1px solid var(--tb-accent);border-radius:50%;display:grid;place-items:center}.tb-process i{height:1px;background:rgba(255,255,255,.25);flex:1}
.tb-team-feature{display:grid;grid-template-columns:80px 1fr 80px;align-items:center;gap:2rem;max-width:650px}.tb-dark-faq{max-width:850px}.tb-dark-faq details{padding:1rem;border-top:1px solid rgba(255,255,255,.15)}.tb-inspo{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}.tb-inspo .tb-media{min-height:170px}
@media(max-width:800px){.tb-hover-services,.tb-stat-grid{grid-template-columns:repeat(2,1fr)}.tb-project-detail,.tb-form-cta{grid-template-columns:1fr}.tb-project-masonry,.tb-justified{grid-template-columns:1fr 1fr}.tb-polaroids figure{width:40%}.tb-inspo{grid-template-columns:repeat(3,1fr)}}
@media(max-width:520px){.tb-hover-services,.tb-stat-grid,.tb-project-masonry,.tb-justified{grid-template-columns:1fr}.tb-polaroids{display:grid}.tb-polaroids figure{width:100%;transform:none!important}.tb-process{display:grid;grid-template-columns:1fr}.tb-process i{display:none}.tb-inspo{grid-template-columns:repeat(2,1fr)}}

/* v4: before-after, service-area, trust */
.tb-ba-slider{position:relative;height:540px;overflow:hidden;border-radius:var(--tb-r-md);box-shadow:var(--tb-shadow)}.tb-ba-base,.tb-ba-after{position:absolute;inset:0;min-height:0}.tb-ba-after{left:50%;overflow:hidden}.tb-ba-label{position:absolute;bottom:1rem;z-index:3;background:var(--tb-dark);color:#fff;padding:.3rem .6rem;border-radius:3px;font-size:.72rem}.tb-ba-label.left{left:1rem}.tb-ba-label.right{right:1rem}.tb-ba-handle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;width:46px;height:46px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:var(--tb-shadow)}.tb-ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:5}.tb-ba-caption{text-align:center;padding:.8rem;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;background:#fff}
.tb-ba-phone-layout{display:grid;grid-template-columns:1fr 300px 1fr;align-items:center;gap:2rem;text-align:center}.tb-phone{height:580px;border:10px solid #111;border-radius:45px;position:relative;overflow:hidden;box-shadow:var(--tb-shadow-lg)}.tb-phone-base,.tb-phone-after{position:absolute;inset:0;min-height:0}.tb-phone-after{left:50%}.tb-ba-sidecopy{display:grid;gap:1rem;justify-items:center}.tb-ba-sidecopy span{font-size:2rem;color:var(--tb-accent)}
.tb-centre-heading{text-align:center;margin-bottom:2rem}.tb-centre-heading .tb-copy{margin-inline:auto}.tb-ba-pairs{grid-template-columns:1fr 1fr;max-width:850px;margin:auto}.tb-ba-pairs article{padding:1rem;position:relative}.tb-ba-pairs .tb-media{margin-top:.5rem;min-height:330px}.tb-tag{position:absolute;top:.35rem;left:50%;transform:translateX(-50%);background:#fff;padding:.2rem .7rem;border-radius:var(--tb-r-pill);z-index:2;font-size:.7rem;text-transform:uppercase}.tb-ba-pairs ul{padding-left:1.2rem}
.tb-transform-timeline{display:grid;grid-template-columns:repeat(4,1fr);position:relative;gap:.7rem;text-align:center}.tb-transform-timeline:before{content:"";position:absolute;left:10%;right:10%;top:14px;border-top:1px dashed var(--tb-accent)}.tb-transform-timeline article{position:relative}.tb-transform-timeline i{display:block;width:12px;height:12px;background:#fff;border:1px solid var(--tb-accent);border-radius:50%;margin:8px auto 1rem;position:relative;z-index:2}.tb-transform-timeline p{font-size:.78rem;min-height:40px}.tb-transform-timeline .tb-media{min-height:180px;border-radius:var(--tb-r-sm)}
.tb-map-panel{min-height:520px;display:grid;grid-template-columns:330px 1fr;position:relative;border:1px solid rgba(255,255,255,.12);overflow:hidden;border-radius:var(--tb-r-md)}.tb-map-card{padding:2rem;background:rgba(5,12,20,.9);margin:2rem;z-index:3;border:1px solid var(--tb-accent);align-self:center}.tb-map-card h2{font:400 1.7rem var(--tb-font-display)}.tb-map-art{position:relative;background:radial-gradient(circle at 52% 52%,rgba(185,138,66,.26) 0 24%,transparent 25%),linear-gradient(25deg,#13202c,#1c2e3c);overflow:hidden}.tb-map-art:before,.tb-map-art:after{content:"";position:absolute;inset:10%;border:1px solid rgba(185,138,66,.2);border-radius:48%}.tb-map-art:after{inset:20%;border-style:dashed}.tb-map-art span{position:absolute;left:var(--x);top:var(--y);font-size:.75rem}.tb-map-radius{position:absolute;width:300px;height:300px;border-radius:50%;border:1px solid var(--tb-accent);background:rgba(185,138,66,.1);left:50%;top:50%;transform:translate(-50%,-50%)}
.tb-postcode-card{max-width:520px;margin:auto;border:1px solid rgba(255,255,255,.16);padding:2.5rem}.tb-postcode-form{display:grid;grid-template-columns:1fr auto;gap:.7rem;margin:1.5rem 0}.tb-postcode-form input{min-height:48px;background:transparent;border:1px solid rgba(255,255,255,.35);color:#fff;padding:0 1rem}.tb-postcode-result{min-height:24px;color:var(--tb-accent);margin-bottom:.5rem}
.tb-town-grid{grid-template-columns:repeat(4,1fr)}.tb-town{min-height:190px;position:relative;display:flex;align-items:end;padding:1rem;color:#fff;border-radius:var(--tb-r-sm);overflow:hidden}.tb-town:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,rgba(0,0,0,.65))}.tb-town strong{position:relative;z-index:2}.tb-town-more{background:var(--tb-accent);color:var(--tb-dark);display:grid;place-items:center;text-align:center}.tb-town-more:after{display:none}.tb-town-more span{font-size:2rem}
.tb-radius-layout{display:grid;grid-template-columns:1fr 320px;gap:2rem;align-items:center}.tb-radius-map{min-height:500px;position:relative;background:radial-gradient(circle,#f5efe3,#e6e9e8);overflow:hidden}.tb-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(185,138,66,.35);border-radius:50%}.tb-ring.r1{width:180px;height:180px}.tb-ring.r2{width:310px;height:310px}.tb-ring.r3{width:450px;height:450px}.tb-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:3.5rem;color:var(--tb-dark)}.tb-radius-legend{padding:2rem}.tb-radius-legend div{display:grid;padding:1rem 0;border-top:1px solid var(--tb-line)}.tb-radius-legend small{color:var(--tb-muted)}
.tb-trust-centre{text-align:center}.tb-accreditations{display:flex;justify-content:center;gap:2rem;align-items:center;flex-wrap:wrap;margin-top:2rem}.tb-accreditations>div{min-width:100px;height:80px;display:grid;place-items:center;border:1px solid var(--tb-line);font-weight:800;font-size:.75rem}.tb-accreditations.compact>div{height:55px}
.tb-guarantees{grid-template-columns:repeat(3,1fr);max-width:960px;margin:auto;text-align:center}.tb-guarantees article{padding:2.2rem 1.5rem}.tb-guarantee-icon{width:64px;height:64px;border:1px solid var(--tb-ink);border-radius:50%;display:grid;place-items:center;margin:0 auto 1rem;font-size:1.6rem}
.tb-stars{font-size:2.6rem;color:var(--tb-accent);letter-spacing:.1em}.tb-review-platforms{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:700px;margin:1.5rem auto}.tb-review-platforms>div{border:1px solid var(--tb-line);padding:1.2rem;display:grid}.tb-review-platforms span{font-size:.85rem;color:var(--tb-muted)}
.tb-proof-counters{grid-template-columns:repeat(4,1fr);text-align:center}.tb-proof-counters>div{display:grid;gap:.4rem}.tb-proof-counters strong{font:400 clamp(2.2rem,4vw,4rem) var(--tb-font-display)}.tb-proof-counters small{color:var(--tb-muted)}.tb-proof-icon{font-size:2rem}
@media(max-width:800px){.tb-ba-phone-layout{grid-template-columns:1fr}.tb-ba-sidecopy{display:none}.tb-transform-timeline{grid-template-columns:1fr 1fr}.tb-transform-timeline:before{display:none}.tb-map-panel,.tb-radius-layout{grid-template-columns:1fr}.tb-map-card{margin:1rem}.tb-town-grid,.tb-proof-counters{grid-template-columns:repeat(2,1fr)}.tb-guarantees{grid-template-columns:1fr}.tb-review-platforms{grid-template-columns:1fr}}
@media(max-width:520px){.tb-ba-slider{height:390px}.tb-ba-pairs,.tb-transform-timeline,.tb-town-grid,.tb-proof-counters{grid-template-columns:1fr}.tb-postcode-form{grid-template-columns:1fr}.tb-map-art{min-height:400px}.tb-radius-map{min-height:380px}}

/* v5: quote/lead, emergency, project-detail */
.tb-quote-hero{min-height:560px;position:relative;color:#fff;display:grid;align-items:center;overflow:hidden}.tb-quote-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,13,21,.82),rgba(6,13,21,.2))}.tb-quote-hero__copy{position:relative;z-index:2;max-width:620px}.tb-sticky-quote{position:absolute;z-index:5;right:0;top:90px;writing-mode:vertical-rl;transform:rotate(180deg);border:0;background:var(--tb-accent);padding:1rem .8rem;font-weight:700;border-radius:var(--tb-r-sm) 0 0 var(--tb-r-sm)}.tb-quote-benefits{position:absolute;z-index:3;left:0;right:0;bottom:0;background:#fff;color:var(--tb-ink);display:flex;justify-content:center;gap:3rem;padding:1rem;font-size:.85rem}
.tb-mobile-preview{display:grid;place-items:center}.tb-phone-shell{width:min(100%,360px);min-height:640px;border:10px solid #111;border-radius:42px;position:relative;overflow:hidden;box-shadow:var(--tb-shadow-lg)}.tb-phone-top{display:flex;justify-content:space-between;padding:1rem}.tb-phone-copy{padding:4rem 1.3rem 6rem}.tb-phone-copy .tb-title{font-size:2.3rem}.tb-phone-copy .tb-btn{display:flex;margin-top:.7rem}.tb-mobile-actionbar{position:absolute;bottom:0;left:0;right:0;background:#fff;color:#111;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;box-shadow:0 -5px 25px rgba(0,0,0,.12)}.tb-mobile-actionbar a{padding:1rem .4rem;font-size:.75rem;border-right:1px solid var(--tb-line)}
.tb-quote-card{max-width:900px;margin:auto;border:1px solid var(--tb-line);background:#fff;padding:2rem;box-shadow:var(--tb-shadow)}.tb-quote-steps{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:2rem}.tb-quote-steps span{text-align:center;display:grid;justify-items:center;gap:.35rem}.tb-quote-steps span:before{content:"";width:34px;height:34px;border:1px solid var(--tb-line);border-radius:50%;grid-area:1/1}.tb-quote-steps span.active:before{background:var(--tb-accent);border-color:var(--tb-accent)}.tb-quote-steps small{font-size:.68rem}.tb-service-choice{grid-template-columns:repeat(4,1fr);margin-top:1rem}.tb-service-choice button{min-height:120px;border:1px solid var(--tb-line);background:#fff;border-radius:var(--tb-r-sm);padding:1rem}.tb-service-choice button.selected{background:var(--tb-accent);color:#fff}.tb-quote-progress{height:4px;background:#eee;margin:1.5rem 0}.tb-quote-progress i{display:block;width:25%;height:100%;background:var(--tb-accent)}.tb-quote-footer{display:flex;justify-content:space-between}
.tb-callback-layout{display:grid;grid-template-columns:.8fr 1.2fr;min-height:560px}.tb-callback-form{padding:2.5rem;display:grid;align-content:center;gap:.8rem;border-radius:var(--tb-r-md) 0 0 var(--tb-r-md)}.tb-callback-form input,.tb-callback-form select{min-height:46px;border:1px solid var(--tb-line);padding:0 .8rem;background:#fff}.tb-callback-person{border-radius:0 var(--tb-r-md) var(--tb-r-md) 0;min-height:560px}
.tb-btn--danger{background:#c71f28;color:#fff}.tb-emergency-hero{min-height:640px;color:#fff;position:relative;display:grid;align-items:center}.tb-emergency-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,9,15,.9),rgba(4,9,15,.35))}.tb-emergency-hero__inner{position:relative;z-index:2;max-width:760px}.tb-emergency-badge{display:inline-block;background:#bd1f26;padding:.35rem .7rem;border-radius:var(--tb-r-pill);font-size:.72rem;font-weight:700;text-transform:uppercase}.tb-emergency-points{display:flex;gap:1.5rem;flex-wrap:wrap;margin:1.3rem 0}.tb-emergency-link{display:block;margin-top:1rem}.tb-emergency-metrics{position:absolute;z-index:2;bottom:0;left:0;right:0;background:rgba(5,12,20,.88);display:flex;justify-content:center;gap:5rem;padding:1rem}.tb-emergency-metrics div{display:grid;text-align:center}.tb-emergency-metrics strong{font-size:1.5rem}
.tb-status-layout{display:grid;grid-template-columns:1fr .8fr;gap:2rem;align-items:stretch}.tb-open-status{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #94d7a5;border-radius:var(--tb-r-pill);padding:.25rem .65rem;color:#217a35;font-weight:700}.tb-open-status i{width:8px;height:8px;background:#27a345;border-radius:50%}.tb-hours{margin:1.2rem 0}.tb-hours div{display:flex;justify-content:space-between;padding:.6rem 0;border-bottom:1px solid var(--tb-line)}.tb-live-box{display:grid;gap:.5rem;background:#eaf8ec;border:1px solid #b7dfbd;padding:1rem;border-radius:var(--tb-r-sm)}.tb-live-box small{color:var(--tb-muted)}.tb-status-person{min-height:520px;border-radius:var(--tb-r-md)}
.tb-emergency-call{background:#bd151c;color:#fff}.tb-emergency-call__inner{display:grid;grid-template-columns:90px 1fr 1fr;gap:1.5rem;align-items:center;padding:2rem 0}.tb-call-icon{width:72px;height:72px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;font-size:2rem}.tb-emergency-call h2{margin:.2rem 0;font:400 1.4rem var(--tb-font-display)}.tb-emergency-call strong{display:block;font:400 2.6rem var(--tb-font-display)}.tb-emergency-call small{display:block}.tb-emergency-list{display:grid;gap:.45rem}.tb-emergency-whatsapp{background:#fff;color:#111;padding:1rem;text-align:center}.tb-emergency-whatsapp .tb-btn{margin-left:1rem}
.tb-response-grid{grid-template-columns:repeat(3,1fr);margin-top:1.4rem}.tb-response-grid article{padding:1.5rem}.tb-response-grid span{font-size:.72rem;color:#b02027;font-weight:700}.tb-response-grid strong{display:block;font:400 2rem var(--tb-font-display);margin:.3rem 0}.tb-response-trust{display:flex;gap:2rem;justify-content:center;padding:1rem;border-bottom:1px solid var(--tb-line)}.tb-response-guarantee{background:var(--tb-dark);color:#fff;padding:1rem;text-align:center}
.tb-job-diary{display:grid;gap:.6rem;margin:1.5rem 0}.tb-job-diary article{display:grid;grid-template-columns:70px 1fr 140px;gap:1rem;align-items:center;padding:1rem;border-top:1px solid var(--tb-line)}.tb-day{display:grid;place-items:center;background:#eee;border-radius:var(--tb-r-sm);padding:.5rem}.tb-day small{text-transform:uppercase}.tb-day strong{font-size:1.6rem}.tb-job-diary .tb-media{min-height:90px;border-radius:var(--tb-r-sm)}
.tb-transformation-story{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center}.tb-ba-slider.compact{height:460px}.tb-project-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1.5rem 0}.tb-project-facts span{display:grid}.tb-project-facts small{color:var(--tb-muted)}
.tb-case-timeline{max-width:850px}.tb-case-timeline>article{display:grid;grid-template-columns:60px 1fr;gap:1rem;position:relative;padding-bottom:1.4rem}.tb-case-timeline>article:not(:last-of-type):before{content:"";position:absolute;left:29px;top:48px;bottom:-4px;width:1px;background:var(--tb-accent)}.tb-case-icon{width:46px;height:46px;border:1px solid var(--tb-accent);border-radius:50%;display:grid;place-items:center;background:#fff;z-index:1}.tb-case-timeline h3{margin:.3rem 0}.tb-case-review{padding:1.5rem;margin-left:60px}.tb-case-review span{color:var(--tb-accent)}
.tb-spec-table{margin:1.5rem 0;border:1px solid var(--tb-line);background:#fff}.tb-spec-table>div{display:grid;grid-template-columns:1fr 1.5fr 1fr .7fr;padding:.8rem 1rem;border-top:1px solid var(--tb-line);gap:1rem}.tb-spec-table .head{border-top:0;background:#f4f3ef}.tb-spec-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.tb-spec-badges span{border:1px solid var(--tb-line);padding:1rem;text-align:center;background:#fff}
@media(max-width:800px){.tb-callback-layout,.tb-status-layout,.tb-transformation-story{grid-template-columns:1fr}.tb-callback-form,.tb-callback-person{border-radius:var(--tb-r-md)}.tb-callback-person{min-height:380px}.tb-service-choice{grid-template-columns:repeat(2,1fr)}.tb-emergency-call__inner{grid-template-columns:70px 1fr}.tb-emergency-list{grid-column:1/-1}.tb-response-grid{grid-template-columns:1fr}.tb-job-diary article{grid-template-columns:60px 1fr}.tb-job-diary .tb-media{grid-column:2}.tb-project-facts,.tb-spec-badges{grid-template-columns:1fr}.tb-spec-table{overflow:auto}.tb-spec-table>div{min-width:700px}}
@media(max-width:520px){.tb-quote-benefits{gap:.7rem;font-size:.68rem}.tb-sticky-quote{top:auto;bottom:68px}.tb-quote-steps small{display:none}.tb-service-choice{grid-template-columns:1fr 1fr}.tb-emergency-metrics{gap:1rem}.tb-emergency-points,.tb-response-trust{display:grid}.tb-emergency-call__inner{grid-template-columns:1fr;text-align:center}.tb-call-icon{margin:auto}.tb-job-diary article{grid-template-columns:1fr}.tb-job-diary .tb-media{grid-column:auto}.tb-case-review{margin-left:0}}

/* v6 reviews/process/services */
.tb-google-wall{display:grid;grid-template-columns:.8fr 1.2fr;gap:2rem;align-items:center}.tb-google-brand{font-size:2rem;font-weight:700;margin-top:1rem}.tb-rating-large{font:400 3rem var(--tb-font-display)}.tb-rating-large b,.tb-stars-small{color:var(--tb-accent);letter-spacing:.08em}.tb-review-stack{display:grid;gap:.7rem}.tb-review-mini{padding:1rem;display:grid;grid-template-columns:32px 1fr auto;gap:.3rem .7rem}.tb-review-mini p,.tb-review-mini>div:nth-of-type(2){grid-column:2/-1}.tb-review-source{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#4285f4;font-weight:800}
.tb-recent-reviews{grid-template-columns:repeat(3,1fr);max-width:1000px;margin:auto}.tb-recent-reviews article{padding:1.4rem}.tb-review-summary-line{display:flex;justify-content:space-between;margin-top:2rem;border-top:1px solid var(--tb-line);padding-top:1rem;font-size:.8rem}.tb-review-carousel-bg{padding:5rem 0 0;color:#fff}.tb-review-feature{max-width:560px;margin:auto;background:rgba(6,13,21,.78);padding:2.4rem;backdrop-filter:blur(8px)}.tb-review-feature blockquote{font:400 1.5rem/1.45 var(--tb-font-display)}.tb-quote-mark{font-size:4rem;color:var(--tb-accent)}.tb-carousel-round{width:44px;height:44px;border-radius:50%;border:0}.tb-review-source-strip{margin-top:3rem;background:#fff;color:#111;display:flex;justify-content:space-around;padding:1.3rem}
.tb-rating-layout{display:grid;grid-template-columns:.8fr 1fr;gap:1rem}.tb-rating-panel,.tb-rating-reasons{padding:2rem;border-radius:var(--tb-r-md)}.tb-rating-number{font:400 4rem var(--tb-font-display)}.tb-rating-bars>div{display:grid;grid-template-columns:30px 1fr 35px;align-items:center;gap:.5rem}.tb-rating-bars i{height:5px;background:rgba(255,255,255,.15)}.tb-rating-bars b{display:block;height:100%;background:var(--tb-accent);width:88%;font-size:0}.tb-rating-bars em{font-style:normal;font-size:.75rem}.tb-rating-reasons{background:#fff;border:1px solid var(--tb-line)}.tb-rating-reasons div{display:flex;justify-content:space-between;padding:1rem 0;border-top:1px solid var(--tb-line)}
.tb-process-three{grid-template-columns:repeat(3,1fr);text-align:center}.tb-process-three article{position:relative;padding:1.5rem}.tb-process-three article>span{width:52px;height:52px;border-radius:50%;border:1px solid var(--tb-accent);display:grid;place-items:center;margin:auto;font:400 1.5rem var(--tb-font-display)}.tb-process-three article:not(:last-child):after{content:"";position:absolute;top:42px;left:65%;right:-35%;height:1px;background:var(--tb-accent)}.tb-process-symbol{font-size:2.5rem;margin:1.5rem}.tb-process-promise{text-align:center;border-top:1px solid var(--tb-line);padding-top:1.3rem}
.tb-process-horizontal{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}.tb-process-horizontal article{padding:1rem;position:relative}.tb-process-horizontal article>div{width:60px;height:60px;border:1px solid var(--tb-accent);border-radius:50%;display:grid;place-items:center;margin:auto;font-size:1.5rem}.tb-process-horizontal article:not(:last-child):after{content:"";height:1px;background:var(--tb-accent);position:absolute;top:40px;left:65%;right:-35%}.tb-process-caption{text-align:center;margin-top:2rem}
.tb-process-illustrated{grid-template-columns:repeat(4,1fr);text-align:center}.tb-illustration{min-height:180px;border-radius:50% 50% 45% 45%;background:linear-gradient(145deg,#f0ede7,#dfe4e6);margin-bottom:1rem}.tb-process-note{max-width:700px;margin:2rem auto 0;background:#f6f1e8;padding:1rem;text-align:center}
.tb-project-journey{min-height:650px;position:relative;color:#fff}.tb-journey-path{position:relative;height:650px}.tb-journey-path:before{content:"";position:absolute;left:12%;top:18%;width:55%;height:58%;border:3px solid rgba(255,255,255,.65);border-width:3px 0 3px 3px;border-radius:50% 0 0 50%;transform:rotate(-10deg)}.tb-journey-path article{position:absolute;left:var(--x);top:var(--y);display:flex;gap:.8rem;align-items:center}.tb-journey-path b{width:38px;height:38px;background:var(--tb-accent);color:#111;border-radius:50%;display:grid;place-items:center}.tb-journey-path small{display:block;color:rgba(255,255,255,.7)}
.tb-service-prices{grid-template-columns:repeat(3,1fr)}.tb-service-prices .body{padding:1rem;display:grid;gap:.4rem}.tb-service-prices strong{font:400 2.2rem var(--tb-font-display)}.tb-service-all{display:flex;justify-content:center;margin-top:1rem}.tb-service-faq{display:grid;grid-template-columns:.7fr 1.3fr;gap:1rem}.tb-service-faq aside{padding:1.5rem}.tb-service-price{font:400 3rem var(--tb-font-display)}.tb-service-faq-list details{border-top:1px solid var(--tb-line);padding:1rem}.tb-service-faq-list summary{cursor:pointer;font-weight:600}
.tb-service-ba{display:grid;grid-template-columns:.7fr 1.3fr;gap:2rem;align-items:center}.tb-service-ba .tb-title span{display:block}.tb-service-compare{background:#fff;border:1px solid var(--tb-line);overflow:auto}.tb-service-compare>div{display:grid;grid-template-columns:1.3fr repeat(3,1fr);min-width:760px}.tb-service-compare>div>*{padding:1rem;border-right:1px solid var(--tb-line);border-top:1px solid var(--tb-line)}.tb-service-compare .head>*{border-top:0}.tb-service-compare .best{background:var(--tb-accent);color:#fff;position:relative}.tb-service-compare .best small{display:block;font-size:.6rem;text-transform:uppercase}.tb-service-compare .prices strong{font-size:1.2rem}
@media(max-width:800px){.tb-google-wall,.tb-rating-layout,.tb-service-faq,.tb-service-ba{grid-template-columns:1fr}.tb-recent-reviews,.tb-process-three,.tb-service-prices{grid-template-columns:1fr}.tb-process-horizontal,.tb-process-illustrated{grid-template-columns:repeat(2,1fr)}.tb-process-horizontal article:after,.tb-process-three article:after{display:none}.tb-review-summary-line,.tb-review-source-strip{display:grid;gap:.7rem}.tb-project-journey{min-height:760px}.tb-journey-path{height:760px}.tb-journey-path article{position:relative;left:auto!important;top:auto!important;margin:1rem 0}.tb-journey-path:before{display:none}}
@media(max-width:520px){.tb-process-horizontal,.tb-process-illustrated{grid-template-columns:1fr}}

/* v7 credentials + team/local */
.tb-credential-cards{grid-template-columns:repeat(4,1fr)}.tb-credential-cards article{padding:1.2rem;text-align:center;display:grid;gap:.45rem}.tb-credential-logo{height:72px;display:grid;place-items:center;font:700 1.3rem var(--tb-font-display);border-bottom:1px solid var(--tb-line)}.tb-verification-status{font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:#2c7a43}
.tb-membership-grid{grid-template-columns:repeat(4,1fr)}.tb-membership-grid article{border:1px solid rgba(255,255,255,.14);padding:1.3rem;display:grid;gap:.5rem;text-align:center}.tb-membership-mark{min-height:80px;display:grid;place-items:center;font:700 1.7rem var(--tb-font-display)}
.tb-guarantee-panel{display:grid;grid-template-columns:.7fr 1fr;gap:2rem}.tb-guarantee-list article{display:grid;grid-template-columns:48px 1fr;gap:1rem;padding:1rem 0;border-top:1px solid var(--tb-line)}.tb-guarantee-list article>div{width:42px;height:42px;border:1px solid var(--tb-accent);border-radius:50%;display:grid;place-items:center}.tb-guarantee-list small{display:block;color:var(--tb-muted)}.tb-guarantee-panel aside{grid-column:1/-1;padding:1.2rem;display:flex;gap:1rem;align-items:center}
.tb-insurance-layout{display:grid;grid-template-columns:.7fr 1fr;gap:2rem;align-items:center}.tb-insurance-card{background:#fff;color:#111;padding:2rem;border-radius:var(--tb-r-md)}.tb-insurance-shield{font-size:3rem;color:var(--tb-accent)}.tb-insurance-values{grid-template-columns:repeat(2,1fr);margin:1rem 0}.tb-insurance-values article{padding:1rem;border:1px solid var(--tb-line);display:grid}.tb-insurance-values strong{font:400 1.7rem var(--tb-font-display)}
.tb-manufacturer-layout{display:grid;grid-template-columns:.65fr 1.35fr;gap:2rem}.tb-manufacturer-list{display:grid;gap:.5rem}.tb-manufacturer-list article{display:grid;grid-template-columns:1fr 180px 100px;align-items:center;padding:1rem}.tb-manufacturer-logo{font-weight:800}
.tb-owner-layout{display:grid;grid-template-columns:.8fr 1fr;max-width:1000px;margin:auto}.tb-owner-photo{min-height:570px}.tb-owner-layout>div:last-child{padding:3rem;background:#fff}.tb-owner-signature{font:italic 1.5rem var(--tb-font-display);margin-top:1.5rem}.tb-owner-proof{max-width:1000px;margin:auto;display:flex;justify-content:space-around;background:#f4efe7;padding:1rem;font-size:.78rem}
.tb-small-team{grid-template-columns:repeat(4,1fr);max-width:1000px;margin:auto}.tb-small-team article{overflow:hidden}.tb-small-team .tb-media{min-height:300px}.tb-small-team article>div:last-child{padding:1rem;display:grid}.tb-small-team small{color:var(--tb-muted)}.tb-team-note{max-width:800px;margin:1rem auto;background:#f2e8d9;padding:1rem;text-align:center}
.tb-team-photo{min-height:620px;position:relative;color:#fff;display:flex;align-items:end}.tb-team-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(5,12,20,.88))}.tb-team-photo__copy{position:relative;z-index:2;padding-bottom:8rem}.tb-team-photo__copy p{max-width:520px}.tb-team-values{position:absolute;z-index:3;left:0;right:0;bottom:0;background:#fff;color:#111;display:grid;grid-template-columns:repeat(4,1fr);padding:1.3rem}.tb-team-values span{display:grid;text-align:center;gap:.4rem}
.tb-local-story{display:grid;grid-template-columns:.7fr 1.3fr;gap:1.5rem}.tb-local-landmark{min-height:330px}.tb-local-stats{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr)}.tb-local-stats article{border:1px solid var(--tb-line);padding:1rem;text-align:center;display:grid}.tb-local-stats strong{font:400 1.8rem var(--tb-font-display)}.tb-local-story blockquote{grid-column:1/-1;margin:1rem 0 0;background:#f1e7d9;padding:1.5rem;display:flex;justify-content:center;gap:1rem;font:400 1.2rem var(--tb-font-display)}
@media(max-width:800px){.tb-credential-cards,.tb-membership-grid,.tb-small-team{grid-template-columns:repeat(2,1fr)}.tb-guarantee-panel,.tb-insurance-layout,.tb-manufacturer-layout,.tb-owner-layout,.tb-local-story{grid-template-columns:1fr}.tb-manufacturer-list article{grid-template-columns:1fr}.tb-team-values,.tb-local-stats{grid-template-columns:repeat(2,1fr)}.tb-owner-proof{display:grid;gap:.5rem}.tb-owner-photo{min-height:420px}}
@media(max-width:520px){.tb-credential-cards,.tb-membership-grid,.tb-small-team,.tb-team-values,.tb-local-stats,.tb-insurance-values{grid-template-columns:1fr}.tb-team-photo__copy{padding-bottom:18rem}}

/* v8 availability + finance + conversion footer */
.tb-availability-card{max-width:820px;margin:auto;padding:2rem;text-align:center}.tb-availability-status{display:inline-flex;align-items:center;gap:1rem;background:#eaf5e8;padding:1rem 1.6rem;border-radius:var(--tb-r-md);color:#1d6e26}.tb-availability-status>span{width:42px;height:42px;border:2px solid currentColor;border-radius:50%;display:grid;place-items:center;font-size:1.4rem}.tb-availability-status div{display:grid;text-align:left}.tb-availability-status strong{font-size:1.25rem}.tb-availability-benefits{grid-template-columns:repeat(3,1fr);max-width:600px;margin:1.5rem auto}.tb-availability-benefits span{padding:1rem;border:1px solid var(--tb-line);border-radius:var(--tb-r-sm);display:grid;gap:.3rem}
.tb-next-slot{max-width:620px;margin:auto;padding:2rem;display:grid;grid-template-columns:70px 1fr;gap:1rem;align-items:center}.tb-next-slot-icon{width:58px;height:58px;border-radius:14px;background:#eaf5e8;color:#238235;display:grid;place-items:center;font-size:1.8rem}.tb-next-slot h2{color:#228335;margin:.2rem 0;font:400 2rem var(--tb-font-display)}.tb-next-slot-proof{grid-column:1/-1;background:#f3f4f2;padding:.9rem;display:flex;justify-content:space-around}.tb-next-slot>.tb-btn{grid-column:1/-1;justify-self:center}
.tb-seasonal-booking{max-width:900px;margin:auto;padding:2rem;display:grid;grid-template-columns:1fr 120px;gap:1rem;background:linear-gradient(135deg,#111c2c,#08111c);color:#fff}.tb-seasonal-booking[data-seasonal-theme=spring]{background:linear-gradient(135deg,#183528,#0b1d18)}.tb-seasonal-booking[data-seasonal-theme=summer]{background:linear-gradient(135deg,#293b56,#111b2a)}.tb-seasonal-booking[data-seasonal-theme=winter]{background:linear-gradient(135deg,#1d3348,#0a1725)}.tb-seasonal-icon{font-size:4.5rem;text-align:center;align-self:center}.tb-seasonal-periods{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);background:rgba(255,255,255,.06);border-radius:var(--tb-r-sm)}.tb-seasonal-periods div{padding:1rem;border-right:1px solid rgba(255,255,255,.12);display:grid}.tb-seasonal-periods small{color:rgba(255,255,255,.65)}
.tb-finance-card{max-width:780px;margin:auto;padding:2rem;display:grid;grid-template-columns:80px 1fr auto;gap:1rem;align-items:center;background:linear-gradient(135deg,#f0f7ef,#fff)}.tb-finance-icon{width:68px;height:68px;border:2px solid #24843a;border-radius:50%;display:grid;place-items:center;color:#24843a;font:400 2.2rem var(--tb-font-display)}.tb-finance-card small{grid-column:3;color:var(--tb-muted)}
.tb-payment-stages{display:grid;grid-template-columns:repeat(3,1fr);max-width:850px;margin:auto;text-align:center}.tb-payment-stages article{position:relative;padding:1.5rem}.tb-payment-stages span{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;margin:auto;background:#258438;color:#fff;font-weight:700}.tb-payment-stages article:nth-child(2) span{background:#2b66c4}.tb-payment-stages article:nth-child(3) span{background:#6555c9}.tb-payment-stages article:not(:last-child):after{content:"";position:absolute;top:45px;left:65%;right:-35%;height:1px;background:var(--tb-line)}.tb-payment-note{max-width:700px;margin:1rem auto;background:#ecf3fc;padding:1rem;color:#244b88}
.tb-deposit-card{max-width:850px;margin:auto;padding:2rem;display:grid;grid-template-columns:120px 1fr;gap:1.5rem;background:linear-gradient(135deg,#fff9e8,#fff)}.tb-deposit-icon{width:100px;height:100px;border-radius:50%;background:#f4b400;color:#fff;display:grid;place-items:center;font-size:2.5rem}.tb-deposit-note{grid-column:1/-1;background:#fff3c9;padding:1rem;text-align:center}
.tb-conversion-footer{background:#0b1727;color:#fff}.tb-conversion-main{display:grid;grid-template-columns:1.2fr repeat(3,1fr);align-items:center}.tb-conversion-main>div,.tb-conversion-main>a{padding:1.5rem;border-right:1px solid rgba(255,255,255,.12)}.tb-conversion-main a{display:grid;grid-template-columns:45px 1fr;gap:.2rem .8rem;align-items:center}.tb-conversion-main a>span{grid-row:1/3;width:40px;height:40px;background:#23883a;border-radius:50%;display:grid;place-items:center}.tb-conversion-main small{color:rgba(255,255,255,.7)}.tb-conversion-proof{background:#fff;color:#111;display:flex;justify-content:space-between;gap:1rem;padding:1rem;font-size:.82rem}
.tb-mobile-contact{position:fixed;z-index:80;left:50%;bottom:10px;transform:translateX(-50%);display:none;width:min(94%,420px);background:#1f8f35;border-radius:18px;overflow:hidden;box-shadow:var(--tb-shadow-lg)}.tb-mobile-contact a{flex:1;color:#fff;padding:.9rem .4rem;text-align:center;border-right:1px solid rgba(255,255,255,.25);font-weight:700}
.tb-location-cta{display:grid;grid-template-columns:1fr .65fr;overflow:hidden}.tb-location-cta>div:first-child{padding:2rem}.tb-location-cta form{display:grid;grid-template-columns:1fr auto;gap:.5rem}.tb-location-cta input{min-height:46px;border:1px solid var(--tb-line);padding:0 .8rem}.tb-location-map{background:radial-gradient(circle at 60% 45%,#d4ead9,#edf0ec);position:relative;min-height:330px}.tb-location-map:before,.tb-location-map:after{content:"";position:absolute;border:1px solid rgba(38,133,64,.24);border-radius:45%;inset:16%}.tb-location-map:after{inset:30%;border-style:dashed}.tb-location-pin{position:absolute;left:58%;top:46%;font-size:3rem;color:#25843a}
@media(max-width:800px){.tb-finance-card,.tb-conversion-main,.tb-location-cta{grid-template-columns:1fr}.tb-finance-card small{grid-column:auto}.tb-payment-stages{grid-template-columns:1fr}.tb-payment-stages article:after{display:none}.tb-conversion-proof{display:grid}.tb-mobile-contact{display:flex}.tb-seasonal-booking{grid-template-columns:1fr 90px}}
@media(max-width:520px){.tb-availability-benefits,.tb-seasonal-periods{grid-template-columns:1fr}.tb-next-slot{grid-template-columns:1fr;text-align:center}.tb-next-slot-icon{margin:auto}.tb-next-slot-proof{display:grid;gap:.5rem}.tb-seasonal-booking{grid-template-columns:1fr}.tb-seasonal-icon{grid-row:1;justify-self:end;font-size:3rem}.tb-deposit-card{grid-template-columns:1fr}.tb-deposit-icon{margin:auto}.tb-location-cta form{grid-template-columns:1fr}}


/* Component contract */
.tb-component {
  position: relative;
  color: var(--tb-colour-text);
}

.tb-component.tb-dark,
.tb-component .tb-dark {
  color: var(--tb-colour-white);
}

.tb-component [data-state="hidden"] {
  display: none !important;
}

.tb-component [data-state="disabled"] {
  opacity: .55;
  pointer-events: none;
}

.tb-component [data-visibility="mobile"] {
  display: none;
}

@media (max-width: 800px) {
  .tb-component [data-visibility="desktop"] { display: none !important; }
  .tb-component [data-visibility="mobile"] { display: initial; }
}


/* Theme adapter: one structural bridge for all 10 themes */
body {
  font-size: var(--tb-theme-body-size);
}

.tb-container {
  width: min(calc(100% - 2 * var(--tb-page-gutter)), var(--tb-theme-content-width));
}

.tb-section {
  padding-block: var(--tb-theme-section-space);
}

.tb-title,
.tb-component h1,
.tb-component h2 {
  font-weight: var(--tb-theme-heading-weight);
  letter-spacing: var(--tb-theme-heading-tracking);
  text-transform: var(--tb-theme-heading-transform);
}

.tb-card {
  border: var(--tb-theme-card-border);
  border-radius: var(--tb-theme-card-radius);
  box-shadow: var(--tb-theme-card-shadow);
  background: var(--tb-theme-card-bg);
}

.tb-btn {
  min-height: var(--tb-theme-cta-min-height);
  border-radius: var(--tb-theme-button-radius);
}

.tb-header {
  min-height: var(--tb-theme-nav-height);
}

.tb-nav {
  text-transform: var(--tb-theme-nav-transform);
  letter-spacing: var(--tb-theme-nav-tracking);
}

.tb-hero {
  min-height: var(--tb-theme-hero-min-height);
}

.tb-hero__copy {
  max-width: var(--tb-theme-hero-copy-width);
  text-align: var(--tb-theme-hero-align);
}

.tb-grid {
  gap: var(--tb-theme-grid-gap);
}

.tb-media,
.tb-component img {
  border-radius: var(--tb-theme-image-radius);
  filter: var(--tb-theme-image-filter);
}

.tb-service__icon,
.tb-icon,
.tb-guarantee-icon,
.tb-process-symbol,
.tb-case-icon {
  width: var(--tb-theme-icon-size);
  height: var(--tb-theme-icon-size);
  border-radius: var(--tb-theme-icon-radius);
}

[data-effect="reveal-up"] { transform: translateY(var(--tb-theme-motion-distance)); }
[data-effect="reveal-left"] { transform: translateX(calc(var(--tb-theme-motion-distance) * -1)); }
[data-effect="reveal-right"] { transform: translateX(var(--tb-theme-motion-distance)); }

/* Theme-aware card/layout hooks, shared rather than duplicated */
[data-site-theme] .tb-section + .tb-section {
  border-top: var(--tb-theme-section-edge);
}

[data-site-theme] .tb-component .tb-eyebrow {
  font-weight: var(--tb-font-weight-bold);
}

[data-site-theme] .tb-component .tb-copy {
  max-width: 62ch;
}

@media (max-width: 1100px) {
  :root { --tb-page-gutter: clamp(1rem, 2.5vw, 1.6rem); }
}

@media (max-width: 800px) {
  .tb-title,
  .tb-component h1,
  .tb-component h2 {
    word-break: normal;
    overflow-wrap: anywhere;
  }

  .tb-hero {
    min-height: min(var(--tb-theme-hero-min-height), 580px);
  }

  .tb-component .tb-btn {
    min-height: 48px;
  }
}

@media (max-width: 520px) {
  :root { --tb-page-gutter: 1rem; }
  .tb-component .tb-btn { width: 100%; }
}
