/*
 * NAATI Quote Form — Front-end Styles
 * Version: 3.0.0
 * All selectors prefixed .nqf- to prevent theme conflicts.
 */

/* ── VARIABLES ── */
.nqf-wrap {
  --nqf-g:      #00703C;
  --nqf-gd:     #004F2B;
  --nqf-gl:     #E8F5EE;
  --nqf-red:    #CE2B37;
  --nqf-cream:  #FAF8F3;
  --nqf-txt:    #1A1A1A;
  --nqf-muted:  #6B7280;
  --nqf-border: #D1D5DB;
  --nqf-white:  #FFFFFF;
  --nqf-shadow: 0 4px 24px rgba(0,0,0,.08);
  --nqf-r:      12px;
  --nqf-amber:      #F59E0B;
  --nqf-amber-bg:   #fff8e1;
  --nqf-amber-text: #78350F;
}

.nqf-wrap,
.nqf-wrap *,
.nqf-wrap *::before,
.nqf-wrap *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
.nqf-wrap {
  font-family: 'Outfit', sans-serif;
  color: var(--nqf-txt);
  line-height: 1.5;
}

/* ── HERO ── */
.nqf-hero {
  background: linear-gradient(135deg, var(--nqf-gd) 0%, var(--nqf-g) 60%, #009B52 100%);
  padding: 52px 24px 44px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.nqf-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23fff' fill-opacity='.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E");
}
.nqf-flag { display: flex; justify-content: center; margin-bottom: 20px; }
.nqf-flag span { width: 13px; height: 42px; border-radius: 2px; }
.nqf-flag span:nth-child(1) { background: #009246; }
.nqf-flag span:nth-child(2) { background: #fff; }
.nqf-flag span:nth-child(3) { background: #CE2B37; }
.nqf-hero-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.9rem, 5vw, 2.9rem);
  font-weight: 300;
  color: #fff;
  letter-spacing: .01em;
  line-height: 1.2;
  position: relative;
}
.nqf-hero-title em { font-style: italic; font-weight: 600; }
.nqf-hero-sub { margin-top: 8px; color: rgba(255,255,255,.78); font-size: .9rem; font-weight: 300; letter-spacing: .05em; position: relative; }
.nqf-badge {
  display: inline-flex; align-items: center; gap: 8px;
  background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.3);
  border-radius: 50px; padding: 7px 18px; margin-top: 18px;
  font-size: .82rem; font-weight: 500; color: rgba(255,255,255,.92); letter-spacing: .04em;
  position: relative;
}

/* ── PAGE BODY ── */
.nqf-body { max-width: 780px; margin: 0 auto; padding: 0 16px 60px; }

/* ── NOTICE ── */
.nqf-notice {
  margin-top: 28px;
  background: var(--nqf-amber-bg);
  border: 1.5px solid var(--nqf-amber);
  border-left: 5px solid var(--nqf-amber);
  border-radius: var(--nqf-r);
  padding: 16px 20px;
  display: flex; align-items: flex-start; gap: 14px;
  font-size: .92rem; line-height: 1.6;
}
.nqf-notice strong { color: #92400E; display: block; margin-bottom: 2px; }
.nqf-notice p { color: var(--nqf-amber-text); margin: 0; }

/* ── SERVICE CARD ── */
.nqf-svc {
  background: var(--nqf-white); border-radius: var(--nqf-r);
  box-shadow: var(--nqf-shadow); padding: 32px; margin-top: 24px;
}
.nqf-svc h2 { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; font-weight: 600; color: var(--nqf-gd); margin-bottom: 14px; }
.nqf-svc p { font-size: .93rem; line-height: 1.75; color: #374151; margin-bottom: 12px; }
.nqf-svc p:last-of-type { margin-bottom: 0; }
.nqf-svc strong { color: var(--nqf-gd); }
.nqf-use-cases { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-top: 20px; }
.nqf-use-case { background: var(--nqf-gl); border-radius: 8px; padding: 14px; text-align: center; font-size: .83rem; color: var(--nqf-gd); font-weight: 500; line-height: 1.4; }
.nqf-use-case span { font-size: 1.4rem; display: block; margin-bottom: 6px; }

/* ── FORM CARDS ── */
.nqf-card {
  background: var(--nqf-white); border-radius: var(--nqf-r);
  box-shadow: var(--nqf-shadow); padding: 32px; margin-top: 24px;
}
.nqf-card-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.3rem; font-weight: 600; color: var(--nqf-gd);
  border-bottom: 2px solid var(--nqf-gl); padding-bottom: 10px; margin-bottom: 20px;
  display: flex; align-items: center; gap: 10px;
}
.nqf-step {
  width: 28px; height: 28px; background: var(--nqf-g); color: #fff;
  border-radius: 50%; font-size: .8rem; font-weight: 600;
  display: grid; place-items: center;
  font-family: 'Outfit', sans-serif; flex-shrink: 0;
}
.nqf-section-intro { font-size: .88rem; color: var(--nqf-muted); margin-bottom: 20px; line-height: 1.6; }

/* ── INSTRUCTION BOX ── */
.nqf-instr-box {
  background: #f0fdf4; border: 1.5px solid #86efac; border-left: 4px solid var(--nqf-g);
  border-radius: 8px; padding: 14px 16px; margin-bottom: 24px;
  display: flex; align-items: flex-start; gap: 10px;
  font-size: .88rem; line-height: 1.65; color: #166534;
}
.nqf-instr-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }
.nqf-instr-box strong { color: var(--nqf-gd); }

/* ── FORM GRID ── */
.nqf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.nqf-full { grid-column: 1 / -1; }
.nqf-field { display: flex; flex-direction: column; gap: 5px; }

/* Field number badge */
.nqf-fnum {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 26px; height: 20px; padding: 0 6px;
  background: var(--nqf-gd); color: #fff; border-radius: 4px;
  font-size: .68rem; font-weight: 700; font-family: 'Outfit', sans-serif;
  letter-spacing: .02em; margin-right: 5px; flex-shrink: 0;
}
.nqf-field label {
  font-size: .82rem; font-weight: 500; color: var(--nqf-muted);
  letter-spacing: .05em; text-transform: uppercase;
  display: flex; align-items: center; flex-wrap: wrap; gap: 2px;
}
.nqf-req { color: var(--nqf-red); margin-left: 2px; }
.nqf-field-hint { font-size: .72rem; color: var(--nqf-muted); margin-top: 2px; line-height: 1.4; }

.nqf-field input,
.nqf-field select,
.nqf-field textarea {
  border: 1.5px solid var(--nqf-border) !important;
  border-radius: 8px !important;
  padding: 11px 14px !important;
  font-family: 'Outfit', sans-serif !important;
  font-size: .95rem !important;
  color: var(--nqf-txt) !important;
  background: var(--nqf-white) !important;
  transition: border-color .2s, box-shadow .2s;
  outline: none !important;
  width: 100%;
  box-shadow: none !important;
}
.nqf-field input:focus,
.nqf-field select:focus,
.nqf-field textarea:focus {
  border-color: var(--nqf-g) !important;
  box-shadow: 0 0 0 3px rgba(0,112,60,.1) !important;
}
.nqf-field textarea { resize: vertical; min-height: 80px; }

/* ── SECTION DIVIDER ── */
.nqf-sec-div { display: flex; align-items: center; gap: 10px; margin: 24px 0 16px; }
.nqf-sec-div-line { flex: 1; height: 1.5px; background: var(--nqf-gl); }
.nqf-sec-div-lbl {
  font-size: .73rem; font-weight: 600; color: var(--nqf-g);
  letter-spacing: .08em; text-transform: uppercase; white-space: nowrap;
  background: var(--nqf-gl); border-radius: 20px; padding: 4px 12px;
}

/* ── CATEGORY CHECKBOXES ── */
.nqf-cb-section-label {
  font-size: .82rem; font-weight: 500; color: var(--nqf-muted);
  letter-spacing: .05em; text-transform: uppercase; display: block; margin-bottom: 8px;
}
.nqf-cb-hint { font-weight: 300; text-transform: none; letter-spacing: 0; font-size: .75rem; }
.nqf-cb-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.nqf-cb-item {
  display: flex; align-items: center; gap: 10px; padding: 10px 13px;
  border: 1.5px solid var(--nqf-border); border-radius: 8px;
  cursor: pointer; transition: border-color .18s, background .18s; user-select: none;
}
.nqf-cb-item:hover, .nqf-cb-item.nqf-checked { border-color: var(--nqf-g); background: var(--nqf-gl); }
.nqf-cb-item input[type="checkbox"] { display: none; }
.nqf-cb-box {
  width: 18px; height: 18px; border: 2px solid var(--nqf-border);
  border-radius: 4px; display: grid; place-items: center;
  flex-shrink: 0; transition: background .15s, border-color .15s;
}
.nqf-cb-item.nqf-checked .nqf-cb-box,
.nqf-privacy-check.nqf-checked .nqf-cb-box {
  background: var(--nqf-g); border-color: var(--nqf-g);
}
.nqf-cb-item.nqf-checked .nqf-cb-box::after,
.nqf-privacy-check.nqf-checked .nqf-cb-box::after {
  content: '';
  width: 5px; height: 9px;
  border: 2px solid #fff; border-top: none; border-left: none;
  transform: rotate(45deg) translateY(-1px); display: block;
}
.nqf-cb-text strong { font-weight: 700; color: var(--nqf-gd); display: block; font-size: .85rem; text-transform: none; letter-spacing: 0; }
.nqf-cb-text small { font-size: .75rem; color: var(--nqf-muted); font-weight: 400; display: block; margin-top: 1px; }

/* ── PER-CATEGORY DETAIL PANELS ── */
#nqf-cat-panels { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }
.nqf-cat-detail {
  display: none; background: #f8fffe; border: 1.5px solid #a7f3d0;
  border-radius: 10px; padding: 16px;
  animation: nqfSlideIn .18s ease;
}
.nqf-cat-detail.nqf-open { display: block; }
@keyframes nqfSlideIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
.nqf-cat-detail-header { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.nqf-cat-badge { background: var(--nqf-gd); color: #fff; border-radius: 5px; padding: 3px 9px; font-size: .78rem; font-weight: 700; letter-spacing: .03em; }
.nqf-cat-detail-title { font-size: .78rem; font-weight: 600; color: var(--nqf-gd); text-transform: uppercase; letter-spacing: .05em; }
.nqf-cat-detail-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.nqf-cat-detail-grid .nqf-field label { font-size: .74rem; }

/* ── UPLOAD ── */
.nqf-upload-intro { font-size: .88rem; color: var(--nqf-muted); margin-bottom: 8px; line-height: 1.65; }
.nqf-bg-tip {
  display: flex; align-items: flex-start; gap: 10px;
  background: var(--nqf-amber-bg); border: 1.5px solid #fde68a;
  border-left: 4px solid var(--nqf-amber); border-radius: 8px;
  padding: 12px 14px; margin-bottom: 20px;
  font-size: .85rem; line-height: 1.6; color: #92400E;
}
.nqf-bg-tip-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }
.nqf-upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.nqf-upload-side-label { font-size: .82rem; font-weight: 600; color: var(--nqf-gd); letter-spacing: .04em; text-transform: uppercase; margin-bottom: 10px; }
.nqf-preview-wrap { margin-bottom: 10px; }
.nqf-preview-wrap img { width: 100%; max-height: 110px; object-fit: cover; border-radius: 8px; border: 1.5px solid var(--nqf-g); display: block; }
.nqf-preview-wrap span { font-size: .74rem; color: var(--nqf-gd); font-weight: 500; margin-top: 4px; display: block; word-break: break-all; }
.nqf-upload-btns { display: flex; flex-direction: column; gap: 8px; }
.nqf-upload-btn {
  display: flex; align-items: center; gap: 10px; padding: 11px 14px;
  border: 1.5px solid var(--nqf-border); border-radius: 8px; cursor: pointer;
  font-family: 'Outfit', sans-serif; font-size: .88rem; font-weight: 500;
  color: var(--nqf-txt); background: var(--nqf-white);
  transition: border-color .18s, background .18s;
  position: relative; overflow: hidden; user-select: none;
}
.nqf-upload-btn:hover { border-color: var(--nqf-g); background: var(--nqf-gl); color: var(--nqf-gd); }
.nqf-upload-btn input[type="file"] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
.nqf-btn-icon { font-size: 1.2rem; flex-shrink: 0; }
.nqf-upload-btn small { display: block; font-size: .74rem; color: var(--nqf-muted); font-weight: 400; margin-top: 1px; }
.nqf-cam-trigger { border-color: var(--nqf-g); background: var(--nqf-gl); color: var(--nqf-gd); }

/* ── CAMERA MODAL ── */
/* ── CAMERA MODAL ──
   Layout: fixed full-screen overlay, flex column with no centering.
   Video grows to fill space; controls bar is pinned to the bottom
   above the iPhone home indicator via env(safe-area-inset-bottom).
   This prevents the shutter button from being hidden behind the
   iOS home bar on iPhone X and later (including iPhone 15).
*/
.nqf-cam-modal {
  display: none; position: fixed; inset: 0;
  background: #000; z-index: 999999;
  flex-direction: column; align-items: center;
  /* padding-top respects the notch/status bar; bottom handled by controls */
  padding: env(safe-area-inset-top, 16px) 0 0 0;
}
.nqf-cam-modal.nqf-open { display: flex; }

/* Badge at the top */
.nqf-cam-side-badge {
  font-size: .75rem; font-weight: 600; letter-spacing: .1em;
  text-transform: uppercase; color: rgba(255,255,255,.65);
  padding: 10px 0 8px;
}

/* Video fills all available vertical space between badge and controls bar */
.nqf-cam-frame-wrap {
  position: relative;
  width: 100%;
  flex: 1 1 auto;        /* stretch to fill remaining height */
  min-height: 0;         /* allow shrink below content size */
  overflow: hidden;
}
.nqf-cam-frame-wrap video {
  width: 100%; height: 100%;
  object-fit: cover;     /* fill the box, crop edges if needed */
  display: block; background: #111;
}

/* Hint text overlaid at the top of the video area */
.nqf-cam-hint {
  position: absolute; top: 12px; left: 0; right: 0;
  color: rgba(255,255,255,.85); font-size: .78rem;
  text-align: center; line-height: 1.6;
  pointer-events: none;
  text-shadow: 0 1px 4px rgba(0,0,0,.8);
}
.nqf-cam-hint strong { color: #4ade80; }

/* ISO 7810 ID-1 card: 85.6 × 54 mm */
.nqf-card-frame {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 86%; aspect-ratio: 85.6 / 54;
  border: 2.5px solid rgba(255,255,255,.85); border-radius: 10px;
  box-shadow: 0 0 0 9999px rgba(0,0,0,.45); pointer-events: none;
}
.nqf-card-frame::before, .nqf-card-frame::after { content: ''; position: absolute; width: 22px; height: 22px; border-color: #4ade80; border-style: solid; }
.nqf-card-frame::before  { top: -3px; left:  -3px; border-width: 4px 0 0 4px; border-radius: 7px 0 0 0; }
.nqf-card-frame::after   { bottom: -3px; right: -3px; border-width: 0 4px 4px 0; border-radius: 0 0 7px 0; }
.nqf-card-frame-extra::before, .nqf-card-frame-extra::after { content: ''; position: absolute; width: 22px; height: 22px; border-color: #4ade80; border-style: solid; }
.nqf-card-frame-extra::before { top: -3px; right: -3px; border-width: 4px 4px 0 0; border-radius: 0 7px 0 0; }
.nqf-card-frame-extra::after  { bottom: -3px; left: -3px; border-width: 0 0 4px 4px; border-radius: 0 0 0 7px; }

/* Controls bar: fixed height strip at the bottom, always visible.
   padding-bottom uses iOS safe-area env variable so it clears the
   home indicator on iPhone X/11/12/13/14/15 (typically 34px). */
.nqf-cam-controls {
  flex: 0 0 auto;
  width: 100%;
  display: flex; align-items: center; justify-content: center; gap: 32px;
  background: rgba(0,0,0,.85);
  padding: 16px 24px;
  padding-bottom: max(16px, env(safe-area-inset-bottom, 16px));
}
.nqf-cam-shutter {
  width: 72px; height: 72px; border-radius: 50%;
  background: #fff; border: 5px solid rgba(255,255,255,.35);
  cursor: pointer; position: relative; transition: transform .12s;
  flex-shrink: 0;
}
.nqf-cam-shutter:active { transform: scale(0.92); }
.nqf-cam-shutter::after {
  content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 50px; height: 50px; border-radius: 50%; background: var(--nqf-g);
}
.nqf-cam-cancel {
  background: rgba(255,255,255,.12); color: #fff;
  border: 1.5px solid rgba(255,255,255,.25); border-radius: 8px;
  padding: 14px 26px; cursor: pointer;
  font-family: 'Outfit', sans-serif; font-size: .9rem; font-weight: 500;
  flex-shrink: 0;
}
.nqf-cam-cancel:active { background: rgba(255,255,255,.25); }

/* White background pre-capture popup */
.nqf-bg-popup {
  display: none; position: fixed; inset: 0; z-index: 9999999;
  background: rgba(0,0,0,.72);
  align-items: center; justify-content: center;
  padding: 20px;
}
.nqf-bg-popup.nqf-open { display: flex; }
.nqf-bg-popup-card {
  background: #fff; border-radius: 18px;
  padding: 28px 24px 22px;
  max-width: 340px; width: 100%;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.nqf-bg-popup-icon { font-size: 2.8rem; margin-bottom: 12px; }
.nqf-bg-popup-title {
  font-family: 'Outfit', sans-serif; font-size: 1.1rem;
  font-weight: 700; color: #111; margin-bottom: 10px;
}
.nqf-bg-popup-body {
  font-size: .88rem; color: #555; line-height: 1.6; margin-bottom: 22px;
}
.nqf-bg-popup-body strong { color: #111; }
.nqf-bg-popup-btns { display: flex; flex-direction: column; gap: 10px; }
.nqf-bg-popup-ok {
  background: var(--nqf-g); color: #fff; border: none;
  border-radius: 10px; padding: 14px 20px;
  font-family: 'Outfit', sans-serif; font-size: .95rem; font-weight: 600;
  cursor: pointer; transition: filter .15s;
}
.nqf-bg-popup-ok:active { filter: brightness(.9); }
.nqf-bg-popup-cancel {
  background: none; color: #888; border: 1.5px solid #ddd;
  border-radius: 10px; padding: 12px 20px;
  font-family: 'Outfit', sans-serif; font-size: .88rem;
  cursor: pointer;
}

/* ── PRIVACY CARD ── */
.nqf-privacy-intro { font-size: .9rem; color: var(--nqf-muted); margin-bottom: 20px; line-height: 1.6; }
.nqf-privacy-points { display: flex; flex-direction: column; gap: 14px; margin-bottom: 22px; }
.nqf-privacy-point { display: flex; align-items: flex-start; gap: 14px; background: var(--nqf-cream); border-radius: 8px; padding: 14px 16px; }
.nqf-pp-icon { font-size: 1.35rem; flex-shrink: 0; margin-top: 1px; }
.nqf-privacy-point strong { display: block; font-size: .9rem; color: var(--nqf-gd); margin-bottom: 3px; }
.nqf-privacy-point p { font-size: .84rem; color: var(--nqf-muted); line-height: 1.6; margin: 0; }
.nqf-copy-note {
  background: #eff6ff; border: 1.5px solid #bfdbfe; border-radius: 8px;
  padding: 12px 16px; display: flex; align-items: flex-start; gap: 10px;
  font-size: .85rem; color: #1e40af; line-height: 1.6; margin-top: 16px;
}
.nqf-copy-note-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }
.nqf-privacy-check {
  display: flex; align-items: flex-start; gap: 12px; padding: 16px;
  border: 2px solid var(--nqf-border); border-radius: 10px;
  cursor: pointer; transition: border-color .2s, background .2s; user-select: none;
}
.nqf-privacy-check:hover, .nqf-privacy-check.nqf-checked { border-color: var(--nqf-g); background: var(--nqf-gl); }
.nqf-privacy-check input[type="checkbox"] { display: none; }
.nqf-privacy-check .nqf-cb-box { flex-shrink: 0; margin-top: 3px; }
.nqf-privacy-check-text { font-size: .88rem; line-height: 1.65; color: var(--nqf-txt); }
.nqf-privacy-check-text a { color: var(--nqf-g); text-decoration: underline; }
.nqf-privacy-check-text a:hover { color: var(--nqf-gd); }

/* ── ERRORS ── */
.nqf-error { color: var(--nqf-red); font-size: .81rem; margin-top: 5px; line-height: 1.5; }

/* ── SUBMIT ── */
.nqf-submit-wrap { margin-top: 32px; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.nqf-btn-submit {
  background: linear-gradient(135deg, var(--nqf-gd), var(--nqf-g));
  color: #fff !important; border: none; border-radius: 50px;
  padding: 16px 52px;
  font-family: 'Outfit', sans-serif !important; font-size: 1rem !important;
  font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  cursor: pointer; transition: transform .15s, box-shadow .15s;
  box-shadow: 0 4px 16px rgba(0,112,60,.35);
}
.nqf-btn-submit:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,112,60,.4); }
.nqf-btn-submit:disabled { opacity: .65; cursor: not-allowed; transform: none; }
.nqf-privacy-note { font-size: .76rem; color: var(--nqf-muted); text-align: center; max-width: 420px; line-height: 1.5; }

/* ── SUCCESS ── */
.nqf-success {
  background: var(--nqf-gl); border: 1.5px solid var(--nqf-g);
  border-radius: var(--nqf-r); padding: 36px; text-align: center; margin-top: 28px;
}
.nqf-success-icon { font-size: 2.5rem; margin-bottom: 10px; }
.nqf-success h3 { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; color: var(--nqf-gd); margin-bottom: 8px; }
.nqf-success p { color: var(--nqf-muted); font-size: .92rem; line-height: 1.6; }
.nqf-success p + p { margin-top: 8px; }

/* ── RESPONSIVE ── */
@media (max-width: 580px) {
  .nqf-grid, .nqf-upload-grid { grid-template-columns: 1fr; }
  .nqf-full { grid-column: 1; }
  .nqf-cb-grid, .nqf-use-cases { grid-template-columns: 1fr; }
  .nqf-cat-detail-grid { grid-template-columns: 1fr 1fr; }
  .nqf-card { padding: 20px; }
}
@media (max-width: 380px) {
  .nqf-cat-detail-grid { grid-template-columns: 1fr; }
}

/* ── RECAPTCHA NOTICE ── */
.nqf-recaptcha-notice {
  font-size: .74rem;
  color: var(--nqf-muted);
  text-align: center;
  padding: 8px 16px;
  background: #f9fafb;
  border: 1px solid var(--nqf-border);
  border-radius: 8px;
  margin-top: 16px;
  line-height: 1.6;
}
.nqf-recaptcha-notice a {
  color: var(--nqf-g);
  text-decoration: underline;
}
/* Hide the default reCAPTCHA badge — notice text above replaces it */
.grecaptcha-badge { visibility: hidden !important; }

/* ── UPPERCASE INPUT FIELDS ── */
/* Fields that mirror the physical Italian licence (fields 1, 2, 3-POB, 4c, 5, card) */
#nqf_h_surname,
#nqf_h_given,
#nqf_h_pob,
#nqf_h_authority,
#nqf_h_licno,
#nqf_h_cardno {
  text-transform: uppercase;
  letter-spacing: .04em;
}

/* ── BASIC MATH CAPTCHA ── */
.nqf-captcha-wrap {
  background: #F9FAFB;
  border: 1px solid #E5E7EB;
  border-radius: 10px;
  padding: 16px 20px;
  margin: 16px 0 0;
}
.nqf-captcha-label {
  display: block;
  font-size: .88rem;
  color: #374151;
  margin-bottom: 10px;
  font-weight: 500;
}
.nqf-captcha-label strong {
  color: #004F2B;
  font-size: 1.05rem;
  letter-spacing: .04em;
}
.nqf-captcha-input {
  width: 120px;
  padding: 8px 12px;
  border: 1.5px solid #D1D5DB;
  border-radius: 7px;
  font-size: 1rem;
  color: #111827;
  transition: border-color .2s;
}
.nqf-captcha-input:focus {
  outline: none;
  border-color: #004F2B;
  box-shadow: 0 0 0 3px rgba(0,79,43,.1);
}

/* ── FIELD HINT ── */
.nqf-field-hint {
  font-size: .80rem;
  color: #6B7280;
  margin: 4px 0 0;
  line-height: 1.4;
}
.nqf-field-hint strong {
  color: #374151;
}
