:root {
  --ap-bg: #f3faf5;
  --ap-surface: #ffffff;
  --ap-primary: #1d6b47;
  --ap-primary-dark: #103524;
  --ap-accent: #c6922b;
  --ap-text: #213127;
  --ap-muted: #617266;
  --ap-border: rgba(16,53,36,0.12);
}
body {
  background: var(--ap-bg);
  color: var(--ap-text);
  font-family: "Noto Sans KR", sans-serif;
  line-height: 1.75;
}
.ap-nav { background: linear-gradient(135deg, var(--ap-primary-dark), var(--ap-primary)); }
.ap-nav .navbar-brand img { max-width: 280px; }
.ap-nav .nav-link, .ap-nav .navbar-brand { color:#fff; }
.ap-nav .nav-link { opacity:.86; }
.ap-nav .nav-link.active, .ap-nav .nav-link:hover { color:#fff; opacity:1; }
.ap-nav .navbar-toggler { border-color: rgba(255,255,255,.4); }
.ap-nav .navbar-toggler-icon { filter: invert(1); }
.ap-hero { background: linear-gradient(180deg, #e3f4e8 0%, #f3faf5 100%); padding: 4.4rem 0 3rem; }
.ap-kicker { display:inline-block; margin-bottom:1rem; padding:.45rem .8rem; border-radius:999px; background: rgba(29,107,71,.1); color: var(--ap-primary-dark); font-weight:700; font-size:.9rem; }
#hero-heading, h1, h2, h3 { color: var(--ap-primary-dark); }
#hero-heading { font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 800; }
#hero-lead { max-width: 840px; margin: .9rem auto 0; color: var(--ap-muted); }
.ap-content { background: var(--ap-surface); border: 1px solid var(--ap-border); border-radius: 24px; padding: 2rem; margin: -1rem auto 3rem; box-shadow: 0 18px 38px rgba(16,53,36,.06); }
.ap-meta { color: var(--ap-muted); font-size: .95rem; }
.ap-callout { background: rgba(219,122,36,.08); border-left: 4px solid var(--ap-accent); padding: 1rem 1.1rem; border-radius: 14px; margin: 1.4rem 0 1.8rem; }
.ap-table { width:100%; border-collapse: collapse; margin:1.5rem 0 1.75rem; }
.ap-table th, .ap-table td { border:1px solid var(--ap-border); padding:.9rem 1rem; vertical-align: top; }
.ap-table th { background: var(--ap-primary-dark); color:#fff; }
.ap-grid { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:1rem; margin:1.5rem 0 2rem; }
.ap-card { background: linear-gradient(180deg,#fff 0%,#f8fff9 100%); border:1px solid var(--ap-border); border-radius:20px; padding:1.4rem; }
.ap-card a, .ap-content a, .ap-footer a { color: var(--ap-primary); text-decoration:none; font-weight:700; }
.ap-card a:hover, .ap-content a:hover, .ap-footer a:hover { text-decoration: underline; }
.ap-faq details { border:1px solid var(--ap-border); border-radius:16px; padding:1rem 1.1rem; background:#fbfefb; margin-bottom:.9rem; }
.ap-faq summary { cursor:pointer; font-weight:700; color:var(--ap-primary-dark); }
.ap-footer { padding: 0 0 3rem; color: var(--ap-muted); }
.ap-footer-links { list-style:none; display:flex; justify-content:center; gap:1rem; padding:0; margin:0 0 1rem; flex-wrap:wrap; }

.ap-trust { margin: -1rem 0 1.4rem; }
.ap-trust-grid { display:grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap:1rem; }
.ap-trust-item { background: rgba(255,255,255,.96); border:1px solid var(--ap-border); border-radius:18px; padding:1rem 1.1rem; box-shadow: 0 10px 24px rgba(16,53,24,.05); }
.ap-trust-label { display:block; font-size:.78rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--ap-accent); margin-bottom:.35rem; }
.ap-trust-item strong { color: var(--ap-primary-dark); display:block; margin-bottom:.2rem; }
.ap-trust-item p { margin:0; color:var(--ap-muted); font-size:.94rem; }
@media (max-width: 767px) {
  .ap-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
  .ap-trust-item { padding: .8rem .9rem; border-radius: 14px; }
  .ap-trust-item:last-child { grid-column: 1 / -1; }
  .ap-trust-label { font-size: .72rem; margin-bottom: .25rem; }
  .ap-trust-item p { font-size: .88rem; }
  .ap-trust { margin: -.6rem 0 .9rem; }

  .ap-hero { padding: 3.4rem 0 2.2rem; }
  .ap-content { padding: 1.3rem; border-radius: 18px; }
  .ap-grid { grid-template-columns: 1fr; }
  .ap-table { display:block; overflow-x:auto; white-space:nowrap; }
}
