* { box-sizing: border-box; }
html, body { min-height: 100%; margin: 0; }
body { font-family: Inter, "Segoe UI", system-ui, sans-serif; }
.nfc-page { --nfc-background:#f7f3eb; --nfc-card:#fffdf9; --nfc-text:#2d2924; --nfc-secondary:#8a713d; --nfc-button:#b08a2e; --nfc-button-hover:#8f6e20; --nfc-button-text:#fff; --nfc-button-radius:12px; display:flex; min-height:100vh; align-items:center; justify-content:center; padding:24px; background:var(--nfc-background); color:var(--nfc-text); }
.nfc-card { display:flex; width:100%; align-items:center; flex-direction:column; padding:32px 24px; border-radius:22px; background:var(--nfc-card); text-align:center; }
.nfc-width-compact .nfc-card { max-width:360px; }
.nfc-width-normal .nfc-card { max-width:440px; }
.nfc-width-wide .nfc-card { max-width:560px; }
.nfc-shadow-none .nfc-card { box-shadow:none; }
.nfc-shadow-soft .nfc-card { box-shadow:0 12px 36px rgb(0 0 0 / 14%); }
.nfc-shadow-strong .nfc-card { box-shadow:0 22px 65px rgb(0 0 0 / 25%); }
.nfc-logo { display:block; align-self:center; height:auto; max-width:100%; max-height:240px; margin:0 auto 20px; object-fit:contain; object-position:center; }
.nfc-name { width:100%; margin:0; color:var(--nfc-text); font-size:clamp(22px,6vw,30px); line-height:1.15; letter-spacing:-.02em; overflow-wrap:normal; text-align:center; text-wrap:balance; }
.nfc-subtitle, .nfc-label { width:100%; margin:10px 0 0; color:var(--nfc-secondary); line-height:1.5; text-align:center; }
.nfc-label { margin-top:28px; font-size:13px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.nfc-phone { width:100%; margin:8px 0 18px; color:var(--nfc-text); font-size:clamp(27px,8vw,38px); font-weight:800; letter-spacing:.04em; overflow-wrap:anywhere; text-align:center; }
.nfc-button { display:flex; width:100%; min-height:48px; align-items:center; justify-content:center; gap:9px; margin-top:12px; padding:12px 18px; border:0; border-radius:var(--nfc-button-radius); background:var(--nfc-button); color:var(--nfc-button-text); font:700 15px/1.3 inherit; text-decoration:none; cursor:pointer; transition:background .2s, transform .2s; }
.nfc-button-has-icon { display:grid; grid-template-columns:1.35em minmax(0,1fr) 1.35em; column-gap:9px; }
.nfc-button-icon-slot { display:flex; align-items:center; justify-content:center; }
.nfc-button-label { min-width:0; text-align:center; }
.nfc-button-icon { flex:none; font-size:1.35em; line-height:1; }
.nfc-button:hover { background:var(--nfc-button-hover); transform:translateY(-1px); }
.nfc-button:focus-visible { outline:3px solid var(--nfc-text); outline-offset:3px; }
.nfc-button:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.nfc-button-secondary { background:transparent; color:var(--nfc-button); box-shadow:inset 0 0 0 2px var(--nfc-button); }
.nfc-button-secondary:hover { background:var(--nfc-button); color:var(--nfc-button-text); }
.nfc-links { width:100%; margin-top:24px; text-align:center; }
.nfc-message { width:100%; min-height:22px; margin:0; font-size:13px; text-align:center; }
.nfc-message.is-success { color:#267346; }
.nfc-message.is-error { color:#a03737; }
.nfc-steps { width:max-content; max-width:100%; margin:24px auto 0; padding-left:24px; color:var(--nfc-secondary); text-align:left; font-size:13px; line-height:1.6; }
.nfc-footer { width:100%; margin:28px 0 0; color:var(--nfc-secondary); font-size:11px; text-align:center; }
.nfc-unavailable { display:flex; min-height:100vh; align-items:center; justify-content:center; padding:24px; background:#f3f2ee; color:#292b2e; text-align:center; }
.nfc-unavailable div { max-width:420px; padding:30px; border:1px solid #ddd9d0; border-radius:18px; background:#fff; box-shadow:0 12px 36px rgb(0 0 0 / 8%); }
.nfc-unavailable h1 { margin:0 0 8px; font-size:24px; }
.nfc-unavailable p { margin:0; color:#6e7073; line-height:1.5; }
@media (max-width:480px) { .nfc-page { align-items:stretch; padding:0; } .nfc-card { min-height:100vh; border-radius:0; padding:28px 20px; } }
