/* Component styles for the Litrocom component library. Shipped to consumers
   through styles.css so the React primitives stay dependency-free. */

/* ---------- Button ---------- */
.lg-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); font-family: var(--font-display); font-weight: var(--weight-semibold); text-transform: uppercase; letter-spacing: var(--tracking-caps); border: 1px solid transparent; border-radius: var(--radius-control); cursor: pointer; text-decoration: none; transition: var(--transition-control), transform var(--duration-fast) var(--ease-out); white-space: nowrap }
.lg-btn:hover { text-decoration: none }
.lg-btn:active { transform: translateY(1px) }
.lg-btn--sm { height: 36px; padding: 0 var(--space-4); font-size: var(--text-sm) }
.lg-btn--md { height: 46px; padding: 0 var(--space-6); font-size: var(--text-md) }
.lg-btn--lg { height: 56px; padding: 0 var(--space-8); font-size: var(--text-lg) }
.lg-btn--block { width: 100% }
.lg-btn--primary { background: var(--brand-primary); color: var(--text-on-brand); box-shadow: var(--shadow-sm) }
.lg-btn--primary:hover { background: var(--brand-primary-hover); color: var(--text-on-brand); box-shadow: var(--shadow-md) }
.lg-btn--primary:active { background: var(--brand-primary-active) }
.lg-btn--accent { background: var(--brand-accent); color: var(--text-on-accent); box-shadow: var(--shadow-sm) }
.lg-btn--accent:hover { background: var(--brand-accent-hover); color: var(--text-on-accent); box-shadow: var(--shadow-accent) }
.lg-btn--outline { background: transparent; color: var(--text-brand); border-color: var(--border-brand) }
.lg-btn--outline:hover { background: var(--surface-brand-tint); color: var(--brand-primary-hover) }
.lg-btn--ghost { background: transparent; color: var(--text-brand); border-color: transparent; padding-left: var(--space-2); padding-right: var(--space-2) }
.lg-btn--ghost:hover { background: var(--surface-brand-tint) }
.lg-btn--inverse { background: var(--neutral-0); color: var(--text-brand) }
.lg-btn--inverse:hover { background: var(--cyan-100); color: var(--green-900) }
.lg-btn--onDark { background: transparent; color: var(--neutral-0); border-color: var(--border-inverse) }
.lg-btn--onDark:hover { background: rgba(255,255,255,0.1); color: var(--neutral-0); border-color: rgba(255,255,255,0.4) }
.lg-btn[aria-disabled="true"], .lg-btn:disabled { background: var(--neutral-200); color: var(--text-faint); border-color: transparent; box-shadow: none; cursor: not-allowed; transform: none }
.lg-btn__chev { font-family: var(--font-sans); font-weight: var(--weight-bold); transition: transform var(--duration-base) var(--ease-out) }
.lg-btn:hover .lg-btn__chev { transform: translateX(3px) }

/* ---------- Eyebrow ---------- */
.lg-eyebrow { display: inline-flex; align-items: center; gap: var(--space-3); font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); color: var(--text-brand) }
.lg-eyebrow--caps { text-transform: uppercase }
.lg-eyebrow--accent { color: var(--brand-accent) }
.lg-eyebrow--inverse { color: var(--cyan-300) }
.lg-eyebrow--muted { color: var(--text-muted) }
.lg-eyebrow__rule { display: block; width: 28px; height: 2px; background: currentColor; flex: none }

/* ---------- SectionHeading ---------- */
.lg-heading { display: flex; flex-direction: column; gap: var(--space-4); max-width: 720px }
.lg-heading--center { align-items: center; text-align: center; margin: 0 auto }
.lg-heading__title { font-family: var(--font-display); font-weight: var(--weight-bold); letter-spacing: var(--tracking-heading); line-height: var(--leading-heading); text-wrap: pretty; color: var(--text-strong); margin: 0 }
.lg-heading__title--xl { font-size: var(--text-4xl) }
.lg-heading__title--lg { font-size: var(--text-3xl) }
.lg-heading__title--md { font-size: var(--text-2xl) }
.lg-heading__body { font: var(--type-body-lg); color: var(--text-muted) }
.lg-heading--inverse .lg-heading__title { color: var(--neutral-0) }
.lg-heading--inverse .lg-heading__body { color: rgba(255,255,255,0.78) }
.lg-heading__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-2) }

