/* Hero's Junk Removal -- Trinity-style rebuild
   Font: Inter (opsz axis loaded as "Inter Display"). White canvas, ink text, red accent.
   No gradients, no shadows. Max width 1480px, 24px side padding (16px phones). */

:root{
  --ink:#141414;
  --grey:#999;
  --red:#D62A1E;
  --white:#fff;
  --hair:#e6e6e6;
  --max:1480px;
  --pad:24px;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--white);
  color:var(--ink);
  font-family:'Inter','Inter Display',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-optical-sizing:auto;
  font-size:14px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}

.t-wrap{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--pad);
}

.t-hair{border:none;border-top:1px solid var(--hair);margin:0;}

/* ---------- Header ---------- */
.t-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(6px);
  border-bottom:1px solid var(--hair);
}
.t-header-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 var(--pad);
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.t-logo{
  font-size:16px;
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--ink);
  flex:0 0 auto;
}
.t-nav{
  display:flex;
  gap:26px;
  flex:1;
  justify-content:center;
}
.t-nav a{
  font-size:14px;
  color:var(--ink);
  opacity:.75;
}
.t-nav a:hover{opacity:1;color:var(--red);}
.t-header-actions{
  display:flex;
  align-items:center;
  gap:16px;
  flex:0 0 auto;
}
.t-phone{
  font-size:14px;
  color:var(--ink);
  opacity:.8;
  white-space:nowrap;
}
.t-phone:hover{color:var(--red);opacity:1;}
.t-pill{
  border:1px solid var(--ink);
  border-radius:999px;
  padding:9px 16px;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.02em;
  white-space:nowrap;
  transition:border-color .2s,color .2s;
}
.t-pill:hover{border-color:var(--red);color:var(--red);}
.t-burger{
  display:none;
  width:32px;height:32px;
  border:none;background:none;
  cursor:pointer;
  flex-direction:column;
  justify-content:center;
  gap:5px;
}
.t-burger span{display:block;height:2px;background:var(--ink);width:100%;}
.t-mobile-menu{
  display:none;
  flex-direction:column;
  gap:0;
  border-bottom:1px solid var(--hair);
}
.t-mobile-menu a{
  padding:14px var(--pad);
  border-top:1px solid var(--hair);
  font-size:14px;
}
.t-mobile-menu.open{display:flex;}

/* ---------- Reveal / motion ---------- */
.rise{
  opacity:1;
  transform:none;
}
html.js .rise{
  opacity:0;
  transform:translateY(140px);
}
html.js .rise.in{
  opacity:1;
  transform:translateY(0);
  transition:transform .9s cubic-bezier(.2,.7,.2,1), opacity .9s cubic-bezier(.2,.7,.2,1);
}
@media (prefers-reduced-motion: reduce){
  html.js .rise{opacity:1;transform:none;}
}

/* ---------- Section 1: hero ---------- */
.t-hero{
  padding:60px 0 0;
}
.t-hero-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
}
.t-headline{
  font-size:49px;
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.1;
  color:var(--ink);
  max-width:560px;
}
.t-hero-photo{
  border-radius:10px;
  overflow:hidden;
}
.t-hero-photo img{
  width:100%;
  height:420px;
  object-fit:cover;
}

.t-wordmark-band{
  margin-top:60px;
}
.t-wordmark{
  font-size:clamp(56px,14vw,208px);
  font-weight:800;
  letter-spacing:-0.04em;
  line-height:.8;
  color:var(--red);
  white-space:nowrap;
  overflow:hidden;
  padding:20px 0;
  text-align:center;
}

/* ---------- Section 2: coverage + crew ---------- */
.t-coverage{
  padding:60px 0;
}
.t-coverage-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:start;
}
.t-coverage-photo{
  border-radius:10px;
  overflow:hidden;
}
.t-coverage-photo img{
  width:100%;
  height:480px;
  object-fit:cover;
}
.t-coverage-line{
  font-size:49px;
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.1;
  color:var(--ink);
}
.t-pill-row{
  display:flex;
  gap:10px;
  margin-top:30px;
  flex-wrap:wrap;
}
.t-eyebrow{
  font-size:14px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--red);
  font-weight:700;
  margin-top:60px;
  margin-bottom:10px;
}
.t-crew-row{
  display:flex;
  gap:30px;
  margin-top:10px;
}
.t-crew-member{
  display:flex;
  align-items:center;
  gap:14px;
}
.t-avatar{
  width:64px;
  height:64px;
  border-radius:50%;
  overflow:hidden;
  flex:0 0 auto;
  background:#eee;
}
.t-avatar img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.t-crew-name{font-size:14px;font-weight:700;color:var(--ink);}
.t-crew-role{font-size:14px;color:var(--grey);}

/* ---------- Section 3: photo grid ---------- */
.t-work{
  padding:60px 0;
}
.t-work-intro{
  font-size:23px;
  color:var(--red);
  max-width:600px;
  line-height:1.4;
  margin-bottom:20px;
}
.t-work-grid{
  position:relative;
  margin-top:50px;
}
.t-work-card{
  position:relative;
  border-radius:10px;
  overflow:hidden;
  margin-bottom:60px;
  display:block;
}
.t-work-card img.t-main{
  width:100%;
  object-fit:cover;
  border-radius:10px;
}
.t-work-card img.t-inset{
  position:absolute;
  border-radius:10px;
  object-fit:cover;
  border:4px solid var(--white);
}
.t-work-cap{
  display:flex;
  justify-content:space-between;
  margin-top:14px;
  font-size:16px;
  color:var(--ink);
}
.t-work-cap .t-num{color:var(--grey);}

.t-work-1{width:60%;}
.t-work-1 img.t-main{height:420px;}
.t-work-1 img.t-inset{width:44%;height:220px;left:12%;bottom:-40px;}

.t-work-2{width:44%;margin-left:auto;margin-top:-100px;}
.t-work-2 img.t-main{height:340px;}
.t-work-2 img.t-inset{width:50%;height:170px;right:8%;bottom:-30px;}

.t-work-3{width:50%;margin:60px auto 60px;}
.t-work-3 img.t-main{height:380px;}
.t-work-3 img.t-inset{width:46%;height:200px;left:10%;bottom:-36px;}

/* ---------- Section 4: services ---------- */
.t-services{
  padding:60px 0;
}
.t-svc-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:baseline;
  padding:26px 0;
  border-top:1px solid var(--hair);
}
.t-services .t-svc-row:last-child{border-bottom:1px solid var(--hair);}
.t-svc-name{
  font-size:23px;
  color:var(--ink);
  font-weight:700;
  letter-spacing:-0.01em;
}
.t-svc-desc{
  font-size:14px;
  color:var(--red);
  line-height:1.5;
}

/* ---------- Section 5: reviews ---------- */
.t-reviews{
  padding:60px 0;
}
.t-reviews-lede{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:40px;
}
.t-reviews-lede .t-headline{font-size:49px;max-width:700px;}
.t-google-line{
  font-size:14px;
  color:var(--grey);
}
.t-google-line a{color:var(--red);}
.t-google-line strong{color:var(--ink);}

.t-review-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  align-items:center;
  padding:50px 0;
  border-top:1px solid var(--hair);
}
.t-review-row:last-child{border-bottom:1px solid var(--hair);}
.t-review-row.t-flip .t-review-photo{order:2;}
.t-review-row.t-flip .t-review-content{order:1;}
.t-review-photo{
  border-radius:10px;
  overflow:hidden;
}
.t-review-photo img{
  width:100%;
  height:340px;
  object-fit:cover;
}
.t-crew-card{
  border:1px solid var(--hair);
  border-radius:10px;
  padding:16px;
  max-width:320px;
  margin-bottom:20px;
}
.t-crew-card-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--grey);
  margin-bottom:10px;
}
.t-review-name{
  font-size:14px;
  font-weight:700;
  color:var(--ink);
}
.t-review-when{
  font-size:14px;
  color:var(--grey);
  margin-bottom:12px;
}
.t-review-quote{
  font-size:16px;
  color:var(--red);
  line-height:1.5;
  max-width:420px;
}

/* ---------- Section 6: FAQ ---------- */
.t-faq{
  padding:60px 0;
}
.t-faq-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:40px;
  padding:26px 0;
  border-top:1px solid var(--hair);
}
.t-faq .t-faq-row:last-child{border-bottom:1px solid var(--hair);}
.t-faq-q{
  font-size:23px;
  color:var(--ink);
  font-weight:700;
}
.t-faq-a{
  font-size:14px;
  color:var(--grey);
  line-height:1.6;
}
.t-faq-a a{color:var(--red);}

