/* =====================================================================
   Trash Teens design layer (loads after the page's own styles)
   Remove the <link> to this file to get the original look back.
   ===================================================================== */
:root{
  --navy:#0f1d2a; --navy-2:#172b3b; --navy-3:#1f3a4f;
  --blue:#3baaff; --blue-deep:#1c7fd6; --blue-soft:#e3f2ff;
  --orange:#ff6a2b; --orange-deep:#d9501a; --orange-soft:#fff0e8;
  --paper:#f4f1ea; --paper-2:#ebe5d8; --ink:#141a20; --muted:#5a6470;
  --r:16px; --ease:cubic-bezier(.2,.75,.2,1);
  --tape:repeating-linear-gradient(-45deg,var(--orange) 0 18px,var(--navy) 18px 36px);
}
body{font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased;color:var(--ink)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px;border-radius:6px}
::selection{background:var(--blue);color:var(--navy)}

/* ---------- top bar + sticky nav ---------- */
.topbar{position:relative;top:auto;z-index:101;border-bottom:0;font-size:12.5px;padding:9px 16px}
.topbar .dot{animation:tt-live 1.8s ease-out infinite}
@keyframes tt-live{0%{box-shadow:0 0 0 0 rgba(74,222,128,.7)}100%{box-shadow:0 0 0 9px rgba(74,222,128,0)}}
nav{position:sticky;top:0;z-index:100;background:rgba(15,29,42,.94);backdrop-filter:saturate(1.3) blur(10px);-webkit-backdrop-filter:saturate(1.3) blur(10px);padding:12px max(20px,calc((100% - 1100px)/2));border-bottom:3px solid var(--orange);flex-wrap:nowrap}
.brand{text-decoration:none}
.brand-badge{width:48px;height:48px;transition:transform .5s var(--ease)}
.brand:hover .brand-badge{transform:rotate(-12deg) scale(1.05)}
.tt-links{display:flex;gap:22px;margin-left:auto;margin-right:18px}
.tt-links a{color:rgba(255,255,255,.72);text-decoration:none;font-weight:600;font-size:14.5px;position:relative;padding:4px 0;transition:color .2s}
.tt-links a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}
.tt-links a:hover{color:#fff}
.tt-links a:hover::after{transform:scaleX(1)}
.nav-cta{display:inline-flex;align-items:center;gap:8px;border-radius:10px;padding:11px 18px;font-size:15px}

/* ---------- icons injected into buttons ---------- */
.tt-ic{width:1.1em;height:1.1em;flex-shrink:0;display:inline-block;vertical-align:-.15em}

/* ---------- buttons ---------- */
.btn-primary,.btn-secondary{border-radius:12px;transition:transform .15s var(--ease),box-shadow .15s,background .2s,border-color .2s}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 7px 0 var(--orange-deep)}
.btn-primary{box-shadow:0 5px 0 var(--orange-deep)}
.btn-secondary:hover{border-color:var(--blue);background:rgba(59,170,255,.1)}

