/* Hallmark · genre: editorial/reference · macrostructure: Catalogue · theme: studied-DNA (source: lightinspiration.it) · tone: precise, warm, useful · anchor hue: cyan · enrichment: original technical figures · nav: existing · footer: existing · contrast: pass (40–41) · slop: pass (42–48) · mobile: pass (34, 49–57) */
/* Hallmark · pre-emit critique: P5 H5 E5 S5 R5 V5 */
html,
body.li-lighting-glossary-page { overflow-x: clip; }

.li-glossary {
  --gl-paper: var(--paper);
  --gl-soft: var(--paper-soft);
  --gl-blue: var(--paper-blue);
  --gl-ink: var(--ink);
  --gl-copy: var(--ink-soft);
  --gl-muted: var(--muted);
  --gl-rule: var(--rule);
  --gl-accent: var(--accent);
  width: 100%;
  min-width: 0;
  color: var(--gl-ink);
  font-family: var(--font-body);
}

.li-lighting-glossary-page .li-entry-shell > .elementor-widget-theme-post-content,
.li-lighting-glossary-page .li-lighting-glossary-page-body,
.li-lighting-glossary-page .li-lighting-glossary-page-body > .elementor-element { width: 100% !important; max-width: none !important; }

.li-glossary h2,
.li-glossary h3 { min-width: 0; margin: 0 !important; padding: 0 !important; color: var(--gl-ink); font-style: normal; overflow-wrap: anywhere; }
.li-glossary h2 { font-family: var(--font-display); font-size: clamp(38px, 4vw, 62px); font-weight: 400; letter-spacing: -.028em; line-height: 1; }

.li-glossary-opening { display: grid; grid-template-columns: minmax(18rem, .9fr) minmax(0, 1.1fr); gap: clamp(var(--space-xl), 8vw, 8rem); align-items: start; padding-block-end: clamp(var(--space-2xl), 8vw, 7rem); }
.li-glossary-opening__label,
.li-glossary-note__label { margin: 0 0 var(--space-md); color: var(--gl-muted); font-size: var(--text-sm); font-weight: 700; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; }
.li-glossary-opening__copy { max-width: 72ch; font-size: clamp(18px, 1.45vw, 22px); line-height: 1.58; }

.li-glossary-prose { max-width: 70ch; color: var(--gl-copy); font-size: 17px; line-height: 1.65; }
.li-glossary-prose > :first-child { margin-top: 0; }
.li-glossary-prose > :last-child { margin-bottom: 0; }
.li-glossary-prose p { margin-block: 0 var(--space-md); }
.li-glossary-prose ul,
.li-glossary-prose ol { margin: var(--space-md) 0; padding-inline-start: var(--space-lg); }
.li-glossary-prose li + li { margin-top: var(--space-xs); }
.li-glossary-prose a { color: var(--gl-ink); font-weight: 700; text-decoration: underline; text-decoration-color: var(--gl-accent); text-decoration-thickness: .125rem; text-underline-offset: .2em; }
.li-glossary-prose img { display: block; width: auto; max-width: 100%; height: auto; margin-block: var(--space-lg); }
.li-glossary-prose figure { max-width: 100%; margin: var(--space-lg) 0; }
.li-glossary-prose figcaption { margin-top: var(--space-xs); color: var(--gl-muted); font-size: var(--text-sm); line-height: 1.5; }
.li-glossary-prose table { width: 100% !important; max-width: 100%; margin-block: var(--space-lg); border-collapse: collapse; table-layout: fixed; }
.li-glossary-prose th,
.li-glossary-prose td { width: auto !important; padding: var(--space-sm); border-bottom: var(--rule-hair) solid var(--gl-rule); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.li-glossary-prose tr:first-child td { color: var(--gl-ink); font-weight: 700; }
.li-glossary-prose td:first-child { width: 4rem !important; }
.li-glossary-prose blockquote { margin: var(--space-lg) 0; padding-inline-start: var(--space-lg); border-inline-start: .125rem solid var(--gl-accent); }

.li-glossary-tools { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: clamp(var(--space-xl), 8vw, 8rem); align-items: end; padding: clamp(var(--space-lg), 4vw, var(--space-2xl)); background: var(--gl-soft); }
.li-glossary-search label { display: block; margin-bottom: var(--space-sm); color: var(--gl-ink); font-size: var(--text-sm); font-weight: 700; }
.li-glossary-search__control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-sm); align-items: center; }
.li-glossary-search input,
.li-glossary-search button { min-height: 48px; border-radius: 0; outline: 2px solid transparent; outline-offset: 1px; font: inherit; }
.li-glossary-search input { width: 100%; min-width: 0; padding: 0 16px; border: 0 !important; border-bottom: 1px solid var(--gl-ink) !important; background: transparent !important; color: var(--gl-ink); font-size: 16px; }
.li-glossary-search input::placeholder { color: var(--gl-muted); opacity: 1; }
.li-glossary-search button { padding-inline: 16px; border: 0 !important; background: transparent !important; color: var(--gl-copy) !important; cursor: pointer; font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.li-glossary-search button:disabled { opacity: .55; cursor: not-allowed; }
.li-glossary-search__status { min-height: 1.4em; margin: 16px 0 0; color: var(--gl-muted); font-size: 13px; }
.li-glossary-alphabet > span { display: block; margin-bottom: var(--space-sm); color: var(--gl-muted); font-size: var(--text-sm); font-weight: 700; }
.li-glossary-alphabet > div { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-sm); align-items: center; }
.li-glossary-alphabet a { display: inline-grid; min-width: 24px; min-height: 24px; place-items: center; color: var(--gl-ink); font-size: 13px; font-weight: 700; line-height: 1; text-decoration: none; }

