/*
Theme Name: Phong Thủy Khải Tín
Theme URI: https://phongthuysu.com/
Author: Phong Thủy Khải Tín
Description: Giao diện WordPress định hướng dịch vụ, tri thức và uy tín cho website tư vấn phong thủy.
Version: 5.3.0
Text Domain: pts
*/

/* ==========================================================
01. DESIGN TOKENS — NGỌC TRẦM, ĐỒNG CỔ, GIẤY ẤM, ĐỎ ẤN
========================================================== */
:root {
  color-scheme: light;
  --pts-canvas: #eee8dc;
  --pts-paper: #fbf8f0;
  --pts-card: #fffdfa;
  --pts-card-muted: #f5f0e6;
  --pts-ink: #17241d;
  --pts-text: #2c3830;
  --pts-muted: #627067;
  --pts-soft-text: #778178;
  --pts-jade: #245f49;
  --pts-jade-dark: #123b2d;
  --pts-jade-deep: #0d2e23;
  --pts-jade-soft: #dfeae3;
  --pts-bronze: #9c6e2d;
  --pts-bronze-dark: #76501d;
  --pts-bronze-soft: #f1e1bf;
  --pts-title: #8f5a32;
  --pts-copper: #b87333;
  --pts-seal: #963c31;
  --pts-line: #ddd2bf;
  --pts-line-strong: #c9b99d;
  --pts-white: #ffffff;
  --pts-black: #08110d;
  --pts-overlay: rgba(5, 17, 12, 0.74);
  --pts-focus: #c58a32;
  --pts-shadow-sm: 0 8px 24px rgba(28, 45, 35, 0.07);
  --pts-shadow-md: 0 20px 50px rgba(24, 43, 32, 0.13);
  --pts-shadow-lg: 0 34px 80px rgba(17, 36, 26, 0.17);
  --pts-radius-xs: 6px;
  --pts-radius-sm: 10px;
  --pts-radius-md: 18px;
  --pts-radius-lg: 30px;
  --pts-serif: "Be Vietnam Pro", "Inter", Georgia, serif;
  --pts-sans: "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
  --pts-container: 1220px;
  --pts-transition: 220ms ease;

  /* Compatibility aliases used by older theme templates. */
  --primary-color: var(--pts-jade);
  --accent-color: var(--pts-jade);
  --bg-color: var(--pts-canvas);
  --content-bg: var(--pts-paper);
  --card-bg: var(--pts-card);
  --text-color: var(--pts-text);
  --heading-color: var(--pts-ink);
  --light-text: var(--pts-muted);
  --border-color: var(--pts-line);
  --header-bg: rgba(251, 248, 240, 0.95);
  --footer-bg: #e6decf;
  --serif-font: var(--pts-serif);
  --sans-font: var(--pts-sans);
  --transition: all var(--pts-transition);
}

[data-theme="dark"] {
  color-scheme: dark;
  --pts-canvas: #0d1511;
  --pts-paper: #111c16;
  --pts-card: #18251e;
  --pts-card-muted: #1d2d24;
  --pts-ink: #fff8e9;
  --pts-text: #e3e9e4;
  --pts-muted: #b4c0b7;
  --pts-soft-text: #92a096;
  --pts-jade: #87c5a0;
  --pts-jade-dark: #b6dfc5;
  --pts-jade-deep: #07140e;
  --pts-jade-soft: #21352a;
  --pts-bronze: #ddb76b;
  --pts-bronze-dark: #edcb86;
  --pts-bronze-soft: #382e1e;
  --pts-title: #c79a70;
  --pts-copper: #d09a68;
  --pts-seal: #dc8377;
  --pts-line: #34443a;
  --pts-line-strong: #526359;
  --pts-white: #ffffff;
  --pts-black: #030705;
  --pts-overlay: rgba(0, 0, 0, 0.78);
  --pts-focus: #e7bd66;
  --pts-shadow-sm: 0 8px 24px rgba(0, 0, 0, 0.22);
  --pts-shadow-md: 0 20px 50px rgba(0, 0, 0, 0.34);
  --pts-shadow-lg: 0 34px 80px rgba(0, 0, 0, 0.44);

  --primary-color: var(--pts-jade);
  --accent-color: var(--pts-jade);
  --bg-color: var(--pts-canvas);
  --content-bg: var(--pts-paper);
  --card-bg: var(--pts-card);
  --text-color: var(--pts-text);
  --heading-color: var(--pts-ink);
  --light-text: var(--pts-muted);
  --border-color: var(--pts-line);
  --header-bg: rgba(17, 28, 22, 0.95);
  --footer-bg: #0a120e;
}

/* ==========================================================
02. RESET, ACCESSIBILITY AND GLOBAL TYPOGRAPHY
========================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  text-size-adjust: 100%;
  overflow-x: clip;
}

body {
  margin: 0;
  background: var(--pts-canvas);
  color: var(--pts-text);
  font-family: var(--pts-sans);
  font-size: 16px;
  line-height: 1.68;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.menu-open {
  overflow: hidden;
}

img,
svg,
video,
iframe {
  max-width: 100%;
}

img {
  height: auto;
}

button,
input,
textarea,
select {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover {
  color: var(--pts-jade);
}

p,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
dl,
figure,
blockquote {
  margin-top: 0;
}

ul,
ol {
  padding-left: 0;
}

ul {
  list-style: none;
}

::selection {
  background: var(--pts-jade);
  color: var(--pts-white);
}

:focus-visible {
  outline: 3px solid var(--pts-focus);
  outline-offset: 3px;
}

.screen-reader-text {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.screen-reader-text:focus {
  top: 8px;
  left: 8px;
  z-index: 100000;
  width: auto;
  height: auto;
  clip: auto;
  padding: 10px 14px;
  background: var(--pts-card);
  color: var(--pts-ink);
  border-radius: var(--pts-radius-xs);
}

.wrapper,
.site-main {
  background: var(--pts-paper);
}

.container,
.pts-home-container {
  width: min(calc(100% - 40px), var(--pts-container));
  margin-inline: auto;
}

.pts-homepage {
  overflow: clip;
}

.pts-homepage h1,
.pts-homepage h2,
.pts-homepage h3,
.pts-homepage h4 {
  color: var(--pts-ink);
}

.pts-homepage h1,
.pts-homepage h2 {
  font-family: var(--pts-serif);
  letter-spacing: -0.025em;
}

.pts-homepage h1 {
  font-size: clamp(2.6rem, 5vw, 5rem);
  line-height: 1.03;
}

.pts-homepage h2 {
  font-size: clamp(2rem, 3.4vw, 3.35rem);
  line-height: 1.12;
}

.pts-homepage h3 {
  font-size: clamp(1.15rem, 1.7vw, 1.48rem);
  line-height: 1.32;
}

.pts-anchor-offset {
  scroll-margin-top: 96px;
}

/* Neutralize old broad header rules inside homepage sections. */
.pts-homepage header,
.pts-homepage section > header {
  position: static;
  top: auto;
  z-index: auto;
  width: auto;
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
}

/* ==========================================================
03. SITE HEADER AND NAVIGATION
========================================================== */
#masthead,
.site-header,
.main-header,
body > header,
.wrapper > header:first-child {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: var(--header-bg);
  border-bottom: 1px solid color-mix(in srgb, var(--pts-line) 82%, transparent);
  box-shadow: 0 4px 20px rgba(12, 29, 20, 0.06);
  backdrop-filter: blur(14px);
}

.admin-bar #masthead,
.admin-bar .site-header,
.admin-bar .main-header,
.admin-bar body > header,
.admin-bar .wrapper > header:first-child {
  top: 32px;
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 68px;
  gap: 24px;
}

.logo,
a.logo {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  padding-block: 10px;
  color: var(--pts-ink);
  font-weight: 800;
}

a.logo img {
  display: block;
  width: 176px;
  max-height: 48px;
  object-fit: contain;
}

a.logo img.logo-w {
  display: none;
}

[data-theme="dark"] a.logo img:not(.logo-w) {
  display: none;
}

[data-theme="dark"] a.logo img.logo-w {
  display: block;
}

.nav-menu {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 0;
}

.nav-menu li a {
  position: relative;
  display: block;
  padding-block: 22px;
  color: var(--pts-ink);
  font-size: 14px;
  font-weight: 700;
}

.nav-menu li a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 14px;
  left: 0;
  height: 2px;
  background: var(--pts-bronze);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--pts-transition);
}

.nav-menu li.current-menu-item > a,
.nav-menu li a:hover {
  color: var(--pts-jade);
}

.nav-menu li.current-menu-item > a::after,
.nav-menu li a:hover::after {
  transform: scaleX(1);
}

.header-icons {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--pts-muted);
}

.theme-toggle,
.search-toggle,
.mobile-menu-toggle {
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.theme-toggle,
.search-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  min-height: 38px;
  border-radius: 50%;
  transition: background var(--pts-transition), color var(--pts-transition);
}

.theme-toggle:hover,
.search-toggle:hover {
  background: var(--pts-jade-soft);
  color: var(--pts-jade);
}

[data-theme="dark"] .moon-icon {
  display: none;
}

[data-theme="dark"] .sun-icon {
  display: block !important;
}

.header-search {
  max-height: 0;
  overflow: hidden;
  transition: max-height 300ms ease, padding 300ms ease;
}

.header-search.active {
  max-height: 110px;
  padding-block: 18px;
  border-top: 1px solid var(--pts-line);
}

.header-search form {
  display: flex;
  gap: 10px;
}

.header-search input {
  flex: 1;
  min-width: 0;
  padding: 12px 16px;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-xs);
  background: var(--pts-card);
  color: var(--pts-text);
}

.header-search button {
  border: 0;
  border-radius: var(--pts-radius-xs);
  background: var(--pts-jade);
  color: var(--pts-white);
  padding-inline: 24px;
  font-weight: 800;
  cursor: pointer;
}

.mobile-menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: space-between;
  width: 25px;
  height: 19px;
  padding: 0;
}

.mobile-menu-toggle span {
  display: block;
  width: 100%;
  height: 2px;
  background: var(--pts-ink);
  border-radius: 2px;
  transition: transform 250ms ease, opacity 250ms ease;
}

.mobile-menu-toggle.active span:nth-child(1) {
  transform: translateY(8.5px) rotate(45deg);
}

.mobile-menu-toggle.active span:nth-child(2) {
  opacity: 0;
}

.mobile-menu-toggle.active span:nth-child(3) {
  transform: translateY(-8.5px) rotate(-45deg);
}

.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: rgba(5, 13, 9, 0.74);
  opacity: 0;
  visibility: hidden;
  transition: opacity 250ms ease, visibility 250ms ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

.mobile-menu-content {
  position: absolute;
  top: 0;
  right: 0;
  width: min(360px, 88vw);
  height: 100dvh;
  padding: 84px 28px 32px;
  overflow-y: auto;
  background: var(--pts-paper);
  transform: translateX(100%);
  transition: transform 280ms ease;
  box-shadow: -16px 0 50px rgba(0, 0, 0, 0.2);
}

.mobile-menu-overlay.active .mobile-menu-content {
  transform: translateX(0);
}

.mobile-nav-menu {
  margin: 0;
}

.mobile-nav-menu li {
  border-bottom: 1px solid var(--pts-line);
}

.mobile-nav-menu li a {
  display: block;
  padding: 16px 0;
  color: var(--pts-ink);
  font-weight: 700;
}

/* ==========================================================
04. SHARED HOMEPAGE COMPONENTS
========================================================== */
.pts-section {
  padding-block: clamp(64px, 8vw, 112px);
}

.pts-section-heading {
  max-width: 820px;
  margin: 0 auto clamp(32px, 5vw, 56px);
  text-align: center;
}

.pts-section-heading-left {
  max-width: 800px;
  margin-inline: 0;
  text-align: left;
}

.pts-section-heading h2 {
  margin-bottom: 16px;
}

.pts-section-heading p:last-child {
  margin-bottom: 0;
  color: var(--pts-muted);
  font-size: 1.06rem;
}

.pts-section-kicker,
.pts-eyebrow,
.pts-aside-label,
.pts-expert-label {
  margin-bottom: 12px;
  color: var(--pts-bronze-dark);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.14em;
  line-height: 1.4;
  text-transform: uppercase;
}

.pts-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 22px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.92rem;
  font-weight: 850;
  line-height: 1.25;
  text-align: center;
  transition: transform var(--pts-transition), background var(--pts-transition), color var(--pts-transition), border-color var(--pts-transition), box-shadow var(--pts-transition);
}

.pts-button:hover {
  transform: translateY(-2px);
}

.pts-button-primary {
  background: var(--pts-jade);
  color: var(--pts-white);
  box-shadow: 0 12px 28px rgba(36, 95, 73, 0.2);
}

.pts-button-primary:hover {
  background: var(--pts-jade-dark);
  color: var(--pts-white);
}

.pts-button-secondary {
  border-color: var(--pts-line-strong);
  background: rgba(255, 255, 255, 0.35);
  color: var(--pts-ink);
}

.pts-button-secondary:hover {
  border-color: var(--pts-jade);
  color: var(--pts-jade);
}

.pts-button-gold {
  background: var(--pts-bronze);
  color: var(--pts-white);
  box-shadow: 0 12px 28px rgba(156, 110, 45, 0.22);
}

.pts-button-gold:hover {
  background: var(--pts-bronze-dark);
  color: var(--pts-white);
}

.pts-button-ghost {
  border-color: rgba(255, 255, 255, 0.45);
  color: var(--pts-white);
}

.pts-button-ghost:hover {
  border-color: var(--pts-white);
  background: rgba(255, 255, 255, 0.1);
  color: var(--pts-white);
}

.pts-text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--pts-jade);
  font-size: 0.88rem;
  font-weight: 850;
}

.pts-text-link span {
  transition: transform var(--pts-transition);
}

.pts-text-link:hover span {
  transform: translateX(4px);
}

.pts-meta,
.pts-article-meta {
  color: var(--pts-soft-text);
  font-size: 0.78rem;
  font-weight: 700;
}

.pts-media-placeholder {
  display: flex;
  width: 100%;
  height: 100%;
  min-height: 180px;
  align-items: center;
  justify-content: center;
  background:
    radial-gradient(circle at center, transparent 0 22%, rgba(255, 255, 255, 0.08) 22.5% 23.5%, transparent 24%),
    linear-gradient(135deg, var(--pts-jade-dark), var(--pts-jade-deep));
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--pts-serif);
  font-size: 1.25rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

/* ==========================================================
05. HERO — CALM AUTHORITY AND DECISION CLARITY
========================================================== */
.pts-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(320px, 0.72fr);
  gap: clamp(36px, 6vw, 86px);
  align-items: center;
  min-height: 680px;
  padding: clamp(72px, 9vw, 128px) clamp(0px, 2vw, 24px);
}

.pts-hero::before {
  content: "";
  position: absolute;
  z-index: 0;
  width: min(620px, 58vw);
  aspect-ratio: 1;
  top: 50%;
  right: -18%;
  border: 1px solid color-mix(in srgb, var(--pts-bronze) 23%, transparent);
  border-radius: 50%;
  background:
    repeating-conic-gradient(from 22.5deg, transparent 0 11deg, color-mix(in srgb, var(--pts-bronze) 8%, transparent) 11deg 11.7deg),
    radial-gradient(circle, transparent 0 38%, color-mix(in srgb, var(--pts-jade) 7%, transparent) 38.5% 39%, transparent 39.5% 62%, color-mix(in srgb, var(--pts-bronze) 8%, transparent) 62.5% 63%, transparent 63.5%);
  transform: translateY(-50%);
  pointer-events: none;
}

.pts-hero-copy,
.pts-hero-aside {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.pts-hero h1 {
  max-width: 860px;
  margin-bottom: 24px;
}

.pts-hero-lead {
  max-width: 800px;
  margin-bottom: 30px;
  color: var(--pts-muted);
  font-size: clamp(1.06rem, 1.5vw, 1.23rem);
  line-height: 1.82;
}

.pts-hero-lead strong {
  color: var(--pts-jade-dark);
}

.pts-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 30px;
}

.pts-hero-search {
  max-width: 720px;
  padding-top: 24px;
  border-top: 1px solid var(--pts-line);
}

.pts-hero-search > label {
  display: block;
  margin-bottom: 9px;
  color: var(--pts-ink);
  font-size: 0.82rem;
  font-weight: 800;
}

.pts-hero-search > div {
  display: flex;
  padding: 5px;
  border: 1px solid var(--pts-line-strong);
  border-radius: 999px;
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-sm);
}

.pts-hero-search input {
  flex: 1;
  min-width: 0;
  border: 0;
  background: transparent;
  color: var(--pts-text);
  padding: 10px 16px;
  outline: 0;
}

.pts-hero-search button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  background: var(--pts-jade-dark);
  color: var(--pts-white);
  padding: 11px 20px;
  font-weight: 850;
  cursor: pointer;
}

.pts-hero-aside {
  padding: clamp(30px, 4vw, 48px);
  border: 1px solid color-mix(in srgb, var(--pts-bronze) 45%, var(--pts-line));
  border-radius: var(--pts-radius-lg);
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--pts-card) 96%, transparent), color-mix(in srgb, var(--pts-bronze-soft) 42%, var(--pts-card))),
    var(--pts-card);
  box-shadow: var(--pts-shadow-lg);
}

.pts-hero-aside h2 {
  margin-bottom: 24px;
  font-size: clamp(1.65rem, 2.5vw, 2.35rem);
}

.pts-compass {
  position: relative;
  display: grid;
  width: 148px;
  aspect-ratio: 1;
  margin: 0 auto 28px;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--pts-bronze) 70%, transparent);
  border-radius: 50%;
  background:
    repeating-conic-gradient(from 0deg, color-mix(in srgb, var(--pts-bronze-soft) 58%, transparent) 0 11deg, transparent 11deg 22.5deg),
    var(--pts-card);
  box-shadow: inset 0 0 0 8px var(--pts-card), inset 0 0 0 9px var(--pts-line);
}

.pts-compass::before,
.pts-compass::after {
  content: "";
  position: absolute;
  background: var(--pts-seal);
}

.pts-compass::before {
  width: 1px;
  height: 72%;
}

.pts-compass::after {
  width: 72%;
  height: 1px;
}

.pts-compass-ring {
  position: absolute;
  inset: 23%;
  border: 1px solid var(--pts-bronze);
  border-radius: 50%;
}

.pts-compass-axis {
  position: absolute;
  width: 18px;
  height: 68px;
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
  background: linear-gradient(to bottom, var(--pts-seal) 0 50%, var(--pts-jade) 50% 100%);
}

.pts-compass strong {
  position: relative;
  z-index: 2;
  display: grid;
  width: 48px;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 50%;
  background: var(--pts-card);
  color: var(--pts-seal);
  font-size: 0.7rem;
  line-height: 1.1;
  letter-spacing: 0.05em;
  text-align: center;
}

.pts-hero-principles {
  margin: 0;
  counter-reset: none;
}

.pts-hero-principles li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  padding: 14px 0;
  border-top: 1px solid var(--pts-line);
  color: var(--pts-text);
  font-weight: 720;
}