/* ---------- Footer ---------- */
.t-footer{
  padding:60px 0 40px;
  border-top:1px solid var(--hair);
}
.t-footer-wordmark{
  font-size:clamp(48px,10vw,140px);
  font-weight:800;
  letter-spacing:-0.04em;
  line-height:.8;
  color:var(--red);
  margin-bottom:50px;
}
.t-footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:30px;
}
.t-footer-col{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.t-footer-head{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--grey);
  margin-bottom:6px;
}
.t-footer-col a,.t-footer-col p{
  font-size:14px;
  color:var(--ink);
  margin:0;
}
.t-footer-col a:hover{color:var(--red);}
.t-footer-legal{
  font-size:13px;
  color:var(--grey);
  margin-top:50px;
  border-top:1px solid var(--hair);
  padding-top:20px;
}

/* ---------- Call bar (mobile) ---------- */
.t-callbar{display:none;}

/* ---------- Responsive ---------- */
@media (max-width:1000px){
  .t-nav{display:none;}
  .t-hero-grid,.t-coverage-grid,.t-svc-row,.t-faq-row,.t-review-row{
    grid-template-columns:1fr;
  }
  .t-work-1,.t-work-2,.t-work-3{width:100%;margin:0 0 60px;}
  .t-work-2{margin-top:0;}
  .t-footer-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:760px){
  :root{--pad:16px;}
  body{font-size:14px;}
  .t-header-inner{height:60px;}
  .t-burger{display:flex;}
  .t-headline{font-size:32px;}
  .t-wordmark{
    font-size:clamp(40px,17vw,80px);
    white-space:normal;
    overflow:visible;
    line-height:.95;
  }
  .t-coverage-line{font-size:28px;}
  .t-reviews-lede .t-headline{font-size:28px;}
  .t-svc-name,.t-faq-q{font-size:18px;}
  .t-work-intro{font-size:18px;}
  .t-review-row.t-flip .t-review-photo{order:0;}
  .t-review-row.t-flip .t-review-content{order:0;}
  .t-hero-photo img,.t-coverage-photo img{height:280px;}
  .t-review-photo img{height:220px;}
  .t-work-card img.t-main{height:260px !important;}
  .t-work-card img.t-inset{width:50% !important;height:130px !important;}
  .t-footer-grid{grid-template-columns:1fr 1fr;}
  .t-footer-wordmark{margin-bottom:30px;}
  body{padding-bottom:0;}
}

