/* ── LIBRARY OF SYMBOLS — responsive CSS ──
   Source of truth: Figma "💙 LIBRARY OF SYMBOLS - edited down symbols"

   Breakpoints:
     Mobile   (< 768px) : 2 columns · card 180×220px fixed
     Fluid   (768–1440px): 5 columns · cards scale with viewport (≈12.5vw wide)
     Desktop  (≥ 1440px): 5 columns · card 180×220px fixed

   Figma anchors verified:
     390px  → card 180×220, niche 37/24/106/170, label bottom 22px, gap 14px, pad 8px
     1080px → card 135×165 (×0.75), niche 27.75/18/79.5/127.5, gap 37.5px, pad 127.5px
     1440px → card 180×220, niche 37/24/106/170, gap 50px, pad 170px

   Card width = 12.5vw in fluid range (12.5% × 1080 = 135 ✓, 12.5% × 1440 = 180 ✓)
   All card-interior vw values derived from: dimension/180 × 12.5vw

   Grid layout (768px+): flexbox with justify-content: center so the last partial
   row (4 of 5 symbols) is centered, matching the Figma design exactly.
   Full rows of 5 fill 100% and are unaffected.

   !important usage:
   - h1 font-size/line-height/letter-spacing: WP Global Styles injects these !important.
   - hero margin: style.css 0,3,0 !important — h1 tag selector → 0,3,1 wins.
   - hero padding: style.css 0,1,0 — .los-page .los-hero → 0,2,0 wins.
   - grid max-width: #los-grid id (1,0,0) beats class/element sources.

   Updated 2026-08-02: all clamp() formulas updated to 320→1920px range (divisor 1600).
*/

/* ── PAGE CONTAINER ──────────────────────────────────────────── */
.los-page {
  padding-top: var(--alq-header-h);
}

/* ── HERO ────────────────────────────────────────────────────── */
.los-hero {
  background: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  min-height: clamp(208px, calc(208px + 88 * (100vw - 320px) / 1600), 296px);
  box-sizing: border-box;
  padding-top: clamp(32px, calc(32px + 62 * (100vw - 320px) / 1600), 94px);
  padding-bottom: 39px;
  gap: clamp(8px, calc(8px + 8 * (100vw - 320px) / 1600), 16px);
}

/* Hero title — italic Display: 32px (390px) → 64px (1440px) */
.los-hero .los-hero__title {
  font-family: 'Montserrat', sans-serif !important;
  font-style: italic;
  font-weight: 400 !important;
  text-align: center;
  letter-spacing: 0 !important;
  color: #000000;
  margin: 0 !important;
  padding: 0;
  font-size: clamp(32px, calc(32px + 32 * (100vw - 320px) / 1600), 64px) !important;
  line-height: clamp(38px, calc(38px + 40 * (100vw - 320px) / 1600), 78px) !important;
}

/* Title line break helper — forces "Let Your" / "Intuition Choose" split at mobile */
.los-title-br {
  display: block;
}
@media (min-width: 900px) {
  .los-title-br { display: none; }
}

/* Hero subtitle — Light: 22px (390px) → 45px (1440px) */
.los-hero__subtitle {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  text-align: center;
  margin: 0;
  padding: 0;
  color: #000000;
  font-size: clamp(22px, calc(22px + 23 * (100vw - 320px) / 1600), 45px);
  line-height: clamp(28px, calc(28px + 28 * (100vw - 320px) / 1600), 56px);
}

/* ── DECK BAR ────────────────────────────────────────────────── */
.los-deck-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #fafafa;
  border-top: 0.5px solid rgba(0, 0, 0, 0.1);
  border-bottom: 0.5px solid rgba(0, 0, 0, 0.1);
  height: clamp(48px, calc(48px + (52 - 48) * ((100vw - 320px) / 1600)), 52px);
  gap: clamp(32px, calc(32px + (109 - 32) * ((100vw - 320px) / 1600)), 109px);
}

.los-deck-bar__option {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 500;
  text-transform: uppercase;
  font-size: 13px;
  line-height: 15px;
  color: #000000;
  letter-spacing: clamp(0px, calc(1.8 * ((100vw - 320px) / 1600)), 1.8px);
  cursor: pointer;
}

