/* lzp-ux-2026-10 — Libritos ZP accessibility & audience layer.
   Loaded LAST in baseof.html so it wins over page CSS at equal specificity.
   Goals: 18px reading text, 14px floor for any label, AA contrast on every text color,
   48px touch targets, high-contrast focus ring, reduced-motion support. */

:root{
  --lzp-a11y-ink:#2b2236;
  --lzp-a11y-muted:#5e5568;      /* 7.0:1 on white, 6.5:1 on cream */
  --lzp-a11y-accent:#9a4a17;     /* 6.2:1 on white — replaces #e97837 for text */
  --lzp-a11y-focus:#34204e;      /* 14:1 on white */
  --lzp-a11y-plum:#34204e;
}

/* ---------- Reader-controlled text size (A / A+ / A++) ---------- */
html[data-lzp-text="large"]{font-size:112.5%}
html[data-lzp-text="xlarge"]{font-size:125%}

/* ---------- Base reading size: 18px body, 1.6 line height ---------- */
body{font-size:1.125rem;line-height:1.6;color:var(--lzp-a11y-ink)}
p,.paragraph,li,dd{font-size:1.125rem;line-height:1.65}
.navigation .nav-link{font-size:1.0625rem!important;font-weight:600}
footer a,footer li{font-size:1.0625rem}

/* ---------- 14px floor for labels, eyebrows and meta text ---------- */
.lzp-eyebrow,.b2b-catalog .b2b-kicker,.lzp-quote__eyebrow,.lzp-community-card .lzp-community-overline{font-size:.875rem!important;letter-spacing:.08em!important}
.lzp-refresh .lzp-collection-copy p,.lzp-refresh .lzp-why-item p,.lzp-refresh .lzp-feature-info span,.lzp-refresh .lzp-collection-copy span{font-size:1rem}
.lzp-refresh .lzp-feature-info h3{font-size:1.125rem}
.b2b-hero__meta,.b2b-count,.b2b-book__language,.b2b-book__summary,.b2b-book__details,.b2b-book__facts dd,.b2b-book__price span,.b2b-audience__grid small,.b2b-textlink,.b2b-view button,.b2b-print,.lzp-inquiry-line label,.lzp-inquiry-toggle__text small{font-size:1rem!important}
.b2b-book__format,.b2b-book__details dt,.b2b-book__price small,.b2b-decision__grid article>span,.b2b-fineprint,.lzp-inquiry-item-controls label,.lzp-inquiry-panel__header button,.lzp-inquiry-send{font-size:.875rem!important}
.lzp-lang a.lzp-lang__option{font-size:15px!important}

