body { background: var(--theme-color-page); color: var(--theme-color-text); font-family: var(--theme-font-body); font-size: var(--theme-font-size-body); line-height: var(--theme-line-height-body); }
h1, h2, h3, h4 { font-family: var(--theme-font-heading); font-weight: var(--theme-font-weight-heading); line-height: var(--theme-line-height-heading, 1.15); text-wrap: balance; }
h1 { font-size: clamp(2.6rem, 6vw, 5.8rem); margin-block: 0 var(--space-5); }
h2 { font-size: clamp(2rem, 4vw, 3.7rem); margin-block: 0 var(--space-4); }
h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); margin-block: 0 var(--space-3); }
p { margin-block: 0 var(--space-4); }
ul { padding-inline-start: 1.2em; }
.skip-link { background: var(--theme-color-accent); color: var(--theme-color-text-on-accent, var(--theme-color-surface-dark)); padding: var(--space-3) var(--space-4); border-radius: var(--theme-radius-small); box-shadow: var(--theme-shadow-medium); }
.site-header { position: sticky; inset-block-start: 0; z-index: 100; background: var(--theme-header-background, var(--theme-color-surface-dark)); color: var(--theme-header-text, var(--theme-color-text-on-dark)); border-block-end: var(--theme-border-width, 1px) solid var(--theme-header-border, var(--theme-color-border)); backdrop-filter: blur(var(--theme-header-blur, 0)); }
.site-header__brand { width: 180px; min-width: 180px; flex-shrink: 0; }
.site-header__brand img { width: 100%; height: auto; max-height: 50px; object-fit: contain; object-position: left center; filter: var(--theme-logo-filter, none); }
.primary-navigation a, .site-header__contact { text-decoration: none; font-weight: 600; white-space: nowrap; }
.primary-navigation a { min-height: 44px; display: flex; align-items: center; flex-shrink: 0; overflow-wrap: normal; }
.primary-navigation a:hover, .site-header__contact:hover { color: var(--theme-color-accent); }
.menu-toggle { border: var(--theme-border-width, 1px) solid var(--theme-color-border); border-radius: var(--theme-radius-small); background: var(--theme-color-surface); color: var(--theme-color-text); }
.menu-toggle span { background: currentColor; }
.button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); padding: .85rem 1.25rem; border: var(--theme-border-width, 1px) solid transparent; border-radius: var(--theme-radius-button, var(--theme-radius-small)); text-decoration: none; font-weight: 750; transition: transform var(--theme-motion-fast) var(--theme-easing), background var(--theme-motion-fast) var(--theme-easing), border-color var(--theme-motion-fast) var(--theme-easing); }
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--theme-color-accent); color: var(--theme-color-text-on-accent, var(--theme-color-surface-dark)); box-shadow: var(--theme-shadow-small); }
.button--primary:hover { background: var(--theme-color-accent-hover); }
.button--secondary { background: var(--theme-button-secondary-background, transparent); color: var(--theme-button-secondary-text, currentColor); border-color: var(--theme-button-secondary-border, currentColor); }
.button--secondary:hover { background: var(--theme-button-secondary-hover, var(--theme-color-surface-alt)); }
.button--text { padding-inline: 0; color: var(--theme-color-accent); }
.button[disabled] { opacity: .55; cursor: not-allowed; transform: none; }
.section--variant-light { background: var(--theme-section-light-background, var(--theme-color-page)); color: var(--theme-section-light-text, var(--theme-color-text)); }
.section--variant-surface { background: var(--theme-section-surface-background, var(--theme-color-surface)); color: var(--theme-section-surface-text, var(--theme-color-text)); }
.section--variant-dark { background: var(--theme-section-dark-background, var(--theme-color-surface-dark)); color: var(--theme-section-dark-text, var(--theme-color-text-on-dark)); }
.section--variant-accent { background: var(--theme-section-accent-background, var(--theme-color-primary)); color: var(--theme-section-accent-text, var(--theme-color-text-on-dark)); }
.section-heading__eyebrow, .hero__eyebrow { color: var(--theme-color-accent); text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; font-weight: 800; }
.section-heading__lead, .hero__subtitle { font-size: clamp(1.05rem, 2vw, 1.35rem); max-width: 68ch; color: var(--theme-text-muted-current, var(--theme-color-text-muted)); }
.hero { overflow: hidden; position: relative; }
.hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: var(--theme-hero-decoration, none); opacity: var(--theme-hero-decoration-opacity, 0); }
.hero .container { position: relative; }
.hero__note { max-width: 62ch; }
.hero__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--theme-radius-large); box-shadow: var(--theme-shadow-large); background: var(--theme-image-placeholder-background, transparent); }
.hero__highlights { list-style: none; }
.hero__highlights li { position: relative; padding-inline-start: 1.5rem; }
.hero__highlights li::before { content: ""; position: absolute; inset-inline-start: 0; inset-block-start: .55em; width: .6rem; height: .6rem; border-radius: 50%; background: var(--theme-color-accent); }
.comparison-card, .card, .feature, .stat, .contacts-panel, .questionnaire, .cta-panel { background: var(--theme-card-background, var(--theme-color-surface)); color: var(--theme-card-text, var(--theme-color-text)); border: var(--theme-border-width, 1px) solid var(--theme-card-border, var(--theme-color-border)); border-radius: var(--theme-radius-medium); box-shadow: var(--theme-card-shadow, var(--theme-shadow-small)); }
.comparison-card, .feature, .stat, .contacts-panel, .cta-panel { padding: clamp(1.25rem, 3vw, 2rem); }
.comparison-card ul { margin-block-end: 0; }
.card, .feature, .comparison-card, .contacts-panel, .questionnaire { position: relative; overflow: hidden; }
.card { display: flex; flex-direction: column; }
.card::after, .feature::after, .comparison-card::after { content: ""; position: absolute; inset: auto 0 0; height: 4px; background: var(--theme-card-accent-background, none); }
.card__image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--theme-image-placeholder-background, transparent); }
.card__body { padding: clamp(1.25rem, 3vw, 2rem); display: flex; flex-direction: column; flex: 1; }
.card__body .button { margin-block-start: auto; align-self: flex-start; }
.card__badge { display: inline-flex; align-self: flex-start; color: var(--theme-color-accent); font-weight: 800; }
.card__group { margin-block: var(--space-4); }
.card__group h4 { margin-block-end: var(--space-2); }
.card__group ul { margin: 0; }
.steps-grid { counter-reset: steps; }
.step { display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); padding: clamp(1.25rem, 3vw, 2rem); border-block-start: var(--theme-border-width, 1px) solid var(--theme-card-border, var(--theme-color-border)); background: var(--theme-step-background, transparent); }
.step__index { color: var(--theme-color-accent); font-weight: 800; letter-spacing: .12em; }
.feature img, .step img { padding: .65rem; background: var(--theme-icon-background, transparent); border: var(--theme-icon-border, 0); border-radius: var(--theme-icon-radius, 0); filter: var(--theme-icon-filter, none); }
.section-footnote { max-width: 900px; margin-block: var(--space-7) 0; color: var(--theme-text-muted-current, var(--theme-color-text-muted)); }
.media-text img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--theme-radius-large); box-shadow: var(--theme-shadow-medium); background: var(--theme-image-placeholder-background, transparent); }
.faq-list { display: grid; gap: var(--space-3); max-width: 950px; }
.faq-item { border-block-end: var(--theme-border-width, 1px) solid var(--theme-color-border); }
.faq-item summary { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); cursor: pointer; font-weight: 750; list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; font-size: 1.5rem; color: var(--theme-color-accent); }
.faq-item[open] summary::after { content: "−"; }
.faq-item__answer { padding-block-end: var(--space-5); color: var(--theme-text-muted-current, var(--theme-color-text-muted)); }
.contact-row { display: flex; justify-content: space-between; gap: var(--space-4); min-height: 48px; align-items: center; text-decoration: none; border-block-end: var(--theme-border-width, 1px) solid var(--theme-card-border, var(--theme-color-border)); overflow-wrap: anywhere; }
.contact-row span { text-transform: capitalize; color: var(--theme-color-text-muted); }
.contact-person { display: flex; flex-direction: column; margin-block-end: var(--space-5); }
.company-details { margin-block-start: var(--space-5); color: var(--theme-color-text-muted); }
.site-footer { background: var(--theme-footer-background, var(--theme-color-surface-dark)); color: var(--theme-footer-text, var(--theme-color-text-on-dark)); padding-block: var(--space-8) var(--space-5); }
.site-footer a { text-decoration: none; }
.site-footer__legal { margin-block-start: var(--space-7); padding-block-start: var(--space-5); border-block-start: var(--theme-border-width, 1px) solid var(--theme-footer-border, var(--theme-color-border)); color: var(--theme-footer-muted, var(--theme-color-text-muted)); font-size: .9rem; }
.site-footer__legal p { max-width: 800px; margin: 0; }
.legal-section { margin-block: var(--space-7); }
.back-link { display: inline-flex; margin-block-end: var(--space-5); text-decoration: none; }
.questionnaire { padding: clamp(1.25rem, 4vw, 3rem); max-width: 900px; }
.questionnaire__progress { height: 6px; background: var(--theme-progress-track, var(--theme-color-surface-alt)); border-radius: 99px; overflow: hidden; margin-block-end: var(--space-6); }
.questionnaire__progress-bar { height: 100%; width: 0; background: var(--theme-color-accent); transition: width var(--theme-motion-normal) var(--theme-easing); }
.questionnaire__step-label { color: var(--theme-color-text-muted); font-size: .9rem; }
.answer-option { position: relative; display: flex; align-items: flex-start; gap: var(--space-3); min-height: 52px; padding: var(--space-4); border: var(--theme-border-width, 1px) solid var(--theme-color-border); border-radius: var(--theme-radius-small); background: var(--theme-answer-background, var(--theme-color-surface)); transition: border-color var(--theme-motion-fast) var(--theme-easing), background var(--theme-motion-fast) var(--theme-easing), transform var(--theme-motion-fast) var(--theme-easing); }
.answer-option:hover { transform: translateY(-1px); border-color: var(--theme-color-accent); }
.answer-option:has(input:checked) { background: var(--theme-answer-selected-background, var(--theme-color-surface-alt)); border-color: var(--theme-color-accent); }
.answer-option input { margin-block-start: .2rem; accent-color: var(--theme-color-accent); }
.answer-option__text { flex: 1; }
.answer-option-wrap { display: grid; gap: var(--space-2); }
.answer-option__detail { width: 100%; min-height: 48px; border: var(--theme-border-width, 1px) solid var(--theme-color-border); border-radius: var(--theme-radius-small); background: var(--theme-input-background, var(--theme-color-surface)); color: var(--theme-color-text); padding: .75rem .9rem; }
.field { display: grid; gap: var(--space-2); }
.field label, .field__label { font-weight: 700; }
.field input, .field textarea { width: 100%; min-height: 48px; border: var(--theme-border-width, 1px) solid var(--theme-color-border); border-radius: var(--theme-radius-small); background: var(--theme-input-background, var(--theme-color-surface)); color: var(--theme-color-text); padding: .75rem .9rem; }
.field textarea { min-height: 140px; resize: vertical; }
.field__error { color: var(--theme-color-error); font-size: .9rem; }
.notice { padding: var(--space-4); border-radius: var(--theme-radius-small); margin-block: var(--space-4); }
.notice--error { background: var(--theme-error-background, var(--theme-color-surface-alt)); color: var(--theme-color-error); }
.notice--success { background: var(--theme-success-background, var(--theme-color-surface-alt)); color: var(--theme-color-success); }
.notice--warning { background: var(--theme-warning-background, var(--theme-color-surface-alt)); color: var(--theme-warning-text, var(--theme-color-text)); }
.questionnaire__summary-item { border-block-end: var(--theme-border-width, 1px) solid var(--theme-color-border); padding-block-end: var(--space-4); }
.questionnaire__summary-item strong, .questionnaire__summary-item span { display: block; }
.questionnaire__summary-item span { color: var(--theme-color-text-muted); }
.questionnaire__consent { display: flex; gap: var(--space-3); align-items: flex-start; margin-block-start: var(--space-5); }
.questionnaire__consent input { margin-block-start: .25rem; }
.stat strong { display: block; font-size: clamp(2rem, 5vw, 4rem); }
.gallery-item { margin: 0; }
.gallery-item img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--theme-radius-medium); }
.gallery-item figcaption { margin-block-start: var(--space-2); color: var(--theme-text-muted-current, var(--theme-color-text-muted)); }
.rich-text { max-width: 850px; }
@media (max-width: 767px) {
  .primary-navigation { background: var(--theme-header-background, var(--theme-color-surface-dark)); border-block-end: var(--theme-border-width, 1px) solid var(--theme-header-border, var(--theme-color-border)); }
  .hero__media img { border-radius: var(--theme-radius-medium); }
}
.button--disabled { opacity: .55; cursor: not-allowed; pointer-events: none; transform: none; }
