.fr-hero.page-hero{min-height:380px}
.fr-hero .wrap{padding:40px 0 88px}
.fr-hero h1{max-width:16ch}
.fr-hero .page-hero-lead{
  color:rgba(255,255,255,.74);
  font-size:15.5px;
}
.fr-hero-benefit{
  color:#fff;
  font-weight:800;
  font-size:1.08em;
}
.fr-hero-meter{
  display:inline-flex;
  align-items:baseline;
  gap:10px;
  margin:18px 0 0;
  padding:10px 16px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  backdrop-filter:blur(8px);
}
.fr-hero-meter strong{
  font-family:var(--serif);
  font-size:1.7rem;
  line-height:1;
  color:#fff;
}
.fr-hero-meter span{color:rgba(255,255,255,.68);font-size:13.5px;font-weight:500}
.fr-hero .page-hero-proof li{color:rgba(255,255,255,.7);font-weight:500}
.fr-hero .page-hero-proof li.fr-hero-proof-key{color:#fff;font-weight:800;font-size:14.5px}

.fr-lookup{
  margin-top:-56px;
  padding:0 0 24px;
  position:relative;
  z-index:3;
}
.fr-card{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:22px;
  box-shadow:var(--elev-2);
}
.fr-lookup-card{padding:28px 28px 26px}
.fr-lookup-card::before{
  content:"";
  display:block;
  height:3px;
  margin:-28px -28px 22px;
  border-radius:22px 22px 0 0;
  background:linear-gradient(90deg,var(--coral),var(--lagoon));
}
.fr-lookup-card h2{font-size:clamp(1.55rem,2.4vw,2rem);margin:0 0 8px}
.fr-lookup-card>p{margin:0 0 20px;color:var(--muted);max-width:62ch}
.fr-lookup-form{
  display:grid;
  grid-template-columns:1.1fr 1fr auto;
  gap:14px;
  align-items:end;
}
.fr-field{display:flex;flex-direction:column;min-width:0}
.fr-field label{
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:var(--muted);
  margin:0 0 6px;
}
.fr-field--primary label{color:var(--navy)}
.fr-field--optional label{
  font-weight:600;
  letter-spacing:.03em;
  color:#8b979e;
}
.fr-field input{
  width:100%;
  border:1px solid var(--stroke);
  border-radius:12px;
  padding:13px 14px;
  background:#fff;
  color:var(--navy);
}
.fr-field--optional input{
  background:#f7fafb;
}
.fr-field input:focus{
  outline:none;
  border-color:var(--lagoon);
  box-shadow:0 0 0 4px var(--lagoon-ring);
}
.fr-lookup-form .btn{min-height:50px;padding-inline:28px}
.fr-alert{
  margin:0 0 16px;
  padding:12px 14px;
  border-radius:12px;
  font-size:14.5px;
}
.fr-alert--error{background:#fdecec;color:#b42318;border:1px solid #fecdca}
.fr-alert--ok{background:var(--lagoon-wash);color:var(--navy);border:1px solid var(--stroke)}

.fr-how{padding:56px 0 24px}
.fr-how .section-head{margin-bottom:28px}
.fr-how .section-head h2{font-size:clamp(1.8rem,3vw,2.4rem)}
.fr-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:18px;
  margin:0;
  padding:0;
  list-style:none;
}
.fr-step{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:20px;
  box-shadow:var(--elev-1);
  padding:22px 22px 20px;
}
.fr-step__num{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--lagoon-wash);
  color:var(--lagoon-deep);
  font-size:13px;
  font-weight:800;
  margin:0 0 14px;
}
.fr-step h3{font-size:1.15rem;margin:0 0 8px}
.fr-step p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.6}

.fr-progress{padding:48px 0 24px}
.fr-progress .section-head{margin-bottom:28px}
.fr-progress .section-head h2{font-size:clamp(1.8rem,3vw,2.4rem)}
.fr-progress-lead{margin:10px 0 0;color:var(--muted)}
.fr-route-track{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin:0;
  padding:0;
  list-style:none;
  position:relative;
}
.fr-route{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:8px 16px 0;
}
.fr-route:not(:last-child)::after{
  content:"";
  position:absolute;
  top:30px;
  left:calc(50% + 22px);
  right:-50%;
  height:2px;
  background:var(--line);
  z-index:0;
}
.fr-route.is-done:not(:last-child)::after{background:var(--lagoon)}
.fr-route.is-locked:not(:last-child)::after{background:var(--line)}
.fr-route__mark{
  position:relative;
  z-index:1;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#fff;
  border:2px solid var(--line);
  color:var(--muted);
  margin:0 auto;
}
.fr-route__mark .aa-icon{width:16px;height:16px;fill:currentColor}
.fr-route.is-locked .fr-route__mark{
  background:var(--sand);
  border:2px dashed #c5d0d5;
  color:#8b979e;
}
.fr-route.is-done .fr-route__mark{
  background:var(--lagoon);
  border:2px solid var(--lagoon);
  color:#fff;
  box-shadow:0 0 0 4px var(--lagoon-wash);
}
.fr-route__body{text-align:center}
.fr-route__body h3{font-size:1.05rem;margin:0 0 6px}
.fr-route__body p{margin:0;color:var(--muted);font-size:13.5px}
.fr-route.is-locked .fr-route__body{opacity:.78}
.fr-route.is-locked .fr-route__body h3{color:var(--muted);font-weight:600}
.fr-route.is-done .fr-route__body h3{color:var(--navy)}
.fr-route.is-done .fr-route__body p{color:var(--lagoon-deep);font-weight:700}