.pts-hero-principles span {
  color: var(--pts-bronze-dark);
  font-family: var(--pts-serif);
  font-size: 1.15rem;
}

/* ==========================================================
06. PROOF STRIP AND STICKY QUICK NAV
========================================================== */
.pts-proof-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid var(--pts-line);
  background: color-mix(in srgb, var(--pts-card-muted) 74%, transparent);
}

.pts-proof-strip > div {
  min-width: 0;
  padding: 22px clamp(16px, 2.2vw, 30px);
  border-right: 1px solid var(--pts-line);
}

.pts-proof-strip > div:last-child {
  border-right: 0;
}

.pts-proof-strip strong,
.pts-proof-strip span {
  display: block;
}

.pts-proof-strip strong {
  margin-bottom: 3px;
  color: var(--pts-ink);
  font-size: 0.96rem;
}

.pts-proof-strip span {
  color: var(--pts-muted);
  font-size: 0.79rem;
  line-height: 1.45;
}

.pts-home-nav {
  position: sticky;
  top: 68px;
  z-index: 100;
  display: flex;
  justify-content: center;
  gap: 6px;
  padding: 10px;
  margin: 28px auto 0;
  overflow-x: auto;
  border: 1px solid var(--pts-line);
  border-radius: 999px;
  background: color-mix(in srgb, var(--pts-paper) 94%, transparent);
  box-shadow: var(--pts-shadow-sm);
  backdrop-filter: blur(12px);
  scrollbar-width: none;
}

.pts-home-nav::-webkit-scrollbar {
  display: none;
}

.pts-home-nav a {
  flex: 0 0 auto;
  padding: 8px 14px;
  border-radius: 999px;
  color: var(--pts-muted);
  font-size: 0.78rem;
  font-weight: 800;
}

.pts-home-nav a:hover {
  background: var(--pts-jade-soft);
  color: var(--pts-jade-dark);
}

/* ==========================================================
07. JOURNEY CARDS
========================================================== */
.pts-journey-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--pts-line);
  border-left: 1px solid var(--pts-line);
}

.pts-journey-card {
  position: relative;
  min-width: 0;
  min-height: 330px;
  padding: clamp(26px, 3.5vw, 42px);
  border-right: 1px solid var(--pts-line);
  border-bottom: 1px solid var(--pts-line);
  background: var(--pts-card);
  transition: background var(--pts-transition), transform var(--pts-transition), box-shadow var(--pts-transition);
}

.pts-journey-card:hover {
  z-index: 1;
  background: color-mix(in srgb, var(--pts-jade-soft) 42%, var(--pts-card));
  transform: translateY(-5px);
  box-shadow: var(--pts-shadow-md);
}

.pts-card-number {
  display: block;
  margin-bottom: 46px;
  color: var(--pts-bronze);
  font-family: var(--pts-serif);
  font-size: 1.08rem;
}

.pts-journey-card h3 {
  margin-bottom: 15px;
}

.pts-journey-card h3 a:hover {
  color: var(--pts-jade);
}

.pts-journey-card p {
  margin-bottom: 24px;
  color: var(--pts-muted);
}

/* ==========================================================
08. SERVICES — DEEP JADE BLOCK
========================================================== */
.pts-services-section {
  position: relative;
  width: 100%;
  left: auto;
  transform: none;
  padding-inline: max(20px, calc((100% - var(--pts-container)) / 2));
  background:
    linear-gradient(110deg, rgba(255, 255, 255, 0.025), transparent 48%),
    var(--pts-jade-deep);
  color: rgba(255, 255, 255, 0.82);
}

.pts-section-heading-light h2 {
  color: var(--pts-white);
}

.pts-section-heading-light p:last-child {
  color: rgba(255, 255, 255, 0.67);
}

.pts-services-section .pts-section-kicker {
  color: var(--pts-bronze);
}

.pts-services-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.pts-service-card {
  position: relative;
  min-width: 0;
  padding: clamp(28px, 4vw, 46px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.13);
  border-radius: var(--pts-radius-md);
  background: rgba(255, 255, 255, 0.045);
  transition: border-color var(--pts-transition), background var(--pts-transition), transform var(--pts-transition);
}

.pts-service-card::after {
  content: "";
  position: absolute;
  width: 170px;
  aspect-ratio: 1;
  top: -95px;
  right: -70px;
  border: 1px solid rgba(221, 183, 107, 0.25);
  border-radius: 50%;
}

.pts-service-card:hover {
  border-color: rgba(221, 183, 107, 0.48);
  background: rgba(255, 255, 255, 0.075);
  transform: translateY(-4px);
}

.pts-service-card h3 {
  margin-bottom: 24px;
  color: var(--pts-white);
  font-family: var(--pts-serif);
  font-size: clamp(1.4rem, 2vw, 1.9rem);
}

.pts-service-card h3 a:hover {
  color: var(--pts-bronze);
}

.pts-service-card dl,
.pts-service-card dd {
  margin: 0;
}

.pts-service-card dl > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 18px;
  padding: 15px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.11);
}

.pts-service-card dt {
  color: var(--pts-bronze);
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pts-service-card dd {
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.93rem;
}

.pts-service-link {
  display: inline-flex;
  gap: 8px;
  margin-top: 22px;
  color: var(--pts-white);
  font-size: 0.86rem;
  font-weight: 850;
}

.pts-service-link:hover {
  color: var(--pts-bronze);
}

.pts-service-icon {
  position: relative;
  display: block;
  width: 48px;
  height: 48px;
  margin-bottom: 26px;
  color: var(--pts-bronze);
}

.pts-service-icon::before,
.pts-service-icon::after {
  content: "";
  position: absolute;
  border-color: currentColor;
}

.pts-icon-house::before {
  inset: 15px 5px 4px;
  border: 2px solid currentColor;
  border-top: 0;
}

.pts-icon-house::after {
  width: 29px;
  height: 29px;
  top: 3px;
  left: 9px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
  transform: rotate(45deg);
}

.pts-icon-building::before {
  inset: 3px 8px;
  border: 2px solid currentColor;
  background: repeating-linear-gradient(to bottom, transparent 0 7px, currentColor 7px 9px, transparent 9px 13px);
}

.pts-icon-building::after {
  width: 8px;
  height: 12px;
  bottom: 3px;
  left: 20px;
  border: 2px solid currentColor;
}

.pts-icon-plan::before {
  inset: 5px;
  border: 2px solid currentColor;
  border-radius: 2px;
}

.pts-icon-plan::after {
  inset: 13px;
  border-top: 2px solid currentColor;
  border-left: 2px solid currentColor;
  box-shadow: 9px 9px 0 -7px currentColor;
}

.pts-icon-office::before {
  inset: 5px 4px;
  border: 2px solid currentColor;
  background: repeating-linear-gradient(to right, transparent 0 7px, currentColor 7px 9px, transparent 9px 14px);
}

.pts-icon-office::after {
  width: 36px;
  left: 6px;
  bottom: 11px;
  border-top: 2px solid currentColor;
}

/* ==========================================================
09. ENTITY ANSWER AND DELIVERABLES
========================================================== */
.pts-entity-section {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: clamp(44px, 7vw, 96px);
  align-items: start;
  padding-block: clamp(72px, 9vw, 124px);
  border-bottom: 1px solid var(--pts-line);
}

.pts-entity-copy {
  position: sticky;
  top: 140px;
  min-width: 0;
}

.pts-entity-copy h2 {
  margin-bottom: 22px;
}

.pts-answer-first {
  margin-bottom: 22px;
  color: var(--pts-muted);
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  line-height: 1.88;
}

.pts-deliverables {
  border-top: 1px solid var(--pts-line-strong);
}

.pts-deliverables article {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid var(--pts-line);
}

.pts-deliverables article > span {
  color: var(--pts-bronze);
  font-family: var(--pts-serif);
  font-size: 1.35rem;
}

.pts-deliverables h3 {
  margin-bottom: 9px;
}

.pts-deliverables p {
  margin-bottom: 0;
  color: var(--pts-muted);
}

/* ==========================================================
10. METHOD AND EXPERT
========================================================== */
.pts-method-section {
  background: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--pts-card-muted) 65%, transparent));
}

.pts-method-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.7fr);
  gap: clamp(40px, 6vw, 82px);
  align-items: start;
}

.pts-method-steps {
  margin: 0;
}

.pts-method-steps li {
  position: relative;
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 22px;
  padding: 0 0 34px;
}

.pts-method-steps li:not(:last-child)::before {
  content: "";
  position: absolute;
  width: 1px;
  top: 48px;
  bottom: 3px;
  left: 24px;
  background: var(--pts-line-strong);
}

.pts-step-index {
  display: grid;
  width: 48px;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid var(--pts-bronze);
  border-radius: 50%;
  background: var(--pts-paper);
  color: var(--pts-bronze-dark);
  font-family: var(--pts-serif);
  font-weight: 700;
}

.pts-method-steps h3 {
  margin: 3px 0 9px;
}

.pts-method-steps p {
  margin-bottom: 0;
  color: var(--pts-muted);
}

.pts-expert-card {
  position: sticky;
  top: 140px;
  min-width: 0;
  padding: clamp(30px, 4vw, 46px);
  border-top: 4px solid var(--pts-seal);
  border-radius: 0 0 var(--pts-radius-md) var(--pts-radius-md);
  background: var(--pts-jade-dark);
  color: rgba(255, 255, 255, 0.78);
  box-shadow: var(--pts-shadow-md);
}

.pts-expert-card h3 {
  margin-bottom: 18px;
  color: var(--pts-white);
  font-family: var(--pts-serif);
  font-size: clamp(1.75rem, 2.5vw, 2.45rem);
}

.pts-expert-card p {
  color: rgba(255, 255, 255, 0.72);
}

.pts-expert-card .pts-expert-label {
  color: var(--pts-bronze);
}

.pts-expert-scope {
  margin: 24px 0 28px;
}

.pts-expert-scope li {
  position: relative;
  padding: 10px 0 10px 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.9rem;
}

.pts-expert-scope li::before {
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  top: 17px;
  left: 2px;
  border-radius: 50%;
  background: var(--pts-bronze);
}

/* ==========================================================
11. TRUST BOUNDARIES
========================================================== */
.pts-trust-section {
  width: 100%;
  left: auto;
  transform: none;
  position: relative;
  padding: clamp(72px, 9vw, 120px) max(20px, calc((100% - var(--pts-container)) / 2));
  background: var(--pts-bronze-soft);
}

.pts-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.pts-trust-grid article {
  min-width: 0;
  padding: clamp(28px, 3.5vw, 42px);
  border: 1px solid color-mix(in srgb, var(--pts-bronze) 34%, var(--pts-line));
  border-radius: var(--pts-radius-md);
  background: color-mix(in srgb, var(--pts-card) 88%, transparent);
}

.pts-trust-grid article > span {
  display: block;
  margin-bottom: 34px;
  color: var(--pts-seal);
  font-family: var(--pts-serif);
  font-size: 1.15rem;
}

.pts-trust-grid h3 {
  margin-bottom: 13px;
}

.pts-trust-grid p {
  margin-bottom: 0;
  color: var(--pts-muted);
}

/* ==========================================================
12. CASE STUDIES
========================================================== */
/* Explicit section hooks used by index.php. */
.pts-case-section,
.pts-featured-reading {
  position: relative;
}

.pts-case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}

.pts-case-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-md);
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-sm);
  transition: transform var(--pts-transition), box-shadow var(--pts-transition);
}

.pts-case-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--pts-shadow-md);
}

.pts-case-media {
  display: block;
  height: 220px;
  overflow: hidden;
  background: var(--pts-jade-dark);
}

.pts-case-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}

.pts-case-card:hover .pts-case-media img {
  transform: scale(1.04);
}

.pts-case-content {
  padding: 26px;
}

.pts-case-content h3 {
  margin: 8px 0 12px;
}

.pts-case-content p {
  color: var(--pts-muted);
}

/* ==========================================================
13. KNOWLEDGE HUBS
========================================================== */
.pts-knowledge-section {
  border-block: 1px solid var(--pts-line);
}

.pts-knowledge-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--pts-line);
  border-left: 1px solid var(--pts-line);
}

.pts-knowledge-grid article {
  min-width: 0;
  padding: clamp(26px, 3.5vw, 40px);
  border-right: 1px solid var(--pts-line);
  border-bottom: 1px solid var(--pts-line);
  background: var(--pts-card);
}

.pts-knowledge-grid h3 {
  margin-bottom: 13px;
  font-family: var(--pts-serif);
  font-size: 1.48rem;
}

.pts-knowledge-grid p {
  color: var(--pts-muted);
}

/* ==========================================================
14. FEATURED READING
========================================================== */
.pts-featured-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 18px;
}

.pts-featured-card {
  position: relative;
  min-width: 0;
  min-height: 390px;
  overflow: hidden;
  border-radius: var(--pts-radius-md);
  background: var(--pts-jade-dark);
}

.pts-featured-media,
.pts-featured-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.pts-featured-media img {
  object-fit: cover;
  transition: transform 600ms ease;
}

.pts-featured-card:hover .pts-featured-media img {
  transform: scale(1.045);
}

.pts-featured-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(4, 14, 9, 0.92) 0%, rgba(4, 14, 9, 0.38) 58%, rgba(4, 14, 9, 0.06) 100%);
  pointer-events: none;
}

.pts-featured-content {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  left: 0;
  padding: clamp(24px, 3vw, 38px);
}

.pts-featured-content h3,
.pts-featured-content h3 a {
  color: var(--pts-white);
}

.pts-featured-content h3 {
  margin: 9px 0 10px;
  font-family: var(--pts-serif);
  font-size: clamp(1.35rem, 2vw, 2rem);
}

.pts-featured-content p {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.9rem;
}

.pts-category,
.pts-category a {
  color: var(--pts-bronze);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.pts-featured-count-1 {
  grid-template-columns: minmax(0, 1fr);
}

.pts-featured-count-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* ==========================================================
15. LATEST POSTS AND SIDEBAR
========================================================== */
.pts-latest-section.is-paginated {
  padding-top: 54px;
}

.pts-list-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
  margin-bottom: 34px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--pts-line-strong);
}

.pts-list-heading h2 {
  margin-bottom: 0;
}

.pts-content-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(38px, 6vw, 72px);
  align-items: start;
}

.pts-post-list,
.pts-home-sidebar,
.pts-post-content {
  min-width: 0;
}

.pts-post-card {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 26px;
  padding: 0 0 30px;
  margin-bottom: 30px;
  border-bottom: 1px solid var(--pts-line);
}

.pts-post-media {
  display: block;
  height: 178px;
  overflow: hidden;
  border-radius: var(--pts-radius-sm);
  background: var(--pts-jade-dark);
}

.pts-post-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 500ms ease;
}

.pts-post-card:hover .pts-post-media img {
  transform: scale(1.04);
}

.pts-post-content h3 {
  margin: 7px 0 10px;
  font-family: var(--pts-serif);
  font-size: 1.45rem;
}

.pts-post-content p {
  margin-bottom: 14px;
  color: var(--pts-muted);
  font-size: 0.94rem;
}

.pts-article-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.pts-article-meta a:hover {
  color: var(--pts-jade);
}

.pts-home-sidebar {
  position: sticky;
  top: 142px;
}

.pts-home-sidebar > aside,
.pts-home-sidebar #secondary,
.pts-home-sidebar .widget-area {
  width: 100%;
}

.pts-home-sidebar .widget,
.sidebar-widget {
  margin-bottom: 22px;
  padding: 24px;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-sm);
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-sm);
}

.pts-home-sidebar .widget-title,
.sidebar-title {
  margin-bottom: 16px;
  padding-bottom: 11px;
  border-bottom: 2px solid var(--pts-bronze);
  color: var(--pts-ink);
  font-size: 0.85rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pts-home-sidebar li {
  padding: 9px 0;
  border-bottom: 1px solid var(--pts-line);
}

.pts-home-sidebar li:last-child {
  border-bottom: 0;
}

.pts-home-sidebar a {
  color: var(--pts-text);
  font-size: 0.9rem;
}

.pts-home-sidebar a:hover {
  color: var(--pts-jade);
}

.search-form,
.search-box {
  display: flex;
}

.search-form input,
.search-box input {
  width: 100%;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-xs);
  background: var(--pts-paper);
  color: var(--pts-text);
}

.search-form button,
.search-submit {
  border: 0;
  border-radius: var(--pts-radius-xs);
  background: var(--pts-jade);
  color: var(--pts-white);
  padding-inline: 14px;
  cursor: pointer;
}

.pts-pagination,
.pagination,
.nav-links {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 34px;
}

.pts-pagination .page-numbers,
.pagination .page-numbers,
.nav-links .page-numbers {
  display: inline-flex;
  min-width: 42px;
  height: 42px;
  align-items: center;
  justify-content: center;
  padding-inline: 11px;
  border: 1px solid var(--pts-line);
  border-radius: 999px;
  background: var(--pts-card);
  color: var(--pts-text);
  font-size: 0.84rem;
  font-weight: 800;
}

.pts-pagination .page-numbers:hover,
.pts-pagination .page-numbers.current,
.pagination .page-numbers:hover,
.pagination .page-numbers.current,
.nav-links .page-numbers:hover,
.nav-links .page-numbers.current {
  border-color: var(--pts-jade);
  background: var(--pts-jade);
  color: var(--pts-white);
}

/* ==========================================================
16. EDITORIAL STANDARDS
========================================================== */
.pts-standards-section {
  border-top: 1px solid var(--pts-line);
}

.pts-standards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

.pts-standards-grid article {
  min-width: 0;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-sm);
  background: var(--pts-card);
}

.pts-standard-mark {
  display: block;
  width: 30px;
  height: 3px;
  margin-bottom: 28px;
  background: linear-gradient(to right, var(--pts-seal) 0 40%, var(--pts-bronze) 40% 100%);
}

.pts-standards-grid h3 {
  margin-bottom: 12px;
}

.pts-standards-grid p {
  color: var(--pts-muted);
  font-size: 0.91rem;
}

/* ==========================================================
17. FAQ
========================================================== */
.pts-faq-section {
  border-top: 1px solid var(--pts-line);
}

.pts-faq-list {
  max-width: 980px;
}

.pts-faq-item {
  display: block !important;
  border-top: 1px solid var(--pts-line-strong);
}

.pts-faq-item:last-child {
  border-bottom: 1px solid var(--pts-line-strong);
}

.pts-faq-item summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 28px;
  gap: 24px;
  align-items: center;
  padding: 23px 0;
  color: var(--pts-ink);
  font-family: var(--pts-serif);
  font-size: clamp(1.08rem, 1.6vw, 1.3rem);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
}

.pts-faq-item summary::-webkit-details-marker {
  display: none;
}

.pts-faq-icon {
  position: relative;
  width: 24px;
  height: 24px;
}

.pts-faq-icon::before,
.pts-faq-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 16px;
  height: 2px;
  background: var(--pts-bronze);
  transform: translate(-50%, -50%);
  transition: transform var(--pts-transition);
}

.pts-faq-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.pts-faq-item[open] .pts-faq-icon::after {
  transform: translate(-50%, -50%) rotate(0deg);
}

