/* =========================================================
   MealPass — shared stylesheet (used by every page)
   ========================================================= */

:root{
  --ink:#161A1D;
  --ink-soft:#2B3238;
  --paper:#F2EFE4;
  --paper-alt:#EAEEE6;
  --panel:#FFFFFF;
  --teal:#1D6C63;
  --teal-deep:#134A44;
  --amber:#E2A33B;
  --amber-soft:#F3D9A6;
  --line:#D9D2C0;
  --muted:#5B6460;
  --white:#FDFCF8;

  --display:'Bricolage Grotesque', system-ui, sans-serif;
  --body:'Sora', system-ui, sans-serif;
  --mono:'IBM Plex Mono', monospace;

  --radius:18px;
  --container:1180px;
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.wrap{max-width:var(--container);margin:0 auto;padding:0 32px;}

h1,h2,h3,h4{font-family:var(--display);font-weight:700;letter-spacing:-0.01em;color:var(--ink);}
.eyebrow{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--teal-deep);
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.eyebrow::before{content:"";width:16px;height:1px;background:var(--teal-deep);display:inline-block;}
.eyebrow.on-dark{color:var(--amber-soft);}
.eyebrow.on-dark::before{background:var(--amber-soft);}

/* ---------- NAV ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:20px 0;
  background:rgba(22,26,29,0.0);
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;}
header.scrolled, header.solid{
  background:rgba(242,239,228,0.94);
  backdrop-filter:blur(10px);
  padding:12px 0;
  box-shadow:0 1px 0 var(--line);
}
.logo{
  font-family:var(--display);
  font-weight:800;
  font-size:22px;
  color:var(--white);
  display:flex;align-items:center;gap:9px;
  letter-spacing:-0.02em;
  transition:color .35s ease;
  flex-shrink:0;
}
header.scrolled .logo, header.solid .logo{color:var(--ink);}
.logo .dot{
  width:9px;height:9px;border-radius:50%;
  background:var(--amber);
  box-shadow:0 0 0 4px rgba(226,163,59,0.25);
  animation:amberDotPulse 1.8s ease-out infinite;
}
@keyframes amberDotPulse{
  0%{box-shadow:0 0 0 3px rgba(226,163,59,.3),0 0 0 0 rgba(226,163,59,.5);}
  70%{box-shadow:0 0 0 3px rgba(226,163,59,.18),0 0 0 12px rgba(226,163,59,0);}
  100%{box-shadow:0 0 0 3px rgba(226,163,59,.3),0 0 0 0 rgba(226,163,59,0);}
}
nav.links{display:flex;align-items:center;gap:30px;}
nav.links a{
  font-size:14.5px;font-weight:500;
  color:rgba(253,252,248,0.82);
  transition:color .35s ease;
}
header.scrolled nav.links a, header.solid nav.links a{color:var(--ink-soft);}
nav.links a:hover, nav.links a.current{color:var(--amber);}
header.scrolled nav.links a.current, header.solid nav.links a.current{color:var(--teal-deep);}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--body);font-weight:600;font-size:14.5px;
  padding:12px 22px;border-radius:999px;
  border:1px solid transparent;
  cursor:pointer;transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--amber);color:var(--ink);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(226,163,59,0.35);}
.btn-ghost{border-color:rgba(253,252,248,0.4);color:var(--white);}
header.scrolled .btn-ghost, header.solid .btn-ghost{border-color:var(--line);color:var(--ink);}
.btn-ghost:hover{border-color:var(--amber);color:var(--amber);}
.btn-dark{background:var(--ink);color:var(--white);}
.btn-dark:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(22,26,29,0.28);}
.btn-outline-dark{border-color:var(--ink);color:var(--ink);}
.btn-outline-dark:hover{background:var(--ink);color:var(--white);}
.btn-block{width:100%;}
.nav-cta{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:6px;}
.hamburger span{width:22px;height:2px;background:var(--white);transition:background .3s;}
header.scrolled .hamburger span, header.solid .hamburger span{background:var(--ink);}

/* ---------- HERO (home) ---------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;
  align-items:center;
  background:
    radial-gradient(circle at 82% 22%, rgba(226,163,59,0.18), transparent 42%),
    radial-gradient(circle at 12% 82%, rgba(29,108,99,0.32), transparent 46%),
    linear-gradient(150deg, #101416 0%, #161A1D 45%, #1C2A28 100%);
  color:var(--white);
  padding:140px 0 90px;
  overflow:hidden;
}
.hero-grid-pattern{
  position:absolute;inset:0;
  background-image:
    linear-gradient(rgba(253,252,248,0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(253,252,248,0.05) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:radial-gradient(ellipse at 60% 40%, black 10%, transparent 70%);
  pointer-events:none;
}
.hero .wrap{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:56px;
  align-items:center;
  position:relative;
  z-index:2;
}
.hero-brand{
  font-family:var(--display);
  font-size:clamp(52px,7vw,88px);
  font-weight:800;
  line-height:0.98;
  letter-spacing:-0.03em;
  color:var(--white);
  margin:18px 0 6px;
  opacity:0;
  transform:translateY(18px);
  animation:riseIn .9s cubic-bezier(.2,.7,.2,1) .15s forwards;
}
.hero-headline{
  font-family:var(--display);
  font-size:clamp(20px,2.4vw,26px);
  font-weight:500;
  color:var(--amber-soft);
  margin-bottom:20px;
  opacity:0;
  transform:translateY(18px);
  animation:riseIn .9s cubic-bezier(.2,.7,.2,1) .32s forwards;
}
.hero-sub{
  font-size:17px;
  color:rgba(253,252,248,0.82);
  max-width:500px;
  margin-bottom:22px;
  opacity:0;
  transform:translateY(18px);
  animation:riseIn .9s cubic-bezier(.2,.7,.2,1) .48s forwards;
}
.hero-audience{
  display:flex;flex-wrap:wrap;gap:10px 22px;
  margin-bottom:34px;
  opacity:0;
  transform:translateY(18px);
  animation:riseIn .9s cubic-bezier(.2,.7,.2,1) .55s forwards;
}
.hero-audience span{
  font-family:var(--mono);font-size:12.5px;color:rgba(253,252,248,0.6);
  display:flex;align-items:center;gap:7px;
}
.hero-audience span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber);}
.hero-cta{
  display:flex;gap:14px;flex-wrap:wrap;
  opacity:0;
  transform:translateY(18px);
  animation:riseIn .9s cubic-bezier(.2,.7,.2,1) .62s forwards;
}
@keyframes riseIn{to{opacity:1;transform:translateY(0);}}

/* Ticket / signature element */
.ticket-stage{
  position:relative;
  display:flex;justify-content:center;align-items:center;
  opacity:0;
  transform:translateY(24px) scale(.98);
  animation:riseIn .9s cubic-bezier(.2,.7,.2,1) .5s forwards;
}
.ticket{
  position:relative;
  width:100%;
  max-width:360px;
  background:linear-gradient(160deg, #FFFDF7, #F4EFE0);
  border-radius:20px;
  padding:26px 24px 22px;
  box-shadow:0 30px 70px rgba(0,0,0,0.45), 0 2px 0 rgba(255,255,255,0.5) inset;
  color:var(--ink);
  font-family:var(--mono);
}
.ticket-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px;}
.ticket-brand{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:-0.01em;}
.ticket-tag{font-size:10.5px;letter-spacing:0.08em;text-transform:uppercase;color:var(--teal-deep);background:rgba(29,108,99,0.1);padding:4px 8px;border-radius:6px;}
.ticket-row{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-bottom:4px;}
.ticket-row b{color:var(--ink);font-weight:600;}
.ticket-divider{position:relative;height:0;border-top:1.5px dashed var(--line);margin:18px -24px;}
.ticket-divider::before,.ticket-divider::after{content:"";position:absolute;top:-11px;width:22px;height:22px;border-radius:50%;background:#0F1214;}
.ticket-divider::before{left:-11px;}
.ticket-divider::after{right:-11px;}
.ticket-bottom{display:flex;align-items:center;gap:18px;}
.qr-box{position:relative;width:104px;height:104px;background:#FFFDF8;border-radius:10px;overflow:hidden;flex-shrink:0;display:grid;place-items:center;padding:6px;}
.qr-box .mp-qr{width:92px!important;height:92px!important;display:block;object-fit:contain;}
.qr-box-live{box-shadow:0 0 0 1px rgba(22,26,29,0.08);}
.qr-scanline{
  position:absolute;left:6%;right:6%;height:2px;pointer-events:none;z-index:2;
  background:linear-gradient(90deg, transparent, var(--amber), transparent);
  box-shadow:0 0 10px 1px rgba(226,163,59,0.8);
  animation:scan 2.6s ease-in-out infinite;
}
@keyframes scan{0%{top:8%;opacity:.2;}50%{top:88%;opacity:1;}100%{top:8%;opacity:.2;}}
.ticket-meta{font-size:11.5px;color:var(--muted);}
.ticket-meta .status{display:inline-flex;align-items:center;gap:6px;color:var(--teal-deep);font-weight:600;margin-bottom:6px;}
.ticket-meta .status .pulse{width:7px;height:7px;border-radius:50%;background:var(--teal);animation:pulse 1.8s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(29,108,99,0.55);}70%{box-shadow:0 0 0 8px rgba(29,108,99,0);}100%{box-shadow:0 0 0 0 rgba(29,108,99,0);}}
.ticket-float-tag{
  position:absolute;top:-16px;right:22px;
  background:var(--amber);color:var(--ink);
  font-family:var(--mono);font-size:11px;font-weight:600;
  padding:7px 12px;border-radius:8px;
  box-shadow:0 8px 20px rgba(226,163,59,0.4);
  transform:rotate(3deg);
}

/* ---------- INNER PAGE HERO (banner) ---------- */
.page-hero{
  position:relative;
  padding:170px 0 90px;
  color:var(--white);
  background:
    radial-gradient(circle at 85% 20%, rgba(226,163,59,0.14), transparent 45%),
    radial-gradient(circle at 10% 90%, rgba(29,108,99,0.30), transparent 50%),
    linear-gradient(150deg, #101416 0%, #161A1D 50%, #1B2422 100%);
  overflow:hidden;
}
.page-hero.has-photo{
  background-color:#101416;
  background-image:none;
}
.page-hero.has-photo::before{
  content:"";
  position:absolute;inset:0;
  background-image:var(--hero-photo);
  background-size:cover;
  background-position:center;
  transform:none;
  z-index:0;
}
.page-hero.has-photo::after{
  content:"";
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(120deg, rgba(16,20,22,0.92) 0%, rgba(16,20,22,0.78) 48%, rgba(19,74,68,0.55) 100%),
    radial-gradient(circle at 85% 20%, rgba(226,163,59,0.18), transparent 42%);
}
.page-hero .hero-grid-pattern{opacity:.7;z-index:2;}
.page-hero .wrap{position:relative;z-index:2;max-width:760px;}
.page-hero h1{
  color:var(--white);font-size:clamp(34px,4.6vw,52px);line-height:1.06;margin-top:14px;
  opacity:0;transform:translateY(16px);animation:riseIn .8s cubic-bezier(.2,.7,.2,1) .1s forwards;
}
.page-hero p.lead{
  color:rgba(253,252,248,0.75);font-size:17px;margin-top:16px;max-width:560px;
  opacity:0;transform:translateY(16px);animation:riseIn .8s cubic-bezier(.2,.7,.2,1) .22s forwards;
}
.page-hero .hero-cta{margin-top:30px;opacity:0;transform:translateY(16px);animation:riseIn .8s cubic-bezier(.2,.7,.2,1) .34s forwards;}

/* ---------- SECTION GENERIC ---------- */
section{padding:118px 0;}
.section-sm{padding:80px 0;}
.section-head{max-width:640px;margin-bottom:56px;}
.section-head h2{font-size:clamp(32px,4vw,44px);margin-top:14px;line-height:1.08;}
.section-head p{margin-top:16px;color:var(--muted);font-size:16.5px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}

.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);}
.reveal.in{opacity:1;transform:translateY(0);}

/* ---------- AUDIENCE STRIP ---------- */
.audience-strip{background:var(--ink);padding:26px 0;}
.audience-strip .wrap{
  display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;
}
.audience-strip .label{
  font-family:var(--mono);font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase;
  color:rgba(253,252,248,0.4);margin-right:8px;
}
.audience-chip{
  font-family:var(--mono);font-size:13px;color:var(--white);
  border:1px solid rgba(253,252,248,0.2);border-radius:999px;
  padding:8px 16px;display:inline-flex;align-items:center;gap:8px;
}
.audience-chip.emph{border-color:var(--amber);color:var(--amber-soft);}
.audience-chip .n{font-size:10px;color:rgba(253,252,248,0.4);}

/* ---------- ABOUT / ILLUSTRATION ---------- */
.about{background:var(--paper);overflow:visible;}
.about .float-layer{display:none !important;}
.about .wrap{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;overflow:visible;}
.about-copy p{color:var(--ink-soft);font-size:16.5px;margin-bottom:18px;}
.about-copy p:last-child{margin-bottom:0;}
.about-copy strong{color:var(--ink);}
.about-media{position:relative;overflow:visible;padding-bottom:28px;padding-left:28px;}
.illustration{
  margin:0;
  border-radius:22px;
  width:100%;height:440px;
  box-shadow:0 30px 60px rgba(22,26,29,0.18);
  overflow:hidden;
  background:linear-gradient(160deg, var(--teal-deep), var(--teal) 55%, #2C8074);
  position:relative;
  z-index:1;
}
.illustration::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(160deg, rgba(19,74,68,0.18), rgba(22,26,29,0.08) 55%, transparent);
  pointer-events:none;
}
.illustration img{
  width:100%;height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.about-badge{
  position:absolute;bottom:0;left:0;
  background:var(--panel);border-radius:16px;
  padding:18px 20px;
  box-shadow:0 20px 40px rgba(22,26,29,0.14);
  display:flex;gap:14px;align-items:center;
  max-width:250px;
  z-index:6;
}
.about-badge .num{font-family:var(--display);font-weight:800;font-size:26px;color:var(--teal-deep);}
.about-badge .lbl{font-size:12.5px;color:var(--muted);line-height:1.3;}

/* Scannable product QR demo */
.qr-demo{width:100%;}
.qr-demo-panel{
  background:linear-gradient(160deg,#101416 0%,#161A1D 45%,#1C2A28 100%);
  border-radius:22px;padding:32px 28px 28px;color:var(--white);
  box-shadow:0 30px 60px rgba(22,26,29,0.22);
  text-align:center;
}
.qr-demo-eyebrow{
  font-family:var(--mono);font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--amber-soft);
}
.qr-demo-panel h3{
  font-family:var(--display);color:var(--white);font-size:24px;
  margin:10px 0 8px;letter-spacing:-0.02em;
}
.qr-demo-copy{font-size:14px;color:rgba(253,252,248,0.7);max-width:320px;margin:0 auto 22px;}
.qr-demo-frame{
  position:relative;display:inline-grid;place-items:center;
  background:#FFFDF8;border-radius:16px;padding:16px;
  box-shadow:0 0 0 1px rgba(226,163,59,0.35);
}
.qr-demo-frame .mp-qr{
  width:200px!important;height:200px!important;display:block;object-fit:contain;
}
.qr-demo-frame .qr-scanline{left:12%;right:12%;}
.qr-demo-meta{
  margin-top:18px;font-family:var(--mono);font-size:12px;
  color:rgba(253,252,248,0.65);
  display:inline-flex;align-items:center;gap:8px;
}
.qr-demo-meta .pulse{
  width:7px;height:7px;border-radius:50%;background:var(--amber);
  animation:pulse 1.8s infinite;
}

/* ---------- FEATURES ---------- */
.features{background:var(--paper-alt);position:relative;}
.feature-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:20px;overflow:hidden;
}
.feature-card{background:var(--panel);padding:34px 30px;transition:background .3s ease, transform .3s ease;}
.feature-card:hover{background:#FFFDF6;transform:translateY(-3px);}
.feature-icon{
  width:42px;height:42px;border-radius:11px;background:var(--paper-alt);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--teal-deep);
}
.feature-card h3{font-size:17.5px;margin-bottom:8px;}
.feature-card p{font-size:14.5px;color:var(--muted);}
.feature-group-label{
  font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--teal-deep);margin:56px 0 20px;
}
.feature-group-label:first-of-type{margin-top:0;}

