/* Kế Toán An Phát (ketoan2) — trang chủ theo mockup Astra 10-01 (mockup 768px -> x1.875 ở 1440) */
@import url('https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;500;600;700;800&display=swap');
:root { --ap-p: #1e73be; --ap-p2: #389ff9; --ap-n: #0d2b66; --ap-l: #eef5fc; --ap-ink: #1d2433; --ap-mut: #5b6475; --ap-f: 'Be Vietnam Pro', Arial, sans-serif; }
body, p, li, a, input, button, select, textarea, h1, h2, h3, h4, .nav > li > a { font-family: var(--ap-f) !important; }
h1 a, h2 a, h3 a, h4 a { font-family: inherit !important; }
body { color: var(--ap-ink); background: #fff; }
#wrapper, #main { background: #fff !important; }
.ap-mi { display: inline-block; flex: 0 0 auto; width: 1em; height: 1em; background: var(--ap-p); -webkit-mask: var(--m) center/contain no-repeat; mask: var(--m) center/contain no-repeat; vertical-align: middle; }

/* ---------- header ---------- */
#header .header-main { height: 82px; background: #fff; border-bottom: 1px solid #e6ecf3; }
#header .header-main .header-inner { max-width: 1240px; }
#logo { width: auto !important; margin: 0 !important; top: 0 !important; }
#logo a { display: inline-flex !important; align-items: center; gap: 16px; font-size: 31px !important; font-weight: 600 !important; color: var(--ap-p) !important; text-transform: none !important; letter-spacing: -.3px; white-space: nowrap; top: 0 !important; margin: 0 !important; }
#logo a::before { content: ''; width: 56px; height: 56px; flex: 0 0 56px; background: var(--ap-p); -webkit-mask: url(icons/logo.png) center/contain no-repeat; mask: url(icons/logo.png) center/contain no-repeat; }
#header .header-main .flex-left { flex: 1 1 auto; } #header .header-main .flex-left .header-nav-main { justify-content: flex-end; }
#header .header-nav-main > li.current-menu-item > a[href*="#"] { color: #1d2433 !important; }
#header .header-nav-main > li { margin: 0 22px !important; }
#header .header-nav-main > li > a { font-size: 17px !important; font-weight: 500 !important; color: #1d2433 !important; text-transform: none !important; letter-spacing: 0; white-space: nowrap; background: transparent !important; }
#header .header-nav-main > li > a:hover, #header .header-nav-main > li.active > a { color: var(--ap-p) !important; }
#header .header-nav-main > li > a::before, #header .header-nav-main > li > a::after { display: none !important; }
#header .header-button-1 .button { background: var(--ap-p) !important; border-color: var(--ap-p) !important; color: #fff !important; font-size: 17px !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0; border-radius: 6px !important; min-height: 47px; line-height: 45px; padding: 0 30px; margin-left: 140px; }
#header .mobile-nav i, #header .mobile-nav .icon-menu { color: var(--ap-p) !important; }
.absolute-footer { display: none !important; }

/* ---------- chung ---------- */
.ap-sec .col, .ap-hero .col, .ap-footer .col { padding-bottom: 0 !important; }
.ap-head { text-align: center; margin-bottom: 36px; }
.ap-h2 { margin: 0 !important; font-size: 40px !important; line-height: 1.2 !important; font-weight: 700 !important; color: var(--ap-n) !important; letter-spacing: -.6px; }
.ap-sub { font-size: 19px; color: var(--ap-mut); margin-top: 10px; }
.ap-btn { display: inline-flex; align-items: center; justify-content: center; height: 54px; padding: 0 34px; background: var(--ap-p); color: #fff !important; border: 1.5px solid var(--ap-p); border-radius: 6px; font-size: 19px; font-weight: 600; white-space: nowrap; }
.ap-btn:hover { background: #17609f; }
.ap-btn-o { background: #fff; color: var(--ap-p) !important; }
.ap-btn-o:hover { background: var(--ap-l); }

/* ---------- hero ---------- */
.section.ap-hero { padding: 0 !important; min-height: 576px; }
.ap-hero .section-bg::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(244,248,252,.96) 0%, rgba(244,248,252,.85) 38%, rgba(244,248,252,0) 55%); }
.ap-hero-in { position: relative; min-height: 576px; display: flex; align-items: center; }
.ap-hero-txt { max-width: 620px; padding: 40px 0 46px; }
.ap-eyebrow { font-size: 17px; font-weight: 700; color: var(--ap-p); text-transform: uppercase; letter-spacing: .4px; margin-bottom: 14px; }
.ap-hero h1 { margin: 0 0 16px; font-size: 66px; line-height: 1.17; font-weight: 800; color: var(--ap-n); letter-spacing: -1.5px; }
.ap-hero h1 span { color: var(--ap-p); }
.ap-lead { font-size: 22px; line-height: 1.45; color: #2c3446; margin-bottom: 20px; }
.ap-ticks { list-style: none; margin: 0 0 28px; padding: 0; }
.ap-ticks li { display: flex; align-items: center; gap: 14px; font-size: 20px; color: #2c3446; margin: 0 0 12px; }
.ap-ticks .ap-mi { width: 28px; height: 28px; }
.ap-btns { display: flex; gap: 22px; }
.ap-btns .ap-btn { height: 56px; }
.ap-btns .ap-btn:first-child { padding: 0 34px; }
.ap-report { position: absolute; right: -60px; top: 304px; width: 282px; background: #fff; border-radius: 10px; box-shadow: 0 12px 34px rgba(13, 43, 102, .14); padding: 22px 24px 20px; }
.ap-report b { display: block; font-size: 21px; font-weight: 600; color: var(--ap-n); }
.ap-report span { display: block; white-space: nowrap; font-size: 13px; color: var(--ap-mut); margin-top: 6px; }
.ap-bars { display: flex; align-items: flex-end; gap: 18px; height: 92px; margin: 18px 6px 0; border-bottom: 1px solid #dfe6ef; }
.ap-bars i { flex: 1; background: linear-gradient(180deg, var(--ap-p2), var(--ap-p)); border-radius: 2px 2px 0 0; }

/* ---------- dịch vụ ---------- */
.section.ap-svc { padding: 34px 0 32px !important; }
.ap-svc .ap-head { margin-bottom: 34px; }
.ap-svc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 24px; }
.ap-sc { display: flex; gap: 26px; background: #fff; border-radius: 8px; padding: 32px 18px 30px 30px; box-shadow: 0 2px 10px rgba(13, 43, 102, .04); }
.ap-sc-ic { width: 64px !important; height: 64px !important; margin-top: 2px; }
.ap-sc h3 { margin: 0 0 8px; white-space: nowrap; font-size: 21px; font-weight: 600; color: var(--ap-n); }
.ap-sc-d { font-size: 17px; line-height: 1.55; color: var(--ap-mut); margin-bottom: 12px; }
.ap-sc a { color: var(--ap-p) !important; font-size: 17px; font-weight: 500; }

/* ---------- bảng giá + quy trình ---------- */
.section.ap-price { padding: 34px 0 12px !important; }
.ap-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.ap-plan { position: relative; display: flex; flex-direction: column; align-items: center; border: 1px solid #e3eaf3; border-radius: 8px; padding: 36px 30px 28px; text-align: center; background: #fff; }
.ap-plan-hot { border: 2px solid var(--ap-p2); background: linear-gradient(180deg, #e2f0fd 0, #e2f0fd 36px, #fff 36px); }
.ap-plan em { position: absolute; top: 0; left: 50%; transform: translateX(-50%); background: var(--ap-p2); color: #fff; font-style: normal; font-size: 14px; font-weight: 700; text-transform: uppercase; padding: 6px 24px; border-radius: 0 0 10px 10px; }
.ap-plan h3 { margin: 6px 0 10px; font-size: 29px; font-weight: 700; color: var(--ap-n); }
.ap-plan-hot h3 { margin-top: 18px; }
.ap-pl-q { font-size: 18px; color: var(--ap-mut); }
.ap-pl-v { font-size: 38px; font-weight: 800; color: var(--ap-p); margin: 14px 0 18px; letter-spacing: -.5px; }
.ap-plan ul { list-style: none; margin: 0 0 26px; padding: 0; text-align: left; flex: 1; }
.ap-plan li { position: relative; font-size: 19px; color: #2c3446; padding-left: 48px; margin: 0 0 14px; }
.ap-plan li::before { content: '✓'; position: absolute; left: 4px; top: -2px; color: var(--ap-p2); font-size: 22px; font-weight: 600; }
.ap-plan .ap-btn { width: 100%; height: 52px; }
.ap-h2-proc { text-align: center; margin-top: 64px !important; margin-bottom: 30px !important; }
.ap-proc { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; text-align: center; }
.ap-st { position: relative; }
.ap-st b { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; width: 66px; height: 66px; border-radius: 50%; background: var(--ap-p); color: #fff; font-size: 20px; font-weight: 600; }
.ap-st:not(:last-child)::after { content: '→'; position: absolute; top: 18px; left: calc(50% + 50px); right: calc(-50% + 50px); border-top: 1.5px solid #a9cdf0; height: 0; color: var(--ap-p2); font-size: 22px; line-height: 0; text-align: center; padding-top: 0; }
.ap-st h3 { margin: 14px 0 8px; font-size: 22px; font-weight: 600; color: var(--ap-n); }
.ap-st div { font-size: 18px; line-height: 1.5; color: var(--ap-mut); }

/* ---------- vì sao ---------- */
.section.ap-why { padding: 36px 0 30px !important; margin-top: 24px; }
.ap-why .ap-h2 { color: #fff !important; }
.ap-why .ap-sub { color: rgba(255, 255, 255, .9); font-size: 18px; }
.ap-why .ap-head { margin-bottom: 30px; }
.ap-why-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); text-align: center; }
.ap-wi { padding: 0 14px; color: #fff; }
.ap-wi + .ap-wi { border-left: 1px solid rgba(255, 255, 255, .35); }
.ap-wi .ap-mi { width: 72px; height: 72px; background: #fff; }
.ap-wi h3 { margin: 12px 0 12px; font-size: 22px; font-weight: 600; color: #fff; }
.ap-wi div { font-size: 17px; line-height: 1.55; color: rgba(255, 255, 255, .88); }

/* ---------- đội ngũ ---------- */
.section.ap-team { padding: 42px 0 34px !important; }
.ap-team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; }
.ap-tc { border: 1px solid #e3eaf3; border-radius: 6px; overflow: hidden; text-align: center; padding-bottom: 14px; background: #fff; }
.ap-tc-img { aspect-ratio: 286 / 208; background: #e8eff7 center 25% / cover no-repeat; }
.ap-tc h3 { margin: 14px 0 4px; font-size: 21px; font-weight: 600; color: var(--ap-n); }
.ap-tc div:last-child { font-size: 17px; color: var(--ap-mut); }

/* ---------- đánh giá ---------- */
.section.ap-quote { padding: 26px 0 26px !important; }
.ap-quote .ap-head { margin-bottom: 26px; }
.ap-quote .ap-sub { font-size: 16px; margin-top: 6px; }
.ap-q-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.ap-qc { display: flex; gap: 26px; background: #fff; border-radius: 8px; padding: 26px 26px 28px; }
.ap-qm { font: 800 82px/0.9 Georgia, serif; color: var(--ap-p2); height: 50px; }
.ap-qt { font-size: 20px; line-height: 1.5; color: #2c3446; }
.ap-qa { font-size: 17px; color: var(--ap-mut); margin-top: 14px; }

/* ---------- hỏi đáp + form ---------- */
.section.ap-faqsec { padding: 30px 0 18px !important; }
.ap-faq-wrap { display: grid; grid-template-columns: minmax(0, 637fr) minmax(0, 573fr); gap: 0 30px; align-items: start; }
.ap-faq .ap-h2 { font-size: 38px !important; margin-bottom: 18px !important; }
.ap-faq details { border: 1px solid #e3eaf3; border-radius: 6px; margin-bottom: 12px; background: #fff; }
.ap-faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 20px; font-size: 19px; font-weight: 500; color: #1d2433; cursor: pointer; }
.ap-faq summary::-webkit-details-marker { display: none; }
.ap-faq summary::after { content: '+'; font-size: 26px; font-weight: 400; color: var(--ap-p); line-height: 1; }
.ap-faq details[open] summary { color: var(--ap-p); }
.ap-faq details[open] summary::after { content: '−'; }
.ap-faq details > div { padding: 0 20px 16px; font-size: 18px; line-height: 1.55; color: var(--ap-mut); }
.ap-form { background: #eaf3fc; border-radius: 6px; padding: 26px 30px 22px; }
.ap-form h3 { margin: 0 0 4px; font-size: 31px; font-weight: 700; color: var(--ap-p); letter-spacing: -.4px; }
.ap-form-p { font-size: 18px; color: #2c3446; margin-bottom: 14px; }
.ap-form .wpcf7-form .ap-g2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.ap-form .wpcf7-form div > p:has(> label ~ label) { display: contents; }
.ap-form label { display: block; font-size: 16px; font-weight: 500; color: #1d2433; margin-bottom: 14px; }
.ap-form input[type=text], .ap-form input[type=tel], .ap-form input[type=email], .ap-form select { width: 100%; height: 48px; margin: 6px 0 0; border: 1px solid #cfdcea; border-radius: 5px; background: #fff; box-shadow: none; font-size: 15px; padding: 0 18px; }
.ap-form select { color: #6b7385; }
.ap-form input[type=submit] { width: 100%; height: 52px; margin: 6px 0 0; background: var(--ap-p); color: #fff; border: 0; border-radius: 6px; font-size: 19px; font-weight: 600; text-transform: none; letter-spacing: 0; }
.ap-form .ap-note { font-size: 15px; color: var(--ap-mut); margin-top: 12px; }
.ap-form .wpcf7-form { position: relative; } .ap-form .wpcf7-spinner { position: absolute; right: 14px; bottom: 52px; margin: 0; }
.ap-form .wpcf7-not-valid-tip { font-size: 13px; }

/* ---------- footer ---------- */
.section.ap-footer { padding: 30px 0 0 !important; color: #fff; }
#footer .section.ap-footer, #footer > .section:first-child { border-top: 0 !important; }
.ap-ft { display: grid; grid-template-columns: 1.55fr 1fr 1fr; padding-bottom: 20px; }
.ap-ft > div { padding: 6px 0 6px; }
.ap-ft > div + div { border-left: 1px solid rgba(255, 255, 255, .3); padding-left: 60px; }
.ap-ft-logo { display: inline-flex; align-items: center; gap: 16px; color: #fff !important; margin-top: 10px; }
.ap-ft-logo .ap-mi { width: 64px; height: 64px; background: #fff; }
.ap-ft-logo span { font-size: 30px; font-weight: 600; white-space: nowrap; }
.ap-ft-tag { font-size: 17px; margin: 4px 0 0 80px; color: rgba(255, 255, 255, .92); }
.ap-ft-col h4 { margin: 0 0 12px; font-size: 18px; font-weight: 600; color: #fff; }
.ap-ft-col a, .ap-ft-addr { display: flex; align-items: flex-start; gap: 18px; color: rgba(255, 255, 255, .93) !important; font-size: 16.5px; line-height: 1.45; margin-bottom: 6px; }
.ap-ft-col .ap-mi { width: 20px; height: 20px; background: #fff; margin-top: 2px; }
.ap-ft-bot { display: flex; justify-content: space-between; border-top: 1px solid rgba(255, 255, 255, .3); padding: 18px 0 22px; font-size: 15px; }
.ap-ft-bot a { color: #fff !important; }

/* ---------- mobile ---------- */
@media (max-width: 849px) {
  #header .header-main { height: 64px; }
  #logo a { font-size: 21px !important; gap: 10px; } #logo a::before { width: 36px; height: 36px; flex-basis: 36px; }
  .ap-h2 { font-size: 28px !important; letter-spacing: -.3px; }
  .ap-sub { font-size: 16px; }
  .ap-svc-grid, .ap-plans, .ap-faq-wrap, .ap-q-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .ap-proc, .ap-why-grid, .ap-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 14px; }
  .ap-st::after { display: none; }
  .ap-wi div br, .ap-st div br, .ap-sc-d br { display: none; }
  .ap-st h3, .ap-wi h3 { font-size: 18px; } .ap-st div, .ap-wi div { font-size: 15px; }
  .ap-wi { padding: 0 6px; } .ap-wi + .ap-wi { border-left: 0; } .ap-wi .ap-mi { width: 52px; height: 52px; }
  .ap-sc { padding: 22px 18px; gap: 18px; } .ap-sc h3 { white-space: normal; } .ap-sc-ic { width: 48px !important; height: 48px !important; }
  .ap-tc h3 { font-size: 17px; } .ap-tc div:last-child { font-size: 14px; }
  .ap-qm { font-size: 60px; } .ap-qt { font-size: 17px; } .ap-qc { gap: 14px; padding: 20px 18px; }
  .ap-faq .ap-h2 { font-size: 26px !important; } .ap-faq summary { font-size: 17px; }
  .ap-faq-wrap { gap: 28px; }
  .ap-form { padding: 22px 18px; } .ap-form h3 { font-size: 24px; }
  .ap-form .wpcf7-form .ap-g2 { grid-template-columns: minmax(0, 1fr); }
  .ap-ft { grid-template-columns: minmax(0, 1fr); gap: 20px; } .ap-ft > div + div { border-left: 0; padding-left: 0; }
  .ap-ft-tag { margin-left: 0; } .ap-ft-logo span { font-size: 25px; }
  .ap-ft-bot { flex-direction: column; gap: 6px; }
}
/* mob-hero */ @media (max-width: 849px) {
  .section.ap-hero { padding-top: 250px !important; min-height: 0; background-color: #f4f8fc !important; }
  .ap-hero .section-bg { top: 0; bottom: auto; height: 250px; }
  .ap-hero .section-bg img.bg { object-position: 72% 30% !important; }
  .ap-hero .section-bg::after { display: none; }
  .ap-hero-in { min-height: 0; display: block; }
  .ap-hero-txt { padding: 24px 0 30px; }
  .ap-eyebrow { font-size: 14px; }
  .ap-hero h1 { font-size: 38px; letter-spacing: -.8px; }
  .ap-lead { font-size: 17px; } .ap-ticks li { font-size: 16px; gap: 10px; } .ap-ticks .ap-mi { width: 22px; height: 22px; }
  .ap-btns { flex-direction: column; gap: 12px; } .ap-btns .ap-btn { width: 100%; font-size: 17px; }
  .ap-report { display: none; }
} /* /mob-hero */
/* mid-fix */ @media (min-width: 850px) and (max-width: 1399px) {
  #header .header-button-1 .button { margin-left: 24px; padding: 0 20px; }
  .ap-report { right: 0; }
  .ap-sc { gap: 18px; padding: 26px 20px; } .ap-sc h3 { white-space: normal; font-size: 19px; }
}
@media (min-width: 850px) and (max-width: 1199px) {
  .ap-hero h1 { font-size: 52px; } .ap-hero-txt { max-width: 520px; } .ap-report { display: none; }
  .ap-svc-grid, .ap-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-sc-d br, .ap-wi div br { display: none; }
  .ap-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ap-faq-wrap { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .ap-ft > div + div { padding-left: 30px; }
} /* /mid-fix */
/* _midwidth: header Flatsome ở 850-1399px (laptop nhỏ/tablet ngang) — menu dựng theo mockup 1440 tràn phải; dùng chung mọi site */
@media (min-width: 850px) and (max-width: 1399px) {
  #header .header-nav-main > li, #header .header-bottom-nav > li { margin-left: 6px !important; margin-right: 6px !important; }
  #header .header-nav-main > li > a, #header .header-bottom-nav > li > a { font-size: 14px !important; }
  #header .header-search-form { max-width: 300px !important; width: 300px !important; margin-left: 20px !important; }
}
@media (min-width: 850px) and (max-width: 1199px) {
  #logo { width: auto !important; max-width: 210px !important; } #logo a { font-size: 21px !important; }
  #header .header-main .flex-right .header-button-1, #header .header-main .flex-right li.html, #header .header-search-form, #top-bar .flex-right { display: none !important; }
  #header .header-nav-main > li, #header .header-bottom-nav > li { margin-left: 3px !important; margin-right: 3px !important; }
  #header .header-nav-main > li > a, #header .header-bottom-nav > li > a { font-size: 13px !important; }
  #header .flex-col { min-width: 0; } #header .header-inner, #header .header-bottom .container { overflow: hidden; }
}
.col-inner a[href^="mailto"], .col-inner a[href^="tel"] { overflow-wrap: anywhere; }
/* ruler:auto BEGIN — tools/astra-bridge/lab/ruler_fix.py, đừng sửa tay */
/* ruler:auto END */
/* ruler:manual — so dải header/footer với mockup 10-01: khung header rộng hơn (logo x105, nút tới x1337), menu dịch phải; footer gọn như mockup, logo footer to hơn (ruler x1.26) */
@media (min-width: 1400px) {
  #header .header-main .header-inner { max-width: 1270px; }
  #header .header-nav-main > li { margin: 0 26px !important; }
}
@media (min-width: 850px) {
  #logo a::before { width: 60px; height: 60px; flex-basis: 60px; }
  .section.ap-footer { padding-top: 26px !important; }
  .ap-ft { padding-bottom: 14px; }
  .ap-ft-logo .ap-mi { width: 76px; height: 76px; }
  .ap-ft-logo span { font-size: 33px; }
  .ap-ft-tag { margin: -12px 0 0 92px; }
  .ap-ft-col h4 { margin-bottom: 8px; }
  .ap-ft-col a, .ap-ft-addr { margin-bottom: 2px; font-size: 16px; }
  .ap-ft-bot { padding: 14px 0 18px; }
}
@media (min-width: 1400px) { #header .header-button-1 .button { margin-left: 120px; } }
/* /ruler:manual */

