/* Shared Public components, loaded after template styles. */
body.public-site :is(h1,h2,h3) { letter-spacing:normal; }
body.public-site h1 { font-size:var(--public-text-h1); line-height:1.25; }
body.public-site h2 { font-size:var(--public-text-h2); line-height:1.3; }
body.public-site h3 { font-size:var(--public-text-h3); line-height:1.3; font-weight:600; }
body.public-site :is(.ht-public-shell, .sg-page, .public-recovery) { font-family:var(--ht-font-family); }
body.public-site :is(.wrap,.sg-wrap) { max-width:var(--ht-container-width); padding-inline:var(--ht-gutter); }
body.public-site :where(input:not([type=hidden]):not([type=file]):not([type=radio]):not([type=checkbox]),textarea,select) { font-size:var(--public-text-body); min-height:3rem; border-color:var(--ht-color-control-border); border-radius:var(--ht-radius-control); }
body.public-site :is(input,textarea,select)[aria-invalid=true] { border-color:var(--ht-color-error); }
body.public-site :is(.button,.sg-button,.pol-button,.qo-submit,.qo-information-button,.qo-group-button,.qo-process-button,.qo-faq-button) {
  min-height:3rem; height:auto; max-width:100%; white-space:normal;
  font-size:var(--public-text-button); font-weight:600; line-height:1.4;
  border-radius:var(--ht-radius-control); gap:.5rem;
}
body.public-site :is(.primary,.ap-primary,.pol-primary,.header-cta,.qo-submit,.qo-information-button,.qo-group-button:not(.qo-group-button-outline),.qo-process-button,.qo-faq-button,.hp-pricing-cta,.contact-hero-zalo,.contact-close-zalo,.sg-button:not(.sg-outline)) {
  --ht-button-bg:var(--ht-color-primary);
  color:var(--ht-color-bg); background:var(--ht-button-bg); border-color:var(--ht-button-bg);
}
@media (hover:hover) and (pointer:fine) {
body.public-site :is(.primary,.ap-primary,.pol-primary,.header-cta,.qo-submit,.qo-information-button,.qo-group-button,.qo-process-button,.qo-faq-button,.hp-pricing-cta,.contact-hero-zalo,.contact-close-zalo,.sg-button:not(.sg-outline)):hover { --ht-button-bg:var(--ht-color-primary-hover); } }
body.public-site :is(.primary,.ap-primary,.pol-primary,.header-cta,.qo-submit,.qo-information-button,.qo-group-button,.qo-process-button,.qo-faq-button,.hp-pricing-cta,.contact-hero-zalo,.contact-close-zalo,.sg-button:not(.sg-outline)):active { --ht-button-bg:var(--ht-color-primary-active); }
body.public-site :is(.secondary,.ap-secondary,.pol-secondary,.sg-outline,.qo-group-button-outline) { border-color:var(--ht-control-border, var(--ht-color-control-border)); }
body.public-site :is(.button,.sg-button,.pol-button):focus-visible { outline:3px solid var(--ht-color-primary); outline-offset:3px; box-shadow:0 0 0 2px var(--ht-color-bg); }
body.public-site :is(.topbar,.footer,.sg-contact) :is(a,button):focus-visible { outline-color:var(--ht-color-accent); box-shadow:0 0 0 2px var(--ht-color-ink); }
body.public-site .nav .submenu-toggle { width:3rem; min-height:3rem; }
body.public-site .nav .product-submenu-description { font-size:var(--public-text-small); line-height:1.6; }
body.public-site :is(.topbar,.footer,.copyright,.sg-footer) { font-size:var(--public-text-small); }
body.public-site :is(.topbar,.footer) { background:var(--ht-color-ink); color:var(--ht-color-bg); }
body.public-site .footer p { color:var(--ht-color-bg); }
body.public-site .footer .footer-map { color:var(--ht-color-bg); }
body.public-site .section { padding-block:var(--ht-section-space); }
body.public-site .hero-main { padding-block:var(--ht-section-space); }
body.public-site :is(.product-card,.support-card,.application-grid article) { border-radius:var(--ht-radius-card); }
body.public-site :is(.product-copy,.support-card) { padding:var(--ht-card-padding); }
body.public-site .product-card { display:flex; flex-direction:column; }
body.public-site .product-card .product-copy { display:flex; flex-direction:column; flex:1; }
body.public-site .product-card .text-link { margin-top:auto; padding-top:1rem; }
body.public-site .product-card .product-image { aspect-ratio:var(--ht-card-image-ratio); height:auto; }
body.public-site .product-card .product-image img { width:100%; height:100%; object-fit:contain; }
body.public-site .application-grid img { aspect-ratio:var(--ht-card-image-ratio); object-fit:cover; }
body.public-site :is(.support-card,.application-grid article) .text-link { position:static; display:inline-flex; padding-top:1rem; }
body.public-site .support-card .text-link { margin-top:auto; }
body.public-site .support-card { display:flex; flex-direction:column; }
body.public-site .application-grid article > .text-link { margin:.25rem 1.25rem 1.25rem; }
body.public-site .public-table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; border-radius:var(--ht-radius-card); }
body.public-site .public-table-scroll:focus-visible { outline:3px solid var(--ht-color-primary); outline-offset:3px; }
body.public-site table { font-size:var(--ht-text-table); line-height:1.5; }
body.public-site :is(td,th) { font-variant-numeric:tabular-nums; }
body.public-site .sg-copy p { overflow-wrap:break-word; }
body.public-site :is(.sg-header,.sg-footer) a { min-height:3rem; }
body.public-site .sg-actions .sg-button { color:var(--ht-color-bg); }
body.public-site .sg-actions .sg-outline { color:var(--ht-control-text, var(--ht-color-ink)); }
body.public-site :is(.ht-public-shell, .sg-page) { min-width:0; }
@media (max-width:767px) {
  body.public-site .header-inner { flex-wrap:wrap; }
  body.public-site .header-cta { max-width:100%; }
  body.public-site .sg-thickness-layout { grid-template-columns:minmax(0,1fr); }
}
@media (prefers-reduced-motion:reduce) {
  body.public-site *, body.public-site *::before, body.public-site *::after { scroll-behavior:auto; transition:none; animation:none; }
}