@media(max-width:900px){.feature-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:620px){.feature-grid{grid-template-columns:1fr;}}

/* ---------- TEASER GRID (compact, on index) ---------- */
.teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.teaser-card{
  background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;
  transition:transform .3s ease, box-shadow .3s ease;
}
.teaser-card:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(22,26,29,0.1);}
.teaser-card h3{font-size:16.5px;margin-bottom:8px;}
.teaser-card p{font-size:14px;color:var(--muted);}
.section-foot-link{
  margin-top:36px;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:13.5px;color:var(--teal-deep);font-weight:500;
}
.section-foot-link svg{transition:transform .2s ease;}
.section-foot-link:hover svg{transform:translateX(4px);}

@media(max-width:900px){.teaser-grid{grid-template-columns:1fr;}}

/* ---------- HOW IT WORKS ---------- */
.how{background:var(--ink);color:var(--white);position:relative;overflow:hidden;}
.how::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(circle at 15% 20%, rgba(226,163,59,0.10), transparent 40%),
             radial-gradient(circle at 85% 80%, rgba(29,108,99,0.25), transparent 45%);
}
.how .wrap{position:relative;z-index:2;}
.how .section-head p{color:rgba(253,252,248,0.65);}
.how-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.how-strip.detailed{grid-template-columns:1fr;gap:0;max-width:760px;}
.how-step{padding:0 26px 0 0;position:relative;}
.how-step:not(:last-child)::after{
  content:"";position:absolute;top:20px;right:0;width:100%;border-top:1.5px dashed rgba(253,252,248,0.25);
}
.how-strip.detailed .how-step{padding:0 0 56px 0;}
.how-strip.detailed .how-step:not(:last-child)::after{
  content:"";position:absolute;top:40px;left:19px;right:auto;width:1.5px;height:calc(100% - 20px);
  border-top:none;border-left:1.5px dashed rgba(253,252,248,0.25);
}
.how-index{font-family:var(--mono);font-size:13px;color:var(--amber-soft);display:flex;align-items:center;gap:10px;margin-bottom:22px;}
.how-strip.detailed .how-index{margin-bottom:14px;}
.how-index .circle{
  width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(253,252,248,0.3);
  display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;color:var(--white);
  background:#161A1D;position:relative;z-index:2;flex-shrink:0;
}
.how-step h3{color:var(--white);font-size:18.5px;margin-bottom:10px;}
.how-strip.detailed .how-step h3{margin-left:50px;margin-top:-32px;}
.how-step p{color:rgba(253,252,248,0.65);font-size:14.5px;padding-right:14px;}
.how-strip.detailed .how-step p{margin-left:50px;padding-right:0;max-width:560px;}
.how-strip.detailed .how-step .how-extra{margin-left:50px;margin-top:14px;max-width:560px;}
.how-extra{
  background:rgba(253,252,248,0.05);border:1px solid rgba(253,252,248,0.12);
  border-radius:12px;padding:14px 16px;font-size:13.5px;color:rgba(253,252,248,0.68);
}
.how-extra b{color:var(--amber-soft);}

