/* Gift Lessen (lessen.app/gift), Oct 21, 2026: Origin's "Book a demo" page
 * (useorigin.com/employers/demo) in Lessen's dark system. The demo section
 * (200/32/80, two 653px columns 70 apart, the 80px headline, the form in
 * Origin's field style: no border, a dark vertical gradient, radius 8),
 * Origin's 50px gap, its testimonial band as how it works (three 439 x 434
 * colour-field cards, radius 30, 30 apart), the system's FAQ, the footer.
 * The flow is /gift.js; every hook is kept. */

.gf-page [hidden] { display: none !important; }
.gf-wrap { max-width: 1376px; margin: 0 auto; }

/* ---------------------------------------------------------------- 1. the demo section */
.gf-hero { position: relative; padding: 200px 32px 80px; }
.gf-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 70px; align-items: start; }
.gf-eyebrow { margin: 0 0 20px; font: 500 16px/20px var(--os-sans); letter-spacing: 2px; text-transform: uppercase; color: #fff; }
.gf-h1 { margin: 0; font-size: 80px; line-height: 80px; letter-spacing: -.02em; }
.gf-lead { margin: 24px 0 40px; max-width: 540px; font: 300 18px/27px var(--os-sans); color: var(--os-fg-2); }
.gf-trust { margin: 0 0 20px; font: 500 14px/12.6px var(--os-sans); letter-spacing: 2px; text-transform: uppercase; color: #FAFAFA; }
.gf-care { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; max-width: 540px; }
.gf-care li { display: grid; grid-template-columns: 28px minmax(0, 1fr); column-gap: 12px; font: 300 15px/22px var(--os-sans); color: var(--os-fg-2); }
.gf-care-n { font: 500 11px/22px var(--os-sans); letter-spacing: 2px; color: var(--os-mint); }
.gf-care b { font-weight: 400; color: #fff; }
.gf-help { margin: 26px 0 0; max-width: 540px; font: 300 13px/20px var(--os-sans); color: var(--os-fg-3); }
.gf-help a, .gf-fine a, .gf-check a, .gf-safety a, .gf-page .os-faq-a a { color: #fff; text-decoration: underline; text-decoration-color: rgba(255, 255, 255, .35); text-underline-offset: 3px; }
.gf-help a:hover, .gf-fine a:hover, .gf-check a:hover, .gf-safety a:hover { text-decoration-color: #fff; }
.gf-help a[href^="tel"] { white-space: nowrap; }

/* the form, Origin's field style */
.gf-formcol { position: relative; scroll-margin-top: 100px; }
.gf-form-title { margin: 0 0 20px; font: 500 24px/36px var(--os-sans); letter-spacing: -.01em; color: #fff; }
.gf-lab { display: block; margin: 0 0 5px; padding: 0; font: 500 12px/16.8px var(--os-sans); color: #fff; }
.gf-req { position: relative; top: -4.5px; margin-left: 1px; font-size: 9px; line-height: 0; color: var(--os-glow); }
.gf-plans-set { margin: 0; padding: 0; border: 0; min-width: 0; }
/* the plans: three rows in Origin's field style, each with a round marker */
.gf-plans { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; }
.gf-plan { position: relative; display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: 14px; row-gap: 2px; align-items: center; padding: 14px 18px 14px 16px; border-radius: 8px; cursor: pointer;
  background: linear-gradient(0deg, #121413, #222524); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0); transition: box-shadow .2s var(--os-io), background .2s var(--os-io); }
.gf-plan::before { content: ""; grid-column: 1; grid-row: 1 / 3; width: 20px; height: 20px; border-radius: 50%; background: linear-gradient(0deg, #0E100F, #2A2D2C); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); transition: background .2s var(--os-io), box-shadow .2s var(--os-io); }
.gf-plan input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
.gf-plan-t { grid-column: 2; grid-row: 1; font: 500 14px/20px var(--os-sans); color: #fff; }
.gf-plan-s { grid-column: 2; grid-row: 2; font: 300 12px/16px var(--os-sans); color: var(--os-fg-3); }
.gf-plan-p { grid-column: 3; grid-row: 1 / 3; font: 300 24px/28px var(--os-sans); letter-spacing: -.01em; color: #fff; font-variant-numeric: tabular-nums; }
@media (hover: hover) { .gf-plan:hover { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .16); } }
.gf-plan:has(input:checked) { background: linear-gradient(0deg, #0E2A1E, #17402E); box-shadow: inset 0 0 0 1px rgba(168, 237, 196, .75); }
.gf-plan:has(input:checked)::before { background: radial-gradient(circle at 50% 50%, #0C0E0D 0 3.5px, var(--os-glow) 4px); box-shadow: none; }
.gf-plan:has(input:checked) .gf-plan-s { color: rgba(255, 255, 255, .7); }
.gf-plan:has(input:focus-visible) { outline: 2px solid var(--os-glow); outline-offset: 3px; }
.gf-fine { margin: 10px 0 0; font: 300 12px/16.8px var(--os-sans); color: var(--os-fg-3); }
.gf-fine--plans { margin: 12px 0 34px; }
.gf-fine--end { text-align: center; }
.gf-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 30px; row-gap: 5px; }
.gf-field { min-width: 0; margin-bottom: 26px; }
.gf-field input { display: block; width: 100%; height: 40px; box-sizing: border-box; margin: 0; padding: 10px 16px; border: 0; border-radius: 8px; outline: none;
  font: 400 14px/20px var(--os-sans); color: #fff; background: linear-gradient(0deg, #121413, #222524); -webkit-appearance: none; appearance: none; transition: box-shadow .2s var(--os-io); }
.gf-field input::placeholder { color: #8A8F8C; }
body.os .gf-field input:focus-visible { outline: none; box-shadow: inset 0 0 0 1px rgba(168, 237, 196, .8), 0 0 0 3px rgba(135, 204, 170, .2); }
.gf-note-s { margin: 6px 0 0; font: 300 11px/15px var(--os-sans); color: var(--os-fg-3); }
/* Origin's consent checkbox: a 28px dark square, radius 8, a check when on */
.gf-check { position: relative; display: flex; align-items: flex-start; gap: 15px; margin: 4px 0 0; cursor: pointer; }
.gf-check input { position: absolute; left: 0; top: 0; width: 28px; height: 28px; margin: 0; opacity: 0; cursor: pointer; }
.gf-box { flex: none; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: linear-gradient(0deg, #131514, #232625); transition: background .2s var(--os-io); }
.gf-box svg { width: 20px; height: 20px; fill: none; stroke: #0C0E0D; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; opacity: 0; transition: opacity .15s; }
.gf-check input:checked + .gf-box { background: var(--os-glow); }
.gf-check input:checked + .gf-box svg { opacity: 1; }
.gf-check input:focus-visible + .gf-box { outline: 2px solid var(--os-glow); outline-offset: 3px; }
.gf-check-t { padding-top: 5px; font: 400 12px/16.8px var(--os-sans); color: #fff; }
.gf-submit { display: flex; justify-content: center; margin-top: 44px; }
.gf-send { display: inline-flex; align-items: center; justify-content: center; height: 40px; padding: 12px 18px; border: 0; border-radius: 12px; cursor: pointer;
  font: 500 12px/16px var(--os-sans); letter-spacing: .05em; text-transform: uppercase; color: #000; background: #fff; transition: background-color .2s var(--os-io), opacity .2s; }
.gf-send:hover { background: rgba(255, 255, 255, .86); }
.gf-send:disabled { opacity: .45; cursor: default; }
.gf-status { min-height: 17px; margin: 14px 0 0; font: 400 12px/17px var(--os-sans); text-align: center; color: var(--os-mint); }
.gf-status:empty { display: none; }
.gf-form.is-closed .gf-plans, .gf-form.is-closed .gf-fields, .gf-form.is-closed .gf-check { opacity: .55; }
.gf-form.is-closed .gf-plan, .gf-form.is-closed .gf-check { cursor: default; }
.gf-wait { margin: 0; padding: 40px 32px; border-radius: 16px; font: 300 16px/24px var(--os-sans); text-align: center; color: var(--os-fg-2); background: var(--os-card); }

/* after paying: the card in the form's place */
.gf-gift { position: relative; overflow: hidden; isolation: isolate; padding: 40px 40px 36px; border-radius: 30px; color: #fff; background: url("/assets/lr/gift/step-decide.webp") center / cover no-repeat, var(--os-forest-grad); }
.gf-gift-label { margin: 0; font: 500 11px/16px var(--os-sans); letter-spacing: 2px; text-transform: uppercase; color: rgba(255, 255, 255, .78); }
.gf-gift-len { margin: 16px 0 0; font: 300 46px/46px var(--os-sans); letter-spacing: -.02em; }
.gf-gift-from { margin: 10px 0 0; font: 300 16px/24px var(--os-sans); color: rgba(255, 255, 255, .8); }
.gf-gift-code { margin: 30px 0 0; font: 400 34px/40px var(--os-sans); letter-spacing: .12em; font-variant-numeric: tabular-nums; }
.gf-gift-how { margin: 18px 0 0; max-width: 46ch; font: 300 14px/21px var(--os-sans); color: rgba(255, 255, 255, .82); }
.gf-gift-mark { position: absolute; right: 32px; top: 36px; width: 40px; }
.gf-gift-mark svg { display: block; width: 40px; height: auto; fill: rgba(255, 255, 255, .92); }
.gf-gift-mark .l { fill: var(--os-glow); }
.gf-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 24px 0 6px; }
.gf-act { height: 40px; padding: 12px 18px; border: 0; border-radius: 12px; cursor: pointer; font: 500 12px/16px var(--os-sans); letter-spacing: .05em; text-transform: uppercase; color: #fff; background: rgba(255, 255, 255, .1); transition: background-color .2s var(--os-io); }
.gf-act:hover { background: rgba(255, 255, 255, .18); }
.gf-act--main { color: #000; background: #fff; }
.gf-act--main:hover { background: rgba(255, 255, 255, .86); }
.gf-done .gf-fine { text-align: center; }

/* ---------------------------------------------------------------- 2. how it works (Origin's testimonial band) */
.gf-gap { height: 50px; }
.gf-how { padding: 100px 32px; }
.gf-how-title { margin: 0 auto 100px; text-align: center; }
.gf-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.gf-step { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; align-items: center; height: 434px; box-sizing: border-box; padding: 32px; border-radius: 30px; text-align: center; color: #fff; background: #164832; }
.gf-step-art { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.gf-step-n { margin: 0 0 20px; font: 300 16px/16px var(--os-sans); letter-spacing: 4px; color: rgba(255, 255, 255, .9); }
.gf-step-t { margin: 0 0 14px; font: 500 11px/16px var(--os-sans); letter-spacing: 2px; text-transform: uppercase; color: #fff; }
.gf-step-p { margin: 0; max-width: 375px; font: 300 18px/27px var(--os-sans); color: #fff; }
.gf-how-note { margin: 40px auto 0; max-width: 560px; font: 300 14px/21px var(--os-sans); text-align: center; color: var(--os-fg-2); }

/* ---------------------------------------------------------------- 3. questions */
.gf-faq-sec { padding-bottom: 50px; }
.gf-safety { margin: 30px auto 0; max-width: 760px; font: 300 13px/20px var(--os-sans); text-align: center; color: var(--os-fg-3); }

/* ---------------------------------------------------------------- tablets */
@media (max-width: 991px) {
  .gf-steps { gap: 30px; }
  .gf-step { padding: 32px 24px; }
}
/* ---------------------------------------------------------------- phones: stacked, as Origin's demo page */
@media (max-width: 767px) {
  .gf-hero { padding: 160px 12px 80px; }
  .gf-grid { grid-template-columns: minmax(0, 1fr); row-gap: 70px; }
  .gf-h1 { font-size: 46px; line-height: 46px; }
  .gf-lead { margin: 20px 0 40px; font-size: 16px; line-height: 24px; }
  .gf-form-title { font-size: 20px; line-height: 30px; }
  .gf-fields { grid-template-columns: minmax(0, 1fr); }
  .gf-field input { font-size: 16px; }
  .gf-gift { padding: 32px 26px 28px; }
  .gf-gift-len { font-size: 38px; line-height: 40px; }
  .gf-gift-code { font-size: 26px; letter-spacing: .1em; }
  .gf-how { padding: 70px 16px; }
  .gf-how-title { margin-bottom: 70px; }
  /* Origin shows one card at a time on phones: a swiped row */
  .gf-steps { display: flex; gap: 16px; margin: 0 -16px; padding: 0 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
  .gf-steps::-webkit-scrollbar { display: none; }
  .gf-step { flex: 0 0 100%; scroll-snap-align: center; }
  .gf-safety { text-align: left; }
}

/* ---------------------------------------------------------------- print: only the gift card */
@media print {
  body * { visibility: hidden; }
  .gf-gift, .gf-gift * { visibility: visible; }
  .gf-gift { position: fixed; left: 0; top: 0; width: 100%; box-sizing: border-box; background: #fff !important; color: #000; border: 1px solid #999; }
  .gf-gift * { color: #000 !important; }
  .gf-gift-mark svg, .gf-gift-mark .l { fill: #000 !important; }
}
