/* =========================================================
   TEAM-BUILDING ACTIVITIES — Homepage
   Design tokens
   ========================================================= */
:root {
  /* Palette */
  --bg: #F4EDE4;            /* page cream */
  --ink: #2A1A1F;           /* deep aubergine / brown */
  --ink-2: #3A2329;         /* surface */
  --ink-3: #4A2D34;         /* hover surface */
  --line: rgba(244, 237, 228, 0.14);
  --cream: #F4EDE4;
  --cream-dim: #E8DDCB;

  /* Accents */
  --orange: #E8612B;
  --orange-soft: #F2D9C9;
  --lime: #C8E26A;
  --lime-deep: #8FB13A;
  --rose: #F2D9C9;
  --yellow: #F1C84B;
  --green-card: #BFE07A;
  --rust-card: #C9462A;
  --rose-card: #F1D7CB;

  /* Type */
  --font-display: "Archivo Black", "Anton", "Bebas Neue", Impact, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;

  /* Radii */
  --r-xl: 32px;
  --r-lg: 28px;
  --r-md: 24px;
  --r-sm: 16px;
  --r-pill: 999px;

  /* Spacing */
  --gap: 20px;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; border: none; background: none; }
a { color: inherit; text-decoration: none; }

/* =========================================================
   Layout shell
   ========================================================= */
.page {
  max-width: 1320px;
  margin: 0 auto;
  padding: 24px 24px 80px;
}

/* =========================================================
   HERO container — dark rounded slab (second position, no notch)
   ========================================================= */
.hero {
  position: relative;
  background: var(--ink);
  border-radius: var(--r-xl);
  color: var(--cream);
  padding: 36px 36px 40px;
  overflow: hidden;
  isolation: isolate;
  margin-top: 24px;
}

/* ---- Top bar (lives inside .search-block now) ----------------------- */
.topbar {
  display: flex;
  align-items: center;
  gap: 32px;
  position: relative;
  z-index: 2;
  grid-column: 1 / -1;        /* span both grid columns inside search-block */
  margin: -8px 0 18px;
}

.brand {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 0.95;
  letter-spacing: 0.5px;
  color: var(--cream);
  white-space: nowrap;
  display: flex;
  flex-direction: column;
}
.brand .dot { color: var(--orange); }
.brand .brand-sub {
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 3px;
  color: var(--orange);
  margin-top: 3px;
}

.nav {
  display: flex;
  gap: 28px;
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-left: 24px;
}
.nav a {
  position: relative;
  color: var(--cream);
  opacity: 0.85;
  transition: opacity .15s;
}
.nav a:hover { opacity: 1; }
.nav a.active::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -8px;
  height: 2px;
  background: var(--orange);
  border-radius: 2px;
}
.nav .has-caret::after {
  content: "▾";
  margin-left: 6px;
  font-size: 10px;
  opacity: 0.7;
}

.topbar-spacer { flex: 1; }

.cta-quote {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  border: 1.5px solid var(--orange);
  border-radius: var(--r-pill);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.02em;
  color: var(--cream);
  background: transparent;
  transition: background .15s, color .15s;
  position: relative;
  z-index: 3;
}
.cta-quote:hover { background: var(--orange); color: var(--ink); }

.cta-bubble {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--orange);
  display: grid;
  place-items: center;
  font-size: 14px;
  color: #fff;
}

/* ---- Hero body grid --------------------------------------------------- */
.hero-body {
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 1fr);
  align-items: stretch;
  gap: 72px;
  margin-top: 36px;
  position: relative;
}

/* Left side modules ---------------------------------------------------- */
.side-modules {
  display: flex;
  flex-direction: column;
  gap: 36px;
  padding-top: 8px;
}