@media(max-width:900px){
  .how-strip{grid-template-columns:1fr;gap:34px;}
  .how-step:not(:last-child)::after{display:none;}
}

/* ---------- ACCESS MODES (how it works page) ---------- */
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.access-card{
  background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:34px;
}
.access-card .tag{
  font-family:var(--mono);font-size:11.5px;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--teal-deep);background:rgba(29,108,99,0.1);padding:5px 10px;border-radius:6px;
  display:inline-block;margin-bottom:16px;
}
.access-card h3{font-size:20px;margin-bottom:10px;}
.access-card p{color:var(--muted);font-size:14.5px;margin-bottom:16px;}
.access-card ul{display:flex;flex-direction:column;gap:10px;}
.access-card li{display:flex;gap:10px;font-size:14px;color:var(--ink-soft);}
.access-card li svg{flex-shrink:0;margin-top:2px;color:var(--teal-deep);}
@media(max-width:800px){.access-grid{grid-template-columns:1fr;}}

/* ---------- PRICING ---------- */
.pricing{background:var(--paper);}
.pricing-toggle{
  display:inline-flex;align-items:center;gap:14px;
  background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px;margin-bottom:50px;
}
.pricing-toggle button{
  font-family:var(--mono);font-size:13px;font-weight:500;padding:9px 18px;border-radius:999px;border:none;
  background:transparent;cursor:pointer;color:var(--muted);transition:all .25s ease;
}
.pricing-toggle button.active{background:var(--ink);color:var(--white);}
.pricing-toggle .save{color:var(--teal-deep);font-size:11.5px;font-family:var(--mono);}

