/* One palette for CVN1 client surfaces; never loaded by admin or other sites. */
.cvn-client-palette,
.cvn-client-palette .contact-page-v2,
.cvn-client-palette .contact-page-v3 {
  --client-primary: #9b3157;
  --client-primary-hover: #7b2343;
  --client-ink: #302832;
  --client-muted: #665b63;
  --client-canvas: #fffcfd;
  --client-surface: #fff;
  --client-soft: #f7eaf0;
  --client-line: #ded2d9;
  --client-control: #9a8590;
  --client-gradient: linear-gradient(110deg, #fbf0f3, #fff8f1);
  --brand: var(--client-primary);
  --brand-dark: var(--client-primary-hover);
  --accent: var(--client-primary);
  --ink: var(--client-ink);
  --muted: var(--client-muted);
  --bg: var(--client-canvas);
  --paper: var(--client-canvas);
  --panel: var(--client-surface);
  --surface: var(--client-surface);
  --soft: var(--client-soft);
  --line: var(--client-line);
  --line-strong: var(--client-control);
  --warm: var(--client-primary);
  --ring: var(--client-primary);
  --network: var(--client-primary-hover);
  --network-text: var(--client-soft);
  --footer: var(--client-ink);
  --footer-text: var(--client-soft);
  --shell-green: var(--client-primary);
  --shell-wine: var(--client-primary);
  --shell-gold: var(--client-primary);
  --shell-ink: var(--client-ink);
  --shell-muted: var(--client-muted);
  --shell-line: var(--client-line);
  --shell-paper: var(--client-canvas);
  --fh-green: var(--client-primary);
  --fh-green-2: var(--client-primary-hover);
  --fh-wine: var(--client-primary);
  --fh-gold: var(--client-primary);
  --fh-ink: var(--client-ink);
  --fh-muted: var(--client-muted);
  --fh-line: var(--client-line);
  --fh-cream: var(--client-soft);
  --fh-paper: var(--client-canvas);
  --cvn-forest: var(--client-primary-hover);
  --cvn-pine: var(--client-primary);
  --cvn-sage: var(--client-muted);
  --cvn-rose: var(--client-primary);
  --cvn-gold: var(--client-primary);
  --cvn-cream: var(--client-soft);
  --cvn-paper: var(--client-canvas);
  --cvn-line: var(--client-line);
  --v3-blue: var(--client-primary);
  --v3-teal: var(--client-primary);
  --v3-warm: var(--client-soft);
  --v3-ink: var(--client-ink);
  --v3-muted: var(--client-muted);
  --v3-line: var(--client-line);
  --v3-bg: var(--client-canvas);
  --contact-navy: var(--client-primary);
  --contact-navy-deep: var(--client-primary-hover);
  --contact-ink: var(--client-ink);
  --contact-muted: var(--client-muted);
  --contact-gold: var(--client-primary);
  --contact-ivory: var(--client-soft);
  --contact-paper: var(--client-canvas);
  --contact-line: var(--client-line);
  color: var(--client-ink);
  background: var(--client-canvas);
}
.cvn-client-palette :focus-visible { outline: 3px solid var(--client-primary); outline-offset: 3px; }
/* Private portal keeps its own DOM and privacy policy, sharing only appearance. */
.cvn-client-palette .guest-header .brand,
.cvn-client-palette .guest-header .brand > span,
.cvn-client-palette .status,
.cvn-client-palette .paid strong { color: var(--client-primary); }
.cvn-client-palette .guest-shell button { background: var(--client-primary); border-color: var(--client-primary); }
.cvn-client-palette .guest-shell button:hover { background: var(--client-primary-hover); }
.cvn-client-palette .action-panel,
.cvn-client-palette .notice:not(.error),
.cvn-client-palette .timeline li:last-child { border-color: var(--client-primary); }
.cvn-client-palette .timeline li::before { background: var(--client-primary); }
.cvn-client-palette .timeline li:last-child strong { color: var(--client-primary); }
.cvn-client-palette .guest-shell h1 { font-family: "Be Vietnam Pro", system-ui, sans-serif; letter-spacing: -.02em; }
.cvn-client-palette .guest-shell input:not([type=radio]):not([type=checkbox]),
.cvn-client-palette .guest-shell select,
.cvn-client-palette .guest-shell textarea,
.cvn-client-palette .sp-form input,
.cvn-client-palette .sp-form select,
.cvn-client-palette .sp-form textarea { border-color: var(--client-control); }
.cvn-client-palette .guest-shell .has-error input:not([type=radio]):not([type=checkbox]),
.cvn-client-palette .guest-shell .has-error :is(select, textarea) { border-color: var(--error); }

.cvn-client-palette .cvn-chat {
  --chat-brand: var(--client-primary);
  --chat-accent: var(--client-primary);
  --chat-ink: var(--client-ink);
  --chat-muted: var(--client-muted);
  --chat-line: var(--client-line);
  --chat-soft: var(--client-soft);
}
.cvn-client-palette .site-footer :is(p, a, h2, h3, .footer-bottom) { color: var(--client-soft); }
.cvn-client-palette .cvn-live-composer p:not(:empty) { color: #a13d35; }


.cvn-client-palette .service-menu-call :is(small, strong) { color: #fff; }
.cvn-client-palette .contact-trust-seal > span,
.cvn-client-palette .contact-final-call { background: var(--client-soft); color: var(--client-primary); border-color: var(--client-line); }
/* Contrast pairs for the dark sections inherited by the contact page. */
.cvn-client-palette :is(.contact-aside, .contact-channel-card, .contact-request-copy, .contact-final-cta) .eyebrow { color: var(--client-soft); }
.cvn-client-palette :is(.contact-aside, .contact-next-actions) .button.primary,
.cvn-client-palette .contact-floating-call { color: #fff; }
.cvn-client-palette .contact-next-step-inner p { color: var(--client-soft); }
.flower-platform.cvn-client-palette .network-strip a { color: var(--client-soft) !important; opacity: 1 !important; }
.cvn-client-palette .cvn-smart-contact-dock__icon.cvn-smart-contact-dock__zalo { color: #fff; }
.cvn-client-palette .sp-process > .fh-kicker { color: var(--client-primary); }
.flower-platform.cvn-client-palette .fh-kicker { color: var(--client-primary); }
.flower-platform.cvn-client-palette :is(.cx-hero, .cx-principle, .sp-hero, .sd-hero, .fh-order, .fh-promise, .fh-partner, .fm-concierge) .fh-kicker { color: var(--client-soft); }
/* Keep the CMS header actions readable in every interactive state. */
.flower-platform.cvn-client-palette .header-cta em { color: var(--client-soft); opacity: 1; }
.flower-platform.cvn-client-palette .flower-main-nav > a.is-flower,
.flower-platform.cvn-client-palette .flower-main-nav > a.is-flower:hover { color: #fff !important; background: var(--client-primary) !important; }
.flower-platform.cvn-client-palette .flower-main-nav > a.is-flower:hover { background: var(--client-primary-hover) !important; }
.flower-platform.cvn-client-palette .flower-main-nav > a.is-flower .nav-icon { color: #fff !important; background: rgb(255 255 255 / .16) !important; }
.fc-page .cvn-smart-contact-dock__action.is-consult {
  min-height:44px;
  padding:4px 3px;
  gap:2px;
  font-size:10px;
  line-height:1.2;
  border-radius:10px;
}
.fc-page .cvn-smart-contact-dock__action.is-consult .cvn-smart-contact-dock__icon { width:22px; height:22px; }
.fc-page .cvn-smart-contact-dock__action.is-consult .cvn-smart-contact-dock__icon svg { width:20px; height:20px; }
@media(max-width:700px) {
  .fc-page .cvn-smart-contact-dock__action.is-consult { width:64px; justify-self:center; align-self:center; }
}
/* Focus belongs to the rounded search frame, rather than its inset input rectangle. */
.fc-page.cvn-client-palette .fc-search:focus-within { border-color:var(--client-primary); }
.fc-page.cvn-client-palette .fc-search input:focus { outline:none; }
html:not([data-fc-focus-mode="pointer"]) .fc-page.cvn-client-palette .fc-search:has(input:focus-visible) {
  outline:2px solid var(--client-primary);
  outline-offset:2px;
}
.fc-page.cvn-client-palette .fc-search button:focus-visible {
  outline:2px solid var(--client-primary);
  outline-offset:-3px;
}
/* Product captions: descriptive names first, prices as a quiet second line. */
.fc-page .fc-card-caption { padding-top:10px; }
.fc-page .fc-card-caption h3 {
  margin:0 0 4px;
  font:400 19px/1.4 'Lora',Georgia,serif;
  letter-spacing:-.015em;
  overflow-wrap:anywhere;
}
.fc-page .fc-card-caption h3 a {
  display:flex;
  align-items:center;
  min-height:44px;
  color:var(--fc-ink);
  text-decoration:none;
}
.fc-page .fc-card-caption h3 a:hover { color:var(--client-primary); }
.fc-page .fc-card-caption .fc-card-price {
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:2px 6px;
  margin:0;
  font:500 16px/1.5 var(--fc-body);
  color:var(--fc-ink);
}
.fc-page .fc-card-caption .fc-price-amount { white-space:nowrap; font-variant-numeric:tabular-nums; }
.fc-page .fc-card-caption .fc-price-currency { margin-left:3px; font-size:12px; font-weight:400; color:var(--fc-muted); }
.fc-page .fc-card-caption :is(.fc-price-prefix,.fc-price-note) { color:var(--fc-muted); font-size:12px; font-weight:400; }
.fc-page .fc-card-caption .fc-price-note { font-size:14px; }
@media(max-width:599px) {
  .fc-page .fc-card-caption h3 { font-size:17px; line-height:1.3; }
  .fc-page .fc-card-caption .fc-card-price { font-size:15px; }
}
