/* Beauty Clinique V2.9 | Final Visual Polish
   32 bilingual routes. No change to imagery, Hero geometry, mobile Featured,
   pricing, treatment data, localized WhatsApp or approved layouts.
   Editorial font, readability, alignment, spacing and desktop Featured borders only.
*/
:root {
  --bc-p29-ink: #484940;
  --bc-p29-copy: #5f6259;
  --bc-p29-soft: #696c64;
  --bc-p29-gold: #8c7053;
  --bc-p29-rule: #d5cfc5;
  --bc-p29-serif: "Cormorant Garamond", Georgia, serif;
  --bc-p29-sans: "DM Sans", Arial, sans-serif;
}
/* Reuse the original, approved type system. Do not redefine base font sizing. */
html[lang="en"] body { font-family: var(--bc-p29-sans); }
html[lang="zh-CN"] body { font-family: var(--bc-zh-ui, "PingFang SC", "Noto Sans CJK SC", sans-serif); }
html[lang="en"] :is(
  .bcx-intro h1, .bcx-contact-grid h2, .bcx-consult h2,
  .bc-hero h1, .bc-list-top h1, .bc-section-heading h2,
  .bc-contact-panel h2, .bc-result-heading h2
) { font-family: var(--bc-p29-serif); font-weight: 500; }
/* Delicate headings with tidy line wrapping rather than forced word breaks. */
:is(.bcx-intro h1, .bc-hero h1, .bc-list-top h1,
    .bcx-contact-grid h2, .bc-section-heading h2,
    .bcx-price-row h3, .bc-treatment-name) {
  overflow-wrap: break-word;
  text-wrap: pretty;
}
/* Consistent warm-graphite reading text on the milk-grey paper. */
:is(.bcx-content, .bc-section, .bc-list-top) :is(
    .bcx-lead, .bcx-status, .bcx-disclaimer, .bcx-price-row p,
    .bc-detail-description, .bc-intro, .bc-load-message,
    .bc-treatment-note, .bc-list-note, .bc-result-count
) { color: var(--bc-p29-copy); }
:is(.bcx-content, .bc-section) :is(.bcx-disclaimer, .bc-list-note,
    .bc-detail-description, .bcx-price-row p) { line-height: 1.6; }
/* Align type hierarchy across treatment lists and both price views. */
:is(.bcx-price-row, .bc-treatment-row, .bc-price-teaser) { min-width: 0; }
.bcx-price-row h3, .bc-treatment-name { line-height: 1.23; }
.bcx-price-row p { font-size: 13px; }
.bc-detail-item-info .bc-detail-description { font-size: 13px; }
:is(.bcx-price-row strong, .bc-treatment-price, .bc-v281-price,
    .bc-price-teaser-amount) { font-variant-numeric: lining-nums tabular-nums; }
.bcx-price-row :is(strong, .bcx-price-note) { color: var(--bc-p29-ink); }
/* Small labels and links use one restrained champagne-graphite accent. */
:is(.bcx-content, .bc-section, .bc-list-top) :is(
  .bcx-section-title, .bcx-price-note, .bc-kicker,
  .bcx-kicker, .bc-link-line, .bc-list-back
) { letter-spacing: .10em; }
/* Preserve existing component rhythm; control text never collides with arrows. */
:is(.bcx-hero-cta a, .bcx-link, .bc-link-line, .bc-outline,
    .bcx-back, .bc-list-back, .bc-treatment-enquiry) {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
:is(.bcx-category-grid, .bc-price-grid, .bcx-prices,
    .bc-result-section, .bcx-contact-grid) { min-width: 0; }
.bc-global-footer address, .bc-global-footer-hours,
.bc-global-footer-policy { line-height: 1.65; }
/* Keyboard accessibility, without altering the established button visuals. */
:is(a, button, summary, select, input):focus-visible {
  outline: 2px solid var(--bc-p29-gold);
  outline-offset: 3px;
}
@media (min-width: 900px) {
  /* Requested: remove all three top rules, but keep Mobile exactly as approved. */
  .featured-section .bc-v281-card {
    border-top: 0;
    padding-top: 0;
  }
  /* The price links share one baseline even when titles wrap differently. */
  .featured-section .bc-v281-card h2.bc-v281-title {
    min-height: 2.12em;
  }
  .featured-section .bc-v281-description { min-height: 3.1em; }
  .bc-global-nav a { letter-spacing: .12em; }
  .bcx-price-row { column-gap: 26px; }
}
@media (max-width: 899px) {
  /* Mobile Featured: consciously unchanged, per final visual approval. */
  .bcx-price-row p { font-size: 13px; }
  .bc-detail-item-info .bc-detail-description { font-size: 13px; }
  .bcx-price-row { column-gap: 14px; }
}