/* ---------- Marquee ---------- */
.lg-marquee { display: flex; overflow: hidden; user-select: none; padding: var(--space-4) 0; border-top: 1px solid var(--border-subtle); border-bottom: 1px solid var(--border-subtle) }
.lg-marquee--inverse { border-color: var(--border-inverse); background: var(--surface-brand-deep) }
.lg-marquee__track { display: flex; flex: none; gap: var(--space-9); padding-right: var(--space-9); animation: lg-marquee-scroll var(--duration-marquee) linear infinite }
.lg-marquee__word { font-family: var(--font-display); font-weight: var(--weight-bold); text-transform: uppercase; letter-spacing: var(--tracking-eyebrow); font-size: var(--text-2xl); color: var(--neutral-200); white-space: nowrap }
.lg-marquee--inverse .lg-marquee__word { color: rgba(255,255,255,0.22) }
.lg-marquee--accent .lg-marquee__word { color: var(--cyan-300) }
@keyframes lg-marquee-scroll { from { transform: translateX(0) } to { transform: translateX(-100%) } }

/* ---------- FeatureCard ---------- */
.lg-feature { display: flex; flex-direction: column; gap: var(--space-4); text-align: left }
.lg-feature--center { align-items: center; text-align: center }
.lg-feature--boxed { background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-card); padding: var(--space-7); box-shadow: var(--shadow-sm); transition: var(--transition-lift) }
.lg-feature--boxed:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg) }
.lg-feature__icon { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; flex: none; border-radius: var(--radius-md); background: var(--surface-brand-tint); color: var(--text-brand); font-family: var(--font-display); font-size: var(--text-xl); font-weight: var(--weight-bold) }
.lg-feature__icon img { width: 100%; height: 100%; object-fit: contain }
.lg-feature__title { font-family: var(--font-display); font-weight: var(--weight-semibold); letter-spacing: var(--tracking-heading); line-height: var(--leading-heading); font-size: var(--text-lg); color: var(--text-strong); margin: 0 }
.lg-feature__body { font: var(--type-body); color: var(--text-muted) }
.lg-feature--inverse .lg-feature__title { color: var(--neutral-0) }
.lg-feature--inverse .lg-feature__body { color: rgba(255,255,255,0.74) }
.lg-feature--inverse .lg-feature__icon { background: rgba(255,255,255,0.1); color: var(--cyan-300) }

/* ---------- ArticleCard ---------- */
.lg-article { display: flex; flex-direction: column; background: var(--surface-card); border: 1px solid var(--border-subtle); border-radius: var(--radius-card); overflow: hidden; transition: var(--transition-lift) }
.lg-article:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg) }
.lg-article__media { aspect-ratio: 16 / 10; background: var(--surface-muted); position: relative; overflow: hidden }
.lg-article__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--duration-slow) var(--ease-out) }
.lg-article:hover .lg-article__media img { transform: scale(1.04) }
.lg-article__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font: var(--type-eyebrow); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--text-faint) }
.lg-article__body { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-6) }
.lg-article__date { font: var(--type-body-sm); color: var(--text-faint) }
.lg-article__title { font-family: var(--font-display); font-weight: var(--weight-semibold); font-size: var(--text-xl); line-height: var(--leading-heading); letter-spacing: var(--tracking-caps); margin: 0 }
.lg-article__title a { color: var(--text-strong) }
.lg-article__title a:hover { color: var(--text-brand); text-decoration: none }
.lg-article__excerpt { font: var(--type-body); color: var(--text-muted) }
.lg-article__more { margin-top: var(--space-1); font: var(--type-label); text-transform: uppercase; letter-spacing: var(--tracking-caps); font-family: var(--font-display); color: var(--text-brand); display: inline-flex; gap: var(--space-2); align-items: center }

/* ---------- SpecList ---------- */
.lg-specs { display: flex; flex-direction: column }
.lg-specs__row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--space-6); padding: var(--space-3) 0; border-bottom: 1px dashed var(--border-default) }
.lg-specs__row:last-child { border-bottom: 0 }
.lg-specs__label { font: var(--type-body); color: var(--text-muted) }
.lg-specs__value { font: var(--type-label); color: var(--text-strong); text-align: right; white-space: nowrap }
.lg-specs--bulleted .lg-specs__row { border-bottom: 0; padding: var(--space-2) 0; justify-content: flex-start }
.lg-specs--bulleted .lg-specs__label::before { content: ''; display: inline-block; width: 6px; height: 6px; background: var(--brand-accent); margin-right: var(--space-3); vertical-align: 2px }
.lg-specs--bulleted .lg-specs__value { text-align: left; margin-left: var(--space-2) }