.side-module {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.curve-arrow {
  width: 140px;
  height: 28px;
  margin-bottom: -8px;
  opacity: 0.85;
}

.module-icon {
  width: 88px;
  height: 88px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  position: relative;
}
.module-icon.lime { background: var(--lime); }
.module-icon.rose { background: var(--rose); }

.module-icon svg { width: 50px; height: 50px; }

.module-label {
  font-family: var(--font-display);
  font-size: 13px;
  line-height: 1.25;
  letter-spacing: 0.06em;
  color: var(--cream);
  text-transform: uppercase;
  max-width: 180px;
}

.pager {
  display: inline-flex;
  background: var(--orange);
  border-radius: var(--r-pill);
  padding: 6px 8px;
  gap: 4px;
  margin-top: 4px;
}
.pager button {
  width: 26px; height: 26px;
  border-radius: 999px;
  display: grid; place-items: center;
  color: var(--ink);
  font-size: 14px;
  transition: background .15s;
}
.pager button:hover { background: rgba(0,0,0,0.12); }

/* Center photo ---------------------------------------------------------- */
.hero-photo {
  position: relative;
  align-self: stretch;
  min-height: 460px;
}
.photo-frame {
  position: absolute;
  inset: 0;
  border-radius: var(--r-lg);
  background:
    radial-gradient(120% 80% at 50% 100%, rgba(232,97,43,0.18), transparent 60%),
    linear-gradient(180deg, #4A2D34, #3A2329);
  overflow: hidden;
}
.photo-frame .photo-tag {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 3;
  font-family: ui-monospace, "SF Mono", Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: rgba(244,237,228,0.85);
  text-transform: uppercase;
  background: rgba(0,0,0,0.45);
  padding: 6px 12px;
  border-radius: var(--r-pill);
  backdrop-filter: blur(6px);
}
.photo-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  border-radius: var(--r-lg);
}
.confetti {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 2;
}

/* Right text block ------------------------------------------------------ */
.hero-text { padding-top: 4px; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--ink-2);
  border: 1px solid var(--line);
  padding: 8px 16px 8px 10px;
  border-radius: var(--r-pill);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--cream);
  margin-bottom: 22px;
}
.eyebrow .eyebrow-icon {
  width: 22px; height: 22px;
  border-radius: 999px;
  background: var(--lime);
  display: grid; place-items: center;
  color: var(--ink);
  font-size: 12px;
}

.hero-title {
  font-family: var(--font-display);
  font-size: clamp(48px, 6.4vw, 92px);
  line-height: 0.88;
  letter-spacing: -0.01em;
  text-transform: uppercase;
  color: var(--cream);
  margin: 0 0 28px;
  font-weight: 900;
  font-stretch: condensed;
}
.hero-title .accent-chip {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--yellow);
  color: var(--ink);
  padding: 4px 18px 6px;
  border-radius: 18px;
  vertical-align: middle;
  font-size: 0.78em;
  margin: 0 6px;
  position: relative;
  top: -8px;
}
.hero-title .accent-chip svg { width: 28px; height: 28px; }

.hero-sub {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 28px;
  align-items: center;
  max-width: 640px;
  margin-bottom: 28px;
}
.lets-go {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--cream);
  white-space: nowrap;
}
.lets-go .dot-icon {
  width: 26px; height: 26px;
  border-radius: 999px;
  background: var(--ink-2);
  display: grid; place-items: center;
  border: 1px solid var(--line);
}
.hero-sub p {
  margin: 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: rgba(244,237,228,0.75);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 500;
}

