/* NHÂN LAB / UI refresh v3 — Loaded AFTER the existing responsive stylesheet.
   Slim vector icons and warranty profile redesign; preserves the original brand palette. */
:root { --nl-ink:#17251c; --nl-muted:#718077; --nl-border:#e2e9e1; --nl-green:#68a735; }

/* Remove all old decorative label/pill headings site-wide. */
.section-label, .warranty-badge { display: none !important; }
.section-heading h2 { margin-top: 0; }
.page-banner .section-label + h1 { margin-top: 0; }

/* Consistent fine-outline, monochrome web-safe icon system (non-Apple artwork). */
.nl-ui-icon { display: inline-flex; align-items: center; justify-content: center; vertical-align: middle; color: inherit; flex-shrink: 0; }
.nl-ui-icon svg { display: block; width: 1.15em; height: 1.15em; stroke-width: 1.75; }
.arrow-down.nl-ui-icon { width: 13px; height: 13px; margin-left: 3px; }
.arrow-down.nl-ui-icon svg { width: 12px; height: 12px; }
.contact-icon.nl-ui-icon svg, .contact-card-icon.nl-ui-icon svg { width: 21px; height: 21px; }
.contact-card-icon.nl-ui-icon { font-size: 22px; }
.service-icon.nl-ui-icon { font-size: 30px; }
.service-icon.nl-ui-icon svg { width: 34px; height: 34px; }
.about-stat-icon.nl-ui-icon svg, .culture-icon.nl-ui-icon svg { width: 29px; height: 29px; }
.cccd-upload-icon.nl-ui-icon svg { width: 36px; height: 36px; }
.nl-step-icon.nl-ui-icon svg { width: 24px; height: 24px; }
.nl-confirm-icon-wrap.nl-ui-icon svg { width: 26px; height: 26px; }
.nl-receipt-label .nl-ui-icon { margin-right: 5px; font-size: 14px; }
.news-meta-item .nl-ui-icon { margin-right: 5px; font-size: 14px; }
.news-toast-icon.nl-ui-icon svg {width:22px;height:22px;}
.nl-sparkle[data-nl-icon] svg { width: 15px; height: 15px; }

/* Homepage: arrows remain available to assistive tech and by click zones, but not visible. */
.hero-slider .hero-slider-btn {
  top: 0; bottom: 0; width: 18%; height: 100%; transform: none;
  border: 0; border-radius: 0; padding: 0; background: transparent !important;
  color: transparent !important; font-size: 0 !important; box-shadow: none !important;
  opacity: 1 !important; cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.hero-slider .hero-slider-btn:hover, .hero-slider .hero-slider-btn:active { background: transparent !important; }
.hero-slider .hero-slider-btn:focus-visible { outline: 3px solid #68a735; outline-offset: -4px; }
.hero-slider .hero-slider-btn--prev { left: 0; right: auto; }
.hero-slider .hero-slider-btn--next { right: 0; left: auto; }
.hero-slider-dots { bottom: 16px; gap: 7px; pointer-events: auto; }
.hero-slider-dot { height: 5px; width: 18px; border-radius: 6px; border: 0; background: rgba(255,255,255,.48); }
.hero-slider-dot.is-active { width: 28px; background: #fff; transform: none; }

/* WARRANTY / Intro + form */
.warranty-page { background:#f8faf7; }
.warranty-hero {
  padding: 62px 0 86px; background: linear-gradient(180deg, #eaf5e4 0%, #f8faf7 100%);
  transition: padding .32s ease;
}
.warranty-hero::before { opacity: .38; }
.warranty-container { width: min(1120px, calc(100% - 40px)); max-width: none; }
.warranty-hero-content { max-width: 720px; }
.warranty-hero h1 { font-size: clamp(32px,4vw,46px); margin: 0 0 14px; line-height:1.15; letter-spacing:-.045em; color:#111d16; transition:font-size .28s ease; }
.warranty-hero-desc { font-size: 15px; max-width: 600px; margin: auto; line-height:1.7; color:#69776d; }
.warranty-body { margin-top: -32px; padding:0 0 74px; }
.warranty-flow { max-width: 760px; margin: 0 auto; transition: max-width .3s ease; }
.warranty-search-card {
  border:1px solid #e2eae0; background: #fff; border-radius: 22px;
  padding: 29px 32px 24px; box-shadow:0 12px 42px rgba(34,67,34,.055); transition:padding .3s ease, box-shadow .3s ease;
}
.warranty-search-header { display:flex; align-items:center; gap:16px; margin-bottom: 24px; }
.warranty-search-icon { background:#eff6ea; border-radius:14px; color:#548c31; width:46px; height:46px; }
.warranty-search-icon svg { width:23px; height:23px; }
.warranty-search-header h2 { margin:0 0 4px; font-size:20px; font-weight:750; color:#19261f; line-height:1.3; }
.warranty-search-header p { font-size:13px; color:#758277; line-height:1.5; }
.warranty-label { display:block; font-size:12px; font-weight:680; color:#36453c; margin: 0 0 9px; }
.warranty-form {
  display:flex; align-items:stretch; gap:8px; padding:7px;
  background:#f9fbf8; border:1px solid #dfe7df; border-radius:14px; box-shadow:none;
}
.warranty-form:focus-within { border-color:#8dc66d; box-shadow:0 0 0 3px rgba(113,180,61,.12); }
.warranty-input-wrap { display:flex; flex:1; min-width:0; align-items:center; gap:10px; padding:0 13px; }
.warranty-input-wrap .nl-ui-icon { font-size:18px; color:#9da9a2; }
.warranty-form input {
  background:transparent; border:0; box-shadow:none; width:100%; min-width:0; height:44px;
  font-family:inherit; color:#1d2f24; font-size:15px; letter-spacing:.035em; font-weight:650;
}
.warranty-form input:focus { outline:0; }
.warranty-form input::placeholder { color:#9ea8a0; font-weight:450; letter-spacing:0; }
.warranty-form button { display:flex; align-items:center; justify-content:center; gap:10px; min-width:144px; border:0; border-radius:10px; background:#69ae36; color:#fff; font-size:14px; font-weight:750; height:44px; padding:0 22px; box-shadow:0 4px 10px rgba(105,174,54,.17); }
.warranty-form button:hover:not(:disabled) { background:#5e9d31; }
.warranty-form button .nl-ui-icon { font-size:15px; }
.warranty-form button:disabled { opacity:.6; cursor:wait; }
.warranty-info-note { display:flex; align-items:flex-start; gap:9px; margin:17px 0 0; padding:0; background:transparent; border:0; color:#88948b; font-size:12px; line-height:1.65; }
.warranty-info-note .nl-ui-icon { font-size:14px; padding-top:1px; }
.warranty-help-row { display:flex; align-items:center; justify-content:center; gap:9px; padding:22px 12px; color:#79867b; font-size:13px; }
.warranty-help-row .nl-ui-icon { color:#6b9a53; font-size:17px; }
.warranty-help-row a { color:#3f7d2b; font-weight:750; white-space:nowrap; }
.warranty-help-row a:hover { text-decoration:underline; }
.result-box { scroll-margin-top: 108px; }
.result-box:empty { display:none; }
.warranty-result-message { display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #e7eae5; border-radius:16px; padding:20px; margin-top:18px; font-size:14px; line-height:1.5; box-shadow:0 5px 22px rgba(20,45,25,.04); }
.warranty-result-message .nl-ui-icon { font-size:21px; }
.warranty-result-message--error { color:#a14040; background:#fff8f7; border-color:#f3dbd8; }
.warranty-result-message--warning { color:#986722; background:#fffaf1; border-color:#f4e8ca; }

/* After a successful lookup: shrink the heading and form; widen the profile. */
.warranty-page.has-result .warranty-hero { padding: 24px 0 24px; }
.warranty-page.has-result .warranty-hero h1 { font-size:clamp(25px,3vw,30px); margin-bottom:0; }
.warranty-page.has-result .warranty-hero-desc { display:none; }
.warranty-page.has-result .warranty-body { margin-top:0; padding-top:0; }
.warranty-page.has-result .warranty-flow { max-width:1120px; }
.warranty-page.has-result .warranty-search-card { max-width:1120px; padding:18px 24px; margin:0 auto 22px; border-radius:17px; box-shadow:0 6px 24px rgba(32,67,42,.035); }
.warranty-page.has-result .warranty-search-header { margin-bottom:12px; }
.warranty-page.has-result .warranty-search-header h2 { font-size:16px; margin:0; }
.warranty-page.has-result .warranty-search-header p, .warranty-page.has-result .warranty-info-note { display:none; }
.warranty-page.has-result .warranty-search-icon { width:32px; height:32px; border-radius:9px; }
.warranty-page.has-result .warranty-search-icon svg { width:17px; height:17px; }
.warranty-page.has-result .warranty-label { margin:0 0 6px; }
.warranty-page.has-result .warranty-form input, .warranty-page.has-result .warranty-form button { height:38px; }

/* Warranty result / readable, non-redundant grouped data. */
.warranty-profile {
  overflow:hidden; border-radius:22px; border:1px solid #e0e9df; background:#fff;
  box-shadow:0 18px 52px rgba(19,53,24,.06); animation:nlResultAppear .36s ease both;
}
@keyframes nlResultAppear {from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.warranty-profile-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:15px; padding:28px 32px; border-bottom:1px solid #eaf0e8; }
.warranty-profile-identity { display:flex; align-items:center; gap:16px; }
.warranty-profile-mark { width:52px; height:52px; background:#edf7e9; color:#5b9d32; border-radius:16px; display:flex; align-items:center; justify-content:center; }
.warranty-profile-mark svg { width:27px; height:27px; }
.warranty-profile-kicker { font-size:11px; font-weight:650; color:#8b998e; margin-bottom:3px; }
.warranty-profile-head h2 {font-size:24px; color:#18241b; letter-spacing:-.028em; line-height:1.2; margin:0 0 3px; font-weight:780;}
.warranty-profile-head h2:focus {outline:none;}
.warranty-profile-code { color:#637367; font-size:12px; }
.warranty-profile-code strong { color:#2d4635; font-weight:750; letter-spacing:.03em; }
.warranty-profile-status { display:inline-flex; align-items:center; gap:8px; border-radius:999px; padding:10px 14px; font-size:12px; font-weight:720; border:1px solid transparent; }
.warranty-profile-status .nl-ui-icon svg { width:16px; height:16px; }
.warranty-profile-status.is-active { background:#eef8e7; border-color:#d7ecc9; color:#4c8832; }
.warranty-profile-status.is-expired { background:#fff7ea; border-color:#f2e0bd; color:#a16c1b; }
.warranty-profile-status.is-unknown { background:#f0f3f1; border-color:#e3e9e5; color:#647468; }
.warranty-profile-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:22px 32px; background:#f8fbf6; border-bottom:1px solid #e9f0e7; }
.warranty-profile-summary > div { min-width:0; padding:2px 24px; border-left:1px solid #dce8d9; }
.warranty-profile-summary > div:first-child {border-left:0; padding-left:0;}
.warranty-profile-summary > div:last-child { padding-right:0; }
.warranty-profile-summary span { display:block; color:#7a897d; font-size:12px; margin-bottom:6px; }
.warranty-profile-summary strong { display:block; color:#243729; font-size:18px; font-weight:780; overflow-wrap:anywhere; line-height:1.35; }
.warranty-profile-summary strong.warranty-expiry { color:#4a8c2f; }
.warranty-profile-content { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:20px; padding:26px 30px 30px; }
.warranty-detail-panel { border:1px solid #e7ede6; border-radius:16px; padding:22px 24px; min-width:0; background:#fff; }
.warranty-detail-panel h3 { display:flex; align-items:center; gap:10px; color:#22392a; font-size:15px; font-weight:760; letter-spacing:-.01em; margin:0 0 22px; padding-bottom:16px; border-bottom:1px solid #eef2ec; text-transform:none; }
.warranty-detail-panel h3 .nl-ui-icon { color:#579b37; font-size:19px; }
.warranty-detail-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px 24px; }
.warranty-detail-panel--patient .warranty-detail-fields { grid-template-columns:1fr; }
.warranty-detail-panel--product { grid-column:1 / -1; }
.warranty-detail-panel--meta { grid-column:1 / -1; }
.warranty-field { min-width:0; }
.warranty-field--wide { grid-column:1 / -1; }
.warranty-field dt { color:#89968c; font-size:12px; font-weight:540; margin:0 0 6px; }
.warranty-field dd { color:#223329; font-size:14px; font-weight:690; line-height:1.65; overflow-wrap:anywhere; white-space:pre-line; margin:0; }
.warranty-detail-panel--patient .warranty-field dd { font-size:16px; }
.warranty-profile-foot { display:flex; align-items:center; gap:9px; padding:17px 32px; border-top:1px solid #edf1eb; color:#8b968e; font-size:12px; line-height:1.55; }
.warranty-profile-foot .nl-ui-icon { color:#7cae65; font-size:16px; }

@media (max-width: 900px) {
  .warranty-profile-content { grid-template-columns:1fr; }
  .warranty-detail-panel--product,.warranty-detail-panel--meta { grid-column:auto; }
}
@media (max-width: 640px) {
  .warranty-hero { padding:38px 0 65px; }
  .warranty-container { width:min(100% - 28px,1120px); }
  .warranty-body { margin-top:-26px; padding-bottom:36px; }
  .warranty-search-card { padding:20px 18px; border-radius:17px; }
  .warranty-search-header { gap:11px; margin-bottom:17px; }
  .warranty-search-header h2 { font-size:17px; }
  .warranty-search-header p { font-size:12px; }
  .warranty-search-icon { width:39px; height:39px; border-radius:12px; }
  .warranty-form { gap:7px; background:transparent; border:0; padding:0; box-shadow:none; flex-direction:column; }
  .warranty-form:focus-within { box-shadow:none; }
  .warranty-input-wrap { background:#f9fbf8; border:1px solid #dfe7df; min-height:47px; border-radius:11px; padding:0 13px; }
  .warranty-input-wrap:focus-within { border-color:#8dc66d; box-shadow:0 0 0 3px rgba(113,180,61,.12); }
  .warranty-form button { width:100%; height:44px; min-width:0; }
  .warranty-page.has-result .warranty-hero { padding:18px 0 14px; }
  .warranty-page.has-result .warranty-search-card { padding:15px; margin-bottom:15px; }
  .warranty-page.has-result .warranty-search-header { margin-bottom:10px; }
  .warranty-profile { border-radius:16px; }
  .warranty-profile-head { padding:20px 18px; }
  .warranty-profile-head h2 { font-size:21px; }
  .warranty-profile-mark { width:43px; height:43px; border-radius:12px; }
  .warranty-profile-mark svg { width:23px; height:23px; }
  .warranty-profile-status { margin-left:59px; padding:7px 10px; font-size:11px; }
  .warranty-profile-summary { padding:15px 17px; gap:12px; grid-template-columns:1fr 1fr; }
  .warranty-profile-summary > div { border:0; padding:0; }
  .warranty-profile-summary > div:last-child { grid-column:1 / -1; border-top:1px solid #dce8d9; padding-top:10px; }
  .warranty-profile-summary strong {font-size:15px;}
  .warranty-profile-content { padding:14px; gap:12px; }
  .warranty-detail-panel { padding:17px; border-radius:13px; }
  .warranty-detail-panel h3 { padding-bottom:12px; margin-bottom:15px; }
  .warranty-detail-fields { gap:15px; grid-template-columns:1fr; }
  .warranty-profile-foot { padding:14px 17px; align-items:flex-start; }
  .warranty-help-row {padding:15px 0;}
}
@media(prefers-reduced-motion:reduce){.warranty-page *{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}}

/* NHAN LAB v6: remove footer decoration on ALL pages, including responsive. */
.footer-col h4::after { content: none !important; display: none !important; }
.footer-col h4 { margin-bottom: 19px; }
/* Interactive full-height edge hit targets without visible arrow symbols. */
.hero-slider .hero-slider-btn { width: clamp(42px, 14%, 210px); appearance: none; -webkit-appearance: none; }
.hero-slider .hero-slider-btn:focus-visible { outline: 2px solid #72b63d !important; outline-offset: -6px; }
.nl-ui-icon svg { stroke-width: 1.7; }
.nl-ui-icon { line-height: 1; }
.nl-ui-icon[data-nl-icon="tooth"] svg { width: 1.28em; height: 1.28em; }
.footer-contact .contact-icon.nl-ui-icon { color: #a4cc85; }
.news-toast-icon .nl-ui-icon svg, .nl-toast-icon .nl-ui-icon svg { width: 21px; height: 21px; }

.news-meta-item .nl-ui-icon, .news-cta-btn-phone .nl-ui-icon, .news-cta-btn-share .nl-ui-icon { margin-right:4px; }
.news-empty-icon.nl-ui-icon svg { width:32px; height:32px; }
.news-reset-btn .nl-ui-icon svg { width:15px; height:15px; }
.recruitment-page .nl-ui-icon svg { vertical-align:middle; }

/* NHÂN LAB V7: consistent homepage footer styling throughout the site */
.footer { background: #08140e; }
.footer-inner { align-items: start; }
.footer-col h4::after, .footer .footer-col h4::after { display:none !important; content:none !important; }
.footer-col h4 { margin-bottom:19px; }
.footer-col .footer-credo { display:none !important; }
.footer-col .footer-links a { text-decoration:none; }
.footer .footer-contact .contact-icon { color:#a5d07e; }
.footer .footer-contact .contact-icon svg { width:19px; height:19px; }
.nl-ui-icon svg { stroke-width: 1.7; }
.service-card .service-icon.nl-ui-icon,
.about-stat-icon.nl-ui-icon { display:inline-flex; align-items:center; justify-content:center; color:#283b32; }
.service-card .service-icon.nl-ui-icon svg { width:32px; height:32px; }
.service-card:hover .service-icon.nl-ui-icon { color:#ffffff; }
.service-card .service-link .nl-link-arrow { font-size:14px; margin-left:2px; }
.nl-receipt-label .nl-ui-icon { vertical-align:-2px; }
.cccd-upload-icon.nl-ui-icon svg { width:38px; height:38px; }
.nl-sparkle.nl-ui-icon svg { width:18px; height:18px; }
.address-box-header label .nl-ui-icon, .address-toggle-btn .nl-ui-icon { margin-right:6px; }
.table-scroll-hint .nl-ui-icon { margin-right:4px; }
@media (max-width: 767px) {
  .footer-inner { row-gap: 27px !important; }
  .footer-col h4::after { display:none !important; }
}
