/* Aquaforest in the FishSnap Store's aquarium supplies (revision 03).
   Everything here builds on the FishSnap website's own components (style.css, merch.css, fs2.css):
   Store cards, toolbar, results bar, filter sheet, species-profile layout, buttons and tags.
   Aquaforest's identity is limited to its official logo and purple accents. */
.af-page {
  --af-purple: #41054B;
  --af-purple-deep: #33003B;
  --af-magenta: #C3004B;
  --af-tint: #F4EDF5;
  --af-tint-line: #E3D3E6;
}
/* The website's muted grey (#687b80) is 4.2:1 on the page background; inside this collection it is darkened
   slightly to #56696e (5.5:1) so every small caption meets WCAG AA. The shared header and footer are untouched. */
body.af-page main, body.af-page [data-af-filter-dialog] { --muted: #56696e; }
.af-page .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- collection head: breadcrumb + modest brand banner ---------- */
.af-head { padding: 22px 0 6px; }
.af-head .crumbs { margin-bottom: 16px; }
.af-page .crumbs a { color: var(--muted); }
.af-page .crumbs a:hover { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.af-page .crumbs strong { color: var(--ink); font-weight: 600; }
.af-banner {
  position: relative; display: grid; gap: 22px; align-items: center; overflow: hidden;
  padding: 20px 18px 18px 24px; border: 1px solid var(--line); border-radius: 24px; background: var(--surface);
  box-shadow: 0 14px 42px rgba(11, 32, 39, .055);
}
.af-banner::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: linear-gradient(180deg, var(--af-purple), var(--af-magenta)); }
.af-banner-copy { min-width: 0; }
.af-banner-logo { display: block; width: 176px; height: auto; margin: 0 0 14px; }
.af-banner .eyebrow { margin-bottom: 10px; color: var(--af-purple); }
.af-banner h1 { margin: 0 0 12px; color: var(--ink); }
.af-banner p { max-width: 640px; margin: 0; color: var(--muted); font-size: 1rem; line-height: 1.6; }
.af-banner-media { display: none; margin: 0; overflow: hidden; border-radius: 18px; background: var(--af-purple-deep); }
.af-banner-media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 45%; }
.af-banner-media.is-contain { background: var(--af-tint); }
.af-banner-media.is-contain img { object-fit: contain; padding: 14px; }
@media (min-width: 900px) {
  .af-banner { grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); padding: 26px 26px 26px 40px; }
  .af-banner-media { display: block; height: 100%; min-height: 220px; max-height: 250px; }
}

