/* Artizen LaunchKit. Everything is scoped under .alk / .alk-dialog with two-class
   selectors so the Elementor kit's element rules (e.g. .elementor-kit-N button,
   specificity 0,1,1) cannot restyle the tools. Fonts inherit from the theme. */
.alk, .alk-dialog {
  --alk-ink: #1a202c; --alk-muted: #4a5568; --alk-line: #e2e8f0; --alk-bg: #f7fafc; --alk-surface: #fff;
  --alk-primary: #1e40af; --alk-primary-soft: #eff4ff; --alk-accent: #E86A33; --alk-accent-hover: #D2691E;
  /* Text and buttons use the darker brand orange: white on #E86A33 is 3.2:1 (fails AA); on #C2410C it is 5.2:1. */
  --alk-cta: #C2410C; --alk-cta-hover: #9A3412;
  --alk-good: #15803d; --alk-bad: #b91c1c;
  --alk-head: "Space Grotesk", system-ui, sans-serif;
  color: var(--alk-ink); font-size: 16px; line-height: 1.55; box-sizing: border-box;
}
.alk *, .alk-dialog * { box-sizing: border-box; }
.alk { max-width: 1200px; margin: 0 auto; padding: 0 20px 48px; }

/* intro */
.alk .alk-intro { padding: 32px 0 24px; max-width: 820px; }
.alk .alk-eyebrow { margin: 0 0 8px; color: var(--alk-cta); font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; }
.alk .alk-intro h1 { font-family: var(--alk-head); font-size: clamp(1.9rem, 4vw, 2.75rem); line-height: 1.1; letter-spacing: -.02em; margin: 0 0 12px; color: var(--alk-ink); text-wrap: balance; }
.alk .alk-intro p { margin: 0; color: var(--alk-muted); font-size: 1.1rem; max-width: 62ch; }

/* layout */
.alk .alk-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 24px; align-items: start; }
@media (max-width: 900px) { .alk .alk-grid { grid-template-columns: 1fr; } }
.alk .alk-panel { background: var(--alk-surface); border: 1px solid var(--alk-line); border-radius: 14px; padding: 24px; min-width: 0; }
@media (max-width: 480px) { .alk { padding: 0 14px 40px; } .alk .alk-panel { padding: 18px 16px; } }
.alk .alk-panel h2 { font-family: var(--alk-head); font-size: 1.3rem; line-height: 1.25; margin: 0 0 4px; color: var(--alk-ink); }
.alk .alk-h3 { font-family: var(--alk-head); font-size: 1.1rem; margin: 20px 0 6px; color: var(--alk-ink); }
.alk .alk-sub { color: var(--alk-muted); margin: 0 0 16px; font-size: .95rem; }
.alk .alk-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin: 16px 0 10px; }
.alk .alk-panel > .alk-row:first-child { margin-top: 0; }
.alk .alk-row h2 { margin: 0; }
.alk .alk-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.alk .alk-gap { margin-top: 14px; }

/* fields */
.alk .alk-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.alk .alk-full { grid-column: 1 / -1; }
@media (max-width: 460px) { .alk .alk-fields { grid-template-columns: 1fr; } }
.alk label, .alk .alk-label, .alk-dialog label { display: block; font-weight: 600; font-size: .9rem; margin: 0 0 5px; color: var(--alk-ink); }
.alk .alk-hint, .alk-dialog .alk-hint { font-weight: 400; color: var(--alk-muted); }
.alk .alk-f input, .alk .alk-f select, .alk .alk-f textarea, .alk .alk-item input,
.alk-dialog .alk-f input, .alk-dialog .alk-f select {
  width: 100%; font: inherit; font-size: 16px; /* 16px stops iOS zooming on focus */
  color: var(--alk-ink); background: var(--alk-bg); border: 1px solid #cbd5e0; border-radius: 8px;
  padding: 10px 12px; min-height: 44px; margin: 0; box-shadow: none; line-height: 1.4;
}
.alk .alk-f input[type="color"] { padding: 4px; height: 44px; cursor: pointer; }
.alk .alk-f textarea { min-height: 88px; resize: vertical; }
.alk input:focus, .alk select:focus, .alk textarea:focus, .alk-dialog input:focus, .alk-dialog select:focus {
  border-color: var(--alk-primary); outline: none; box-shadow: 0 0 0 3px rgba(30, 64, 175, .18);
}
.alk :focus-visible, .alk-dialog :focus-visible { outline: 3px solid var(--alk-accent); outline-offset: 2px; }
.alk input[type="number"] { font-variant-numeric: tabular-nums; }