.pts-faq-answer {
  max-width: 820px;
  padding: 0 0 24px;
  color: var(--pts-muted);
}

.pts-faq-answer p {
  margin-bottom: 0;
}

/* ==========================================================
18. FINAL CTA
========================================================== */
.pts-final-cta {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  gap: 44px;
  align-items: center;
  margin: 0 0 clamp(70px, 9vw, 120px);
  padding: clamp(38px, 6vw, 72px);
  overflow: hidden;
  border-radius: var(--pts-radius-lg);
  background: var(--pts-jade-dark);
  color: rgba(255, 255, 255, 0.76);
  box-shadow: var(--pts-shadow-lg);
}

.pts-final-cta::after {
  content: "";
  position: absolute;
  width: 340px;
  aspect-ratio: 1;
  right: -120px;
  bottom: -180px;
  border: 1px solid rgba(221, 183, 107, 0.24);
  border-radius: 50%;
  box-shadow: inset 0 0 0 42px rgba(221, 183, 107, 0.04), inset 0 0 0 84px rgba(221, 183, 107, 0.025);
}

.pts-final-cta > * {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.pts-final-cta h2 {
  margin-bottom: 17px;
  color: var(--pts-white);
}

.pts-final-cta p:not(.pts-section-kicker) {
  margin-bottom: 0;
  color: rgba(255, 255, 255, 0.7);
}

.pts-final-cta .pts-section-kicker {
  color: var(--pts-bronze);
}

.pts-final-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pts-contact-inline {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 20px;
}

.pts-contact-inline a {
  color: var(--pts-white);
  font-weight: 800;
}

/* ==========================================================
19. GLOBAL ARTICLE, PAGE, COMMENTS AND FORM STYLES
========================================================== */
.breadcrumb {
  padding: 18px 0;
  color: var(--pts-soft-text);
  font-size: 0.8rem;
}

.breadcrumb-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.single-post-title,
.page-title {
  color: var(--pts-ink);
  font-family: var(--pts-serif);
  line-height: 1.15;
}

.single-post-title {
  margin-bottom: 18px;
  font-size: clamp(2.25rem, 5vw, 4rem);
}

.page-title {
  padding-block: 34px;
  border-bottom: 1px solid var(--pts-line);
  font-size: clamp(2.3rem, 5vw, 4.2rem);
  text-align: center;
}

.post-meta {
  margin-bottom: 30px;
  color: var(--pts-soft-text);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.post-featured-img {
  width: 100%;
  max-height: 560px;
  margin-bottom: 38px;
  border-radius: var(--pts-radius-md);
  object-fit: cover;
}

.post-body,
.page-body,
.page-content {
  color: var(--pts-text);
  font-size: 1.07rem;
  line-height: 1.88;
}

.page-body,
.page-content {
  max-width: 820px;
  margin-inline: auto;
}

.post-body p,
.page-body p,
.page-content p {
  margin-bottom: 24px;
}

.post-body h2,
.post-body h3,
.post-body h4,
.page-body h2,
.page-body h3,
.page-content h2,
.page-content h3 {
  color: var(--pts-ink);
  margin: 42px 0 18px;
}

.post-body h2,
.page-body h2,
.page-content h2 {
  font-family: var(--pts-serif);
  font-size: 1.85rem;
}

.post-body h3,
.page-body h3,
.page-content h3 {
  font-size: 1.35rem;
}

.post-body a,
.page-body a,
.page-content a {
  color: var(--pts-jade);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.post-body blockquote,
.page-body blockquote {
  margin: 38px 0;
  padding: 24px 28px;
  border-left: 4px solid var(--pts-bronze);
  background: var(--pts-card-muted);
  color: var(--pts-muted);
  font-family: var(--pts-serif);
  font-size: 1.25rem;
}

.post-body ul,
.post-body ol,
.page-body ul,
.page-body ol {
  margin: 0 0 24px;
  padding-left: 24px;
}

.post-body ul,
.page-body ul {
  list-style: disc;
}

.post-body ol,
.page-body ol {
  list-style: decimal;
}

.post-body img,
.page-body img,
.page-content img {
  border-radius: var(--pts-radius-sm);
}

.form-group,
.comment-form p {
  margin-bottom: 18px;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="search"],
textarea,
select {
  width: 100%;
  padding: 13px 15px;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-xs);
  background: var(--pts-card);
  color: var(--pts-text);
}

textarea {
  min-height: 150px;
  resize: vertical;
}

input[type="submit"],
.submit-btn,
.submit-comment {
  border: 0;
  border-radius: 999px;
  background: var(--pts-jade);
  color: var(--pts-white);
  padding: 13px 24px;
  font-weight: 850;
  cursor: pointer;
}

.comments-area {
  margin-top: 50px;
  padding: 30px;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-md);
  background: var(--pts-card);
}

.comment-list .comment {
  padding: 22px 0;
  border-bottom: 1px solid var(--pts-line);
}

.comment-body {
  display: flex;
  gap: 16px;
}

.comment-author img {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

/* ==========================================================
20. FOOTER
========================================================== */
.main-footer,
.site-footer {
  padding: 48px 0 24px;
  border-top: 1px solid var(--pts-line);
  background: var(--footer-bg);
}

.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.35fr;
  gap: 48px;
  margin-bottom: 44px;
}

.footer-desc,
.footer-links a,
.footer-bottom {
  color: var(--pts-muted);
}

.footer-grid h5 {
  margin-bottom: 18px;
  color: var(--pts-ink);
  font-size: 0.78rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.footer-links li {
  margin-bottom: 9px;
}

.social-icons {
  display: flex;
  gap: 10px;
}

.social-icons a {
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border: 1px solid var(--pts-line-strong);
  border-radius: 50%;
}

.social-icons a:hover {
  border-color: var(--pts-jade);
  background: var(--pts-jade);
  color: var(--pts-white);
}

.footer-bottom {
  padding-top: 22px;
  border-top: 1px solid var(--pts-line);
  text-align: center;
  font-size: 0.78rem;
}

/* ==========================================================
21. DARK MODE CORRECTIONS
========================================================== */
[data-theme="dark"] .pts-button-secondary {
  background: rgba(255, 255, 255, 0.03);
}

[data-theme="dark"] .pts-hero-aside {
  background: linear-gradient(145deg, var(--pts-card), var(--pts-card-muted));
}

[data-theme="dark"] .pts-compass {
  background:
    repeating-conic-gradient(from 0deg, rgba(221, 183, 107, 0.07) 0 11deg, transparent 11deg 22.5deg),
    var(--pts-card);
  box-shadow: inset 0 0 0 8px var(--pts-card), inset 0 0 0 9px var(--pts-line);
}

[data-theme="dark"] .pts-compass strong {
  background: var(--pts-card);
}

[data-theme="dark"] .pts-journey-card:hover {
  background: var(--pts-card-muted);
}

[data-theme="dark"] .pts-trust-section {
  background: #211d14;
}

[data-theme="dark"] .pts-trust-grid article {
  background: rgba(24, 37, 30, 0.86);
}

[data-theme="dark"] .pts-button-primary,
[data-theme="dark"] input[type="submit"],
[data-theme="dark"] .submit-btn,
[data-theme="dark"] .submit-comment,
[data-theme="dark"] .search-submit {
  color: #0a1710;
}

/* ==========================================================
22. RESPONSIVE
========================================================== */
@media (max-width: 1100px) {
  .pts-hero {
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, 0.85fr);
    gap: 42px;
  }

  .pts-proof-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-proof-strip > div:nth-child(2) {
    border-right: 0;
  }

  .pts-proof-strip > div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--pts-line);
  }

  .pts-journey-grid,
  .pts-standards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-content-layout {
    grid-template-columns: minmax(0, 1fr) 290px;
    gap: 38px;
  }

  .pts-featured-grid {
    grid-template-columns: 1.2fr 1fr;
  }

  .pts-featured-card:last-child:nth-child(3) {
    grid-column: 1 / -1;
    min-height: 330px;
  }
}

@media (max-width: 991px) {
  .desktop-menu {
    display: none !important;
  }

  .mobile-menu-toggle {
    display: flex;
  }

  .pts-home-nav {
    top: 66px;
    justify-content: flex-start;
  }

  .pts-hero,
  .pts-entity-section,
  .pts-method-layout,
  .pts-final-cta {
    grid-template-columns: 1fr;
  }

  .pts-hero {
    min-height: 0;
    padding-top: 74px;
  }

  .pts-hero::before {
    width: 580px;
    top: 8%;
    right: -260px;
    transform: none;
  }

  .pts-hero-aside {
    max-width: 620px;
  }

  .pts-entity-copy,
  .pts-expert-card,
  .pts-home-sidebar {
    position: static;
  }

  .pts-services-grid,
  .pts-case-grid,
  .pts-knowledge-grid,
  .pts-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-content-layout {
    grid-template-columns: 1fr;
  }

  .pts-home-sidebar {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .pts-home-sidebar .widget,
  .sidebar-widget {
    margin-bottom: 0;
  }

  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .container,
  .pts-home-container {
    width: min(calc(100% - 28px), var(--pts-container));
  }

  .pts-section {
    padding-block: 64px;
  }

  .pts-homepage h1 {
    font-size: clamp(2.35rem, 12vw, 3.5rem);
  }

  .pts-homepage h2 {
    font-size: clamp(1.85rem, 9vw, 2.65rem);
  }

  .pts-hero {
    padding-top: 56px;
    padding-bottom: 60px;
  }

  .pts-hero-actions,
  .pts-contact-inline {
    flex-direction: column;
    align-items: stretch;
  }

  .pts-button {
    width: 100%;
  }

  .pts-hero-search > div {
    display: block;
    border-radius: var(--pts-radius-sm);
  }

  .pts-hero-search input {
    display: block;
    width: 100%;
  }

  .pts-hero-search button {
    width: 100%;
    border-radius: var(--pts-radius-xs);
  }

  .pts-proof-strip,
  .pts-journey-grid,
  .pts-services-grid,
  .pts-case-grid,
  .pts-knowledge-grid,
  .pts-trust-grid,
  .pts-standards-grid,
  .pts-featured-grid,
  .pts-home-sidebar,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .pts-proof-strip > div {
    border-right: 0;
    border-bottom: 1px solid var(--pts-line);
  }

  .pts-proof-strip > div:last-child {
    border-bottom: 0;
  }

  .pts-journey-card {
    min-height: auto;
  }

  .pts-card-number {
    margin-bottom: 28px;
  }

  .pts-service-card dl > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .pts-deliverables article {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
  }

  .pts-method-steps li {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 14px;
  }

  .pts-method-steps li:not(:last-child)::before {
    left: 23px;
  }

  .pts-featured-card,
  .pts-featured-card:last-child:nth-child(3) {
    grid-column: auto;
    min-height: 360px;
  }

  .pts-list-heading {
    display: block;
  }

  .pts-list-heading .pts-text-link {
    margin-top: 14px;
  }

  .pts-post-card {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .pts-post-media {
    height: 220px;
  }

  .pts-final-cta {
    padding: 34px 26px;
  }

  .admin-bar #masthead,
  .admin-bar .site-header,
  .admin-bar .main-header,
  .admin-bar body > header,
  .admin-bar .wrapper > header:first-child {
    top: 46px;
  }
}

@media (max-width: 480px) {
  a.logo img {
    width: 136px;
  }

  .header-inner {
    min-height: 60px;
  }

  .pts-home-nav {
    top: 60px;
    margin-inline: -4px;
    border-radius: var(--pts-radius-sm);
  }

  .pts-hero-aside,
  .pts-expert-card {
    padding: 27px 23px;
  }

  .pts-compass {
    width: 126px;
  }

  .pts-journey-card,
  .pts-service-card,
  .pts-trust-grid article,
  .pts-standards-grid article {
    padding: 26px 22px;
  }

  .pts-case-media,
  .pts-post-media {
    height: 195px;
  }

  .comments-area {
    padding: 22px 18px;
  }
}

/* ==========================================================
23. REDUCED MOTION AND PRINT
========================================================== */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media print {
  #masthead,
  .site-header,
  .main-header,
  .pts-home-nav,
  .pts-hero-actions,
  .pts-hero-search,
  .pts-final-actions,
  .pts-home-sidebar,
  .main-footer,
  .site-footer {
    display: none !important;
  }

  body,
  .wrapper,
  .site-main {
    background: #fff !important;
    color: #000 !important;
  }

  .pts-services-section,
  .pts-expert-card,
  .pts-final-cta {
    background: #fff !important;
    color: #000 !important;
  }
}
/* 1. Reset các rule chung của theme chỉ bên trong trang chính sách */
.pts-privacy-page,
.pts-privacy-page * {
  box-sizing: border-box;
}

.pts-privacy-page {
  color: var(--pts-text);
  font-family: var(--pts-sans);
  font-size: 16px;
  line-height: 1.68;
}

.pts-privacy-page a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: initial;
}

.pts-privacy-page ul,
.pts-privacy-page ol {
  margin-top: 0;
  padding-left: 0;
  list-style: none;
}

.pts-privacy-page h1,
.pts-privacy-page h2 {
  color: var(--pts-ink);
  font-family: var(--pts-serif);
  letter-spacing: -0.025em;
}

.pts-privacy-page h1 {
  margin: 0 0 24px;
  font-size: clamp(2.6rem, 5vw, 5rem);
  line-height: 1.03;
}

.pts-privacy-page h2 {
  margin-top: 0;
  font-size: clamp(2rem, 3.4vw, 3.35rem);
  line-height: 1.12;
}

.pts-privacy-page h3 {
  margin-top: 0;
  color: var(--pts-ink);
  font-size: clamp(1.15rem, 1.7vw, 1.48rem);
  line-height: 1.32;
}

/* 2. Khóa đúng thứ tự và kích thước hai cột của phần Phạm vi */
.pts-privacy-page .pts-entity-section {
  display: grid !important;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr) !important;
  grid-template-areas: "policy-copy policy-list" !important;
  gap: clamp(44px, 7vw, 96px) !important;
  align-items: start !important;
  width: 100% !important;
  max-width: none !important;
  direction: ltr !important;
}

.pts-privacy-page .pts-entity-section > .pts-entity-copy {
  grid-area: policy-copy !important;
  grid-column: auto !important;
  grid-row: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}

.pts-privacy-page .pts-entity-section > .pts-deliverables {
  grid-area: policy-list !important;
  grid-column: auto !important;
  grid-row: auto !important;
}

/* 3. Sửa triệt để pts-deliverables:
   ngăn CSS ngoài ép phần text thành cột rất hẹp */
.pts-privacy-page .pts-deliverables {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  columns: auto !important;
  column-count: auto !important;
  float: none !important;
  clear: both !important;
}

.pts-privacy-page .pts-deliverables > article {
  display: grid !important;
  grid-template-columns: 60px minmax(0, 1fr) !important;
  grid-template-rows: auto !important;
  gap: 20px !important;
  align-items: start !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 28px 0 !important;
  float: none !important;
  clear: both !important;
  position: relative !important;
}

.pts-privacy-page .pts-deliverables > article > span {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  white-space: nowrap !important;
}

.pts-privacy-page .pts-deliverables > article > div {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
  flex: 1 1 auto !important;
}

