/* T&J Builders: site styles carried across from the Squarespace design.
   Palette and type scale taken from the live site's theme settings (Oct 2026). */
:root{
  --tj-blue:#214B9F;
  --tj-blue-dark:#1a3c80;
  --tj-black:#000;
  --tj-ink:#272727;
  --tj-white:#FAFAFA;
  --tj-light:#FFFFFF;
  --tj-accent:#DCDCDC;
  --tj-dark:#1C1C1C;
  --tj-font:"Inter Tight",-apple-system,"Helvetica Neue",Arial,sans-serif;
  --tj-h1:3.7rem; --tj-h2:2.3rem; --tj-h3:1.9rem; --tj-h4:1.7rem;
  --tj-p:1.1rem; --tj-p-lg:1.3rem; --tj-p-sm:.9rem;
  --sqs-site-gutter:2vw;
  --sqs-mobile-site-gutter:6vw;
  --sqs-site-max-width:1400px;
  --tj-header-h:110px;
}
@media (max-width:767px){
  :root{--tj-h1:2.5rem;--tj-h2:1.8rem;--tj-h3:1.55rem;--tj-h4:1.4rem;--tj-p:1.05rem;--tj-header-h:76px}
}
html{scroll-behavior:smooth;font-size:17px}
body.tj{background:var(--tj-white);color:var(--tj-black);font-family:var(--tj-font);font-weight:300;letter-spacing:-.02em;line-height:1.5;font-size:17px;margin:0}
body.tj *{box-sizing:border-box}
/* Inter Tight stands in for Halyard Display: match its x-height (0.48) so sizes, widths and wrapping line up */
body.tj{font-size-adjust:ex-height 0.48}
body.tj .site,body.tj .site-content,body.tj .content-area,body.tj .site-main,body.tj .inside-article,body.tj .entry-content,body.tj article{margin:0!important;padding:0!important;max-width:none!important;width:100%!important;background:transparent!important;border:0!important}
body.tj .grid-container{max-width:none}
body.tj .entry-header,body.tj .site-info{display:none}
body.tj .site-footer{background:transparent;padding:0;margin:0}
body.tj h1,body.tj h2,body.tj h3,body.tj h4{font-family:var(--tj-font);font-weight:300;letter-spacing:.02em;line-height:1.3;margin:0 0 .6em;color:inherit}
body.tj h1{font-size:var(--tj-h1);line-height:1.16} body.tj h2{font-size:var(--tj-h2);line-height:1.23} body.tj h3{font-size:var(--tj-h3);line-height:1.25} body.tj h4{font-size:var(--tj-h4);line-height:1.26}
body.tj p,body.tj li{font-size:var(--tj-p);margin:0 0 1em}
body.tj .tj-large{font-size:var(--tj-p-lg)} body.tj .tj-small{font-size:var(--tj-p-sm)}
body.tj a{color:inherit;text-decoration:underline;text-underline-offset:.15em}
body.tj .tj-text>*:last-child{margin-bottom:0}
body.tj .tj-text ul{padding-left:1.4em}
body.tj img{max-width:100%;height:auto;display:block}
body.tj strong{font-weight:600}