/* ---------- hero ---------- */
.hero{min-height:600px;isolation:isolate;padding:0}
.hero-inner{padding:80px 24px 70px}
.hero-bg{opacity:.55;animation:tt-zoom 22s ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes tt-zoom{from{transform:scale(1)}to{transform:scale(1.08)}}
.hero-fade{background:
  radial-gradient(ellipse at 15% 20%,rgba(59,170,255,.18),transparent 55%),
  linear-gradient(180deg,rgba(15,29,42,.5) 0%,rgba(15,29,42,.78) 60%,var(--navy) 100%)}
.hero h1{font-size:clamp(44px,7.4vw,92px);line-height:.98;letter-spacing:-1.5px}
.hero h1 .accent{position:relative;display:inline-block;color:var(--blue)}
.hero h1 .accent::after{content:"";position:absolute;left:0;right:0;bottom:.02em;height:.12em;background:var(--orange);border-radius:4px;transform-origin:left;animation:tt-under .9s .5s var(--ease) both}
@keyframes tt-under{from{transform:scaleX(0)}}
.hero p.lede{font-size:clamp(17px,1.5vw,19.5px);color:rgba(255,255,255,.8)}
.hero-tag{backdrop-filter:blur(6px)}
.hero-stats{border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(15,29,42,.55);backdrop-filter:blur(8px);padding:22px 26px;width:fit-content;max-width:100%;gap:0}
.hstat .num{font-size:30px}
.tt-tape{position:relative;z-index:3;background:var(--tape);padding:5px 0;overflow:hidden;box-shadow:0 -6px 20px rgba(0,0,0,.25)}
.tt-tape .track{display:inline-flex;white-space:nowrap;animation:tt-tape 40s linear infinite;background:var(--navy)}
.tt-tape span{font-family:'Archivo Black',sans-serif;color:#fff;font-size:15px;letter-spacing:1px;padding:10px 0;display:inline-flex;align-items:center;gap:26px;padding-right:26px}
.tt-tape span::after{content:"";width:9px;height:9px;background:var(--orange);transform:rotate(45deg)}
@keyframes tt-tape{to{transform:translateX(-50%)}}

/* ---------- section headings ---------- */
section{padding:100px 24px}
h2.section-title{font-size:clamp(30px,4.6vw,50px);letter-spacing:-1px;line-height:1.04;text-wrap:balance}
.eyebrow{font-weight:700;color:var(--blue-deep)}
.eyebrow::before{height:3px;border-radius:2px}

/* ---------- services ---------- */
.svc-grid{gap:18px}
.svc-card{background:#fff;border:1.5px solid rgba(15,29,42,.09);border-radius:var(--r);padding:28px 26px;overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.svc-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--tape);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.svc-card:hover{transform:translateY(-6px);box-shadow:0 22px 40px -22px rgba(15,29,42,.35);border-color:rgba(255,106,43,.45)}
.svc-card:hover::before{transform:scaleX(1)}
.svc-num{font-size:0;margin-bottom:18px;width:54px;height:54px;border-radius:14px;background:var(--navy);display:grid;place-items:center;transition:transform .35s var(--ease),background .3s}
.svc-num::before{content:"";width:26px;height:26px;background:var(--blue);-webkit-mask:var(--ic) center/contain no-repeat;mask:var(--ic) center/contain no-repeat}
.svc-card:hover .svc-num{transform:rotate(-6deg);background:var(--orange)}
.svc-card:hover .svc-num::before{background:#fff}
.svc-card h3{font-size:20px}
.svc-card p{font-size:15px;color:var(--muted)}
.svc-card:nth-child(1){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21V9l9-6 9 6v12'/%3E%3Cpath d='M7 21v-8h10v8M7 17h10'/%3E%3C/svg%3E")}
.svc-card:nth-child(2){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 11V8a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v3'/%3E%3Cpath d='M2 13a2 2 0 0 1 4 0v2h12v-2a2 2 0 0 1 4 0v5H2z'/%3E%3Cpath d='M5 18v2M19 18v2'/%3E%3C/svg%3E")}
.svc-card:nth-child(3){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22v-6M9 16h6l-3-5 2 0-3-5-3 5h2z'/%3E%3Cpath d='M17 22l2-7 3 7zM2 22h20'/%3E%3C/svg%3E")}
.svc-card:nth-child(4){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 8v13H3V8'/%3E%3Cpath d='M1 3h22v5H1zM10 12h4'/%3E%3C/svg%3E")}
.svc-card:nth-child(5){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 22V3M4 4h13l-2 4 2 4H4'/%3E%3C/svg%3E")}
.svc-card:nth-child(6){--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2M15 18H9M19 18h2a1 1 0 0 0 1-1v-3.6a1 1 0 0 0-.2-.6l-3.5-4.4a1 1 0 0 0-.8-.4H14'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3Ccircle cx='7' cy='18' r='2'/%3E%3C/svg%3E")}

/* ---------- rate-sheet tickets (pricing + towns) ---------- */
.price-ticket{border-radius:20px;border:1.5px solid rgba(15,29,42,.1);box-shadow:0 30px 60px -40px rgba(15,29,42,.45);position:relative}
.price-ticket-head{background:var(--navy);padding:20px 28px;position:relative}
.price-ticket-head::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:6px;background:var(--tape)}
.price-row{padding:20px 28px;transition:background .2s}
.price-row:hover{background:var(--orange-soft)}
.price-row .label{font-size:16.5px;font-weight:700}
.price-row .sub{font-size:13.5px;color:var(--muted)}
.price-row .amt{font-size:19px;color:var(--navy);background:var(--blue-soft);padding:6px 12px;border-radius:9px}
.town-link{display:inline-flex;align-items:center;gap:6px;text-decoration:none;background:var(--navy);color:#fff;padding:8px 14px;border-radius:9px;font-size:13px;transition:background .2s,transform .2s var(--ease)}
.town-link::after{content:"→";transition:transform .2s var(--ease)}
.town-link:hover{background:var(--orange);color:#fff}
.town-link:hover::after{transform:translateX(3px)}
.town-plain{background:var(--paper);padding:8px 14px;border-radius:9px}

/* ---------- before / after ---------- */
.proof{position:relative;overflow:hidden}
.proof::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 90% 0%,rgba(59,170,255,.16),transparent 55%);pointer-events:none}
.proof .wrap{position:relative}
.ba-row{gap:16px;position:relative}
.ba-card{border-radius:var(--r);box-shadow:0 26px 50px -28px rgba(0,0,0,.7)}
.ba-card img{transition:transform .8s var(--ease)}
.ba-card:hover img{transform:scale(1.04)}
.ba-badge{border-radius:8px;z-index:2}
.ba-badge.after{background:var(--orange);color:#fff;border:0}
.ba-set-label{font-size:13px;color:rgba(255,255,255,.7);margin-top:16px}
.ba-group{margin-bottom:64px}
/* side-by-side: the after photo wipes in */
.tt-anim .ba-row.tt-side > div:last-child .ba-card{clip-path:inset(0 100% 0 0);transition:clip-path 1.1s .25s var(--ease)}
.tt-anim .ba-row.tt-side.tt-in > div:last-child .ba-card{clip-path:inset(0 0 0 0)}
.ba-row.tt-side::after{content:"";position:absolute;left:50%;top:50%;width:52px;height:52px;margin:-26px 0 0 -26px;border-radius:50%;background:var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/24px no-repeat;box-shadow:0 0 0 6px var(--navy),0 10px 20px rgba(0,0,0,.4);z-index:3}
/* drag slider */
.tt-slider{position:relative;aspect-ratio:4/3;border-radius:var(--r);overflow:hidden;user-select:none;-webkit-user-select:none;box-shadow:0 26px 50px -28px rgba(0,0,0,.7);max-width:920px;margin:0 auto}
.tt-slider img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.tt-slider .tt-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0)}
.tt-slider .tt-line{position:absolute;top:0;bottom:0;left:var(--pos,50%);width:4px;margin-left:-2px;background:#fff;pointer-events:none;z-index:2}
.tt-slider .tt-knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:var(--orange);display:grid;place-items:center;box-shadow:0 8px 22px rgba(0,0,0,.45);transition:transform .2s}
.tt-slider .tt-knob svg{width:26px;height:26px;color:#fff}
.tt-slider:hover .tt-knob{transform:translate(-50%,-50%) scale(1.08)}
.tt-slider:focus-within .tt-knob{outline:3px solid #fff;outline-offset:3px}
.tt-slider input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none;z-index:4}
.tt-slider input::-webkit-slider-thumb{-webkit-appearance:none;width:56px;height:100%}
.tt-slider .ba-badge{position:absolute;top:14px;z-index:3}
.tt-slider .ba-badge.before{left:14px}.tt-slider .ba-badge.after{left:auto;right:14px}
.tt-hint{text-align:center;font-family:'Space Mono',monospace;font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--blue);margin-top:12px}

/* ---------- reviews ---------- */
.rev-grid{gap:18px}
.rev-card{background:var(--paper);border-radius:var(--r);padding:28px 26px 24px;transition:transform .3s var(--ease),box-shadow .3s;display:flex;flex-direction:column}
.rev-card::before{content:"\201C";position:absolute;right:18px;top:6px;font-family:'Archivo Black',sans-serif;font-size:74px;line-height:1;color:rgba(59,170,255,.22)}
.rev-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(15,29,42,.35)}
.rev-text{font-style:normal;font-size:15.5px;color:#28313a;flex:1}
.rev-name{margin-top:18px;padding-top:14px;border-top:1.5px dashed rgba(15,29,42,.15)}

/* ---------- how it works ---------- */
.how-steps{counter-reset:none;position:relative}
.how-step{background:#fff;border:1.5px solid rgba(15,29,42,.08);border-radius:var(--r);padding:28px 26px}
.how-step .stepnum{font-family:'Archivo Black',sans-serif;font-size:56px;color:transparent;-webkit-text-stroke:2px var(--orange);margin-bottom:10px}
.how-step h3{font-size:20px}

/* ---------- FAQ ---------- */
.faq-item summary{font-size:17px;padding:22px 0}
.faq-item summary::after{content:"+";width:34px;height:34px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:22px;line-height:1;transition:transform .25s var(--ease),background .2s}
.faq-item[open] summary::after{transform:rotate(45deg);background:var(--orange)}
.faq-item .faq-answer{font-size:15.5px;color:var(--muted)}

/* ---------- final CTA ---------- */
.final-cta{padding:110px 24px}
.final-cta::before{background-image:repeating-linear-gradient(-45deg,rgba(0,0,0,.05) 0 14px,transparent 14px 28px);animation:tt-slide 18s linear infinite;background-size:200% 200%}
@keyframes tt-slide{to{background-position:100% 100%}}
.final-cta h2{font-size:clamp(34px,5.6vw,60px);letter-spacing:-1px}

/* ---------- footer + sticky mobile bar ---------- */
footer{position:relative}
footer::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--tape)}
.sticky-cta{background:rgba(15,29,42,.95);backdrop-filter:blur(8px);padding:10px 14px calc(10px + env(safe-area-inset-bottom))}
.sticky-cta a{border-radius:12px;font-size:15px}
.sticky-cta a.call{background:var(--orange)}
.sticky-cta a.text{background:transparent;border:2px solid rgba(255,255,255,.4)}

/* ---------- scroll reveal ---------- */
.tt-anim .tt-rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}
.tt-anim .tt-rv.tt-in{opacity:1;transform:none}

@media (max-width:980px){.tt-links{display:none}}
@media (max-width:860px){
  nav{padding:10px 16px}
  .ba-row.tt-side::after{display:none}
  section{padding:70px 20px}
  .hero-stats{padding:16px 18px}
}
@media (max-width:560px){
  nav{gap:10px}
  nav .brand-text .name{font-size:19px}
  .nav-cta:has(.tt-ic){font-size:0;padding:11px 13px;gap:0}
  .nav-cta:has(.tt-ic) .tt-ic{width:20px;height:20px}
  .hero h1{font-size:clamp(40px,12vw,56px)}
  .price-row{padding:18px 20px}
  .price-ticket-head{padding:16px 20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important}
  .tt-anim .tt-rv{opacity:1;transform:none}
  .tt-anim .ba-row.tt-side > div:last-child .ba-card{clip-path:none}
}