.fr-rewards{padding:48px 0 32px}
.fr-rewards .section-head h2{font-size:clamp(1.8rem,3vw,2.4rem)}
.fr-reward-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.fr-reward-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:22px;
  box-shadow:var(--elev-2);
  padding:24px 22px 22px;
  min-height:100%;
}
.fr-reward-card.is-locked{background:var(--sand);box-shadow:none;border-color:transparent}
.fr-reward-card.is-available{
  background:linear-gradient(180deg,#fff 0%,#f3fbfb 100%);
  border-color:rgba(0,170,166,.38);
  box-shadow:var(--elev-2),0 0 0 1px var(--lagoon-ring);
}
.fr-reward-card.is-redeemed{
  background:#fafbfc;
  border-color:rgba(255,96,10,.28);
  box-shadow:none;
}
.fr-reward-card.is-open{grid-column:1/-1}
.fr-reward-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 0 14px}
.fr-reward-num{
  font-family:var(--serif);
  font-size:1.05rem;
  color:var(--navy);
  margin:0;
}
.fr-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.fr-chip .aa-icon{width:11px;height:11px;fill:currentColor}
.fr-chip--locked{background:#fff;color:var(--muted);border:1px solid var(--stroke)}
.fr-chip--available{background:var(--lagoon);color:#fff}
.fr-chip--redeemed{background:rgba(255,96,10,.1);color:var(--coral);border:1px solid rgba(255,96,10,.22)}
.fr-reward-value{margin:0 0 8px;font-family:var(--serif);font-size:1.55rem;color:var(--navy)}
.fr-reward-copy{margin:0 0 16px;color:var(--muted);font-size:14.5px;line-height:1.55;flex:1}
.fr-code{
  display:inline-flex;
  align-items:center;
  margin:0 0 16px;
  padding:8px 12px;
  border-radius:12px;
  background:var(--sand);
  border:1px dashed var(--stroke);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:14px;
  font-weight:700;
  color:var(--coral);
}
.fr-reward-card .btn{width:100%}
.fr-reward-card .btn[disabled],
.fr-reward-card .btn.is-disabled{
  opacity:.45;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.fr-picker{
  display:none;
  grid-column:1/-1;
  margin-top:8px;
}
.fr-reward-card.is-open .fr-picker,
.fr-picker.is-open{display:block}
.fr-picker-panel{
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--stroke);
}
.fr-picker-panel h4{margin:0 0 6px;font-size:1.15rem}
.fr-picker-panel>p{margin:0 0 18px;color:var(--muted)}
.fr-picker-empty{margin:0;color:var(--muted)}

.fr-bonus{padding:32px 0 72px}
.fr-bonus .section-head h2{font-size:clamp(1.8rem,3vw,2.4rem)}
.fr-bonus-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.fr-bonus-card{
  background:#fff;
  border:1px solid var(--stroke);
  border-radius:22px;
  box-shadow:var(--elev-2);
  padding:26px 24px 24px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.fr-bonus-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.fr-bonus-card.is-locked{background:var(--sand);box-shadow:none;border-color:transparent}
.fr-bonus-card.is-available{
  background:linear-gradient(180deg,#fff 0%,#f3fbfb 100%);
  border-color:rgba(0,170,166,.38);
  box-shadow:var(--elev-2),0 0 0 1px var(--lagoon-ring);
}
.fr-bonus-card.is-redeemed{
  background:#fafbfc;
  border-color:rgba(255,96,10,.28);
  box-shadow:none;
}
.fr-bonus-card h3{font-size:1.35rem;margin:0}
.fr-bonus-card p{margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.fr-bonus-card .btn{margin-top:10px;align-self:flex-start}
.fr-bonus-kicker{margin:0;color:var(--coral);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}

@media(max-width:1100px){
  .fr-lookup-form{grid-template-columns:1fr 1fr}
  .fr-lookup-form .btn{grid-column:1/-1}
  .fr-steps,.fr-reward-grid,.fr-bonus-grid{grid-template-columns:1fr 1fr}
  .fr-route-track{grid-template-columns:1fr}
  .fr-route{flex-direction:row;align-items:flex-start;padding:0 0 22px}
  .fr-route:not(:last-child)::after{
    top:44px;
    left:21px;
    right:auto;
    width:2px;
    height:calc(100% - 44px);
  }
  .fr-route__mark{margin:0;flex-shrink:0}
  .fr-route__body{text-align:left;padding-top:4px}
  .fr-route.is-done .fr-route__mark{box-shadow:0 0 0 3px var(--lagoon-wash)}
}
@media(max-width:700px){
  .fr-hero.page-hero{min-height:0}
  .fr-hero .wrap{padding:28px 0 72px}
  .fr-lookup{margin-top:-40px}
  .fr-lookup-card{padding:22px 18px 20px}
  .fr-lookup-card::before{margin:-22px -18px 18px}
  .fr-lookup-form,.fr-steps,.fr-reward-grid,.fr-bonus-grid{grid-template-columns:1fr}
  .fr-lookup-form .btn,.fr-reward-card .btn,.fr-bonus-card .btn{width:100%}
  .fr-hero .page-hero-lead{font-size:15px;max-width:36ch}
  .fr-hero-benefit{font-size:1.06em}
  .fr-hero .page-hero-proof li.fr-hero-proof-key{font-size:14px}
  .fr-how,.fr-progress,.fr-rewards{padding-top:40px}
  .fr-bonus{padding-bottom:56px}
  .fr-reward-top,.fr-bonus-top{align-items:flex-start}
  .fr-chip{flex-shrink:0}
}