/* ---------- Contrast fixes (WCAG 1.4.3 AA, 4.5:1) ---------- */
.lzp-refresh .lzp-feature-info span{color:var(--lzp-a11y-accent)}          /* was #e97837 = 2.9:1 */
.b2b-count,.b2b-book__details dt,.b2b-book__price small,.b2b-fineprint,.b2b-book__language,.b2b-book__format,.b2b-book__price span,.b2b-hero__meta{color:var(--lzp-a11y-muted)!important} /* were 3.5–4.3:1 */
.b2b-decision__grid article>span{color:var(--lzp-a11y-accent)!important}
.b2b-catalog .b2b-kicker{color:#8a4a24!important}
.lzp-eyebrow{color:#a8172e!important}                                       /* brand red #dd2d46 on pink = 4.1:1 */

/* ---------- Focus: one visible, high-contrast ring everywhere (2.4.7 / 2.4.13) ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible,
.lzp-refresh a:focus-visible,.lzp-refresh button:focus-visible,.lzp-lang a.lzp-lang__option:focus-visible{
  outline:3px solid var(--lzp-a11y-focus)!important;outline-offset:2px!important;box-shadow:0 0 0 6px #fff!important}

/* ---------- Touch targets: 48px (exceeds 2.5.8's 24px minimum) ---------- */
.lzp-button,.b2b-catalog .b2b-button,.lzp-quote__submit,.lzp-org-nav-cta{min-height:48px;font-size:1rem!important}
.b2b-book__actions .b2b-button{min-height:48px;padding:12px 14px}
.lzp-carousel-arrow,.lzp-event-arrow{width:48px!important;height:48px!important;min-width:48px!important;font-size:1.25rem!important;border-color:#8f7f96!important}
.navigation .navbar-toggler{min-width:48px;min-height:48px;font-size:1.5rem}
.lzp-lang a.lzp-lang__option{min-width:44px!important;min-height:44px!important}
.lzp-filters button{min-height:44px}
.b2b-view button,.b2b-print{min-height:44px}
footer .list-unstyled li{margin-bottom:.75rem!important}
footer .list-unstyled a{display:inline-block;padding:4px 0}

/* Visible borders on outline buttons (1.4.11 non-text contrast 3:1) */
.lzp-button-quiet,.b2b-catalog .b2b-button--outline{border-color:#8f7f96!important}

/* ---------- Links inside running text are underlined (1.4.1) ---------- */
.lzp-refresh p a,.b2b-catalog p a,.lzp-quote p a,.lzp-vendor p a{text-decoration:underline;text-underline-offset:3px}

/* ---------- Forms: 16px+ inputs (no iOS zoom), 48px fields, visible labels ---------- */
.lzp-quote input,.lzp-quote select,.lzp-quote textarea,.b2b-toolbar input,.b2b-toolbar select,#lzp-product-search{font-size:1.0625rem!important;min-height:48px}
.lzp-quote label{font-size:1rem;font-weight:600}
.lzp-quote__checks{display:flex;flex-wrap:wrap;gap:10px 18px;margin:8px 0 0;padding:0;border:0}
.lzp-quote__checks legend{font-size:1rem;font-weight:600;margin-bottom:6px}
.lzp-quote .lzp-quote__checks label{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;font-weight:500;min-height:44px;margin:0!important}
.lzp-quote .lzp-quote__checks input[type=checkbox]{flex:0 0 22px;width:22px!important;height:22px!important;min-height:0!important;margin:0!important;padding:0!important;accent-color:var(--lzp-a11y-plum)}
.lzp-quote__hint{font-size:.95rem;color:var(--lzp-a11y-muted);font-weight:400;display:block;margin-top:4px}

/* ---------- Skip link ---------- */
.lzp-skip{position:absolute;left:12px;top:-200px;z-index:2000;background:var(--lzp-a11y-plum);color:#fff!important;padding:14px 20px;border-radius:10px;font-weight:700;font-size:1.0625rem}
.lzp-skip:focus{top:12px}
#lzp-main:focus{outline:none}

/* ---------- Text-size control ---------- */
.lzp-textsize{display:inline-flex;align-items:center;gap:4px;margin:0 .5rem;padding:3px;border:1px solid #cdbfd2;border-radius:999px;background:#fff}
.lzp-textsize__label{font-size:.875rem;color:var(--lzp-a11y-muted);padding:0 6px 0 8px;white-space:nowrap}
.lzp-textsize button{min-width:44px;min-height:44px;border:0;border-radius:999px;background:transparent;color:var(--lzp-a11y-plum);font-weight:750;cursor:pointer;line-height:1}
.lzp-textsize button[data-size="normal"]{font-size:15px}.lzp-textsize button[data-size="large"]{font-size:18px}.lzp-textsize button[data-size="xlarge"]{font-size:21px}
.lzp-textsize button[aria-pressed="true"]{background:var(--lzp-a11y-plum);color:#fff}
@media(max-width:991px){.lzp-textsize{margin:.75rem auto 0}}
.navigation .nav-link{white-space:nowrap}
.lzp-org-short{display:none}
@media(min-width:992px) and (max-width:1279px){
  .lzp-org-long{display:none}.lzp-org-short{display:inline}
  .lzp-textsize__label{display:none}
  .navigation .navbar-nav .nav-link{padding-left:.6rem!important;padding-right:.6rem!important}
}
@media(min-width:992px) and (max-width:1099px){.navigation .lzp-textsize{display:none}}

/* ---------- Homepage: "Choose your path" audience cards ---------- */
.lzp-paths{padding:56px 0 24px;background:#fff}
.lzp-paths__head{text-align:center;max-width:720px;margin:0 auto 28px}
.lzp-paths__head h2{font-size:clamp(1.75rem,3vw,2.5rem);color:var(--lzp-a11y-plum);margin:8px 0 8px}
.lzp-paths__head p{color:var(--lzp-a11y-muted);margin:0}
.lzp-paths__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;list-style:none;margin:0;padding:0}
.lzp-path{display:flex;flex-direction:column;height:100%;padding:28px 26px;border:2px solid #e3d8e6;border-radius:20px;background:#fffaf4;color:var(--lzp-a11y-ink)!important;text-decoration:none!important;transition:border-color .15s,box-shadow .15s}
.lzp-path:hover{border-color:var(--lzp-a11y-plum);box-shadow:0 12px 30px rgba(52,32,78,.10)}
.lzp-path__icon{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#f1e6f3;font-size:28px;margin-bottom:16px}
.lzp-path--seniors .lzp-path__icon{background:#fdebd9}
.lzp-path--orgs .lzp-path__icon{background:#e4eef7}
.lzp-path__who{font-size:.875rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--lzp-a11y-accent);margin:0 0 6px}
.lzp-path h3{font-size:1.4rem!important;line-height:1.25;color:var(--lzp-a11y-plum);margin:0 0 10px;letter-spacing:-.01em}
.lzp-path p{font-size:1.0625rem!important;color:var(--lzp-a11y-muted);margin:0 0 20px}
.lzp-path__cta{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 20px;border-radius:12px;background:var(--lzp-a11y-plum);color:#fff;font-weight:750;font-size:1.0625rem}
.lzp-path--seniors h3{font-size:1.55rem!important}
@media(max-width:900px){.lzp-paths__grid{grid-template-columns:1fr}.lzp-path{padding:22px}}

/* ---------- Catalog: five audience cards fit cleanly ---------- */
.b2b-audience__grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))!important}

/* ---------- Purchasing & vendor information ---------- */
.lzp-vendor{padding-top:65px}
.lzp-vendor__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:22px}
.lzp-vendor__card{background:#fff;border:1px solid #e9e2e7;border-radius:18px;padding:26px}
.lzp-vendor__card h3{font-size:1.25rem;margin:0 0 14px;color:var(--lzp-a11y-ink)}
.lzp-vendor__facts{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:10px 18px;margin:0}
.lzp-vendor__facts dt{font-weight:700;font-size:1rem;color:var(--lzp-a11y-ink)}
.lzp-vendor__facts dd{margin:0;font-size:1rem;color:var(--lzp-a11y-muted)}
.lzp-vendor__docs{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.lzp-vendor__docs li{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0;border-bottom:1px solid #eee5ea;font-size:1rem}
.lzp-vendor__docs a{font-weight:700;color:var(--lzp-a11y-plum);text-decoration:underline;text-underline-offset:3px;min-height:44px;display:inline-flex;align-items:center}
.lzp-vendor__steps{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;gap:12px}
.lzp-vendor__steps li{counter-increment:s;position:relative;padding-left:44px;font-size:1rem;color:var(--lzp-a11y-muted)}
.lzp-vendor__steps li:before{content:counter(s);position:absolute;left:0;top:-2px;width:30px;height:30px;border-radius:50%;background:var(--lzp-a11y-plum);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.95rem}
.lzp-vendor__note{font-size:.95rem!important;color:var(--lzp-a11y-muted);margin-top:14px}
.lzp-purchasing-page{max-width:1240px;margin:auto;padding:34px clamp(16px,3.4vw,46px) 90px}
@media(max-width:900px){.lzp-vendor__grid{grid-template-columns:1fr}.lzp-vendor__facts{grid-template-columns:1fr}.lzp-vendor__facts dd{margin-bottom:8px}}

/* ---------- Reduced motion (2.3.3) ---------- */
@media (prefers-reduced-motion: reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .lzp-button:hover,.lzp-collection:hover,.lzp-feature:hover,.lzp-product:hover,.b2b-catalog .b2b-button:hover{transform:none!important}
}
