/* Live-reference tokens. Keep all palette decisions here. */
:root {
  --py-primary: #2340d8;
  --py-secondary: #ff6b4a;
  --py-white: #ffffff;
  --py-surface: #f3f5fc;
  --py-border: #d5dbf0;
  --py-ink: #141a3a;
  --py-muted: #5a6390;
  --py-on-primary: var(--py-white);
  --py-link: var(--py-primary);
  --py-error: #9e251f;
  --py-success: #225b3d;
  --py-radius: 16px;
  --py-space-scale: 1;
  --py-font-size: 16px;
  --py-page-width: 1200px;
  --py-section-space: calc(88px * var(--py-space-scale));
  --py-font: 'IBM Plex Sans Thai', Tahoma, sans-serif;
  --py-serif: 'Prompt', 'IBM Plex Sans Thai', sans-serif;
  --py-latin-serif: 'Prompt', sans-serif;
  --background: var(--py-white);
  --foreground: var(--py-ink);
  --primary: var(--py-primary);
  --primary-foreground: var(--py-on-primary);
  --muted-foreground: var(--py-muted);
  --border: var(--py-border);
  --ring: var(--py-primary);
}
html { font-size: var(--py-font-size); scroll-behavior: smooth; scroll-padding-top: 24px; scrollbar-color: var(--py-muted) var(--py-surface); }
body { margin: 0; background: var(--py-white); color: var(--py-ink); font-family: var(--py-font); font-size: 1rem; line-height: 1.8; }
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
button, input, textarea, select { font: inherit; }
button, a, input, textarea, select { -webkit-tap-highlight-color: transparent; }
a { color: var(--py-link); text-underline-offset: .24em; }
button, input[type='radio'], input[type='checkbox'] { accent-color: var(--py-primary); }
input, textarea { caret-color: var(--py-link); }
:focus-visible { outline: 3px solid var(--py-link); outline-offset: 4px; }
::selection { background: var(--py-secondary); color: var(--py-ink); }
.py-wrap { width: min(var(--py-page-width), calc(100% - 48px)); margin-inline: auto; }
.py-skip { position: fixed; top: 12px; left: 12px; z-index: 50; padding: 12px 20px; background: var(--py-white); transform: translateY(-180%); }
.py-skip:focus { transform: none; }
.py-workspace-bar { display: flex; justify-content: space-between; gap: 16px; padding: 12px 24px; background: var(--py-surface); font-size: .875rem; }
.py-noscript { padding: 24px; background: var(--py-surface); }
/* Existing application: preserve every selector, JS hook and behavior. */
#root { font-family: var(--py-font); color: var(--py-ink); }
#root h1, #root h2, #root h3, #root strong, #root b { font-weight: 600; }
#root h1, #root h2, #root h3 { text-wrap: balance; }
#root button { font-family: inherit; min-height: 44px; font-weight: 600; box-shadow: none; transition: background-color 180ms ease, transform 140ms ease-out; }
#root button:active:not(:disabled) { transform: scale(.99); }
#root button:disabled { cursor: not-allowed; }
#root input, #root select, #root textarea { color: var(--py-ink); font: inherit; border-color: var(--py-border); background: var(--py-white); border-radius: var(--py-radius); }
#root input::placeholder, #root textarea::placeholder { color: var(--py-muted); opacity: 1; }
#root .assistant-login { max-width: 780px; margin: 40px auto; padding: 32px !important; background: var(--py-white); border: 0; border-radius: 0; box-shadow: none; }
#root .assistant-login h1 { font-size: 2.25rem; font-weight: 600; letter-spacing: 0; margin: 28px 0 16px; line-height: 1.5; color: var(--py-ink); }
#root .assistant-login > p, #root .small-note, #root .field-source, #root .login-brand span, #root .engine-label { color: var(--py-muted); }
#root .login-brand { color: var(--py-ink); font-weight: 600; }
#root .login-brand span { font-size: .875rem; }
#root .login-step { display: none; }
#root .assistant-panel, #root .signature-studio { background: var(--py-surface) !important; padding: 24px !important; border: 0 !important; border-radius: var(--py-radius) !important; box-shadow: none; }
#root .assistant-panel .assistant-panel { background: var(--py-white) !important; }
#root .signature-pad { background: var(--py-white) !important; border: 1px dashed var(--py-muted) !important; border-radius: var(--py-radius); }
#root .assistant-panel button { background: var(--py-white); color: var(--py-ink); border-color: var(--py-border); border-radius: var(--py-radius); }
#root .assistant-login .login-primary, #root .quick-submit, #root .voice-record-button, #root .full-button:not([data-variant='outline']) { background: var(--py-primary); color: var(--py-on-primary); border-color: var(--py-primary); border-radius: var(--py-radius); }
#root .text-action { color: var(--py-link) !important; font-size: .875rem !important; }
#root .assistant-login .assistant-panel:last-child { background: transparent !important; padding: 16px 0 !important; }
#root .field-label { font-size: 1rem; line-height: 1.8; gap: 8px; margin-top: 12px; }
#root .small-note, #root .quick-notice, #root .location-note, #root .map-consent, #root .legal-draft small { font-size: .875rem; line-height: 1.8; }
#root .quick-flow { max-width: 900px; padding: 36px; }
#root .quick-flow h1 { font-size: 2.25rem; color: var(--py-ink); }
#root .quick-flow form { gap: 24px; }
#root .quick-flow form > label, #root .when-picker legend { font-size: 1rem; font-weight: 600; }
#root .quick-flow > p { color: var(--py-muted); }
#root .quick-notice, #root .location-note, #root .info-strip { background: var(--py-surface); color: var(--py-ink) !important; border: 0; border-radius: var(--py-radius); }
#root .quick-error, #root .missing, #root .required-star { color: var(--py-error); }
#root .available { color: var(--py-success); }
#root .when-picker label { border-color: var(--py-border); border-radius: var(--py-radius); }
#root .when-picker label.selected { background: var(--py-surface); border-color: var(--py-primary); }
#root .tracking-card { border-radius: var(--py-radius); box-shadow: none; }
#root .tracking-card h2 { font-size: 1.75rem; }
#root .portal-message-box { background: var(--py-surface); border: 0; }
#root .topbar, #root .app-sidebar, #root .app-main, #root .main-panel { background: var(--py-white); }
#root .brand, #root .page-heading h1, #root .page-heading h1 span { color: var(--py-ink); }
#root .brand small, #root .page-heading .eyebrow { display: none; }
#root .brand-icon, #root .ai-avatar { background: var(--py-surface); color: var(--py-link); box-shadow: none; }
#root .brand { font-weight: 600; }
#root .sidebar-note, #root .service-card, #root .stat-card, #root .doc-placeholder { background: var(--py-surface); border: 0; box-shadow: none; border-radius: var(--py-radius); }
#root .service-card { min-height: 64px; }
#root .service-card:hover { color: var(--py-link); }
#root .demo-button, #root .prototype-pill { background: var(--py-surface); color: var(--py-ink); border: 0; }
#root .service-grid { gap: 12px; }
#root .account-action { font-size: .875rem; }
#root .info-strip { font-size: .875rem; }
#root .profile, #root .nav-label { color: var(--py-muted); }
#root .assistant-message > div, #root .chat-panel, #root .composer { background: var(--py-white); }
#root .page-heading h1 { font-size: 2.25rem; line-height: 1.5; letter-spacing: 0; }
#root .review-sheet, #root .document-sheet { background: var(--py-white); color: var(--py-ink); }
#root .legal-draft summary, #root .tracking-steps p, #root .tracking-steps strong { font-size: .875rem; }
@media (prefers-reduced-motion: no-preference) {
  @keyframes py-arrive { from { opacity: .6; transform: translateY(14px); } to { opacity: 1; transform: none; } }
  @keyframes py-settle { from { opacity: .65; transform: translateY(18px) scale(.985); } to { opacity: 1; transform: none; } }
}
@media (max-width: 760px) {
  :root { --py-section-space: calc(60px * var(--py-space-scale)); }
  .py-wrap { width: calc(100% - 40px); }
  .py-workspace-bar { padding: 12px 16px; }
  .py-workspace-bar span { display: none; }
  #root .assistant-login { margin: 16px 0; padding: 20px !important; }
  #root .assistant-login h1, #root .quick-flow h1 { font-size: 1.75rem; }
  #root .assistant-panel, #root .signature-studio { padding: 18px !important; }
  #root .quick-flow { padding: 24px 20px; }
  #root .evidence-grid { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
#root .voice-record-button { display: inline-flex; align-items: center; gap: 10px; }
:root { --sidebar: var(--py-white); --sidebar-foreground: var(--py-ink); --sidebar-accent: var(--py-surface); --sidebar-accent-foreground: var(--py-ink); --sidebar-border: var(--py-border); --sidebar-ring: var(--py-primary); --sidebar-primary: var(--py-primary); --sidebar-primary-foreground: var(--py-on-primary); --secondary: var(--py-surface); --secondary-foreground: var(--py-ink); --accent: var(--py-surface); --accent-foreground: var(--py-ink); --card: var(--py-white); --card-foreground: var(--py-ink); --muted: var(--py-surface); --popover: var(--py-white); --popover-foreground: var(--py-ink); }
#root .app-sidebar [data-slot='sidebar-inner'] { background: var(--py-surface); color: var(--py-ink); }
#root .sidebar-note { color: var(--py-muted); padding: 20px 12px; margin-inline: 0; }
#root .sidebar-note strong { color: var(--py-ink); }
#root .sidebar-note svg, #root .service-card > svg { color: var(--py-link); }
#root .profile small, #root .profile > span { color: var(--py-ink); }
#root .profile > span { background: var(--py-white); }
#root .app-sidebar [data-slot='sidebar-menu-button'][data-active='true'] { background: var(--py-white); color: var(--py-link); box-shadow: none; }
#root .chat-panel, #root .empty-doc { box-shadow: none; border: 0; border-radius: var(--py-radius); }
#root .composer { border-color: var(--py-border); border-radius: var(--py-radius); }
#root .composer button, #root button[data-slot='button']:not([class*='outline']):not([class*='ghost']) { background: var(--py-primary); color: var(--py-on-primary); }
#root .assistant-message p, #root .empty-doc p, #root .trust-note { color: var(--py-muted); }
#root .steps-card { background: var(--py-surface); border-radius: var(--py-radius); }
#root .context-panel { border: 0; }
#root .service-card:hover { transform: none; }
#root .field-label, .document-sheet .field-label, .review-sheet .field-label { display: grid; gap: 8px; margin-block: 14px; font-size: 1rem; line-height: 1.8; }
#root .field-label input, #root .field-label textarea, .document-sheet .field-label input, .document-sheet .field-label textarea, .review-sheet .field-label input, .review-sheet .field-label textarea { width: 100%; min-width: 0; min-height: 46px; padding: 10px 12px; border: 1px solid var(--py-border); border-radius: var(--py-radius); background: var(--py-white); color: var(--py-ink); }
.document-sheet, .review-sheet { font-family: var(--py-font); color: var(--py-ink); background: var(--py-white); }
.document-sheet button, .review-sheet button { min-height: 44px; box-shadow: none; }
.document-sheet .small-note, .review-sheet .small-note { color: var(--py-muted); font-size: .875rem; line-height: 1.8; }
/* Keep the display control in the navigation flow, clear of reading content. */
#root .assistant-login > p { max-width: 62ch; }
@media (max-width: 760px) {
}
@media (prefers-reduced-motion: no-preference) {
  .py-in { animation: py-arrive 650ms cubic-bezier(.22,1,.36,1); }
  @keyframes py-figure { from { opacity: .7; transform: scale(.98); } to { opacity: 1; transform: none; } }
  @keyframes py-step { from { opacity: .7; transform: translateX(8px); } to { opacity: 1; transform: none; } }
  @keyframes py-read { from { opacity: .6; } to { opacity: 1; } }
}
#root .more-services { grid-column: 1 / -1; }
#root .more-services summary { min-height: 44px; padding: 10px 0; cursor: pointer; color: var(--py-link); font-size: .9375rem; }
#root .more-services > .service-grid { margin-top: 12px; }


/* Prakan · Cobalt & Coral (Oct 2026). Saturated cobalt for brand moments, coral for primary actions, sunny yellow as a small accent. */
:root { --pk-cobalt: var(--py-primary); --pk-coral: var(--py-secondary); --pk-sun: #ffc857; --pk-night: #141a3a; --pk-ice: #eaeeff; --pk-mist: #dce3ff; --pk-body: #3c4470; --pk-line: #e3e7f5; --pk-on-coral: #1b1030; --pk-display: 'Prompt', 'IBM Plex Sans Thai', sans-serif; }
body { background: #ffffff; }
#landing { color: var(--py-ink); background: #ffffff; }
#landing h1, #landing h2, #landing h3 { margin: 0; font-family: var(--pk-display); font-weight: 600; color: inherit; text-wrap: balance; letter-spacing: 0; }
#landing p { margin: 0; text-wrap: pretty; }
#landing h2 { font-size: clamp(1.875rem, 1.3rem + 1.7vw, 2.875rem); line-height: 1.3; }
#landing h3 { font-size: 1.25rem; line-height: 1.45; }
.pk-wrap { width: min(1240px, calc(100% - 40px)); margin-inline: auto; }
.pk-section { padding-block: calc(104px * var(--py-space-scale)); }

.pk-notice { background: var(--pk-night); color: var(--pk-mist); font-size: .8125rem; line-height: 1.6; padding: 9px 20px; text-align: center; }
.pk-topbar { background: var(--pk-cobalt); color: #fff; position: relative; z-index: 2; }
.py-header { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 36px; min-height: 84px; padding-block: 18px 6px; }
.pk-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-family: var(--pk-display); font-weight: 700; font-size: 1.625rem; }
.pk-mono { width: 40px; height: 40px; border-radius: 50%; background: #fff; color: var(--pk-cobalt); display: grid; place-items: center; font-size: 1.25rem; }
.py-header nav { display: flex; gap: 32px; margin-left: auto; font-size: .9375rem; }
.py-header nav a { color: var(--pk-mist); text-decoration: none; padding-block: 10px; }
.py-header nav a:hover { color: #fff; }

.pk-btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; padding: 14px 30px; border-radius: 999px; font-weight: 700; font-size: 1.0625rem; line-height: 1.5; text-decoration: none; transition: transform 180ms cubic-bezier(.34,1.56,.64,1), background-color 200ms ease, box-shadow 200ms ease; }
.pk-btn svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform 300ms cubic-bezier(.22,1,.36,1); }
.pk-btn:hover { transform: translateY(-2px); }
.pk-btn:hover svg { transform: translateX(4px); }
.pk-btn:active { transform: scale(.97); }
.pk-btn-coral { background: var(--pk-coral); color: var(--pk-on-coral); box-shadow: 0 10px 24px -12px rgb(255 107 74 / .8); }
.pk-btn-soft { background: rgb(255 255 255 / .14); color: #fff; font-weight: 600; }
.pk-btn-soft:hover { background: rgb(255 255 255 / .22); }
.pk-btn-light { background: #fff; color: var(--pk-cobalt); }
.pk-nav-cta { min-height: 44px; padding: 8px 22px; font-size: .9375rem; font-weight: 600; }

.pk-hero-wrap { position: relative; overflow: hidden; background: var(--pk-cobalt); color: #fff; }
.pk-orb { position: absolute; border-radius: 50%; pointer-events: none; }
.pk-orb-coral { width: 340px; height: 340px; right: max(4vw, calc(50% - 560px)); top: -40px; background: var(--pk-coral); }
.pk-orb-sun { width: 130px; height: 130px; right: max(26vw, calc(50% - 280px)); top: 300px; background: var(--pk-sun); }
.pk-hero { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 56px; padding-block: calc(72px * var(--py-space-scale)) calc(112px * var(--py-space-scale)); }
.pk-hero-copy { flex: 1.25 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 26px; }
.pk-eyebrow { font-size: .9375rem; font-weight: 600; color: var(--pk-sun); }
.pk-eyebrow-dark { color: var(--pk-cobalt); }
#landing .pk-hero h1 { font-size: clamp(2.5rem, 1.6rem + 3vw, 4.25rem); line-height: 1.3; color: #fff; }
.pk-lead { font-size: clamp(1.0625rem, 1rem + .35vw, 1.1875rem); color: var(--pk-mist); max-width: 31em; }
.pk-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.pk-hero-media { flex: 1 1 400px; min-width: 0; margin: 0; position: relative; min-height: 380px; }
.pk-float { position: absolute; border-radius: 24px; box-shadow: 0 30px 60px -20px rgb(10 20 80 / .5); }
.pk-policy { left: 0; top: 30px; width: min(380px, 92%); background: #fff; color: var(--py-ink); padding: 22px 24px; display: flex; flex-direction: column; gap: 10px; }
.pk-policy-label { font-size: .8125rem; color: var(--py-muted); }
.pk-policy-title { font-family: var(--pk-display); font-weight: 600; font-size: 1.375rem; }
.pk-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.pk-pills span { font-size: .8125rem; font-weight: 600; background: var(--pk-ice); color: var(--pk-cobalt); padding: 4px 12px; border-radius: 999px; }
.pk-estimate-card { left: min(150px, 30%); top: 236px; width: min(300px, 78%); background: var(--pk-night); color: #fff; padding: 18px 20px; border-radius: 20px; }
.pk-estimate-card span { display: block; font-size: .8125rem; color: #a9b3e0; }
.pk-estimate-card strong { font-family: var(--pk-display); font-weight: 600; font-size: 1.75rem; color: var(--pk-sun); }
.pk-hero-media figcaption { position: absolute; left: 0; bottom: -8px; font-size: .75rem; color: var(--pk-mist); }

.pk-principles { border-bottom: 1px solid var(--pk-line); }
.pk-principles .pk-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.pk-principles .pk-wrap > div { display: flex; gap: 16px; padding: 32px 28px 32px 0; }
.pk-principles span { flex: none; width: 36px; height: 36px; border-radius: 50%; background: var(--pk-ice); color: var(--pk-cobalt); font-family: var(--pk-display); font-weight: 700; display: grid; place-items: center; }
.pk-principles p { font-size: .875rem; line-height: 1.7; color: var(--pk-body); }
.pk-principles strong { display: block; font-size: 1rem; font-weight: 600; color: var(--py-ink); }

.pk-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px 48px; margin-bottom: 48px; }
.pk-head > div, .pk-head-stack { display: flex; flex-direction: column; gap: 10px; }
.pk-head > p { max-width: 24em; color: var(--pk-body); }
.pk-head-stack { align-items: flex-start; max-width: 640px; }

.pk-type-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; }
.pk-type { position: relative; background: #fff; border: 1.5px solid var(--pk-line); border-radius: 24px; padding: 28px 24px; display: flex; flex-direction: column; gap: 12px; transition: transform 400ms cubic-bezier(.22,1,.36,1), box-shadow 400ms ease, border-color 300ms ease; }
.pk-type:hover { transform: translateY(-6px); border-color: #c9d2f5; box-shadow: 0 24px 40px -24px rgb(35 64 216 / .5); }
.pk-type p { font-size: .9375rem; line-height: 1.7; color: var(--pk-body); }
.pk-type-main { background: var(--pk-cobalt); border-color: var(--pk-cobalt); color: #fff; }
.pk-type-main p { color: var(--pk-mist); }
.pk-type-icon { width: 52px; height: 52px; border-radius: 50%; background: var(--pk-ice); display: grid; place-items: center; }
.pk-type-main .pk-type-icon { background: #fff; }
.pk-type-icon svg { width: 24px; height: 24px; fill: none; stroke: var(--pk-cobalt); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pk-tag { align-self: flex-start; margin-top: auto; font-size: .75rem; font-weight: 700; background: var(--pk-sun); color: var(--pk-on-coral); padding: 3px 12px; border-radius: 999px; }

.pk-care { background: var(--py-surface); }
.pk-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.pk-steps li { background: #fff; border-radius: 24px; padding: 28px 24px; display: flex; flex-direction: column; gap: 10px; }
.pk-steps span { width: 48px; height: 48px; border-radius: 50%; background: var(--pk-cobalt); color: #fff; font-family: var(--pk-display); font-weight: 700; display: grid; place-items: center; }
.pk-steps li:last-child span { background: var(--pk-coral); color: var(--pk-on-coral); }
.pk-steps p { font-size: .9375rem; line-height: 1.75; color: var(--pk-body); }

.pk-bento { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: 20px; }
.pk-tile { background: var(--py-surface); border-radius: 28px; padding: clamp(28px, 3vw, 40px); display: flex; flex-direction: column; gap: 14px; transition: transform 400ms cubic-bezier(.22,1,.36,1), box-shadow 400ms ease; }
.pk-tile:hover { transform: translateY(-4px); box-shadow: 0 24px 48px -26px rgb(35 64 216 / .45); }
.pk-tile p { color: var(--pk-body); }
.pk-tile-wide { grid-column: 1 / -1; min-width: 0; }
.pk-tile-dark { background: var(--pk-night); color: #fff; flex-direction: row; flex-wrap: wrap; gap: 32px; align-items: flex-end; }
.pk-tile-dark > div { flex: 1 1 280px; display: flex; flex-direction: column; gap: 14px; }
#landing .pk-tile-dark h3 { font-size: 1.75rem; }
.pk-tile-dark p { color: #c4cbec; }
.pk-tile-row { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 24px 48px; background: var(--pk-ice); }
.pk-tile-row > div { flex: 2 1 320px; display: flex; flex-direction: column; gap: 12px; }
.pk-figure { flex: 1 1 160px; font-size: .875rem; }
.pk-figure strong { display: block; font-family: var(--pk-display); font-weight: 700; font-size: 4rem; line-height: 1.1; color: var(--pk-cobalt); }
.pk-icon { width: 52px; height: 52px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.pk-icon svg { width: 24px; height: 24px; fill: none; stroke: var(--pk-cobalt); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.pk-icon-coral svg { stroke: #c2410c; }
.pk-estimate { flex: 1 1 300px; margin: 0; background: rgb(255 255 255 / .06); border: 1px solid rgb(255 255 255 / .14); border-radius: 18px; padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; font-size: .9375rem; }
.pk-estimate div { display: flex; justify-content: space-between; gap: 12px; }
.pk-estimate dt { color: #c4cbec; }
.pk-estimate dd { margin: 0; }
.pk-estimate .pk-estimate-total { padding-top: 10px; border-top: 1px solid rgb(255 255 255 / .16); align-items: baseline; }
.pk-estimate .pk-estimate-total dt { color: #fff; }
.pk-estimate .pk-estimate-total dd { font-family: var(--pk-display); font-weight: 600; font-size: 1.875rem; color: var(--pk-sun); }
.pk-estimate p { font-size: .75rem; color: #a9b3e0 !important; }

.pk-privacy-band { background: var(--py-surface); }
.pk-privacy { display: flex; flex-wrap: wrap; gap: 48px 72px; scroll-margin-top: 24px; }
.pk-privacy-head { flex: 1 1 320px; display: flex; flex-direction: column; gap: 12px; }
.pk-privacy-head > p:last-child { color: var(--pk-body); }
.pk-privacy-lists { flex: 2 1 560px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 20px; }
.pk-privacy-lists > div { background: #fff; border-radius: 24px; padding: 26px 28px; }
#landing .pk-privacy-lists h3 { margin-bottom: 14px; }
.pk-privacy-lists ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; font-size: .9375rem; color: var(--pk-body); }
.pk-privacy-lists li { display: flex; gap: 10px; }
.pk-privacy-lists li::before { content: ''; flex: none; width: 8px; height: 8px; margin-top: .65em; border-radius: 50%; background: var(--pk-coral); }

.pk-access { padding: calc(88px * var(--py-space-scale)) 20px; }
.pk-access-panel { max-width: 1240px; margin: 0 auto; position: relative; overflow: hidden; background: var(--pk-cobalt); color: #fff; border-radius: 32px; padding: clamp(48px, 6vw, 88px) clamp(28px, 6vw, 80px); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 32px 48px; }
.pk-access-panel::before { content: ''; position: absolute; right: -90px; top: -120px; width: 300px; height: 300px; border-radius: 50%; background: var(--pk-coral); }
.pk-access-panel::after { content: ''; position: absolute; right: 200px; bottom: -50px; width: 100px; height: 100px; border-radius: 50%; background: var(--pk-sun); }
.pk-access-panel > div { position: relative; z-index: 1; flex: 1 1 420px; display: flex; flex-direction: column; gap: 12px; }
#landing .pk-access-panel h2 { font-size: clamp(2rem, 1.4rem + 2vw, 3.25rem); }
.pk-access-panel p { color: var(--pk-mist); }
.pk-access-panel .pk-btn { position: relative; z-index: 1; }

.pk-footer { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 20px 40px; padding-block: 8px 48px; font-size: .875rem; line-height: 1.7; color: var(--pk-body); }
.pk-footer-brand { display: block; font-family: var(--pk-display); font-weight: 700; font-size: 1.25rem; color: var(--pk-cobalt); }
.pk-footer nav { display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: flex-start; }
.pk-footer a, .pk-footer .insurance-entry { position: static; padding: 0; background: none; box-shadow: none; border-radius: 0; font: inherit; color: var(--pk-body); }
.pk-footer a:hover { color: var(--pk-cobalt); }

/* Workspace and app: same palette, Prompt headings, pill buttons, coral send. Hooks unchanged. */
.py-workspace-bar { background: var(--pk-cobalt); color: var(--pk-mist); }
.py-workspace-bar a { color: #fff; }
#root h1, #root h2, .document-sheet h1, .review-sheet h1 { font-family: var(--pk-display); font-weight: 600 !important; }
#root .assistant-login .login-primary, #root .quick-submit, #root .full-button:not([data-variant='outline']), #root .voice-record-button { border-radius: 999px; }
#root .composer button { background: var(--pk-coral); color: var(--pk-on-coral); border-radius: 999px; }
#root .app-sidebar [data-slot='sidebar-menu-button'][data-active='true'] { background: var(--pk-cobalt); color: #fff; border-radius: 999px; }
#root .brand-icon, #root .ai-avatar { background: var(--pk-cobalt); color: #fff; }

@media (max-width: 760px) {
  .py-header { min-height: 72px; gap: 12px; }
  .py-header nav { display: none; }
  .pk-nav-cta { margin-left: auto; padding-inline: 18px; }
  .pk-hero { gap: 40px; padding-top: 40px; padding-bottom: 72px; }
  .pk-orb-coral { width: 220px; height: 220px; right: -70px; top: auto; bottom: 120px; }
  .pk-orb-sun { width: 80px; height: 80px; right: 150px; top: auto; bottom: 40px; }
  .pk-actions .pk-btn { flex: 1 1 auto; }
  .pk-hero-media { min-height: 340px; }
  .pk-estimate-card { left: auto; right: 0; top: 200px; }
  .pk-section { padding-block: 64px; }
  .pk-head { margin-bottom: 32px; }
  .pk-access-panel { border-radius: 24px; padding-top: 120px; }
  .pk-access-panel::before { width: 160px; height: 160px; right: -50px; top: -60px; }
  .pk-access-panel::after { width: 60px; height: 60px; right: 40px; bottom: -24px; }
  .pk-hero-media figcaption { bottom: -28px; }
}
@media (prefers-reduced-motion: no-preference) {
  @keyframes pk-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
  @keyframes pk-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
  @keyframes pk-drift { 0%, 100% { transform: translate(0, 0); } 50% { transform: translate(-14px, 10px); } }
  .pk-rise { animation: pk-rise .8s cubic-bezier(.22,1,.36,1) both; }
  .pk-hero-copy .pk-rise:nth-child(2) { animation-delay: .07s; }
  .pk-hero-copy .pk-rise:nth-child(3) { animation-delay: .14s; }
  .pk-hero-copy .pk-rise:nth-child(4) { animation-delay: .21s; }
  .pk-hero-media.pk-rise { animation-delay: .18s; }
  .pk-float { animation: pk-bob 5s ease-in-out infinite; }
  .pk-float-late { animation-delay: -2.5s; }
  .pk-orb-coral { animation: pk-drift 12s ease-in-out infinite; }
  .pk-orb-sun { animation: pk-drift 9s ease-in-out -3s infinite; }
  .py-in { animation: pk-rise .7s cubic-bezier(.22,1,.36,1) both; }
}

/* Chat bubbles: the assistant reads as a distinct speaker, the user's replies as cobalt bubbles. */
#root .assistant-message { align-items: flex-start; }
#root .assistant-message > div { max-width: min(85%, 720px); background: var(--py-surface); border: 1.5px solid #c9d2f5; border-radius: 4px 20px 20px 20px; padding: 12px 20px 14px; box-shadow: 0 8px 20px -16px rgb(35 64 216 / .5); }
#root .assistant-message strong { margin: 0 0 4px; color: var(--pk-cobalt); }
#root .assistant-message p { color: var(--pk-body); line-height: 1.8; }
#root .ai-avatar { width: 40px; height: 40px; border-radius: 50%; box-shadow: 0 0 0 4px var(--pk-ice); }
#root .user-message > div { background: var(--pk-cobalt); color: #fff; border-radius: 20px 20px 4px 20px; }
#root .user-message p { color: #fff; }
