/* Single source of presentation rules. Scoped to the public Vital website. */
:root {
  --vh-brand: #230c4a;
  --vh-brand-hover: #36186b;
  --vh-bg: #f8f9fa;
  --vh-ink: #191c1d;
  --vh-text: #49454f;
  --vh-muted: #625d6a;
  --vh-border: #e1e3e4;
  --vh-heading: 'Montserrat', sans-serif;
  --vh-body: 'Plus Jakarta Sans', sans-serif;
  --vh-h1: clamp(1.875rem, 1.375rem + 2vw, 2.75rem);
  --vh-h2: clamp(1.5rem, 1.25rem + 1vw, 2.125rem);
  --vh-h3: clamp(1.25rem, 1.125rem + .5vw, 1.5rem);
  --vh-gutter: clamp(1rem, 3vw, 2.5rem);
  --vh-section: clamp(3rem, 6vw, 5rem);
  --vh-radius: 1.5rem;
  --vh-shadow: 0 8px 28px -16px rgb(35 12 74 / 18%);
}
html { scroll-padding-top: 6rem; }
body.vital-site { font-family: var(--vh-body); font-size: 1rem; line-height: 1.65; background: var(--vh-bg); color: var(--vh-ink); }
body.vital-site :is(h1,h2,h3,h4,h5,h6) { font-family: var(--vh-heading) !important; text-wrap: balance; overflow-wrap: break-word; }
body.vital-site main h1 { font-size: var(--vh-h1) !important; line-height: 1.18 !important; font-weight: 800 !important; letter-spacing: -.025em !important; }
body.vital-site main h2 { font-size: var(--vh-h2) !important; line-height: 1.25 !important; font-weight: 800 !important; letter-spacing: -.02em !important; }
body.vital-site main h3 { font-size: var(--vh-h3) !important; line-height: 1.35 !important; font-weight: 700 !important; }
body.vital-site main h4 { font-size: clamp(1.125rem, 1rem + .5vw, 1.25rem) !important; line-height: 1.4 !important; }
body.vital-site main :is(h5,h6) { font-size: 1rem !important; line-height: 1.45 !important; }
body.vital-site :is(.font-display,.font-display-lg,.font-headline-md,.font-headline-sm,.font-headline,.font-label-caps) { font-family: var(--vh-heading) !important; }
body.vital-site main :is(p,li,dt,dd) { font-family: var(--vh-body); font-size: 1rem !important; line-height: 1.65; text-wrap: pretty; }
body.vital-site main :is(.font-body-lg,.vh-lead) { font-size: clamp(1rem, .94rem + .25vw, 1.125rem) !important; line-height: 1.65 !important; }
body.vital-site :is(.font-label-caps,.vh-eyebrow) { font-size: .875rem !important; line-height: 1.5 !important; letter-spacing: .075em !important; }
body.vital-site main :is(.vh-body,.vh-small) { font-size: 1rem !important; line-height: 1.65 !important; }
body.vital-site :is(.text-outline,.text-subtle) { color: var(--vh-muted); }
body.vital-site :is(input,select,textarea) { font-family: var(--vh-body) !important; font-size: 1rem !important; }
body.vital-site :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select) { min-height: 3rem; }
body.vital-site :is(main,#vital-global-footer) :is(.max-w-container-max,.vh-container) { max-width: 80rem !important; padding-inline: var(--vh-gutter) !important; width: 100%; }
body.vital-site main > section:not(:first-child) { padding-block: var(--vh-section); }
body.vital-site main :is(.grid,.flex) > * { min-width: 0; }
body.vital-site main :is(img,video,iframe) { max-width: 100%; }
body.vital-site main :is(.ambient-shadow,.glass-card,.vh-card) { box-shadow: var(--vh-shadow) !important; border-radius: var(--vh-radius); }
body.vital-site main .glass-card { background: white; backdrop-filter: none; -webkit-backdrop-filter: none; border-color: var(--vh-border); }
body.vital-site main :is(.hover\:shadow-2xl,.hover\:shadow-xl):hover { box-shadow: var(--vh-shadow) !important; }
body.vital-site main :is(.hover\:-translate-y-1,.hover\:-translate-y-1\.5,.hover\:-translate-y-2):hover { transform: none; }
/* Explicit color pairs: descendant utility classes cannot override a CTA. */
body.vital-site .vital-button {
  --button-bg: var(--vh-brand); --button-fg: #fff; --button-hover-bg: var(--vh-brand-hover); --button-hover-fg: #fff; --button-border: transparent;
  background: var(--button-bg) !important; color: var(--button-fg) !important; border-color: var(--button-border) !important;
  font-family: var(--vh-heading) !important; font-size: 1rem !important; font-weight: 700; line-height: 1.4 !important;
  min-height: 3rem; max-width: 100%; padding: .85rem 1.5rem; border-radius: 999px !important; white-space: normal; text-align: center; text-decoration: none !important;
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, transform .18s cubic-bezier(.22,1,.36,1), box-shadow .18s ease !important; box-shadow: none !important;
}
body.vital-site .vital-button--light { --button-bg: #fff; --button-fg: var(--vh-brand); --button-hover-bg: #f3f0f9; --button-hover-fg: var(--vh-brand); --button-border: #e1e3e4; }
body.vital-site .vital-button--outline { --button-bg: transparent; --button-fg: var(--vh-brand); --button-hover-bg: var(--vh-brand); --button-hover-fg: #fff; --button-border: var(--vh-brand); }
body.vital-site .vital-button--accent { --button-bg: #d9f99d; --button-fg: #1a2e05; --button-hover-bg: #ecfccb; --button-hover-fg: #1a2e05; }
body.vital-site .vital-button:is(:hover,:focus-visible,:active) { background: var(--button-hover-bg) !important; color: var(--button-hover-fg) !important; }
body.vital-site .vital-button :is(span,svg,i,strong,b),
body.vital-site .vital-button:is(:hover,:focus-visible,:active) :is(span,svg,i,strong,b) { color: inherit !important; }
body.vital-site :is(.faq-toggle,.vh-faq-btn) { color: inherit; background: transparent; border: 0; min-height: 3rem; white-space: normal; text-align: left; }
body.vital-site :is(.faq-toggle,.vh-faq-btn):is(:hover,:focus-visible) { color: var(--vh-brand) !important; background: #f3f0f9 !important; }
body.vital-site :is(.faq-toggle,.vh-faq-btn) :is(h3,span,svg) { color: inherit !important; }
body.vital-site .faq-toggle h3 { font-size: clamp(1rem, .94rem + .25vw, 1.125rem) !important; }
body.vital-site .faq-item.active .faq-answer { max-height: none; overflow: visible; }
body.vital-site :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline: 3px solid #7c3aed !important; outline-offset: 4px !important; box-shadow: 0 0 0 2px white !important; }
body.vital-site :is(button,summary) { min-height: 2.75rem; }
body.vital-site :is(.vital-cart-btn,.mobile-toggle-btn,.vital-drawer-close-btn) { min-width: 2.75rem; min-height: 2.75rem; }
body.vital-site #cart-drawer[aria-hidden=true], body.vital-site #vital-mobile-menu[aria-hidden=true] { visibility: hidden; }
body.vital-site #cart-drawer { height: 100dvh; }
body.vital-site #cart-drawer-footer { padding-bottom: max(1.5rem, env(safe-area-inset-bottom)); }
body.vital-site #vital-toast { visibility: hidden; }
body.vital-site #vital-toast.show { visibility: visible; }
body.vital-site .legal-content-prose { max-width: 75ch; margin-inline: auto; overflow-wrap: anywhere; }
body.vital-site .legal-content-prose h2 { font-size: clamp(1.25rem, 1.15rem + .4vw, 1.5rem) !important; }
body.vital-site main a:not(.vital-button) { text-underline-offset: .2em; }
/* Editorial hero: existing content, one clear primary action, calendar retained. */
body.vital-site .vital-home-hero { padding: clamp(7rem, 9vw, 9rem) 0 2.5rem; overflow: clip; background: #f8f9fa; }
body.vital-site .vital-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2rem; align-items: start; }
body.vital-site .vital-hero-copy { padding-block: .5rem; max-width: 38rem; }
body.vital-site .vital-hero-eyebrow { display: block; margin-bottom: 1.25rem; color: var(--vh-brand); font-family: var(--vh-heading); font-weight: 700; font-size: .8125rem !important; line-height: 1.6; letter-spacing: .065em; }
body.vital-site .vital-hero-copy h1 { margin-bottom: 1.5rem; max-width: 19ch; }
body.vital-site .vital-hero-copy > p { max-width: 44ch; margin-bottom: 2rem; }
body.vital-site .vital-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-bottom: 2rem; }
body.vital-site .vital-hero-secondary { min-height: 3rem; display: inline-flex; align-items: center; gap: .5rem; font-size: .9375rem; font-weight: 700; }
body.vital-site .vital-hero-trust { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--vh-border); font-size: .875rem; }
body.vital-site .vital-hero-trust > span { display: inline-flex; align-items: center; gap: .5rem; }
body.vital-site #kalendarz-hero { margin: 0; scroll-margin-top: 6rem; border: 1px solid #dcd7e4; border-radius: 1.5rem; background: white; padding: 1rem; box-shadow: var(--vh-shadow); }
body.vital-site .vital-hero-calendar-label { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: center; justify-content: space-between; padding: .25rem .25rem 1rem; color: var(--vh-brand); font-size: .875rem; font-weight: 700; }
body.vital-site .vital-hero-calendar-label > span { font-size: .8125rem; padding: .25rem .65rem; background: #f3f0f9; border-radius: 999px; }
body.vital-site .vital-hero-scroll { display: flex; justify-content: flex-start; margin-top: 1.5rem; }
body.vital-site .vital-hero-scroll a { display: inline-flex; align-items: center; gap: .75rem; padding: .65rem 0; color: var(--vh-muted); font-size: .875rem; }
body.vital-site .vital-hero-scroll svg { flex-shrink: 0; }
@media (min-width: 1024px) {
  body.vital-site .vital-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 4vw, 4rem); }
  body.vital-site .vital-hero-copy { position: sticky; top: 8rem; padding-top: 3rem; }
  body.vital-site #kalendarz-hero { padding: 1.25rem; }
}
@media (max-width: 639px) {
  body.vital-site .vital-hero-actions > .vital-button { width: 100%; }
  body.vital-site .vital-hero-eyebrow { font-size: .75rem !important; }
  body.vital-site .vital-drawer-contacts { flex-direction: column; align-items: flex-start; gap: .5rem; }
  body.vital-site main :is(.whitespace-nowrap) { white-space: normal; }
  body.vital-site .vital-button { padding-inline: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  body.vital-site *, body.vital-site *::before, body.vital-site *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
/* Header controls inherit the same color pair, including fixed-color SVG children. */
body.vital-site #main-nav :is(.vital-cart-btn,.mobile-toggle-btn) { width: 2.75rem; height: 2.75rem; min-width: 2.75rem !important; }
body.vital-site #vital-mobile-menu .vital-drawer-close-btn { min-width: 2.75rem !important; min-height: 2.75rem !important; max-width: none !important; }
body.vital-site #vital-mobile-menu .vital-drawer-close-btn svg { color: inherit !important; }
body.vital-site #vital-mobile-menu .vital-drawer-contact-link,
body.vital-site #vital-mobile-menu .vital-drawer-contact-text { font-size: .875rem !important; color: var(--vh-muted) !important; }
body.vital-site #vital-mobile-menu[aria-hidden=false] { visibility: visible !important; }
body.vital-site #vital-mobile-menu { transition: none !important; }
body.vital-site #vital-mobile-menu.is-active :is(.vital-mobile-link-item,.vital-mobile-cta-box) { opacity: 1 !important; transform: none !important; transition-delay: 0s !important; }
body.vital-site .vital-button--ghost { --button-bg: rgb(255 255 255 / 12%); --button-fg: #fff; --button-hover-bg: #fff; --button-hover-fg: var(--vh-brand); --button-border: rgb(255 255 255 / 30%); }
body.vital-site .vital-social-button { display: inline-flex; min-height: 2.75rem; min-width: 2.75rem; color: var(--vh-brand) !important; background: #f3f0f9 !important; }
body.vital-site .vital-social-button:is(:hover,:focus-visible) { color: #fff !important; background: var(--vh-brand) !important; }
body.vital-site .vital-social-button svg, body.vital-site .vital-social-button:is(:hover,:focus-visible) svg { color: inherit !important; }
body.vital-site main :is(.vh-caption,.vh-eyebrow,small,label) { font-size: .875rem; }
body.vital-site .woocommerce :is(a.button,button.button,input.button,#place_order) { min-height: 3rem; border-radius: 999px !important; background: var(--vh-brand) !important; color: #fff !important; font-family: var(--vh-heading) !important; }
body.vital-site .woocommerce :is(a.button,button.button,input.button,#place_order):is(:hover,:focus-visible,:active) { background: var(--vh-brand-hover) !important; color: #fff !important; }
body.vital-site .woocommerce :is(a.button,button.button,#place_order) :is(span,svg), body.vital-site .woocommerce :is(a.button,button.button,#place_order):is(:hover,:focus-visible,:active) :is(span,svg) { color: inherit !important; }

/* Small, shared responses to deliberate interaction; no looping decorative motion. */
@media (prefers-reduced-motion: no-preference) {
  body.vital-site .vital-button:hover { transform: translateY(-1px) !important; }
  body.vital-site .vital-button:active { transform: translateY(0) !important; }
  body.vital-site :is(.vital-cart-btn,.mobile-toggle-btn,.vital-drawer-close-btn,.vital-social-button) {
    transition: background-color .18s ease, color .18s ease, transform .16s ease !important;
  }
  body.vital-site :is(.vital-cart-btn,.vital-drawer-close-btn,.vital-social-button):active { transform: scale(.97); }
  body.vital-site :is(.vital-button,.vital-hero-secondary) :is(svg,.material-symbols-outlined) { transition: transform .18s ease; }
  body.vital-site .vital-hero-secondary:hover :is(svg,.material-symbols-outlined) { transform: translateX(2px); }
  body.vital-site [data-vital-mode] { transition: color .18s ease, background-color .18s ease, box-shadow .18s ease; }
  body.vital-site .faq-item.active .faq-answer { animation: vital-answer-in .22s ease-out; }
  body.vital-site .vh-faq-item.active .vh-faq-content { animation: vital-answer-in .22s ease-out; }
}
@keyframes vital-answer-in { from { opacity: .5; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }

/* Keep native email/date fields consistent with the patient report form. */
#vital-report-form input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]),
#vital-report-form select, #vital-report-form textarea {
  width: 100%; min-height: 48px; padding: .75rem 1rem; border: 1px solid #e1e3e4;
  border-radius: 16px; background: #fff; color: #191c1d; font-family: inherit; font-size: 16px; line-height: 1.5;
}
#vital-report-form input:focus-visible, #vital-report-form select:focus-visible, #vital-report-form textarea:focus-visible {
  outline: 2px solid #230c4a; outline-offset: 2px; border-color: #230c4a;
}