/* ---------- toolbar: the Store's own filter box, four fields ---------- */
.af-collection { padding: 18px 0 40px; scroll-margin-top: calc(var(--header) + 12px); }
.af-toolbar { margin: 0; }
.af-page .merch-browse-primary.af-browse { align-items: end; }
.af-page .af-filter-button { display: none; flex: 0 0 auto; }
.af-short { display: none; }
.af-filter-button svg { width: 18px; height: 18px; }
.af-filter-button .filter-selection-count { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--af-purple); color: #fff; font-size: 11px; }
.af-filter-button .filter-selection-count[hidden] { display: none; }
@media (min-width: 680px) {
  .af-page .merch-browse-primary.af-browse { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
  .af-page .merch-browse-primary.af-browse { grid-template-columns: minmax(0, 1.35fr) repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 679px) {
  .af-banner .eyebrow, .af-price-note { display: none; }
  .af-page .merch-browse-primary.af-browse { gap: 10px; }
  .af-field-desktop { display: none; }
  .af-page .af-filter-button { display: inline-flex; }
  .af-long { display: none; }
  .af-short { display: inline; }
}

/* results bar */
.af-page .af-results-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "status reset"; align-items: start; column-gap: 16px; }
.af-results-status { grid-area: status; }
.af-page .af-results-bar .merch-reset { grid-area: reset; }
.af-page .af-results-bar .af-filter-button { grid-area: filter; }
.af-results-status { display: grid; gap: 4px; min-width: 0; }
.af-results-status .merch-result-count { color: var(--ink); font-size: .82rem; font-weight: 600; }
.af-price-note { color: var(--muted); font-size: .72rem; line-height: 1.45; }
@media (max-width: 679px) {
  .af-page .af-results-bar { grid-template-areas: "status filter" "reset reset"; align-items: center; }
  .af-page .af-results-bar .merch-reset { justify-self: start; min-height: 32px; padding: 4px 0; }
}

/* ---------- product cards: the Store's card component ---------- */
.af-grid { gap: 18px; }
.af-card { display: flex; flex-direction: column; }
.af-card .merch-card-image { display: block; cursor: pointer; background: #eef3f3; }
.af-card .merch-card-image img { width: 100%; height: 100%; object-fit: contain; padding: 9%; }
.af-card .merch-card-image.is-photo img { object-fit: cover; padding: 0; }
.af-card .merch-card-image .card-badge { right: auto; bottom: auto; top: 12px; left: 12px; padding: 6px 9px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--ink); font: 600 .62rem/1 "JetBrains Mono", monospace; letter-spacing: 0; text-transform: none; }
.af-card .merch-card-image .af-card-view { position: absolute; right: 13px; bottom: 13px; padding: 8px 10px; border-radius: 999px; background: rgba(11, 32, 39, .9); color: #fff; font: 600 .58rem/1 "JetBrains Mono", monospace; letter-spacing: .05em; text-transform: uppercase; }
.af-card .merch-card-body { display: flex; flex-direction: column; flex: 1 1 auto; }
.af-page .af-kicker { color: var(--af-purple); }
.af-card h3 { margin: 7px 0 9px; font-size: 1.35rem; }
.af-card h3 a { color: inherit; text-decoration: none; }
.af-card h3 a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.af-card .merch-card-body p { display: -webkit-box; min-height: 0; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.af-card .af-card-foot { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 14px; }
.af-page .af-card-foot .af-price-value { color: var(--ink); font: 700 1.02rem/1.2 Inter, sans-serif; letter-spacing: -.01em; }
.af-page .af-card-foot .af-price-label { grid-column: 1 / -1; color: #5b6f73; font: 500 .62rem/1.35 "JetBrains Mono", monospace; }
.af-card .af-card-foot .text-link { color: var(--ink); font-size: .9rem; font-weight: 600; text-decoration: none; }
.af-empty { grid-column: 1 / -1; display: grid; justify-items: center; gap: 12px; padding: 40px 20px; border: 1px dashed var(--line); border-radius: 22px; text-align: center; }
.af-empty h3 { margin: 0; font-size: 1.3rem; }
.af-empty p { max-width: 460px; margin: 0; color: var(--muted); }
.af-noscript { padding: 20px; color: var(--muted); }
@media (max-width: 679px) {
  .af-grid.merch-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .af-card .merch-card-image .af-card-view, .af-card .merch-card-body > p, .af-card .merch-card-tags, .af-card .merch-card-foot .text-link { display: none; }
  .af-card .merch-card-image .card-badge { top: 8px; left: 8px; padding: 5px 7px; font-size: .56rem; }
  .af-card .merch-card-body { padding: 12px 12px 14px; }
  .af-card h3 { margin: 6px 0 8px; font-size: 1rem; line-height: 1.2; }
  .af-card .merch-card-foot { margin-top: auto; padding-top: 10px; }
  .af-page .af-card-foot .af-price-value { font-size: .92rem; }
  .af-page .af-card-foot .af-price-label { font-size: .56rem; }
}

/* ---------- product page: the species-profile layout of the FishSnap website ---------- */
.af-product-hero { padding: 20px 0 34px; }
.af-crumbs { flex-wrap: wrap; row-gap: 4px; }
.af-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: -6px 0 8px; color: var(--ink); font-size: .86rem; font-weight: 600; }
.af-back svg { width: 18px; height: 18px; }
.af-back:hover span { text-decoration: underline; text-underline-offset: 4px; }
.af-page .af-product-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.af-mobile-title { display: none; }
.af-gallery { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
/* The stage is a calm square; packshots are framed inside it by aquaforest.js (see "packshot framing" below). */
.af-page .af-gallery .main-photo { position: relative; width: 100%; max-width: 540px; height: auto; aspect-ratio: 1 / 1; overflow: hidden; border-radius: 24px; background: #eef3f2; }
.af-page .af-gallery .main-photo img { width: 100%; height: 100%; object-fit: contain; padding: 7%; }
.af-page .af-gallery .main-photo.is-photo img { object-fit: contain; padding: 0; }
/* The website's .main-photo is a centring grid; pin photographs and drawings to the stage so they are always shown whole. */
.af-page .af-gallery .main-photo > img:not(.af-fit) { position: absolute; inset: 0; }
.af-page .af-gallery .main-photo.is-drawing { background: #fff; }
.af-page .af-gallery .main-photo.is-drawing img { padding: 4%; }
.af-gallery-caption { position: absolute; left: 14px; bottom: 14px; padding: 6px 9px; border-radius: 999px; background: rgba(255, 255, 255, .92); color: var(--ink); font: 600 .62rem/1 "JetBrains Mono", monospace; }
.af-thumbs { display: grid; grid-template-columns: repeat(auto-fill, minmax(64px, 72px)); gap: 8px; max-width: 540px; margin: 0; padding: 0; list-style: none; }
.af-thumbs button { position: relative; display: block; width: 100%; aspect-ratio: 1; padding: 4px; overflow: hidden; border: 1.5px solid var(--line); border-radius: 12px; background: #eef3f3; cursor: pointer; }
.af-thumbs button img { width: 100%; height: 100%; object-fit: contain; }
.af-thumbs button.is-photo img { object-fit: cover; }
.af-thumbs button[aria-pressed="true"] { border-color: var(--af-purple); box-shadow: 0 0 0 1px var(--af-purple); }
.af-thumbs button:focus-visible { outline: 3px solid rgba(65, 5, 75, .35); outline-offset: 2px; }
.af-product-copy { position: relative; min-width: 0; padding: 0; }
.af-brand-line { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 14px; }
.af-brand-line img { display: block; width: 150px; height: auto; }
.af-product-copy h1 { margin: 10px 0 0; }
.af-page .profile-intro { margin: 16px 0 0; color: #4a5f63; font-size: 1rem; line-height: 1.65; }
.af-highlights { display: grid; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.af-highlights li { position: relative; padding-left: 26px; color: #2e4447; font-size: .92rem; line-height: 1.5; }
.af-highlights li::before { content: ""; position: absolute; left: 2px; top: .3em; width: 14px; height: 14px; border-radius: 50%; background: var(--af-tint) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='m4.2 8.3 2.4 2.4 5.2-5.4' fill='none' stroke='%2341054B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 12px no-repeat; }
.af-essentials { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 18px 0 0; border-top: 1px solid #cadbd5; }
@media (min-width: 900px) { .af-essentials { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); } }
.af-essentials > div { min-width: 0; padding: 12px 10px 12px 0; border-bottom: 1px solid #cadbd5; }
.af-essentials dt { color: var(--muted); font-size: .76rem; line-height: 1.4; }
.af-essentials dd { margin: 5px 0 0; font-size: .96rem; font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; }
.af-sizes { margin: 20px 0 0; padding: 0; border: 0; }
.af-sizes legend { margin-bottom: 10px; padding: 0; color: var(--ink); font-size: .8rem; font-weight: 700; }
.af-size-options { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 8px; }
.af-size-options button { min-width: 0; height: var(--fs2-S, 36px); padding: 0 10px; border: 1.5px solid var(--fs2-line, #b9cbc7); border-radius: 999px; background: #fff; color: var(--ink); font: 600 var(--fs2-fsS, 13.5px)/1 Inter, sans-serif; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.af-size-options button:hover { border-color: var(--af-purple); }
.af-size-options button[aria-checked="true"] { border-color: var(--af-purple); background: var(--af-purple); color: #fff; }
.af-size-options button:focus-visible { outline: 3px solid rgba(65, 5, 75, .35); outline-offset: 2px; }
.af-offer { display: grid; gap: 6px; margin: 18px 0 0; padding: 16px 18px; border: 1px solid var(--line); border-radius: 16px; background: #fff; }
.af-offer-price { color: var(--ink); font: 700 1.6rem/1.1 Inter, sans-serif; letter-spacing: -.02em; }
.af-offer-label { color: #3f5558; font-size: .8rem; line-height: 1.45; }
.af-offer-sku { color: var(--muted); font: 500 .72rem/1.4 "JetBrains Mono", monospace; }
.af-page .af-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--fs2-gap, 10px); margin-top: 18px; }
.af-page .af-actions .btn { width: 100%; gap: 8px; }
.af-page .af-actions .btn svg { width: 16px; height: 16px; flex: none; }
.af-loading { color: var(--muted); }
@media (min-width: 900px) {
  .af-page .af-product-grid { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 48px; }
}
@media (max-width: 1100px) and (min-width: 900px) { .af-page .af-product-grid { gap: 28px; } }
@media (max-width: 679px) {
  .af-product-hero { padding: 14px 0 26px; }
  .af-mobile-title { display: block; margin: 4px 0 14px; }
  .af-mobile-title .af-brand-line { margin-bottom: 12px; }
  .af-mobile-title .af-brand-line img { width: 140px; }
  .af-mobile-title h1 { margin: 8px 0 0; }
  .af-product-copy .af-brand-line, .af-product-copy > .card-kicker, .af-product-copy > h1 { display: none; }
  .af-page .af-gallery .main-photo { aspect-ratio: 20 / 19; border-radius: 18px; } /* a fixed ratio, so photographs are never clipped */
  .af-thumbs { grid-template-columns: repeat(auto-fill, minmax(48px, 1fr)); gap: 6px; }
  .af-crumb-wide { display: none; }
  .af-page .profile-intro { margin-top: 6px; font-size: .95rem; }
  .af-offer-price { font-size: 1.4rem; }
}
@media (max-width: 419px) { .af-page .af-actions { grid-template-columns: minmax(0, 1fr); } }

/* ---------- product details: the profile reading layout ---------- */
.af-details { padding: 38px 0 44px; border-block: 1px solid var(--line); background: var(--bg); }
.af-details-layout { display: grid; gap: 28px; align-items: start; }
.af-detail-nav { display: none; }
.af-detail-nav h2 { margin: 0 0 12px; color: var(--ink); font-family: Inter, sans-serif; font-size: 1rem !important; letter-spacing: 0 !important; }
.af-detail-nav ol { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.af-detail-nav a { display: flex; align-items: center; min-height: 44px; padding: 9px 12px; border-left: 3px solid transparent; border-radius: 0 9px 9px 0; color: #33474c; font-size: .84rem; line-height: 1.3; text-decoration: none; }
.af-detail-nav a:hover { background: #eef3f2; color: var(--ink); }
.af-detail-nav a[aria-current="true"] { border-left-color: var(--af-purple); background: var(--af-tint); color: var(--af-purple); font-weight: 600; }
.af-article { min-width: 0; max-width: 860px; --fs-heading-context: var(--fs-heading-panel); }
.af-article > section { padding: 0 0 34px; scroll-margin-top: calc(var(--header) + 24px); }
.af-article > section + section { padding-top: 30px; border-top: 1px solid var(--line); }
.af-article .eyebrow { margin-bottom: 10px; }
.af-article h2 { margin: 0 0 16px; }
.af-article p, .af-article li { color: #425d57; font-size: 1rem; line-height: 1.75; }
.af-article p { max-width: 72ch; margin: 0 0 14px; }
.af-steps { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; counter-reset: af-step; }
.af-steps li { position: relative; display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 14px; padding: 14px 0; border-top: 1px solid var(--line); counter-increment: af-step; }
.af-steps li::before { content: counter(af-step, decimal-leading-zero); padding-top: 2px; color: var(--af-purple); font: 700 .82rem/1.8 "JetBrains Mono", monospace; }
/* One calm panel for the product's limits, warnings and storage notes (not one alert box per line). */
.af-cautions { display: grid; gap: 0; margin: 0; padding: 4px 18px; border: 1px solid var(--fs2-amber-line, #e6c89f); border-left: 4px solid var(--fs2-amber, #8a4a12); border-radius: 14px; background: var(--fs2-amber-bg, #fdf3e6); list-style: none; }
.af-cautions li { position: relative; padding: 11px 0 11px 22px; color: #4d3a24; font-size: .94rem; line-height: 1.6; }
.af-cautions li + li { border-top: 1px solid rgba(138, 74, 18, .16); }
.af-cautions li::before { content: ""; position: absolute; left: 2px; top: 1.2em; width: 7px; height: 7px; border-radius: 50%; background: var(--fs2-amber, #8a4a12); }
.af-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.af-table-wrap:focus-visible { outline: 3px solid rgba(23, 107, 114, .35); outline-offset: 2px; }
.af-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.af-table th, .af-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.af-table tr:last-child > * { border-bottom: 0; }
.af-table thead th { color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .02em; background: #f6f9f8; }
.af-table tbody th { width: 38%; color: #3f5558; font-weight: 600; }
.af-table td.af-num { font-family: "JetBrains Mono", monospace; font-size: .82rem; white-space: nowrap; }
.af-table tr.is-selected > * { background: var(--af-tint); }
.af-table-note { margin: 10px 0 0 !important; color: var(--muted) !important; font-size: .78rem !important; line-height: 1.5 !important; }
.af-doc-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.af-doc { display: grid; gap: 6px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.af-doc-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.af-doc-head strong { color: var(--ink); font-size: .95rem; }
.af-doc a { color: var(--aqua); font-size: .88rem; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.af-doc-files { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.af-doc-files li { font-size: .88rem; line-height: 1.5; }
.af-kit-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.af-kit-list a { display: flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1.5px solid var(--fs2-line, #b9cbc7); border-radius: 12px; background: #fff; color: var(--ink); font-size: .9rem; font-weight: 600; text-decoration: none; }
.af-kit-list a:hover { border-color: var(--af-purple); }
.af-kit-list span { display: flex; align-items: center; min-height: 44px; padding: 8px 14px; border: 1.5px dashed var(--line); border-radius: 12px; color: #3f5558; font-size: .9rem; font-weight: 600; }
@media (min-width: 900px) {
  .af-details-layout { grid-template-columns: 220px minmax(0, 1fr); gap: 60px; }
  .af-detail-nav { display: block; position: sticky; top: calc(var(--header) + 24px); }
}
@media (max-width: 679px) {
  .af-details { padding: 28px 0 30px; }
  .af-article p, .af-article li { font-size: .96rem; line-height: 1.7; }
  .af-table th, .af-table td { padding: 10px 12px; }
}

/* ---------- related products: the profile page's "close relatives" pattern ---------- */
.af-related { padding: 40px 0 56px; }
.af-related .section-head { margin-bottom: 20px; }
.af-related .section-head h2 { margin: 0; }
.af-related-group + .af-related-group { margin-top: 30px; }
.af-related-group h3 { margin: 0 0 4px; font-size: 1.12rem; }
.af-related-group > p { margin: 0 0 12px; color: var(--muted); font-size: .84rem; line-height: 1.5; }
.af-related-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; margin: 0; padding: 0; list-style: none; }
.af-rel { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.af-rel-media { position: relative; display: block; width: 96px; height: 96px; overflow: hidden; border-radius: 14px; background: #eef3f3; }
.af-rel-media img { width: 100%; height: 100%; object-fit: contain; padding: 8%; }
.af-rel-media.is-photo img { object-fit: cover; padding: 0; }
.af-rel-copy { display: grid; gap: 3px; min-width: 0; }
.af-rel-copy .card-kicker { color: var(--af-purple); }
.af-rel-copy strong { font-size: 1.02rem; line-height: 1.3; }
.af-rel-copy small { color: #5b6f73; font-size: .76rem; line-height: 1.4; }
.af-rel:hover strong { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
.af-rel:focus-visible { outline: 3px solid rgba(65, 5, 75, .35); outline-offset: 3px; border-radius: 12px; }
@media (min-width: 680px) { .af-related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; } }
@media (min-width: 1100px) { .af-related-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* not found */
.af-not-found { display: grid; justify-items: start; gap: 14px; max-width: 620px; padding: 30px 0 60px; }
.af-not-found h1 { margin: 0; }
.af-not-found p { margin: 0; color: var(--muted); }

/* ---------- packshot framing ----------
   Transparent packshots (img.af-fit) are positioned by aquaforest.js: centred on their visible pixels, filling at
   most a set share of the frame, never beyond what the file supports at the screen's density. Before that runs
   (or without JavaScript) they sit inside the frame with generous padding. Photos and drawings keep object-fit. */
.af-page [data-af-frame] > img.af-fit { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: contain; padding: 16%; }
.af-page [data-af-frame].is-fitted > img.af-fit { inset: auto; padding: 0; object-fit: fill; }

@media (prefers-reduced-motion: reduce) {
  .af-page * { scroll-behavior: auto !important; }
}