/* Links on ink surfaces keep their required light contrast. */
body.public-site .ht-public-shell .footer :is(a,strong) { color:var(--ht-color-bg); }
body.public-site .sg-page a.sg-button:not(.sg-outline) { color:var(--ht-control-text, var(--ht-color-bg)); }
/* Preserve room for enlarged Vietnamese copy in consultation rows. */
@media (max-width:1100px) {
  body.public-site .cp-colors-consultation-copy { flex-basis:calc(100% - 6.25rem); }
}

body.public-site .public-table-hint { display:none; font-size:var(--public-text-small); padding:1rem 1.25rem 0; }
body.public-site .hp-pricing table { min-width:36rem; }
@media (max-width:767px) { body.public-site .public-table-hint { display:block; } }
@media (min-width:1280px) {
  body.public-site .hp-contact-actions { flex-wrap:nowrap; align-items:stretch; }
  body.public-site .hp-contact-actions .button { flex:1 1 0; }
}

body.public-site .submenu-chevron { width:1.25rem; height:1.25rem; }

/* Shared action shapes keep each caller's existing size and placement hooks. */
body.public-site :where(svg.public-standard-icon) {
  width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7;
  stroke-linecap:round; stroke-linejoin:round; flex:none;
}
body.public-site .icon-defs { position:absolute; width:0; height:0; overflow:hidden; }
body.public-site .public-icon-button .public-standard-icon { display:block; margin:auto; }
body.public-site .qo-benefit-icon { width:32px; height:32px; }