.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:stretch;}
.price-card{
  position:relative;background:var(--panel);border-radius:22px;border:1px solid var(--line);
  padding:38px 30px 34px;display:flex;flex-direction:column;transition:transform .3s ease, box-shadow .3s ease;
}
.price-card:hover{transform:translateY(-6px);box-shadow:0 26px 50px rgba(22,26,29,0.12);}
.price-card.featured{background:var(--ink);color:var(--white);border-color:var(--ink);transform:scale(1.03);}
.price-card.featured:hover{transform:scale(1.03) translateY(-6px);}
.price-card.featured .price-desc, .price-card.featured .price-includes li{color:rgba(253,252,248,0.7);}
.price-card.featured .price-includes li b{color:var(--white);}
.price-badge{
  position:absolute;top:-13px;left:30px;background:var(--amber);color:var(--ink);
  font-family:var(--mono);font-size:11px;font-weight:600;padding:6px 12px;border-radius:8px;
  box-shadow:0 8px 18px rgba(226,163,59,0.35);
}
.price-tier{font-family:var(--mono);font-size:12.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--teal-deep);}
.price-card.featured .price-tier{color:var(--amber-soft);}
.price-card h3{font-size:24px;margin:10px 0 6px;}
.price-desc{color:var(--muted);font-size:14px;margin-bottom:22px;}
.price-amount{display:flex;align-items:baseline;gap:6px;margin-bottom:6px;}
.price-amount .num{font-family:var(--display);font-weight:800;font-size:38px;}
.price-amount .per{font-family:var(--mono);font-size:13px;color:var(--muted);}
.price-card.featured .price-amount .per{color:rgba(253,252,248,0.6);}
.price-note{font-size:12.5px;color:var(--muted);margin-bottom:26px;}
.price-card.featured .price-note{color:rgba(253,252,248,0.55);}
.price-includes{margin-bottom:30px;flex-grow:1;}
.price-includes li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-soft);margin-bottom:12px;}
.price-includes li svg{flex-shrink:0;margin-top:3px;color:var(--teal-deep);}
.price-card.featured .price-includes li svg{color:var(--amber);}
.pricing-foot{margin-top:44px;font-size:13.5px;color:var(--muted);display:flex;align-items:center;gap:10px;}
.pricing-foot svg{flex-shrink:0;color:var(--teal-deep);}

/* pricing FAQ */
.faq-list{max-width:760px;}
.faq-item{border-bottom:1px solid var(--line);padding:22px 0;}
.faq-item h4{font-size:16px;font-weight:600;font-family:var(--body);margin-bottom:8px;}
.faq-item p{color:var(--muted);font-size:14.5px;}

@media(max-width:900px){
  .pricing-grid{grid-template-columns:1fr;}
  .price-card.featured{transform:none;}
  .price-card.featured:hover{transform:translateY(-6px);}
}

