/* ===== Taxi section (pattern from the reference: product lands in a framed card, strip, band, photo strip, reviews) ===== */
.tx{--tx-bg:var(--bg);--tx-ink:#141414;--tx-mute:#4A4A4A;--tx-line:rgba(0,0,0,.14);--tx-accent:#111111;
  position:relative;color:var(--tx-ink);background-color:var(--tx-bg);
  background-image:linear-gradient(rgba(0,0,0,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(0,0,0,.055) 1px,transparent 1px);background-size:22px 22px;overflow:hidden}
.tx-mono{font-family:"Space Mono",ui-monospace,Menlo,Consolas,monospace;text-transform:uppercase;letter-spacing:.06em}
.tx-display{font-family:"Tektur","Inter",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.02em;line-height:.9}
.tx-wrap{max-width:1180px;margin:0 auto;padding:0 calc(var(--rail,64px) + 24px) 0 48px}

/* ---------- 1. opening: big title, sub line, vehicle strip ---------- */
.tx-hero{padding:120px 0 0;text-align:center}
.tx-hero h2{margin:0;font-size:clamp(46px,8.4vw,128px)}
.tx-hero .tx-sub{margin:14px 0 0;font-size:13px;color:#333}

/* ---------- 2. stage: info | framed card | about ---------- */
.tx-stage{display:grid;grid-template-columns:1fr minmax(280px,360px) 1fr;gap:34px;align-items:stretch;padding:90px 0 110px}
.tx-left{display:flex;flex-direction:column;justify-content:space-between;text-align:right;min-height:420px}
.tx-left .tx-eyebrow{font-size:12px;color:#333}
.tx-left h3{margin:8px 0 6px;font-size:clamp(34px,3.6vw,54px)}
.tx-left .tx-cap{font-size:12px;color:var(--tx-mute)}
.tx-left .tx-uses h4{margin:0 0 8px;font-size:12px}
.tx-left .tx-uses p{margin:0;font-size:12.5px;color:#333;line-height:1.6}
.tx-frame{position:relative;border:1px solid var(--tx-line);border-radius:14px;background:rgba(255,255,255,.65);min-height:420px}
.tx-frame .tx-tag{position:absolute;left:12px;bottom:12px;font-size:10.5px;color:#5e5e5e;border:1px dashed rgba(94,94,94,.45);padding:3px 8px;border-radius:6px;background:var(--card)}
.tx-right{display:flex;flex-direction:column;justify-content:space-between;min-height:420px}
.tx-right h4{margin:0 0 10px;font-size:12px}
.tx-right p{margin:0;font-size:13px;color:#333;line-height:1.65;max-width:340px}
.tx-specs{margin:16px 0 0;padding:0;list-style:none;font-size:12px;max-width:340px}
.tx-specs li{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--tx-line);padding:9px 0}
.tx-specs li span:last-child{text-align:right}
.tx-specs .tbc{color:#5e5e5e;font-style:italic}
.tx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.tx-btn{display:inline-flex;align-items:center;gap:8px;border-radius:8px;padding:11px 16px;font:600 12.5px/1 Inter,sans-serif;cursor:pointer;border:1px solid var(--tx-ink);background:transparent;color:var(--tx-ink)}
.tx-btn.primary{background:var(--tx-accent);border-color:var(--tx-accent);color:#fff;box-shadow:0 8px 22px rgba(0,0,0,.3)}
.tx-swap{transition:opacity .35s,transform .35s}
.tx-swap.out{opacity:0;transform:translateY(10px)}

/* the vehicle inside the frame (drops in and settles when shown) */
.tx-frame{display:grid;place-items:center}
.tx-veh{width:90%}
.tx-veh img,.tx-veh svg{display:block;width:100%;height:auto;filter:drop-shadow(0 26px 30px rgba(0,0,0,.22))}
.tx-veh img{border-radius:10px;aspect-ratio:4/3;object-fit:cover}

/* ---------- vehicle photo tiles (same mosaic and tile style as the destination grid) ---------- */
.tx-grid{margin-top:46px}
.tx-row{display:grid;gap:12px;margin-bottom:12px}
.tx-row-1{grid-template-columns:2fr 3fr 2fr}
.tx-row-2{grid-template-columns:1fr 1fr}
.tx-row-3{grid-template-columns:2.2fr 1fr 2.2fr}
.tx-tile{appearance:none;border:0;padding:0;font:inherit;cursor:pointer;display:block;text-align:left;height:clamp(200px,24vw,300px);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s}
.tx-row-2 .tx-tile{height:clamp(220px,26vw,330px)}
.tx-tile:hover,.tx-tile:focus-visible{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.18)}
.tx-tile.on{outline:3px solid var(--tx-accent);outline-offset:3px}
.tx-tile-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tx-tile-ph{--h1:#2b2f36;--h2:#1a1d22}
.tx-tile-art{position:absolute;left:12%;right:12%;bottom:22%;opacity:.95}
.tx-tile-art svg{width:100%;height:auto;display:block}
.tx-view{position:absolute;right:12px;bottom:12px;z-index:2;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:7px 11px;border-radius:999px;background:var(--card);color:#000;opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.tx-tile:hover .tx-view,.tx-tile:focus-visible .tx-view{opacity:1;transform:none}
.tx-row-3 .tx-tile:nth-child(2) .tag{display:none}
.tx-row-3 .tx-tile:nth-child(2) .ph b{font-size:clamp(16px,1.6vw,22px)}

/* ---------- 3. dark band ---------- */
.tx-band{background:#121212;color:#fff;text-align:center;padding:110px 24px}
.tx-band small{display:block;font-size:12px;opacity:.75;margin-bottom:18px}
.tx-band h3{margin:0 auto;max-width:1000px;font-size:clamp(30px,4.6vw,66px)}
.tx-band p{margin:22px auto 0;max-width:640px;font-size:14px;color:#cfcfcf;line-height:1.6}

/* ---------- 4. photo strip (reference: square tiles drifting sideways, faded edges, draggable) ---------- */
.tx-photos{padding:90px 0 40px}
.tx-photos .tx-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:22px;font-size:12px}
.tx-marquee{overflow:hidden;cursor:grab;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.tx-marquee:active{cursor:grabbing}
.tx-track{display:flex;gap:12px;width:max-content;will-change:transform;user-select:none}
.tx-ph{position:relative;flex:0 0 clamp(200px,22vw,300px);aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:var(--card)}
.tx-ph img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.tx-ph.empty{display:grid;place-items:center;background:repeating-linear-gradient(135deg,var(--card) 0 12px,#E6E6E6 12px 24px)}
.tx-ph.empty span{font-size:11px;color:#5e5e5e;border:1px dashed rgba(94,94,94,.45);padding:4px 9px;border-radius:6px;background:var(--card)}

/* ---------- 5. reviews (reference: bordered cards in a row with arrows) ---------- */
.tx-reviews{padding:60px 0 120px}
.tx-reviews h3{text-align:center;margin:0 0 40px;font-size:clamp(28px,4vw,58px)}
.tx-rv-row{display:flex;gap:16px;overflow:hidden;scroll-behavior:smooth}
.tx-rv{flex:0 0 clamp(240px,24vw,300px);border:1px solid var(--tx-line);border-radius:12px;background:rgba(255,255,255,.6);padding:20px;min-height:230px;display:flex;flex-direction:column;justify-content:space-between}
.tx-rv .av{width:40px;height:40px;border-radius:50%;background:repeating-linear-gradient(135deg,var(--card) 0 6px,#E6E6E6 6px 12px)}
.tx-rv p{font-size:12.5px;color:#555;line-height:1.6;margin:16px 0}
.tx-rv b{font-size:12px}
.tx-rv small{display:block;font-size:11px;color:var(--tx-mute);margin-top:3px}
.tx-rv-nav{display:flex;gap:8px;justify-content:center;margin-top:22px}
.tx-rv-nav button{width:30px;height:30px;border-radius:6px;border:0;background:var(--tx-ink);color:#fff;cursor:pointer}

/* reveal */
.tx-rv-in{opacity:0;transform:translateY(24px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
.tx-rv-in.in{opacity:1;transform:none}

@media (max-width:1024px){ .tx-wrap{padding:0 20px} }
@media (max-width:760px){
  .tx-hero{padding:80px 0 0}
  .tx-grid{margin-top:28px}
  .tx-row{gap:8px;margin-bottom:8px}
  .tx-row-1,.tx-row-3{grid-template-columns:1fr 1fr}
  .tx-row-1 .tx-tile:nth-child(3),.tx-row-3 .tx-tile:nth-child(3){grid-column:1/-1}
  .tx-row-2{grid-template-columns:1fr}
  .tx-tile,.tx-row-2 .tx-tile{height:190px}
  .tx-row-1 .tx-tile:not(:nth-child(3)) .tag,.tx-row-3 .tx-tile:not(:nth-child(3)) .tag{display:none}
  .tx-row-3 .tx-tile:nth-child(3) .tag{display:block}
  .tx-tile .ph b{font-size:18px;max-width:85%}
  .tx-tile .ph em{top:auto;bottom:44px}
  .tx-view{display:none}
  .tx-stage{grid-template-columns:1fr;gap:22px;padding:50px 0 70px}
  .tx-left{text-align:left;min-height:0;gap:16px}
  .tx-frame{min-height:280px}
  .tx-right{min-height:0}
  .tx-band{padding:70px 20px}
}
@media (prefers-reduced-motion:reduce){ .tx-rv-in{opacity:1;transform:none;transition:none} .tx-swap{transition:none} }

/* ---------- vehicle details page (shares the package details view) ---------- */
.tx .tx-grid{padding-bottom:110px}
.pk-veh-art{position:absolute;left:50%;top:44%;width:min(62vw,760px);transform:translate(-50%,-50%);text-align:center}
.pk-veh-art svg{width:100%;height:auto;display:block;filter:drop-shadow(0 30px 40px rgba(0,0,0,.45))}
.pk-veh-art span{display:inline-block;margin-top:18px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#d6d6d6;border:1px dashed rgba(214,214,214,.55);padding:6px 12px;border-radius:6px}
.pk-reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:900px}
.pk-reviews .tx-rv{border:1px solid rgba(0,0,0,.12);border-radius:12px;background:var(--card);padding:18px;min-height:200px;display:flex;flex-direction:column;justify-content:space-between}
.pk-reviews .tx-rv .av{width:38px;height:38px;border-radius:50%;background:repeating-linear-gradient(135deg,var(--card) 0 6px,#E6E6E6 6px 12px)}
.pk-reviews .tx-rv p{font-size:12.5px;color:#555;line-height:1.6;margin:14px 0}
.pk-reviews .tx-rv b{font-size:12px;font-family:"Space Mono",ui-monospace,monospace;text-transform:uppercase}
.pk-reviews .tx-rv small{display:block;font-size:11px;color:#777;margin-top:3px}
@media (max-width:760px){ .pk-reviews{grid-template-columns:1fr} .pk-veh-art{width:86vw} }

/* ---------- supplied vehicle photos (cut-outs on white): shown whole, on a light studio background ---------- */
.tx-tile-photo{position:absolute;inset:0;background:linear-gradient(180deg,var(--card) 0%,var(--card) 100%);display:grid;place-items:center;padding:34px 18px 46px}
.tx-tile-photo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.tx-tile:has(.tx-tile-photo) .label{color:#111}
.tx-tile:has(.tx-tile-photo)::after{background:linear-gradient(180deg,rgba(255,255,255,0),var(--card))}
.tx-tile:has(.tx-tile-photo) .label i{background:rgba(0,0,0,.08)}
.tx-tile:has(.tx-tile-photo) .tag{color:#111;background:var(--card);border-color:rgba(0,0,0,.15)}
.pk-veh-studio{position:absolute;inset:0;background:radial-gradient(70% 60% at 50% 45%,var(--card) 0%,var(--card) 100%);display:grid;place-items:center;padding:14vh 8vw 26vh}
.pk-veh-studio img{max-width:min(100%,900px);max-height:100%;object-fit:contain;display:block;filter:drop-shadow(0 30px 30px rgba(0,0,0,.18))}
.pk-hero-veh{color:#111}
.pk-hero-veh::before{display:none}
.pk-hero-veh .pk-lead{color:#444}
.pk-hero-veh .pk-tag{color:#111;background:var(--card);border-color:rgba(0,0,0,.15)}
@media (max-width:760px){ .pk-veh-studio{padding:18vh 6vw 30vh} .tx-tile-photo{padding:30px 12px 42px} }
