/* PeppyPOS marketing site */
@font-face { font-family: Fredoka; font-weight: 600; font-display: swap; src: url(../assets/fonts/fredoka-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: Fredoka; font-weight: 700; font-display: swap; src: url(../assets/fonts/fredoka-latin-700-normal.woff2) format('woff2'); }
@font-face { font-family: Nunito; font-weight: 400; font-display: swap; src: url(../assets/fonts/nunito-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: Nunito; font-weight: 600; font-display: swap; src: url(../assets/fonts/nunito-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: Nunito; font-weight: 700; font-display: swap; src: url(../assets/fonts/nunito-latin-700-normal.woff2) format('woff2'); }
@font-face { font-family: Nunito; font-weight: 800; font-display: swap; src: url(../assets/fonts/nunito-latin-800-normal.woff2) format('woff2'); }

:root {
  --orange: #FB8B23; --orange-dk: #D96F0F; --orange-lt: #FFE3C4;
  --black: #0E0B0F; --ink: #2A2430; --mute: #6F6570;
  --white: #FFFFFF; --cream: #FFF7EE; --tan: #E3A867;
  --green: #2FA86B; --red: #D9392E;
  --radius: 28px; --gutter: clamp(16px, 4vw, 56px); --maxw: 1240px;
  --font-h: Fredoka, 'Nunito', system-ui, sans-serif; --font-b: Nunito, system-ui, -apple-system, sans-serif;
  color-scheme: light;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
body { margin: 0; background: var(--cream); color: var(--ink); font-family: var(--font-b); font-size: 18px; line-height: 1.55; overflow-x: hidden; overflow-x: clip; }
/* Older iOS Safari and in-app browsers ignore overflow-x: clip; hidden on html stops decorative paws widening the page. */
html { overflow-x: hidden; }
@supports (overflow-x: clip) { html { overflow-x: clip; } }
img, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; }
h1, h2, h3, h4 { font-family: var(--font-h); font-weight: 700; color: var(--black); line-height: 1.02; margin: 0 0 .4em; letter-spacing: -0.01em; }
p { margin: 0 0 1em; }
.wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
:focus-visible { outline: 3px solid var(--orange); outline-offset: 3px; border-radius: 8px; }

/* 3D stage: fixed, above section backgrounds, below section content */
#stage3d { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none; }
/* sections + decorations stay in the z-auto/0 layer (under the canvas); readable content sits at z 2 (over it).
   Never transform a wrapper that holds decorations, or they would jump above the canvas. */
main > section, footer { position: relative; }
.wrap { position: relative; }
.wrap > *, .hero-grid > *, .feature-grid > *, .bf-stage > *, footer .wrap > * { position: relative; z-index: 2; }
.hero-grid > .hero-stage, .bf-stage > .bf-blobwrap, .feature-grid > .anchor { z-index: auto; }
.wrap > .hero-grid, .wrap > .feature-grid, .wrap > .bf-stage { z-index: auto; }
.anchor { position: relative; }
.anchor-glow::before { content: ''; position: absolute; inset: 8%; border-radius: 50%; background: radial-gradient(circle, rgba(251,139,35,.45), rgba(251,139,35,0) 68%); }
.no-webgl .anchor, .no-js .anchor { background: url(../assets/terminal.png) center / contain no-repeat; }
.no-webgl #stage3d { display: none; }

/* buttons */
.btn { --bg: var(--orange); --fg: var(--white); display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 56px; padding: 0 28px; border-radius: 999px; border: 3px solid var(--black); background: var(--bg); color: var(--fg); font: 700 19px/1 var(--font-h); text-decoration: none; cursor: pointer; box-shadow: 0 5px 0 var(--black); transition: transform .15s, box-shadow .15s; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 7px 0 var(--black); }
.btn:active { transform: translateY(3px); box-shadow: 0 2px 0 var(--black); }
.btn.ghost { --bg: var(--white); --fg: var(--black); }
.btn.dark { --bg: var(--black); --fg: var(--white); border-color: var(--black); box-shadow: 0 5px 0 var(--orange-dk); }
.btn.sm { min-height: 44px; padding: 0 20px; font-size: 16px; box-shadow: 0 3px 0 var(--black); }
.btn[disabled] { opacity: .6; cursor: progress; }

/* nav */
.nav { position: fixed; top: 0; left: 0; right: 0; z-index: 20; padding: 12px var(--gutter); transition: background .25s, box-shadow .25s; }
.nav.scrolled { background: rgba(255,247,238,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 2px 0 rgba(14,11,15,.08); }
.nav-in { max-width: var(--maxw); margin: 0 auto; display: flex; align-items: center; gap: 24px; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.brand img { height: 58px; width: auto; }
.nav-links { display: flex; gap: 6px; margin-left: auto; list-style: none; padding: 0; margin-top: 0; margin-bottom: 0; }
.nav-links a { display: block; padding: 10px 14px; border-radius: 999px; font: 600 17px/1 var(--font-h); color: var(--black); text-decoration: none; }
.nav-links a:hover { background: var(--orange-lt); }
.nav-cta { margin-left: 8px; }
.menu-btn { display: none; margin-left: auto; width: 48px; height: 48px; border-radius: 50%; border: 3px solid var(--black); background: var(--white); cursor: pointer; padding: 0; align-items: center; justify-content: center; }
@media (max-width: 900px) {
  .brand img { height: 48px; }
  .menu-btn { display: inline-flex; }
  .nav-links { display: none; position: absolute; top: 72px; left: 16px; right: 16px; flex-direction: column; background: var(--white); border: 3px solid var(--black); border-radius: 24px; padding: 10px; box-shadow: 0 6px 0 var(--black); }
  .nav.open .nav-links { display: flex; }
  .nav-links a { padding: 14px 16px; font-size: 20px; }
  .nav-cta { margin-left: auto; padding: 10px 16px; font-size: 15px; }
  .menu-btn { margin-left: 10px; }
  .nav { background: rgba(255,247,238,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
}

/* hero */
.hero { min-height: 100vh; min-height: 100svh; padding: 120px 0 64px; display: flex; align-items: center; overflow: hidden; background: var(--cream); }
.hero-grid { display: grid; grid-template-columns: 1.08fr 1fr; align-items: center; gap: 24px; }
.hero h1 { font-size: clamp(54px, 8.4vw, 136px); line-height: .9; letter-spacing: -0.02em; margin-bottom: 24px; }
.hero h1 .word { display: inline-block; }
.hero h1 .hl { color: var(--orange); position: relative; }
.hero h1 .hl svg { position: absolute; left: 0; right: 0; bottom: -0.12em; width: 100%; height: .22em; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; margin-bottom: 22px; border-radius: 999px; background: var(--white); border: 2px solid var(--black); font: 600 16px/1.2 var(--font-h); }
.eyebrow svg { width: 20px; height: 20px; color: var(--orange); }
.hero .sub { font-size: clamp(18px, 1.5vw, 22px); max-width: 34em; color: var(--ink); margin-bottom: 30px; }
.cta-row { display: flex; flex-wrap: wrap; gap: 14px; }
.cta-row .btn svg { flex: none; width: 20px; height: 20px; color: var(--orange); }
.hero-ctas { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 540px; }
.hero-ctas .btn:first-child { grid-column: 1 / -1; }
.hero-ctas .btn { padding: 0 18px; white-space: nowrap; }
@media (max-width: 900px) { .hero-ctas { max-width: none; } }
@media (min-width: 901px) { .hero { padding-top: 104px; } .hero .sub { margin-bottom: 24px; } .hero-ctas { gap: 12px; } .hero-ctas .btn:not(:first-child) { min-height: 50px; } .hero-ctas + .trust { margin-top: 18px; } }
@media (max-width: 400px) { .hero-ctas { gap: 12px; } .hero-ctas .btn { font-size: 17px; padding: 0 12px; } }
.trust { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 26px; font-weight: 700; font-size: 16px; color: var(--mute); padding: 0; list-style: none; }
.trust li { display: flex; align-items: center; gap: 6px; }
.trust svg { width: 18px; height: 18px; color: var(--green); }
.hero-stage { position: relative; height: min(72vh, 640px); }
.hero-stage .sun { position: absolute; left: 50%; top: 50%; width: min(100%, 72vh, 600px); aspect-ratio: 1; transform: translate(-50%, -50%); border-radius: 50%; background: var(--orange); border: 4px solid var(--black); }
.hero-stage .anchor { position: absolute; inset: 0; }
.hero-stage .ray { position: absolute; width: 14px; height: 46px; border-radius: 10px; background: var(--white); border: 3px solid var(--black); }
.paws-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; color: var(--orange); opacity: .14; }
.paws-bg svg { position: absolute; width: 56px; height: 56px; animation: drift 9s ease-in-out infinite alternate; }
@keyframes drift { from { transform: translateY(0) rotate(-12deg); } to { transform: translateY(-26px) rotate(14deg); } }
@media (max-width: 900px) {
  .hero { padding-top: 100px; padding-bottom: 40px; }
  .hero-grid { grid-template-columns: 1fr; gap: 8px; }
  .hero-stage { height: min(96vw, 420px); order: 2; }
  .hero h1 { font-size: clamp(46px, 13.5vw, 84px); }
}

/* feature sections */
.feature { padding: clamp(72px, 10vw, 140px) 0; overflow: hidden; }
.feature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 5vw, 80px); align-items: center; }
.feature.flip .feature-copy { order: 2; }
.feature .anchor { height: min(68vh, 560px); }
.kicker { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px 8px 8px; border-radius: 999px; background: var(--white); color: var(--black); border: 2px solid var(--black); font: 700 16px/1 var(--font-h); margin-bottom: 18px; }
.kicker .ico { width: 34px; height: 34px; border-radius: 50%; background: var(--orange); color: var(--white); display: grid; place-items: center; }
.kicker .ico svg { width: 20px; height: 20px; }
.feature h2 { font-size: clamp(40px, 5.2vw, 76px); }
.feature p.lead { font-size: clamp(18px, 1.45vw, 21px); max-width: 32em; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 0 0 22px; list-style: none; }
.chips li { padding: 9px 18px; border-radius: 999px; background: var(--black); color: var(--white); font: 600 17px/1 var(--font-h); }
.ticks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.ticks li { display: flex; gap: 12px; align-items: flex-start; font-weight: 700; }
.ticks li svg { flex: none; width: 26px; height: 26px; margin-top: 1px; }
.plan-tag { display: inline-block; margin-top: 22px; font: 700 14px/1 var(--font-h); letter-spacing: .06em; text-transform: uppercase; padding: 8px 12px; border-radius: 10px; border: 2px dashed currentColor; opacity: .85; }

.bg-orange { background: var(--orange); }
.bg-orange .chips li { background: var(--black); }
.bg-orange .ticks svg { color: var(--black); }
.try-link { display: inline-flex; align-items: center; gap: .4em; margin-top: 24px; font: 700 19px/1.2 var(--font-h); color: var(--black); text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 5px; }
.try-link span { transition: transform .15s; }
.try-link:hover span { transform: translateX(4px); }
.bg-black { background: var(--black); color: #EDE6EA; }
.bg-black h2 { color: var(--white); }
.bg-black .chips li { background: var(--orange); color: var(--black); }
.bg-black .ticks svg { color: var(--orange); }
.bg-tan { background: var(--tan); }
.bg-tan .ticks svg { color: var(--black); }
.bg-cream { background: var(--cream); }
.bg-cream .ticks svg, .bg-white .ticks svg { color: var(--orange); }
.bg-white { background: var(--white); }
.bg-white .kicker { background: var(--cream); }

@media (max-width: 900px) {
  .feature { padding: 56px 0 72px; }
  .feature-grid { grid-template-columns: 1fr; gap: 12px; }
  .feature .feature-copy, .feature.flip .feature-copy { order: 2; }
  .feature .anchor { height: min(86vw, 380px); order: 1; margin-bottom: 12px; }
}

/* wave dividers */
.wave { position: absolute; left: 0; right: 0; height: 60px; width: 100%; pointer-events: none; }
.wave.top { top: -1px; }

/* built for carousel */
.builtfor { --bf-bg: #F2C48D; --bf-blob: #6B3E26; --bf-ink: var(--black); background: var(--bf-bg); color: var(--bf-ink); padding: clamp(84px, 7vw, 104px) 0 clamp(56px, 6vw, 80px); overflow: hidden; transition: background-color .6s ease, color .6s; min-height: 100vh; }
.builtfor h2 { color: var(--bf-ink); font-size: clamp(40px, 5.6vw, 84px); text-align: center; transition: color .6s; }
.bf-sub { text-align: center; max-width: 36em; margin: 0 auto 8px; font-weight: 700; }
.bf-stage { display: grid; grid-template-columns: 64px 0.8fr 1.5fr 0.95fr 64px; align-items: center; gap: 16px; margin-top: 12px; }
.bf-blobwrap { position: relative; height: min(58vh, 540px); }
.bf-blobwrap svg.blob { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--bf-blob); transition: color .6s; transform: scale(1.2); }
.bf-blobwrap .anchor { position: absolute; inset: 0; }
.bf-arrow { width: 64px; height: 64px; border-radius: 50%; border: 3px solid var(--black); background: var(--white); color: var(--black); display: grid; place-items: center; cursor: pointer; box-shadow: 0 4px 0 var(--black); transition: transform .15s; }
.bf-arrow:hover { transform: scale(1.06); }
.bf-arrow svg { width: 28px; height: 28px; }
.bf-art, .bf-copy { position: relative; min-height: 340px; }
.bf-art > svg, .bf-copy > div { position: absolute; inset: 0; margin: auto; opacity: 0; transform: translateY(24px) scale(.94); transition: opacity .45s, transform .55s cubic-bezier(.2,.9,.3,1.3); pointer-events: none; }
.bf-art > svg { width: 100%; height: 100%; max-width: 300px; }
.bf-art > svg.on, .bf-copy > div.on { opacity: 1; transform: none; pointer-events: auto; }
.bf-copy > div { display: flex; flex-direction: column; justify-content: center; }
.bf-copy h3 { color: var(--bf-ink); font-size: clamp(38px, 4vw, 60px); margin-bottom: 8px; transition: color .6s; }
.bf-copy p { font-weight: 600; }
.bf-copy .mini { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; }
.bf-copy .mini li { padding: 7px 14px; border-radius: 999px; background: rgba(255,255,255,.75); color: var(--black); font: 600 15px/1 var(--font-h); border: 2px solid var(--black); }
.bf-dots { display: flex; justify-content: center; gap: 10px; margin-top: 28px; flex-wrap: wrap; }
.bf-dots button { border: 2px solid var(--black); background: rgba(255,255,255,.6); border-radius: 999px; padding: 8px 16px; font: 600 16px/1 var(--font-h); color: var(--black); cursor: pointer; }
.bf-dots button[aria-selected='true'] { background: var(--black); color: var(--white); }
@media (max-width: 1000px) {
  .bf-stage { grid-template-columns: 52px 1fr 52px; grid-template-areas: 'prev stage next' 'art art art' 'copy copy copy'; gap: 8px; }
  .bf-arrow { width: 52px; height: 52px; }
  .bf-arrow.prev { grid-area: prev; } .bf-arrow.next { grid-area: next; }
  .bf-blobwrap { grid-area: stage; height: min(78vw, 360px); }
  .bf-art { grid-area: art; min-height: 150px; }
  .bf-art > svg { max-width: 150px; }
  .bf-copy { grid-area: copy; min-height: 250px; text-align: center; }
  .bf-copy .mini { justify-content: center; }
}

/* comparison */
.compare { background: var(--black); color: #EDE6EA; padding: clamp(72px, 9vw, 120px) 0; }
.compare h2 { color: var(--white); font-size: clamp(38px, 5vw, 72px); text-align: center; }
.compare .bf-sub { color: #CFC6CC; }
.cmp-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 40px; }
.cmp { background: #1C171E; border: 2px solid #3A3140; border-radius: var(--radius); padding: 26px 24px; }
.cmp .ico { width: 52px; height: 52px; border-radius: 16px; background: var(--orange); color: var(--black); display: grid; place-items: center; margin-bottom: 18px; }
.cmp .ico svg { width: 28px; height: 28px; }
.cmp h3 { color: var(--white); font-size: 28px; margin-bottom: 14px; }
.cmp .row { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid #3A3140; font-weight: 700; font-size: 16px; }
.cmp .row span:first-child { color: #A89FA6; white-space: nowrap; }
.cmp .row span:last-child { text-align: right; }
.cmp .row.us span:last-child { color: var(--orange); }
.cmp .row.them span:last-child { color: #CFC6CC; }
@media (max-width: 1000px) { .cmp-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .cmp-grid { grid-template-columns: 1fr; } }

/* pricing */
.pricing { background: var(--cream); padding: clamp(72px, 9vw, 130px) 0; }
.pricing h2 { text-align: center; font-size: clamp(40px, 5.4vw, 80px); }
.pricing .bf-sub { color: var(--mute); }
.toggle { display: flex; justify-content: center; margin: 26px 0 40px; }
.toggle-in { display: inline-flex; padding: 6px; border-radius: 999px; background: var(--white); border: 3px solid var(--black); gap: 4px; }
.toggle button { border: 0; background: transparent; border-radius: 999px; padding: 12px 22px; font: 700 17px/1 var(--font-h); color: var(--black); cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.toggle button[aria-pressed='true'] { background: var(--black); color: var(--white); }
.toggle .save { background: var(--orange); color: var(--black); border-radius: 999px; padding: 4px 8px; font-size: 13px; }
.plans { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.plan { position: relative; background: var(--white); border: 3px solid var(--black); border-radius: var(--radius); padding: 32px 26px 26px; display: flex; flex-direction: column; box-shadow: 0 8px 0 var(--black); min-width: 0; }
.plan.pop { background: var(--orange); transform: translateY(-12px); }
.plan .badge { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); background: var(--black); color: var(--white); padding: 8px 16px; border-radius: 999px; font: 700 15px/1 var(--font-h); white-space: nowrap; }
.plan h3 { font-size: 32px; margin-bottom: 6px; }
.plan .for { font-weight: 700; color: var(--mute); margin-bottom: 16px; min-height: 2.9em; }
.plan.pop .for { color: #4A2A10; }
.pricing > .wrap { max-width: 1360px; }
.price { font: 700 clamp(40px, 3.5vw, 52px)/1 var(--font-h); color: var(--black); white-space: nowrap; }
.price small { font-size: 20px; font-weight: 600; }
.price-note { font-weight: 700; font-size: 15px; color: var(--mute); min-height: 1.6em; margin: 8px 0 18px; }
.plan.pop .price-note { color: #4A2A10; }
.plan ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px; }
.plan li { display: flex; gap: 10px; font-weight: 700; font-size: 16px; line-height: 1.35; }
.plan li svg { flex: none; width: 20px; height: 20px; color: var(--orange); margin-top: 1px; }
.plan.pop li svg { color: var(--black); }
.plan .limits { background: var(--cream); border: 2px solid var(--black); border-radius: 18px; padding: 14px 14px; gap: 10px; }
.plan.pop .limits { background: #FFF3E6; }
.plan .limits li { font-size: 15px; font-weight: 700; color: var(--ink); }
.plan .limits li svg, .plan.pop .limits li svg { color: var(--black); width: 20px; height: 20px; }
.plan .limits b { font-weight: 900; color: var(--black); }
.plan .incl { font: 700 17px/1.2 var(--font-h); color: var(--black); margin: 20px 0 12px; }
.plan .feats { margin-bottom: 26px; }
.plan .btn { margin-top: auto; width: 100%; }
.plan .feats:not(:last-of-type) { margin-bottom: 0; }
.plan.biz { background: var(--black); color: var(--white); box-shadow: 0 8px 0 var(--orange-dk); }
.plan.biz h3, .plan.biz .price, .plan.biz .incl { color: var(--white); }
.plan.biz .for, .plan.biz .price-note { color: #D9CDC2; }
.plan.biz .feats li { color: var(--white); }
.plan.biz .limits { background: #2A2230; border-color: #4A3F52; }
.plan.biz .limits li, .plan.biz .limits b { color: var(--white); }
.plan.biz .limits li svg { color: var(--orange); }
.plan-ctas { margin-top: auto; display: grid; gap: 12px; justify-items: center; }
.plan-ctas .btn { margin-top: 0; }
.plan.biz .plan-ctas .btn { box-shadow: 0 5px 0 var(--orange-dk); }
.plan-sub { font-weight: 800; font-size: 15px; color: var(--orange); text-decoration: underline; text-underline-offset: 3px; padding: 4px 8px; }
.plan-sub:hover { color: var(--white); }
.plan.pop .btn { --bg: var(--black); --fg: var(--white); box-shadow: 0 5px 0 #6B3608; }

/* done-for-you */
.dfy { margin-top: 34px; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr) auto; gap: 28px 36px; align-items: center; background: var(--black); color: var(--white); border: 3px solid var(--black); border-radius: var(--radius); padding: 30px 34px; box-shadow: 0 8px 0 var(--orange-dk); }
.dfy-kicker { display: inline-flex; align-items: center; gap: 8px; background: var(--orange); color: var(--black); font: 700 14px/1 var(--font-h); letter-spacing: .05em; text-transform: uppercase; padding: 7px 12px; border-radius: 999px; }
.dfy-kicker svg { width: 16px; height: 16px; }
.dfy h3 { color: var(--white); font-size: 30px; margin: 12px 0 10px; }
.dfy-price { font: 700 clamp(38px, 3.6vw, 50px)/1 var(--font-h); color: var(--orange); white-space: nowrap; }
.dfy-price small { font-size: 19px; color: var(--white); font-weight: 600; }
.dfy-note { margin: 8px 0 0; font-weight: 800; color: #E9DCCB; }
.dfy-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }
.dfy-list li { display: flex; gap: 10px; font-weight: 700; font-size: 16.5px; }
.dfy-list svg { flex: none; width: 22px; height: 22px; color: var(--orange); }
.dfy-cta .btn { white-space: nowrap; }
@media (max-width: 1100px) { .dfy { grid-template-columns: 1fr 1fr; } .dfy-cta { grid-column: 1 / -1; } .dfy-cta .btn { width: 100%; } }
@media (max-width: 860px) { .dfy { grid-template-columns: 1fr; padding: 26px 22px; } .dfy-cta { grid-column: auto; } }
@media (max-width: 420px) { .dfy-list { grid-template-columns: 1fr; } }

/* compare all features */
.cmp-all { margin: 30px auto 0; max-width: 1000px; background: var(--white); border: 3px solid var(--black); border-radius: 24px; box-shadow: 0 6px 0 var(--black); overflow: hidden; }
.cmp-all summary { list-style: none; cursor: pointer; padding: 20px 64px 20px 24px; font: 700 22px/1.2 var(--font-h); color: var(--black); position: relative; text-align: center; }
.cmp-all summary::-webkit-details-marker { display: none; }
.cmp-all summary::after { content: ''; position: absolute; right: 22px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E0B0F' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 18px no-repeat; transition: transform .25s; }
.cmp-all[open] summary::after { transform: rotate(45deg); }
.cmp-all[open] summary { border-bottom: 3px solid var(--black); }
.cmp-scroll { overflow-x: auto; }
.cmp-table { width: 100%; border-collapse: collapse; font-weight: 700; font-size: 16px; }
.cmp-table th, .cmp-table td { padding: 11px 14px; border-bottom: 1px solid #EADFD2; text-align: center; vertical-align: middle; }
.cmp-table tbody th[scope=row] { text-align: left; font-weight: 700; color: var(--ink); }
.cmp-table thead th { position: sticky; top: 0; background: var(--white); font: 700 19px/1.1 var(--font-h); color: var(--black); padding: 16px 14px; border-bottom: 3px solid var(--black); }
.cmp-table thead th:first-child { text-align: left; color: var(--mute); font-size: 15px; }
.cmp-table th:not(:first-child), .cmp-table td { width: 15%; }
.cmp-table .hl { background: #FFF3E6; }
.cmp-table thead th.hl { background: var(--orange); }
.cmp-table tr.grp th { text-align: left; background: var(--cream); font: 700 15px/1 var(--font-h); letter-spacing: .06em; text-transform: uppercase; color: var(--orange-dk); padding: 12px 14px; }
.cmp-table td svg { width: 22px; height: 22px; display: block; margin: 0 auto; }
.cmp-table td .yes { color: var(--green); }
.cmp-table td .no { color: #C9BBAA; }
.cmp-table .price-row td { font: 700 18px/1.15 var(--font-h); color: var(--black); white-space: nowrap; }
.cmp-table .price-row small { font: 700 13px/1 var(--font-b); color: var(--mute); }
.cmp-foot { margin: 0; padding: 16px 20px; text-align: center; font-weight: 800; color: var(--ink); background: var(--cream); }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 600px) {
  .cmp-all summary { font-size: 19px; padding: 18px 56px 18px 18px; }
  .cmp-table { font-size: 14px; }
  .cmp-table th, .cmp-table td { padding: 9px 6px; }
  .cmp-table tbody th[scope=row] { padding-left: 12px; }
  .cmp-table thead th { font-size: 15px; padding: 12px 4px; }
  .cmp-table thead th:first-child { padding-left: 12px; font-size: 13px; }
  .cmp-table th:not(:first-child), .cmp-table td { width: 17%; }
  .cmp-table { font-size: 12px; }
  .cmp-table thead th { font-size: 12.5px; padding: 12px 2px; }
  .cmp-table td { padding: 9px 2px; }
  .cmp-table tbody th[scope=row] { padding-right: 4px; }
  .cmp-table .price-row td { font-size: 12.5px; }
  .cmp-table td svg { width: 20px; height: 20px; }
  .cmp-table .price-row td { font-size: 15px; }
  .cmp-table .price-row small { display: block; margin-top: 3px; }
}
.ask { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 1000px; margin: 40px auto 0; padding: 26px 30px; background: var(--white); border: 3px solid var(--black); border-radius: 28px; box-shadow: 0 6px 0 var(--black); }
.ask h3 { margin: 0 0 6px; font: 700 26px/1.15 var(--font-h); }
.ask p { margin: 0; color: var(--mute); font-weight: 700; }
.ask .btn { flex: none; }
@media (max-width: 700px) { .ask { flex-direction: column; align-items: stretch; text-align: center; padding: 22px 18px; } }
.fine { text-align: center; color: var(--mute); font-weight: 700; margin-top: 34px; font-size: 16px; }
@media (max-width: 1360px) and (min-width: 1181px) { .plan { padding: 30px 18px 22px; } .plan li { font-size: 15px; } .plan .limits { padding: 12px 11px; } .plan .limits li { font-size: 14px; } .price { font-size: 44px; } .plan .btn { padding: 0 16px; } }
@media (max-width: 1180px) { .plans { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 22px; max-width: 860px; margin: 0 auto; } .plan { padding: 30px 22px 22px; } .plan li { font-size: 15px; } .plan .limits li { font-size: 14px; } }
@media (max-width: 860px) { .plans { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; gap: 34px; } .plan.pop { transform: none; } .plan .for { min-height: 0; } .dfy { max-width: 520px; margin-left: auto; margin-right: auto; } }

/* faq */
.faq { background: var(--tan); padding: clamp(72px, 9vw, 120px) 0; }
.faq h2 { text-align: center; font-size: clamp(40px, 5vw, 72px); }
.faq-list { max-width: 860px; margin: 30px auto 0; display: grid; gap: 14px; }
.faq details { background: var(--white); border: 3px solid var(--black); border-radius: 22px; box-shadow: 0 5px 0 var(--black); }
.faq summary { list-style: none; cursor: pointer; padding: 20px 64px 20px 24px; font: 700 21px/1.25 var(--font-h); color: var(--black); position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ''; position: absolute; right: 22px; top: 50%; width: 28px; height: 28px; margin-top: -14px; border-radius: 50%; background: var(--orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E0B0F' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center / 18px no-repeat; transition: transform .25s; }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details p { padding: 0 24px 20px; margin: 0; font-weight: 600; }

/* final cta + footer */
.final { background: var(--orange); padding: clamp(80px, 10vw, 140px) 0; text-align: center; overflow: hidden; }
.final h2 { font-size: clamp(46px, 7.6vw, 120px); line-height: .92; max-width: 12em; margin: 0 auto 22px; }
.final p { font-size: 20px; font-weight: 700; max-width: 30em; margin: 0 auto 30px; }
.final .cta-row { justify-content: center; }
.final .dog { width: min(300px, 64vw); margin: 0 auto 26px; filter: drop-shadow(0 10px 0 rgba(14,11,15,.18)); }
footer { background: var(--black); color: #CFC6CC; padding: 56px 0 40px; font-size: 16px; }
.foot { display: flex; flex-wrap: wrap; gap: 32px; justify-content: space-between; align-items: flex-start; }
.foot img { height: 80px; width: auto; }
.foot nav { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.foot nav a { text-decoration: none; font-weight: 700; color: #EDE6EA; }
.foot nav a:hover { color: var(--orange); }
.foot .legal { width: 100%; border-top: 1px solid #3A3140; padding-top: 20px; color: #A89FA6; font-size: 14px; }

/* forms (modal + signup) */
.field { display: grid; gap: 6px; }
.field label { font: 600 16px/1.2 var(--font-h); color: var(--black); }
.field input, .field select, .field textarea { width: 100%; min-height: 52px; padding: 12px 16px; border-radius: 16px; border: 2px solid #D9CBBB; background: var(--white); font: 600 17px/1.3 var(--font-b); color: var(--ink); }
.field textarea { min-height: 96px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--orange); box-shadow: 0 0 0 4px rgba(251,139,35,.22); }
.field .hint { font-size: 14px; color: var(--mute); font-weight: 600; }
.pw { position: relative; }
.pw input { padding-right: 56px; }
.pw .eye { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; background: transparent; border-radius: 12px; display: grid; place-items: center; cursor: pointer; color: var(--mute); }
.pw .eye:hover { color: var(--black); background: var(--cream); }
.pw .eye svg { width: 24px; height: 24px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid .full { grid-column: 1 / -1; }
@media (max-width: 600px) { .form-grid { grid-template-columns: 1fr; } }
.alert { display: none; padding: 14px 16px; border-radius: 14px; font-weight: 700; font-size: 16px; }
.alert.show { display: block; }
.alert.err { background: #FDE3E1; color: #8E1F17; border: 2px solid #F3B1AB; }
.alert.ok { background: #E3F5EA; color: #145C38; border: 2px solid #A9DDBF; }

dialog.modal { width: min(640px, calc(100vw - 32px)); max-height: calc(100vh - 32px); border: 3px solid var(--black); border-radius: 28px; padding: 0; box-shadow: 0 10px 0 var(--black); background: var(--cream); color: var(--ink); }
dialog.modal::backdrop { background: rgba(14,11,15,.55); }
.modal-in { padding: 30px clamp(18px, 4vw, 34px) 30px; }
.modal h2 { font-size: 38px; margin-right: 50px; }
.modal .x { position: absolute; top: 16px; right: 16px; width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--black); background: var(--white); cursor: pointer; display: grid; place-items: center; }
.modal .x svg { width: 20px; height: 20px; }
.modal form { display: grid; gap: 16px; margin-top: 10px; }

/* pain points: old way crossed out, PeppyPOS way below */
.pains { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 12px; }
.pains li { display: grid; gap: 4px; padding: 14px 18px; border-radius: 18px; background: rgba(255,255,255,.07); border: 2px solid rgba(255,255,255,.12); }
.pains s { color: #A89DA4; font-weight: 700; text-decoration-color: var(--orange); text-decoration-thickness: 3px; }
.pains span { color: var(--white); font: 700 19px/1.3 var(--font-h); padding-left: 26px; position: relative; }
.pains span::before { content: ""; position: absolute; left: 0; top: .2em; width: 16px; height: 16px; border-radius: 50%; background: var(--orange); }

/* "Access anywhere" device row */
.anywhere { margin-top: 24px; padding: 16px 18px; border-radius: 20px; border: 2px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); }
.anywhere b { display: block; font: 700 20px/1.2 var(--font-h); color: var(--orange); margin-bottom: 12px; }
.anywhere ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.anywhere li { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; font-weight: 800; font-size: 14px; line-height: 1.2; }
.anywhere svg { width: 34px; height: 34px; color: var(--white); }
@media (max-width: 480px) { .anywhere ul { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 14px; } }

/* Free plan strip under the paid plans */
.free-plan { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; max-width: 1000px; margin: 0 auto 40px; padding: 22px 28px; background: var(--cream); border: 3px dashed var(--black); border-radius: 28px; }
.free-plan .fp-price b { display: block; font: 700 30px/1 var(--font-h); }
.free-plan .fp-price span { font-weight: 800; color: var(--mute); font-size: 15px; }
.free-plan h3 { margin: 0 0 4px; font: 700 22px/1.2 var(--font-h); }
.free-plan p { margin: 0 0 10px; color: var(--mute); font-weight: 700; }
.free-plan ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 16px; font-weight: 800; font-size: 15px; }
.free-plan li { display: flex; align-items: center; gap: 6px; }
.free-plan li svg { width: 18px; height: 18px; color: var(--green); }
@media (max-width: 760px) { .free-plan { grid-template-columns: 1fr; text-align: left; padding: 20px 18px; } .free-plan .btn { justify-self: stretch; text-align: center; } }

/* sign-up: tax acknowledgement checkbox (required before "Create my store") */
.ack { display: flex; gap: 12px; align-items: flex-start; margin: 18px 0 14px; padding: 14px 16px; border: 2px solid #EADBC8; border-radius: 14px; background: #FFF7EE; font-size: 15px; line-height: 1.5; color: #0E0B0F; cursor: pointer; }
.ack input { flex: none; width: 22px; height: 22px; margin: 1px 0 0; accent-color: #FB8B23; cursor: pointer; }
.ack a { color: #0E0B0F; font-weight: 700; text-decoration: underline; white-space: nowrap; }
.ack.need { border-color: #E5534B; background: #FDF0EF; }

/* contact line (home, pricing, signup): Support in the app + the website message form, never mailto or phone */
.contact-line { text-align: center; color: var(--mute); font-weight: 700; margin: 10px 0 0; font-size: 16px; }
.link-btn { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.link-btn:hover, .link-btn:focus-visible { color: var(--orange); }
.foot .foot-contact { width: 100%; margin: 0; color: #CFC6CC; font-weight: 700; font-size: 15px; }
.per-branch { text-align: center; font-weight: 800; color: var(--black); margin: 40px auto 0; font-size: 17px; max-width: 760px; }
