:root {
  --a2ec-primary: #0d1b3f;
  --a2ec-accent: #4f46e5;
  --a2ec-purple: #764ba2;
}

html { scroll-behavior: smooth; }
body { font-family: "Noto Sans KR", sans-serif; }

.a2ec-hero {
  background:
    radial-gradient(circle at 84% 15%, rgba(129, 140, 248, .28), transparent 25rem),
    linear-gradient(135deg, #0d1b3f 0%, #1e3a5f 58%, #312e81 100%);
}

.a2ec-gradient-button {
  background: linear-gradient(135deg, var(--a2ec-accent), var(--a2ec-purple));
  transition: transform .2s ease, box-shadow .2s ease;
}

.a2ec-gradient-button:hover,
.a2ec-gradient-button:focus-visible {
  box-shadow: 0 12px 30px rgba(102, 126, 234, .32);
  transform: translateY(-2px);
}

.a2ec-section-title { color: var(--a2ec-primary); letter-spacing: -.02em; }
.a2ec-card { transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.a2ec-card:hover { transform: translateY(-3px); box-shadow: 0 16px 38px rgba(13, 27, 63, .08); }

.a2ec-flow {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: .75rem;
  align-items: stretch;
}

.a2ec-flow-step { position: relative; }
.a2ec-flow-step:not(:last-child)::after {
  content: "\2192";
  position: absolute;
  right: -.7rem;
  top: 50%;
  color: #818cf8;
  font-weight: 900;
  transform: translateY(-50%);
}

.a2ec-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.a2ec-table { border-collapse: collapse; min-width: 880px; width: 100%; }
.a2ec-table th { background: var(--a2ec-primary); color: #fff; font-size: .875rem; text-align: left; }
.a2ec-table th,
.a2ec-table td { border: 1px solid #e5e7eb; padding: .85rem 1rem; vertical-align: top; }
.a2ec-table tbody tr:nth-child(even) { background: #f9fafb; }

.a2ec-filter[aria-pressed="true"],
.a2ec-filter:hover,
.a2ec-filter:focus-visible { background: var(--a2ec-primary); border-color: var(--a2ec-primary); color: #fff; }

.a2ec-policy-card { border-top-width: 5px; }
.a2ec-policy-card > summary { cursor: pointer; list-style: none; }
.a2ec-policy-card > summary::-webkit-details-marker { display: none; }
.a2ec-policy-green { border-color: #10b981; background: #ecfdf5; }
.a2ec-policy-yellow { border-color: #f59e0b; background: #fffbeb; }
.a2ec-policy-red { border-color: #ef4444; background: #fef2f2; }

.a2ec-source-card { border-left: 4px solid var(--a2ec-accent); }
.a2ec-direct-answer { border-left: 5px solid #818cf8; }
.a2ec-readiness > summary { cursor: pointer; list-style: none; }
.a2ec-readiness > summary::-webkit-details-marker { display: none; }

.a2ec-form-step[hidden],
.a2ec-confirmation[hidden] { display: none; }

.a2ec-field label,
.a2ec-field legend { color: #111827; display: block; font-size: .9rem; font-weight: 700; margin-bottom: .45rem; }

.a2ec-field input:not([type="checkbox"]):not([type="radio"]),
.a2ec-field select,
.a2ec-field textarea {
  background: #fff;
  border: 1px solid #d1d5db;
  border-radius: .75rem;
  padding: .75rem .9rem;
  width: 100%;
}

.a2ec-field input:focus,
.a2ec-field select:focus,
.a2ec-field textarea:focus {
  border-color: var(--a2ec-accent);
  box-shadow: 0 0 0 3px rgba(102, 126, 234, .16);
  outline: none;
}

.a2ec-honeypot { left: -9999px !important; position: absolute !important; }

.a2ec-faq details { border-bottom: 1px solid #e5e7eb; }
.a2ec-faq summary { cursor: pointer; font-weight: 750; list-style: none; padding: 1.15rem 2.2rem 1.15rem 0; position: relative; }
.a2ec-faq summary::-webkit-details-marker { display: none; }
.a2ec-faq summary::after { color: #6366f1; content: "+"; font-size: 1.35rem; position: absolute; right: .25rem; top: 1rem; }
.a2ec-faq details[open] summary::after { content: "\2212"; }
.a2ec-faq details p { color: #4b5563; line-height: 1.75; padding: 0 0 1.2rem; }

@media (max-width: 1024px) {
  .a2ec-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .a2ec-flow-step:not(:last-child)::after { display: none; }
}

@media (max-width: 640px) {
  .a2ec-flow { grid-template-columns: 1fr; }
}

@media print {
  #navBarContainer,
  .a2ec-no-print { display: none !important; }
  .a2ec-hero { background: #fff !important; color: #111827 !important; }
  .a2ec-hero * { color: #111827 !important; }
}
