/* ============ Solutions: real NFC card designs ============ */
.solution{padding:0;overflow:hidden;display:flex;flex-direction:column}
.solution-stage{position:relative;display:grid;place-items:center;width:100%;height:250px;padding:0;border:0;border-bottom:1px solid var(--line);cursor:pointer;perspective:1100px;color:inherit;
  background:radial-gradient(70% 80% at 50% 45%,color-mix(in srgb,var(--accent) 13%,transparent) 0%,transparent 70%),linear-gradient(180deg,#ffffff05,transparent)}
.solution-stage .nfc-card{width:74%;transform:rotateX(24deg) rotateZ(-9deg) translateY(-4px);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s;filter:drop-shadow(0 22px 26px #000b);z-index:1}
.solution:hover .solution-stage .nfc-card,.solution-stage:focus-visible .nfc-card{transform:rotateX(6deg) rotateZ(-3deg) translateY(-14px) scale(1.04);filter:drop-shadow(0 34px 34px #000c)}
.solution-stage .nfc-card{animation:stage-float 6s ease-in-out infinite}
.solution--reviews .solution-stage .nfc-card{animation-delay:-2s}
.solution--contacts .solution-stage .nfc-card{animation-delay:-4s}
@keyframes stage-float{0%,100%{translate:0 0}50%{translate:0 -7px}}
.stage-shadow{position:absolute;left:22%;right:22%;bottom:34px;height:14px;border-radius:50%;background:#000;filter:blur(12px);opacity:.55}
.solution-info{padding:24px 26px 26px;display:flex;flex-direction:column;flex:1}
.solution-info .solution-top{margin-bottom:22px}
.solution-num{font-size:11px;color:var(--accent);letter-spacing:.1em}
.solution-info .solution-tags{border:0;padding:0;gap:8px}
.solution-info .solution-tags span{font-size:8px;letter-spacing:.12em;padding:5px 9px;border:1px solid var(--line);border-radius:20px;color:var(--palette-979f91,#979f91)}
.solution-info h3{font-size:25px;margin-bottom:12px}
.solution-info p{font-size:13px;max-width:none;margin-bottom:22px;flex:1}
.solution-info .solution-link{margin:0;font-size:12px;align-self:flex-start;padding:11px 16px;border:1px solid var(--line);border-radius:30px;transition:border-color .25s,background .25s,color .25s}
.solution-info .solution-link:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:#fff}

/* ---------- Physical card ---------- */
.nfc-card{container-type:inline-size;aspect-ratio:1.586;width:100%;perspective:1400px}
.nfc-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s cubic-bezier(.3,.8,.25,1)}
.nfc-card.is-flipped .nfc-card-inner{transform:rotateY(180deg)}
.nfc-face{position:absolute;inset:0;border-radius:5.5cqw;padding:7cqw 7.5cqw;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:inset 0 0 0 1px #ffffff1f,inset 0 1px 0 #ffffff26}
.nfc-face:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,#ffffff1c 48%,transparent 60%);transform:translateX(-80%);transition:transform 1s ease;pointer-events:none}
.solution:hover .nfc-face:after,.demo-card:hover .nfc-face:after{transform:translateX(80%)}
.nfc-back{transform:rotateY(180deg);align-items:center;justify-content:center;text-align:center;gap:3cqw}
.nfc-face svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.nc-corner{position:absolute;top:6.5cqw;right:7cqw;width:8cqw;height:8cqw;opacity:.8}
.nc-tap{margin-top:auto;display:flex;align-items:center;gap:2.6cqw;font-size:3.6cqw;font-weight:600;letter-spacing:.02em}
.nc-tap i{width:8cqw;height:8cqw;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;flex-shrink:0}
.nc-tap i svg{width:4.6cqw;height:4.6cqw}
.nc-ring{width:20cqw;height:20cqw;border-radius:50%;display:grid;place-items:center;border:1px solid currentColor;position:relative}
.nc-ring:before,.nc-ring:after{content:'';position:absolute;inset:-4cqw;border-radius:50%;border:1px solid currentColor;opacity:.35}
.nc-ring:after{inset:-8cqw;opacity:.15}
.nc-ring svg{width:10cqw;height:10cqw}
.nc-back-hint{font-size:4.4cqw;font-weight:700;margin-top:5cqw;max-width:70%;line-height:1.2}
.nc-powered{position:absolute;bottom:5.5cqw;font-size:2.8cqw;letter-spacing:.3em;opacity:.55}

/* Menu card: warm dark café */
.nfc-card--menu .nfc-face{background:radial-gradient(90% 120% at 100% 0%,#3a2d22 0%,transparent 55%),linear-gradient(150deg,#211a15,#120e0b);color:#f1e6d6}
.nfc-card--menu .nc-brand{font-size:3.2cqw;letter-spacing:.32em;font-weight:700;color:#d6b98f}
.nfc-card--menu .nc-word{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;font-size:17cqw;line-height:1;margin-top:5cqw;letter-spacing:-.02em}
.nfc-card--menu .nc-tap{color:#d6b98f}
.nfc-card--menu .nfc-back{background:linear-gradient(150deg,#d6b98f,#b8955f);color:#1b140f}

/* Review card: fresh green / white */
.nfc-card--reviews .nfc-face{background:radial-gradient(80% 110% at 0% 100%,#d8ecc4 0%,transparent 60%),linear-gradient(150deg,#ffffff,#eef5e6);color:#15210f}
.nfc-card--reviews .nc-badge{align-self:flex-start;font-size:3.4cqw;font-weight:800;letter-spacing:.08em;background:#2f9e3a;color:#fff;border-radius:1.6cqw;padding:1.2cqw 2.4cqw}
.nfc-card--reviews .nc-corner{color:#2f9e3a}
.nfc-card--reviews .nc-title{font-size:9.5cqw;font-weight:800;letter-spacing:-.03em;line-height:1;margin-top:4.5cqw}
.nfc-card--reviews .nc-stars{display:flex;gap:1.4cqw;margin-top:3cqw}
.nfc-card--reviews .nc-stars svg{width:6.4cqw;height:6.4cqw;fill:#f5a623;stroke:#f5a623}
.nfc-card--reviews .nc-tap{color:#2f9e3a}
.nfc-card--reviews .nfc-back{background:linear-gradient(150deg,#2f9e3a,#1f7a29);color:#fff}

/* Business card: black + theme accent */
.nfc-card--contacts .nfc-face{background:radial-gradient(90% 130% at 100% 100%,color-mix(in srgb,var(--accent) 30%,transparent) 0%,transparent 55%),linear-gradient(150deg,#1a1d19,#0b0c0b);color:#f2f4ef}
.nfc-card--contacts .nc-avatar{width:13cqw;height:13cqw;border-radius:50%;display:grid;place-items:center;font-size:4.4cqw;font-weight:800;color:#0b0c0b;background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 50%,#fff))}
.nfc-card--contacts .nc-corner{color:var(--accent)}
.nfc-card--contacts .nc-name{font-size:7.4cqw;font-weight:800;letter-spacing:-.02em;margin-top:4cqw;line-height:1.05}
.nfc-card--contacts .nc-role{font-size:3.6cqw;opacity:.65;margin-top:1.2cqw}
.nfc-card--contacts .nc-tap{color:var(--accent)}
.nfc-card--contacts .nfc-back{background:linear-gradient(150deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#000));color:#0b0c0b}

/* ---------- Design dialog ---------- */
.example-dialog.demo-v2{width:920px;max-width:calc(100% - 24px);max-height:92svh}
.demo-wrap{display:grid;grid-template-columns:1.25fr 1fr}
.demo-visual{position:relative;padding:34px 30px 26px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;
  background:radial-gradient(70% 70% at 50% 40%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%);border-right:1px solid var(--line)}
.demo-stage{display:flex;align-items:center;gap:26px;width:100%;justify-content:center}
.demo-card{width:min(330px,100%);cursor:pointer;filter:drop-shadow(0 26px 30px #000b);perspective:1200px}
.demo-card .nfc-card{transform:rotateX(8deg) rotateZ(-4deg);transition:transform .6s}
.demo-card:hover .nfc-card{transform:rotateX(0) rotateZ(0) scale(1.02)}
.demo-controls{display:flex;align-items:center;gap:14px;font-size:11px;color:var(--palette-979f91,#979f91)}
.demo-flip{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:30px;border:1px solid var(--line);background:#ffffff08;color:var(--text);font-size:12px;cursor:pointer;transition:border-color .2s,background .2s}
.demo-flip:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.demo-flip svg{width:14px;height:14px;transition:transform .6s}
.demo-flip.on svg{transform:rotate(180deg)}
.demo-side{letter-spacing:.12em;text-transform:uppercase;font-size:9px}
.demo-phone-wrap{display:flex;flex-direction:column;align-items:center;gap:10px}
.demo-phone-label{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--palette-979f91,#979f91)}
.demo-phone{width:186px;height:362px;flex-shrink:0;border-radius:30px;padding:6px;background:#1f2420;border:1px solid #7b8375;box-shadow:0 24px 40px #000a;position:relative}
.demo-phone:before{content:'';position:absolute;top:13px;left:50%;width:56px;height:16px;margin-left:-28px;border-radius:10px;background:#111;z-index:3}
.demo-screen{width:100%;height:100%;border-radius:24px;overflow:hidden;position:relative;font-size:11px;line-height:1.25;-webkit-font-smoothing:antialiased}
.demo-text{padding:34px 30px 30px;display:flex;flex-direction:column}
.demo-text .eyebrow{font-size:9px;margin-bottom:14px;color:var(--accent)}
.demo-text h2{font-size:34px;letter-spacing:-1px;line-height:1.05;margin:0 0 14px}
.demo-text>p{font-size:13px;line-height:1.75;color:var(--palette-a2ac99,#a2ac99);margin:0 0 18px}
.demo-feats{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:10px}
.demo-feats li{display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45}
.demo-feats li svg{width:16px;height:16px;flex-shrink:0;color:var(--accent);margin-top:1px}
.demo-order{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 20px;border-radius:12px;background:var(--accent);color:var(--bg,#0a0c09);font-weight:700;font-size:14px;text-decoration:none;transition:transform .2s,box-shadow .2s}
.demo-order:hover{transform:translateY(-2px);box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 35%,transparent)}
.demo-order svg{width:18px;height:18px}
.demo-note{font-size:11px;color:var(--palette-8d9f7f,#8d9f7f);margin-top:12px;text-align:center}

/* Screens inside the dialog phone */
.demo-vc{height:100%;background:#f6f7f3;color:#141a12}
.demo-vc .vc-top{height:8.2em;padding-top:3.4em}
.demo-pr{height:100%;background:#f3f6ee;color:#17220f}
.demo-pr .pr-rate svg{animation:star-in 4s ease-out infinite}
.demo-pr .pr-rate .rs2{animation-delay:.25s}.demo-pr .pr-rate .rs3{animation-delay:.5s}.demo-pr .pr-rate .rs4{animation-delay:.75s}.demo-pr .pr-rate .rs5{animation-delay:1s}
@keyframes star-in{0%,15%{color:#c4ccb9;fill:transparent;transform:scale(1)}25%{color:#f5a623;fill:#f5a623;transform:scale(1.3)}32%,90%{color:#f5a623;fill:#f5a623;transform:scale(1)}100%{color:#c4ccb9;fill:transparent}}
.dm{height:100%;background:#f4f0e8;color:#1d1712;display:flex;flex-direction:column}
.dm-head{padding:3.6em 1.3em 1.1em;background:linear-gradient(150deg,#211a15,#120e0b);color:#f1e6d6}
.dm-brand{font-size:.68em;letter-spacing:.28em;font-weight:700;color:#d6b98f}
.dm-title{display:block;font-family:Georgia,serif;font-style:italic;font-weight:400;font-size:2.6em;line-height:1;margin-top:.15em}
.dm-cats{display:flex;gap:.4em;padding:.9em 1.1em .5em}
.dm-cats span{font-size:.75em;font-weight:700;padding:.45em .8em;border-radius:2em;background:#e8e0d3;color:#6d5f50}
.dm-cats span.on{background:#1d1712;color:#f1e6d6}
.dm-item{display:flex;align-items:center;gap:.65em;margin:0 1.1em;padding:.7em 0;border-bottom:1px solid #e3dacb}
.dm-thumb{width:3.1em;height:3.1em;border-radius:.8em;flex-shrink:0}
.dm-thumb.t1{background:radial-gradient(circle at 50% 50%,#f3e3c8 0 32%,#8a5a35 34% 52%,#e9dccb 54%)}
.dm-thumb.t2{background:radial-gradient(ellipse at 50% 60%,#e0a85c 0 45%,#c27f35 47% 55%,#efe4d3 57%)}
.dm-thumb.t3{background:radial-gradient(circle at 40% 45%,#f6d24a 0 16%,#fff 18% 34%,#7da35a 36% 44%,#efe4d3 46%)}
.dm-item span{flex:1;min-width:0}
.dm-item b{display:block;font-size:.95em}
.dm-item small{display:block;font-size:.66em;color:#7d6f60;margin-top:.2em;line-height:1.3}
.dm-item em{font-style:normal;font-weight:800;font-size:.85em;white-space:nowrap}

@media(max-width:860px){
  .demo-wrap{grid-template-columns:1fr}
  .demo-visual{border-right:0;border-bottom:1px solid var(--line);padding:26px 18px 22px}
  .demo-text{padding:24px 22px 26px}
  .demo-text h2{font-size:28px}
}
@media(max-width:560px){
  .demo-stage{flex-direction:column;gap:22px}
  .demo-card{width:min(300px,92%)}
  .solution-stage{height:220px}
  .solution-info{padding:22px 22px 24px}
}
@media(max-width:1100px) and (min-width:661px){.solution-stage{height:200px}.solution-info h3{font-size:21px}}
@media (prefers-reduced-motion:reduce){.solution-stage .nfc-card{animation:none}}

/* Links to service pages */
.solution-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.solution-more{font-size:11px;color:var(--palette-979f91,#979f91);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line);transition:color .2s,text-decoration-color .2s}
.solution-more:hover{color:var(--accent);text-decoration-color:var(--accent)}
.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.footer-links a{font-size:10px;color:var(--palette-7c8d6e,#7c8d6e);transition:color .2s}
.footer-links a:hover{color:var(--accent)}
@media(max-width:660px){.footer-inner{flex-wrap:wrap;padding-top:22px;padding-bottom:22px}.footer-links{order:3;width:100%}}
