/**
 * Home page sections — hero, marquee, category tiles, testing standard with
 * certificate mockup, comparison band, guarantees, FAQ accordion.
 */

.avyn-home-shell { max-width: 80rem; margin: 0 auto; padding: 0 clamp(1.125rem, 4vw, 3.5rem); width: 100%; }
.avyn-home-section { padding-top: 4.5rem; padding-bottom: 4.5rem; }
.avyn-home-band { border-top: 1px solid var(--avyn-rule); border-bottom: 1px solid var(--avyn-rule); background: var(--avyn-panel); }

/* Section head */
.avyn-sechead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 2.25rem; }
.avyn-sechead h2 { margin: 0.5rem 0 0; font-size: clamp(1.6rem, 3.6vw, 2.4rem); font-weight: 650; line-height: 1.1; color: var(--avyn-ink); }
.avyn-sechead-intro { margin: 0.9rem 0 0; max-width: 42rem; font-size: 0.875rem; line-height: 1.65; color: var(--avyn-graphite); }
.avyn-sechead-action { display: inline-flex; align-items: center; gap: 0.4rem; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.avyn-sechead-action:hover { color: var(--avyn-brand-deep); }
.avyn-sechead-action svg { width: 14px; height: 14px; }

/* ── Hero ───────────────────────────────────────────────── */
.avyn-hero { border-bottom: 1px solid var(--avyn-rule); background: var(--avyn-paper); overflow: hidden; }
.avyn-hero-grid { display: grid; gap: 3rem; padding-top: 3.5rem; padding-bottom: 3.5rem; }
@media (min-width: 1024px) { .avyn-hero-grid { grid-template-columns: 1.05fr 1fr; align-items: center; padding-top: 5rem; padding-bottom: 5rem; } }
.avyn-hero-h1 { margin: 1rem 0 0; font-size: clamp(2.4rem, 6.2vw, 4.25rem); font-weight: 650; line-height: 1.05; letter-spacing: -0.03em; color: var(--avyn-ink); }
.avyn-hero-h1 span { color: var(--avyn-brand); }
.avyn-hero-copy { margin: 1.5rem 0 0; max-width: 36rem; font-size: 1rem; line-height: 1.7; color: var(--avyn-graphite); }
.avyn-hero-ctas { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.avyn-hero-ctas svg { width: 16px; height: 16px; }
.avyn-hero-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; max-width: 32rem; margin: 2.5rem 0 0; border: 1px solid var(--avyn-rule); background: var(--avyn-rule); }
.avyn-hero-stats > div { background: var(--avyn-paper); padding: 1rem 0.75rem; text-align: center; }
.avyn-hero-stats dd { margin: 0; font-family: var(--avyn-mono); font-size: 1.75rem; font-weight: 600; line-height: 1; color: var(--avyn-ink); font-variant-numeric: tabular-nums; }
.avyn-hero-stats dt { margin-top: 0.5rem; font-family: var(--avyn-mono); font-size: 0.625rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--avyn-slate); line-height: 1.3; }
.avyn-hero-vials { display: flex; align-items: flex-end; justify-content: center; gap: 0.75rem; }
.avyn-hero-vials .avyn-vial { height: clamp(6.75rem, 24vw, 15rem); width: auto; padding: 0; }
.avyn-hero-vials .avyn-hero-img { height: clamp(6.75rem, 24vw, 15rem); width: auto; display: block; }
.avyn-hero-latest { margin: 1.25rem 0 0; text-align: center; font-family: var(--avyn-mono); font-size: 0.6875rem; color: var(--avyn-slate); }
.avyn-hero-latest a { color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 4px; }

/* ── Marquee ────────────────────────────────────────────── */
.avyn-marquee { overflow: hidden; border-bottom: 1px solid var(--avyn-rule); background: var(--avyn-ink); padding: 0.7rem 0; }
.avyn-marquee-track { display: flex; width: max-content; gap: 2.5rem; padding-right: 2.5rem; animation: avyn-marquee 36s linear infinite; will-change: transform; }
.avyn-marquee-track span { display: flex; flex-shrink: 0; align-items: center; gap: 0.7rem; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.16em; color: rgba(245, 243, 238, 0.8); }
.avyn-marquee-track svg { width: 13px; height: 13px; color: var(--avyn-accent); }
@keyframes avyn-marquee { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .avyn-marquee-track { animation: none; flex-wrap: wrap; width: auto; } }