.li-glossary-catalogue { padding-block: clamp(var(--space-2xl), 8vw, 7rem); }
.li-glossary-group { display: grid; grid-template-columns: minmax(70px, .35fr) minmax(0, 3.65fr); gap: clamp(24px, 5vw, 72px); padding-block: clamp(28px, 4vw, 48px); scroll-margin-top: 150px; border-top: 1px solid var(--gl-rule); }
.li-glossary-group:first-child { border-top: 0; padding-top: 0; }
.li-glossary-group + .li-glossary-group { margin-top: 0; }
.li-glossary-group__letter { color: var(--gl-accent) !important; font-size: clamp(42px, 5vw, 72px) !important; line-height: .9 !important; }
.li-glossary-group__terms { min-width: 0; }
.li-glossary-term { scroll-margin-top: 8rem; border-bottom: var(--rule-hair) solid var(--gl-rule); }
.li-glossary-term summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: center; width: 100%; max-width: 70ch; min-height: 64px; padding-block: 20px; color: var(--gl-ink); cursor: pointer; list-style: none; }
.li-glossary-term summary::-webkit-details-marker { display: none; }
.li-glossary-term summary::marker { content: ""; }
.li-glossary-term summary h3 { font-family: var(--font-body) !important; font-size: clamp(17px, 1.4vw, 20px) !important; font-weight: 600 !important; letter-spacing: 0 !important; line-height: 1.25 !important; }
.li-glossary-term summary span { display: grid; width: 1.5rem; height: 1.5rem; place-items: center; justify-self: end; color: var(--gl-ink); line-height: 1; }
.li-glossary-term summary span::before { content: none; }
.li-glossary-term summary span::after { display: grid; width: 1rem; height: 1rem; place-items: center; color: var(--gl-ink); content: "+"; font-size: 20px; font-weight: 400; line-height: 1; }
.li-glossary-term[open] summary span::before { content: none; }
.li-glossary-term[open] summary span::after { content: "−"; }
.li-glossary-term__definition { padding: 0 var(--space-2xl) var(--space-xl) 0; }
.li-glossary-empty { margin: 0; padding-block: var(--space-xl); border-block: var(--rule-hair) solid var(--gl-rule); color: var(--gl-copy); font-size: 1.125rem; }

.li-glossary-note { display: grid; grid-template-columns: minmax(18rem, .8fr) minmax(0, 1.2fr); gap: clamp(var(--space-xl), 8vw, 8rem); padding: clamp(var(--space-xl), 6vw, 5rem); background: var(--gl-blue); }
.li-glossary-note__body { min-width: 0; }
.li-glossary-contact { display: inline-flex; gap: var(--space-sm); align-items: center; min-height: 2.75rem; margin-top: var(--space-lg); color: var(--gl-ink); font-weight: 700; line-height: 1; text-decoration: underline; text-decoration-color: var(--gl-accent); text-decoration-thickness: .125rem; text-underline-offset: .25rem; }

.li-glossary-search input:focus-visible,
.li-glossary-search button:focus-visible,
.li-glossary-alphabet a:focus-visible,
.li-glossary-term summary:focus-visible,
.li-glossary-prose a:focus-visible,
.li-glossary-contact:focus-visible { outline: .125rem solid var(--gl-accent); outline-offset: .1875rem; }
.li-glossary-search button:active,
.li-glossary-alphabet a:active,
.li-glossary-term summary:active,
.li-glossary-contact:active { color: var(--accent-ink); }
.li-glossary-alphabet a[aria-disabled="true"],
.li-glossary-contact[aria-disabled="true"] { opacity: .55; cursor: not-allowed; pointer-events: none; }

@media (hover: hover) and (pointer: fine) {
  .li-glossary-search button:not(:disabled):hover,
  .li-glossary-alphabet a:hover,
  .li-glossary-contact:hover { color: var(--accent-ink); }
  .li-glossary-term summary:hover h3 { color: var(--accent-ink); text-decoration: underline; text-decoration-color: var(--gl-accent); text-decoration-thickness: 1px; text-underline-offset: 2px; }
  .li-glossary-term summary:hover span { color: var(--gl-ink); }
}

@media (max-width: 59.99rem) {
  .li-glossary-opening,
  .li-glossary-tools,
  .li-glossary-note { grid-template-columns: minmax(0, 1fr); }
  .li-glossary-group { grid-template-columns: minmax(4rem, .2fr) minmax(0, 1.8fr); gap: var(--space-xl); }
}

@media (max-width: 40rem) {
  .li-glossary-opening { padding-block-end: var(--space-2xl); }
  .li-glossary-tools { margin-inline: calc(-1 * var(--space-md)); padding: var(--space-lg) var(--space-md); }
  .li-glossary-search__control { grid-template-columns: minmax(0, 1fr); }
  .li-glossary-search button { justify-self: start; }
  .li-glossary-catalogue { padding-block: var(--space-2xl); }
  .li-glossary-group { grid-template-columns: minmax(0, 1fr); gap: var(--space-sm); }
  .li-glossary-group__letter { font-size: 2.5rem !important; }
  .li-glossary-term summary { min-height: 4.5rem; }
  .li-glossary-term__definition { padding-right: 0; }
  .li-glossary-note { margin-inline: calc(-1 * var(--space-md)); padding: var(--space-xl) var(--space-md); }
}

@media (prefers-reduced-motion: reduce) {
  .li-glossary-term summary { scroll-behavior: auto; }
}