.los-deck-bar__option input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.los-deck-bar__option:has(input:checked) { color: #0b40b4; }

.los-deck-bar__dot {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid #000000;
  background: transparent;
  flex-shrink: 0;
}

.los-deck-bar__option:has(input:checked) .los-deck-bar__dot {
  background: #0b40b4;
  border-color: #0b40b4;
}

/* ── FILTER NAVIGATION ───────────────────────────────────────── */

/* Nav = height container + position context for the underline */
.los-filter-nav {
  position: relative;
  height: clamp(48px, calc(48px + (64 - 48) * ((100vw - 320px) / 1600)), 64px);
}

/* Scroll wrapper = flex row with the buttons */
.los-filter-nav__scroll {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  gap: clamp(33px, calc(33px + (53.5 - 33) * ((100vw - 320px) / 1600)), 53.5px);
}

@media (max-width: 767px) {
  .los-filter-nav__scroll {
    overflow-x: auto;
    overflow-y: hidden;
    justify-content: flex-start;
    padding-left: 16px;
    padding-right: 16px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .los-filter-nav__scroll::-webkit-scrollbar { display: none; }
}

.los-filter-nav__label {
  position: relative;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  white-space: nowrap;
  color: rgba(0, 0, 0, 0.35);
  font-size: 13px;
  line-height: 15px;
  letter-spacing: clamp(0px, calc(2.5 * ((100vw - 320px) / 1600)), 2.5px);
}

.los-filter-nav__label--active { color: #0b40b4; }

.los-filter-nav__label--active::after {
  content: '';
  position: absolute;
  left: -1px;
  right: clamp(-1px, calc(2.5 * ((100vw - 320px) / 1600) - 1px), 1.5px);
  height: 2px;
  background: #0b40b4;
  bottom: -2.5px;
}

/* Active underline — pure CSS ::after on the button, no JS needed */

/* ── SYMBOL GRID ─────────────────────────────────────────────── */

/* Mobile default: 2 fixed-size columns, centred */
.los-grid {
  display: grid;
  background: #ffffff;
  box-sizing: border-box;
  grid-template-columns: repeat(2, 180px);
  justify-content: center;
  column-gap: 14px;
  row-gap: 28px;
  padding: 0 8px;
}

/* 5-column fluid layout: 768px → 1440px
   Uses flexbox so justify-content: center genuinely centers the partial
   last row (4 symbols), matching the Figma design.
   Full rows of 5 fill exactly 100% — identical appearance to before.

   column-gap   : 50px@1440 → 37.5px@1080 → 26px@768  (3.472vw)
   padding H    : 170px@1440 → 127.5px@1080 → 91px@768 (11.806vw)
   padding-top  : 54px@1440 → 40.5px@1080 → 29px@768   (3.75vw)
   padding-bottom: 80px@1440 → 60px@1080 → 43px@768    (5.556vw) */
@media (min-width: 768px) {
  .los-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    column-gap:     clamp(26px,  3.472vw, 50px);
    row-gap:        clamp(26px,  3.472vw, 50px);
    padding-left:   clamp(91px, 11.806vw, 170px);
    padding-right:  clamp(91px, 11.806vw, 170px);
    padding-top:    clamp(29px,  3.75vw,  54px);
    padding-bottom: clamp(43px,  5.556vw, 80px);
  }
}

/* ── SYMBOL CARD ─────────────────────────────────────────────── */

/* Mobile: fixed dimensions */
.los-card {
  width: 180px;
  height: 220px;
  background: #ffffff;
  position: relative;
  text-align: center;
  text-decoration: none;
  display: block;
  cursor: pointer;
  box-shadow:
    0 4px 14px rgba(0, 0, 0, 0.07),
    0 1px 3px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.3s ease;
}

/* 5-col: flex-basis = (container - 4 gaps) / 5; aspect-ratio drives height */
@media (min-width: 768px) {
  .los-card {
    flex: 0 0 calc((100% - 4 * clamp(26px, 3.472vw, 50px)) / 5);
    width: auto;
    height: auto;
    aspect-ratio: 180 / 220;
  }
}

/* ── CARD NICHE ──────────────────────────────────────────────── */

/* Mobile: fixed px — matches Figma 390px frame (left 37, top 24, w 106, h 170) */
.los-card__niche {
  position: absolute;
  left:   37px;
  top:    24px;
  width:  106px;
  height: 170px;
}

/* 5-col: scale with card width (≈12.5vw)
   left   = 37/180 × 12.5vw  = 2.569vw  → 37px@1440, 27.75px@1080
   top    = 24/180 × 12.5vw  = 1.667vw  → 24px@1440, 18px@1080, 12.8px@768
   width  = 106/180 × 12.5vw = 7.361vw  → 106px@1440, 79.5px@1080
   height = 170/180 × 12.5vw = 11.806vw → 170px@1440, 127.5px@1080 */
@media (min-width: 768px) {
  .los-card__niche {
    left:   clamp(19.7px,  2.569vw,  37px);
    top:    clamp(12.8px,  1.667vw,  24px);
    width:  clamp(56.6px,  7.361vw, 106px);
    height: clamp(90.7px, 11.806vw, 170px);
  }
}

/* Desktop cap: back to fixed px */
@media (min-width: 1440px) {
  .los-card__niche {
    left:   37px;
    top:    24px;
    width:  106px;
    height: 170px;
  }
}

/* ── CARD ARCH ───────────────────────────────────────────────── */
.los-card__arch {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 20px;  /* icon sits 20px from arch bottom — matches Figma */
  background: linear-gradient(180deg, #f6f6fa 0%, #ffffff 100%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  width: 100%;
  height: 81.18%;        /* 138/170 of niche height */
  border-radius: 53px 53px 0 0;
}

/* 5-col: radius = 53/106 of niche width = 50% of niche width
   53/180 × 12.5vw = 3.681vw → 53px@1440, 39.75px@1080, 28.27px@768 */
@media (min-width: 768px) {
  .los-card__arch {
    padding-bottom: clamp(10.7px, 1.389vw, 20px); /* scales with card: 20px@1440, ~10.7px@768 */
    border-radius:
      clamp(28.3px, 3.681vw, 53px)
      clamp(28.3px, 3.681vw, 53px)
      0 0;
  }
}

@media (min-width: 1440px) {
  .los-card__arch {
    padding-bottom: 20px;
    border-radius: 53px 53px 0 0;
  }
}

/* SVG / image inside arch — % sizes scale with arch automatically */
.los-card__arch svg,
.los-card__arch img {
  display: block;
  fill: #1a1f33;
  stroke: #1a1f33;
  max-width: 51%;
  max-height: 36%;
  width: auto;
  height: auto;
  object-fit: contain;
  transition: transform 0.3s ease, fill 0.3s ease, filter 0.3s ease;
}

/* ── CARD LABEL ──────────────────────────────────────────────── */

/* bottom: 22px / 220px = 10% — works at all card heights (fixed or aspect-ratio) */
.los-card__label {
  position: absolute;
  bottom: 10%;
  left: 0;
  width: 100%;
  text-align: center;
  text-transform: uppercase;
  font-family: 'Montserrat', sans-serif;
  font-weight: 400;
  font-size: 9px;
  line-height: 1.3;
  letter-spacing: 2px;
  color: rgba(0, 0, 0, 0.28);
  transition: color 0.3s ease;
}

/* 5-col: font scales with card (9px at 180px card = 0.625vw; floor 6px) */
@media (min-width: 768px) {
  .los-card__label {
    font-size: clamp(6px, 0.625vw, 9px);
    letter-spacing: clamp(1px, 0.139vw, 2px);
  }
}

@media (min-width: 1440px) {
  .los-card__label {
    font-size: 9px;
    letter-spacing: 2px;
    color: rgba(0, 0, 0, 0.28);
  }
}

/* ── HOVER STATES ────────────────────────────────────────────── */
.los-card:hover {
  box-shadow: 0 10px 36px rgba(11, 64, 180, 0.16), 0 4px 12px rgba(0, 0, 0, 0.08);
}
.los-card:hover .los-card__arch {
  background: linear-gradient(180deg, #f4f5fc 0%, #ffffff 100%);
  border-color: #0b40b4;
}
.los-card:hover .los-card__arch svg {
  fill: #0b40b4;
  stroke: #0b40b4;
  transform: scale(1.15);
}
.los-card:hover .los-card__arch img {
  filter: brightness(0) saturate(100%) invert(38%) sepia(100%) saturate(492%) hue-rotate(183deg) brightness(69%) contrast(136%);
  transform: scale(1.15);
}
.los-card:hover .los-card__label { color: #0b40b4; }

/* ── SPECIFICITY OVERRIDES ────────────────────────────────────── */
.los-page .los-hero h1.los-hero__title {
  margin: 0 !important;
  padding: 0 !important;
}
.los-page .los-hero {
  padding-bottom: 39px;
  padding-left: 0;
  padding-right: 0;
}
#los-grid {
  max-width: 1440px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}
