/* ============================================================
   BlueSystm — card-lift.css
   The look for the .is-pressed class assets/js/card-lift.js applies.
   Touch only.

   LINKED LAST, AFTER home-mobile.css. That file triples the last class of
   every selector by convention — `.calc-card.calc-card.calc-card` — to beat
   the desktop rules it overrides, and it sets the resting box-shadow and
   border of every card here. Nothing at two classes can outrank it, so the
   selectors below are quadrupled and this sheet is linked after it. Both
   halves matter: `.faq-item.open.open.open` is four deep too, and a tie
   goes to whoever is later.

   ── What this fixes ──
   Tapping a card gave two different answers depending on which rule it had
   inherited. The Check Your Market card, the revenue model, the FAQ rows
   and the closing CTA lifted and stayed lifted; the Capture / Qualify /
   Book cards only lifted while a finger was held on them. Neither was
   designed. The first group are plain divs carrying a :hover rule that was
   never gated to desktop, and iOS applies :hover on tap and holds it until
   you tap elsewhere. The second lift from :active, which lasts exactly as
   long as the touch.

   So the accidental :hover is switched off here, and the same behaviour is
   put back deliberately on every card as .is-pressed — tap to lift, holds
   until you tap something else.

   Each card keeps its own resting elevation and steps up exactly one level,
   which is what its :hover already did, so the lifted look is the look the
   sticky cards already had. The rise is the translateY(-4px) used elsewhere
   on mobile rather than the desktop scale(1.03): scaling a card that is
   most of the height of the screen re-rasterises its text mid-transition.
   Timing is --dur-base / --ease-standard, the same as the :hover it
   replaces, so a lift feels exactly as it did before.
   ============================================================ */

@media (hover: none) and (pointer: coarse) {

  /* ── iOS's stuck :hover, returned to each card's resting state ──────
     :not(.is-pressed) is load-bearing, not decoration. A tap on iOS applies
     :hover AND .is-pressed at the same time, and a neutraliser written as
     four classes plus :hover outranks a pressed rule written as four
     classes — so without the guard this rule wins on the very tap it is
     supposed to make way for, and the card takes the shadow and border of
     a lift without ever moving. Excluding the pressed card by matching,
     rather than trying to out-specify it, is what keeps that honest. */
  .territory-search-card.territory-search-card.territory-search-card.territory-search-card:hover:not(.is-pressed) {
    transform: none;
    box-shadow: var(--e3);
  }
  .calc-card.calc-card.calc-card.calc-card:hover:not(.is-pressed) {
    transform: none;
    box-shadow: var(--e3);
  }
  .tl-mockup-card.tl-mockup-card.tl-mockup-card.tl-mockup-card:hover:not(.is-pressed) {
    transform: none;
    box-shadow: var(--e2);
  }
  .tl-mockup-card-wrap.tl-mockup-card-wrap:hover { transform: none; }
  .faq-item.faq-item.faq-item.faq-item:hover:not(.is-pressed) {
    transform: none;
    box-shadow: var(--e2);
    border-color: var(--border);
  }
  .faq-item.open.open.open:hover:not(.is-pressed) {
    transform: none;
    box-shadow: var(--e2);
    border-color: var(--border);
  }
  .faq-footer.faq-footer.faq-footer.faq-footer:hover:not(.is-pressed) {
    transform: none;
    box-shadow: none;
    border-color: var(--border);
  }

  /* ── The transition the :hover above used to carry ────────────────── */
  .territory-search-card.territory-search-card.territory-search-card.territory-search-card,
  .calc-card.calc-card.calc-card.calc-card,
  .faq-item.faq-item.faq-item.faq-item,
  .faq-footer.faq-footer.faq-footer.faq-footer,
  .tl-mockup-card.tl-mockup-card.tl-mockup-card.tl-mockup-card {
    transition: transform var(--dur-base) var(--ease-standard),
                box-shadow var(--dur-base) var(--ease-standard),
                border-color var(--dur-fast) var(--ease-standard);
  }

  /* ── Tapped ───────────────────────────────────────────────────────── */
  .territory-search-card.territory-search-card.territory-search-card.is-pressed,
  .calc-card.calc-card.calc-card.is-pressed {
    transform: translateY(-4px);
    box-shadow: var(--e4);
  }

  .faq-item.faq-item.faq-item.is-pressed,
  .faq-footer.faq-footer.faq-footer.is-pressed,
  .tl-mockup-card.tl-mockup-card.tl-mockup-card.is-pressed {
    transform: translateY(-4px);
    box-shadow: var(--e3);
  }

  /* An open FAQ row keeps its own shadow rule at four classes; the pressed
     state has to say so again or the row would flatten as it opens. */
  .faq-item.open.open.open.is-pressed {
    transform: translateY(-4px);
    box-shadow: var(--e3);
  }

  /* A lifted row has to sit over the rows it is casting onto. */
  .faq-item.faq-item.faq-item.is-pressed { position: relative; z-index: 3; }
}

/* The tap still registers — instantly, and without travel. */
@media (hover: none) and (pointer: coarse) and (prefers-reduced-motion: reduce) {
  .territory-search-card.territory-search-card.territory-search-card.territory-search-card,
  .calc-card.calc-card.calc-card.calc-card,
  .faq-item.faq-item.faq-item.faq-item,
  .faq-footer.faq-footer.faq-footer.faq-footer,
  .tl-mockup-card.tl-mockup-card.tl-mockup-card.tl-mockup-card {
    transition-duration: 1ms;
  }

  .territory-search-card.territory-search-card.territory-search-card.is-pressed,
  .calc-card.calc-card.calc-card.is-pressed,
  .faq-item.faq-item.faq-item.is-pressed,
  .faq-footer.faq-footer.faq-footer.is-pressed,
  .tl-mockup-card.tl-mockup-card.tl-mockup-card.is-pressed {
    transform: none;
  }
}