/* ---------- LOGIN / GET STARTED CTA BAND ---------- */
.login-cta{
  position:relative;color:var(--white);padding:90px 0;
  background:
    radial-gradient(circle at 80% 30%, rgba(226,163,59,0.14), transparent 45%),
    radial-gradient(circle at 15% 75%, rgba(29,108,99,0.35), transparent 50%),
    linear-gradient(140deg, #101416, #182422);
  text-align:center;
}
.login-cta .wrap{max-width:640px;}
.login-cta h2{color:var(--white);font-size:clamp(28px,3.4vw,38px);line-height:1.12;margin-top:14px;}
.login-cta p{color:rgba(253,252,248,0.7);margin-top:14px;font-size:16px;}
.login-cta .hero-cta{justify-content:center;margin-top:30px;}

/* ---------- CONTACT PAGE ---------- */
.contact-layout{max-width:640px;margin:0 auto;}
.contact-form{background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:38px;}
.contact-form-band.band-photo{
  background:transparent !important;
}
.contact-form-band .contact-form{
  background:rgba(255,255,255,.94);
  box-shadow:0 24px 48px rgba(22,26,29,.14);
}
.contact-form-band .form-success{
  background:rgba(255,255,255,.94);
}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.form-field label{font-family:var(--mono);font-size:12px;letter-spacing:0.05em;text-transform:uppercase;color:var(--muted);}
.form-field input, .form-field select, .form-field textarea{
  font-family:var(--body);font-size:14.5px;color:var(--ink);
  border:1px solid var(--line);border-radius:10px;padding:12px 14px;background:var(--paper);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(29,108,99,0.14);
}
.form-field textarea{resize:vertical;min-height:110px;}
.form-field.has-error input,
.form-field.has-error select,
.form-field.has-error textarea{
  border-color:#c45c5c;
  box-shadow:0 0 0 3px rgba(180,50,50,0.12);
}
.field-error{font-size:12.5px;color:#8a2e2e;line-height:1.3;}
.hp-field{
  position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;
}
.form-note{font-size:12.5px;color:var(--muted);margin-top:14px;}
.form-note a{color:var(--teal-deep);text-decoration:underline;}
.form-cooldown{
  font-family:var(--mono);font-size:12.5px;color:var(--muted);
  text-align:center;margin-top:12px;
}
.form-success{
  display:none;background:rgba(29,108,99,0.08);border:1px solid rgba(29,108,99,0.25);
  border-radius:18px;padding:28px 24px;align-items:flex-start;gap:16px;margin-bottom:20px;
}
.form-success.show{display:flex;}
.form-success svg{flex-shrink:0;color:var(--teal-deep);margin-top:2px;}
.form-success h4{font-family:var(--display);font-size:20px;font-weight:700;margin-bottom:8px;color:var(--ink);}
.form-success p{font-size:14.5px;color:var(--ink-soft);line-height:1.55;margin:0 0 8px;}
.form-success p:last-child{margin-bottom:0;}
.form-success strong{color:var(--teal-deep);font-weight:600;}
.form-success-timer{font-family:var(--mono);font-size:12px;color:var(--muted)!important;}
.form-error{
  background:rgba(180,50,50,0.08);border:1px solid rgba(180,50,50,0.28);
  border-radius:14px;padding:16px 18px;margin-bottom:16px;
}
.form-error p{font-size:13.5px;color:#8a2e2e;margin:0;}
.contact-form .btn[disabled]{opacity:0.65;cursor:not-allowed;}

@media(max-width:900px){
  .form-row{grid-template-columns:1fr;}
}

/* ---------- FOOTER ---------- */
footer{background:var(--ink);color:rgba(253,252,248,0.7);padding:70px 0 30px;}
.footer-top{
  display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;
  padding-bottom:50px;border-bottom:1px solid rgba(253,252,248,0.12);
}
.footer-brand .logo{color:var(--white);margin-bottom:14px;}
.footer-brand p{font-size:14px;max-width:280px;color:rgba(253,252,248,0.55);}
.footer-col h5{
  font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;
  color:rgba(253,252,248,0.4);margin-bottom:18px;
}
.footer-col li{margin-bottom:11px;}
.footer-col a{font-size:14px;color:rgba(253,252,248,0.75);transition:color .2s;}
.footer-col a:hover{color:var(--amber-soft);}
.footer-bottom{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:26px;font-size:13px;color:rgba(253,252,248,0.4);flex-wrap:wrap;gap:12px;
}
.footer-bottom a{color:rgba(253,252,248,0.4);}
.footer-bottom a:hover{color:var(--amber-soft);}

.admin-caps-web{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  margin-top:48px;
  max-width:980px;
  margin-left:auto;
  margin-right:auto;
}
.admin-cap-web{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  padding:20px 18px;
}
.admin-cap-web h3{
  font-family:var(--display);
  font-size:16px;
  margin-bottom:6px;
}
.admin-cap-web p{font-size:13px;color:var(--muted);line-height:1.45;}
@media(max-width:900px){
  .admin-caps-web{grid-template-columns:1fr 1fr;}
}
@media(max-width:560px){
  .admin-caps-web{grid-template-columns:1fr;}
}

/* ---------- APP SCREENSHOTS (mobile browser UI mock frames) ---------- */
.app-shots{
  background:var(--paper-alt);
  padding:110px 0 100px;
  overflow:hidden;
}
.app-shots .section-head{margin-bottom:48px;}
.app-phones{
  display:flex;
  justify-content:center;
  align-items:flex-end;
  gap:28px;
  flex-wrap:wrap;
  perspective:1200px;
}
.phone{
  width:260px;
  background:#1a1f24;
  border-radius:36px;
  padding:10px;
  box-shadow:
    0 40px 80px rgba(22,26,29,0.28),
    0 0 0 1px rgba(255,255,255,0.08) inset;
  position:relative;
  flex-shrink:0;
}
.phone.mid{
  width:280px;
  transform:translateY(-18px);
  z-index:2;
}
.phone-notch{
  position:absolute;top:18px;left:50%;transform:translateX(-50%);
  width:90px;height:22px;background:#1a1f24;border-radius:14px;z-index:3;
}
.phone-screen{
  background:#F3F0E8;
  border-radius:28px;
  overflow:hidden;
  height:520px;
  display:flex;flex-direction:column;
  font-family:var(--body);
  color:#1A1F24;
}
.phone.mid .phone-screen{height:560px;}
.ps-status{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 18px 6px;font-family:var(--mono);font-size:11px;font-weight:500;
  color:#2C333A;
}
.ps-body{flex:1;padding:8px 16px 18px;overflow:hidden;}
.ps-appbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:4px 4px 12px;gap:8px;
}
.ps-appbar h4{
  font-family:var(--display);font-size:16px;font-weight:700;
  letter-spacing:-0.02em;margin:0;flex:1;
}
.ps-appbar .icons{display:flex;gap:2px;color:#2C333A;}
.ps-appbar .icons span{
  width:28px;height:28px;display:grid;place-items:center;
  font-size:14px;opacity:.75;
}
.ps-brand{
  font-family:var(--display);font-weight:800;font-size:28px;
  color:#0D6B63;letter-spacing:-0.03em;line-height:1.1;margin-top:20px;
}
.ps-sub{font-size:13px;color:#2C333A;margin:6px 0 22px;}
.ps-field{
  border:1px solid #E8E4D9;border-radius:10px;background:#FFFDF8;
  padding:10px 12px;margin-bottom:10px;
}
.ps-field label{
  display:block;font-size:11px;color:#6b7280;margin-bottom:2px;
}
.ps-field .val{font-size:13.5px;font-weight:500;}
.ps-btn{
  margin-top:10px;background:#0D6B63;color:#fff;
  border-radius:10px;padding:13px;text-align:center;
  font-size:13.5px;font-weight:600;
}
.ps-section{font-size:14px;font-weight:700;margin:4px 0 10px;}
.ps-wallet{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;
}
.ps-meal{
  background:#FFFDF8;border:1px solid #E8E4D9;border-radius:14px;
  padding:12px;min-height:72px;display:flex;flex-direction:column;
}
.ps-meal .lbl{font-size:11.5px;color:#6b7280;}
.ps-meal .n{
  margin-top:auto;font-family:var(--mono);font-size:24px;font-weight:600;color:#0D6B63;
}
.ps-tile{
  background:#FFFDF8;border:1px solid #E8E4D9;border-radius:14px;
  padding:10px 12px;display:flex;align-items:center;gap:10px;margin-bottom:8px;
}
.ps-tile .av{
  width:36px;height:36px;border-radius:50%;background:#E6F3F1;
  display:grid;place-items:center;color:#0D6B63;font-size:15px;flex-shrink:0;
}
.ps-tile .t{font-size:12.5px;font-weight:700;line-height:1.25;}
.ps-tile .s{font-size:10.5px;color:#6b7280;margin-top:2px;}
.ps-tile .chev{margin-left:auto;color:#9ca3af;font-size:16px;}
.ps-scan-frame{
  margin:8px 0 12px;border-radius:16px;height:210px;
  background:
    linear-gradient(160deg, #2c333a 0%, #1A1F24 55%, #0f1418 100%);
  position:relative;overflow:hidden;
  display:grid;place-items:center;
}
.ps-scan-frame::before{
  content:"";position:absolute;inset:22px;
  border:2px solid rgba(212,148,10,0.9);border-radius:14px;
  box-shadow:0 0 0 999px rgba(0,0,0,0.28);
  pointer-events:none;z-index:2;
}
.ps-scan-qr{
  position:relative;z-index:1;
  background:#FFFDF8;
  padding:10px;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(0,0,0,0.35);
}
.ps-scan-qr img{
  width:140px!important;height:140px!important;
  display:block;object-fit:contain;
}
.ps-scan-line{
  position:absolute;left:36px;right:36px;height:2px;z-index:3;
  background:linear-gradient(90deg,transparent,#D4940A,transparent);
  box-shadow:0 0 8px 1px rgba(212,148,10,0.7);
  animation:scan 2.4s ease-in-out infinite;
  top:40%;
  pointer-events:none;
}
.ps-hint{font-size:11.5px;color:#6b7280;text-align:center;margin-top:4px;}
.ps-chip{
  display:inline-block;font-family:var(--mono);font-size:10px;
  background:#E6F3F1;color:#0D6B63;padding:4px 8px;border-radius:6px;margin-bottom:8px;
}
.app-shots-note{
  text-align:center;margin-top:36px;font-size:13px;color:var(--muted);
}

/* Desktop dashboard mock */
.app-dashboard{
  margin-top:56px;
  max-width:980px;
  margin-left:auto;margin-right:auto;
}
.dash-frame{
  background:#1a1f24;
  border-radius:18px;
  padding:10px 10px 14px;
  box-shadow:0 36px 70px rgba(22,26,29,0.22);
}
.dash-chrome{
  display:flex;align-items:center;gap:8px;
  padding:4px 8px 10px;
}
.dash-dot{width:9px;height:9px;border-radius:50%;background:#4b5563;}
.dash-dot:nth-child(1){background:#ef4444;}
.dash-dot:nth-child(2){background:#eab308;}
.dash-dot:nth-child(3){background:#22c55e;}
.dash-url{
  flex:1;margin-left:8px;
  background:#2c333a;color:#9ca3af;
  font-family:var(--mono);font-size:11px;
  border-radius:8px;padding:6px 12px;
}
.dash-screen{
  display:grid;
  grid-template-columns:168px 1fr;
  background:#F3F0E8;
  border-radius:12px;
  overflow:hidden;
  min-height:340px;
  font-family:var(--body);
  color:#1A1F24;
}
.dash-side{
  background:#FFFDF8;
  border-right:1px solid #E8E4D9;
  padding:14px 10px;
  font-size:11.5px;
}
.dash-logo{
  display:flex;align-items:center;gap:8px;
  font-family:var(--display);font-weight:700;font-size:13px;
  margin-bottom:14px;padding:0 4px;
}
.dash-logo .d{
  width:10px;height:10px;border-radius:50%;background:#0D6B63;
  box-shadow:0 0 0 3px #E6F3F1;
}
.dash-logo span{display:block;font-family:var(--body);font-size:10px;font-weight:500;color:#6b7280;}
.dash-nav a{
  display:block;padding:7px 10px;border-radius:8px;
  color:#44546f;margin-bottom:2px;font-size:11.5px;
}
.dash-nav a.on{
  background:#E6F3F1;color:#0D6B63;font-weight:600;
}
.dash-main{padding:14px 16px 18px;}
.dash-top{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:14px;gap:10px;
}
.dash-top h4{
  font-family:var(--display);font-size:15px;font-weight:600;
  letter-spacing:-0.02em;margin:0;
}
.dash-badge{
  font-family:var(--mono);font-size:10px;font-weight:600;
  background:#E6F3F1;color:#0D6B63;
  padding:5px 9px;border-radius:999px;
}
.dash-box{
  background:#FFFDF8;border:1px solid #E8E4D9;border-radius:10px;
  padding:12px 14px;margin-bottom:12px;
}
.dash-box h5{
  font-family:var(--display);font-size:12.5px;font-weight:600;
  margin:0 0 10px;color:#1A1F24;
}
.dash-kpis{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
}
.dash-kpi{
  background:linear-gradient(135deg,#0D6B63,#2C333A);
  color:#fff;border-radius:8px;padding:10px 12px;
}
.dash-kpi.warn{background:linear-gradient(135deg,#b91c1c,#7f1d1d);}
.dash-kpi .l{
  font-size:9.5px;text-transform:uppercase;letter-spacing:0.04em;opacity:.85;
}
.dash-kpi .v{
  font-family:var(--mono);font-size:20px;font-weight:600;margin-top:4px;
}
.dash-cols{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
}
.dash-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:7px 0;border-bottom:1px solid #E8E4D9;
  font-size:11.5px;
}
.dash-row:last-child{border-bottom:0;}
.dash-row span{color:#6b7280;}
.dash-row b{font-weight:600;color:#1A1F24;}
.dash-row small{font-family:var(--mono);font-size:10px;color:#9ca3af;}

@media(max-width:900px){
  .phone.mid{transform:none;width:260px;}
  .phone.mid .phone-screen{height:520px;}
  .dash-screen{grid-template-columns:1fr;}
  .dash-side{display:none;}
  .dash-kpis{grid-template-columns:1fr 1fr;}
  .dash-cols{grid-template-columns:1fr;}
}

/* ---------- PHOTO BANDS + INTERACTIVITY ---------- */
.band-photo{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:transparent !important;
}
.band-photo::before{display:none !important;}
.band-bg{
  position:absolute;inset:0;
  background-image:var(--band-photo);
  background-size:cover;
  background-position:center;
  z-index:0;
  transform:none;
  animation:none;
}
.band-bg.ken-burns{
  /* kept for markup compat — no motion */
  inset:0;
  animation:none !important;
  transform:none !important;
}
.app-shots.band-photo .band-veil.light{
  background:
    linear-gradient(180deg, rgba(242,239,228,.78) 0%, rgba(242,239,228,.7) 45%, rgba(234,238,230,.82) 100%),
    radial-gradient(circle at 80% 20%, rgba(226,163,59,.12), transparent 40%),
    radial-gradient(circle at 15% 80%, rgba(29,108,99,.14), transparent 45%);
}

/* Floating kitchen / produce / coupon vectors */
.float-layer{
  position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;
}
.site-float-ambient{
  position:fixed !important;
  inset:0;
  z-index:3;
  overflow:hidden;
  pointer-events:none;
}
.site-float-ambient .float-icon{
  opacity:.2 !important;
  pointer-events:none !important;
}
.float-layer-soft .float-icon{opacity:.26;}
.float-icon{
  position:absolute;
  width:44px;height:44px;
  color:var(--teal-deep);
  opacity:.5;
  filter:drop-shadow(0 8px 14px rgba(22,26,29,.12));
  animation:floatRand var(--dur, 10s) ease-in-out infinite;
  animation-delay:var(--delay, 0s);
  will-change:transform;
  --dx:12px; --dy:-18px; --dx2:-10px; --dy2:-8px; --rot:8deg; --rot2:-6deg;
}
.float-icon svg{width:100%;height:100%;display:block;pointer-events:none;}
.band-photo.on-dark .float-icon,
.page-hero .float-icon,
.hero .float-icon,
footer .float-icon{color:var(--amber-soft);opacity:.4;}
.float-icon.fi-coupon{opacity:.65;}
.band-photo.on-dark .float-icon.fi-coupon,
.hero .float-icon.fi-coupon{opacity:.5;}
@keyframes floatRand{
  0%{transform:translate3d(0,0,0) rotate(calc(var(--rot) * -1));}
  25%{transform:translate3d(var(--dx), var(--dy), 0) rotate(var(--rot));}
  50%{transform:translate3d(var(--dx2), calc(var(--dy) * 0.55), 0) rotate(var(--rot2));}
  75%{transform:translate3d(calc(var(--dx) * -0.7), var(--dy2), 0) rotate(calc(var(--rot) * 0.4));}
  100%{transform:translate3d(0,0,0) rotate(calc(var(--rot) * -1));}
}
.band-photo > .float-layer{z-index:2;}
.band-photo > .wrap,
section > .wrap,
footer > .wrap,
.page-hero > .wrap{position:relative;z-index:3;}
.audience-strip{position:relative;}
.audience-strip .float-layer{z-index:1;}
.audience-strip .wrap{position:relative;z-index:2;}
footer{position:relative;overflow:hidden;}
section{position:relative;overflow:hidden;}
.about{overflow:visible;}
.features,.pricing,.app-shots,.how,.login-cta,.contact-layout{overflow:hidden;}
.band-veil{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(115deg, rgba(10,12,14,.88) 0%, rgba(16,26,28,.72) 45%, rgba(10,12,14,.55) 100%),
    radial-gradient(circle at 80% 20%, rgba(226,163,59,.16), transparent 42%);
}
.band-veil.light{
  background:
    linear-gradient(180deg, rgba(242,239,228,.92) 0%, rgba(242,239,228,.86) 55%, rgba(234,238,230,.9) 100%),
    radial-gradient(circle at 90% 10%, rgba(29,108,99,.1), transparent 45%);
}
.band-photo > .wrap,
.band-photo > .hero-grid-pattern,
.band-photo > .scroll-cue,
.band-photo > .hero-orb{position:relative;z-index:3;}
.band-photo.on-dark{color:var(--white);}
.band-photo.on-dark .section-head h2,
.band-photo.on-dark h2{color:var(--white);}
.band-photo.on-dark .section-head p,
.band-photo.on-dark .app-shots-note{color:rgba(253,252,248,.82);}
.band-photo.on-dark .teaser-card{
  background:rgba(253,252,248,.12) !important;
  border:1px solid rgba(253,252,248,.22) !important;
  color:rgba(253,252,248,.78) !important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
.band-photo.on-dark .teaser-card h3{color:#FDFCF8 !important;}
.band-photo.on-dark .teaser-card p{color:rgba(253,252,248,.72) !important;}
.band-photo.on-dark .teaser-card:hover{
  background:rgba(253,252,248,.18) !important;
  border-color:rgba(226,163,59,.4) !important;
}
.band-photo.on-dark .feature-card{
  background:var(--panel);
  border:1px solid var(--line);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  color:var(--ink);
}
.band-photo.on-dark .feature-card:hover{
  background:#FFFDF8;
  transform:translateY(-4px);
  box-shadow:0 18px 36px rgba(0,0,0,.22);
}
.band-photo.on-dark .feature-card h3{color:var(--ink);}
.band-photo.on-dark .feature-card p{color:var(--muted);}
.band-photo.on-dark .feature-icon{
  background:rgba(29,108,99,.12);
  color:var(--teal-deep);
}
.band-photo.on-dark .pricing-foot{color:rgba(253,252,248,.7);}
.band-photo.on-dark .pricing-foot a{color:var(--amber-soft);}
.band-photo.on-dark .price-card{
  background:rgba(253,252,248,.95);
}
.band-photo.on-dark .price-card.featured{
  background:linear-gradient(160deg,#134A44,#1D6C63 60%,#1a3d38);
}

/* Product page: about section on light photo band */
.about.band-photo{
  background:transparent !important;
}
.about.band-photo .about-copy h2{color:var(--ink);}
.about.band-photo .about-copy p{color:var(--ink-soft);}
.about.band-photo .about-copy strong{color:var(--ink);}

/* Product “Who it’s for” — solid readable cards on dark photo */
.features.band-photo.on-dark .feature-grid{
  background:rgba(253,252,248,.2);
  border:1px solid rgba(253,252,248,.22);
}
.features.band-photo.on-dark .feature-card{
  background:#21201F !important;
  color:rgba(253,252,248,.78) !important;
}
.features.band-photo.on-dark .feature-card h3{color:#FDFCF8 !important;}
.features.band-photo.on-dark .feature-card p{color:rgba(253,252,248,.72) !important;}
.features.band-photo.on-dark .feature-icon{
  background:rgba(226,163,59,.16) !important;
  color:#F3D9A6 !important;
}

/* How section with photo band */
.how.band-photo{
  background:transparent !important;
}
.how.band-photo::before{display:none;}
.how.band-photo .access-card{
  background:rgba(33,32,31,.78);
  border:1px solid rgba(253,252,248,.14);
  backdrop-filter:blur(10px);
}

.glass-card{
  background:rgba(253,252,248,.08) !important;
  border:1px solid rgba(253,252,248,.14) !important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:0 18px 40px rgba(0,0,0,.18);
  transition:transform .28s cubic-bezier(.34,1.56,.64,1), box-shadow .28s ease, border-color .28s ease, background .28s ease;
  transform-origin:center center;
}
.glass-card:hover{
  transform:translateY(-14px) scale(1.06) !important;
  border-color:rgba(226,163,59,.55) !important;
  box-shadow:0 36px 64px rgba(0,0,0,.32), 0 0 0 1px rgba(226,163,59,.25);
  background:rgba(253,252,248,.16) !important;
  z-index:5;
}
.band-photo .how-strip{gap:14px;}
.band-photo .how-step{
  padding:22px 18px !important;
  border-radius:18px;
}
.band-photo .how-step:not(:last-child)::after{display:none;}
.band-photo .how-step h3{margin-top:0 !important;margin-left:0 !important;}
.band-photo .how-step p{margin-left:0 !important;padding-right:0;}

.section-foot-link.on-dark{color:var(--amber-soft);}
.section-foot-link.on-dark:hover{color:var(--amber);}

.hero.hero-photo{
  background:transparent !important;
}
.hero.hero-photo .band-bg{z-index:0;}
.hero.hero-photo::after{
  content:"";
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(115deg, rgba(10,12,14,.9) 0%, rgba(16,26,28,.72) 48%, rgba(10,12,14,.45) 100%),
    radial-gradient(circle at 82% 22%, rgba(226,163,59,.2), transparent 40%),
    radial-gradient(circle at 12% 82%, rgba(29,108,99,.35), transparent 46%);
}
.hero.hero-photo .hero-grid-pattern{z-index:2;}
.hero.hero-photo .wrap{z-index:3;}

.hero-orb{
  position:absolute;border-radius:50%;pointer-events:none;z-index:2;
  filter:blur(40px);opacity:.45;mix-blend-mode:screen;
  animation:orbFloat 10s ease-in-out infinite;
}
.hero-orb-a{
  width:280px;height:280px;top:12%;right:18%;
  background:rgba(226,163,59,.35);
}
.hero-orb-b{
  width:340px;height:340px;bottom:8%;left:6%;
  background:rgba(29,108,99,.4);
  animation-delay:-4s;
}
@keyframes orbFloat{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(18px,-22px) scale(1.08);}
}

.scroll-cue{
  position:absolute;bottom:28px;left:50%;transform:translateX(-50%);
  z-index:4;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(253,252,248,.45);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  animation:cuePulse 2.2s ease-in-out infinite;
}
.scroll-cue span{
  width:1px;height:28px;
  background:linear-gradient(180deg, var(--amber), transparent);
  display:block;
}
@keyframes cuePulse{
  0%,100%{opacity:.4;transform:translateX(-50%) translateY(0);}
  50%{opacity:1;transform:translateX(-50%) translateY(6px);}
}

.progress-rail{
  position:fixed;top:0;left:0;height:3px;width:0;z-index:200;
  background:linear-gradient(90deg, var(--teal), var(--amber));
  box-shadow:0 0 12px rgba(226,163,59,.45);
  pointer-events:none;
}

.reveal{opacity:0;transform:translateY(32px) scale(.985);filter:blur(4px);
  transition:opacity .85s cubic-bezier(.2,.7,.2,1), transform .85s cubic-bezier(.2,.7,.2,1), filter .85s ease;}
.reveal.in{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
.reveal[data-delay="1"]{transition-delay:.08s;}
.reveal[data-delay="2"]{transition-delay:.16s;}
.reveal[data-delay="3"]{transition-delay:.24s;}
.reveal[data-delay="4"]{transition-delay:.32s;}

.teaser-card,.feature-card,.admin-cap-web,.price-card,.access-card{
  transition:transform .28s cubic-bezier(.34,1.56,.64,1), box-shadow .28s ease, border-color .28s ease;
  transform-origin:center;
}
.teaser-card:hover,.feature-card:hover,.admin-cap-web:hover,.access-card:hover,.price-card:hover{
  transform:translateY(-14px) scale(1.05);
  box-shadow:0 32px 56px rgba(22,26,29,.18);
  z-index:4;
}
.phone{
  transition:transform .4s cubic-bezier(.34,1.56,.64,1), filter .35s ease, opacity .35s ease !important;
  cursor:pointer;
}
.app-phones:hover .phone:not(:hover){
  opacity:.55;
  filter:blur(1px) saturate(.85);
  transform:scale(.92) translateY(8px) !important;
}
.app-phones .phone:hover{
  transform:translateY(-28px) scale(1.12) rotate(-2deg) !important;
  z-index:8;
  filter:drop-shadow(0 40px 50px rgba(22,26,29,.35));
}
.app-phones .phone.mid:hover{
  transform:translateY(-36px) scale(1.14) rotate(0deg) !important;
}

.btn-magnetic{
  position:relative;
  transition:transform .2s cubic-bezier(.34,1.56,.64,1), box-shadow .25s ease;
}
.btn-magnetic:hover{
  transform:scale(1.1) !important;
  box-shadow:0 16px 36px rgba(226,163,59,.45);
}
.ticket[data-live], [data-float] .ticket{
  animation:ticketBob 5.5s ease-in-out infinite;
}
@keyframes ticketBob{
  0%,100%{transform:translateY(0) rotate(-1deg);}
  50%{transform:translateY(-12px) rotate(1.5deg);}
}
.ticket-stage .ticket{
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s ease;
  cursor:pointer;
}
.ticket-stage:hover .ticket,
.ticket:hover{
  animation:none !important;
  transform:translateY(-18px) scale(1.08) rotate(0deg) !important;
  box-shadow:0 48px 80px rgba(0,0,0,.45);
}

.illustration,.aud-card,.scene-photo{
  overflow:hidden;
  position:relative;
}
.about-media .qr-demo-panel{
  overflow:hidden;
  position:relative;
}
.about-media,
.about-media.reveal,
.illustration,
.illustration img{
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
  transition:none !important;
  animation:none !important;
  will-change:auto !important;
}
.about-media.reveal{opacity:1;transform:none;filter:none;}
.illustration:hover,
.illustration:hover img{
  transform:none !important;
}
.aud-card img,.scene-photo img{
  transition:transform .7s cubic-bezier(.34,1.4,.64,1);
}
.aud-card:hover img,.scene-photo:hover img{
  transform:scale(1.2) translateX(-5%);
}

.pop-bang{animation:popBang .45s cubic-bezier(.34,1.56,.64,1);}
@keyframes popBang{
  0%{transform:scale(.86);}
  55%{transform:scale(1.14);}
  100%{transform:scale(1);}
}

.float-layer{pointer-events:none;}
.float-icon{
  pointer-events:auto !important;
  cursor:pointer;
}
.float-icon:hover{
  animation:iconBang .55s cubic-bezier(.34,1.7,.64,1) !important;
  opacity:1 !important;
  color:var(--amber) !important;
  z-index:6;
  filter:drop-shadow(0 12px 20px rgba(226,163,59,.45));
}
@keyframes iconBang{
  0%{transform:scale(.7) rotate(-12deg);}
  40%{transform:scale(1.55) rotate(8deg);}
  70%{transform:scale(1.2) rotate(-4deg);}
  100%{transform:scale(1.35) rotate(0deg);}
}

.cursor-burst{
  position:fixed;width:14px;height:14px;border-radius:50%;
  pointer-events:none;z-index:9999;
  background:var(--amber);
  mix-blend-mode:screen;
  transform:translate(-50%,-50%) scale(0);
  opacity:0;
}
.cursor-burst.go{animation:burstPop .55s cubic-bezier(.2,.8,.2,1) forwards;}
@keyframes burstPop{
  0%{transform:translate(-50%,-50%) scale(.2);opacity:.9;}
  100%{transform:translate(-50%,-50%) scale(6);opacity:0;}
}
.hover-ripple{
  position:absolute;width:12px;height:12px;border-radius:50%;
  pointer-events:none;z-index:9;
  background:radial-gradient(circle, rgba(226,163,59,.75), transparent 70%);
  transform:translate(-50%,-50%) scale(0);
  animation:rippleBang .6s ease-out forwards;
}
@keyframes rippleBang{
  to{transform:translate(-50%,-50%) scale(18);opacity:0;}
}
.slide-panel{position:relative;overflow:hidden;}
.slide-panel::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(105deg, transparent 40%, rgba(226,163,59,.2) 50%, transparent 60%);
  transform:translateX(-120%);
  transition:transform .7s cubic-bezier(.2,.7,.2,1);
  pointer-events:none;z-index:2;
}
.slide-panel:hover::after{transform:translateX(120%);}

.band-photo .admin-cap-web{
  background:rgba(255,253,248,.92);
  backdrop-filter:blur(10px);
}
.band-photo.on-dark .admin-cap-web{
  background:rgba(253,252,248,.08);
  border:1px solid rgba(253,252,248,.14);
  color:var(--white);
}
.band-photo.on-dark .admin-cap-web h3{color:var(--white);}
.band-photo.on-dark .admin-cap-web p{color:rgba(253,252,248,.68);}
.band-photo .app-shots-note{position:relative;z-index:3;}

.audience-strip{
  position:relative;
  overflow:hidden;
}
.audience-strip .wrap{
  animation:stripDrift 28s linear infinite;
}
@keyframes stripDrift{
  0%{transform:translateX(0);}
  50%{transform:translateX(-12px);}
  100%{transform:translateX(0);}
}
.audience-chip{
  transition:transform .28s cubic-bezier(.34,1.56,.64,1), border-color .25s ease, color .25s ease, box-shadow .25s ease;
  cursor:pointer;
}
.audience-chip:hover{
  transform:translateY(-8px) scale(1.12);
  border-color:var(--amber);
  color:var(--amber-soft);
  box-shadow:0 14px 28px rgba(226,163,59,.25);
}

.login-cta.band-photo{background:transparent !important;}
.login-cta.band-photo .wrap{position:relative;z-index:3;}

@media (prefers-reduced-motion: reduce){
  .reveal,.hero-orb,.scroll-cue,.ticket,[data-float] .ticket,.band-bg,.float-icon,.band-bg.ken-burns,
  .logo .dot,.logo-mini .d,.brand-hero .dot{animation:none !important;transition:none !important;}
  .band-bg{transform:none !important;}
  .float-layer{display:none;}
  .cursor-burst,.hover-ripple{display:none !important;}
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:960px){
  .wrap{padding:0 20px;}
  .hero{padding:120px 0 64px;min-height:auto;}
  .hero .wrap{grid-template-columns:1fr;gap:36px;}
  .ticket-stage{margin-top:8px;max-width:360px;}
  .about .wrap{grid-template-columns:1fr;gap:36px;}
  .about-media{order:-1;}
  .about-badge{position:static;margin-top:-40px;margin-left:20px;}
  .footer-top{grid-template-columns:1fr 1fr;}
  .illustration{height:320px;}
  .hero h1{font-size:clamp(34px,8vw,52px);}
  .page-hero h1{font-size:clamp(30px,7vw,48px);}
  .page-hero{padding:120px 0 56px;}
}
@media(max-width:720px){
  html{scroll-behavior:auto;}
  nav.links{display:none;}
  nav.links.nav-open{
    display:flex !important;
    flex-direction:column;
    position:absolute;
    top:64px;right:16px;left:16px;
    background:#161A1D;
    padding:18px 22px;
    border-radius:14px;
    gap:16px;
    z-index:60;
    box-shadow:0 20px 40px rgba(0,0,0,0.35);
  }
  nav.links.nav-open a{color:rgba(253,252,248,0.9) !important;}
  .hamburger{display:flex;z-index:61;}
  .nav-cta .btn-ghost{display:none;}
  section{padding:64px 0;}
  .section-sm{padding:48px 0;}
  .footer-top{grid-template-columns:1fr;gap:32px;}
  .audience-strip .wrap{justify-content:flex-start;flex-wrap:wrap;}
  .app-phones{
    flex-direction:column;
    align-items:center;
    gap:24px;
  }
  .app-phones .phone,
  .app-phones .phone.mid{
    transform:none !important;
    width:min(260px,86vw);
  }
  .how-strip{grid-template-columns:1fr;gap:20px;}
  .pricing-grid{grid-template-columns:1fr;}
  .admin-caps-web{grid-template-columns:1fr;}
  .teaser-grid{grid-template-columns:1fr;}
  .hero-cta{flex-direction:column;align-items:stretch;}
  .hero-cta .btn{width:100%;}
  .scroll-cue{display:none;}
  .hero-orb{display:none;}
}

/* Mobile / touch: kill heavy image + float animations for smooth scroll */
@media(max-width:900px), (hover:none) and (pointer:coarse){
  html{scroll-behavior:auto;}
  .band-bg,
  .band-bg.ken-burns{
    animation:none !important;
    transform:none !important;
    will-change:auto !important;
    inset:0 !important;
    transition:none !important;
  }
  .page-hero.has-photo{--parallax-y:0px;}
  .page-hero.has-photo::before{
    inset:0 !important;
    transform:none !important;
    will-change:auto !important;
    animation:none !important;
  }
  .float-layer,
  .site-float-ambient,
  .float-icon{display:none !important;}
  .cursor-burst,.hover-ripple{display:none !important;}
  .btn-magnetic{transform:none !important;}
  .glass-card,[data-tilt-card]{transform:none !important;}
  .ticket-stage{transform:none !important;}
  .slide-panel{animation:none !important;}
  .reveal{transition:opacity .35s ease, transform .35s ease;}
}