/* chips + buttons */
.alk .alk-chips { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 18px; }
.alk .alk-chip {
  font: inherit; font-size: .9rem; font-weight: 500; line-height: 1.2; min-height: 40px; padding: 8px 14px; margin: 0;
  border-radius: 8px; border: 1px solid #cbd5e0; background: var(--alk-surface); color: var(--alk-ink); cursor: pointer;
  text-transform: none; letter-spacing: 0; box-shadow: none;
}
.alk .alk-chip:hover { border-color: var(--alk-primary); color: var(--alk-primary); background: var(--alk-surface); }
.alk .alk-chip[aria-pressed="true"] { background: var(--alk-primary); border-color: var(--alk-primary); color: #fff; }
.alk .alk-btn, .alk-dialog .alk-btn {
  font: inherit; font-family: var(--alk-head); font-weight: 600; font-size: 1rem; line-height: 1.2; min-height: 44px; padding: 12px 22px; margin: 0;
  border-radius: 8px; border: 1px solid transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; text-decoration: none; text-transform: none; letter-spacing: 0; box-shadow: none; white-space: nowrap;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.alk .alk-primary, .alk-dialog .alk-primary { background: var(--alk-cta); color: #fff; }
.alk .alk-primary:hover, .alk-dialog .alk-primary:hover { background: var(--alk-cta-hover); color: #fff; }
.alk .alk-ghost, .alk-dialog .alk-ghost { background: var(--alk-surface); border-color: #cbd5e0; color: var(--alk-ink); }
.alk .alk-ghost:hover, .alk-dialog .alk-ghost:hover { border-color: var(--alk-primary); color: var(--alk-primary); background: var(--alk-surface); }
.alk .alk-small { min-height: 40px; padding: 8px 14px; font-size: .9rem; }
.alk-dialog .alk-btn:disabled { opacity: .6; cursor: progress; }

/* results */
.alk .alk-big { display: flex; gap: 14px; flex-wrap: wrap; margin: 0 0 18px; }
.alk .alk-big > div { flex: 1; min-width: 150px; padding: 14px 16px; border-radius: 12px; background: var(--alk-bg); border: 1px solid var(--alk-line); }
.alk .alk-k { font-size: .8rem; color: var(--alk-muted); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.alk .alk-v { font-family: var(--alk-head); font-weight: 700; font-size: 2.1rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.alk .alk-big .alk-hl { background: var(--alk-primary-soft); border-color: var(--alk-primary); }
.alk .alk-hl .alk-v { color: var(--alk-primary); }
.alk .alk-bar { display: flex; height: 14px; border-radius: 7px; overflow: hidden; margin: 6px 0 10px; background: var(--alk-line); }
.alk .alk-bar span { display: block; height: 100%; }
.alk .alk-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: .88rem; color: var(--alk-muted); }
.alk .alk-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.alk .alk-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; margin: 14px 0 0; border: 0; }
.alk .alk-table td, .alk .alk-table th { padding: 8px 4px; border: 0; border-bottom: 1px solid var(--alk-line); text-align: left; font-size: .95rem; background: transparent; }
.alk .alk-table th { font-weight: 700; }
.alk .alk-n { text-align: right; }
.alk .alk-table td.alk-n, .alk .alk-table th.alk-n { text-align: right; }
.alk .alk-note { font-size: .85rem; color: var(--alk-muted); margin: 10px 0 0; }
.alk .alk-warn { color: #9a3412; }
.alk .alk-count { font-size: .9rem; font-weight: 600; margin: 8px 0 0; color: var(--alk-good); }
.alk .alk-count.alk-over { color: var(--alk-bad); }

/* CTAs */
.alk .alk-cta { margin-top: 20px; padding: 16px; border-radius: 12px; background: var(--alk-primary-soft); display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.alk .alk-cta p { margin: 0; flex: 1 1 240px; font-size: .95rem; }
.alk .alk-cta p b { display: block; font-family: var(--alk-head); font-size: 1.05rem; }
.alk .alk-offer { margin-top: 14px; font-size: .9rem; color: var(--alk-muted); }
.alk .alk-offer b { color: var(--alk-ink); }
.alk .alk-offer a, .alk .alk-note a { color: var(--alk-primary); font-weight: 600; }

/* quote */
.alk .alk-items { display: grid; gap: 8px; }
.alk .alk-item { display: grid; grid-template-columns: minmax(0, 1fr) 72px 100px 44px; gap: 6px; }
.alk .alk-item button {
  font: inherit; font-size: 1.2rem; line-height: 1; min-height: 44px; padding: 0; margin: 0; border: 1px solid #cbd5e0;
  background: var(--alk-surface); color: var(--alk-muted); border-radius: 8px; cursor: pointer;
}
.alk .alk-item button:hover { color: var(--alk-bad); border-color: var(--alk-bad); background: var(--alk-surface); }
@media (max-width: 520px) {
  .alk .alk-item { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px; padding-bottom: 8px; border-bottom: 1px dashed var(--alk-line); }
  .alk .alk-item input[data-f="d"] { grid-column: 1 / -1; }
}
.alk .alk-doc { background: #fff; color: #1a202c; border-radius: 10px; padding: 24px; border: 1px solid var(--alk-line); font-size: .95rem; overflow-wrap: anywhere; }
@media (max-width: 480px) { .alk .alk-doc { padding: 16px; } }
.alk .alk-doc h3, .alk .alk-docbiz { font-family: var(--alk-head); font-size: 1.5rem; font-weight: 700; line-height: 1.25; margin: 0; color: #1a202c; }
.alk .alk-meta { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 6px 0 12px; color: var(--alk-muted); }
.alk .alk-totals { max-width: 300px; margin-left: auto; }
.alk .alk-totals td { border-bottom: 0; padding: 4px; }
.alk .alk-grand td { font-weight: 800; font-size: 1.05rem; border-top: 2px solid #1a202c; }
.alk .alk-notes { margin: 16px 0 0; white-space: pre-wrap; }
.alk .alk-foot { margin-top: 20px; padding-top: 12px; border-top: 1px solid var(--alk-line); font-size: .8rem; color: var(--alk-muted); display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.alk .alk-pre { white-space: pre-wrap; line-height: 1.6; }

/* scorecard */
.alk .alk-checks { display: grid; gap: 8px; }
.alk .alk-check { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--alk-line); border-radius: 10px; background: var(--alk-bg); cursor: pointer; margin: 0; font-weight: 400; }
.alk .alk-check:has(input:checked) { border-color: var(--alk-primary); background: var(--alk-primary-soft); }
.alk .alk-check input { width: 22px; height: 22px; margin: 1px 0 0; flex: none; accent-color: var(--alk-primary); }
.alk .alk-check b { display: block; font-size: .98rem; }
.alk .alk-check small { color: var(--alk-muted); font-size: .88rem; }
.alk .alk-score { display: flex; gap: 20px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.alk .alk-score p { margin: 8px 0 0; max-width: 36ch; }
.alk .alk-ring { width: 132px; height: 132px; flex: none; font-family: var(--alk-head); }
@media (prefers-reduced-motion: no-preference) { .alk .alk-ring circle { transition: stroke-dashoffset .5s ease, stroke .3s ease; } }
.alk .alk-pill { display: inline-block; padding: 4px 12px; border-radius: 999px; font-weight: 700; font-size: .85rem; color: #fff; }
.alk .alk-gaps { display: grid; gap: 8px; }
.alk .alk-gapitem { border: 1px solid var(--alk-line); padding: 12px 14px; background: var(--alk-bg); border-radius: 10px; font-size: .95rem; }
.alk .alk-gapitem.alk-good { background: #f0fdf4; border-color: #bbf7d0; }
.alk .alk-gapitem b { display: block; }

/* qr */
.alk .alk-qrbox { background: var(--alk-bg); border: 1px solid var(--alk-line); border-radius: 12px; padding: 18px; display: flex; justify-content: center; min-height: 200px; align-items: center; }
.alk .alk-qrbox img { width: 100%; max-width: 340px; height: auto; border-radius: 8px; box-shadow: 0 2px 12px rgba(0, 0, 0, .12); }
.alk .alk-qrbox img:not([src]) { visibility: hidden; aspect-ratio: 1200 / 1830; }
.alk #qr-target { overflow-wrap: anywhere; }

/* more tools + hub */
.alk .alk-more { margin-top: 40px; }
.alk .alk-more h2 { font-family: var(--alk-head); font-size: 1.4rem; margin: 0 0 14px; }
.alk .alk-more ul, .alk .alk-hub { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.alk .alk-hub { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 18px; padding: 24px 0; }
.alk .alk-more a, .alk .alk-hub a {
  display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 16px 18px; border: 1px solid var(--alk-line); border-radius: 12px;
  background: var(--alk-surface); color: var(--alk-ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease;
}
.alk .alk-hub a { padding: 22px; }
.alk .alk-more a:hover, .alk .alk-hub a:hover { border-color: var(--alk-primary); }
@media (prefers-reduced-motion: no-preference) { .alk .alk-hub a:hover { transform: translateY(-2px); } }
.alk .alk-more b, .alk .alk-hub b { font-family: var(--alk-head); font-size: 1.05rem; color: var(--alk-ink); }
.alk .alk-hub b { font-size: 1.25rem; }
.alk .alk-more span, .alk .alk-hub span { color: var(--alk-muted); font-size: .92rem; }
.alk .alk-hub em { margin-top: auto; padding-top: 10px; color: var(--alk-primary); font-style: normal; font-weight: 700; }

/* dialog */
.alk-dialog { border: 0; border-radius: 14px; padding: 0; max-width: 460px; width: calc(100% - 28px); max-height: calc(100dvh - 28px); background: #fff; box-shadow: 0 20px 50px rgba(15, 23, 42, .35); }
.alk-dialog::backdrop { background: rgba(15, 23, 42, .55); }
.alk-dialog form { padding: 22px; display: grid; gap: 12px; margin: 0; }
.alk-dialog .alk-dlg-actions { position: sticky; bottom: 0; background: #fff; padding: 10px 0 4px; margin-bottom: -4px; }
/* form h2 (0,2,1) beats the kit's .elementor-kit-N h2 (0,1,1) */
.alk-dialog form h2 { font-family: var(--alk-head); margin: 0; font-size: 1.35rem; line-height: 1.25; letter-spacing: -.01em; color: var(--alk-ink); }
.alk-dialog .alk-sub { margin: -4px 0 0; color: var(--alk-muted); font-size: .95rem; }
.alk-dialog .alk-audit { display: grid; gap: 12px; }
.alk-dialog .alk-audit[hidden] { display: none; }
.alk-dialog .alk-consent { display: flex; gap: 10px; line-height: 1.45; font-size: .85rem; font-weight: 400; color: var(--alk-muted); align-items: flex-start; margin: 0; cursor: pointer; }
.alk-dialog .alk-consent input { width: 20px; height: 20px; margin: 1px 0 0; flex: none; accent-color: var(--alk-primary); }
.alk-dialog .alk-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.alk-dialog .alk-err { color: var(--alk-bad); margin: 0; font-size: .9rem; }
.alk-dialog .alk-err:empty { display: none; }
.alk-dialog .alk-ok { background: var(--alk-primary-soft); border-radius: 10px; padding: 12px 14px; font-size: .95rem; }
.alk-dialog .alk-fine { margin: 0; font-size: .8rem; color: var(--alk-muted); }
.alk-dialog .alk-fine a { color: var(--alk-primary); }
.alk-dialog .alk-dlg-actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }

/* print: only the quote document (quote.js copies it into #alk-print-root) */
@media print {
  body.alk-printing > :not(#alk-print-root) { display: none !important; }
  body.alk-printing #alk-print-root { display: block; max-width: none; padding: 0; margin: 0; }
  body.alk-printing #alk-print-root .alk-doc { border: 0; padding: 0; }
  body.alk-printing #alk-print-root tr { break-inside: avoid; }
}
#alk-print-root { display: none; }

/* ---- Laws of UX pass ---- */
/* Jakob's Law: $ / % / unit inside the field */
.alk .alk-affix { position: relative; display: block; }
.alk .alk-affix .alk-pre, .alk .alk-affix .alk-suf { position: absolute; top: 50%; transform: translateY(-50%); color: var(--alk-muted); font-size: .95rem; pointer-events: none; }
.alk .alk-affix .alk-pre { left: 12px; }
.alk .alk-affix .alk-suf { right: 12px; }
/* (0,5,1): the Elementor kit's input:not([type=button]):not([type=submit]) rule is (0,3,1) */
.alk .alk-f .alk-affix.alk-has-pre input[id] { padding-left: 28px; }
.alk .alk-f .alk-affix.alk-has-suf input[id] { padding-right: 52px; }
.alk .alk-check b { line-height: 1.35; }
.alk .alk-check small { display: block; line-height: 1.45; margin-top: 3px; }
/* Tesler's + Hick's: optional fields folded */
.alk .alk-morefields { margin: 16px 0 0; border-top: 1px solid var(--alk-line); padding-top: 4px; }
.alk .alk-morefields > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: .92rem; color: var(--alk-primary); list-style: none; }
.alk .alk-morefields > summary::-webkit-details-marker { display: none; }
.alk .alk-morefields > summary::before { content: "+"; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 6px; background: var(--alk-primary-soft); font-weight: 700; }
.alk .alk-morefields[open] > summary::before { content: "\2212"; }
.alk .alk-morefields > .alk-fields { padding: 6px 0 4px; }
/* Von Restorff: the one number that matters is the biggest thing on the panel */
.alk .alk-big .alk-lead-num { flex: 1.4; }
.alk .alk-lead-num .alk-v { font-size: 2.6rem; }
/* Chunking + Common Region */
.alk .alk-chipgroups { display: grid; gap: 10px; margin: 0 0 18px; }
.alk .alk-chiprow { display: grid; grid-template-columns: 130px 1fr; gap: 8px; align-items: center; }
.alk .alk-chiplabel { font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--alk-muted); }
.alk .alk-chipset { display: flex; gap: 8px; flex-wrap: wrap; }
@media (max-width: 480px) { .alk .alk-chiprow { grid-template-columns: 1fr; gap: 4px; } }
.alk .alk-group { border: 0; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; min-width: 0; }
.alk .alk-group legend { padding: 0; margin: 0 0 6px; font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--alk-muted); }
.alk .alk-check > span { flex: 1; }
.alk .alk-pts { flex: none; font-style: normal; font-weight: 700; font-size: .85rem; color: var(--alk-primary); padding-top: 2px; }
/* Goal-Gradient */
.alk .alk-next { margin: 6px 0 0; font-size: .9rem; font-weight: 600; color: var(--alk-primary); }
.alk .alk-next:empty { display: none; }
/* Zeigarnik: next step leads the rail */
.alk .alk-more .alk-nextcard a { border-color: var(--alk-primary); background: var(--alk-primary-soft); }
.alk .alk-badge { font-style: normal; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #C2410C; }
/* Peak-End */
.alk-dialog .alk-nextlink { display: block; margin-top: 10px; font-weight: 700; color: var(--alk-primary); }

/* ---- QR build-out ---- */
.alk .alk-filerow { display: flex; gap: 8px; align-items: center; }
.alk .alk-filerow input[type="file"] { flex: 1; min-width: 0; font-size: .9rem; padding: 8px; background: var(--alk-bg); border: 1px dashed #cbd5e0; border-radius: 8px; min-height: 44px; }
.alk .alk-scan { margin: 12px 0 0; font-size: .9rem; font-weight: 600; display: flex; gap: 8px; align-items: flex-start; }
.alk .alk-scan::before { content: ""; flex: none; width: 10px; height: 10px; border-radius: 50%; margin-top: .4em; background: #94a3b8; }
.alk .alk-scan-ok { color: var(--alk-good); } .alk .alk-scan-ok::before { background: var(--alk-good); }
.alk .alk-scan-bad { color: var(--alk-bad); } .alk .alk-scan-bad::before { background: var(--alk-bad); }
.alk .alk-scan-wait { color: var(--alk-muted); }
.alk .alk-scan-warn { color: #9a3412; } .alk .alk-scan-warn::before { background: #d97706; }
.alk .alk-qr-actions { display: grid; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--alk-line); }
.alk .alk-printrow { display: flex; gap: 8px; align-items: flex-end; flex-wrap: wrap; }
.alk .alk-printrow .alk-f { flex: 1 1 220px; }
.alk .alk-btn:disabled, .alk .alk-btn[disabled] { opacity: .5; cursor: not-allowed; }

/* ---- Quote / invoice build-out ---- */
.alk .alk-seg { display: inline-flex; border: 1px solid #cbd5e0; border-radius: 8px; padding: 3px; gap: 3px; background: var(--alk-bg); margin: 0 0 4px; }
.alk .alk-segbtn { font: inherit; font-family: var(--alk-head); font-weight: 600; font-size: .95rem; min-height: 40px; padding: 8px 20px; margin: 0; border: 0; border-radius: 6px; background: transparent; color: var(--alk-muted); cursor: pointer; text-transform: none; letter-spacing: 0; box-shadow: none; }
.alk .alk-segbtn:hover { color: var(--alk-primary); background: transparent; }
.alk .alk-segbtn[aria-pressed="true"] { background: var(--alk-primary); color: #fff; }
.alk .alk-linkbtn { font: inherit; font-size: .88rem; font-weight: 600; color: var(--alk-primary); background: none; border: 0; padding: 6px 0; margin: 4px 0 0; min-height: 32px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-transform: none; letter-spacing: 0; box-shadow: none; }
.alk .alk-linkbtn:hover { color: var(--alk-cta); background: none; }
.alk .alk-svcbox { margin-top: 14px; padding: 12px 14px; border: 1px dashed #cbd5e0; border-radius: 10px; }
.alk .alk-svcbox .alk-row { margin: 0 0 6px; }
.alk .alk-svcs { display: flex; flex-wrap: wrap; gap: 6px; }
.alk .alk-svcs .alk-note { margin: 0; }
.alk .alk-svc { display: inline-flex; align-items: stretch; }
.alk .alk-svc .alk-chip { border-radius: 8px 0 0 8px; min-height: 36px; font-size: .85rem; }
.alk .alk-svc .alk-chip b { color: var(--alk-primary); margin-left: 4px; }
.alk .alk-svc-x { font: inherit; border: 1px solid #cbd5e0; border-left: 0; border-radius: 0 8px 8px 0; background: var(--alk-surface); color: var(--alk-muted); padding: 0 10px; min-width: 32px; cursor: pointer; box-shadow: none; }
.alk .alk-svc-x:hover { color: var(--alk-bad); background: var(--alk-surface); }
.alk .alk-dochead { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid var(--alk-line); }
.alk .alk-doclogo { display: block; max-width: 120px; max-height: 64px; width: auto; height: auto; margin: 0 0 8px; }
.alk .alk-docinfo { font-size: .82rem; color: var(--alk-muted); margin-top: 4px; line-height: 1.5; }
.alk .alk-doctitle { margin-left: auto; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-size: .85rem; color: var(--alk-muted); }
.alk .alk-doctitle b { font-family: var(--alk-head); font-size: 1.4rem; letter-spacing: .04em; color: var(--alk-ink); }
.alk .alk-balance td { color: var(--alk-primary); }
@media (max-width: 480px) { .alk .alk-doctitle { margin-left: 0; text-align: left; align-items: flex-start; } }
/* Long saved-service names wrap instead of pushing the page sideways */
.alk .alk-svc { max-width: 100%; min-width: 0; }
.alk .alk-svc .alk-chip { white-space: normal; text-align: left; min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }

/* ---- Policy document ---- */
.alk .alk-policy h3 { font-family: var(--alk-head); font-size: 1.25rem; line-height: 1.3; margin: 0 0 14px; padding-bottom: 12px; border-bottom: 1px solid var(--alk-line); color: var(--alk-ink); }
.alk .alk-policy h4 { font-family: var(--alk-head); font-size: .8rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--alk-primary); margin: 16px 0 6px; }
.alk .alk-policy ul { margin: 0; padding: 0 0 0 1.2em; }
.alk .alk-policy li { margin: 0 0 4px; line-height: 1.55; }
.alk .alk-policy li::marker { color: var(--alk-muted); }
.alk .alk-policy > p { margin: 18px 0 0; padding-top: 12px; border-top: 1px solid var(--alk-line); color: var(--alk-muted); font-size: .9rem; }
.alk .alk-policy .alk-policy-short { margin: 0; padding: 0; border: 0; color: var(--alk-ink); font-size: 1rem; line-height: 1.6; }

/* ---- Menu maker ---- */
.alk .alk-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.alk .alk-mcats { display: grid; gap: 14px; margin-top: 16px; }
.alk .alk-mcat { border: 1px solid var(--alk-line); border-radius: 10px; padding: 12px; margin: 0; min-width: 0; background: var(--alk-bg); display: grid; gap: 8px; }
.alk .alk-mcat-head { display: grid; grid-template-columns: minmax(0, 1fr) 40px 40px; gap: 6px; }
.alk .alk-mcat input, .alk .alk-mitem input { width: 100%; font: inherit; font-size: 16px; color: var(--alk-ink); background: #fff; border: 1px solid #cbd5e0; border-radius: 8px; padding: 9px 11px; min-height: 42px; margin: 0; }
.alk .alk-mcat .alk-mcat-name { font-weight: 700; font-family: var(--alk-head); }
.alk .alk-mitem { display: grid; grid-template-columns: minmax(0, 1fr) 96px 40px; gap: 6px; padding-top: 6px; border-top: 1px dashed var(--alk-line); }
.alk .alk-mitem .alk-mdesc { grid-column: 1 / -1; font-size: 15px; min-height: 38px; color: var(--alk-muted); }
.alk .alk-mitem .alk-affix.alk-has-pre input { padding-left: 24px; }
.alk .alk-iconbtn { font: inherit; font-size: 1.05rem; line-height: 1; min-height: 42px; padding: 0; margin: 0; border: 1px solid #cbd5e0; border-radius: 8px; background: #fff; color: var(--alk-muted); cursor: pointer; box-shadow: none; }
.alk .alk-iconbtn:hover { color: var(--alk-primary); border-color: var(--alk-primary); background: #fff; }
.alk .alk-iconbtn[data-act^="del"]:hover { color: var(--alk-bad); border-color: var(--alk-bad); }
.alk .alk-iconbtn:disabled { opacity: .35; cursor: default; }
.alk .alk-mcat .alk-linkbtn { justify-self: start; margin: 0; }
.alk .alk-seg-wrap { display: flex; flex-wrap: wrap; }
.alk .alk-seg-wrap .alk-segbtn { flex: 1 1 auto; padding: 8px 12px; font-size: .88rem; }

/* ---- Drink estimator ---- */
.alk .alk-est { margin: 4px 0 8px; }
.alk .alk-est td { vertical-align: middle; }
.alk .alk-est .alk-est-price { width: 120px; }
/* (0,5,1) beats the kit's input:not(...):not(...) rule */
.alk .alk-est .alk-affix.alk-has-pre input[data-est] { width: 100%; font: inherit; font-size: 15px; min-height: 38px; padding: 6px 8px 6px 22px; border: 1px solid #cbd5e0; border-radius: 8px; background: #fff; margin: 0; }
.alk .alk-est .alk-affix .alk-pre { left: 8px; font-size: .85rem; }
@media (max-width: 480px) { .alk .alk-est .alk-est-price { width: 96px; } .alk .alk-est td, .alk .alk-est th { font-size: .85rem; } }

/* ---- Persona-audit fixes ---- */
/* The hidden attribute must win over component display rules (.alk-btn is inline-flex). */
.alk [hidden], .alk-dialog [hidden] { display: none !important; }
/* Visible focus on every field: (0,5,1) beats the Elementor kit's input:focus:not(...) rule. */
.alk .alk-f input[id]:not([type="checkbox"]):focus, .alk .alk-f select[id]:focus, .alk .alk-f textarea[id]:focus,
.alk .alk-items .alk-item input[data-f]:focus, .alk .alk-mcats .alk-mcat input[data-f]:focus, .alk .alk-est .alk-affix input[data-est]:focus,
.alk-dialog .alk-f input[id]:not([type="checkbox"]):focus, .alk-dialog .alk-f select[id]:focus {
  border-color: var(--alk-primary); outline: none; box-shadow: 0 0 0 3px rgba(30, 64, 175, .45);
}
/* 44px touch targets */
.alk .alk-chip, .alk .alk-segbtn { min-height: 44px; }
/* File picker: the input stays focusable for keyboards; the label is the visible button. */
.alk .alk-fileinput { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.alk .alk-filerow { position: relative; }
.alk .alk-filerow .alk-filebtn { margin: 0; cursor: pointer; }
.alk .alk-fileinput:focus-visible + .alk-filebtn { outline: 3px solid var(--alk-accent); outline-offset: 2px; }
/* Empty states and the example banner */
.alk .alk-empty { margin: 8px 0 0; padding: 18px; border: 1px dashed #cbd5e0; border-radius: 10px; background: var(--alk-bg); color: var(--alk-muted); }
.alk .alk-example { display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin: 4px 0 16px; padding: 12px 14px; border-radius: 10px; background: #fff7ed; border: 1px solid #fed7aa; }
.alk .alk-example p { margin: 0; font-size: .92rem; flex: 1 1 220px; }
.alk .alk-item-ex input { color: var(--alk-muted); }
/* Printed quotes/invoices get real page margins (browsers honor @page when printing). */
@media print { @page { margin: 0.6in; } }

/* ---- How it works + FAQ (search content) ---- */
.alk .alk-content { margin-top: 48px; max-width: 820px; }
.alk .alk-content h2 { font-family: var(--alk-head); font-size: 1.5rem; line-height: 1.25; margin: 0 0 14px; color: var(--alk-ink); }
.alk .alk-content h2 + .alk-faq { margin-top: 4px; }
.alk .alk-how { margin: 0 0 40px; padding: 0; list-style: none; counter-reset: how; display: grid; gap: 12px; }
.alk .alk-how li { counter-increment: how; position: relative; padding: 2px 0 0 44px; line-height: 1.6; }
.alk .alk-how li::before { content: counter(how); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--alk-primary); color: #fff; font-family: var(--alk-head); font-weight: 700; display: grid; place-items: center; font-size: .95rem; }
.alk .alk-faq { display: grid; gap: 0; border-top: 1px solid var(--alk-line); }
.alk .alk-qa { padding: 18px 0; border-bottom: 1px solid var(--alk-line); }
.alk .alk-qa h3 { font-family: var(--alk-head); font-size: 1.1rem; line-height: 1.35; margin: 0 0 6px; color: var(--alk-ink); }
.alk .alk-qa p { margin: 0; line-height: 1.65; color: #2d3748; }