/* ── Category tiles ─────────────────────────────────────── */
.avyn-cat-grid { display: grid; gap: 1px; background: var(--avyn-rule); border: 1px solid var(--avyn-rule); }
@media (min-width: 640px) { .avyn-cat-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .avyn-cat-grid { grid-template-columns: repeat(4, 1fr); } }
.avyn-cat-tile { display: block; background: var(--avyn-paper); padding: 1.5rem; text-decoration: none; transition: background-color 160ms ease; }
a.avyn-cat-tile:hover { background: var(--avyn-panel); }
.avyn-cat-art { display: block; height: 5rem; margin-bottom: 1.25rem; }
.avyn-cat-art svg { height: 100%; width: auto; transition: transform 300ms ease; }
a.avyn-cat-tile:hover .avyn-cat-art svg { transform: scale(1.06); }
.avyn-cat-name { margin: 0; font-size: 1rem; font-weight: 650; color: var(--avyn-ink); }
a.avyn-cat-tile:hover .avyn-cat-name { color: var(--avyn-brand); }
.avyn-cat-desc { margin: 0.4rem 0 0; font-size: 0.75rem; line-height: 1.6; color: var(--avyn-slate); }
.avyn-cat-count { margin: 1rem 0 0; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--avyn-graphite); }
.avyn-cat-help a { display: inline-flex; align-items: center; gap: 0.4rem; margin-top: 1rem; font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 4px; }
.avyn-cat-help a svg { width: 13px; height: 13px; }

/* ── Testing standard + certificate mockup ──────────────── */
.avyn-testing-grid { display: grid; gap: 3rem; }
@media (min-width: 1024px) { .avyn-testing-grid { grid-template-columns: 1.15fr 1fr; gap: 4rem; } }
.avyn-steps { list-style: none; display: grid; gap: 1px; background: var(--avyn-rule); border: 1px solid var(--avyn-rule); margin: 0; padding: 0; }
@media (min-width: 640px) { .avyn-steps { grid-template-columns: 1fr 1fr; } }
.avyn-steps li { background: var(--avyn-paper); padding: 1.25rem; }
.avyn-step-head { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; color: var(--avyn-brand); font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.14em; }
.avyn-step-n { display: flex; align-items: center; justify-content: center; width: 2rem; height: 2rem; border: 1px solid var(--avyn-brand); font-size: 0.8125rem; font-weight: 600; }
.avyn-step-title { margin: 0; font-size: 0.875rem; font-weight: 650; color: var(--avyn-ink); }
.avyn-step-body { margin: 0.5rem 0 0; font-size: 0.75rem; line-height: 1.6; color: var(--avyn-graphite); }
@media (min-width: 1024px) { .avyn-cert-side { position: sticky; top: 90px; align-self: start; } }
.avyn-cert-mock { border: 1px solid var(--avyn-rule); background: var(--avyn-panel); box-shadow: 0 18px 40px -24px rgba(18, 22, 24, 0.35); }
.avyn-cert-mock-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-bottom: 2px solid var(--avyn-ink); }
.avyn-cert-logo svg, .avyn-cert-logo img { height: 1.25rem !important; width: auto !important; display: block; }
.avyn-cert-tag { font-family: var(--avyn-mono); font-size: 0.5625rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--avyn-data); }
.avyn-cert-idgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--avyn-rule); }
.avyn-cert-idgrid > div { background: var(--avyn-panel); padding: 0.7rem 1.25rem; }
.avyn-cert-idgrid p { margin: 0; }
.avyn-cert-idgrid p + p { margin-top: 0.25rem; font-family: var(--avyn-mono); font-size: 0.6875rem; color: var(--avyn-ink); }
.avyn-cert-body { border-top: 1px solid var(--avyn-rule); padding: 1rem 1.25rem; }
.avyn-cert-trace { display: block; width: 100%; height: 5rem; color: var(--avyn-brand); }
.avyn-cert-rows { margin-top: 1rem; }
.avyn-cert-rows > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px solid var(--avyn-rule); }
.avyn-cert-rows > div:last-child { border-bottom: 0; }
.avyn-cert-rows span:first-child { font-size: 0.6875rem; color: var(--avyn-slate); }
.avyn-cert-rows span:last-child { font-family: var(--avyn-mono); font-size: 0.75rem; font-weight: 500; color: var(--avyn-ink); font-variant-numeric: tabular-nums; }
.avyn-cert-open { display: flex; align-items: center; justify-content: space-between; padding: 0.85rem 1.25rem; border-top: 1px solid var(--avyn-rule); font-family: var(--avyn-mono); font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--avyn-ink); text-decoration: none; transition: background-color 140ms ease; }
.avyn-cert-open:hover { background: var(--avyn-shell); color: var(--avyn-ink); }
.avyn-cert-open svg { width: 14px; height: 14px; }
.avyn-cert-note { margin: 1rem 0 0; font-size: 0.75rem; line-height: 1.6; color: var(--avyn-slate); }

