/* landing.css — Public QR Landing Page */
:root {
  --green:#009345; --green-dark:#007336; --green-deep:#005a28;
  --green-light:#e6f5ed; --red:#cc0000;
}
body { font-family:'DM Sans',system-ui,sans-serif; }

.landing-header {
  background:var(--green-deep); height:62px; position:sticky; top:0; z-index:100;
  box-shadow:0 2px 12px rgba(0,0,0,0.25);
}
[data-bs-theme="dark"] .landing-header { background:#0d0f14; }
.header-brand { display:flex; flex-direction:column; }
.header-firm { font-family:'Playfair Display',Georgia,serif; font-size:18px; font-weight:700; color:#fff; line-height:1.2; }
.header-tagline { font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:rgba(255,255,255,0.5); }
.btn-theme-toggle-sm {
  background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.25);
  border-radius:50%; width:32px; height:32px; display:flex; align-items:center; justify-content:center;
  cursor:pointer; color:rgba(255,255,255,0.8); transition:background .15s;
}
.btn-theme-toggle-sm:hover { background:rgba(255,255,255,0.22); color:#fff; }

.alert-strip { background:var(--red); color:#fff; font-size:13px; font-weight:500; }
.alert-strip strong { font-weight:700; }

.landing-hero {
  background:linear-gradient(150deg,var(--green-deep) 0%,var(--green-dark) 60%,var(--green) 100%);
  color:#fff; padding:3rem 1.25rem 3.5rem;
}
[data-bs-theme="dark"] .landing-hero { background:linear-gradient(150deg,#0d0f14 0%,#00401e 60%,#005a28 100%); }
.hero-eyebrow { font-size:11px; font-weight:600; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,0.65); margin-bottom:12px; text-align:center; }
.hero-title { font-family:'Playfair Display',Georgia,serif; font-size:clamp(24px,5.5vw,38px); font-weight:700; color:#fff; line-height:1.2; margin-bottom:12px; text-align:center; }
.hero-sub { font-size:15px; color:rgba(255,255,255,0.78); max-width:500px; margin:0 auto; line-height:1.65; text-align:center; }

.landing-container { max-width:580px; margin:0 auto; padding:2rem 1.25rem 5rem; }
.landing-card { border-radius:12px!important; }
.field-label { font-size:11px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--bs-secondary-color); margin-bottom:6px; }
.form-control-mono { font-family:'Courier New',monospace; font-size:15px; letter-spacing:1px; }

.step-indicator { display:flex; align-items:center; gap:6px; }
.step-dot { width:8px; height:8px; border-radius:50%; background:var(--bs-border-color); flex-shrink:0; transition:background .2s; }
.step-dot.active { background:var(--green); }
.step-text { font-size:12px; color:var(--bs-secondary-color); font-weight:500; }

.btn-green { background:var(--green); color:#fff; border:none; font-weight:600; }
.btn-green:hover,.btn-green:focus { background:var(--green-dark); color:#fff; }

.case-dl { border-top:1px solid var(--bs-border-color); }
.case-dl-row { display:flex; gap:12px; align-items:flex-start; padding:10px 0; border-bottom:1px solid var(--bs-border-color); font-size:14px; }
.case-dl-row.last { border-bottom:none; }
.case-dl dt { font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--bs-secondary-color); min-width:110px; flex-shrink:0; padding-top:2px; }
.case-dl dd { margin:0; flex:1; word-break:break-word; }
.text-green { color:var(--green-dark)!important; }
[data-bs-theme="dark"] .text-green { color:#4cd98a!important; }
.bg-green-subtle { background:var(--green-light)!important; }
[data-bs-theme="dark"] .bg-green-subtle { background:rgba(0,147,69,0.15)!important; }

.cta-card { background:linear-gradient(140deg,var(--green-deep) 0%,var(--green-dark) 100%)!important; }
[data-bs-theme="dark"] .cta-card { background:linear-gradient(140deg,#0d0f14 0%,#00401e 100%)!important; }
.cta-eyebrow { font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:rgba(255,255,255,0.6); }
.cta-title { font-family:'Playfair Display',serif; font-size:22px; font-weight:700; color:#fff; }
.cta-body { font-size:14px; color:rgba(255,255,255,0.75); line-height:1.65; }

.trust-badge { font-size:12px; color:var(--bs-secondary-color); display:flex; align-items:center; gap:4px; }

.screen { display:none; }
.screen.active { display:block; animation:fadeUp .3s ease; }
@keyframes fadeUp { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }

.float-btns { position:fixed; bottom:20px; right:16px; z-index:999; display:flex; flex-direction:column; gap:10px; }
.float-btn { width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:20px; text-decoration:none; box-shadow:0 4px 16px rgba(0,0,0,0.28); transition:transform .15s; border:none; }
.float-btn:hover { transform:translateY(-3px) scale(1.08); }
.float-btn-web { background:var(--green); color:#fff; }
.float-btn-phone { background:var(--red); color:#fff; }

@media(max-width:400px) {
  .landing-hero { padding:2.5rem 1rem 3rem; }
  .case-dl dt { min-width:90px; }
}
