/* ================================================================
   LAYOUT
   Grid system, sections, and structural containers.
   ================================================================ */

/* --- Section wrapper --- */
.sec {
  padding: var(--space-2xl) var(--page-gutter);
  position: relative;
}

/* --- Section header (title + see-all) --- */
.sec__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 44px;
}

/* --- Grid system --- */
.grid {
  display: grid;
  gap: 2px;
}

.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--mag { grid-template-columns: 2fr 1fr; }
.grid--trip { grid-template-columns: 1.6fr 1fr 1fr; }

/* --- Duo-tone category banner --- */
.duo-banner {
  background: var(--clr-green);
  padding: 56px var(--page-gutter);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
}

.duo-tile {
  padding: 32px 28px;
  background: var(--clr-green-deep);
  cursor: pointer;
  transition: all .2s;
  position: relative;
  overflow: hidden;
}

.duo-tile:hover,
.duo-tile:focus-visible {
  background: var(--clr-green-mid);
}

.duo-tile::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--clr-chartreuse);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .25s;
}

.duo-tile:hover::before,
.duo-tile:focus-visible::before {
  transform: scaleX(1);
}

.duo-tile__icon {
  font-size: 32px;
  margin-bottom: var(--space-md);
  filter: grayscale(100%) brightness(3);
}

.duo-tile__label {
  font-family: var(--ff-display);
  font-size: 28px;
  letter-spacing: .06em;
  color: var(--clr-chartreuse);
  margin-bottom: 6px;
}

.duo-tile__count {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(200, 240, 0, .4);
}

.duo-tile__arrow {
  position: absolute;
  bottom: 20px;
  right: 20px;
  font-size: 22px;
  color: rgba(200, 240, 0, .2);
  transition: all .2s;
}

.duo-tile:hover .duo-tile__arrow {
  color: var(--clr-chartreuse);
  transform: translate(4px, -4px);
}

/* --- Horizontal scroll strip --- */
.hscroll-wrap {
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.hscroll-wrap::-webkit-scrollbar { display: none; }

.hscroll {
  display: flex;
  gap: 2px;
  width: max-content;
  padding: 0 var(--page-gutter) 2px;
}