.pts-privacy-page .pts-deliverables > article h3,
.pts-privacy-page .pts-deliverables > article p {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.pts-privacy-page .pts-deliverables > article h3 {
  margin: 0 0 9px !important;
}

.pts-privacy-page .pts-deliverables > article p {
  margin: 0 !important;
}

/* 4. Sửa pts-method-steps và nội dung con */
.pts-privacy-page .pts-method-steps {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  columns: auto !important;
  column-count: auto !important;
  float: none !important;
}

.pts-privacy-page .pts-method-steps > li {
  display: grid !important;
  grid-template-columns: 66px minmax(0, 1fr) !important;
  gap: 22px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 34px !important;
  float: none !important;
  clear: both !important;
}

.pts-privacy-page .pts-method-steps > li > .pts-step-index {
  grid-column: 1 !important;
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  margin: 0 !important;
  float: none !important;
}

.pts-privacy-page .pts-method-steps > li > div {
  grid-column: 2 !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

.pts-privacy-page .pts-method-steps h3,
.pts-privacy-page .pts-method-steps p {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.pts-privacy-page .pts-method-steps h3 {
  margin: 3px 0 9px !important;
}

.pts-privacy-page .pts-method-steps p {
  margin: 0 !important;
}

/* 5. Danh sách trong Hero và thẻ bảo mật */
.pts-privacy-page .pts-hero-principles {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.pts-privacy-page .pts-hero-principles > li {
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  float: none !important;
}

.pts-privacy-page .pts-expert-scope {
  display: block !important;
  width: 100% !important;
  margin: 24px 0 28px !important;
  padding: 0 !important;
}

.pts-privacy-page .pts-expert-scope > li {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* 6. Ngăn rule page-body/page-content đổi màu và kích thước component */
.pts-privacy-page .pts-hero-aside h2 {
  margin: 0 0 24px;
  font-size: clamp(1.65rem, 2.5vw, 2.35rem);
}

.pts-privacy-page .pts-section-heading h2,
.pts-privacy-page .pts-entity-copy h2 {
  margin-bottom: 16px;
}

.pts-privacy-page .pts-service-card h3 {
  margin: 0 0 24px;
  color: var(--pts-white);
  font-family: var(--pts-serif);
  font-size: clamp(1.4rem, 2vw, 1.9rem);
}

.pts-privacy-page .pts-expert-card h3 {
  margin: 0 0 18px;
  color: var(--pts-white);
  font-family: var(--pts-serif);
  font-size: clamp(1.75rem, 2.5vw, 2.45rem);
}

.pts-privacy-page .pts-final-cta h2,
.pts-privacy-page .pts-section-heading-light h2 {
  color: var(--pts-white);
}

.pts-privacy-page .pts-final-cta h2 {
  margin: 0 0 17px;
}

.pts-privacy-page .pts-answer-first {
  margin: 0 0 22px;
}

.pts-privacy-page .pts-trust-grid p,
.pts-privacy-page .pts-standards-grid p,
.pts-privacy-page .pts-faq-answer p,
.pts-privacy-page .pts-final-cta p:not(.pts-section-kicker) {
  margin-bottom: 0;
}

.pts-privacy-page .pts-button,
.pts-privacy-page .pts-home-nav a,
.pts-privacy-page .pts-text-link,
.pts-privacy-page .pts-service-link {
  text-decoration: none !important;
}

.pts-privacy-page .pts-button-primary {
  color: var(--pts-white);
}

.pts-privacy-page .pts-button-secondary {
  color: var(--pts-ink);
}

.pts-privacy-page .pts-button-gold,
.pts-privacy-page .pts-button-ghost,
.pts-privacy-page .pts-service-link {
  color: var(--pts-white);
}

.pts-privacy-page .pts-home-nav a {
  color: var(--pts-muted);
}

.pts-privacy-page .pts-faq-item summary {
  color: var(--pts-ink);
}

/* 7. Responsive */
@media (max-width: 991px) {
  .pts-privacy-page .pts-entity-section {
    display: block !important;
  }

  .pts-privacy-page .pts-entity-section > .pts-entity-copy {
    position: static !important;
    margin-bottom: 36px !important;
  }
}

@media (max-width: 767px) {
  .pts-privacy-page h1 {
    font-size: clamp(2.35rem, 12vw, 3.5rem);
  }

  .pts-privacy-page h2 {
    font-size: clamp(1.85rem, 9vw, 2.65rem);
  }

  .pts-privacy-page .pts-deliverables > article {
    grid-template-columns: 42px minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  .pts-privacy-page .pts-method-steps > li {
    grid-template-columns: 50px minmax(0, 1fr) !important;
    gap: 14px !important;
  }
}
/*
ABOUT PAGE LAYOUT FIX V2
Dùng riêng cho trang Giới thiệu với style.css hiện tại.
Nếu WordPress xóa thẻ <style>, dán phần CSS này vào cuối style.css.
*/

/* 1. Reset rule trang thường chỉ trong trang Giới thiệu */
.pts-about-page,
.pts-about-page * {
  box-sizing: border-box;
}

.pts-about-page {
  color: var(--pts-text);
  font-family: var(--pts-sans);
  font-size: 16px;
  line-height: 1.68;
}

.pts-about-page a {
  color: inherit;
  text-decoration: none !important;
  text-underline-offset: initial;
}

.pts-about-page ul,
.pts-about-page ol {
  margin-top: 0;
  padding-left: 0 !important;
  list-style: none !important;
}

.pts-about-page h1,
.pts-about-page h2 {
  color: var(--pts-ink);
  font-family: var(--pts-serif);
  letter-spacing: -0.025em;
}

.pts-about-page h1 {
  margin: 0 0 24px !important;
  font-size: clamp(1.6rem, 5vw, 2.5rem) !important;
  line-height: 1.03 !important;
}

.pts-about-page h2 {
  margin-top: 0 !important;
  font-size: clamp(1.2rem, 3.4vw, 2.35rem) !important;
  line-height: 1.12 !important;
}

.pts-about-page h3 {
  margin-top: 0 !important;
  color: var(--pts-ink);
  font-size: clamp(1.15rem, 1.7vw, 1.48rem) !important;
  line-height: 1.32 !important;
}

/* 2. Hero */
.pts-about-page .pts-hero {
  display: grid !important;
  grid-template-columns: minmax(0, 1.38fr) minmax(320px, 0.72fr) !important;
  gap: clamp(36px, 6vw, 86px) !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
}

.pts-about-page .pts-hero-copy,
.pts-about-page .pts-hero-aside {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}

.pts-about-page .pts-hero-aside h2 {
  margin: 0 0 24px !important;
  font-size: clamp(1.65rem, 2.5vw, 2.35rem) !important;
}

.pts-about-page .pts-hero-principles {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  columns: auto !important;
  column-count: auto !important;
}

.pts-about-page .pts-hero-principles > li {
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) !important;
  gap: 12px !important;
  align-items: center !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* 3. Proof strip + quick nav */
.pts-about-page .pts-proof-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
}

.pts-about-page .pts-proof-strip > div {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}

.pts-about-page .pts-home-nav {
  display: flex !important;
  width: auto !important;
  max-width: 100% !important;
}

.pts-about-page .pts-home-nav a {
  color: var(--pts-muted);
  text-decoration: none !important;
}

/* 4. Phần Khải Tín là ai: cố định đúng thứ tự hai cột */
.pts-about-page .pts-entity-section {
  display: grid !important;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr) !important;
  grid-template-areas: "about-copy about-list" !important;
  gap: clamp(44px, 7vw, 96px) !important;
  align-items: start !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  direction: ltr !important;
}

.pts-about-page .pts-entity-section > .pts-entity-copy {
  grid-area: about-copy !important;
  grid-column: auto !important;
  grid-row: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}

.pts-about-page .pts-entity-section > .pts-deliverables {
  grid-area: about-list !important;
  grid-column: auto !important;
  grid-row: auto !important;
}

.pts-about-page .pts-entity-copy h2,
.pts-about-page .pts-section-heading h2 {
  margin-bottom: 16px !important;
}

/* 5. Cụm cam kết dùng component .pts-deliverables hiện có */
.pts-about-page .pts-deliverables {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  columns: auto !important;
  column-count: auto !important;
  float: none !important;
  clear: both !important;
}

.pts-about-page .pts-deliverables > article {
  display: grid !important;
  grid-template-columns: 60px minmax(0, 1fr) !important;
  grid-template-rows: auto !important;
  gap: 20px !important;
  align-items: start !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 28px 0 !important;
  float: none !important;
  clear: both !important;
}

.pts-about-page .pts-deliverables > article > span {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  white-space: nowrap !important;
}

.pts-about-page .pts-deliverables > article > div {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  clear: none !important;
}

.pts-about-page .pts-deliverables h3,
.pts-about-page .pts-deliverables p {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.pts-about-page .pts-deliverables h3 {
  margin: 0 0 9px !important;
}

.pts-about-page .pts-deliverables p {
  margin: 0 !important;
}

/* 6. Card Lý do tồn tại */
.pts-about-page .pts-journey-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
}

.pts-about-page .pts-journey-card {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
}

.pts-about-page .pts-journey-card h3,
.pts-about-page .pts-journey-card p {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* 7. Phạm vi ứng dụng nền xanh */
.pts-about-page .pts-services-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  width: 100% !important;
}

.pts-about-page .pts-service-card {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}

.pts-about-page .pts-service-card h3 {
  margin: 0 0 24px !important;
  color: var(--pts-white) !important;
  font-family: var(--pts-serif) !important;
  font-size: clamp(1.4rem, 2vw, 1.9rem) !important;
}

.pts-about-page .pts-service-card dl,
.pts-about-page .pts-service-card dd {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
}

.pts-about-page .pts-service-card dl > div {
  display: grid !important;
  grid-template-columns: 110px minmax(0, 1fr) !important;
  gap: 18px !important;
  width: 100% !important;
  min-width: 0 !important;
}

.pts-about-page .pts-service-link {
  color: var(--pts-white) !important;
  text-decoration: none !important;
}

/* 8. Quy trình và thẻ người phụ trách */
.pts-about-page .pts-method-layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.7fr) !important;
  gap: clamp(40px, 6vw, 82px) !important;
  align-items: start !important;
  width: 100% !important;
  min-width: 0 !important;
}

.pts-about-page .pts-method-steps {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  columns: auto !important;
  column-count: auto !important;
  float: none !important;
}

.pts-about-page .pts-method-steps > li {
  display: grid !important;
  grid-template-columns: 66px minmax(0, 1fr) !important;
  gap: 22px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 34px !important;
  float: none !important;
  clear: both !important;
}

.pts-about-page .pts-method-steps > li > .pts-step-index {
  grid-column: 1 !important;
  width: 48px !important;
  min-width: 48px !important;
  max-width: 48px !important;
  margin: 0 !important;
  float: none !important;
}

.pts-about-page .pts-method-steps > li > div {
  grid-column: 2 !important;
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

.pts-about-page .pts-method-steps h3,
.pts-about-page .pts-method-steps p {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.pts-about-page .pts-method-steps h3 {
  margin: 3px 0 9px !important;
}

.pts-about-page .pts-method-steps p {
  margin: 0 !important;
}

.pts-about-page .pts-expert-card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}

.pts-about-page .pts-expert-card h3 {
  margin: 0 0 18px !important;
  color: var(--pts-white) !important;
  font-family: var(--pts-serif) !important;
  font-size: clamp(1.75rem, 2.5vw, 2.45rem) !important;
}

.pts-about-page .pts-expert-scope {
  display: block !important;
  width: 100% !important;
  margin: 24px 0 28px !important;
  padding: 0 !important;
  columns: auto !important;
  column-count: auto !important;
}

.pts-about-page .pts-expert-scope > li {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

/* 9. Ranh giới, tiêu chuẩn, FAQ */
.pts-about-page .pts-trust-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: 100% !important;
}

.pts-about-page .pts-standards-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
}

.pts-about-page .pts-trust-grid article,
.pts-about-page .pts-standards-grid article {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  float: none !important;
}

.pts-about-page .pts-trust-grid h3,
.pts-about-page .pts-trust-grid p,
.pts-about-page .pts-standards-grid h3,
.pts-about-page .pts-standards-grid p {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}

.pts-about-page .pts-trust-grid p,
.pts-about-page .pts-standards-grid p,
.pts-about-page .pts-faq-answer p {
  margin-bottom: 0 !important;
}

.pts-about-page .pts-faq-list,
.pts-about-page .pts-faq-item,
.pts-about-page .pts-faq-answer {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 980px;
}

.pts-about-page .pts-faq-item summary {
  color: var(--pts-ink) !important;
}

/* 10. Nút và CTA */
.pts-about-page .pts-button,
.pts-about-page .pts-text-link,
.pts-about-page .pts-service-link,
.pts-about-page .pts-home-nav a {
  text-decoration: none !important;
}

.pts-about-page .pts-button-primary,
.pts-about-page .pts-button-gold,
.pts-about-page .pts-button-ghost {
  color: var(--pts-white) !important;
}

.pts-about-page .pts-button-secondary {
  color: var(--pts-ink) !important;
}

.pts-about-page .pts-final-cta {
  display: grid !important;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr) !important;
  width: 100% !important;
  min-width: 0 !important;
}

.pts-about-page .pts-final-cta h2,
.pts-about-page .pts-section-heading-light h2 {
  color: var(--pts-white) !important;
}

.pts-about-page .pts-final-cta h2 {
  margin: 0 0 17px !important;
}

.pts-about-page .pts-final-cta p:not(.pts-section-kicker) {
  margin-bottom: 0 !important;
}

/* 11. Responsive */
@media (max-width: 1100px) {
  .pts-about-page .pts-proof-strip,
  .pts-about-page .pts-journey-grid,
  .pts-about-page .pts-standards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 991px) {
  .pts-about-page .pts-hero,
  .pts-about-page .pts-entity-section,
  .pts-about-page .pts-method-layout,
  .pts-about-page .pts-final-cta {
    grid-template-columns: 1fr !important;
  }

  .pts-about-page .pts-entity-section {
    display: block !important;
  }

  .pts-about-page .pts-entity-section > .pts-entity-copy {
    position: static !important;
    margin-bottom: 36px !important;
  }

  .pts-about-page .pts-services-grid,
  .pts-about-page .pts-trust-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .pts-about-page .pts-expert-card {
    position: static !important;
  }
}

@media (max-width: 767px) {
  .pts-about-page h1 {
    font-size: clamp(2.35rem, 12vw, 3.5rem) !important;
  }

  .pts-about-page h2 {
    font-size: clamp(1.85rem, 9vw, 2.65rem) !important;
  }

  .pts-about-page .pts-proof-strip,
  .pts-about-page .pts-journey-grid,
  .pts-about-page .pts-services-grid,
  .pts-about-page .pts-trust-grid,
  .pts-about-page .pts-standards-grid {
    grid-template-columns: 1fr !important;
  }

  .pts-about-page .pts-deliverables > article {
    grid-template-columns: 42px minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  .pts-about-page .pts-method-steps > li {
    grid-template-columns: 50px minmax(0, 1fr) !important;
    gap: 14px !important;
  }

  .pts-about-page .pts-service-card dl > div {
    grid-template-columns: 1fr !important;
    gap: 5px !important;
  }
}

/* ==========================================================
24. UNIVERSAL STATIC PAGE SYSTEM — V5.1
Use this root on every manually created WordPress page:

<div class="pts-homepage pts-static-page pts-[page-type] alignfull">

Recommended page-type classes:
.pts-expert-page
.pts-contact-page
.pts-method-page
.pts-editorial-page
.pts-legal-page
.pts-service-page
.pts-case-hub-page
.pts-knowledge-hub-page

This layer is intentionally placed AFTER the global .page-body and
.page-content rules so reusable PTS components cannot be overridden.
========================================================== */

/* ---------- 24.1 ROOT, FULL-WIDTH AND WORDPRESS WRAPPER RESET — V5.2 ---------- */
/*
   IMPORTANT:
   V5.1 used width:100vw/negative viewport margins on the static-page root.
   Inside WordPress content wrappers this can make the element wider than the
   actual layout viewport (especially when a vertical scrollbar is present),
   producing a horizontal scrollbar and visually uneven side gutters.

   V5.2 keeps the root at the natural layout width (100%) and lets the inner
   1220px container perform the centering. Full-bleed components that genuinely
   need viewport width are still allowed to use their own controlled breakout.
*/
body .pts-homepage.pts-static-page,
body .pts-homepage.pts-static-page * {
  box-sizing: border-box;
}

body .pts-homepage.pts-static-page {
  position: relative;
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-right: 0;
  margin-left: 0;
  overflow: clip;
  background: var(--pts-paper);
  color: var(--pts-text);
  font-family: var(--pts-sans);
  font-size: 16px;
  line-height: 1.68;
  isolation: isolate;
}

.page-body > .pts-homepage.pts-static-page,
.page-content > .pts-homepage.pts-static-page,
.entry-content > .pts-homepage.pts-static-page {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-right: 0;
  margin-left: 0;
}

body .pts-homepage.pts-static-page > .pts-home-container,
body .pts-homepage.pts-static-page > .container {
  width: min(calc(100% - 40px), var(--pts-container));
  max-width: var(--pts-container);
  margin-inline: auto;
}

body .pts-homepage.pts-static-page section,
body .pts-homepage.pts-static-page article,
body .pts-homepage.pts-static-page aside,
body .pts-homepage.pts-static-page nav,
body .pts-homepage.pts-static-page div,
body .pts-homepage.pts-static-page dl,
body .pts-homepage.pts-static-page ol,
body .pts-homepage.pts-static-page ul {
  min-width: 0;
}

body .pts-homepage.pts-static-page header,
body .pts-homepage.pts-static-page section > header {
  position: static;
  inset: auto;
  z-index: auto;
  width: auto;
  max-width: none;
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
}

/* ---------- 24.2 TYPOGRAPHY PROTECTION ---------- */
body .pts-homepage.pts-static-page h1,
body .pts-homepage.pts-static-page h2,
body .pts-homepage.pts-static-page h3,
body .pts-homepage.pts-static-page h4,
body .pts-homepage.pts-static-page h5,
body .pts-homepage.pts-static-page h6 {
  width: auto;
  max-width: none;
  color: var(--pts-ink);
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}

body .pts-homepage.pts-static-page h1,
body .pts-homepage.pts-static-page h2 {
  font-family: var(--pts-serif);
  letter-spacing: -0.025em;
}

body .pts-homepage.pts-static-page h1 {
  margin: 0 0 24px;
  font-size: clamp(2.6rem, 5vw, 5rem);
  line-height: 1.03;
}

body .pts-homepage.pts-static-page h2 {
  margin-top: 0;
  font-size: clamp(2rem, 3.4vw, 3.35rem);
  line-height: 1.12;
}

body .pts-homepage.pts-static-page h3 {
  margin-top: 0;
  font-size: clamp(1.15rem, 1.7vw, 1.48rem);
  line-height: 1.32;
}

body .pts-homepage.pts-static-page p,
body .pts-homepage.pts-static-page li,
body .pts-homepage.pts-static-page dd,
body .pts-homepage.pts-static-page dt {
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}

body .pts-homepage.pts-static-page a {
  color: inherit;
  text-decoration: none;
  text-underline-offset: initial;
}

body .pts-homepage.pts-static-page ul,
body .pts-homepage.pts-static-page ol {
  margin-top: 0;
  padding-left: 0;
  list-style: none;
}

body .pts-homepage.pts-static-page .pts-section-heading h2,
body .pts-homepage.pts-static-page .pts-entity-copy h2 {
  margin: 0 0 16px;
}

body .pts-homepage.pts-static-page .pts-section-heading p:last-child,
body .pts-homepage.pts-static-page .pts-answer-first,
body .pts-homepage.pts-static-page .pts-deliverables p,
body .pts-homepage.pts-static-page .pts-method-steps p,
body .pts-homepage.pts-static-page .pts-trust-grid p,
body .pts-homepage.pts-static-page .pts-standards-grid p,
body .pts-homepage.pts-static-page .pts-faq-answer p,
body .pts-homepage.pts-static-page .pts-final-cta p:not(.pts-section-kicker) {
  margin-bottom: 0;
}

/* ---------- 24.3 BUTTON AND LINK COLOR PROTECTION ---------- */
body .pts-homepage.pts-static-page .pts-button,
body .pts-homepage.pts-static-page .pts-text-link,
body .pts-homepage.pts-static-page .pts-service-link,
body .pts-homepage.pts-static-page .pts-home-nav a {
  text-decoration: none;
}

body .pts-homepage.pts-static-page .pts-button-primary,
body .pts-homepage.pts-static-page .pts-button-gold,
body .pts-homepage.pts-static-page .pts-button-ghost {
  color: var(--pts-white);
}

body .pts-homepage.pts-static-page .pts-button-secondary {
  color: var(--pts-ink);
}

body .pts-homepage.pts-static-page .pts-text-link {
  color: var(--pts-jade);
}

body .pts-homepage.pts-static-page .pts-service-link {
  color: var(--pts-white);
}

body .pts-homepage.pts-static-page .pts-service-link:hover {
  color: var(--pts-bronze);
}

body .pts-homepage.pts-static-page .pts-home-nav a {
  color: var(--pts-muted);
}

body .pts-homepage.pts-static-page .pts-home-nav a:hover {
  color: var(--pts-jade-dark);
}

/* ==========================================================
25. CRITICAL COMPONENT LAYOUT PROTECTION
========================================================== */

/* ---------- 25.1 HERO ---------- */
body .pts-homepage.pts-static-page .pts-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.38fr) minmax(320px, 0.72fr);
  gap: clamp(36px, 6vw, 86px);
  align-items: center;
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-hero-copy,
body .pts-homepage.pts-static-page .pts-hero-aside {
  width: 100%;
  min-width: 0;
  max-width: none;
  float: none;
}

body .pts-homepage.pts-static-page .pts-hero-aside h2 {
  margin: 0 0 24px;
  font-size: clamp(1.65rem, 2.5vw, 2.35rem);
}

/* ---------- 25.2 PROOF STRIP AND QUICK NAV ---------- */
body .pts-homepage.pts-static-page .pts-proof-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-proof-strip > div {
  width: 100%;
  min-width: 0;
  max-width: none;
  float: none;
}

body .pts-homepage.pts-static-page .pts-home-nav {
  display: flex;
  width: auto;
  max-width: 100%;
}

/* ---------- 25.3 ENTITY TWO-COLUMN ANSWER ---------- */
body .pts-homepage.pts-static-page .pts-entity-section {
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  gap: clamp(44px, 7vw, 96px);
  align-items: start;
  width: 100%;
  max-width: none;
  direction: ltr;
}

body .pts-homepage.pts-static-page .pts-entity-section.pts-layout-reverse {
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
}

body .pts-homepage.pts-static-page .pts-entity-copy,
body .pts-homepage.pts-static-page .pts-entity-section > .pts-deliverables {
  width: 100%;
  min-width: 0;
  max-width: none;
  float: none;
}

/* ---------- 25.4 DELIVERABLES / NUMBERED EXPLANATION LIST ---------- */
body .pts-homepage.pts-static-page .pts-deliverables {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
  columns: auto;
  column-count: auto;
  float: none;
  clear: both;
}

body .pts-homepage.pts-static-page .pts-deliverables > article {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  grid-template-rows: auto;
  gap: 20px;
  align-items: start;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 28px 0;
  float: none;
  clear: both;
}

body .pts-homepage.pts-static-page .pts-deliverables > article > span {
  grid-column: 1;
  grid-row: 1;
  display: block;
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  float: none;
  white-space: nowrap;
}

body .pts-homepage.pts-static-page .pts-deliverables > article > div {
  grid-column: 2;
  grid-row: 1;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  float: none;
  clear: none;
}

body .pts-homepage.pts-static-page .pts-deliverables h3,
body .pts-homepage.pts-static-page .pts-deliverables p {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  float: none;
}

body .pts-homepage.pts-static-page .pts-deliverables h3 {
  margin: 0 0 9px;
}

/* ---------- 25.5 JOURNEY, SERVICE, TRUST, STANDARD AND CASE GRIDS ---------- */
body .pts-homepage.pts-static-page .pts-journey-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-services-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-trust-grid,
body .pts-homepage.pts-static-page .pts-case-grid,
body .pts-homepage.pts-static-page .pts-knowledge-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-standards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: 100%;
}