/* ---------- sections ---------- */
.tj-sec{--tj-pad:3.3vmax;position:relative;display:flex;flex-direction:column;justify-content:center;padding:var(--tj-pad) 0;overflow:hidden}
/* Squarespace pads by section height; custom-height sections have none */
.tj-sec--fluid.tj-h-medium{--tj-pad:6.6vmax}.tj-sec--fluid.tj-h-large{--tj-pad:9.9vmax}
.tj-sec--fluid.tj-h-custom{--tj-pad:0px}
/* first section extends under the header (its height counts toward the section's min-height), as on Squarespace */
.entry-content>.tj-sec:first-child{margin-top:calc(-1 * var(--tj-header-h));padding-top:calc(var(--tj-pad) + var(--tj-header-h))}
.tj-sec.tj-h-small{min-height:33vh}.tj-sec.tj-h-medium{min-height:66vh}.tj-sec.tj-h-large{min-height:100vh}
.tj-sec.tj-h-custom{min-height:var(--tj-custom-h,auto)}
.tj-sec.tj-va-top{justify-content:flex-start}.tj-sec.tj-va-bottom{justify-content:flex-end}
.tj-sec-inner{position:relative;z-index:1;width:100%}
.tj-bg{position:absolute;inset:0;overflow:hidden;z-index:0}
.tj-bg-img{width:100%!important;height:100%!important;object-fit:cover;max-width:none!important}
.tj-bg-overlay{position:absolute;inset:0;background:#000}
.tj-theme-white,.tj-theme-white-bold{background:var(--tj-white);color:var(--tj-black)}
.tj-theme-light,.tj-theme-light-bold{background:var(--tj-light);color:var(--tj-black)}
.tj-theme-bright{background:var(--tj-accent);color:var(--tj-black)}
.tj-theme-bright-inverse{background:var(--tj-black);color:var(--tj-white)}
.tj-theme-dark,.tj-theme-dark-bold{background:var(--tj-dark);color:var(--tj-white)}
.tj-theme-black,.tj-theme-black-augmented{background:var(--tj-black);color:var(--tj-white)}
.tj-sec:has(.tj-bg){background:#000}

/* ---------- fluid engine (grid CSS is inline per section) ---------- */
.fluid-engine .fe-block{position:relative;display:flex;flex-direction:column;min-width:0}
.fluid-engine .fe-block>.sqs-block{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-start;width:100%}
.fluid-engine .sqs-block-alignment-wrapper{display:flex;flex-direction:column;height:100%;width:100%}
.fluid-engine .tj-text{width:100%}
.fluid-engine .fe-block:has(.tj-fill)>.sqs-block,.fluid-engine .fe-block:has(.tj-fill) .sqs-block-alignment-wrapper{height:100%;min-height:100%}
.fluid-engine .tj-fill{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important}
.tj-fit-cover{object-fit:cover}.tj-fit-contain{object-fit:contain}
.tj-img-link{position:absolute;inset:0;display:block}
.tj-fig{margin:0;position:absolute;inset:0}.tj-fig figcaption{position:absolute;bottom:0;padding:.6em;font-size:var(--tj-p-sm)}
.tj-code,.tj-embed{width:100%}
.tj-embed iframe,.tj-code iframe{max-width:100%;border:0}
.tj-hr{border:0;border-top:1px solid currentColor;opacity:.3;width:100%}

/* ---------- buttons ---------- */
.tj-btn-wrap{display:flex;width:100%}
.tj-align-center{justify-content:center}.tj-align-right{justify-content:flex-end}.tj-align-left{justify-content:flex-start}
body.tj .tj-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;background:var(--tj-blue);color:#fff;border:1px solid var(--tj-blue);border-radius:300px;font-family:var(--tj-font);font-weight:400;letter-spacing:.01em;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background .2s,opacity .2s;cursor:pointer}
body.tj .tj-btn:hover{background:var(--tj-blue-dark);color:#fff}
/* sizes measured from the live site: Squarespace sizes by button type, not by small/medium/large */
body.tj .tj-btn{font-size:1.25rem;padding:.9em 2.6em;color:var(--tj-white)}
.tj-btn--stretch{width:100%;height:100%}
body.tj .tj-btn--secondary{background:transparent;color:var(--tj-blue);border:2px solid var(--tj-blue);font-size:1.1rem;font-weight:300;padding:.8em 1.336em}
body.tj .tj-btn--secondary:hover{background:transparent;color:var(--tj-blue-dark);border-color:var(--tj-blue-dark)}
body.tj .tj-theme-bright .tj-btn--secondary{color:#000;border-color:#000}
body.tj .tj-theme-dark .tj-btn--secondary,body.tj .tj-theme-black .tj-btn--secondary{color:var(--tj-white);border-color:var(--tj-white)}
body.tj .tj-btn--tertiary{background:transparent;border:0;color:inherit;font-size:1rem;padding:.8em 1.336em;text-decoration:underline}

/* ---------- list sections (cards, carousels) ---------- */
.tj-list-title{max-width:var(--sqs-site-max-width);margin:0 auto 2.5vw;padding:0 var(--sqs-site-gutter)}
body.tj .tj-list-title p{font-size:var(--tj-h3);letter-spacing:.02em;line-height:1.3}
.tj-list-grid{list-style:none;margin:0 auto;padding:0 var(--sqs-site-gutter);max-width:var(--sqs-site-max-width);display:grid;grid-template-columns:repeat(var(--tj-cols,3),minmax(0,1fr));gap:20px}
.tj-li{margin:0;display:flex;flex-direction:column;align-items:center}
.tj-cards .tj-li{background:var(--tj-white);padding:20px}
.tj-theme-white .tj-cards .tj-li{background:#fff}
.tj-li-media{width:100%;margin:0 auto 4%}
.tj-li{align-items:stretch}
.tj-li-img{width:100%!important;aspect-ratio:var(--tj-ar,auto);object-fit:cover}
.tj-li-body{width:100%;display:flex;flex-direction:column;flex:1}
.tj-li-title{font-size:var(--tj-li-title,var(--tj-h3))!important;margin-bottom:.3em!important}
body.tj .tj-li-desc p,body.tj .tj-li-desc li{font-size:var(--tj-li-body,1rem)}
body.tj .tj-li .tj-btn{font-size:var(--tj-li-btn,.9rem)}
.tj-li-body .tj-btn-wrap{margin-top:auto;padding-top:.6em}
.tj-list-btn{max-width:var(--sqs-site-max-width);margin:2vw auto 0;padding:0 var(--sqs-site-gutter)}
@media (max-width:767px){.tj-list-grid{grid-template-columns:1fr}}

.tj-carousel{position:relative;max-width:var(--sqs-site-max-width);margin:0 auto;padding:0 var(--sqs-site-gutter)}
.tj-car-track{list-style:none;margin:0;padding:0;display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.tj-car-track::-webkit-scrollbar{display:none}
.tj-car-track>.tj-li{flex:0 0 calc((100% - 20px*(var(--tj-cols,3) - 1))/var(--tj-cols,3));scroll-snap-align:start}
.tj-carousel--banner-slideshow,.tj-carousel--reel{max-width:none;padding:0}
.tj-carousel--banner-slideshow .tj-car-track{gap:0}
.tj-carousel--banner-slideshow .tj-li-media{margin:0}
.tj-carousel--banner-slideshow .tj-li-img{height:80vh;aspect-ratio:auto}
.tj-carousel--carousel.tj-adjacent:not(.tj-cards) .tj-car-track>.tj-li{flex-basis:88%}
.tj-car-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:60px;height:60px;border-radius:50%;border:0;background:rgba(39,39,39,.85);color:#fff;font-size:26px;line-height:1;cursor:pointer}
.tj-car-prev{left:calc(var(--sqs-site-gutter) + 20px)}.tj-car-next{right:calc(var(--sqs-site-gutter) + 20px)}
.tj-carousel--carousel.tj-cards .tj-car-btn{top:auto;bottom:-80px;transform:none}
.tj-carousel--carousel.tj-cards{margin-bottom:90px}
@media (max-width:767px){.tj-car-track>.tj-li{flex-basis:85%!important}.tj-car-btn{width:44px;height:44px;font-size:20px}}

/* ---------- galleries ---------- */
.tj-gallery{max-width:var(--sqs-site-max-width);margin:0 auto;padding:0 var(--sqs-site-gutter)}
.tj-gallery--masonry{display:flex;gap:10px;align-items:flex-start}
.tj-gallery--masonry .tj-m-col{flex:1;display:flex;flex-direction:column;gap:10px;min-width:0}
.tj-gallery--masonry .tj-g-item{display:block}
.tj-gallery--grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tj-gallery--grid .tj-g-img{aspect-ratio:3/2;object-fit:cover;width:100%}
.tj-g-img{width:100%!important}
.tj-carousel--reel .tj-car-track{gap:10px}
.tj-carousel--reel .tj-car-track>.tj-li{flex:0 0 auto}
.tj-carousel--reel .tj-g-img{height:60vh;width:auto!important;max-width:none}
@media (max-width:767px){.tj-gallery--grid{grid-template-columns:repeat(2,1fr)}.tj-carousel--reel .tj-g-img{height:40vh}}
.tj-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(250,250,250,.97);display:flex;align-items:center;justify-content:center}
.tj-lightbox img{max-width:92vw;max-height:88vh;width:auto!important;height:auto!important}
.tj-lightbox button{position:absolute;background:none;border:0;font-size:34px;cursor:pointer;color:#272727;padding:16px}
.tj-lb-close{top:10px;right:16px}.tj-lb-prev{left:10px;top:50%}.tj-lb-next{right:10px;top:50%}

/* ---------- portfolio ---------- */
.tj-portfolio{max-width:var(--sqs-site-max-width);margin:0 auto;padding:0 var(--sqs-site-gutter);display:grid;grid-template-columns:repeat(2,1fr);gap:4vw 2vw}
.tj-pf-item{text-decoration:none!important;display:block}
.tj-pf-media{overflow:hidden}
.tj-pf-img{width:100%!important;aspect-ratio:1/1;object-fit:cover;transition:transform .6s}
.tj-pf-item:hover .tj-pf-img{transform:scale(1.04)}
.tj-pf-title{font-size:1.4rem!important;margin:.7em 0 0!important}
@media (max-width:767px){.tj-portfolio{grid-template-columns:1fr}}
.tj-pagination{display:flex;justify-content:space-between;max-width:var(--sqs-site-max-width);margin:0 auto;padding:3vw var(--sqs-site-gutter);border-top:1px solid rgba(0,0,0,.12)}
.tj-pg{display:flex;flex-direction:column;text-decoration:none!important}
.tj-pg--next{text-align:right;margin-left:auto}
.tj-pg-lab{font-size:.9rem;opacity:.7}.tj-pg-title{font-size:1.5rem}

/* ---------- forms ---------- */
.tj-form{width:100%}
.tj-form .tj-row{display:flex;gap:14px}
.tj-form .tj-row>.tj-field{flex:1}
.tj-form .tj-field{margin:0 0 16px}
.tj-form label{display:block;font-size:.95rem;margin:0 0 6px}
.tj-form label .tj-req{opacity:.6;font-size:.85em}
.tj-form input[type=text],.tj-form input[type=email],.tj-form input[type=tel],.tj-form textarea{width:100%;padding:12px;font:inherit;font-size:1rem;color:#000;background:#fafafa;border:1px solid #a9a9a9;border-radius:0}
.tj-form textarea{min-height:120px}
.tj-form .tj-hp{position:absolute!important;left:-9999px!important}
.tj-form .tj-btn{font-size:1.1rem;padding:.85em 2.6em}
.tj-form-error{color:#b00020;margin:0 0 12px}
.tj-form-done{width:100%}
.tj-theme-dark .tj-form input,.tj-theme-dark .tj-form textarea,.tj-theme-black .tj-form input,.tj-theme-black .tj-form textarea{background:#fff}

/* ---------- header ---------- */
.tj-header{position:sticky;top:0;z-index:1000;background:var(--tj-white);height:var(--tj-header-h);display:flex;align-items:center;padding:0 2vw}
.tj-header-inner{display:flex;align-items:center;width:100%;gap:2.5vw}
body.tj .tj-logo img{height:80px;width:auto}
.tj-nav{display:flex;gap:2.3vw;align-items:center;flex:1}
body.tj .tj-nav a,body.tj .tj-nav .tj-folder-title{font-size:1.05rem;text-decoration:none;color:#000;font-weight:300;letter-spacing:.01em;cursor:pointer;background:none;border:0;font-family:var(--tj-font);padding:0}
body.tj .tj-nav a.tj-current{text-decoration:underline;text-underline-offset:.3em}
.tj-folder{position:relative}
.tj-folder-menu{display:none;position:absolute;top:100%;left:-14px;background:var(--tj-white);padding:12px 14px;min-width:200px;box-shadow:0 6px 16px rgba(0,0,0,.08)}
.tj-folder-menu a{display:block;padding:6px 0;white-space:nowrap}
.tj-folder:hover .tj-folder-menu,.tj-folder:focus-within .tj-folder-menu{display:block}
.tj-header-actions{display:flex;align-items:center;gap:2.2vw}
.tj-header .tj-social{color:#000;display:flex}
body.tj .tj-header .tj-btn{font-size:.9rem;padding:.9em 2.6em}
.tj-burger{display:none;background:none;border:0;padding:8px;cursor:pointer}
.tj-burger span{display:block;width:28px;height:1.5px;background:#000;margin:7px 0}
.tj-mobile{display:none}
@media (max-width:1100px){
  body.tj .tj-nav,body.tj .tj-header-actions .tj-social,body.tj .tj-header-actions .tj-btn{display:none}
  .tj-burger{display:block;margin-left:auto}
  body.tj .tj-logo img{height:56px}
  .tj-mobile.open{display:flex;flex-direction:column;position:fixed;inset:var(--tj-header-h) 0 0 0;background:var(--tj-white);z-index:999;padding:6vw;overflow:auto;gap:4px}
  body.tj .tj-mobile a{font-size:1.6rem;text-decoration:none;padding:8px 0}
  .tj-mobile .tj-sub{padding-left:16px;font-size:1.2rem}
  .tj-mobile .tj-btn{margin-top:20px;font-size:1.2rem!important;padding:.9em 2em;align-self:flex-start}
}
.tj-skip{position:absolute;left:-9999px}.tj-skip:focus{left:10px;top:10px;z-index:2000;background:#fff;padding:8px}

/* ---------- footer ---------- */
.tj-footer .tj-sec{min-height:0}

/* testimonial slideshow (text-only banner slides) */
.tj-carousel--banner-slideshow .tj-li-body{margin:0 auto;width:60%!important;padding:2vw 0}
.tj-carousel--banner-slideshow .tj-li-title{text-align:left!important}
.tj-carousel--banner-slideshow .tj-li-desc{text-align:left!important}
.tj-carousel--banner-slideshow .tj-car-btn{top:auto;bottom:0;transform:none}
.tj-carousel--banner-slideshow .tj-car-prev{left:8%}.tj-carousel--banner-slideshow .tj-car-next{right:8%}
.tj-carousel--banner-slideshow{padding-bottom:80px}
@media (max-width:767px){.tj-carousel--banner-slideshow .tj-li-body{width:88%!important}}

/* form popups (Squarespace "lightbox" form blocks) */
body.tj .tj-btn--form{background:#000;border-color:#000}
body.tj .tj-btn--form:hover{background:#272727}
.tj-modal{position:fixed;inset:0;z-index:9998;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:4vw}
.tj-modal[hidden]{display:none}
.tj-modal-box{position:relative;background:var(--tj-white);color:var(--tj-black);width:min(600px,100%);max-height:90vh;overflow:auto;padding:48px 40px 40px}
.tj-modal-close{position:absolute;top:8px;right:12px;background:none;border:0;font-size:32px;cursor:pointer;color:#272727}
@media (max-width:767px){.tj-carousel--banner-slideshow .tj-car-prev{left:calc(50% - 54px)}.tj-carousel--banner-slideshow .tj-car-next{right:calc(50% - 54px)}.tj-carousel--banner-slideshow .tj-car-btn{background:#000}}

/* ================= enhancements (IMPROVEMENT-PLAN.md) ================= */
/* promoted H1s keep the size of the heading they replaced */
body.tj h1.tj-h1-as-h2{font-size:var(--tj-h2);line-height:1.23}
body.tj h1.tj-h1-as-h3{font-size:var(--tj-h3);line-height:1.25}

/* added sections share the site's gutter and max width */
.tj-sec--add{min-height:0}
.tj-wrap{max-width:var(--sqs-site-max-width);margin:0 auto;padding:0 calc(var(--sqs-site-gutter) + 11px)}
.tj-prose{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:2vw 6vw;align-items:start;padding:2vw 0}
.tj-prose .tj-eyebrow{grid-column:1/-1;margin:0;font-size:.85rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.tj-prose-head h2{margin:0}
.tj-prose-body{max-width:46em}
body.tj .tj-prose-body p,body.tj .tj-prose-body li{font-size:1.05rem}
body.tj a.tj-link-arrow{display:inline-block;margin-right:1.6em;font-weight:400;text-decoration:none;border-bottom:1px solid currentColor;color:var(--tj-blue)}
body.tj a.tj-link-arrow::after{content:" \2192"}
.tj-steps{padding-left:1.3em;margin:0 0 1em}
.tj-steps li{margin:0 0 .45em}
@media (max-width:767px){.tj-prose{grid-template-columns:1fr;padding:6vw 0}}

/* proof strip under the hero */
.tj-sec--proof{padding:18px 0}
.tj-proof{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 28px}
body.tj .tj-proof li{margin:0;font-size:.95rem;font-weight:400;display:flex;align-items:center;gap:.5em}
.tj-proof li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tj-blue);flex:none}
@media (max-width:767px){.tj-proof{justify-content:flex-start}body.tj .tj-proof li{font-size:.9rem;width:100%}}

/* FAQ */
.tj-faq-item{border-top:1px solid rgba(0,0,0,.15);padding:14px 0}
.tj-faq-item:last-child{border-bottom:1px solid rgba(0,0,0,.15)}
.tj-faq-item summary{cursor:pointer;font-size:1.2rem;list-style:none;display:flex;justify-content:space-between;gap:1em}
.tj-faq-item summary::-webkit-details-marker{display:none}
.tj-faq-item summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--tj-blue)}
.tj-faq-item[open] summary::after{content:"\2212"}
.tj-faq-item .tj-text{padding-top:8px}

/* call-to-action band */
.tj-cta{display:flex;justify-content:space-between;align-items:center;gap:2vw 4vw;flex-wrap:wrap;padding:1.5vw 0}
.tj-cta h2{margin:0 0 .3em}
body.tj .tj-cta p{margin:0;max-width:40em}
.tj-cta-actions{display:flex;gap:14px;flex-wrap:wrap}
body.tj .tj-cta .tj-btn{font-size:1rem}

/* enquiry form qualifying questions */
.tj-form select{width:100%;padding:12px;font:inherit;font-size:1rem;color:#000;background:#fafafa;border:1px solid #a9a9a9;border-radius:0}
.tj-form .tj-q-row{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
@media (max-width:767px){.tj-form .tj-q-row{grid-template-columns:1fr}}

/* mobile call bar (B5) */
.tj-callbar{display:none}
@media (max-width:767px){
  .tj-callbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:990;background:var(--tj-white);box-shadow:0 -2px 12px rgba(0,0,0,.12);padding:10px 12px;gap:10px}
  body.tj .tj-callbar .tj-btn{flex:1;font-size:1rem;padding:.8em 1em}
  body.tj{padding-bottom:70px}
}
