/* density-floors.css
   Named exceptions to the 0.80 desktop density scale produced by
   tools/scale-css.mjs.

   Loaded LAST, after every -80.css companion, and only at >=760px (the
   companions themselves are gated on media="(min-width: 760px)", so nothing
   here affects phone layouts).

   Rule applied consistently:
     - A control that was >= 44px tall in the original is held at 44px.
     - A control that was already under 44px keeps its ORIGINAL size rather
       than being inflated to 44px.
   Hairlines (<=2px) and media-query breakpoints are never scaled, so they
   need no entry here. Do not add general scaling corrections to this file;
   change the factor in tools/scale-css.mjs instead. */

/* ---------- homepage (landing.css) ---------- */

/* Search mode tabs: 54/48/46px -> 43.2/38.4/36.8px. Held at 44px. */
.lp-s-tabs { --lp-s-tab-h: 44px; }

/* Search submit: 36px -> 28.8px. Restored to its original 36px, not
   floored to 44px, because it was already under 44px before scaling. */
.lp-s-go { height: 36px; width: 36px; }

/* Page gutter never under 16px. */
.lp-copy { --lp-gutter: max(16px, var(--lp-gutter)); }

/* Skip link keeps a real hit size when focused. */
.lp-skip:focus { min-height: 44px; display: inline-flex; align-items: center; }

/* ---------- shared chrome (site.css) ---------- */

/* Filter / category pills: 44px -> 35.2px. Held at 44px. */
.pills a { min-height: 44px; }

/* Primary and outline buttons: 48px -> 38.4px. Held at 44px. */
.btn-dark, .btn-outline { min-height: 44px; }

/* Compact big-search submit: 50px -> 40px. Held at 44px. */
.bigsearch.compact .btn-accent { min-height: 44px; }

/* Ghost button: 40px -> 32px. Restored to its original 40px; it was
   already under 44px before scaling. */
.btn-ghost { min-height: 40px; }

/* ---------- header (header.css) ---------- */

/* Header search field: 44px -> 35.2px. Held at 44px. */
.site-header .hsearch input { height: 44px; }

/* ---------- contact form (contact.css) ---------- */

/* Text and select fields: 52px -> 41.6px. Held at 44px. The message
   box is excluded: its own 160px -> 128px rule keeps it well clear of
   the floor, and flooring it here would collapse it to 44px. */
.ct-field input,
.ct-field select { min-height: 44px; }

/* ---------- size calculator (size-calculator.css) ---------- */

/* The calculator's geometry is now scaled uniformly with everything else,
   which is what keeps its coupled formulas in step (the scene height clamp
   appears in four places and all four scale together; the figure, skis,
   board and bindings are positioned in percentages computed in JS from the
   artwork's own pixel ratios, so they follow the container exactly).

   One exception: size-calculator.js hardcodes `const THUMB = 18` and uses it
   to place the slider ticks and the value bubble. Scaling the thumb to
   14.4px would leave the JS offset out of step by up to 1.8px at the ends,
   so the thumb and its track row are held at their original size. The
   negative margin is re-derived for the scaled 3.2px track:
   -(18 - 3.2) / 2 = -7.4px. */
.sz-slider input[type="range"] { height: 20px; }
.sz-slider input[type="range"]::-webkit-slider-thumb {
  width: 18px; height: 18px; margin-top: -7.4px;
}
.sz-slider input[type="range"]::-moz-range-thumb {
  width: 18px; height: 18px;
}
