/* ==========================================================
   Home extras + "the trail": a scroll-drawn orange line that
   snakes down the page through each service (two26-style).
   ========================================================== */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hero-ins{display:flex;align-items:center;flex-wrap:wrap;gap:12px 16px}
.hero-areas{font-weight:700;font-size:16px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.hero-btns{display:flex;align-items:center;gap:26px;flex-wrap:wrap;margin-top:12px}
.story .btn{margin-top:0}
.txt-link{font-family:var(--display);text-transform:uppercase;font-size:19px;letter-spacing:.02em;color:var(--deep);text-decoration:none;background:linear-gradient(var(--red),var(--red)) 0 100%/100% 2px no-repeat;padding-bottom:3px;transition:background-size 350ms var(--ease)}
.txt-link:hover{color:var(--deep);background-size:0 2px;background-position:100% 100%}
.hero-dog{will-change:transform}
.fl svg{display:block;width:100%}
.hl-wrap{padding-bottom:24px}
.city-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
.place{display:block;color:inherit}
.rev-k{margin:24px 16px 0;font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--red)}
.rev .quote{margin-top:10px}
.cta-ins{position:relative;margin-bottom:22px}
.cta-sub{position:relative;margin:18px 0 0;font-size:21px;font-weight:600;color:#fff}
.faq-list .qa{margin-top:12px}.faq-list .qa:first-child{margin-top:0}
.ins-tick{stroke-dasharray:140;stroke-dashoffset:140;transition:stroke-dashoffset 900ms 400ms cubic-bezier(.65,0,.35,1)}
.in .ins-tick,.stg.in .ins-tick{stroke-dashoffset:0}

/* ── trail ── */
.trail{position:relative;padding:72px 0 24px}
.trail-head{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,2fr);align-items:start;gap:24px}
.trail-k{margin:14px 0 0;font-weight:700;font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--deep)}
.trail-h{margin:0;font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(64px,9vw,148px);line-height:.88;color:var(--deep)}
.trail-h .ln{display:block}
.trail-body{--sw:16px;position:relative;margin-top:12px;padding:48px 0 110px}
.trail-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0}
.t-ghost{fill:none;stroke:#fbd6c0;stroke-width:var(--sw);stroke-linecap:round;stroke-linejoin:round}
.t-line{fill:none;stroke:var(--red);stroke-width:var(--sw);stroke-linecap:round;stroke-linejoin:round}
.t-knob .kb{fill:#141414}
.t-knob .kf{fill:var(--red)}
.t-knob{transition:opacity 400ms}
.t-end{opacity:0}
.t-end.on{opacity:1}
.t-dog{transition:opacity 300ms}
.br{--fur:#fff;--shade:#eadfd5;--spot:#141414}

.tstop{position:relative;z-index:1;display:flex;align-items:center;min-height:clamp(190px,16.5vw,260px);padding:0 clamp(20px,5vw,80px)}
.tstop.l{justify-content:flex-start}
.tstop.c{justify-content:center}
.tstop.r{justify-content:flex-end}
.tstop-in{position:relative}
.tt{display:flex;align-items:center;gap:.16em;margin:0;font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(44px,4.9vw,86px);line-height:.9;color:var(--red);white-space:nowrap}
.tw{display:block;overflow:hidden;padding:.04em 0 .02em}
.tw > span{display:block;transform:translateY(112%);transition:transform 900ms cubic-bezier(.16,1,.3,1)}
.tw + .ti + .tw > span{transition-delay:120ms}
.tstop.on .tw > span{transform:none}
.ti{position:relative;z-index:2;flex:none;width:1.7em;height:1.7em;margin:-.3em -.1em;display:block;transform:scale(0) rotate(-40deg);transition:transform 750ms var(--spring)}
.ti img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(17,17,17,.18));animation:bobble 3.2s ease-in-out infinite alternate}
@keyframes bobble{from{translate:0 0;rotate:-3deg}to{translate:0 -6px;rotate:4deg}}
.tstop.on .ti{transform:rotate(-6deg) scale(1)}
.tstop.on:nth-child(even) .ti{transform:rotate(6deg) scale(1)}
.tstop:hover .ti{animation:jiggle 600ms ease-in-out}
@keyframes jiggle{0%,100%{rotate:0deg}25%{rotate:-10deg}75%{rotate:10deg}}
.tpill{position:absolute;left:calc(50% + .2em);top:100%;margin:2px 0 0;width:max-content;max-width:min(380px,74vw);background:var(--cream);border:2px solid var(--red);color:var(--red);border-radius:100px;padding:12px 24px 13px;font-size:19px;font-weight:600;line-height:1.25;box-shadow:0 4px 16px rgba(17,17,17,.08);opacity:0;transform:translateY(26px) rotate(0deg);transition:opacity 500ms 260ms,transform 900ms 260ms cubic-bezier(.16,1,.3,1)}
.tstop.r .tpill{left:auto;right:-.2em}
.tstop.on .tpill{opacity:1;transform:rotate(-4deg)}
.tstop.on:nth-child(odd) .tpill{transform:rotate(3deg)}
.trail-foot{position:relative;z-index:1;display:flex;justify-content:center}

/* no-JS / reduced motion: everything visible */
html:not(.js) .tw > span,html:not(.js) .tpill{transform:none;opacity:1}
html:not(.js) .ti{transform:rotate(-6deg)}
@media (prefers-reduced-motion: reduce){
  .tw > span,.tpill{transform:none !important;opacity:1 !important}
  .ti{transform:rotate(-8deg) !important}
}

@media (max-width: 1024px){
  .trail-head{grid-template-columns:minmax(0,1fr)}
  .trail-body{--sw:14px}
  .city-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 810px){
  .trail{padding-top:48px}
  .trail-body{--sw:10px;padding:40px 0 70px}
  .tstop{min-height:clamp(170px,46vw,230px);padding:0 14px}
  .tt{font-size:clamp(30px,8.6vw,48px)}
  .tpill{font-size:14px;padding:8px 14px 9px;max-width:min(240px,62vw);left:0;margin-top:4px}
  .tstop.r .tpill{left:auto;right:0}
  .tstop.c .tpill{left:50%;margin-left:-31vw}
  .city-grid.four{grid-template-columns:minmax(0,1fr)}
  .hero-areas{font-size:14px}
}
.svc h3{min-height:1.92em}
@media (max-width: 1024px){.svc h3{min-height:0}}

.t-dog image{filter:drop-shadow(0 4px 6px rgba(17,17,17,.18))}
.t-ghost{stroke:#fbd9c4}
