/* ==========================================================================
   CP15 footer: brand tiles + link card (left), physics playground (right).
   Layout inspired by theplaya.solutions; colours from the CashMyCarTX palette:
   mint brand tiles, soft grey cards, warm amber pills (complement to green).
   ========================================================================== */
footer.ft{
  --ft-mint:#6FE3A3; --ft-mint-ink:#0B3D24; --ft-card:#F2F4F1; --ft-ink:#14201B; --ft-muted:#5B6660;
  --ft-pill:#FFD37A; --ft-pill-hover:#FFC24D; --ft-ball:#FFD37A;
  background:#fff;color:var(--ft-ink);margin-top:72px;padding:0 0 28px;border-radius:0;border-top:0;
  font-family:var(--font-body,'Barlow',system-ui,sans-serif)
}
footer.ft .ft-wrap{display:grid;gap:18px}
.ft-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:16px;align-items:stretch}
.ft-left{display:grid;gap:16px;align-content:start}

/* brand tiles */
.ft-brand{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;text-decoration:none;color:var(--ft-mint-ink)}
.ft-tile{background:var(--ft-mint);border-radius:28px;display:flex;align-items:center;transition:transform .35s cubic-bezier(.3,1.4,.5,1),background-color .25s}
.ft-tile-mark{width:156px;height:156px;justify-content:center}
.ft-tile-mark img{width:92px;height:92px;transition:transform .5s cubic-bezier(.3,1.4,.5,1)}
.ft-tile-name{flex-direction:column;align-items:flex-start;justify-content:center;padding:0 30px;min-width:0}
.ft-word{font:700 clamp(38px,4.6vw,66px)/.95 var(--font-head,'Barlow Semi Condensed',sans-serif);letter-spacing:-.02em;color:var(--ft-ink);white-space:nowrap}
.ft-word b{font-weight:700;color:#007A3D}
.ft-word i{font-style:normal;color:var(--ft-ink)}
.ft-tag{margin-top:8px;font-size:15px;font-weight:600;color:var(--ft-mint-ink);opacity:.85}
.ft-brand:hover .ft-tile{background:#62DA98}
.ft-brand:hover .ft-tile-mark img{transform:rotate(-12deg) scale(1.06)}
.ft-brand:hover .ft-tile-name{transform:translateX(2px)}

/* link card */
.ft-card{background:var(--ft-card);border-radius:28px}
.ft-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 28px;padding:28px 30px 30px}
.ft-stack{display:grid;gap:26px;align-content:start}
footer.ft .ft-col h3{margin:0 0 10px;font:600 14px var(--font-body,'Barlow',sans-serif);letter-spacing:.02em;text-transform:none;color:var(--ft-muted)}
footer.ft .ft-col ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
footer.ft .ft-col li{margin:0}
footer.ft .ft-col a{display:inline-flex;align-items:center;min-height:32px;color:var(--ft-ink);font-size:16px;font-weight:500;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1.5px;background-position:0 88%;background-repeat:no-repeat;transition:background-size .25s ease,color .2s}
footer.ft .ft-col a:hover,footer.ft .ft-col a:focus-visible{color:#007A3D;background-size:100% 1.5px;text-decoration:none}
footer.ft .ft-addr{font-size:14.5px;color:var(--ft-muted);line-height:1.45;padding:4px 0}

/* playground */
.ft-play{position:relative;overflow:hidden;min-height:480px;padding:22px;display:flex;flex-wrap:wrap;align-content:flex-end;justify-content:center;gap:10px 8px;user-select:none;-webkit-user-select:none}
.ft-pill,.ft-ball{-webkit-user-drag:none;user-select:none;-webkit-tap-highlight-color:transparent}
footer.ft .ft-pill{display:inline-flex;align-items:center;white-space:nowrap;padding:11px 20px;border-radius:12px;background:var(--ft-pill);color:var(--ft-ink);
  font:500 clamp(16px,1.55vw,21px)/1.1 var(--font-body,'Barlow',sans-serif);text-decoration:none;box-shadow:inset 0 -2px 0 rgba(0,0,0,.06);transition:background-color .2s}
footer.ft .ft-pill:hover{background:var(--ft-pill-hover);color:var(--ft-ink)}
footer.ft .ft-ball{display:grid;place-items:center;width:124px;height:124px;border-radius:50%;background:var(--ft-ball);color:var(--ft-ink);text-decoration:none;transition:background-color .2s}
footer.ft .ft-ball:hover{background:var(--ft-pill-hover)}
.ft-ball svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ft-ball-call svg{width:38px;height:38px}
footer.ft .ft-pill:focus-visible,footer.ft .ft-ball:focus-visible{outline:3px solid #007A3D;outline-offset:3px}
/* static pile (no JS / reduced motion): a few tilts so it still feels loose */
.ft-play:not(.is-physics) .ft-pill:nth-child(3n+1){transform:rotate(-6deg)}
.ft-play:not(.is-physics) .ft-pill:nth-child(3n+2){transform:rotate(4deg)}
.ft-play:not(.is-physics) .ft-pill:nth-child(4n){transform:rotate(-2deg)}
/* physics mode: script positions every item with transforms */
.ft-play.is-physics{display:block;padding:0}
.ft-play.is-physics .ft-pill,.ft-play.is-physics .ft-ball{position:absolute;left:0;top:0;margin:0;will-change:transform;transform:translate(-9999px,-9999px)}
.ft-play.is-physics.can-drag .ft-pill,.ft-play.is-physics.can-drag .ft-ball{cursor:grab;touch-action:none}
.ft-play.is-dragging,.ft-play.is-dragging *{cursor:grabbing !important}

/* bottom bar */
.ft-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding:6px 6px 0}
.ft-copy,.ft-legal{margin:0;font-size:14.5px;color:var(--ft-muted)}
.ft-legal{display:flex;gap:18px}
footer.ft .ft-legal a{color:var(--ft-muted);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
footer.ft .ft-legal a:hover{color:var(--ft-ink);text-decoration:underline}
footer.ft .footer-social .social-bar{padding:0;gap:8px;justify-content:flex-end}
footer.ft .footer-social .social-bar a{width:40px;height:40px;background:var(--ft-card);border:0;color:var(--ft-ink)}
footer.ft .footer-social .social-bar a:hover{background:var(--ft-mint);color:var(--ft-mint-ink);transform:translateY(-2px)}
.ft-disclaimer{margin:0;padding:0 6px;font-size:12.5px;line-height:1.5;color:#7A847F;max-width:70em}

@media (max-width:980px){
  .ft-grid{grid-template-columns:1fr}
  .ft-play{min-height:440px}
}
@media (max-width:600px){
  footer.ft{margin-top:48px}
  .ft-tile{border-radius:22px}
  .ft-tile-mark{width:96px;height:96px}
  .ft-tile-mark img{width:60px;height:60px}
  .ft-tile-name{padding:0 18px}
  .ft-word{font-size:clamp(30px,9vw,44px)}
  .ft-tag{font-size:12.5px;margin-top:4px}
  .ft-links{grid-template-columns:1fr 1fr;gap:22px 18px;padding:22px 20px}
  .ft-stack{grid-column:1 / -1;grid-template-columns:1fr 1fr;gap:18px}
  footer.ft .ft-col a{font-size:15px}
  .ft-play{min-height:400px}
  footer.ft .ft-pill{padding:9px 15px;font-size:15px}
  footer.ft .ft-ball{width:88px;height:88px}
  .ft-ball svg{width:34px;height:34px}
  .ft-bottom{justify-content:center;text-align:center}
  footer.ft .footer-social .social-bar{justify-content:center;flex-wrap:wrap}
  .ft-disclaimer{text-align:center}
}
@media (prefers-reduced-motion:reduce){
  .ft-tile,.ft-tile-mark img,footer.ft .ft-col a{transition:none}
  .ft-brand:hover .ft-tile-mark img,.ft-brand:hover .ft-tile-name{transform:none}
}
footer.ft .footer-social{margin:0;padding:0;border:0}

/* pills are links: show it */
footer.ft .ft-pill{gap:10px}
.ft-pill-go{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(20,32,27,.1);font-size:13px;line-height:1;transition:background-color .2s,transform .2s}
footer.ft .ft-pill:hover .ft-pill-go{background:#14201B;color:#FFD37A;transform:translate(1px,-1px)}
.ft-play.is-physics.can-drag .ft-pill,.ft-play.is-physics.can-drag .ft-ball{cursor:pointer}
.ft-play.is-dragging,.ft-play.is-dragging *{cursor:grabbing !important}
/* labelled balls */
.ft-ball-in{display:grid;justify-items:center;gap:4px}
.ft-ball-t{font:700 14px/1 var(--font-body,'Barlow',sans-serif);letter-spacing:.01em}
footer.ft .ft-ball-go{background:#D7261E;color:#fff;box-shadow:inset 0 2px 0 rgba(255,255,255,.25),0 10px 22px -8px rgba(215,38,30,.6)}
footer.ft .ft-ball-go:hover{background:#B51C15;color:#fff}
.ft-ball-go svg{width:40px;height:40px}
@media (max-width:600px){.ft-ball-t{font-size:12px}.ft-ball-go svg{width:30px;height:30px}}
footer.ft .ft-ball-loc{background:#007A3D;color:#fff;box-shadow:inset 0 2px 0 rgba(255,255,255,.22),0 10px 22px -8px rgba(0,122,61,.55)}
footer.ft .ft-ball-loc:hover{background:#00632F;color:#fff}
.ft-ball-loc svg{width:36px;height:36px}
@media (max-width:600px){.ft-ball-loc svg{width:28px;height:28px}}

/* ---- brand tiles: pine for contrast (white wordmark ~12:1, mint "My" ~8:1) -- */
footer.ft .ft-tile{background:radial-gradient(120% 140% at 85% 0%,#17573E 0%,#0E3B2A 60%,#0A2C20 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 30px -14px rgba(10,44,32,.55)}
footer.ft .ft-brand:hover .ft-tile{background:radial-gradient(120% 140% at 85% 0%,#1C6849 0%,#114634 60%,#0B3125 100%)}
footer.ft .ft-tile-mark{position:relative}
footer.ft .ft-tile-mark::before{content:"";position:absolute;width:112px;height:112px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 6px rgba(255,255,255,.08),0 8px 20px -6px rgba(0,0,0,.45)}
footer.ft .ft-tile-mark img{position:relative;width:78px;height:78px}
footer.ft .ft-word{color:#fff}
footer.ft .ft-word b{color:#6FE3A3}
footer.ft .ft-word i{color:#fff}
footer.ft .ft-tag{color:#C9DDD2;opacity:1}
@media (max-width:600px){
  footer.ft .ft-tile-mark::before{width:72px;height:72px;box-shadow:0 0 0 4px rgba(255,255,255,.08),0 6px 14px -6px rgba(0,0,0,.45)}
  footer.ft .ft-tile-mark img{width:50px;height:50px}
}
/* Nextdoor: round button like the other socials (the old wordmark needed a pill) */
footer.ft .footer-social .social-bar a[aria-label="Nextdoor"]{width:44px;min-width:44px;height:44px;padding:0;border-radius:50%}
footer.ft .footer-social .social-bar a[aria-label="Nextdoor"] svg{width:21px;height:21px}
footer.ft .footer-social .social-bar a[aria-label="Nextdoor"]:hover{background:#8ED500;color:#fff}

/* ---- social logos as brand-coloured balls in the playground ----------------- */
footer.ft .ft-soc{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;color:#fff;text-decoration:none;
  box-shadow:inset 0 2px 0 rgba(255,255,255,.22),0 10px 20px -10px rgba(0,0,0,.5);transition:filter .2s,transform .2s}
footer.ft .ft-soc svg{width:27px;height:27px;fill:currentColor}
footer.ft .ft-soc:hover{filter:brightness(1.08) saturate(1.1)}
footer.ft .ft-soc:focus-visible{outline:3px solid #007A3D;outline-offset:3px}
.ft-soc-x{background:#000}
.ft-soc-facebook{background:#1877F2}
.ft-soc-instagram{background:radial-gradient(circle at 30% 107%,#FDF497 0%,#FDF497 5%,#FD5949 45%,#D6249F 60%,#285AEB 90%)}
.ft-soc-youtube{background:#FF0000}
.ft-soc-pinterest{background:#E60023}
.ft-soc-linkedin{background:#0A66C2}
.ft-soc-tiktok{background:#000}
footer.ft .ft-soc-tiktok svg{filter:drop-shadow(-1.5px -1px 0 #25F4EE) drop-shadow(1.5px 1px 0 #FE2C55)}
.ft-soc-nextdoor{background:#8ED500}
footer.ft .ft-soc-nextdoor svg{width:30px;height:30px}
.ft-play:not(.is-physics) .ft-soc{margin:2px}
.ft-play{min-height:560px}
@media (max-width:980px){.ft-play{min-height:520px}}
@media (max-width:600px){.ft-play{min-height:520px}footer.ft .ft-soc{width:50px;height:50px}footer.ft .ft-soc svg{width:22px;height:22px}footer.ft .ft-soc-nextdoor svg{width:25px;height:25px}}
/* bottom bar without the social row */
.ft-bottom{justify-content:space-between}
.ft-play.is-physics .ft-soc{position:absolute;left:0;top:0;margin:0;will-change:transform;transform:translate(-9999px,-9999px)}
.ft-play.is-physics.can-drag .ft-soc{cursor:pointer;touch-action:none}
/* JS is about to drop the items: keep the static pile hidden (it still takes
   up layout, so the sizes cp15-footer.js measures stay right) */
.ft-play.is-armed:not(.is-physics) .ft-pill,.ft-play.is-armed:not(.is-physics) .ft-ball,.ft-play.is-armed:not(.is-physics) .ft-soc{visibility:hidden}