/* ---------- ProcessFlow ---------- */
.lg-flow { display: flex; align-items: center; justify-content: center; gap: var(--space-6); flex-wrap: wrap }
.lg-flow__step { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); max-width: 180px; text-align: center }
.lg-flow__disc { width: 104px; height: 104px; border-radius: var(--radius-pill); display: flex; align-items: center; justify-content: center; background: var(--surface-brand-tint); border: 1px solid var(--border-subtle); overflow: hidden }
.lg-flow__disc img { width: 72%; height: 72%; object-fit: contain }
.lg-flow__disc--brand { background: var(--surface-brand); border-color: var(--brand-primary) }
.lg-flow__initials { font-family: var(--font-display); font-weight: var(--weight-bold); font-size: var(--text-xl); letter-spacing: var(--tracking-caps); color: var(--text-brand) }
.lg-flow__disc--brand .lg-flow__initials { color: var(--cyan-300) }
.lg-flow__label { font: var(--type-body-sm); font-style: italic; color: var(--text-muted) }
.lg-flow__arrow { color: var(--border-default); font-size: var(--text-2xl); line-height: 1; flex: none }

/* ---------- Breadcrumb ---------- */
.lg-crumbs { display: flex; align-items: center; gap: var(--space-3); font: var(--type-body-sm) }
.lg-crumbs__sep { color: rgba(255,255,255,0.5) }
.lg-crumbs a { color: var(--cyan-300) }
.lg-crumbs a:hover { color: var(--neutral-0) }
.lg-crumbs__current { color: var(--neutral-0) }
.lg-crumbs--onLight a { color: var(--link) }
.lg-crumbs--onLight .lg-crumbs__sep { color: var(--text-faint) }
.lg-crumbs--onLight .lg-crumbs__current { color: var(--text-muted) }

/* ---------- Tabs ---------- */
.lg-tabs { display: flex; gap: var(--space-7); border-bottom: 1px solid var(--border-subtle); overflow-x: auto }
.lg-tabs__tab { appearance: none; background: none; border: 0; padding: 0 0 var(--space-4); font-family: var(--font-display); font-weight: var(--weight-semibold); font-size: var(--text-md); text-transform: uppercase; letter-spacing: var(--tracking-caps); color: var(--text-faint); cursor: pointer; position: relative; white-space: nowrap; transition: var(--transition-control) }
.lg-tabs__tab:hover { color: var(--text-body) }
.lg-tabs__tab[aria-selected="true"] { color: var(--text-strong) }
.lg-tabs__tab[aria-selected="true"]::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; background: var(--brand-accent) }
.lg-tabs--center { justify-content: center }

/* ---------- Input ---------- */
.lg-field { display: flex; flex-direction: column; gap: var(--space-2) }
.lg-field__label { font: var(--type-label); color: var(--text-body) }
.lg-field__hint { font: var(--type-body-sm); color: var(--text-faint) }
.lg-field__error { font: var(--type-body-sm); color: var(--status-danger) }
.lg-input { height: 46px; padding: 0 var(--space-4); font: var(--type-body); color: var(--text-strong); background: var(--surface-card); border: 1px solid var(--border-default); border-radius: var(--radius-control); transition: var(--transition-control); width: 100% }
.lg-input::placeholder { color: var(--text-faint) }
.lg-input:hover { border-color: var(--border-strong) }
.lg-input:focus { outline: none; border-color: var(--brand-primary); box-shadow: var(--ring-focus) }
.lg-input:disabled { background: var(--surface-muted); color: var(--text-faint); cursor: not-allowed }
.lg-input--invalid { border-color: var(--status-danger) }
.lg-input--onDark { background: rgba(255,255,255,0.08); border-color: var(--border-inverse); color: var(--neutral-0) }
.lg-input--onDark::placeholder { color: rgba(255,255,255,0.5) }

/* ---------- NewsletterForm ---------- */
.lg-news { display: flex; flex-direction: column; gap: var(--space-4) }
.lg-news__row { display: flex; gap: var(--space-3); flex-wrap: wrap }
.lg-news__row .lg-field { flex: 1 1 220px }

/* ---------- Layout ---------- */
.lg-container { width: 100%; max-width: var(--container-max); margin: 0 auto; padding-left: var(--container-pad); padding-right: var(--container-pad) }
.lg-container--narrow { max-width: var(--container-narrow) }
.lg-section { padding-top: var(--section-y); padding-bottom: var(--section-y) }
.lg-section--compact { padding-top: var(--section-y-compact); padding-bottom: var(--section-y-compact) }
.lg-section--sunken { background: var(--surface-sunken) }
.lg-section--tint { background: var(--surface-brand-tint) }
.lg-section--brand { background: var(--surface-brand); color: var(--neutral-0) }
.lg-section--deep { background: var(--surface-brand-deep); color: var(--neutral-0) }