.hero-ctas {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
.btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 22px 14px 24px;
  border-radius: var(--r-pill);
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.02em;
  transition: transform .15s, background .15s, color .15s;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary {
  background: var(--orange);
  color: var(--cream);
}
.btn-primary:hover { background: #ff7038; }
.btn-primary .arrow {
  width: 28px; height: 28px;
  border-radius: 999px;
  background: var(--ink);
  display: grid; place-items: center;
  color: var(--cream);
}
.btn-ghost {
  background: transparent;
  color: var(--cream);
  border: 1.5px solid var(--cream);
}
.btn-ghost:hover {
  background: rgba(244,237,228,0.12);
  border-width: 2px;
}

/* =========================================================
   BELOW HERO — Activewear-style row + 3 colored cards
   ========================================================= */
.below {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: var(--gap);
  margin-top: 28px;
  align-items: stretch;
}

.intro-block {
  padding: 24px 8px 24px 12px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 240px;
}
.intro-block h2 {
  font-family: var(--font-display);
  font-size: 26px;
  line-height: 1.0;
  letter-spacing: -0.005em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0 0 24px;
}
.intro-meta {
  display: flex;
  align-items: center;
  gap: 14px;
}
.avatars {
  display: flex;
}
.avatars .av {
  width: 36px; height: 36px;
  border-radius: 999px;
  border: 2px solid var(--bg);
  margin-left: -10px;
  background-size: cover;
  background-position: center;
}
.avatars .av:first-child { margin-left: 0; }
.av.a1 { background: linear-gradient(135deg, #F1C84B, #E8612B); }
.av.a2 { background: linear-gradient(135deg, #C8E26A, #8FB13A); }
.av.a3 { background: linear-gradient(135deg, #F2D9C9, #C9462A); }

.discover {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-display);
  font-size: 14px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink);
  border-bottom: 2px solid var(--ink);
  padding-bottom: 4px;
  align-self: flex-start;
}
.discover .arrow-up {
  width: 22px; height: 22px;
  display: grid; place-items: center;
}

/* ---- Category cards -------------------------------------------------- */
.cat-card {
  position: relative;
  border-radius: var(--r-lg);
  padding: 22px;
  min-height: 240px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  transition: transform .2s ease;
}
.cat-card:hover { transform: translateY(-4px); }

.cat-card .corner-arrow {
  position: absolute;
  top: 16px; right: 16px;
  width: 36px; height: 36px;
  border-radius: 999px;
  background: rgba(255,255,255,0.6);
  display: grid; place-items: center;
  color: var(--ink);
  backdrop-filter: blur(4px);
}

.cat-card h3 {
  font-family: var(--font-display);
  font-size: 22px;
  line-height: 1.0;
  letter-spacing: -0.005em;
  text-transform: uppercase;
  color: var(--ink);
  margin: 0;
  max-width: 60%;
}

/* Card 1 — Outdoor (lime green) */
.card-outdoor {
  background: var(--green-card);
}
.card-outdoor .top-row {
  display: flex; gap: 8px; align-items: center;
}
.card-outdoor .icon-pill {
  width: 44px; height: 44px;
  background: var(--ink);
  border-radius: 999px;
  display: grid; place-items: center;
  color: var(--lime);
}
.card-outdoor .plus {
  width: 32px; height: 32px;
  background: rgba(0,0,0,0.12);
  border-radius: 999px;
  display: grid; place-items: center;
  color: var(--ink);
  font-size: 18px;
}
.card-outdoor .play {
  margin-left: auto;
  width: 38px; height: 38px;
  background: #fff;
  border-radius: 999px;
  display: grid; place-items: center;
  color: var(--ink);
}
.card-outdoor .stat {
  font-family: var(--font-display);
  font-size: 38px;
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.card-outdoor .stat-label {
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink);
  opacity: 0.75;
  margin-top: 6px;
}
.card-outdoor .grass {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 36px;
  background:
    radial-gradient(8px 14px at 10% 60%, var(--lime-deep) 50%, transparent 51%),
    radial-gradient(8px 16px at 22% 40%, var(--lime-deep) 50%, transparent 51%),
    radial-gradient(8px 14px at 35% 60%, var(--lime-deep) 50%, transparent 51%),
    radial-gradient(8px 18px at 50% 30%, var(--lime-deep) 50%, transparent 51%),
    radial-gradient(8px 14px at 65% 60%, var(--lime-deep) 50%, transparent 51%),
    radial-gradient(8px 16px at 80% 45%, var(--lime-deep) 50%, transparent 51%),
    radial-gradient(8px 14px at 92% 62%, var(--lime-deep) 50%, transparent 51%),
    linear-gradient(to top, var(--lime-deep), transparent);
}

/* Card 2 — Indoor (rust red, grid bg) */
.card-indoor {
  background: var(--rust-card);
  color: var(--cream);
  background-image:
    linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px);
  background-size: 28px 28px;
}
.card-indoor h3 { color: var(--cream); }
.card-indoor .corner-arrow {
  background: rgba(255,255,255,0.18);
  color: var(--cream);
}
.card-indoor .silhouette {
  position: absolute;
  inset: 30% 8% 0 8%;
  display: grid;
  place-items: center;
}
.card-indoor .silhouette svg {
  width: 100%;
  height: 100%;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.35));
}

/* Card 3 — Insolite (rose) */
.card-insolite {
  background: var(--rose-card);
}
.card-insolite .word {
  position: absolute;
  bottom: 18px;
  left: 22px;
  font-family: var(--font-display);
  font-size: 64px;
  line-height: 0.85;
  letter-spacing: -0.02em;
  color: transparent;
  -webkit-text-stroke: 1.5px var(--ink);
  text-transform: uppercase;
  opacity: 0.85;
}
.card-insolite .chip {
  position: absolute;
  background: var(--cream);
  border-radius: var(--r-pill);
  padding: 6px 14px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.card-insolite .chip-1 { top: 64px; right: 28px; }
.card-insolite .chip-2 { bottom: 64px; right: 24px; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1100px) {
  .hero-body {
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
  .below { grid-template-columns: 1fr 1fr; }
  .intro-block { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .page { padding: 12px 12px 60px; }
  .hero { padding: 18px 18px 28px; border-radius: 24px; }

  .nav { display: none; }
  .topbar-spacer { flex: 1; }
  .brand { font-size: 15px; }
  .brand .brand-sub { font-size: 9px; letter-spacing: 2px; }

  .hero-body {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 24px;
  }
  .side-modules {
    flex-direction: row;
    justify-content: space-around;
    gap: 12px;
    order: 3;
  }
  .side-module { gap: 8px; }
  .module-icon { width: 64px; height: 64px; }
  .module-icon svg { width: 36px; height: 36px; }
  .curve-arrow { display: none; }
  .module-label { font-size: 11px; max-width: 130px; }

  .hero-photo { min-height: 320px; order: 2; }
  .photo-frame { height: 360px; inset: auto 0 -20px 0; }

  .hero-text { order: 1; }
  .hero-title {
    font-size: clamp(40px, 11vw, 64px);
  }
  .hero-title .accent-chip {
    padding: 2px 12px 4px;
  }
  .hero-sub {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .below { grid-template-columns: 1fr; }
  .intro-block { min-height: auto; padding: 12px 4px; }
  .cat-card { min-height: 220px; }
}