/* ===== Palette v2 (60-30-10): white/warm canvas, navy for trust, Hero's red only for actions ===== */
:root{
  --navy:#14284B;        /* headings, wordmark, footer: dependable */
  --text:#3B4252;        /* body copy, 9.9:1 on white */
  --warm:#F7F5F1;        /* alternate section canvas */
  --tint:#EEF3FA;        /* crew cards */
  --ink:var(--navy);
  --red:#D62A1E;         /* actions only: buttons, phone, numbers, links */
}
body{color:var(--text);}
.t-headline,.t-svc-name,.t-faq-q,.t-review-name,.t-crew-name{color:var(--navy);}
.t-wordmark,.t-footer-wordmark{color:var(--navy);}
.t-wordmark .t-apos,.t-footer-wordmark .t-apos{color:var(--red);}
.t-review-quote{color:var(--text);font-size:16px;line-height:1.6;}
.t-svc-row .t-svc-desc,.t-intro{color:var(--text);}
.t-crew-card{background:var(--tint);border-color:transparent;}
.t-services,.t-faq{background:var(--warm);}
.t-num{color:var(--red);font-weight:600;}
/* the one filled action: Text a photo */
.t-pill.t-primary,.t-header .t-pill{background:var(--red);border-color:var(--red);color:#fff;}
.t-pill.t-primary:hover,.t-header .t-pill:hover{background:#B32A25;border-color:#B32A25;color:#fff;}
.t-pill:not(.t-primary){color:var(--navy);border-color:var(--navy);}
a[href^="tel:"]{color:var(--red);}
.t-footer{background:var(--navy);color:#C9D2E3;}
.t-footer a{color:#fff;}
.t-footer .t-footer-wordmark{color:#fff;}

/* ===== Motion v2 ===== */
html.js .rise{opacity:0;transform:translateY(110px);transition:opacity 1.1s cubic-bezier(.2,.7,.2,1),transform 1.3s cubic-bezier(.2,.7,.2,1);}
html.js .rise.in{opacity:1;transform:none;}
/* photos open like a curtain and settle */
html.js .t-reveal-img{clip-path:inset(0 0 100% 0);transition:clip-path 1.2s cubic-bezier(.7,0,.2,1);}
html.js .t-reveal-img.in{clip-path:inset(0 0 0 0);}
html.js .t-reveal-img img{transform:scale(1.15);transition:transform 1.6s cubic-bezier(.2,.7,.2,1);}
html.js .t-reveal-img.in img{transform:scale(1);}
/* wordmark letters rise one by one */
.t-wordmark .t-ch,.t-footer-wordmark .t-ch{display:inline-block;}
html.js .t-wordmark .t-ch,html.js .t-footer-wordmark .t-ch{transform:translateY(105%);opacity:0;transition:transform .8s cubic-bezier(.2,.7,.2,1),opacity .5s ease;}
html.js .t-wm-in .t-ch{transform:none;opacity:1;}
.t-wordmark,.t-footer-wordmark{overflow:hidden;}
/* service rows */
.t-svc-row{transition:padding-left .35s cubic-bezier(.2,.7,.2,1),background .35s ease;}
.t-svc-row:hover{padding-left:16px;}
.t-svc-row:hover .t-svc-name{color:var(--red);}
/* photo hover */
.t-work-card img,.t-review-photo img,.t-coverage-photo img{transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.t-work-card:hover .t-main{transform:scale(1.04);}
.t-inset{will-change:transform;}
@media (prefers-reduced-motion: reduce){
  html.js .rise,html.js .t-reveal-img,html.js .t-reveal-img img,html.js .t-wordmark .t-ch,html.js .t-footer-wordmark .t-ch{opacity:1;transform:none;clip-path:none;transition:none;}
}
.t-work-intro{color:var(--navy);}

/* ===== Loop round 1: first screen ===== */
.t-header{background:#fff;backdrop-filter:none;}
.t-header-inner{height:72px;}
.t-logo{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:700;letter-spacing:-0.02em;color:var(--navy);min-height:44px;}
.t-logo img{width:28px;height:28px;}
.t-nav{gap:30px;}
.t-nav a{position:relative;padding:12px 0;color:var(--navy);opacity:.72;transition:opacity .2s,color .2s;}
.t-nav a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:1.5px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.t-nav a:hover{opacity:1;color:var(--navy);}
.t-nav a:hover::after{transform:scaleX(1);}
.t-phone{font-weight:600;opacity:1;padding:12px 0;}
.t-header .t-pill{padding:13px 20px;}
.t-pill{font-weight:600;display:inline-flex;align-items:center;min-height:44px;padding:0 20px;}
.t-pill-lg{min-height:52px;padding:0 26px;font-size:14px;}

.t-hero{padding:40px 0 0;}
.t-hero-grid{grid-template-columns:5fr 7fr;gap:48px;align-items:stretch;}
.t-hero-copy{display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:6px 0 4px;}
h1.t-headline{margin:0;}
.t-hero-h{font-size:clamp(40px,4.6vw,66px);font-weight:750;letter-spacing:-0.038em;line-height:1.0;max-width:600px;}
.t-hero-lead{font-size:17px;line-height:1.55;color:var(--text);max-width:440px;margin:0 0 22px;}
.t-hero-foot .t-pill-row{margin-top:0;}
.t-hero-rating{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:14px;color:var(--text);min-height:44px;}
.t-hero-rating strong{color:var(--navy);}
.t-hero-rating:hover{color:var(--navy);}
.t-stars{display:inline-flex;gap:2px;}
.t-stars i{width:13px;height:13px;background:var(--red);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);}
.t-hero-photo img{height:clamp(420px,58vh,540px);object-position:50% 22%;}
.t-wordmark-band{margin-top:40px;}
.t-wordmark{padding:18px 0 14px;}

.t-marquee{overflow:hidden;padding:15px 0;white-space:nowrap;}
.t-marquee-track{display:inline-flex;animation:t-marq 84s linear infinite;}
.t-marquee span{font-size:14px;font-weight:500;color:var(--navy);padding:0 22px;display:inline-flex;align-items:center;gap:44px;}
.t-marquee span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--red);margin-right:-25px;}
.t-marquee:hover .t-marquee-track{animation-play-state:paused;}
@keyframes t-marq{to{transform:translateX(-50%);}}
@media (prefers-reduced-motion: reduce){.t-marquee-track{animation:none;}}

@media (max-width:1000px){
  .t-hero-grid{grid-template-columns:1fr;}
  .t-hero-copy{gap:24px;}
}
@media (max-width:760px){
  .t-header-inner{height:60px;gap:10px;}
  .t-logo span{display:none;}
  .t-header .t-pill{padding:0 14px;font-size:12px;}
  .t-burger{width:44px;height:44px;padding:10px;}
  .t-hero{padding-top:24px;}
  .t-hero-h{font-size:40px;}
  .t-hero-lead{font-size:16px;}
  .t-pill-lg{flex:1;justify-content:center;}
  .t-hero-photo img{height:360px;}
  .t-wordmark-band{margin-top:32px;}
}

/* ===== Loop round 2: coverage composition + reviews rhythm ===== */
:root{--grey:#5F6675;}
.t-coverage-grid{grid-template-columns:7fr 5fr;gap:48px;align-items:stretch;}
.t-coverage-photo img{height:clamp(480px,62vh,580px);}
.t-coverage-copy{display:flex;flex-direction:column;justify-content:space-between;gap:48px;}
.t-coverage-line{font-size:clamp(34px,3.3vw,48px);letter-spacing:-0.035em;line-height:1.04;}
.t-crew-block{border-top:1px solid var(--hair);padding-top:22px;}
.t-crew-block .t-eyebrow{margin-top:0;margin-bottom:18px;}
.t-crew-block .t-crew-row{gap:28px;}
.t-crew-block .t-crew-member{flex-direction:column;align-items:flex-start;gap:12px;}
.t-crew-block .t-avatar{width:112px;height:112px;box-shadow:0 0 0 1px var(--hair);}
.t-crew-block .t-crew-name{font-size:16px;}

.t-reviews{padding:100px 0 110px;}
.t-reviews-lede{margin-bottom:56px;align-items:flex-end;}
.t-reviews-lede .t-headline{font-size:clamp(34px,4.2vw,60px);letter-spacing:-0.038em;line-height:1.0;}
.t-rv-feature{display:grid;grid-template-columns:5fr 7fr;gap:56px;align-items:stretch;padding:0 0 90px;border-bottom:1px solid var(--hair);}
.t-rv-feature-photo{border-radius:10px;overflow:hidden;}
.t-rv-feature-photo img{width:100%;height:100%;min-height:560px;max-height:640px;object-fit:cover;}
.t-rv-feature-body{display:flex;flex-direction:column;justify-content:center;}
.t-quote-mark{font-size:140px;line-height:.7;height:64px;font-weight:800;color:var(--red);letter-spacing:-0.05em;}
.t-rv-feature-quote{font-size:clamp(22px,2.2vw,31px);line-height:1.32;letter-spacing:-0.02em;color:var(--navy);font-weight:500;margin:0 0 36px;max-width:720px;}
.t-rv-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 20px;border-top:1px solid var(--hair);padding-top:16px;margin-top:auto;}
.t-rv-feature .t-rv-foot{margin-top:0;}
.t-rv-who{display:flex;flex-direction:column;gap:2px;}
.t-rv-name{font-size:14px;font-weight:700;color:var(--navy);}
.t-rv-when{font-size:13px;color:var(--grey);}
.t-rv-crew{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--grey);}
.t-avs{display:inline-flex;}
.t-av{width:32px;height:32px;border-radius:50%;overflow:hidden;border:2px solid #fff;background:#eee;}
.t-av+.t-av{margin-left:-10px;}
.t-av img{width:100%;height:100%;object-fit:cover;}
.t-rv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;padding:64px 0;}
.t-rv-card{display:flex;flex-direction:column;}
.t-rv-photo{border-radius:10px;overflow:hidden;margin-bottom:22px;}
.t-rv-photo img{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.t-rv-card:hover .t-rv-photo img{transform:scale(1.04);}
.t-rv-quote{font-size:16px;line-height:1.6;color:var(--text);margin:0 0 22px;}
.t-rv-pull{margin:0;padding:80px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);text-align:center;}
.t-rv-pull blockquote{margin:0 auto 30px;max-width:1080px;font-size:clamp(28px,3.4vw,50px);line-height:1.1;letter-spacing:-0.035em;font-weight:700;color:var(--navy);}
.t-rv-pull figcaption{display:inline-flex;align-items:center;gap:24px;text-align:left;}
.t-rv-tiles{padding-top:0;}
.t-rv-tile{background:var(--warm);border-radius:10px;padding:28px;display:flex;flex-direction:column;min-height:230px;}
.t-rv-tile .t-rv-quote{font-size:20px;line-height:1.35;letter-spacing:-0.015em;color:var(--navy);font-weight:500;}
.t-rv-tile .t-av{border-color:var(--warm);}
@media (max-width:1000px){
  .t-rv-feature{grid-template-columns:1fr;gap:28px;}
  .t-rv-feature-photo img{min-height:0;height:420px;}
  .t-rv-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:760px){
  .t-coverage-photo img{height:300px;}
  .t-coverage-copy{gap:32px;}
  .t-crew-block .t-avatar{width:88px;height:88px;}
  .t-reviews{padding:64px 0;}
  .t-rv-feature{padding-bottom:56px;}
  .t-rv-feature-photo img{height:380px;}
  .t-quote-mark{font-size:100px;height:44px;}
  .t-rv-grid{grid-template-columns:1fr;gap:40px;padding:48px 0;}
  .t-rv-tiles{gap:14px;}
  .t-rv-pull{padding:56px 0;}
  .t-rv-pull figcaption{flex-direction:column;align-items:center;gap:12px;text-align:center;}
}

/* ===== Loop round 3: work grid on a 12-col stagger, services as an index ===== */
.t-work{padding:0 0 120px;}
.t-work-wrap{padding-top:96px;}
.t-work-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;}
.t-work-intro{font-size:clamp(22px,2vw,28px);line-height:1.3;letter-spacing:-0.02em;max-width:720px;margin:0;color:var(--navy);font-weight:500;}
.t-work-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;row-gap:0;margin-top:72px;}
.t-work-fig{margin:0;position:relative;}
.t-work-f1{grid-column:1 / span 7;grid-row:1;}
.t-work-f2{grid-column:9 / span 4;grid-row:1;margin-top:220px;}
.t-work-f3{grid-column:4 / span 6;grid-row:2;margin-top:110px;}
.t-work-card{margin:0;border-radius:10px;overflow:visible;}
.t-work-card img.t-main{width:100%;display:block;border-radius:10px;}
.t-work-f1 img.t-main{height:clamp(420px,40vw,580px);}
.t-work-f2 img.t-main{height:clamp(360px,32vw,460px);}
.t-work-f3 img.t-main{height:clamp(360px,30vw,440px);}
.t-work-card img.t-inset{border:6px solid #fff;border-radius:12px;}
.t-work-f1 img.t-inset{width:42%;height:46%;left:auto;right:-8%;bottom:-48px;}
.t-work-f2 img.t-inset{width:62%;height:40%;left:-22%;right:auto;bottom:18%;}
.t-work-f3 img.t-inset{width:40%;height:48%;left:-10%;bottom:-40px;}
.t-work-cap{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;padding-top:12px;border-top:1px solid var(--hair);font-size:17px;font-weight:500;color:var(--navy);letter-spacing:-0.01em;}
.t-work-f1 .t-work-cap{margin-top:64px;width:58%;}
.t-work-f3 .t-work-cap{margin-top:58px;padding-left:34%;}
.t-work-card:hover .t-main{transform:none;}
.t-work-card img.t-main{transition:filter .5s ease;}
.t-work-card:hover img.t-main{filter:brightness(.92);}

.t-services{padding:110px 0;}
.t-svc-layout{display:grid;grid-template-columns:4fr 8fr;gap:48px;align-items:start;}
.t-svc-intro{position:sticky;top:112px;}
.t-svc-h{font-size:clamp(36px,4.2vw,60px);letter-spacing:-0.04em;line-height:1;margin:0 0 20px;}
.t-svc-lead{font-size:17px;line-height:1.55;max-width:320px;margin:0 0 28px;color:var(--text);}
.t-svc-list{border-top:1px solid #DEDAD2;}
.t-services .t-svc-row{display:grid;grid-template-columns:56px 1.1fr 1fr 40px;gap:24px;align-items:center;padding:26px 0;border-top:none;border-bottom:1px solid #DEDAD2;min-height:44px;transition:padding .45s cubic-bezier(.2,.7,.2,1);}
.t-services .t-svc-row:last-child{border-bottom:1px solid #DEDAD2;}
.t-svc-num{font-size:13px;font-weight:600;color:var(--red);font-variant-numeric:tabular-nums;}
.t-services .t-svc-name{font-size:clamp(22px,2.2vw,32px);font-weight:600;letter-spacing:-0.03em;color:var(--navy);transition:color .3s;}
.t-services .t-svc-desc{font-size:15px;color:var(--text);line-height:1.5;}
.t-svc-arrow{justify-self:end;width:40px;height:40px;border-radius:50%;border:1px solid #CFCAC0;position:relative;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1);}
.t-svc-arrow::before{content:"";position:absolute;left:12px;top:19px;width:15px;height:1.5px;background:var(--navy);}
.t-svc-arrow::after{content:"";position:absolute;left:19px;top:15px;width:8px;height:8px;border-top:1.5px solid var(--navy);border-right:1.5px solid var(--navy);transform:rotate(45deg);}
.t-services .t-svc-row:hover{padding-left:14px;}
.t-services .t-svc-row:hover .t-svc-name{color:var(--navy);}
.t-services .t-svc-row:hover .t-svc-arrow{background:var(--red);border-color:var(--red);transform:translateX(-6px);}
.t-services .t-svc-row:hover .t-svc-arrow::before{background:#fff;}
.t-services .t-svc-row:hover .t-svc-arrow::after{border-color:#fff;}
a:focus-visible{outline:2px solid var(--red);outline-offset:3px;border-radius:6px;}

@media (max-width:1000px){
  .t-work-grid{display:block;}
  .t-work-fig{margin:0 0 72px !important;}
  .t-work-f1 .t-work-cap,.t-work-f3 .t-work-cap{width:auto;padding-left:0;}
  .t-svc-layout{grid-template-columns:1fr;}
  .t-svc-intro{position:static;}
}
@media (max-width:760px){
  .t-work-wrap{padding-top:56px;}
  .t-work-head{flex-direction:column;align-items:flex-start;gap:20px;}
  .t-work-intro{font-size:20px;}
  .t-work-grid{margin-top:44px;}
  .t-work-card img.t-main{height:300px !important;}
  .t-work-card img.t-inset{width:46% !important;height:130px !important;left:auto !important;right:-4px !important;bottom:-36px !important;}
  .t-work-fig .t-work-cap{margin-top:52px !important;}
  .t-services{padding:64px 0;}
  .t-services .t-svc-row{grid-template-columns:40px 1fr 32px;gap:6px 12px;padding:20px 0;}
  .t-services .t-svc-desc{grid-column:2 / 3;grid-row:2;font-size:14px;}
  .t-svc-arrow{grid-column:3;grid-row:1 / span 2;width:32px;height:32px;}
  .t-svc-arrow::before{left:8px;top:15px;width:14px;}
  .t-svc-arrow::after{left:14px;top:11px;}
  .t-services .t-svc-name{font-size:21px;}
}
/* insets hang outside their card: widen the curtain's final clip so they are not cut */
html.js .t-work-card.t-reveal-img.in{clip-path:inset(-30% -40% -30% -40%);}
.t-work-f1 .t-work-cap{width:auto;}
.t-work-f3 .t-work-cap{padding-left:0;}
.t-work-f2 img.t-inset{left:auto;right:10%;bottom:-44px;width:58%;height:42%;}
.t-work-f2 .t-work-cap{margin-top:64px;}

/* ===== Loop round 4: FAQ accordion, composed close, bookend footer ===== */
.t-faq{padding:110px 0;}
.t-faq .t-svc-lead a{color:var(--red);font-weight:600;}
.t-faq-list{border-top:1px solid #DEDAD2;}
.t-faq-item{border-bottom:1px solid #DEDAD2;}
.t-faq-item summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;cursor:pointer;min-height:44px;}
.t-faq-item summary::-webkit-details-marker{display:none;}
.t-faq-item .t-faq-q{font-size:clamp(20px,1.9vw,26px);font-weight:600;letter-spacing:-0.025em;color:var(--navy);transition:transform .45s cubic-bezier(.2,.7,.2,1);}
.t-faq-item summary:hover .t-faq-q{transform:translateX(10px);}
.t-plus{flex:0 0 40px;width:40px;height:40px;border-radius:50%;border:1px solid #CFCAC0;position:relative;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1);}
.t-plus::before,.t-plus::after{content:"";position:absolute;left:12px;right:12px;top:19px;height:1.5px;background:var(--navy);transition:transform .45s cubic-bezier(.2,.7,.2,1),background .3s;}
.t-plus::after{transform:rotate(90deg);}
.t-faq-item[open] .t-plus{background:var(--navy);border-color:var(--navy);transform:rotate(180deg);}
.t-faq-item[open] .t-plus::before,.t-faq-item[open] .t-plus::after{background:#fff;}
.t-faq-item[open] .t-plus::after{transform:rotate(0deg);}
.t-faq-item .t-faq-a{font-size:17px;line-height:1.6;color:var(--text);max-width:640px;padding:0 64px 30px 0;animation:t-faq-in .5s cubic-bezier(.2,.7,.2,1);}
@keyframes t-faq-in{from{opacity:0;transform:translateY(-8px);}to{opacity:1;transform:none;}}

.t-close{padding:120px 0;background:#fff;}
.t-close-grid{display:grid;grid-template-columns:7fr 5fr;gap:56px;align-items:end;}
.t-close-h{font-size:clamp(48px,7.4vw,112px);font-weight:800;letter-spacing:-0.05em;line-height:.92;color:var(--navy);margin:0 0 28px;}
.t-close-lead{font-size:18px;line-height:1.55;max-width:460px;margin:0 0 30px;color:var(--text);}
.t-close .t-pill-row{margin-top:0;}
.t-close-photo{border-radius:10px;overflow:hidden;}
.t-close-photo img{width:100%;height:clamp(340px,34vw,480px);object-fit:cover;}

.t-footer{padding:80px 0 32px;border-top:none;}
.t-footer .t-footer-head{color:#A9B7CF;}
.t-footer-col p{color:#DCE3EE;}
.t-footer a[href^="tel:"]{color:#fff;font-weight:600;font-size:18px;}
.t-footer-col a{transition:color .2s,transform .3s;display:inline-block;}
.t-footer-col a:hover{color:#fff;transform:translateX(4px);text-decoration:underline;text-underline-offset:4px;}
.t-footer .t-footer-wordmark{margin:80px 0 0;padding:28px 0 22px;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);white-space:nowrap;text-align:center;}
.t-footer-legal{margin-top:22px;border-top:none;padding-top:0;color:#A9B7CF;}

@media (max-width:1000px){
  .t-close-grid{grid-template-columns:1fr;}
}
@media (max-width:760px){
  .t-faq{padding:64px 0;}
  .t-faq-item .t-faq-q{font-size:19px;}
  .t-faq-item .t-faq-a{font-size:16px;padding-right:0;}
  .t-close{padding:72px 0;}
  .t-close-h{font-size:52px;}
  .t-close-lead{font-size:16px;}
  .t-close-photo img{height:280px;}
  .t-footer{padding:56px 0 28px;}
  .t-footer .t-footer-wordmark{white-space:normal;text-align:left;font-size:17vw;line-height:.9;margin-top:48px;}
}
.t-piece{width:100%;max-width:100%;overflow-x:clip;}
.t-marquee{overflow:hidden;max-width:100%;} html,body{overflow-x:clip;}

/* ===== Rollout round 1: coverage stacks on tablets and phones (the 7/5 split squeezed the photo to a sliver) ===== */
@media (max-width:1000px){
  .t-coverage-grid{grid-template-columns:1fr;gap:32px;}
  .t-coverage-photo img{height:clamp(300px,56vw,480px);}
}

/* ===== Rollout round 2: photos never shown larger than their pixels; a composed footer ===== */
.t-work-f1 img.t-main{object-position:50% 58%;}
.t-work-f3{grid-column:4 / span 5;}
.t-work-f3 img.t-main{height:clamp(340px,27vw,400px);}

.t-footer-contact{gap:6px;}
.t-footer-contact .t-footer-head{margin-bottom:10px;}
.t-footer .t-footer-phone{font-size:clamp(26px,2.4vw,34px);font-weight:700;letter-spacing:-0.03em;line-height:1.1;color:#fff;}
.t-footer .t-footer-phone:hover{transform:none;text-decoration:none;color:#fff;}
.t-footer-mail{word-break:break-all;}
.t-footer-contact p{color:#A9B7CF !important;}
.t-footer-contact .t-pill-row{margin-top:18px;}
.t-footer .t-pill{min-height:44px;}
.t-footer .t-pill.t-primary{color:#fff;}
.t-footer .t-pill-ghost{border-color:rgba(255,255,255,.5);color:#fff;}
.t-footer .t-pill-ghost:hover{border-color:#fff;color:#fff;transform:none;text-decoration:none;}
.t-footer .t-pill:hover{transform:none;text-decoration:none;}
@media (max-width:760px){
  .t-footer-grid{grid-template-columns:1fr 1fr;gap:0 20px;}
  .t-footer-contact{grid-column:1 / -1;padding-bottom:32px;margin-bottom:28px;border-bottom:1px solid rgba(255,255,255,.16);}
  .t-footer-contact .t-pill-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .t-footer-contact .t-pill{justify-content:center;}
  .t-footer-col:not(.t-footer-contact){gap:0;}
  .t-footer-col:not(.t-footer-contact) a{display:flex;align-items:center;min-height:44px;border-bottom:1px solid rgba(255,255,255,.1);}
  .t-footer-col:not(.t-footer-contact) a:hover{transform:none;}
  .t-footer-more{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;column-gap:20px;margin-top:32px;}
  .t-footer-more .t-footer-head{grid-column:1 / -1;}
  .t-footer-head{margin-bottom:4px;}
}
.t-footer .t-footer-col a.t-pill{display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;}
.t-footer .t-footer-col a.t-footer-phone{font-size:clamp(26px,2.4vw,34px);font-weight:700;}
.t-logo{min-width:44px;}
.t-google-line a{display:inline-flex;align-items:center;min-height:44px;}
.t-footer .t-footer-col a.t-footer-phone,.t-footer .t-footer-col a.t-footer-mail{display:inline-flex;align-items:center;min-height:44px;}
.t-footer-contact{gap:0;}

/* ===== Rollout round 3: art-director pass ===== */
.t-google-line a{gap:5px;}
@media (max-width:760px){
  /* reviews: sideways rails instead of six full-width photo cards stacked (was ~6 screens of scroll) */
  .t-rv-grid{display:flex;grid-template-columns:none;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--pad));padding:40px var(--pad);scroll-padding:0 var(--pad);scrollbar-width:none;overscroll-behavior-x:contain;}
  .t-rv-grid::-webkit-scrollbar{display:none;}
  .t-rv-grid > article{flex:0 0 84%;scroll-snap-align:start;}
  .t-rv-tiles{padding-top:0;}
  .t-rv-tile{min-height:0;}
  .t-rv-photo img{aspect-ratio:3/2;}
  /* coverage actions match the hero: two equal pills */
  .t-coverage .t-pill-row .t-pill{flex:1;justify-content:center;}
  /* the cube piece: objects are smaller on a phone, so less scroll per form */
  .t-piece.p2{height:300vh;height:300svh;}
}

/* ===== Rollout round 6: photo reveal slides instead of zooming (a zoomed image reported past the right edge) ===== */
html.js .t-reveal-img img{transform:translateY(8%);}
html.js .t-reveal-img.in img{transform:none;}

/* ===== Site5 round 1: new flat logo (brand/logo5), story headings with an index, docks for the piece, direction ===== */
html{scroll-behavior:smooth;scroll-padding-top:84px;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}

/* logo: mark + wordmark, apostrophe in red */
.t-logo{gap:12px;}
.t-mark{width:36px;height:36px;flex:0 0 auto;display:block;}
.t-logo-word{font-size:17px;font-weight:700;letter-spacing:-0.03em;color:var(--navy);white-space:nowrap;}
.t-apos{color:var(--red);}
.t-logo .t-mark{transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.t-logo:hover .t-mark{transform:translateY(-2px);}
@media (max-width:760px){.t-mark{width:34px;height:34px;}}

/* header progress line: how far down the story you are */
.t-progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--red);transform:scaleX(0);transform-origin:left;pointer-events:none;}

/* section index: (01) and a rule that draws, then the story heading slides in behind it */
.t-sec-head{display:flex;align-items:center;gap:14px;margin:0 0 20px;}
.t-sec-n{font-size:13px;font-weight:600;color:var(--red);font-variant-numeric:tabular-nums;letter-spacing:.02em;line-height:1;}
.t-sec-rule{flex:1;max-width:200px;height:1px;background:#CFCAC0;transform-origin:left;transform:scaleX(0);transition:transform 1.1s cubic-bezier(.2,.7,.2,1) .15s;}
html.js .t-sec-head.in .t-sec-rule{transform:scaleX(1);}
html:not(.js) .t-sec-rule{transform:none;}
.t-sec-h{margin:0 0 18px;}
h2.t-coverage-line{max-width:520px;}
.t-sec-lead{font-size:clamp(18px,1.5vw,22px);line-height:1.4;color:var(--text);max-width:520px;margin:0;}
.t-coverage .t-pill-row{margin-top:28px;align-items:center;}
.t-crew-h{font-size:17px;font-weight:600;letter-spacing:-0.015em;color:var(--navy);margin:0 0 18px;}

.t-work-head{align-items:center;}
.t-work-head-copy{max-width:760px;}
.t-work-head-copy .t-work-intro{margin:0 0 26px;}
.t-work-head > .dock{margin-left:auto;}
.t-reviews .t-sec-head{margin-bottom:22px;}
.t-reviews-lede{align-items:center;}
.t-reviews-lede .t-sec-h{margin:0;}
.t-reviews-lede .dock{margin:0 auto;}
.t-close .t-sec-head{margin-bottom:26px;}
.t-close .t-pill-row{align-items:center;}

/* docks: empty stations the cube piece visits. The piece engine (assets/logo-piece) sizes them;
   this file only places them, and hides all but the [data-phone] ones on phones (max 2). */
.dock{display:block;flex:0 0 auto;pointer-events:none;}
.t-pill-row .dock{margin-left:auto;}
.t-hero-copy > .dock{align-self:flex-end;margin-right:8%;}
.t-svc-intro .dock{margin-top:44px;}
@media (max-width:1000px){
  .t-hero-copy > .dock{align-self:flex-start;margin:0;}
  .t-work-head > .dock{margin-left:0;}
}
@media (max-width:760px){
  html .dock:not([data-phone]){display:none;}
  .t-pill-row .dock[data-phone]{margin-left:0;flex:0 0 100%;}
}

/* scroll cue under the hero: the story continues below */
.t-scroll-cue{display:flex;width:max-content;align-items:center;gap:12px;margin-top:6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);opacity:.75;min-height:44px;transition:opacity .2s;}
.t-scroll-cue:hover{opacity:1;}
.t-scroll-cue i{display:block;width:9px;height:9px;border-right:1.5px solid var(--red);border-bottom:1.5px solid var(--red);transform:rotate(45deg);margin-top:-5px;animation:t-cue 1.7s ease-in-out infinite;}
@keyframes t-cue{0%,100%{transform:translateY(0) rotate(45deg);}50%{transform:translateY(6px) rotate(45deg);}}
@media (max-width:760px){.t-scroll-cue{display:none;}}
@media (prefers-reduced-motion: reduce){.t-scroll-cue i{animation:none;}}

/* section rail: six dots down the right edge, the current one filled red, labels on hover */
.t-rail{position:fixed;right:18px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:0;}
.t-rail a{display:flex;align-items:center;justify-content:flex-end;gap:12px;min-height:44px;font-size:12px;font-weight:500;color:var(--navy);padding:0 4px;}
.t-rail a span{opacity:0;transform:translateX(6px);transition:opacity .25s,transform .35s cubic-bezier(.2,.7,.2,1);white-space:nowrap;}
.t-rail:hover a span,.t-rail a:focus-visible span{opacity:1;transform:none;}
.t-rail a::after{content:"";width:6px;height:6px;border-radius:999px;background:#C3C8D2;transition:width .35s cubic-bezier(.2,.7,.2,1),background .3s;flex:0 0 auto;}
.t-rail a:hover::after{background:var(--navy);}
.t-rail a.cur::after{width:22px;background:var(--red);}
.t-rail.on-dark a{color:#fff;}
.t-rail.on-dark a::after{background:rgba(255,255,255,.45);}
.t-rail.on-dark a.cur::after{background:var(--red);}
@media (max-width:1180px){.t-rail{display:none;}}

/* reveals: shorter travel, staggered in reading order (delay set per batch in trinity.js) */
html.js .rise{transform:translateY(48px);transition:opacity .95s cubic-bezier(.2,.7,.2,1),transform 1.15s cubic-bezier(.2,.7,.2,1);}
html.js .t-sec-head.rise{transform:none;}

/* link underlines sweep in from the left */
.t-google-line a,.t-faq-a a,.t-svc-lead a,.t-footer-col a:not(.t-pill):not(.t-footer-phone),.t-hero-rating{position:relative;}
.t-google-line a::after,.t-faq-a a::after,.t-svc-lead a::after,.t-footer-col a:not(.t-pill):not(.t-footer-phone)::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1);}
.t-google-line a:hover::after,.t-faq-a a:hover::after,.t-svc-lead a:hover::after,.t-footer-col a:not(.t-pill):not(.t-footer-phone):hover::after{transform:scaleX(1);}
.t-footer-col a:hover{text-decoration:none;}
.t-google-line a::after{bottom:8px;}

/* footer: mark beside the giant wordmark */
.t-footer-brand{display:flex;align-items:center;gap:clamp(20px,3vw,44px);margin:80px 0 0;padding:28px 0 22px;border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);}
.t-footer-brand .t-mark{width:clamp(56px,7.4vw,108px);height:auto;flex:0 0 auto;}
.t-footer .t-footer-brand .t-footer-wordmark{flex:1;min-width:0;margin:0;padding:0;border:none;text-align:left;}
@media (max-width:760px){
  .t-footer-brand{flex-direction:column;align-items:flex-start;gap:20px;margin-top:48px;}
  .t-footer .t-footer-brand .t-footer-wordmark{white-space:normal;font-size:17vw;line-height:.9;margin:0;}
}

/* ===== Site5 round 3: nav follows the section rail; phone work grid closes up ===== */
.t-nav a.cur{opacity:1;}
.t-nav a.cur::after{transform:scaleX(1);}
@media (max-width:760px){
  .t-work{padding-bottom:48px;}
  .t-work-fig:last-child{margin-bottom:0 !important;}
  .t-services{padding-top:56px;}
}

/* ===== Site5 round 4: wider page padding on wide screens (kept for rhythm; the piece no longer threads down it); two phone docks ===== */
@media (min-width:1200px){:root{--pad:48px;}}
@media (max-width:760px){
  .t-coverage .t-pill-row .dock[data-phone]{margin-top:6px;}
}

/* ===== Site6 round 1: grounds with rhythm. Jack: "too much just white". The marquee becomes a navy strip under the
   wordmark, (01) sits on the warm canvas, the mid-page pull quote becomes a full-width navy band. ===== */
.t-wordmark-band .t-hair:last-of-type{display:none;}
.t-marquee{background:var(--navy);padding:17px 0;}
.t-marquee span{color:#fff;}
.t-marquee span::after{background:var(--red);}

.t-coverage{background:var(--warm);padding:104px 0;}
.t-coverage .t-sec-rule{background:#CFCAC0;}
.t-crew-block{border-top-color:#DEDAD2;}
.t-crew-block .t-avatar{box-shadow:0 0 0 1px #DEDAD2;}
.t-work > .t-hair{display:none;}

.t-rv-pull-band{background:linear-gradient(180deg,#14284B 0%,#10213F 100%);}
.t-rv-pull-band .t-rv-pull{max-width:var(--max);margin:0 auto;padding:110px var(--pad);border:none;}
.t-rv-pull-band .t-rv-pull blockquote{color:#fff;}
.t-rv-pull-band .t-rv-name{color:#fff;}
.t-rv-pull-band .t-rv-when,.t-rv-pull-band .t-rv-crew{color:#A9B7CF;}
.t-rv-pull-band .t-av{border-color:#14284B;}
.t-reviews > .t-wrap + .t-rv-pull-band{margin-top:0;}
.t-reviews .t-wrap:first-child .t-rv-grid:last-child{padding-bottom:96px;}
.t-reviews .t-rv-pull-band + .t-wrap > .t-rv-grid:first-child{padding-top:96px;}
.t-reviews{padding-bottom:110px;}
@media (max-width:760px){
  .t-coverage{padding:64px 0;}
  .t-rv-pull-band .t-rv-pull{padding:64px var(--pad);}
  .t-reviews .t-wrap:first-child .t-rv-grid:last-child{padding-bottom:48px;}
  .t-reviews .t-rv-pull-band + .t-wrap > .t-rv-grid:first-child{padding-top:48px;}
}
/* hero dock: clear of the lead sentence (the cubes spread a little past the dock box) */
.t-hero-copy > .dock{margin-right:0;margin-bottom:22px;}
.t-hero-lead{max-width:400px;}

/* ===== Site6 round 4: guided scroll. Each story section ends with a "Next" row pointing at the next one. ===== */
.t-next{display:flex;align-items:center;gap:14px;margin-top:64px;padding:22px 0 0;border-top:1px solid var(--hair);min-height:44px;color:var(--navy);width:100%;}
.t-services .t-next,.t-faq .t-next{border-top-color:#DEDAD2;grid-column:1 / -1;}
.t-next-k{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--grey);}
.t-next-l{font-size:15px;font-weight:600;letter-spacing:-0.01em;}
.t-next-l b{color:var(--red);font-weight:600;font-variant-numeric:tabular-nums;margin-right:6px;}
.t-next i{margin-left:auto;width:40px;height:40px;border-radius:50%;border:1px solid #CFCAC0;position:relative;flex:0 0 auto;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1);}
.t-next i::before{content:"";position:absolute;left:19px;top:12px;width:1.5px;height:15px;background:var(--navy);}
.t-next i::after{content:"";position:absolute;left:15px;top:19px;width:8px;height:8px;border-right:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);transform:rotate(45deg);}
.t-next:hover i{background:var(--red);border-color:var(--red);transform:translateY(4px);}
.t-next:hover i::before{background:#fff;}
.t-next:hover i::after{border-color:#fff;}
.t-reviews .t-next{margin-top:0;}
.t-work .t-next{margin-top:24px;}
@media (max-width:760px){.t-next{margin-top:44px;}}
.t-services .t-next,.t-faq .t-next{grid-column:2;margin-top:40px;}
.t-work{padding-bottom:96px;}
@media (max-width:1000px){.t-services .t-next,.t-faq .t-next{grid-column:1;}}

/* ===== Site7 round 1: header links go to real pages; "See all" rows under each homepage preview ===== */
/* homepage: "See all" rows that point at the real pages */
.t-seeall{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:600;color:var(--navy);letter-spacing:-0.01em;}
.t-seeall i{width:40px;height:40px;border-radius:50%;border:1px solid #CFCAC0;position:relative;flex:0 0 auto;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1);}
.t-seeall i::before{content:"";position:absolute;left:12px;top:19px;width:15px;height:1.5px;background:var(--navy);}
.t-seeall i::after{content:"";position:absolute;left:19px;top:15px;width:8px;height:8px;border-top:1.5px solid var(--navy);border-right:1.5px solid var(--navy);transform:rotate(45deg);}
.t-seeall:hover i{background:var(--red);border-color:var(--red);transform:translateX(4px);}
.t-seeall:hover i::before{background:#fff;}
.t-seeall:hover i::after{border-color:#fff;}

/* header: the current page is underlined */
.t-nav a[aria-current="page"]{opacity:1;}
.t-nav a[aria-current="page"]::after{transform:scaleX(1);}
.t-mobile-menu a[aria-current="page"]{color:var(--red);font-weight:600;}

/* ===== Site7 round 2: a real site header. Every item is a page; Where we go and What we haul open a panel
   (hover, focus, or the caret button) listing the city and service pages. The phone menu mirrors it with
   two fold-out groups and the two actions at the bottom. ===== */
.t-nav{gap:26px;align-items:center;}
.t-nav-item{position:relative;display:flex;align-items:center;gap:2px;}
.t-nav-item > a{white-space:nowrap;}
.t-nav-caret{width:24px;height:44px;border:none;background:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--navy);opacity:.72;}
.t-nav-caret i{display:block;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin-top:-4px;transition:transform .35s cubic-bezier(.2,.7,.2,1);}
.t-nav-item:hover .t-nav-caret,.t-nav-item.open .t-nav-caret,.t-nav-caret:focus-visible{opacity:1;}
.t-nav-item.open .t-nav-caret i,.t-nav-item:hover .t-nav-caret i{transform:rotate(225deg);margin-top:4px;}
.t-menu{position:absolute;left:-20px;top:100%;padding-top:12px;z-index:60;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s .3s;}
.t-nav-item:hover .t-menu,.t-nav-item.open .t-menu{opacity:1;visibility:visible;transform:none;transition:opacity .25s,transform .35s cubic-bezier(.2,.7,.2,1),visibility 0s;}
.t-menu-inner{background:#fff;border:1px solid var(--hair);border-top:3px solid var(--red);border-radius:0 0 12px 12px;box-shadow:0 24px 48px -24px rgba(20,40,75,.35);padding:18px 22px 12px;display:grid;grid-template-columns:1fr 1fr;column-gap:24px;min-width:420px;}
.t-menu-cities{min-width:360px;}
.t-menu-head{grid-column:1 / -1;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--grey);padding-bottom:10px;margin-bottom:6px;border-bottom:1px solid var(--hair);white-space:nowrap;}
.t-menu-inner > a{display:flex;align-items:center;min-height:40px;font-size:14px;font-weight:500;color:var(--navy);opacity:1;padding:0;white-space:nowrap;transition:padding .3s cubic-bezier(.2,.7,.2,1),color .2s;}
.t-menu-inner > a::after{display:none;}
.t-menu-inner > a:hover{padding-left:6px;color:var(--red);}
.t-menu-inner > a.t-menu-all{grid-column:1 / -1;justify-content:space-between;margin-top:8px;padding-top:10px;border-top:1px solid var(--hair);font-weight:600;min-height:48px;}
.t-menu-inner > a.t-menu-all i{width:32px;height:32px;border-radius:50%;border:1px solid #CFCAC0;position:relative;flex:0 0 auto;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1);}
.t-menu-inner > a.t-menu-all i::before{content:"";position:absolute;left:9px;top:15px;width:13px;height:1.5px;background:var(--navy);}
.t-menu-inner > a.t-menu-all i::after{content:"";position:absolute;left:15px;top:11px;width:7px;height:7px;border-top:1.5px solid var(--navy);border-right:1.5px solid var(--navy);transform:rotate(45deg);}
.t-menu-inner > a.t-menu-all:hover{padding-left:0;}
.t-menu-inner > a.t-menu-all:hover i{background:var(--red);border-color:var(--red);transform:translateX(4px);}
.t-menu-inner > a.t-menu-all:hover i::before{background:#fff;}
.t-menu-inner > a.t-menu-all:hover i::after{border-color:#fff;}
.t-nav a[aria-current="true"]{opacity:1;}
.t-nav a[aria-current="true"]::after{transform:scaleX(1);}
@media (max-width:1180px){.t-nav{gap:18px;}}

/* phone menu: full height, groups fold out, actions at the bottom */
.t-mobile-menu{background:#fff;max-height:calc(100vh - 72px);max-height:calc(100dvh - 72px);overflow-y:auto;}
.t-mobile-menu > a,.t-mm-group summary{display:flex;align-items:center;justify-content:space-between;min-height:56px;padding:0 var(--pad);border-top:1px solid var(--hair);font-size:17px;font-weight:600;letter-spacing:-0.01em;color:var(--navy);}
.t-mm-group{border-top:none;}
.t-mm-group summary{list-style:none;cursor:pointer;}
.t-mm-group summary::-webkit-details-marker{display:none;}
.t-mm-group summary i{width:36px;height:36px;border-radius:50%;border:1px solid #CFCAC0;position:relative;flex:0 0 auto;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1);}
.t-mm-group summary i::before,.t-mm-group summary i::after{content:"";position:absolute;left:10px;right:10px;top:17px;height:1.5px;background:var(--navy);transition:transform .45s cubic-bezier(.2,.7,.2,1),background .3s;}
.t-mm-group summary i::after{transform:rotate(90deg);}
.t-mm-group[open] summary i{background:var(--navy);border-color:var(--navy);}
.t-mm-group[open] summary i::before,.t-mm-group[open] summary i::after{background:#fff;}
.t-mm-group[open] summary i::after{transform:rotate(0);}
.t-mm-group > a{display:flex;align-items:center;min-height:48px;padding:0 var(--pad) 0 calc(var(--pad) + 18px);font-size:15px;font-weight:500;color:var(--text);background:var(--warm);border-top:1px solid #EAE6DE;}
.t-mm-group > a.t-mm-all{color:var(--red);font-weight:600;}
.t-mm-group > a:last-child{border-bottom:1px solid #EAE6DE;}
/* Areas group: each city hub, then its two city+service pages, indented under it */
.t-mm-group > a.t-mm-sub{min-height:44px;padding-left:calc(var(--pad) + 34px);font-size:14px;font-weight:400;color:var(--grey);border-top:none;}
.t-mm-group > a.t-mm-sub:hover{color:var(--red);}
.t-mobile-menu a[aria-current="page"]{color:var(--red);}
.t-mm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px var(--pad) 24px;border-top:1px solid var(--hair);}
.t-mm-actions .t-pill{justify-content:center;min-height:48px;}

/* ===== Site7 round 2b: top bar, mega menu, burger states ===== */
.t-topbar{background:var(--navy);color:#C9D2E3;font-size:12.5px;font-weight:500;letter-spacing:.01em;}
.t-topbar-inner{max-width:var(--max);margin:0 auto;padding:0 var(--pad);height:36px;display:flex;align-items:center;gap:28px;}
.t-topbar-area{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.t-topbar-hours{white-space:nowrap;}
.t-topbar-rating{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:600;white-space:nowrap;min-height:36px;}
.t-topbar-rating:hover{color:#fff;text-decoration:underline;text-underline-offset:3px;}
.t-topbar-stars{display:inline-flex;gap:2px;}
.t-topbar-stars i{width:10px;height:10px;background:var(--red);clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);}
.t-header{box-shadow:0 1px 0 var(--hair);}
.t-mobile-menu{max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);}
.t-menu-mega{left:auto;right:auto;}
.t-menu-inner.t-mega{grid-template-columns:auto auto;column-gap:40px;min-width:0;padding:20px 26px 14px;}
.t-mega-col{display:grid;grid-template-columns:1fr;align-content:start;}
.t-mega-services{min-width:220px;padding-right:32px;border-right:1px solid var(--hair);}
.t-mega-col .t-menu-head{grid-column:auto;}
.t-mega-city-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));column-gap:24px;row-gap:14px;padding-top:4px;}
.t-mega-city{display:grid;}
.t-menu-inner .t-mega-city > a{min-height:32px;font-size:13.5px;font-weight:500;color:var(--text);}
.t-menu-inner .t-mega-city > a.t-mega-city-name{font-weight:700;color:var(--navy);font-size:14px;min-height:34px;}
.t-menu-inner .t-mega-city > a:hover{padding-left:4px;color:var(--red);}
.t-menu-inner .t-mega-city > a.t-mega-city-name:hover{padding-left:0;}
.t-mm-meta{margin:0;padding:0 var(--pad) 24px;font-size:13px;color:var(--grey);}
.t-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.t-burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.t-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.t-burger span{transition:transform .3s cubic-bezier(.2,.7,.2,1),opacity .2s;}
body.t-menu-open{overflow:hidden;}
@media (max-width:760px){
  .t-topbar-inner{height:32px;gap:14px;font-size:12px;}
  .t-topbar-area{display:none;}
  .t-topbar-hours{flex:1;}
  .t-mobile-menu{max-height:calc(100vh - 92px);max-height:calc(100dvh - 92px);}
}

/* mega menu: compact rows; at every desktop width it spans the header (ten cities, each with its hub and two
   city services, in five columns = two rows) instead of hanging off the nav, so it stays short enough for a 720px-tall screen */
.t-menu-inner .t-mega-city > a{min-height:30px;}
.t-mega-services{min-width:236px;}
.t-mega-services > a{white-space:nowrap;}
.t-header-inner{position:relative;}
.t-nav-item.t-has-menu:first-child{position:static;}
.t-menu-mega{left:var(--pad);right:var(--pad);}
.t-menu-inner.t-mega{grid-template-columns:236px 1fr;}
.t-menu-inner .t-mega-city-grid{grid-template-columns:repeat(5,minmax(0,1fr));}
.t-mega-col > a.t-menu-all{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:10px;border-top:1px solid var(--hair);font-weight:600;min-height:48px;font-size:14px;color:var(--navy);}
.t-mega-col > a.t-menu-all::after{display:none;}
.t-mega-col > a.t-menu-all i{width:32px;height:32px;border-radius:50%;border:1px solid #CFCAC0;position:relative;flex:0 0 auto;transition:background .3s,border-color .3s,transform .45s cubic-bezier(.2,.7,.2,1);}
.t-mega-col > a.t-menu-all i::before{content:"";position:absolute;left:9px;top:15px;width:13px;height:1.5px;background:var(--navy);}
.t-mega-col > a.t-menu-all i::after{content:"";position:absolute;left:15px;top:11px;width:7px;height:7px;border-top:1.5px solid var(--navy);border-right:1.5px solid var(--navy);transform:rotate(45deg);}
.t-mega-col > a.t-menu-all:hover{padding-left:0;color:var(--red);}
.t-mega-col > a.t-menu-all:hover i{background:var(--red);border-color:var(--red);transform:translateX(4px);}
.t-mega-col > a.t-menu-all:hover i::before{background:#fff;}
.t-mega-col > a.t-menu-all:hover i::after{border-color:#fff;}

/* ===== Site8 round 1: hero photo fills the copy column (the rating line used to hang under the fold with
   dead space under the photo); less white under the homepage gallery ===== */
@media (min-width:1001px){
  .t-hero-grid{align-items:stretch;}
  .t-hero-photo{position:relative;min-height:480px;}
  .t-hero-photo img{position:absolute;inset:0;width:100%;height:100%;max-height:none;}
  .t-hero-copy{gap:22px;}
  .t-hero-copy > .dock{--dock:150px;margin-bottom:12px;}
  .t-hero-lead{margin-bottom:18px;}
  .t-hero-rating{margin-top:10px;}
}
.t-work{padding-bottom:56px;}
@media (max-width:760px){.t-work{padding-bottom:40px;}}

/* site8 r1: phone tap targets. The 4.9 link in the 32px top bar reaches 44px through negative margins;
   breadcrumb links are never narrower than 44px */
.t-topbar-rating{min-height:44px;margin:-4px 0;position:relative;z-index:1;}

/* "Read on Google" under every review: one small link, 44px tall, white on navy */
.rv-google{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;min-height:44px;margin-top:6px;font-size:13px;font-weight:600;letter-spacing:-0.005em;color:var(--navy);opacity:.82;transition:opacity .2s,color .2s;}
.rv-google svg{width:14px;height:14px;flex:0 0 auto;}
.rv-google:hover{opacity:1;color:var(--red);text-decoration:underline;text-underline-offset:3px;}
.review-card.featured .rv-google,.s7-navy .rv-google,.t-rv-pull-band .rv-google,.s7-feature .rv-google{color:#fff;}
.review-card.featured .rv-google:hover,.s7-navy .rv-google:hover,.t-rv-pull-band .rv-google:hover,.s7-feature .rv-google:hover{color:#fff;}
.t-rv-foot + .rv-google{margin-top:2px;}
.t-rv-pull figcaption .rv-google{margin:0;}
.review-card .rv-google{margin-top:auto;padding-top:8px;}
.review-card .tag-pills + .rv-google{margin-top:8px;}
.review-card .rv-google,.mini-review .rv-google{order:5;margin-top:0;padding-top:0;}
/* inline phone links reach a 44px tap target without moving the text */
p a[href^="tel:"],div.t-svc-lead a[href^="tel:"],.t-mm-meta a[href^="tel:"]{display:inline-block;padding:12px 0;margin:-12px 0;}

/* site8 r3: the third gallery figure sat on a 5-column island with white either side */
.t-work-f3{grid-column:3 / span 7;}
.t-work-f3 img.t-main{height:clamp(360px,30vw,460px);}
@media (max-width:1000px){.t-work-f3{grid-column:auto;}}

/* crew photo in the homepage crew block: whole photo, 3:4, no round crop */
.t-avatar.t-avatar-photo{border-radius:8px;}
.t-crew-block .t-avatar.t-avatar-photo{width:120px;height:160px;}
.t-avatar.t-avatar-photo img{width:100%;height:100%;object-fit:contain;display:block;}
@media (max-width:760px){.t-crew-block .t-avatar.t-avatar-photo{width:96px;height:128px;}}

/* footer wordmark and crew member are links to home and the about page */
a.t-footer-brand{color:inherit;text-decoration:none;}
.t-footer-brand .t-footer-wordmark{display:block;}
a.t-footer-brand:hover .t-footer-wordmark{color:#fff;opacity:.92;}
a.t-crew-member{color:inherit;text-decoration:none;}
a.t-crew-member:hover .t-crew-name{color:var(--red);}
.photo-strip figure a{display:block;height:100%;}

/* ===== Site9 sizing pass: one type scale, one button scale, one icon size, shared by every page ===== */
:root{
  --fs-h1:clamp(40px,5vw,72px);       /* page titles */
  --fs-h2:clamp(30px,3.6vw,52px);     /* section heads */
  --fs-h2-sm:clamp(24px,2.4vw,32px);  /* heads inside copy */
  --fs-h3:22px;                       /* card and row titles */
  --fs-quote:clamp(20px,2vw,28px);    /* display quotes */
  --fs-lead:18px;
  --fs-body:17px;
  --fs-small:14px;                    /* meta, captions, card descriptions */
  --fs-micro:12px;                    /* uppercase labels */
  --btn-h:52px;                       /* primary size */
  --btn-h-sm:44px;                    /* secondary and inline */
  --icon:14px;
}
h1.t-headline{font-size:var(--fs-h1);}
h2.t-headline,.t-coverage-line,.t-reviews-lede .t-headline,.t-sec-h,.t-faq-h{font-size:var(--fs-h2);}
.t-services .t-svc-name,.t-crew-h{font-size:var(--fs-h3);}
.t-hero-lead,.t-svc-lead,.t-work-intro,.t-coverage p,.t-rv-tile .t-rv-quote,.t-rv-card .t-rv-quote{font-size:var(--fs-lead);}
.t-rv-feature-quote,.t-rv-pull blockquote{font-size:var(--fs-quote);}
.t-faq-a,.t-svc-desc{font-size:var(--fs-body);}
.t-rv-when,.t-work-cap,.t-crew-role,.t-crew-name,.rv-google,.t-google-line,.t-svc-desc{font-size:var(--fs-small);}
.t-sec-n,.t-eyebrow,.t-next-k{font-size:var(--fs-micro);}
.t-pill,.t-menu-all,.t-seeall,.rv-google,.t-footer .t-pill{min-height:var(--btn-h-sm);}
.t-pill-lg,.t-mm-actions .t-pill{min-height:var(--btn-h);}
.t-header .t-pill{padding:0 20px;min-height:var(--btn-h-sm);}
.t-menu-all{min-height:48px;}
.rv-google svg,.t-seeall svg,.t-google-line svg{width:var(--icon);height:var(--icon);}
@media (max-width:760px){.t-svc-desc{font-size:var(--fs-small);}}

/* real job photo in the homepage work grid: natural aspect, never cropped */
.t-work-card img.t-main.t-natural{height:auto !important;}
@media (max-width:1000px){.t-work-card img.t-main.t-natural{max-width:440px;}}

/* work.html gallery: the photo-in-photo inset stays inside its own figure's column (it hung 8% past the card
   and collided with the neighbouring photo and caption at 1440 and 1024); it still hangs below the main photo
   into the gutter the caption reserves */
.s7-gal .s7-fig-card img.s7-inset{right:6%;left:auto;}
@media (max-width:760px){.s7-gal .s7-fig-card img.s7-inset{right:12px;}}

/* Homepage simplification (2026-09-28): one action per section, no marquee, no Next rows, no scroll cue.
   The cube piece docks on the section-head rule: number, rule leading into the piece, then the heading. The
   piece assembles in place there (the script only ever draws inside a dock) and never sits in a pill row or
   between a heading and its lede again. The hero keeps its own dock under the headline. */
.t-sec-head > .dock{margin-left:auto;}
.t-sec-head:has(> .dock){align-items:center;margin-bottom:14px;}
.t-sec-head:has(> .dock) .t-sec-rule{max-width:none;}
/* the dock sits on the right edge of the section's copy block, so the rule spans exactly the text below it */
.t-work-head-copy .t-sec-head:has(> .dock){max-width:760px;}
.t-reviews .t-sec-head:has(> .dock){max-width:700px;}
.t-crew-line{font-size:17px;line-height:1.5;color:var(--text);margin:0;}
.t-crew-line a{color:var(--navy);font-weight:600;white-space:nowrap;border-bottom:1px solid var(--red);padding-bottom:1px;}
.t-crew-line a:hover{color:var(--red);}
.t-work-head-copy .t-seeall,.t-svc-intro .t-seeall,.t-coverage-copy .t-seeall{margin-top:4px;}
.t-reviews-lede{gap:24px;}
@media (max-width:760px){
  .t-sec-head > .dock[data-phone]{--dock:72px;}
  .t-sec-head:has(> .dock){margin-bottom:12px;}
}
