.gn-activity-finder,
.gn-activity-finder *,
.gn-finder-cta,
.gn-finder-cta * { box-sizing: border-box; }

.gn-activity-finder {
  --gn-af-navy: #061b45;
  --gn-af-navy-soft: #12356b;
  --gn-af-blue: #3189ed;
  --gn-af-cyan: #48c9ec;
  --gn-af-water: #dff8ff;
  --gn-af-water-soft: #effcff;
  --gn-af-text: #52677b;
  --gn-af-line: rgba(49, 137, 237, .18);
  width: min(100% - 32px, 920px);
  margin: clamp(28px, 5vw, 64px) auto;
  color: var(--gn-af-text);
  font-family: Ubuntu, Arial, sans-serif;
  line-height: 1.55;
}

.gn-activity-finder--children {
  --gn-af-blue: #d91b8f;
  --gn-af-cyan: #3189ed;
  --gn-af-water: #fce3f3;
  --gn-af-water-soft: #fff2fa;
  --gn-af-line: rgba(217, 27, 143, .2);
}
.gn-activity-finder--children .gn-activity-finder__shell { background: radial-gradient(circle at 100% 0, rgba(217, 27, 143, .14), transparent 24rem), radial-gradient(circle at 0 100%, rgba(49, 137, 237, .12), transparent 24rem), rgba(255, 255, 255, .92); }
.gn-activity-finder--children .gn-activity-finder__shell::after { background: rgba(217, 27, 143, .08); }
.gn-activity-finder--children .gn-activity-finder__brand-mark,
.gn-activity-finder--children .gn-activity-button--primary { background: linear-gradient(135deg, #3189ed, #d91b8f); box-shadow: 0 14px 32px rgba(160, 31, 139, .25); }
.gn-activity-finder--children .gn-activity-finder__progress > span { background: linear-gradient(90deg, #3189ed, #d91b8f); }
.gn-activity-finder--children .gn-activity-option:hover { border-color: rgba(217, 27, 143, .48); box-shadow: 0 18px 45px rgba(160, 31, 139, .13); }
.gn-activity-finder--children .gn-activity-option[aria-checked="true"] { border-color: #d91b8f; box-shadow: 0 15px 40px rgba(160, 31, 139, .17); }

.gn-activity-finder__kicker { display: inline-flex; margin-bottom: 14px; padding: 7px 12px; border-radius: 999px; color: #a20f6a; background: #fff0f9; font-size: 12px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }

.gn-activity-finder :where(button, a) { font: inherit; touch-action: manipulation; }
.gn-activity-finder :where(button, a):focus-visible,
.gn-finder-cta a:focus-visible { outline: 4px solid rgba(49, 137, 237, .42); outline-offset: 4px; }
.gn-activity-finder :where(h1, h2)[tabindex="-1"]:focus { outline: 0; }

.gn-activity-finder__shell {
  position: relative;
  min-height: min(760px, calc(100vh - 56px));
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .92);
  border-radius: 46px;
  background: radial-gradient(circle at 100% 0, rgba(72, 201, 236, .17), transparent 23rem), rgba(255, 255, 255, .9);
  box-shadow: 0 30px 80px rgba(8, 97, 139, .15);
}

.gn-activity-finder__shell::after {
  position: absolute;
  bottom: -100px;
  left: -80px;
  width: 230px;
  height: 230px;
  border-radius: 57% 43% 46% 54% / 44% 56% 44% 56%;
  background: rgba(72, 201, 236, .1);
  content: "";
  pointer-events: none;
}

.gn-activity-finder__top,
.gn-activity-finder__screen { position: relative; z-index: 1; }

.gn-activity-finder__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 30px 38px 18px;
}

.gn-activity-finder__brand { display: inline-flex; align-items: center; gap: 10px; color: var(--gn-af-navy); font-weight: 800; }
.gn-activity-finder__brand-mark { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, var(--gn-af-cyan), var(--gn-af-blue)); box-shadow: 0 10px 24px rgba(49, 137, 237, .24); }
.gn-activity-finder__brand-mark svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.gn-activity-finder__progress-wrap { display: flex; align-items: center; gap: 12px; }
.gn-activity-finder__step-label { min-width: 42px; color: var(--gn-af-navy-soft); font-size: 13px; font-weight: 800; text-align: right; }
.gn-activity-finder__progress { width: 112px; height: 6px; overflow: hidden; border-radius: 999px; background: rgba(49, 137, 237, .12); }
.gn-activity-finder__progress > span { display: block; width: 33.333%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gn-af-cyan), var(--gn-af-blue)); transition: width .35s ease; }

.gn-activity-finder__screen { padding: clamp(24px, 5vw, 54px) clamp(24px, 6vw, 72px) 52px; animation: gn-af-enter .32s ease both; }
.gn-activity-finder__screen[hidden] { display: none; }
.gn-activity-finder :where(h1, h2, h3) { margin: 0; color: var(--gn-af-navy); font-family: "Open Sans", Ubuntu, Arial, sans-serif; letter-spacing: -.035em; line-height: 1.04; }
.gn-activity-finder :where(h1, h2) { max-width: 720px; font-size: clamp(34px, 6vw, 62px); font-style: italic; font-weight: 900; text-transform: uppercase; }
.gn-activity-finder__lead { max-width: 650px; margin: 18px 0 34px; font-size: clamp(17px, 2.2vw, 20px); }

.gn-activity-finder__options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gn-activity-option { display: grid; grid-template-columns: 52px 1fr 24px; align-items: center; width: 100%; min-height: 104px; padding: 20px; border: 1px solid var(--gn-af-line); border-radius: 26px; color: var(--gn-af-navy); background: rgba(255, 255, 255, .9); box-shadow: 0 12px 34px rgba(31, 111, 168, .07); cursor: pointer; text-align: left; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.gn-activity-option:hover { transform: translateY(-3px); border-color: rgba(49, 137, 237, .42); box-shadow: 0 18px 45px rgba(31, 111, 168, .13); }
.gn-activity-option[aria-checked="true"] { border-color: var(--gn-af-blue); box-shadow: 0 15px 40px rgba(49, 137, 237, .17); }
.gn-activity-option__icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 16px; color: var(--gn-af-blue); background: var(--gn-af-water-soft); }
.gn-activity-option__icon svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.gn-activity-option strong { display: block; font-size: 17px; line-height: 1.25; }
.gn-activity-option small { display: block; margin-top: 4px; color: var(--gn-af-text); font-size: 14px; line-height: 1.35; }
.gn-activity-option__check { display: grid; width: 22px; height: 22px; place-items: center; border: 2px solid rgba(49, 137, 237, .32); border-radius: 50%; color: transparent; font-size: 12px; transition: .2s ease; }
.gn-activity-option[aria-checked="true"] .gn-activity-option__check { border-color: var(--gn-af-blue); color: #fff; background: var(--gn-af-blue); }
.gn-activity-finder__back,
.gn-activity-finder__restart { display: inline-flex; min-height: 46px; align-items: center; margin-top: 24px; padding: 0; border: 0; color: var(--gn-af-navy-soft); background: transparent; cursor: pointer; font-weight: 700; }

.gn-activity-finder__results-intro { max-width: 620px; margin: 16px 0 28px; font-size: 18px; }
.gn-activity-result { overflow: hidden; border: 1px solid var(--gn-af-line); border-radius: 30px; background: rgba(255, 255, 255, .96); box-shadow: 0 18px 45px rgba(31, 111, 168, .13); }
.gn-activity-result__main { padding: clamp(24px, 4vw, 38px); }
.gn-activity-result__label { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; color: var(--gn-af-blue); font-size: 13px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.gn-activity-result__label::before { width: 22px; height: 3px; border-radius: 999px; background: var(--gn-af-cyan); content: ""; }
.gn-activity-result h3 { font-size: clamp(28px, 4vw, 42px); font-weight: 900; }
.gn-activity-result__why { max-width: 650px; margin: 12px 0 20px; font-size: 17px; }
.gn-activity-result__facts { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.gn-activity-result__fact { padding: 8px 12px; border: 1px solid var(--gn-af-line); border-radius: 999px; color: var(--gn-af-navy-soft); background: var(--gn-af-water-soft); font-size: 14px; font-weight: 700; }
.gn-activity-result__time { display: grid; grid-template-columns: 42px 1fr; align-items: center; gap: 12px; margin: 0 0 24px; padding: 14px 16px; border-radius: 18px; background: #f7fcff; }
.gn-activity-result__time-icon { display: grid; width: 40px; height: 40px; place-items: center; border-radius: 13px; color: var(--gn-af-blue); background: var(--gn-af-water); font-size: 23px; }
.gn-activity-result__time small { display: block; font-weight: 700; }
.gn-activity-result__time strong { display: block; color: var(--gn-af-navy); }
.gn-activity-result__note { margin: -8px 0 24px; padding-left: 14px; border-left: 3px solid var(--gn-af-blue); color: var(--gn-af-text); font-size: 14px; line-height: 1.5; }
.gn-activity-result__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.gn-activity-button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 9px; padding: 0 22px; border: 1px solid rgba(49, 137, 237, .16); border-radius: 999px; color: var(--gn-af-navy); background: #fff; text-decoration: none; font-weight: 800; }
.gn-activity-button--primary { border: 0; color: #fff; background: linear-gradient(120deg, var(--gn-af-cyan), var(--gn-af-blue)); box-shadow: 0 14px 30px rgba(49, 137, 237, .25); }
.gn-activity-result__alternatives { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--gn-af-line); background: rgba(239, 252, 255, .72); }
.gn-activity-finder--children .gn-activity-result__alternatives { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gn-activity-alternative { padding: 22px 26px; }
.gn-activity-alternative + .gn-activity-alternative { border-left: 1px solid var(--gn-af-line); }
.gn-activity-alternative--recommended { background: linear-gradient(145deg, rgba(49, 137, 237, .08), rgba(217, 27, 143, .08)); }
.gn-activity-alternative small { color: var(--gn-af-blue); font-size: 12px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.gn-activity-alternative strong { display: block; margin-top: 3px; color: var(--gn-af-navy); font-size: 17px; }
.gn-activity-alternative span { display: block; margin-top: 4px; font-size: 14px; }
.gn-activity-alternative__link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; margin-top: 10px; color: var(--gn-af-blue); font-size: 14px; font-weight: 900; text-decoration: none; }
.gn-activity-alternative__link:hover { text-decoration: underline; text-underline-offset: 3px; }
.gn-activity-alternative__link span { display: inline; margin: 0; }

.gn-finder-cta {
  display: grid;
  gap: 24px;
  width: min(100% - 32px, 980px);
  margin: clamp(24px, 4vw, 46px) auto;
  padding: clamp(24px, 4vw, 36px);
  border: 1px solid rgba(49, 137, 237, .16);
  border-radius: 34px;
  color: #52677b;
  background: linear-gradient(135deg, rgba(239, 252, 255, .98), rgba(223, 248, 255, .86));
  box-shadow: 0 23px 58px rgba(31, 111, 168, .14);
  font-family: Ubuntu, Arial, sans-serif;
}
.gn-finder-cta--automatic { display: none; }
.gn-finder-cta--automatic.is-ready { display: grid; }
.gn-finder-cta__copy--wide { max-width: 720px; }
.gn-finder-cta__copy p { margin: 0 0 3px; color: #3189ed; font-size: 12px; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.gn-finder-cta__copy h2 { margin: 0; color: #061b45; font-family: "Open Sans", Ubuntu, Arial, sans-serif; font-size: clamp(24px, 3vw, 36px); font-style: italic; font-weight: 900; letter-spacing: -.025em; line-height: 1.04; text-transform: uppercase; }
.gn-finder-cta__copy span { display: block; margin-top: 7px; font-size: 16px; line-height: 1.45; }
.gn-finder-cta__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gn-finder-choice { display: grid; grid-template-columns: 52px 1fr 28px; align-items: center; gap: 15px; min-height: 132px; padding: 22px; border: 1px solid rgba(49, 137, 237, .18); border-radius: 26px; color: #061b45; background: rgba(255, 255, 255, .9); box-shadow: 0 13px 34px rgba(31, 111, 168, .09); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.gn-finder-choice:hover { transform: translateY(-3px); border-color: rgba(49, 137, 237, .42); box-shadow: 0 19px 44px rgba(31, 111, 168, .15); }
.gn-finder-choice--children { border-color: rgba(217, 27, 143, .22); background: linear-gradient(140deg, rgba(255, 255, 255, .96), rgba(255, 240, 249, .92)); }
.gn-finder-choice--children:hover { border-color: rgba(217, 27, 143, .5); box-shadow: 0 19px 44px rgba(160, 31, 139, .14); }
.gn-finder-choice__icon { display: grid; width: 52px; height: 52px; place-items: center; border-radius: 18px; color: #fff; background: linear-gradient(145deg, #48c9ec, #3189ed); }
.gn-finder-choice--children .gn-finder-choice__icon { background: linear-gradient(145deg, #3189ed, #d91b8f); }
.gn-finder-choice__icon svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.9; }
.gn-finder-choice__copy small { display: block; margin-bottom: 3px; color: #3189ed; font-size: 11px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.gn-finder-choice--children .gn-finder-choice__copy small { color: #a20f6a; }
.gn-finder-choice__copy strong { display: block; font-family: "Open Sans", Ubuntu, Arial, sans-serif; font-size: clamp(18px, 2vw, 23px); font-style: italic; font-weight: 900; line-height: 1.1; text-transform: uppercase; }
.gn-finder-choice__copy > span { display: block; margin-top: 7px; color: #52677b; font-size: 14px; line-height: 1.35; }
.gn-finder-choice__arrow { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #3189ed; background: #effcff; font-weight: 900; }
.gn-finder-choice--children .gn-finder-choice__arrow { color: #a20f6a; background: #fff0f9; }

@keyframes gn-af-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

@media (min-width: 768px) {
  .gn-activity-finder {
    width: min(1180px, calc(100vw - 48px));
    max-width: none;
    margin: clamp(28px, 5vw, 64px) 0;
    margin-left: 50%;
    transform: translateX(-50%);
  }
  .gn-activity-finder__top { padding-right: clamp(42px, 5vw, 66px); padding-left: clamp(42px, 5vw, 66px); }
  .gn-activity-finder__screen { padding-right: clamp(52px, 7vw, 94px); padding-left: clamp(52px, 7vw, 94px); }
  .gn-activity-finder :where(h1, h2) { max-width: 880px; }
  .gn-activity-finder__lead { max-width: 780px; }
  .gn-activity-result__why { max-width: 820px; }
  .gn-finder-cta { width: min(1180px, calc(100vw - 48px)); }
}

@media (max-width: 767px) {
  .gn-activity-finder {
    width: 100vw;
    max-width: none;
    margin: 0 0 0 calc(50% - 50vw);
  }
  .gn-activity-finder__shell { min-height: 100vh; border: 0; border-radius: 0; box-shadow: none; }
  .gn-activity-finder__top { padding: 22px 20px 8px; }
  .gn-activity-finder__brand > span:last-child { display: none; }
  .gn-activity-finder__screen { padding: 34px 20px 38px; }
  .gn-activity-finder :where(h1, h2) { font-size: clamp(36px, 11vw, 48px); }
  .gn-activity-finder__lead { margin-bottom: 26px; font-size: 17px; }
  .gn-activity-finder__options { grid-template-columns: 1fr; gap: 12px; }
  .gn-activity-option { min-height: 88px; padding: 16px; border-radius: 22px; }
  .gn-activity-option small { font-size: 13px; }
  .gn-activity-result { border-radius: 26px; }
  .gn-activity-result__main { padding: 24px 20px; }
  .gn-activity-result__actions { display: grid; grid-template-columns: 1fr; }
  .gn-activity-result__alternatives { grid-template-columns: 1fr; }
  .gn-activity-finder--children .gn-activity-result__alternatives { grid-template-columns: 1fr; }
  .gn-activity-alternative + .gn-activity-alternative { border-top: 1px solid var(--gn-af-line); border-left: 0; }
  .gn-finder-cta { gap: 18px; width: calc(100% - 32px); padding: 22px 18px; border-radius: 28px; }
  .gn-finder-cta__copy h2 { font-size: clamp(24px, 8vw, 32px); }
  .gn-finder-cta__copy span { font-size: 15px; }
  .gn-finder-cta__choices { grid-template-columns: 1fr; gap: 12px; }
  .gn-finder-choice { grid-template-columns: 46px 1fr 26px; min-height: 112px; padding: 17px 15px; border-radius: 22px; }
  .gn-finder-choice__icon { width: 46px; height: 46px; border-radius: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .gn-activity-finder *, .gn-activity-finder *::before, .gn-activity-finder *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