body .pts-homepage.pts-static-page :is(
  .pts-journey-card,
  .pts-service-card,
  .pts-trust-grid article,
  .pts-case-card,
  .pts-knowledge-grid article,
  .pts-standards-grid article
) {
  width: 100%;
  min-width: 0;
  max-width: none;
  float: none;
}

body .pts-homepage.pts-static-page :is(
  .pts-journey-card,
  .pts-service-card,
  .pts-trust-grid article,
  .pts-case-card,
  .pts-knowledge-grid article,
  .pts-standards-grid article
) :is(h3, p, dl, dt, dd) {
  min-width: 0;
  max-width: none;
}

body .pts-homepage.pts-static-page .pts-service-card h3 {
  margin: 0 0 24px;
  color: var(--pts-white);
  font-family: var(--pts-serif);
  font-size: clamp(1.4rem, 2vw, 1.9rem);
}

body .pts-homepage.pts-static-page .pts-service-card dl,
body .pts-homepage.pts-static-page .pts-service-card dd {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
}

body .pts-homepage.pts-static-page .pts-service-card dl > div {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 18px;
  width: 100%;
  min-width: 0;
}

/* ---------- 25.6 METHOD STEPS AND EXPERT CARD ---------- */
body .pts-homepage.pts-static-page .pts-method-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.7fr);
  gap: clamp(40px, 6vw, 82px);
  align-items: start;
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-method-steps {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  columns: auto;
  column-count: auto;
  float: none;
}

body .pts-homepage.pts-static-page .pts-method-steps > li {
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr);
  gap: 22px;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0 0 34px;
  float: none;
  clear: both;
}

body .pts-homepage.pts-static-page .pts-method-steps > li > .pts-step-index {
  grid-column: 1;
  width: 48px;
  min-width: 48px;
  max-width: 48px;
  margin: 0;
  float: none;
}

body .pts-homepage.pts-static-page .pts-method-steps > li > div {
  grid-column: 2;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  float: none;
}

body .pts-homepage.pts-static-page .pts-method-steps h3 {
  width: 100%;
  margin: 3px 0 9px;
}

body .pts-homepage.pts-static-page .pts-method-steps p {
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-expert-card {
  width: 100%;
  min-width: 0;
  max-width: none;
  float: none;
}

body .pts-homepage.pts-static-page .pts-expert-card h3 {
  margin: 0 0 18px;
  color: var(--pts-white);
  font-family: var(--pts-serif);
  font-size: clamp(1.75rem, 2.5vw, 2.45rem);
}

body .pts-homepage.pts-static-page .pts-expert-scope {
  display: block;
  width: 100%;
  margin: 24px 0 28px;
  padding: 0;
  columns: auto;
  column-count: auto;
}

body .pts-homepage.pts-static-page .pts-expert-scope > li {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  float: none;
}

/* ---------- 25.7 HERO PRINCIPLES ---------- */
body .pts-homepage.pts-static-page .pts-hero-principles {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}

body .pts-homepage.pts-static-page .pts-hero-principles > li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 12px;
  width: 100%;
  min-width: 0;
  float: none;
}

/* ---------- 25.8 FEATURED, CONTENT, FAQ AND FINAL CTA ---------- */
body .pts-homepage.pts-static-page .pts-featured-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-content-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(38px, 6vw, 72px);
  width: 100%;
}

body .pts-homepage.pts-static-page .pts-faq-list {
  width: 100%;
  min-width: 0;
  max-width: 980px;
}

body .pts-homepage.pts-static-page .pts-faq-item,
body .pts-homepage.pts-static-page .pts-faq-answer {
  width: 100%;
  min-width: 0;
}

body .pts-homepage.pts-static-page .pts-faq-item summary {
  color: var(--pts-ink);
}

body .pts-homepage.pts-static-page .pts-final-cta {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
  width: 100%;
  min-width: 0;
}

body .pts-homepage.pts-static-page .pts-final-cta h2,
body .pts-homepage.pts-static-page .pts-section-heading-light h2 {
  color: var(--pts-white);
}

body .pts-homepage.pts-static-page .pts-final-cta h2 {
  margin: 0 0 17px;
}

/* ==========================================================
26. NEW REUSABLE STATIC PAGE COMPONENTS
========================================================== */

/* ---------- 26.1 PAGE META / RESPONSIBILITY BAR ---------- */
.pts-page-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
  align-items: center;
  padding: 16px 0;
  border-block: 1px solid var(--pts-line);
  color: var(--pts-muted);
  font-size: 0.82rem;
}

.pts-page-meta strong {
  color: var(--pts-ink);
}

.pts-page-meta a {
  color: var(--pts-jade);
  font-weight: 800;
}

/* ---------- 26.2 CALLOUT / DISCLOSURE ---------- */
.pts-callout {
  position: relative;
  margin: 28px 0;
  padding: 24px 26px 24px 30px;
  border: 1px solid var(--pts-line);
  border-left: 4px solid var(--pts-jade);
  border-radius: var(--pts-radius-sm);
  background: var(--pts-card-muted);
  color: var(--pts-text);
}

.pts-callout::before {
  content: "";
  position: absolute;
  top: 26px;
  left: -7px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--pts-jade);
}

.pts-callout h3 {
  margin: 0 0 8px;
}

.pts-callout p:last-child {
  margin-bottom: 0;
}

.pts-callout-warning {
  border-left-color: var(--pts-bronze);
  background: var(--pts-bronze-soft);
}

.pts-callout-warning::before {
  background: var(--pts-bronze);
}

.pts-callout-critical {
  border-left-color: var(--pts-seal);
}

.pts-callout-critical::before {
  background: var(--pts-seal);
}

/* ---------- 26.3 CHECKLIST ---------- */
.pts-checklist {
  display: grid;
  gap: 12px;
  margin: 24px 0;
}

.pts-checklist li {
  position: relative;
  display: block;
  min-width: 0;
  padding: 15px 18px 15px 48px;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-xs);
  background: var(--pts-card);
}

.pts-checklist li::before {
  content: "✓";
  position: absolute;
  top: 14px;
  left: 17px;
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border-radius: 50%;
  background: var(--pts-jade-soft);
  color: var(--pts-jade-dark);
  font-size: 0.78rem;
  font-weight: 900;
}

/* ---------- 26.4 RESPONSIVE DATA TABLE ---------- */
.pts-table-wrap {
  width: 100%;
  margin: 28px 0;
  overflow-x: auto;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-sm);
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-sm);
}

.pts-table {
  width: 100%;
  min-width: 680px;
  border-collapse: collapse;
  color: var(--pts-text);
  font-size: 0.92rem;
}

.pts-table th,
.pts-table td {
  padding: 16px 18px;
  border-bottom: 1px solid var(--pts-line);
  text-align: left;
  vertical-align: top;
}

.pts-table th {
  background: var(--pts-card-muted);
  color: var(--pts-ink);
  font-size: 0.76rem;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.pts-table tr:last-child td {
  border-bottom: 0;
}

/* ---------- 26.5 CONTACT / IDENTITY CARDS ---------- */
.pts-contact-grid,
.pts-profile-grid,
.pts-info-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
}

.pts-contact-card,
.pts-profile-card,
.pts-info-card {
  min-width: 0;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-md);
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-sm);
}

.pts-contact-card h3,
.pts-profile-card h3,
.pts-info-card h3 {
  margin: 0 0 10px;
}

.pts-contact-card p:last-child,
.pts-profile-card p:last-child,
.pts-info-card p:last-child {
  margin-bottom: 0;
}

.pts-contact-card a {
  color: var(--pts-jade);
  font-weight: 800;
}

/* ---------- 26.6 PROFILE HEADER ---------- */
.pts-profile-panel {
  display: grid;
  grid-template-columns: minmax(220px, 0.58fr) minmax(0, 1.42fr);
  gap: clamp(30px, 5vw, 64px);
  align-items: center;
  width: 100%;
  padding: clamp(28px, 5vw, 56px);
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-lg);
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-md);
}

.pts-profile-media {
  width: 100%;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--pts-radius-md);
  background: var(--pts-jade-dark);
  aspect-ratio: 4 / 5;
}

.pts-profile-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.pts-profile-content {
  min-width: 0;
}

.pts-profile-content h2 {
  margin-bottom: 14px;
}

/* ---------- 26.7 TIMELINE ---------- */
.pts-timeline {
  position: relative;
  display: grid;
  gap: 0;
  margin: 30px 0;
}

.pts-timeline::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 18px;
  width: 1px;
  background: var(--pts-line-strong);
}

.pts-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 18px;
  padding-bottom: 28px;
}

.pts-timeline-item:last-child {
  padding-bottom: 0;
}

.pts-timeline-mark {
  position: relative;
  z-index: 1;
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid var(--pts-bronze);
  border-radius: 50%;
  background: var(--pts-paper);
  color: var(--pts-bronze-dark);
  font-family: var(--pts-serif);
  font-size: 0.78rem;
  font-weight: 800;
}

.pts-timeline-content {
  min-width: 0;
  padding-top: 4px;
}

.pts-timeline-content h3 {
  margin: 0 0 7px;
}

.pts-timeline-content p:last-child {
  margin-bottom: 0;
}

/* ---------- 26.8 SOURCE / REFERENCE LIST ---------- */
.pts-source-list {
  display: grid;
  gap: 10px;
  margin: 24px 0;
  counter-reset: pts-source;
}

.pts-source-list li {
  position: relative;
  min-width: 0;
  padding: 15px 18px 15px 52px;
  border-bottom: 1px solid var(--pts-line);
  counter-increment: pts-source;
}

.pts-source-list li::before {
  content: counter(pts-source, decimal-leading-zero);
  position: absolute;
  top: 15px;
  left: 8px;
  color: var(--pts-bronze-dark);
  font-family: var(--pts-serif);
  font-weight: 800;
}

.pts-source-list a {
  color: var(--pts-jade);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* ---------- 26.9 FORM PANEL ---------- */
.pts-form-panel {
  width: 100%;
  padding: clamp(26px, 4vw, 46px);
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-md);
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-md);
}

.pts-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.pts-form-field {
  min-width: 0;
}

.pts-form-field-full {
  grid-column: 1 / -1;
}

.pts-form-field label {
  display: block;
  margin-bottom: 7px;
  color: var(--pts-ink);
  font-size: 0.84rem;
  font-weight: 800;
}

.pts-form-help {
  display: block;
  margin-top: 6px;
  color: var(--pts-soft-text);
  font-size: 0.76rem;
}

/* ---------- 26.10 TWO-COLUMN GENERIC LAYOUT ---------- */
.pts-split-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, 0.72fr);
  gap: clamp(36px, 6vw, 76px);
  align-items: start;
  width: 100%;
}

.pts-split-main,
.pts-split-aside {
  min-width: 0;
}

.pts-split-aside {
  position: sticky;
  top: 140px;
}

/* ==========================================================
27. STATIC PAGE RESPONSIVE
========================================================== */
@media (max-width: 1100px) {
  body .pts-homepage.pts-static-page .pts-proof-strip,
  body .pts-homepage.pts-static-page .pts-journey-grid,
  body .pts-homepage.pts-static-page .pts-standards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-contact-grid,
  .pts-profile-grid,
  .pts-info-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 991px) {
  body .pts-homepage.pts-static-page :is(
    .pts-hero,
    .pts-entity-section,
    .pts-method-layout,
    .pts-content-layout,
    .pts-final-cta
  ),
  .pts-profile-panel,
  .pts-split-layout {
    grid-template-columns: 1fr;
  }

  body .pts-homepage.pts-static-page .pts-entity-copy,
  body .pts-homepage.pts-static-page .pts-expert-card,
  .pts-split-aside {
    position: static;
  }

  body .pts-homepage.pts-static-page .pts-services-grid,
  body .pts-homepage.pts-static-page .pts-trust-grid,
  body .pts-homepage.pts-static-page .pts-case-grid,
  body .pts-homepage.pts-static-page .pts-knowledge-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body .pts-homepage.pts-static-page .pts-featured-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pts-profile-panel {
    max-width: 760px;
  }

  .pts-profile-media {
    max-width: 360px;
  }
}

@media (max-width: 767px) {
  body .pts-homepage.pts-static-page > .pts-home-container,
  body .pts-homepage.pts-static-page > .container {
    width: min(calc(100% - 28px), var(--pts-container));
  }

  body .pts-homepage.pts-static-page h1 {
    font-size: clamp(2.35rem, 12vw, 3.5rem);
  }

  body .pts-homepage.pts-static-page h2 {
    font-size: clamp(1.85rem, 9vw, 2.65rem);
  }

  body .pts-homepage.pts-static-page :is(
    .pts-proof-strip,
    .pts-journey-grid,
    .pts-services-grid,
    .pts-trust-grid,
    .pts-case-grid,
    .pts-knowledge-grid,
    .pts-standards-grid,
    .pts-featured-grid
  ),
  .pts-contact-grid,
  .pts-profile-grid,
  .pts-info-grid,
  .pts-form-grid {
    grid-template-columns: 1fr;
  }

  body .pts-homepage.pts-static-page .pts-deliverables > article {
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 12px;
  }

  body .pts-homepage.pts-static-page .pts-method-steps > li {
    grid-template-columns: 50px minmax(0, 1fr);
    gap: 14px;
  }

  body .pts-homepage.pts-static-page .pts-service-card dl > div {
    grid-template-columns: 1fr;
    gap: 5px;
  }

  .pts-form-field-full {
    grid-column: auto;
  }

  .pts-table {
    min-width: 600px;
  }
}

/* ==========================================================
28. STATIC PAGE DARK MODE AND PRINT
========================================================== */
[data-theme="dark"] .pts-callout {
  background: var(--pts-card-muted);
}

[data-theme="dark"] .pts-callout-warning {
  background: var(--pts-bronze-soft);
}

[data-theme="dark"] .pts-checklist li,
[data-theme="dark"] .pts-contact-card,
[data-theme="dark"] .pts-profile-card,
[data-theme="dark"] .pts-info-card,
[data-theme="dark"] .pts-profile-panel,
[data-theme="dark"] .pts-form-panel,
[data-theme="dark"] .pts-table-wrap {
  background: var(--pts-card);
}

@media print {
  .pts-static-page .pts-home-nav,
  .pts-static-page .pts-hero-actions,
  .pts-static-page .pts-final-actions,
  .pts-static-page .pts-form-panel {
    display: none !important;
  }

  body .pts-homepage.pts-static-page {
    width: 100%;
    margin: 0;
    overflow: visible;
    background: #fff;
    color: #000;
  }

  body .pts-homepage.pts-static-page > .pts-home-container,
  body .pts-homepage.pts-static-page > .container {
    width: 100%;
    max-width: none;
  }

  .pts-callout,
  .pts-contact-card,
  .pts-profile-card,
  .pts-info-card,
  .pts-profile-panel,
  .pts-table-wrap {
    break-inside: avoid;
    box-shadow: none;
  }
}


/* ==========================================================
29. V5.2 HORIZONTAL LAYOUT SAFETY
========================================================== */
html,
body {
  max-width: 100%;
}

body .pts-homepage.pts-static-page,
body .pts-homepage.pts-static-page > .pts-home-container,
body .pts-homepage.pts-static-page > .container {
  max-width: 100%;
  min-width: 0;
}

body .pts-homepage.pts-static-page img,
body .pts-homepage.pts-static-page video,
body .pts-homepage.pts-static-page iframe,
body .pts-homepage.pts-static-page table {
  max-width: 100%;
}

/* Do not let long URLs, code, or unbroken strings create page-wide overflow. */
body .pts-homepage.pts-static-page :is(p, li, dd, dt, td, th, a, span, code, pre) {
  overflow-wrap: anywhere;
}

/* Tables are intentionally scrollable inside their own wrapper. */
body .pts-homepage.pts-static-page .pts-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
}



/* ==========================================================
FINAL LAYOUT + TYPOGRAPHY SAFETY LAYER — V5.3
Purpose: one stable CSS foundation for all current/future PTS pages.
========================================================== */

/* Viewport safety: never let WordPress wrappers create horizontal scroll. */
html {
  max-width: 100%;
  overflow-x: clip;
}

body {
  max-width: 100%;
  overflow-x: clip;
}

/* Static pages must live inside the viewport, not 100vw. */
body .pts-homepage.pts-static-page {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
  overflow-x: clip;
}

.page-body > .pts-homepage.pts-static-page,
.page-content > .pts-homepage.pts-static-page,
.entry-content > .pts-homepage.pts-static-page {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}

/* Stable content rail: equal left/right margins at every viewport width. */
body .pts-homepage.pts-static-page > .pts-home-container,
body .pts-homepage.pts-static-page > .container,
body .pts-homepage.pts-static-page .pts-container {
  width: min(1220px, calc(100% - 40px));
  max-width: 1220px;
  min-width: 0;
  margin-left: auto;
  margin-right: auto;
}

/* Media cannot enlarge the layout. */
body .pts-homepage.pts-static-page img,
body .pts-homepage.pts-static-page picture,
body .pts-homepage.pts-static-page video,
body .pts-homepage.pts-static-page iframe,
body .pts-homepage.pts-static-page svg {
  max-width: 100%;
}

body .pts-homepage.pts-static-page img,
body .pts-homepage.pts-static-page video {
  height: auto;
}