/* ── Comparison band (ink) ──────────────────────────────── */
.avyn-compare-band { border-top: 1px solid var(--avyn-rule); border-bottom: 1px solid var(--avyn-rule); background: var(--avyn-ink); color: var(--avyn-paper); }
.avyn-compare-band-grid { display: grid; gap: 2.5rem; padding-top: 4.5rem; padding-bottom: 4.5rem; }
@media (min-width: 1024px) { .avyn-compare-band-grid { grid-template-columns: 1.1fr 1fr; align-items: center; } }
.avyn-compare-band .avyn-label { color: rgba(245, 243, 238, 0.5); }
.avyn-compare-band h2 { margin: 0.75rem 0 0; font-size: clamp(1.75rem, 4vw, 2.75rem); font-weight: 650; line-height: 1.08; color: var(--avyn-paper); }
.avyn-compare-band-copy { margin: 1.25rem 0 0; max-width: 36rem; font-size: 0.875rem; line-height: 1.7; color: rgba(245, 243, 238, 0.7); }
body .avyn-compare-band-cta { margin-top: 1.75rem; background: var(--avyn-paper); border-color: var(--avyn-paper); color: var(--avyn-ink); }
body .avyn-compare-band-cta:hover { background: var(--avyn-brand); border-color: var(--avyn-brand); color: var(--avyn-paper); }
.avyn-compare-band-cta svg { width: 15px; height: 15px; }
.avyn-compare-band-panel { border: 1px solid rgba(245, 243, 238, 0.2); background: rgba(245, 243, 238, 0.04); padding: 1.5rem; }
.avyn-compare-band-panel > svg { width: 22px; height: 22px; color: var(--avyn-accent); margin-bottom: 1rem; }
.avyn-compare-band-panel ul { list-style: none; margin: 0; padding: 0; }
.avyn-compare-band-panel li { padding-bottom: 0.85rem; margin-bottom: 0.85rem; border-bottom: 1px solid rgba(245, 243, 238, 0.12); }
.avyn-compare-band-panel li:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.avyn-compare-band-panel p { margin: 0; font-size: 0.875rem; font-weight: 500; color: var(--avyn-paper); }
.avyn-compare-band-panel span { display: block; margin-top: 2px; font-size: 0.6875rem; color: rgba(245, 243, 238, 0.55); }

/* ── Guarantees ─────────────────────────────────────────── */
.avyn-guarantees { display: grid; gap: 1px; background: var(--avyn-rule); border: 1px solid var(--avyn-rule); }
@media (min-width: 640px) { .avyn-guarantees { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .avyn-guarantees { grid-template-columns: repeat(4, 1fr); } }
.avyn-guarantee { background: var(--avyn-paper); padding: 1.5rem; }
.avyn-guarantee-icon svg { width: 22px; height: 22px; color: var(--avyn-brand); margin-bottom: 1rem; }
.avyn-guarantee-title { margin: 0; font-size: 0.875rem; font-weight: 650; color: var(--avyn-ink); }
.avyn-guarantee-body { margin: 0.5rem 0 0; font-size: 0.75rem; line-height: 1.6; color: var(--avyn-graphite); }

/* ── FAQ preview ────────────────────────────────────────── */
.avyn-faq-grid { display: grid; gap: 3rem; padding-top: 4.5rem; padding-bottom: 4.5rem; }
@media (min-width: 1024px) { .avyn-faq-grid { grid-template-columns: 1fr 1.4fr; } }
.avyn-faq-grid h2 { margin: 0.75rem 0 0; font-size: clamp(1.6rem, 3.6vw, 2.4rem); font-weight: 650; line-height: 1.1; color: var(--avyn-ink); }
.avyn-faq-intro { margin: 1rem 0 1.5rem; font-size: 0.875rem; line-height: 1.65; color: var(--avyn-graphite); }
.avyn-faq-grid .avyn-btn-ghost svg { width: 15px; height: 15px; }
.avyn-accordion { border-top: 1px solid var(--avyn-rule); }
.avyn-acc-item { border-bottom: 1px solid var(--avyn-rule); }
.avyn-acc-item h3 { margin: 0; }
body .avyn-acc-item button {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 1.25rem;
  width: 100%; padding: 1rem 0; background: transparent; border: 0; border-radius: 0;
  box-shadow: none; cursor: pointer; text-align: left;
  font-size: 0.95rem; font-weight: 650; line-height: 1.4; color: var(--avyn-ink);
  transition: color 140ms ease;
}
body .avyn-acc-item button:hover { color: var(--avyn-brand); background: transparent; }
.avyn-acc-item button svg { flex-shrink: 0; margin-top: 3px; color: var(--avyn-slate); }
.avyn-acc-item button[aria-expanded="true"] .avyn-acc-v { display: none; }
.avyn-acc-panel { padding: 0 2rem 1.25rem 0; }
.avyn-acc-panel[hidden] { display: none; }
.avyn-acc-panel p { margin: 0; max-width: 65ch; font-size: 0.875rem; line-height: 1.7; color: var(--avyn-graphite); }

/* ── RUO note ───────────────────────────────────────────── */
.avyn-ruo { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.avyn-ruo p { margin: 0; border-left: 2px solid var(--avyn-data); padding-left: 1rem; font-size: 0.875rem; line-height: 1.625; color: var(--avyn-graphite); }

/* Marquee: optional pause-on-hover (widget toggle). */
.avyn-marquee--pause:hover .avyn-marquee-track { animation-play-state: paused; }

/* Elementor editor: reveal targets render in their final visible state so
   editing isn't fighting animations. */
.elementor-editor-active [data-reveal],
.elementor-edit-area-active [data-reveal] { opacity: 1 !important; transform: none !important; }

/* Elementor stacks widgets with a default 20px gap; the sections are designed
   to sit flush (band borders touching), exactly like the PHP homepage. */
.elementor-widget[data-widget_type^="avyn-"]:not(:last-child) { margin-bottom: 0; margin-block-end: 0; }
