/* apexiris.app: the four product cards, product videos and the Marketing House data map.
   Shared by the home page (with site.css) and the product pages (with rentals/rentals.css). */
.acc-rentals{--a:#2F7BFF;--b:#3EE6FF}
.acc-hotels{--a:#FF8A3D;--b:#FFD36E}
.acc-coworking{--a:#12C98A;--b:#B8F35A}
.acc-marketing{--a:#8B6CFF;--b:#3EE6FF}
body.acc-hotels,body.acc-coworking,body.acc-marketing,body.acc-rentals{--grad:linear-gradient(120deg,var(--a),var(--b))}
body.acc-hotels .tag,body.acc-coworking .tag{color:color-mix(in srgb,var(--b) 75%,#fff)}
body.acc-hotels .glow{background:radial-gradient(circle,rgba(255,138,61,.14),transparent 60%)}
body.acc-coworking .glow{background:radial-gradient(circle,rgba(18,201,138,.14),transparent 60%)}

/* product video in a phone-shaped frame; plays muted while on screen (products.js) */
.pv{position:relative;aspect-ratio:9/16;width:100%;max-width:320px;border-radius:30px;overflow:hidden;background:#05060A;
  border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 0 6px rgba(255,255,255,.03),0 0 60px color-mix(in srgb,var(--b,#3EE6FF) 18%,transparent)}
.pv video,.pv img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pv button{position:absolute;right:12px;bottom:12px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);
  background:rgba(7,8,11,.6);color:#fff;font-size:14px;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.pv button:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* the four product cards */
.pcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:44px}
.pcard{position:relative;display:grid;grid-template-rows:auto 1fr;gap:20px;padding:22px;border-radius:26px;min-width:0;
  background:linear-gradient(170deg,color-mix(in srgb,var(--a) 10%,transparent),rgba(255,255,255,.02) 45%);border:1px solid rgba(255,255,255,.09);
  transition:border-color .3s,transform .3s}
.pcard:hover{border-color:color-mix(in srgb,var(--b) 45%,transparent);transform:translateY(-3px)}
.pcard .pv{max-width:none;margin:0 auto}
.pcard .pc-body{display:grid;gap:12px;align-content:start}
.pc-tag{display:inline-flex;align-items:center;gap:8px;font:600 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--b) 80%,#fff)}
.pc-tag img{width:22px;height:22px}
.pcard h3{font-size:26px;letter-spacing:-.02em}
.pcard p{color:#B7BFCE;font-size:15.5px}
.pc-list{list-style:none;margin:2px 0 4px;padding:0;display:grid;gap:7px;font-size:14.5px;color:#D5DBE6}
.pc-list li{display:flex;gap:10px}
.pc-list li::before{content:"";flex:none;width:7px;height:7px;margin-top:8px;border-radius:50%;background:linear-gradient(135deg,var(--a),var(--b))}
.pc-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.pc-ctas .btn{padding:11px 18px;font-size:14px}
.pc-ctas .btn.go{background:linear-gradient(120deg,var(--a),var(--b));border-color:transparent;color:#05060A}
.soon-badge{display:inline-block;margin-left:6px;padding:3px 8px;border-radius:999px;font:600 10px/1.2 var(--mono);letter-spacing:.1em;background:rgba(245,196,81,.12);color:#F5C451;border:1px solid rgba(245,196,81,.35);vertical-align:middle}

/* Marketing House: the wide card on top, the one the others feed */
.pcard.feat{grid-column:1/-1;grid-template-columns:minmax(0,300px) minmax(0,1fr);grid-template-rows:auto;gap:34px;padding:30px;
  background:radial-gradient(60rem 30rem at 85% 0%,rgba(139,108,255,.18),transparent 60%),linear-gradient(170deg,rgba(62,230,255,.06),rgba(255,255,255,.02));
  border-color:rgba(139,108,255,.35)}
.pcard.feat h3{font-size:clamp(28px,3.4vw,40px)}
.pcard.feat .pc-body{gap:16px}
.feat-flag{display:inline-block;padding:6px 12px;border-radius:999px;font:600 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#05060A;background:linear-gradient(120deg,#8B6CFF,#3EE6FF);justify-self:start}
.base-note{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13.5px;color:var(--mute)}
.base-note span{padding:5px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.12)}

/* the data map: sources → demand score → actions */
.dmap{display:grid;grid-template-columns:minmax(0,1.15fr) auto minmax(0,1fr);align-items:center;gap:18px;margin-top:4px}
.dmap .col{display:grid;gap:8px;min-width:0}
.dsrc,.dact{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);font-size:13.5px;min-width:0;transition:border-color .4s,background .4s}
.dsrc i,.dact i{font-style:normal;font-size:17px;flex:none}
.dsrc b,.dact b{font-weight:650;white-space:nowrap}
.dsrc small{margin-left:auto;font:600 10.5px/1.2 var(--mono);letter-spacing:.06em;color:#9FB0D0;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsrc.lit{border-color:rgba(62,230,255,.6);background:rgba(62,230,255,.08)}
.dact.lit{border-color:rgba(52,211,153,.6);background:rgba(52,211,153,.08)}
.dcore{position:relative;display:grid;place-items:center;text-align:center;width:150px;height:150px;border-radius:50%;
  background:radial-gradient(circle,rgba(139,108,255,.25),rgba(7,8,11,.9) 70%);border:1px solid rgba(139,108,255,.5);box-shadow:0 0 60px rgba(139,108,255,.3)}
.dcore::before,.dcore::after{content:"";position:absolute;inset:-10px;border-radius:50%;border:1px dashed rgba(62,230,255,.35);animation:spin 18s linear infinite}
.dcore::after{inset:-22px;border-color:rgba(139,108,255,.25);animation-duration:30s;animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.dcore small{display:block;font:600 10px/1.2 var(--mono);letter-spacing:.14em;color:#A9B8FF;text-transform:uppercase}
.dcore b{display:block;font-size:42px;font-weight:800;line-height:1.05;background:linear-gradient(120deg,#8B6CFF,#3EE6FF);-webkit-background-clip:text;background-clip:text;color:transparent}
.dcore span{display:block;font-size:11px;color:var(--mute)}
.dflow{display:flex;align-items:center;justify-content:center;gap:5px;color:#3EE6FF}
.dflow i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.2;animation:pulse 1.4s infinite}
.dflow i:nth-child(2){animation-delay:.2s}.dflow i:nth-child(3){animation-delay:.4s}
@keyframes pulse{40%{opacity:1;transform:scale(1.3)}}
.dmap .mid{display:grid;grid-auto-flow:column;align-items:center;justify-items:center;gap:12px}
.dnote{font-size:12.5px;color:var(--dim);margin-top:10px}

/* Marketing page: bigger data map */
.dmap.big{gap:28px}
.dmap.big .dsrc,.dmap.big .dact{padding:13px 16px;font-size:15.5px}
.dmap.big .dcore{width:200px;height:200px}
.dmap.big .dcore b{font-size:56px}

/* the "story" reel opens in a sheet */
.reel-sheet{position:fixed;inset:0;z-index:60;display:grid;place-items:center;background:rgba(3,4,7,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:16px}
.reel-sheet video{max-height:86vh;max-width:100%;aspect-ratio:9/16;border-radius:22px;background:#000}
.reel-sheet .x{position:absolute;top:max(14px,env(safe-area-inset-top,0px));right:16px;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);color:#fff;font-size:18px;cursor:pointer}

/* one engine strip */
.engine{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:30px}
.engine div{padding:18px;border-radius:18px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.engine b{display:block;font-size:15.5px;margin-bottom:4px}
.engine span{font-size:14px;color:var(--mute)}

/* product page hero video */
.hero-video{display:grid;justify-items:center}
.hero-video .pv{max-width:340px}

@media (max-width:980px){
  .pcards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pcard.feat{grid-template-columns:1fr}
  .pcard.feat .pv{max-width:300px}
  .engine{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
  .pcards{grid-template-columns:1fr;gap:18px}
  .pcard,.pcard.feat{padding:18px}
  .pcard .pv{max-width:280px}
  .dmap{grid-template-columns:1fr}
  .dmap .mid{grid-auto-flow:row}
  .dflow{transform:rotate(90deg);height:24px}
  .dcore{width:130px;height:130px}
  .dmap.big .dcore{width:160px;height:160px}
  .engine{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .dcore::before,.dcore::after,.dflow i{animation:none}
}

/* hero: the four products as tiles */
.ptiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;min-width:0}
.ptile{display:grid;gap:6px;align-content:start;padding:20px;border-radius:22px;text-decoration:none;min-width:0;
  background:linear-gradient(160deg,color-mix(in srgb,var(--a) 16%,transparent),rgba(255,255,255,.02));border:1px solid color-mix(in srgb,var(--b) 28%,transparent);
  transition:transform .25s,border-color .25s}
.ptile:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--b) 60%,transparent)}
.ptile img{width:40px;height:40px;margin-bottom:6px}
.ptile b{font-size:18px}
.ptile small{font-size:13.5px;color:var(--mute)}
.ptile.feat{grid-column:1/-1;padding:24px;background:radial-gradient(30rem 14rem at 90% 0%,rgba(139,108,255,.3),transparent 70%),linear-gradient(160deg,rgba(62,230,255,.08),rgba(255,255,255,.02))}
.ptile.feat b{font-size:22px}
@media (max-width:700px){.ptiles{grid-template-columns:1fr 1fr}.ptiles>.ptile:last-child:nth-child(4){grid-column:1/-1}.ptile{padding:16px}.ptile b{font-size:16px}}

/* Marketing page: data source lists in the group cards */
.dlist{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.dlist li{display:grid;gap:1px;padding-left:14px;border-left:2px solid color-mix(in srgb,var(--b,#3EE6FF) 45%,transparent)}
.dlist b{font-size:15px;font-weight:650}
.dlist small{font-size:13px;color:var(--mute)}

/* Card header above the video, so scrolling shows a new product has started (Habib, 26 Oct 2026) */
.pcard{grid-template-rows:auto auto 1fr}
.pc-head{display:grid;gap:8px;padding-bottom:4px;border-bottom:1px solid color-mix(in srgb,var(--b) 25%,transparent)}
.pc-head h3{font-size:clamp(26px,3vw,32px)}
.pcard.feat{grid-template-rows:auto auto}
.pcard.feat .pc-head{grid-column:1/-1;padding-bottom:16px}
.pcard.feat .pc-head h3{font-size:clamp(28px,3.4vw,40px)}

/* "Watch the story": hard to miss, without growing the card */
.story-btn{display:inline-flex;align-items:center;gap:12px;padding:6px 18px 6px 6px;border-radius:18px;text-decoration:none;color:#fff;
  background:linear-gradient(#0B0D14,#0B0D14) padding-box,linear-gradient(120deg,var(--a),var(--b),#FFD36E) border-box;border:2px solid transparent;
  box-shadow:0 0 0 0 color-mix(in srgb,var(--b) 50%,transparent);animation:story-pulse 2.4s ease-out infinite}
.story-btn img{width:36px;height:64px;object-fit:cover;border-radius:10px}
.story-btn b{display:block;font-size:15px}
.story-btn small{display:block;font-size:12px;color:var(--mute)}
.story-btn:hover{transform:translateY(-2px)}
@keyframes story-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--b) 45%,transparent)}70%,100%{box-shadow:0 0 0 14px transparent}}
.pv-story{position:absolute;left:12px;bottom:12px;padding:9px 14px;border-radius:999px;font:700 13px var(--sans);text-decoration:none;color:#05060A;
  background:linear-gradient(120deg,var(--a),var(--b));box-shadow:0 8px 24px rgba(0,0,0,.5)}
@media (prefers-reduced-motion:reduce){.story-btn{animation:none}}
.pc-list .soon-badge{flex:none;align-self:center;white-space:nowrap;margin-left:auto}

/* Sign in page: the three products */
.signin-tiles{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:30px}
.staff-link{font:500 12px/1 var(--mono,ui-monospace,monospace);letter-spacing:.06em;text-transform:uppercase;color:var(--mute,#8a93a6);text-decoration:none;opacity:.8}
.staff-link:hover{opacity:1;color:var(--fg,#fff)}
.signin-tiles .ptile{padding:24px;gap:8px}
.signin-tiles .go{margin-top:10px;font-weight:700;color:color-mix(in srgb,var(--b) 80%,#fff)}
@media (max-width:700px){.signin-tiles{grid-template-columns:1fr}.signin-tiles>.ptile:last-child:nth-child(4){grid-column:auto}}
.nav-signin{font-weight:650}
.nav nav a.nav-signin{display:inline-flex!important;align-items:center;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.18);text-decoration:none;color:inherit;font-size:14px}