/* Long URLs / tokens must wrap instead of widening the page. */
body .pts-homepage.pts-static-page :is(p, li, dd, dt, td, th, a, span, code, pre) {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Tables scroll inside their own component only. */
body .pts-homepage.pts-static-page .pts-table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

body .pts-homepage.pts-static-page .pts-table-wrap > table {
  width: 100%;
  min-width: 680px;
}

/* Full-bleed visual sections are allowed to fill the viewport without
   forcing the document itself wider than the viewport. */
body .pts-homepage.pts-static-page .pts-services-section,
body .pts-homepage.pts-static-page .pts-trust-section {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-left: 0;
  margin-right: 0;
}

/* Page-title hierarchy: warm copper/bronze, while body text stays dark jade. */
.pts-homepage h1,
.pts-homepage h2 {
  color: var(--pts-title);
}

.pts-homepage .pts-section-heading h2,
.pts-homepage .pts-entity-copy h2,
.pts-homepage .pts-method-section h2,
.pts-homepage .pts-standards-section h2,
.pts-homepage .pts-legal-section h2,
.pts-homepage .pts-final-cta h2 {
  color: var(--pts-title);
}

/* H3 remains darker for stronger reading hierarchy. */
.pts-homepage h3,
.pts-homepage h4 {
  color: var(--pts-ink);
}

/* Copper is reserved for labels, rules, icons and accents rather than long body text. */
.pts-homepage :is(.pts-eyebrow, .pts-kicker, .pts-section-label) {
  color: var(--pts-copper);
}

/* Prevent flex/grid children from imposing intrinsic widths. */
.pts-homepage :is(.pts-grid, .pts-home-grid, .pts-content-layout, .pts-profile-grid,
  .pts-method-layout, .pts-contact-grid, .pts-services-grid, .pts-trust-grid,
  .pts-case-grid, .pts-knowledge-grid, .pts-standards-grid) > * {
  min-width: 0;
}

/* WordPress embeds and Gutenberg blocks stay inside the content rail. */
.pts-homepage :is(.wp-block-embed, .wp-block-image, .wp-block-table,
  .wp-block-columns, .wp-block-group, .wp-block-cover) {
  max-width: 100%;
  min-width: 0;
}

/* Accessible keyboard focus remains visible even on copper/jade surfaces. */
.pts-homepage :is(a, button, input, textarea, select):focus-visible {
  outline: 3px solid var(--pts-focus);
  outline-offset: 3px;
}

/* Mobile rail: 20px each side; no accidental 100vw overflow. */
@media (max-width: 767px) {
  body .pts-homepage.pts-static-page > .pts-home-container,
  body .pts-homepage.pts-static-page > .container,
  body .pts-homepage.pts-static-page .pts-container {
    width: min(100% - 32px, 1220px);
  }

  body .pts-homepage.pts-static-page .pts-services-section,
  body .pts-homepage.pts-static-page .pts-trust-section {
    width: 100%;
    max-width: 100%;
  }

  .pts-homepage h1 {
    font-size: clamp(2.15rem, 10vw, 3.4rem);
    line-height: 1.08;
  }

  .pts-homepage h2 {
    font-size: clamp(1.75rem, 7vw, 2.55rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .pts-homepage *,
  .pts-homepage *::before,
  .pts-homepage *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
/* Cho phép footer full-width trên page template */
/* Trang PTS: shell full-width, gỡ giới hạn 820px */
.pts-page-shell:has(.pts-static-page) {
    width: 100% !important;
    max-width: 100% !important;
    padding-inline: 0 !important;
}

.page-body.page-body-full {
    max-width: none !important;
}

/* Breadcrumb trên trang PTS vẫn căn theo container 1220px */
.pts-page-shell:has(.pts-static-page) > .breadcrumb {
    width: min(calc(100% - 40px), var(--pts-container));
    margin-inline: auto;
}
/*
 * ============================================================
 * CSS CHO AUTHOR BOX — dán vào CUỐI style.css
 * (Dùng sẵn design token của theme, tự tương thích dark mode)
 * ============================================================
*/

.pts-author-box {
    display: grid;
    grid-template-columns: 96px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    margin: 42px 0;
    padding: 26px 28px;
    border: 1px solid var(--pts-line);
    border-left: 4px solid var(--pts-jade);
    border-radius: var(--pts-radius-md);
    background: var(--pts-card);
    box-shadow: var(--pts-shadow-sm);
}
.pts-author-box-media img {
    display: block;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
}
.pts-author-box-label {
    margin: 0 0 6px;
    color: var(--pts-bronze-dark);
    font-size: .76rem;
    font-weight: 900;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.pts-author-box-name {
    margin: 0 0 4px;
    font-size: 1.25rem;
}
.pts-author-box-role {
    margin: 0 0 10px;
    color: var(--pts-jade);
    font-size: .84rem;
    font-weight: 700;
}
.pts-author-box-bio {
    margin: 0 0 12px;
    color: var(--pts-muted);
    font-size: .95rem;
}
@media (max-width: 600px) {
    .pts-author-box { grid-template-columns: 1fr; }
}
/* Post-meta theo kiểu page-meta cho bài viết */
.pts-post-meta {
    margin-bottom: 32px;
}

.pts-post-meta a {
    color: var(--pts-jade);
    font-weight: 800;
    text-decoration: none;
}

.pts-post-meta a:hover {
    color: var(--pts-jade-dark);
}
/* ========== READING PROGRESS BAR ========== */

.pts-reading-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    z-index: 9999;
    background: transparent;
    pointer-events: none;
}

.pts-reading-progress-bar {
    display: block;
    height: 100%;
    background: linear-gradient(to right, var(--pts-jade), var(--pts-bronze));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 80ms linear;
}

.admin-bar .pts-reading-progress { top: 32px; }

@media (max-width: 782px) {
    .admin-bar .pts-reading-progress { top: 46px; }
}

/* ========== POST-META PAGE STYLE ========== */

.pts-post-meta { margin-bottom: 32px; }

.pts-post-meta a {
    color: var(--pts-jade);
    font-weight: 800;
    text-decoration: none;
}

.pts-post-meta a:hover { color: var(--pts-jade-dark); }

/* ========== LEAD PARAGRAPH — thay hộp Tóm tắt ========== */

.post-body > p:first-of-type {
    font-size: 1.12rem;
    line-height: 1.85;
    font-weight: 500;
    color: var(--pts-ink);
    margin-bottom: 28px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--pts-line);
}

/* ========== TOC COLLAPSIBLE ========== */

.pts-toc-collapse {
    margin: 0 0 36px;
    border: 1px solid var(--pts-line);
    border-radius: var(--pts-radius-md);
    background: var(--pts-card-muted);
    overflow: hidden;
}

.pts-toc-collapse summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px 22px;
    color: var(--pts-ink);
    font-size: 0.9rem;
    font-weight: 800;
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.pts-toc-collapse summary::-webkit-details-marker { display: none; }

.pts-toc-toggle {
    position: relative;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
}

.pts-toc-toggle::before,
.pts-toc-toggle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 2px;
    background: var(--pts-bronze);
    transform: translate(-50%, -50%);
    transition: transform var(--pts-transition);
}

.pts-toc-toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.pts-toc-collapse[open] .pts-toc-toggle::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.pts-toc-collapse .pts-toc-list {
    margin: 0;
    padding: 0 22px 18px;
    list-style: none;
}

.pts-toc-collapse .pts-toc-list li {
    margin: 0;
    padding: 7px 0;
    border-bottom: 1px solid var(--pts-line);
}

.pts-toc-collapse .pts-toc-list li:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.pts-toc-collapse .pts-toc-list li.pts-toc-sub {
    padding-left: 18px;
    font-size: 0.92em;
}

.pts-toc-collapse .pts-toc-list a {
    color: var(--pts-text);
    text-decoration: none;
    transition: color var(--pts-transition);
}

.pts-toc-collapse .pts-toc-list a:hover { color: var(--pts-jade); }

/* Anchor offset cho sticky header */
.post-body h2,
.post-body h3 { scroll-margin-top: 100px; }

/* ========== AUTO INTERNAL LINKS ========== */

.pts-auto-link {
    color: var(--pts-jade);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-color: color-mix(in srgb, var(--pts-jade) 40%, transparent);
    transition: color var(--pts-transition), text-decoration-color var(--pts-transition);
}

.pts-auto-link:hover {
    color: var(--pts-jade-dark);
    text-decoration-color: var(--pts-jade);
}

/* ========== SOURCES SECTION ========== */

.pts-sources-section {
    margin: 40px 0;
    padding-top: 28px;
    border-top: 1px solid var(--pts-line);
}

.pts-sources-title {
    margin: 0 0 16px;
    color: var(--pts-ink);
    font-family: var(--pts-serif);
    font-size: 1.15rem;
    font-weight: 700;
}

/* ========== CITE BOX ========== */

.pts-cite-box {
    margin: 40px 0;
    padding: 22px 26px;
    border: 1px dashed var(--pts-line-strong);
    border-radius: var(--pts-radius-sm);
    background: var(--pts-card-muted);
}

.pts-cite-label {
    margin: 0 0 10px;
    color: var(--pts-bronze-dark);
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.pts-cite-text {
    margin: 0 0 14px;
    color: var(--pts-muted);
    font-size: 0.84rem;
    line-height: 1.7;
    word-break: break-word;
}

.pts-cite-copy {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px;
    border: 1px solid var(--pts-line-strong);
    border-radius: 999px;
    background: var(--pts-card);
    color: var(--pts-text);
    font-size: 0.78rem;
    font-weight: 800;
    cursor: pointer;
    font-family: inherit;
    transition: background var(--pts-transition), color var(--pts-transition), border-color var(--pts-transition);
}

.pts-cite-copy:hover {
    border-color: var(--pts-jade);
    background: var(--pts-jade-soft);
    color: var(--pts-jade-dark);
}

/* ========== SHARE ========== */

.pts-share {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin: 32px 0;
    padding: 18px 22px;
    border: 1px solid var(--pts-line);
    border-radius: var(--pts-radius-sm);
    background: var(--pts-card);
}

.pts-share-label {
    color: var(--pts-soft-text);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.pts-share-btn {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    border: 1px solid var(--pts-line-strong);
    border-radius: 999px;
    background: var(--pts-paper);
    color: var(--pts-text);
    font-size: 0.8rem;
    font-weight: 800;
    text-decoration: none;
    cursor: pointer;
    font-family: inherit;
    transition: border-color var(--pts-transition), color var(--pts-transition), background var(--pts-transition);
}

.pts-share-btn:hover {
    border-color: var(--pts-jade);
    background: var(--pts-jade-soft);
    color: var(--pts-jade-dark);
}

/* ========== PREV / NEXT ========== */

.pts-post-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    margin: 40px 0;
}

.pts-post-nav-item {
    min-width: 0;
    padding: 20px 24px;
    border: 1px solid var(--pts-line);
    border-radius: var(--pts-radius-sm);
    background: var(--pts-card);
    transition: border-color var(--pts-transition), box-shadow var(--pts-transition);
}

.pts-post-nav-item:hover {
    border-color: var(--pts-jade);
    box-shadow: var(--pts-shadow-sm);
}

.pts-post-nav-next { text-align: right; }

.pts-post-nav-label {
    display: block;
    margin-bottom: 6px;
    color: var(--pts-soft-text);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.pts-post-nav-item a {
    color: var(--pts-ink);
    font-family: var(--pts-serif);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.4;
    text-decoration: none;
    transition: color var(--pts-transition);
}

.pts-post-nav-item a:hover { color: var(--pts-jade); }

/* ========== DARK MODE ========== */

[data-theme="dark"] .pts-toc-collapse,
[data-theme="dark"] .pts-cite-box {
    background: var(--pts-card-muted);
}

[data-theme="dark"] .pts-share,
[data-theme="dark"] .pts-share-btn,
[data-theme="dark"] .pts-cite-copy,
[data-theme="dark"] .pts-post-nav-item {
    background: var(--pts-card);
}

/* ========== RESPONSIVE ========== */

@media (max-width: 600px) {
    .pts-post-nav { grid-template-columns: 1fr; }
    .pts-post-nav-next { text-align: left; }
    .pts-cite-box { padding: 20px 22px; }
    .pts-share { gap: 8px; padding: 16px 18px; }
    .pts-share-btn { padding: 7px 13px; font-size: 0.76rem; }
}

/* ========== PRINT ========== */

@media print {
    .pts-reading-progress,
    .pts-toc-collapse,
    .pts-cite-box,
    .pts-share,
    .pts-post-nav { display: none !important; }
}
*/
/* PTS static page: cho trang liên hệ full-width giống đặt lịch, giới thiệu, dịch vụ */
.pts-homepage.pts-static-page.pts-contact-page {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

/* Giữ khung nội dung 1220px bên trong, giống các trang PTS khác */
.pts-homepage.pts-static-page.pts-contact-page .pts-home-container {
  width: min(calc(100% - 40px), var(--pts-container, 1200px));
  margin-inline: auto;
}
/* 404 PAGE — PHONG THỦY KHẢI TÍN */
.pts-404-page {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(260px, 0.8fr);
  gap: clamp(32px, 5vw, 64px);
  padding-block: clamp(72px, 9vw, 120px);
}

.pts-404-main {
  min-width: 0;
}

.error-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
  padding: 8px 18px;
  border-radius: 999px;
  border: 1px solid var(--pts-line-strong);
  background: var(--pts-card-muted);
  color: var(--pts-seal);
  font-family: var(--pts-serif);
  font-weight: 800;
  letter-spacing: 0.18em;
  font-size: 0.9rem;
}

.error-title {
  margin-bottom: 18px;
  color: var(--pts-ink);
  font-family: var(--pts-serif);
  font-size: clamp(2.35rem, 4.6vw, 3.8rem);
  line-height: 1.12;
}

.error-lead {
  margin-bottom: 24px;
  max-width: 620px;
  color: var(--pts-muted);
  font-size: 1.02rem;
  line-height: 1.86;
}

.error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 26px;
}

.error-search {
  margin-top: 16px;
}

.error-search-label {
  margin-bottom: 8px;
  color: var(--pts-soft-text);
  font-size: 0.86rem;
  font-weight: 700;
}

/* Ô search chuẩn PTS */
.pts-404-page .search-form {
  display: flex;
  gap: 10px;
}

.pts-404-page .search-form input[type="search"] {
  flex: 1;
  min-width: 0;
  padding: 11px 14px;
  border: 1px solid var(--pts-line);
  border-radius: var(--pts-radius-xs);
  background: var(--pts-card);
  color: var(--pts-text);
}

.pts-404-page .search-form button {
  border: 0;
  border-radius: var(--pts-radius-xs);
  background: var(--pts-jade);
  color: var(--pts-white);
  padding: 11px 20px;
  font-weight: 800;
  cursor: pointer;
}

/* Cột gợi ý đường đi */
.pts-404-suggestions {
  min-width: 0;
  padding: clamp(26px, 4vw, 40px);
  border-radius: var(--pts-radius-md);
  border: 1px solid var(--pts-line);
  background: var(--pts-card);
  box-shadow: var(--pts-shadow-sm);
}

.pts-404-suggestions h2 {
  margin: 0 0 14px;
  color: var(--pts-ink);
  font-size: 1.1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.pts-404-links {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pts-404-links li a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--pts-jade);
  font-size: 0.92rem;
  font-weight: 800;
  text-decoration: none;
}

.pts-404-links li a::after {
  content: "→";
  font-size: 0.8rem;
  transition: transform var(--pts-transition);
}

.pts-404-links li a:hover::after {
  transform: translateX(3px);
}

/* Responsive */
@media (max-width: 991px) {
  .pts-404-page {
    grid-template-columns: 1fr;
  }

  .pts-404-suggestions {
    max-width: 520px;
    margin-top: 18px;
  }
}

@media (max-width: 767px) {
  .pts-404-page {
    padding-block: 64px;
  }

  .error-title {
    font-size: clamp(2.1rem, 10vw, 3rem);
  }

  .error-actions {
    flex-direction: column;
  }

  .pts-404-page .search-form {
    flex-direction: column;
  }

  .pts-404-page .search-form button {
    width: 100%;
  }
}
/* Bảo vệ hero principles khỏi <br> tự động và word-break:anywhere */
body .pts-homepage.pts-commercial-service-page .pts-hero-principles {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

body .pts-homepage.pts-commercial-service-page .pts-hero-principles li {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 14px 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

body .pts-homepage.pts-commercial-service-page .pts-hero-principles li > span {
    display: block !important;
    width: 36px !important;
    min-width: 36px !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    line-height: 1.5 !important;
}

body .pts-homepage.pts-commercial-service-page .pts-hero-principles li > strong {
    display: block !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    font-weight: 720 !important;
    line-height: 1.6 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

/* Nếu WordPress đã sinh br trước strong, ẩn br đó */
body .pts-homepage.pts-commercial-service-page .pts-hero-principles li > br {
    display: none !important;
}
/* ==========================================================
PTS V5.3 — TITLE HIERARCHY FIX (INTEGRATED)
Đặt ở cuối file, sau mọi CSS khác.
========================================================== */

/* Nền sáng: H1/H2 dùng màu title đồng nâu. */
body .pts-homepage h1,
body .pts-homepage h2 {
  color: var(--pts-title);
}

/* H3/H4 giữ màu ink để tạo phân cấp đọc. */
body .pts-homepage h3,
body .pts-homepage h4,
body .pts-homepage h5,
body .pts-homepage h6 {
  color: var(--pts-ink);
}

/* Các nhãn nhỏ dùng copper/bronze. */
body .pts-homepage .pts-section-kicker,
body .pts-homepage .pts-eyebrow,
body .pts-homepage .pts-aside-label,
body .pts-homepage .pts-expert-label,
body .pts-homepage .pts-kicker,
body .pts-homepage .pts-section-label {
  color: var(--pts-copper);
}

body .pts-homepage .pts-card-number,
body .pts-homepage .pts-step-index,
body .pts-homepage .pts-hero-principles > li > span {
  color: var(--pts-bronze-dark);
}

/* Section nền jade: title phải trắng. */
body .pts-homepage .pts-services-section h1,
body .pts-homepage .pts-services-section h2,
body .pts-homepage .pts-services-section h3,
body .pts-homepage .pts-services-section h4,
body .pts-homepage .pts-section-heading-light h1,
body .pts-homepage .pts-section-heading-light h2,
body .pts-homepage .pts-section-heading-light h3,
body .pts-homepage .pts-section-heading-light h4,
body .pts-homepage .pts-service-card h3,
body .pts-homepage .pts-expert-card h1,
body .pts-homepage .pts-expert-card h2,
body .pts-homepage .pts-expert-card h3,
body .pts-homepage .pts-expert-card h4,
body .pts-homepage .pts-final-cta h1,
body .pts-homepage .pts-final-cta h2,
body .pts-homepage .pts-final-cta h3,
body .pts-homepage .pts-final-cta h4 {
  color: var(--pts-white);
}

/* Trang Giới thiệu: đồng bộ H1/H2 như thiết kế mẫu. */
body .pts-homepage.pts-about-page h1,
body .pts-homepage.pts-about-page h2,
body .pts-homepage.pts-about-page .pts-hero-copy h1,
body .pts-homepage.pts-about-page .pts-section-heading h2,
body .pts-homepage.pts-about-page .pts-entity-copy h2,
body .pts-homepage.pts-about-page .pts-hero-aside h2 {
  color: var(--pts-title);
}

body .pts-homepage.pts-about-page .pts-services-section h1,
body .pts-homepage.pts-about-page .pts-services-section h2,
body .pts-homepage.pts-about-page .pts-services-section h3,
body .pts-homepage.pts-about-page .pts-expert-card h1,
body .pts-homepage.pts-about-page .pts-expert-card h2,
body .pts-homepage.pts-about-page .pts-expert-card h3,
body .pts-homepage.pts-about-page .pts-final-cta h1,
body .pts-homepage.pts-about-page .pts-final-cta h2,
body .pts-homepage.pts-about-page .pts-final-cta h3 {
  color: var(--pts-white);
}

/* Hero principles: bảo vệ khỏi word-break: anywhere. */
body .pts-homepage .pts-hero-principles {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  columns: auto;
  column-count: auto;
}

body .pts-homepage .pts-hero-principles > li {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  width: 100%;
  margin: 0;
  padding: 14px 0;
}

body .pts-homepage.pts-commercial-service-page .pts-hero-principles li br {
  display: none;
}

body .pts-homepage.pts-commercial-service-page .pts-hero-principles li strong {
  display: block;
  line-height: 1.6;
  white-space: normal;
  overflow-wrap: break-word;
}


:root {
   --pts-serif: "Be Vietnam Pro", "Inter", Georgia, serif;
  --pts-sans: "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
  --pts-ink: #21362e;
  --pts-text: #34433b;
  --pts-muted: #68756d;
  --pts-soft-text: #7a857e;
  --pts-title: #754a32;
  --pts-jade: #1c6a54;
  --pts-jade-dark: #124737;
  --pts-jade-deep: #0d3328;
  --pts-jade-soft: #dfeae3;
  --pts-bronze: #ae7c34;
  --pts-bronze-dark: #76501d;
  --pts-bronze-soft: #f1e1bf;
  --pts-line: #ddd2bf;
  --pts-line-strong: #c9b99d;
  --pts-paper: #fbf8f0;
  --pts-card: #fffdf8;
  --pts-focus: #b98028;
}

[data-theme="dark"] {
  --pts-serif: "Be Vietnam Pro", Georgia, serif;
  --pts-sans: "Be Vietnam Pro", "Segoe UI", Arial, sans-serif;
  --pts-ink: #fff8e9;
  --pts-text: #e3e9e4;
  --pts-muted: #b4c0b7;
  --pts-soft-text: #92a096;
  --pts-title: #d3a276;
  --pts-jade: #87c5a0;
  --pts-jade-dark: #b6dfc5;
  --pts-jade-deep: #07140e;
  --pts-jade-soft: #21352a;
  --pts-bronze: #ddb76b;
  --pts-bronze-dark: #edcb86;
  --pts-bronze-soft: #382e1e;
  --pts-line: #34443a;
  --pts-line-strong: #526359;
  --pts-paper: #111c16;
  --pts-card: #18251e;
  --pts-focus: #e7bd66;
}

/* ---------------- Global readability ---------------- */
body {
  font-family: var(--pts-sans);
  font-size: 16px;
  line-height: 1.68;
  text-rendering: optimizeLegibility;
}

body .pts-homepage.pts-static-page,
body .pts-homepage.pts-static-page * {
  box-sizing: border-box;
}

body .pts-homepage.pts-static-page {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: clip;
  background: var(--pts-paper);
  color: var(--pts-text);
  font-family: var(--pts-sans);
  isolation: isolate;
}

.pts-homepage h1,
.pts-homepage h2,
.pts-homepage h3,
.pts-homepage h4,
.pts-privacy-page h1,
.pts-privacy-page h2,
.pts-about-page h1,
.pts-about-page h2 {
  font-family: var(--pts-serif);
  font-weight: 650;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.pts-homepage h1,
.pts-privacy-page h1,
.pts-about-page h1 {
  color: var(--pts-title);
  font-size: clamp(3rem, 4.6vw, 4.75rem);
  line-height: 1.02;
}

.pts-homepage h2,
.pts-privacy-page h2,
.pts-about-page h2 {
  color: var(--pts-title);
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: 1.12;
}

.pts-homepage h3,
.pts-privacy-page h3,
.pts-about-page h3 {
  font-size: clamp(1.2rem, 1.55vw, 1.5rem);
  line-height: 1.3;
}

.pts-homepage p,
.pts-homepage li,
.pts-homepage dd,
.pts-privacy-page p,
.pts-privacy-page li,
.pts-about-page p,
.pts-about-page li {
  font-family: var(--pts-sans);
  font-size: clamp(1rem, 1.05vw, 1.08rem);
  line-height: 1.68;
}

.pts-homepage p,
.pts-privacy-page p,
.pts-about-page p {
  max-width: 72ch;
}

.pts-section-kicker,
.pts-eyebrow,
.pts-aside-label,
.pts-expert-label {
  color: var(--pts-bronze) !important;
  font-family: var(--pts-sans) !important;
  font-size: .76rem !important;
  font-weight: 850 !important;
  letter-spacing: .12em !important;
  line-height: 1.4 !important;
  text-transform: uppercase;
}

/* ---------------- Header and navigation ---------------- */
#masthead,
.site-header,
.main-header,
body > header,
.wrapper > header:first-child {
  background: rgba(251, 248, 240, .96);
  border-bottom-color: var(--pts-line);
  box-shadow: 0 4px 18px rgba(45, 57, 48, .06);
}

[data-theme="dark"] #masthead,
[data-theme="dark"] .site-header,
[data-theme="dark"] .main-header,
[data-theme="dark"] body > header,
[data-theme="dark"] .wrapper > header:first-child {
  background: rgba(17, 28, 22, .96);
}

.nav-menu { gap: 14px; }
.nav-menu li a {
  padding: 22px 6px;
  color: var(--pts-ink);
  font-size: 14px;
  font-weight: 750;
  line-height: 1.35;
}

.nav-menu li a::after { background: var(--pts-bronze); }
.nav-menu li.current-menu-item > a,
.nav-menu li a:hover { color: var(--pts-jade-dark); }

/* ---------------- Hero ---------------- */
.pts-homepage.pts-static-page .pts-hero {
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  gap: clamp(42px, 6vw, 86px);
  min-height: 630px;
  padding-block: clamp(68px, 8vw, 112px);
}

.pts-homepage.pts-static-page .pts-hero h1 {
  max-width: 11ch;
  margin-bottom: 25px;
  color: var(--pts-title);
  font-size: clamp(3rem, 4.6vw, 4.75rem);
  line-height: 1.02;
}

.pts-homepage.pts-static-page .pts-hero-lead {
  max-width: 67ch;
  color: var(--pts-muted);
  font-size: clamp(1.07rem, 1.35vw, 1.23rem);
  line-height: 1.72;
}

.pts-homepage.pts-static-page .pts-hero-lead strong { color: var(--pts-jade-dark); }
.pts-homepage.pts-static-page .pts-hero-aside {
  border-color: rgba(174, 124, 52, .42);
  border-radius: 26px;
  background: linear-gradient(145deg, rgba(255, 253, 248, .98), rgba(244, 232, 204, .62));
  box-shadow: 0 22px 54px rgba(93, 67, 43, .12);
}

[data-theme="dark"] .pts-homepage.pts-static-page .pts-hero-aside {
  background: linear-gradient(145deg, var(--pts-card), var(--pts-card-muted));
}

.pts-homepage.pts-static-page .pts-hero-aside h2 {
  max-width: 16ch;
  color: var(--pts-title);
  font-size: clamp(1.85rem, 2.7vw, 2.7rem);
  line-height: 1.07;
}

.pts-homepage.pts-static-page .pts-hero-principles li {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 12px;
  padding-block: 16px;
  border-top-color: var(--pts-line);
}

.pts-homepage.pts-static-page .pts-hero-principles li span { color: var(--pts-bronze); }
.pts-homepage.pts-static-page .pts-hero-principles li strong {
  color: var(--pts-ink);
  font-size: .98rem;
  line-height: 1.48;
}

.pts-hero-trust {
  margin-top: 18px;
  color: var(--pts-muted) !important;
  font-size: .88rem !important;
  font-weight: 700;
  line-height: 1.5 !important;
}

.pts-hero-credentials {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin-top: 18px;
  color: var(--pts-muted);
  font-size: .86rem;
  font-weight: 750;
}

.pts-hero-credentials span::before {
  content: "✓";
  margin-right: 6px;
  color: var(--pts-bronze);
}

/* ---------------- Buttons and proof ---------------- */
.pts-homepage.pts-static-page .pts-button {
  min-height: 50px;
  padding: 13px 23px;
  border-radius: 999px;
  font-size: .95rem;
  font-weight: 800;
}

.pts-homepage.pts-static-page .pts-button-primary,
.pts-homepage.pts-static-page .pts-button-gold {
  background: var(--pts-jade);
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(28, 106, 84, .18);
}

.pts-homepage.pts-static-page .pts-button-primary:hover,
.pts-homepage.pts-static-page .pts-button-gold:hover {
  background: var(--pts-jade-dark);
  color: #fff !important;
}

.pts-homepage.pts-static-page .pts-button-secondary {
  border-color: var(--pts-line);
  background: transparent;
  color: var(--pts-ink) !important;
}

.pts-homepage.pts-static-page .pts-button-secondary:hover {
  border-color: var(--pts-jade);
  background: rgba(28, 106, 84, .06);
  color: var(--pts-jade-dark) !important;
}

.pts-homepage.pts-static-page .pts-proof-strip {
  border-block-color: var(--pts-line);
  background: rgba(245, 240, 230, .72);
}

.pts-homepage.pts-static-page .pts-proof-strip > div { border-right-color: var(--pts-line); }
.pts-homepage.pts-static-page .pts-proof-strip strong { color: var(--pts-title); font-size: 1rem; }
.pts-homepage.pts-static-page .pts-proof-strip span { color: var(--pts-muted); font-size: .82rem; line-height: 1.5; }

.pts-homepage.pts-static-page .pts-home-nav {
  top: 70px;
  gap: 5px;
  padding: 9px;
  border-color: var(--pts-line);
  border-radius: 999px;
  background: rgba(251, 248, 240, .95);
  box-shadow: var(--pts-shadow-sm);
}

[data-theme="dark"] .pts-homepage.pts-static-page .pts-home-nav { background: rgba(17, 28, 22, .95); }
.pts-homepage.pts-static-page .pts-home-nav a { padding: 8px 13px; color: var(--pts-muted); font-size: .8rem; font-weight: 750; }
.pts-homepage.pts-static-page .pts-home-nav a:hover,
.pts-homepage.pts-static-page .pts-home-nav a:focus-visible { background: var(--pts-jade); color: #fff; }

/* ---------------- Cards and services ---------------- */
.pts-homepage.pts-static-page .pts-service-card,
.pts-homepage.pts-static-page .pts-trust-grid article,
.pts-homepage.pts-static-page .pts-knowledge-grid article,
.pts-homepage.pts-static-page .pts-standards-grid article {
  border-color: var(--pts-line);
  border-radius: 18px;
  box-shadow: 0 6px 20px rgba(38, 57, 46, .04);
}

.pts-homepage.pts-static-page .pts-service-card h3,
.pts-homepage.pts-static-page .pts-trust-grid h3,
.pts-homepage.pts-static-page .pts-knowledge-grid h3 {
  color: var(--pts-title);
}

.pts-homepage.pts-static-page .pts-service-card dd,
.pts-homepage.pts-static-page .pts-trust-grid p,
.pts-homepage.pts-static-page .pts-knowledge-grid p,
.pts-homepage.pts-static-page .pts-standards-grid p { color: var(--pts-muted); }

.pts-homepage.pts-static-page .pts-service-card dt { color: var(--pts-bronze); font-size: .76rem; font-weight: 850; }
.pts-homepage.pts-static-page .pts-service-link,
.pts-homepage.pts-static-page .pts-text-link { color: var(--pts-jade-dark); font-weight: 800; }

.pts-homepage.pts-static-page .pts-services-section { background: var(--pts-jade-deep); }
.pts-homepage.pts-static-page .pts-services-section .pts-service-card { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.045); box-shadow: none; }
.pts-homepage.pts-static-page .pts-services-section .pts-service-card h3,
.pts-homepage.pts-static-page .pts-services-section .pts-service-card dt,
.pts-homepage.pts-static-page .pts-services-section .pts-service-link { color: #fff; }
.pts-homepage.pts-static-page .pts-services-section .pts-service-card dd { color: rgba(255,255,255,.73); }

/* ---------------- Expert, FAQ and CTA ---------------- */
.pts-homepage.pts-static-page .pts-expert-card { border-top-color: var(--pts-bronze); background: var(--pts-jade-dark); }
.pts-homepage.pts-static-page .pts-expert-card h3 { color: #fff; font-size: clamp(1.7rem, 2.45vw, 2.35rem); line-height: 1.1; }
.pts-homepage.pts-static-page .pts-expert-card p,
.pts-homepage.pts-static-page .pts-expert-card li { color: rgba(255,255,255,.75); }
.pts-homepage.pts-static-page .pts-expert-scope li { border-top-color: rgba(255,255,255,.13); }
.pts-homepage.pts-static-page .pts-faq-item { border-top-color: var(--pts-line); }
.pts-homepage.pts-static-page .pts-faq-item summary { color: var(--pts-title); font-family: var(--pts-serif); font-size: clamp(1.15rem, 1.7vw, 1.48rem); line-height: 1.3; }
.pts-homepage.pts-static-page .pts-faq-answer { color: var(--pts-muted); }
.pts-homepage.pts-static-page .pts-final-cta { background: var(--pts-jade-dark); }
.pts-homepage.pts-static-page .pts-final-cta h2 { color: #fff; }
.pts-homepage.pts-static-page .pts-final-cta p:not(.pts-section-kicker) { color: rgba(255,255,255,.74); }

/* ---------------- Real person / proof blocks ---------------- */
.pts-responsible-expert,
.pts-proof-case {
  display: grid;
  grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr);
  gap: clamp(28px, 5vw, 70px);
  align-items: center;
  padding-block: clamp(60px, 8vw, 96px);
  border-block: 1px solid var(--pts-line);
}

.pts-expert-photo { min-height: 280px; overflow: hidden; border-radius: 18px; background: #e7dfd0; }
.pts-expert-photo img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; }

/* ---------------- Pages riêng: giữ layout, chỉ đổi typography ---------------- */
.pts-privacy-page,
.pts-about-page {
  font-family: var(--pts-sans);
  color: var(--pts-text);
}

.pts-privacy-page h1,
.pts-privacy-page h2,
.pts-about-page h1,
.pts-about-page h2 { color: var(--pts-title); }

.pts-privacy-page h1,
.pts-about-page h1 { font-size: clamp(2.8rem, 4.6vw, 4.6rem) !important; }
.pts-privacy-page h2,
.pts-about-page h2 { font-size: clamp(1.95rem, 3vw, 3rem) !important; }
.pts-privacy-page h3,
.pts-about-page h3 { font-size: clamp(1.18rem, 1.55vw, 1.48rem) !important; }

/* ---------------- Accessibility and responsive ---------------- */
.pts-homepage a:focus-visible,
.pts-homepage button:focus-visible,
.pts-homepage summary:focus-visible,
.pts-privacy-page a:focus-visible,
.pts-about-page a:focus-visible {
  outline: 3px solid rgba(174, 124, 52, .72);
  outline-offset: 4px;
}

@media (max-width: 1100px) {
  .pts-homepage.pts-static-page .pts-hero { grid-template-columns: minmax(0, 1.12fr) minmax(290px, .88fr); gap: 38px; }
}

@media (max-width: 991px) {
  .desktop-menu { display: none !important; }
  .mobile-menu-toggle { display: flex; }
  .pts-homepage.pts-static-page .pts-hero,
  .pts-homepage.pts-static-page .pts-entity-section,
  .pts-homepage.pts-static-page .pts-method-layout,
  .pts-homepage.pts-static-page .pts-final-cta,
  .pts-responsible-expert,
  .pts-proof-case { grid-template-columns: 1fr; }
  .pts-homepage.pts-static-page .pts-hero { min-height: 0; }
  .pts-homepage.pts-static-page .pts-hero-aside { max-width: 680px; }
  .pts-homepage.pts-static-page .pts-entity-copy,
  .pts-homepage.pts-static-page .pts-expert-card,
  .pts-homepage.pts-static-page .pts-home-sidebar { position: static; }
}

@media (max-width: 767px) {
  .container,
  .pts-home-container,
  body .pts-homepage.pts-static-page > .pts-home-container { width: min(calc(100% - 28px), var(--pts-container)); }
  .pts-homepage h1 { max-width: 12ch; font-size: clamp(2.45rem, 12vw, 3.65rem); line-height: 1.03; }
  .pts-homepage h2 { max-width: 19ch; font-size: clamp(1.9rem, 9vw, 2.65rem); }
  .pts-homepage p, .pts-homepage li, .pts-homepage dd { font-size: 1rem; line-height: 1.65; }
  .pts-homepage.pts-static-page .pts-hero-actions,
  .pts-homepage.pts-static-page .pts-final-actions { display: grid; width: 100%; gap: 10px; }
  .pts-homepage.pts-static-page .pts-button { width: 100%; }
  .pts-homepage.pts-static-page .pts-proof-strip,
  .pts-homepage.pts-static-page .pts-journey-grid,
  .pts-homepage.pts-static-page .pts-services-grid,
  .pts-homepage.pts-static-page .pts-case-grid,
  .pts-homepage.pts-static-page .pts-knowledge-grid,
  .pts-homepage.pts-static-page .pts-trust-grid,
  .pts-homepage.pts-static-page .pts-standards-grid { grid-template-columns: 1fr; }
  .pts-homepage.pts-static-page .pts-proof-strip > div { border-right: 0; border-bottom: 1px solid var(--pts-line); }
  .pts-homepage.pts-static-page .pts-proof-strip > div:last-child { border-bottom: 0; }
  .pts-homepage.pts-static-page .pts-home-nav { top: 60px; justify-content: flex-start; border-radius: 12px; }
  .pts-homepage.pts-static-page .pts-service-card dl > div { grid-template-columns: 1fr; gap: 5px; }
  .pts-homepage.pts-static-page .pts-hero-aside,
  .pts-homepage.pts-static-page .pts-expert-card { padding: 27px 23px; }
  .pts-privacy-page h1,
  .pts-about-page h1 { font-size: clamp(2.35rem, 12vw, 3.5rem) !important; }
  .pts-privacy-page h2,
  .pts-about-page h2 { font-size: clamp(1.85rem, 9vw, 2.65rem) !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
.pts-profile-facts {
  display: grid;
  gap: 0;
  margin: 28px 0 20px;
  border-top: 1px solid var(--pts-line);
  border-bottom: 1px solid var(--pts-line);
}

.pts-profile-facts > div {
  display: grid;
  grid-template-columns: minmax(118px, 0.32fr) minmax(0, 1fr);
  gap: 18px;
  padding: 15px 0;
  border-bottom: 1px solid var(--pts-line);
}

.pts-profile-facts > div:last-child {
  border-bottom: 0;
}

.pts-profile-facts span {
  color: var(--pts-bronze-dark);
  font-family: var(--pts-sans);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.07em;
  line-height: 1.45;
  text-transform: uppercase;
}

.pts-profile-facts strong {
  color: var(--pts-ink);
  font-family: var(--pts-sans);
  font-size: 0.96rem;
  font-weight: 750;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .pts-profile-facts > div {
    grid-template-columns: 1fr;
    gap: 6px;
  }
}
/* ==========================================================
   PTS MAIN MENU — DROPDOWN FIX
   Sửa submenu bị bung thành cột trong header
========================================================== */

@media (min-width: 992px) {

  /* Item cha phải làm mốc định vị cho submenu */
  #masthead .nav-menu > li,
  .site-header .nav-menu > li,
  .main-header .nav-menu > li,
  body > header .nav-menu > li {
    position: relative;
  }

  /* Ẩn submenu mặc định */
  #masthead .nav-menu .sub-menu,
  .site-header .nav-menu .sub-menu,
  .main-header .nav-menu .sub-menu,
  body > header .nav-menu .sub-menu {
    position: absolute;
    z-index: 1100;
    top: calc(100% + 1px);
    left: 0;

    display: block;
    width: 270px;
    min-width: 270px;
    max-width: 320px;

    margin: 0;
    padding: 10px 0;

    list-style: none;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;

    border: 1px solid var(--pts-line);
    border-radius: 0 0 var(--pts-radius-sm) var(--pts-radius-sm);
    background: var(--pts-paper);
    box-shadow: var(--pts-shadow-md);

    transform: translateY(8px);
    transition:
      opacity 180ms ease,
      visibility 180ms ease,
      transform 180ms ease;
  }

  /* Hiện submenu khi hover/focus */
  #masthead .nav-menu > li:hover > .sub-menu,
  #masthead .nav-menu > li:focus-within > .sub-menu,
  .site-header .nav-menu > li:hover > .sub-menu,
  .site-header .nav-menu > li:focus-within > .sub-menu,
  .main-header .nav-menu > li:hover > .sub-menu,
  .main-header .nav-menu > li:focus-within > .sub-menu,
  body > header .nav-menu > li:hover > .sub-menu,
  body > header .nav-menu > li:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  /* Item bên trong submenu */
  #masthead .nav-menu .sub-menu li,
  .site-header .nav-menu .sub-menu li,
  .main-header .nav-menu .sub-menu li,
  body > header .nav-menu .sub-menu li {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
  }

  /* Link submenu */
  #masthead .nav-menu .sub-menu li a,
  .site-header .nav-menu .sub-menu li a,
  .main-header .nav-menu .sub-menu li a,
  body > header .nav-menu .sub-menu li a {
    display: block;
    width: 100%;
    min-height: 42px;

    padding: 11px 18px;

    color: var(--pts-ink);
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.45;
    white-space: normal;
  }

  /* Tắt gạch chân hover của menu cấp một trên submenu */
  #masthead .nav-menu .sub-menu li a::after,
  .site-header .nav-menu .sub-menu li a::after,
  .main-header .nav-menu .sub-menu li a::after,
  body > header .nav-menu .sub-menu li a::after {
    display: none;
  }

  #masthead .nav-menu .sub-menu li a:hover,
  #masthead .nav-menu .sub-menu li a:focus-visible,
  .site-header .nav-menu .sub-menu li a:hover,
  .site-header .nav-menu .sub-menu li a:focus-visible,
  .main-header .nav-menu .sub-menu li a:hover,
  .main-header .nav-menu .sub-menu li a:focus-visible,
  body > header .nav-menu .sub-menu li a:hover,
  body > header .nav-menu .sub-menu li a:focus-visible {
    color: var(--pts-jade-dark);
    background: var(--pts-jade-soft);
  }

  /* Menu cha có mũi tên */
  #masthead .nav-menu > .menu-item-has-children > a::before,
  .site-header .nav-menu > .menu-item-has-children > a::before,
  .main-header .nav-menu > .menu-item-has-children > a::before,
  body > header .nav-menu > .menu-item-has-children > a::before {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin: 0 8px 3px 0;

    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;

    transform: rotate(45deg);
  }

  /* Mũi tên bên phải cho submenu có submenu cấp hai */
  #masthead .nav-menu .sub-menu .menu-item-has-children,
  .site-header .nav-menu .sub-menu .menu-item-has-children,
  .main-header .nav-menu .sub-menu .menu-item-has-children,
  body > header .nav-menu .sub-menu .menu-item-has-children {
    position: relative;
  }

  #masthead .nav-menu .sub-menu .menu-item-has-children > a::after,
  .site-header .nav-menu .sub-menu .menu-item-has-children > a::after,
  .main-header .nav-menu .sub-menu .menu-item-has-children > a::after,
  body > header .nav-menu .sub-menu .menu-item-has-children > a::after {
    content: "›";
    display: block;
    position: absolute;
    right: 15px;
    top: 50%;
    color: var(--pts-muted);
    transform: translateY(-50%);
  }

  /* Submenu cấp hai mở sang phải */
  #masthead .nav-menu .sub-menu .sub-menu,
  .site-header .nav-menu .sub-menu .sub-menu,
  .main-header .nav-menu .sub-menu .sub-menu,
  body > header .nav-menu .sub-menu .sub-menu {
    top: -10px;
    left: calc(100% + 1px);
    transform: translateX(8px);
  }

  #masthead .nav-menu .sub-menu li:hover > .sub-menu,
  #masthead .nav-menu .sub-menu li:focus-within > .sub-menu,
  .site-header .nav-menu .sub-menu li:hover > .sub-menu,
  .site-header .nav-menu .sub-menu li:focus-within > .sub-menu,
  .main-header .nav-menu .sub-menu li:hover > .sub-menu,
  .main-header .nav-menu .sub-menu li:focus-within > .sub-menu,
  body > header .nav-menu .sub-menu li:hover > .sub-menu,
  body > header .nav-menu .sub-menu li:focus-within > .sub-menu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateX(0);
  }
}
@media (max-width: 991px) {

  .mobile-nav-menu .sub-menu {
    display: block;
    position: static;
    width: 100%;
    min-width: 0;
    max-width: none;

    margin: 0;
    padding: 0 0 8px 16px;

    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: none;

    border: 0;
    border-left: 1px solid var(--pts-line);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .mobile-nav-menu .sub-menu li {
    border: 0;
  }

  .mobile-nav-menu .sub-menu li a {
    padding: 11px 12px;
    color: var(--pts-muted);
    font-size: .88rem;
    line-height: 1.45;
  }

  .mobile-nav-menu .sub-menu li a:hover,
  .mobile-nav-menu .sub-menu li a:focus-visible {
    color: var(--pts-jade-dark);
    background: var(--pts-jade-soft);
  }

  .mobile-nav-menu .menu-item-has-children > a::after {
    content: "＋";
    float: right;
    color: var(--pts-bronze);
    font-weight: 800;
  }
}
.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link:focus {
  position: fixed;
  top: 12px;
  left: 12px;
  z-index: 99999;
  width: auto;
  height: auto;
  padding: 12px 16px;
  margin: 0;
  overflow: visible;
  clip: auto;
  color: #ffffff;
  background: #124737;
  border-radius: 4px;
}
/* =========================================================
   PTS HEADER REFINEMENT V1
   Dán ở CUỐI style.css
   ========================================================= */

/* Không dùng trust strip cũ dạng câu văn */
.header-trust-strip {
  display: none !important;
}

/* Header nền giấy, sạch, ít bóng */
.site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  width: 100%;
  background: rgba(251, 248, 240, 0.96);
  border-bottom: 1px solid var(--pts-line);
  box-shadow: 0 5px 22px rgba(24, 43, 32, 0.055);
  backdrop-filter: blur(14px);
}

.header-inner {
  min-height: 68px;
  gap: 18px;
}

/* Logo giữ kích thước ổn định để menu không bị giãn lệch */
a.logo {
  flex: 0 0 176px;
  min-width: 176px;
}

a.logo img {
  display: block;
  width: 176px;
  max-height: 48px;
  object-fit: contain;
}

/* Nav chiếm khoảng giữa, icon không bị đẩy ra ngoài */
.primary-navigation {
  flex: 1 1 auto;
  min-width: 0;
}

.primary-navigation .nav-menu {
  justify-content: flex-end;
  gap: clamp(12px, 1.35vw, 19px);
}

.nav-menu li a {
  padding-block: 20px;
  color: var(--pts-ink);
  font-size: 0.82rem;
  font-weight: 760;
  letter-spacing: 0.005em;
}

.nav-menu li a::after {
  right: 2px;
  bottom: 9px;
  left: 2px;
  height: 2px;
  background: var(--pts-bronze);
}

.header-icons {
  flex: 0 0 auto;
}

/* =========================================================
   TRUST CAPSULE
   ========================================================= */

.pts-header-trust {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 32px;
  margin: 0 auto;
  padding: 7px 18px 9px;
  border-top: 1px solid rgba(156, 110, 45, 0.22);
  color: var(--pts-muted);
  font-size: 0.70rem;
  font-weight: 650;
  line-height: 1.35;
  letter-spacing: 0.012em;
  text-align: center;
}

.pts-header-trust-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--pts-bronze-dark);
  font-size: 0.65rem;
  font-weight: 900;
  letter-spacing: 0.085em;
  text-transform: uppercase;
}

.pts-header-trust-symbol {
  display: inline-grid;
  width: 15px;
  height: 15px;
  place-items: center;
  color: var(--pts-seal);
  font-size: 0.74rem;
  line-height: 1;
}

.pts-header-trust-item {
  color: var(--pts-muted);
  text-decoration: none;
  transition:
    color var(--pts-transition),
    text-decoration-color var(--pts-transition);
}

a.pts-header-trust-item:hover,
a.pts-header-trust-item:focus-visible {
  color: var(--pts-jade-dark);
  text-decoration: underline;
  text-decoration-color: var(--pts-bronze);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

.pts-header-trust-divider {
  color: var(--pts-bronze);
  opacity: 0.7;
}

/* =========================================================
   MOBILE MENU – KHỐI TRUST THỂ HIỆN SỰ CHUYÊN NGHIỆP
   ========================================================= */

.mobile-menu-heading {
  margin: 0 0 26px;
  padding: 0 0 20px;
  border-bottom: 1px solid var(--pts-line);
}

.mobile-menu-kicker,
.mobile-menu-trust-title {
  display: block;
  margin: 0 0 8px;
  color: var(--pts-bronze-dark);
  font-size: 0.70rem;
  font-weight: 900;
  letter-spacing: 0.11em;
  line-height: 1.4;
  text-transform: uppercase;
}

.mobile-menu-heading p {
  margin: 0;
  color: var(--pts-muted);
  font-size: 0.88rem;
  line-height: 1.65;
}

.mobile-menu-trust {
  display: grid;
  gap: 0;
  margin-top: 30px;
  padding: 24px 0;
  border-top: 1px solid var(--pts-line);
  border-bottom: 1px solid var(--pts-line);
}

.mobile-menu-trust a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 0;
  color: var(--pts-text);
  font-size: 0.87rem;
  font-weight: 720;
}

.mobile-menu-trust a::after {
  content: "→";
  color: var(--pts-bronze);
  font-size: 0.86rem;
  transition: transform var(--pts-transition);
}

.mobile-menu-trust a:hover,
.mobile-menu-trust a:focus-visible {
  color: var(--pts-jade-dark);
}

.mobile-menu-trust a:hover::after,
.mobile-menu-trust a:focus-visible::after {
  transform: translateX(3px);
}

.mobile-menu-contact {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  margin-top: 24px;
  padding: 12px 20px;
  border-radius: 999px;
  background: var(--pts-jade);
  color: var(--pts-white);
  font-size: 0.88rem;
  font-weight: 850;
  text-align: center;
}

.mobile-menu-contact:hover,
.mobile-menu-contact:focus-visible {
  background: var(--pts-jade-dark);
  color: var(--pts-white);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1100px) {
  .primary-navigation .nav-menu {
    gap: 12px;
  }

  .nav-menu li a {
    font-size: 0.77rem;
  }

  .pts-header-trust {
    gap: 7px;
    font-size: 0.67rem;
  }

  .pts-header-trust-label {
    font-size: 0.62rem;
  }
}

@media (max-width: 991px) {
  a.logo {
    flex-basis: 150px;
    min-width: 150px;
  }

  a.logo img {
    width: 150px;
  }

  .pts-header-trust {
    justify-content: flex-start;
    overflow-x: auto;
    padding-inline: 4px;
    white-space: nowrap;
    scrollbar-width: none;
  }

  .pts-header-trust::-webkit-scrollbar {
    display: none;
  }

  .pts-header-trust-label {
    flex: 0 0 auto;
  }

  .pts-header-trust-item,
  .pts-header-trust-divider {
    flex: 0 0 auto;
  }
}

@media (max-width: 600px) {
  .header-inner {
    min-height: 60px;
  }

  a.logo {
    flex-basis: 136px;
    min-width: 136px;
  }

  a.logo img {
    width: 136px;
    max-height: 42px;
  }

  /* Mobile đã có trust box ở bên trong menu, nên ẩn thanh trust */
  .pts-header-trust {
    display: none;
  }
}

/* =========================================================
   DARK MODE
   ========================================================= */

[data-theme="dark"] .site-header,
[data-themedark] .site-header {
  background: rgba(17, 28, 22, 0.96);
  border-bottom-color: var(--pts-line);
}

[data-theme="dark"] .pts-header-trust,
[data-themedark] .pts-header-trust {
  border-top-color: rgba(221, 183, 107, 0.20);
}

[data-theme="dark"] .pts-header-trust-item,
[data-themedark] .pts-header-trust-item {
  color: var(--pts-muted);
}

[data-theme="dark"] .pts-header-trust-label,
[data-themedark] .pts-header-trust-label,
[data-theme="dark"] .mobile-menu-kicker,
[data-themedark] .mobile-menu-kicker,
[data-theme="dark"] .mobile-menu-trust-title,
[data-themedark] .mobile-menu-trust-title {
  color: var(--pts-bronze);
}

/* =========================================================
   PTS TRUST LANGUAGE
   Ngôn ngữ thị giác lấy cảm hứng từ header trust capsule
   Không dùng capsule cho mọi nội dung.
   ========================================================= */

/* 1. Nhãn chuẩn: dùng cho kicker, meta section, card label */
.pts-trust-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 12px;
  color: var(--pts-bronze-dark);
  font-size: 0.70rem;
  font-weight: 900;
  letter-spacing: 0.10em;
  line-height: 1.35;
  text-transform: uppercase;
}

.pts-trust-label::before {
  content: "◈";
  display: inline-grid;
  width: 14px;
  height: 14px;
  place-items: center;
  color: var(--pts-seal);
  font-size: 0.70rem;
  line-height: 1;
}

/* 2. Answer-first: callout nhẹ, dành cho câu trả lời cốt lõi */
.pts-answer-first.pts-answer-callout {
  position: relative;
  max-width: 900px;
  margin: 28px 0 0;
  padding: 20px 24px 20px 28px;
  border: 1px solid rgba(156, 110, 45, 0.24);
  border-left: 4px solid var(--pts-jade);
  border-radius: var(--pts-radius-sm);
  background:
    linear-gradient(
      135deg,
      rgba(223, 234, 227, 0.56),
      rgba(255, 253, 250, 0.82)
    );
  box-shadow: 0 8px 24px rgba(24, 45, 35, 0.045);
  color: var(--pts-text);
  font-size: clamp(1rem, 1.25vw, 1.10rem);
  font-weight: 540;
  line-height: 1.82;
}

.pts-answer-first.pts-answer-callout::before {
  content: "Tóm tắt áp dụng";
  display: block;
  margin: 0 0 8px;
  color: var(--pts-bronze-dark);
  font-size: 0.67rem;
  font-weight: 900;
  letter-spacing: 0.10em;
  line-height: 1.3;
  text-transform: uppercase;
}

/* 3. Nhãn metadata/chip: chỉ dành cho trạng thái ngắn */
.pts-trust-chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 5px 10px;
  border: 1px solid rgba(156, 110, 45, 0.24);
  border-radius: 999px;
  background: rgba(245, 240, 230, 0.70);
  color: var(--pts-jade-dark);
  font-size: 0.70rem;
  font-weight: 800;
  line-height: 1.2;
}

.pts-trust-chip::before {
  content: "◈";
  margin-right: 6px;
  color: var(--pts-seal);
  font-size: 0.62rem;
}

/* 4. Hàng meta chuẩn cho author/reviewer/date/source */
.pts-trust-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 22px 0;
  padding: 13px 0;
  border-top: 1px solid var(--pts-line);
  border-bottom: 1px solid var(--pts-line);
  color: var(--pts-muted);
  font-size: 0.78rem;
  font-weight: 650;
}

.pts-trust-meta strong {
  color: var(--pts-ink);
}

.pts-trust-meta a {
  color: var(--pts-jade);
  font-weight: 800;
  text-decoration: none;
}

.pts-trust-meta a:hover,
.pts-trust-meta a:focus-visible {
  color: var(--pts-jade-dark);
  text-decoration: underline;
  text-decoration-color: var(--pts-bronze);
  text-underline-offset: 3px;
}

/* 5. Kicker heading: chỉ đồng bộ typography, không biến thành pill */
.pts-section-kicker,
.pts-eyebrow,
.pts-aside-label,
.pts-expert-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.pts-section-kicker::before,
.pts-eyebrow::before,
.pts-aside-label::before,
.pts-expert-label::before {
  content: "◈";
  color: var(--pts-seal);
  font-size: 0.68rem;
  line-height: 1;
}

/* Không gắn marker kép nếu component đã có icon riêng */
.pts-hero-aside .pts-aside-label::before,
.pts-expert-card .pts-expert-label::before {
  display: none;
}

/* 6. Đường accent nhỏ dưới heading section */
.pts-section-heading > h2::after,
.pts-entity-copy > h2::after {
  content: "";
  display: block;
  width: 54px;
  height: 2px;
  margin-top: 18px;
  background: linear-gradient(
    to right,
    var(--pts-seal) 0 34%,
    var(--pts-bronze) 34% 100%
  );
}

/* Không thêm accent line cho heading trên nền jade/hero/CTA */
.pts-services-section .pts-section-heading > h2::after,
.pts-hero-aside h2::after,
.pts-expert-card h3::after,
.pts-final-cta h2::after {
  display: none;
}

/* 7. Dark mode */
[data-theme="dark"] .pts-answer-first.pts-answer-callout,
[data-themedark] .pts-answer-first.pts-answer-callout {
  border-color: rgba(221, 183, 107, 0.25);
  border-left-color: var(--pts-jade);
  background: linear-gradient(
    135deg,
    rgba(33, 53, 42, 0.72),
    rgba(24, 37, 30, 0.92)
  );
}

[data-theme="dark"] .pts-trust-chip,
[data-themedark] .pts-trust-chip {
  border-color: rgba(221, 183, 107, 0.25);
  background: rgba(33, 53, 42, 0.72);
  color: var(--pts-bronze);
}

@media (max-width: 767px) {
  .pts-answer-first.pts-answer-callout {
    padding: 18px 18px 18px 21px;
  }

  .pts-section-heading > h2::after,
  .pts-entity-copy > h2::after {
    margin-top: 14px;
  }
}