/* /q/grow-sales/ — the Profit Score quiz. Landing · quiz · step 2.
   The score page lives in css/pages/gq-results.css.

   A deliberate, owner-requested exception to frontend4's no-colour rule:
   the hero, the quiz and the top of the score page sit on the purple brand
   ground. Everything inside a white card stays ink on white — no coloured
   text, no highlights. Tokens (--panel, --card-*, --status-*) come from
   css/pages/growth-plan.css. */

/* ============================================================
   0 · shell
   ============================================================ */
.gq { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; background: var(--page-bg); }
.gq-main { padding: 0 0 clamp(40px, 6vw, 80px); }
.gq-wrap { max-width: 1120px; margin: 0 auto; width: 100%; padding: 0 clamp(20px, 3.2vw, 48px); }

.gq--quiz, .gq--results { --ground:
        radial-gradient(60% 50% at 90% 0%, rgba(255,30,128,.32) 0%, rgba(255,30,128,0) 60%),
        radial-gradient(60% 60% at 0% 100%, rgba(96,0,255,.45) 0%, rgba(96,0,255,0) 65%),
        linear-gradient(135deg, #1b0a3f 0%, #3b0f86 50%, #6a1fd0 100%); }
.gq--quiz { background: var(--ground); background-attachment: fixed; }

.gq-bar { display: flex; align-items: center; padding: clamp(20px, 2.6vw, 34px) clamp(20px, 3.2vw, 48px); }
.gq-bar a { display: inline-flex; color: var(--ink); }
.gq-bar svg { width: 92px; height: 28px; }
.gq--landing .gq-bar { display: none; }
.gq--quiz .gq-bar a { color: #fff; }
.gq--results .gq-bar a { color: #fff; }

.gq-foot { padding: clamp(28px, 4vw, 48px) clamp(20px, 3.2vw, 48px); text-align: center; font: 300 13.5px/1.6 var(--font-sans); color: var(--ink-mute); }
.gq-foot a { color: inherit; text-decoration: none; }
.gq-foot a:hover { color: var(--ink); }
.gq-foot span { margin: 0 8px; opacity: .5; }
.gq--quiz .gq-foot, .gq--quiz .gq-foot a { color: rgba(255,255,255,.55); }
.gq--quiz .gq-foot a:hover { color: #fff; }

/* the one button family on this page: white on purple, ink on paper */
.gq-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 58px; padding: 0 32px;
    border: 0; border-radius: 999px; background: #fff; color: #1b0a3f; text-decoration: none; cursor: pointer;
    font: 500 17px/1 var(--font-sans); letter-spacing: -.01em;
    box-shadow: 0 16px 40px -16px rgba(10,0,40,.7);
    transition: all .25s cubic-bezier(.2,.7,.2,1);
}
.gq-btn:hover { transform: translateY(-1px); color: #000; box-shadow: 0 20px 48px -16px rgba(10,0,40,.8); }
.gq-btn svg { width: 16px; height: 16px; transition: transform .25s cubic-bezier(.2,.7,.2,1); }
.gq-btn:hover svg { transform: translateX(3px); }
.gq-btn--dark, .gq-card .gq-btn { background: var(--ink); color: #fff; box-shadow: 0 10px 30px -12px rgba(17,17,16,.45); }
.gq-btn--dark:hover, .gq-card .gq-btn:hover { background: #000; color: #fff; }

/* ============================================================
   1 · landing hero — purple, logo left, copy + the guide drawn right
   ============================================================ */
.gq-main--landing { padding-bottom: 0; }

.gqh {
    position: relative; overflow: hidden; color: #fff;
    background:
        radial-gradient(60% 70% at 88% 18%, rgba(255,30,128,.38) 0%, rgba(255,30,128,0) 60%),
        radial-gradient(55% 60% at 10% 100%, rgba(96,0,255,.55) 0%, rgba(96,0,255,0) 65%),
        linear-gradient(135deg, #1b0a3f 0%, #3b0f86 45%, #6a1fd0 78%, #9c32b0 100%);
    padding: clamp(20px, 2.6vw, 34px) clamp(20px, 3.2vw, 48px) clamp(56px, 7vw, 96px);
}
.gqh__in { max-width: 1200px; margin: 0 auto; }
.gqh__logo { display: inline-flex; color: #fff; }
.gqh__logo svg { width: 92px; height: 28px; }

.gqh__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: center; margin-top: clamp(36px, 5vw, 72px); }

.gqh__h1 { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: clamp(42px, 4.8vw, 78px); line-height: 1.02; letter-spacing: -.028em; color: #fff; margin: 0; max-width: 13ch; }
.gqh__sub { font: 400 clamp(17px, 1.3vw, 20px)/1.55 var(--font-sans); color: rgba(255,255,255,.8); max-width: 44ch; margin: 24px 0 0; }
.gqh__cta { margin: 36px 0 0; }
.gqh__note { font: 400 14px/1.5 var(--font-sans); color: rgba(255,255,255,.6); margin: 16px 0 0; }

/* --- the art: the guide as a course, with the score and a lesson over it --- */
.gqh__art { position: relative; padding: 24px 10px 0; animation: gqRise .6s cubic-bezier(.2,.7,.2,1) both; }


/* the book: a warm paper cover (the guide's own ground), cloth spine, page block */
.gqb { position: relative; z-index: 1; width: min(440px, 100%); margin: 0 auto; }
.gqb__pages { position: absolute; top: 8px; right: -12px; bottom: -10px; left: 18px; border-radius: 4px 10px 10px 4px;
    background: repeating-linear-gradient(90deg, #fbfaf6 0 2px, #e4e1d8 2px 3px), #f3f1ea;
    box-shadow: 0 50px 90px -40px rgba(10,0,40,.9), 0 20px 40px -24px rgba(10,0,40,.6); }
.gqb__pages::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 10px; border-radius: 0 0 10px 4px; background: repeating-linear-gradient(0deg, #fbfaf6 0 2px, #e4e1d8 2px 3px); }
.gqb__cover { position: relative; display: flex; flex-direction: column; min-height: 0; padding: 50px 40px 64px 62px; border-radius: 4px 12px 12px 4px; color: var(--ink);
    background:
        linear-gradient(90deg, rgba(17,17,16,.16) 0, rgba(17,17,16,.04) 14px, rgba(255,255,255,.5) 18px, rgba(17,17,16,.05) 24px, rgba(17,17,16,0) 34px),
        linear-gradient(160deg, #f7f6f2 0%, #f0efeb 55%, #e8e6df 100%);
    box-shadow: inset 0 0 0 1px rgba(17,17,16,.06), 0 2px 0 rgba(255,255,255,.6) inset; }
.gqb__cover::before { content: ""; position: absolute; inset: 18px 18px 18px 40px; border: 1px solid rgba(17,17,16,.12); border-radius: 4px; pointer-events: none; }
.gqb__mark { font: 800 15px/1 var(--font-display); letter-spacing: -.4px; }
.gqb__title { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: clamp(26px, 2.35vw, 34px); line-height: 1.08; letter-spacing: -.022em; margin: 34px 0 0; }
.gqb__title span { white-space: nowrap; }
.gqb__sub { font: 400 14.5px/1.6 var(--font-sans); color: var(--ink-soft); margin: 18px 0 0; }
.gqb__lead { font: 600 14px/1.5 var(--font-sans); margin: 28px 0 14px; }
.gqb__ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.gqb__ticks li { position: relative; padding-left: 26px; font: 400 14.5px/1.35 var(--font-sans); }
.gqb__ticks li::before { content: ""; position: absolute; left: 0; top: 1px; width: 15px; height: 15px; border-radius: 50%; background: var(--ink); }
.gqb__ticks li::after { content: ""; position: absolute; left: 4.5px; top: 5.5px; width: 6px; height: 3px; border-left: 1.4px solid #fff; border-bottom: 1.4px solid #fff; transform: rotate(-45deg); }
.gqb__based { font: 400 13px/1.6 var(--font-sans); color: var(--ink); margin: 32px 0 0; padding-top: 22px; border-top: 1px solid rgba(17,17,16,.1); }
.gqb__based sup { font-size: .55em; }
.gqb__based b { font-weight: 600; }




/* promo layer: badge on the book's top edge, includes panel on its bottom edge —
   both sit in the cover's margins, never over the text */
.gqb__badge { position: absolute; z-index: 3; top: -19px; left: 50%; transform: translateX(-50%); display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 18px 0 14px; border-radius: 999px; background: var(--brand-grad); color: #fff; font: 600 14.5px/1 var(--font-sans); letter-spacing: -.005em; white-space: nowrap; box-shadow: 0 12px 26px -10px rgba(255,30,128,.6), 0 0 0 3px #f7f6f2; }
.gqb__badge::before { content: "\2605"; font-size: 13px; }
.gqg-includes { position: relative; z-index: 2; display: grid; grid-template-columns: auto minmax(0, 1fr); width: min(500px, 100%); margin: -34px auto 0; background: #fff; color: var(--ink); border-radius: 20px; box-shadow: 0 30px 60px -26px rgba(10,0,40,.8), 0 0 0 1px rgba(17,17,16,.04); animation: gqRise .6s .3s cubic-bezier(.2,.7,.2,1) both; }
.gqg-includes__score { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-right: 1px solid rgba(17,17,16,.08); }
.gqg-includes__score svg { flex: none; width: 64px; height: 40px; }
.gqg-includes__score text { font-family: var(--font-serif); font-variation-settings: 'SOFT' 50; font-size: 30px; fill: var(--ink); }
.gqg-includes__score b { font: 600 14.5px/1.3 var(--font-sans); max-width: 11ch; }
.gqg-includes__tools { padding: 14px 18px; }
.gqg-includes__tools b { display: block; font: 600 14.5px/1.2 var(--font-sans); margin-bottom: 7px; }
.gqg-includes__tools ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.gqg-includes__tools li { position: relative; padding-left: 14px; font: 400 13px/1.35 var(--font-sans); color: var(--ink-soft); }
.gqg-includes__tools li::before { content: ""; position: absolute; left: 1px; top: 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--ink); }

/* the testimonial row from /prices/, directly under the hero */
.gqx-voices { padding-top: clamp(36px, 4vw, 52px); }


/* ---- hero version B (?hero=b): the offer card ----
   One frosted panel on the purple. Everything inside shares one centre line
   and one inner width: a hairline header, the book, a hairline "plus"
   divider, then four equal bonus tiles. Nothing floats, nothing overlaps. */
.gqh__art--b { display: none; }
html.hero-b .gqh__art--a { display: none; }
html.hero-b .gqh__art--b { display: block; padding: 0; animation: gqRise .6s cubic-bezier(.2,.7,.2,1) both; }

.gqo { --w: 440px; width: min(430px, 100%); margin: 0 auto; padding: 30px 28px 24px; border-radius: 26px;
    background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05));
    border: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 40px 90px -40px rgba(10,0,40,.9), inset 0 1px 0 rgba(255,255,255,.18);
    -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }

/* sticker */
.gqo__plus { display: flex; align-items: center; gap: 14px; margin: 0; color: #fff; }
  .gqo__plus::before, .gqo__plus::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.35)); }
.gqo__plus::after { background: linear-gradient(90deg, rgba(255,255,255,.35), rgba(255,255,255,0)); }
.gqo__plus { margin-top: 20px; }
.gqo__plus span { font: 500 13px/1 var(--font-sans); color: rgba(255,255,255,.85); white-space: nowrap; }

.gqo__sticker { position: absolute; z-index: 3; top: -20px; right: -22px; display: grid; place-content: center; justify-items: center; width: 82px; height: 82px; border-radius: 50%; color: #fff; transform: rotate(12deg);
    background: radial-gradient(circle at 35% 30%, rgba(255,255,255,.35), rgba(255,255,255,0) 45%), var(--brand-grad);
    box-shadow: 0 0 0 4px #fff, 0 16px 30px -10px rgba(10,0,40,.7); }
.gqo__sticker::after { content: ""; position: absolute; inset: 6px; border-radius: 50%; border: 1.5px dashed rgba(255,255,255,.55); }
.gqo__sticker b { font: 800 20px/1 var(--font-display); letter-spacing: -.5px; }
.gqo__sticker small { font: 600 12px/1 var(--font-sans); margin-top: 3px; }

/* the book: paper cover, rounded spine edge, page block below */
.gqo__book { position: relative; display: flex; aspect-ratio: 3 / 4; margin: 0 6px 0 0; border-radius: 3px 10px 10px 3px; filter: drop-shadow(0 28px 34px rgba(10,0,40,.55)); }
.gqo__book::after { content: ""; position: absolute; left: 12px; right: -6px; bottom: -7px; height: 12px; z-index: -1; border-radius: 0 0 10px 4px; background: repeating-linear-gradient(180deg, #fbfaf6 0 2px, #dcd9cf 2px 3px); }
.gqo__book::before { content: ""; position: absolute; top: 6px; bottom: -4px; right: -6px; width: 10px; z-index: -1; border-radius: 0 10px 10px 0; background: repeating-linear-gradient(90deg, #fbfaf6 0 2px, #dcd9cf 2px 3px); }
.gqo__spine { flex: none; width: 18px; border-radius: 3px 0 0 3px; background: linear-gradient(90deg, #d9d6cd 0%, #f4f2ec 45%, #e2dfd6 75%, #cfccc2 100%); }
.gqo__cover { position: relative; flex: 1; min-width: 0; display: flex; flex-direction: column; padding: 26px 24px 22px; color: var(--ink); border-radius: 0 10px 10px 0;
    background: linear-gradient(150deg, #f8f7f3 0%, #f1f0eb 60%, #e9e7e0 100%);
    box-shadow: inset 1px 0 0 rgba(17,17,16,.08); }
.gqo__cover::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 10px; background: linear-gradient(90deg, rgba(17,17,16,.12), rgba(17,17,16,0)); }
.gqo__mark { display: block; font: 800 13px/1 var(--font-display); letter-spacing: -.3px; }
.gqo__title { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: 25px; line-height: 1.08; letter-spacing: -.022em; margin: auto 0 0; padding-top: 14px; }
.gqo__title span { white-space: nowrap; }
.gqo__sub { font: 400 12.5px/1.5 var(--font-sans); color: var(--ink-soft); margin: 10px 0 0; }
.gqo__lead { font: 600 12px/1.45 var(--font-sans); margin: 16px 0 9px; padding-top: 14px; border-top: 1px solid rgba(17,17,16,.1); }
.gqo__ticks { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.gqo__ticks li { position: relative; padding-left: 21px; font: 400 12.5px/1.35 var(--font-sans); }
.gqo__ticks li::before { content: ""; position: absolute; left: 0; top: 1px; width: 14px; height: 14px; border-radius: 50%; background: var(--ink); }
.gqo__ticks li::after { content: ""; position: absolute; left: 4px; top: 5px; width: 6px; height: 3px; border-left: 1.4px solid #fff; border-bottom: 1.4px solid #fff; transform: rotate(-45deg); }
.gqo__based { font: 400 11.5px/1.5 var(--font-sans); color: var(--ink); margin: auto 0 0; padding-top: 12px; border-top: 1px solid rgba(17,17,16,.1); }
.gqo__based b { font-weight: 600; }
.gqo__ticks { margin-bottom: 16px; }
.gqo__based sup { font-size: .55em; }

/* four equal bonus tiles on one baseline */
.gqo-bonus { list-style: none; margin: 14px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.gqo-bonus li { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 6px 4px 9px; border-radius: 14px; background: #fff; color: var(--ink); box-shadow: 0 18px 36px -22px rgba(10,0,40,.8); animation: gqRise .6s cubic-bezier(.2,.7,.2,1) both; }
.gqo-bonus li:nth-child(2) { animation-delay: .08s; } .gqo-bonus li:nth-child(3) { animation-delay: .16s; } .gqo-bonus li:nth-child(4) { animation-delay: .24s; }
.gqo-bonus__img { display: grid; place-items: center; width: 100%; height: 36px; border-radius: 9px; background: var(--panel, #f6f6f4); }
.gqo-bonus__img svg { width: 44px; height: 30px; }
.gqo-bonus b { margin-top: 7px; font: 600 11.5px/1.2 var(--font-sans); letter-spacing: -.005em; }

@media (max-width: 480px) {
    .gqo { padding: 18px 14px 20px; border-radius: 22px; }
    .gqo__cover { padding: 22px 20px 20px; }
    .gqo__title { font-size: 24px; }
    .gqo__sticker { right: -8px; width: 72px; height: 72px; }
    .gqo__book { aspect-ratio: auto; }
    .gqo__based { margin-top: 0; }
    .gqo-bonus { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* version C (?hero=c): version B without the frosted container */
html.hero-c .gqo { padding: 0; background: none; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
html.hero-c .gqo__plus { margin-top: 22px; width: 400px; max-width: 100%; margin-left: auto; margin-right: auto; }
/* C: the book sized to the left column's height (~420px tall at 3:4) */
html.hero-c .gqo { width: min(400px, 100%); }
html.hero-c .gqo__book { width: 316px; max-width: calc(100% - 20px); margin: 0 auto; }
html.hero-c .gqo__cover { padding: 22px 20px 20px; }
html.hero-c .gqo__mark { font-size: 11px; }
html.hero-c .gqo__title { font-size: 23px; margin-top: 30px; padding-top: 0; }
html.hero-c .gqo__sub { font-size: 12px; margin-top: 9px; }
html.hero-c .gqo__lead { font-size: 11.5px; margin: 16px 0 9px; padding-top: 14px; }
html.hero-c .gqo__ticks { gap: 7px; margin-bottom: 14px; }
html.hero-c .gqo__ticks li { font-size: 12px; padding-left: 19px; }
html.hero-c .gqo__ticks li::before { width: 12px; height: 12px; }
html.hero-c .gqo__ticks li::after { left: 3.5px; top: 4.5px; width: 5px; height: 2.5px; }
html.hero-c .gqo__based { font-size: 11px; padding-top: 12px; }
html.hero-c .gqo__sticker { top: 18px; right: 18px; width: 62px; height: 62px; box-shadow: 0 0 0 3px #fff, 0 10px 20px -8px rgba(10,0,40,.45); }
html.hero-c .gqo__sticker::after { inset: 5px; }
html.hero-c .gqo__sticker b { font-size: 15px; }
html.hero-c .gqo__sticker small { font-size: 9.5px; margin-top: 2px; }
html.hero-c .gqo-bonus { margin-top: 12px; }
@media (max-width: 480px) {
    html.hero-c .gqo__book { width: 100%; aspect-ratio: auto; }
    html.hero-c .gqo__cover { padding: 22px 20px 20px; }
    html.hero-c .gqo__title { font-size: 24px; margin-top: 26px; }
    html.hero-c .gqo__sub, html.hero-c .gqo__ticks li { font-size: 12.5px; }
    html.hero-c .gqo__lead { font-size: 12px; }
    html.hero-c .gqo__based { font-size: 11.5px; }
    html.hero-c .gqo__sticker { top: 16px; right: 16px; }
}
@media (prefers-reduced-motion: reduce) { .gqo-bonus li, html.hero-b .gqh__art--b { animation: none; } }

@keyframes gqRise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ============================================================
   2 · below the hero
   ============================================================ */
.gqx-facts { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #fff; border-radius: var(--radius-lg); box-shadow: var(--card-shadow); border: 1px solid var(--card-border); }
.gqx-facts > div { padding: clamp(22px, 2.6vw, 32px) clamp(20px, 2.6vw, 34px); display: grid; gap: 8px; align-content: start; }
.gqx-facts > div + div { border-left: 1px solid rgba(17,17,16,.08); }
.gqx-facts b { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: clamp(32px, 2.8vw, 46px); line-height: 1; letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.gqx-facts span { font: 300 15px/1.45 var(--font-sans); color: var(--ink-soft); }
.gqx-facts sup, .gq-what sup { font-size: .55em; }

.gqx-sec { padding-top: clamp(64px, 8vw, 112px); }
.gqx-head { max-width: 680px; margin-bottom: clamp(28px, 3vw, 44px); }
.gqx-head .gq-h2 { margin-bottom: 0; }
.gqx-pill { display: inline-block; font: 600 13px/1 var(--font-sans); letter-spacing: -.005em; color: var(--ink); background: #fff; border: 1px solid var(--card-border); border-radius: 999px; padding: 7px 16px; margin: 0 0 18px; }

.gq-h2 { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: clamp(30px, 3.2vw, 48px); line-height: 1.06; letter-spacing: -.025em; color: var(--ink); margin: 0 0 22px; }
.gqx-body { font: 300 clamp(17px, 1.2vw, 19px)/1.65 var(--font-sans); color: var(--ink-soft); max-width: 50ch; margin: 0 0 16px; }
.gqx-small { font: 300 14.5px/1.6 var(--font-sans); color: var(--ink-mute); max-width: 52ch; margin: 24px 0 0; }

.gq-what { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 6vw, 90px); align-items: center; }

.gq-ticks { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; }
.gq-ticks li { position: relative; padding-left: 32px; font: 400 clamp(17px, 1.2vw, 19px)/1.5 var(--font-sans); color: var(--ink); }
.gq-ticks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 20px; height: 20px; border-radius: 50%; background: var(--ink); }
.gq-ticks li::after { content: ""; position: absolute; left: 6px; top: 9.5px; width: 8px; height: 4px; border-left: 1.7px solid #fff; border-bottom: 1.7px solid #fff; transform: rotate(-45deg); }

.gq-preview { background: #fff; border: 1px solid var(--card-border); border-radius: var(--radius-lg); box-shadow: var(--card-shadow); padding: clamp(24px, 3vw, 34px); }
.gq-preview__cap { font: 300 13.5px/1.5 var(--font-sans); color: var(--ink-mute); text-align: center; margin: 18px 0 0; }
.gq-preview__bars { display: grid; gap: 11px; margin: 22px 0 0; }
.gq-dial { display: block; width: 100%; max-width: 320px; margin: 0 auto; color: var(--ink); }
.gq-dial__val { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-variant-numeric: tabular-nums; }

.gq-bar-row { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.gq-bar-row span { font: 400 13.5px/1.2 var(--font-sans); color: var(--ink-soft); }
.gq-bar-row i { display: block; height: 8px; border-radius: 999px; background: rgba(17,17,16,.07); position: relative; overflow: hidden; }
.gq-bar-row i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--w, 50%); border-radius: 999px; background: var(--ink); }
.gq-bar-row em { font: 600 12px/1 var(--font-sans); font-style: normal; }
.gq-bar-row.is-problem i::after { background: var(--status-problem); }
.gq-bar-row.is-problem em { color: var(--status-problem); }
.gq-bar-row.is-partly i::after { background: var(--status-partly); }
.gq-bar-row.is-partly em { color: var(--status-partly); }
.gq-bar-row.is-strong i::after { background: var(--status-strong); }
.gq-bar-row.is-strong em { color: var(--status-strong); }

.gqx-contents { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.gqx-contents li { display: flex; gap: 18px; align-items: flex-start; background: #fff; border: 1px solid var(--card-border); border-radius: var(--radius-md, 16px); box-shadow: var(--shadow-tile); padding: 22px 24px; }
.gqx-contents i { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--ink); color: #fff; font: 600 14px/1 var(--font-sans); font-style: normal; font-variant-numeric: tabular-nums; }
.gqx-contents h3 { font: 600 19px/1.3 var(--font-sans); letter-spacing: -.01em; color: var(--ink); margin: 5px 0 6px; }
.gqx-contents p { font: 300 15.5px/1.55 var(--font-sans); color: var(--ink-soft); margin: 0; }

.gqx-quotes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.gqx-quotes figure { margin: 0; display: flex; flex-direction: column; background: #fff; border-radius: var(--radius-lg); border: 1px solid var(--card-border); box-shadow: var(--card-shadow); padding: clamp(22px, 2.6vw, 30px); }
.gqx-quotes img { height: 34px; width: auto; max-width: 140px; object-fit: contain; object-position: left center; }
.gqx-quotes__stat { font: 300 15px/1.4 var(--font-sans); color: var(--ink-soft); margin: 18px 0 0; }
.gqx-quotes__stat b { display: block; font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: clamp(24px, 2vw, 30px); line-height: 1.1; letter-spacing: -.02em; color: var(--ink); margin-bottom: 4px; }
.gqx-quotes blockquote { margin: 16px 0 0; font: 300 16px/1.6 var(--font-sans); color: var(--ink-soft); flex: 1; }
.gqx-quotes figcaption { font: 500 14px/1.4 var(--font-sans); color: var(--ink); margin-top: 18px; padding-top: 14px; border-top: 1px solid rgba(17,17,16,.08); }

.gq-proof { margin: clamp(36px, 4vw, 56px) 0 0; }
.gq-proof__lbl { font: 300 13.5px/1 var(--font-sans); color: var(--ink-mute); margin: 0 0 20px; }
.gq-proof__row { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(18px, 3vw, 40px); }
.gq-proof__row img { height: 26px; width: auto; opacity: .7; filter: grayscale(1); }

.gqx-end {
    margin: clamp(64px, 8vw, 112px) 0 clamp(40px, 5vw, 64px); text-align: center; color: #fff; border-radius: 28px;
    padding: clamp(48px, 6vw, 84px) clamp(22px, 4vw, 56px);
    background:
        radial-gradient(60% 90% at 90% 0%, rgba(255,30,128,.35) 0%, rgba(255,30,128,0) 60%),
        linear-gradient(135deg, #1b0a3f 0%, #3b0f86 50%, #6a1fd0 100%);
}
.gqx-end h2 { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: clamp(30px, 3.4vw, 50px); line-height: 1.06; letter-spacing: -.025em; margin: 0 auto; max-width: 20ch; color: #fff; }
.gqx-end p { font: 400 17px/1.6 var(--font-sans); color: rgba(255,255,255,.78); max-width: 46ch; margin: 18px auto 32px; }

/* ============================================================
   3 · the quiz — a white card on the purple ground
   ============================================================ */
.gq-stage { padding: clamp(8px, 3vw, 40px) clamp(16px, 3.2vw, 48px) clamp(40px, 6vw, 80px); }
.gq-card {
    max-width: 680px; margin: 0 auto; background: #fff; color: var(--ink);
    border-radius: 28px; padding: clamp(28px, 5vw, 56px);
    box-shadow: 0 40px 90px -40px rgba(10,0,40,.8);
    animation: gqRise .45s cubic-bezier(.2,.7,.2,1) both;
}
.gq-card--msg { text-align: center; }
.gq-card--msg p { font: 300 18px/1.6 var(--font-sans); color: var(--ink-soft); margin: 0; }

.gq-prog { margin: 0 0 clamp(28px, 4vw, 40px); }
.gq-prog__lbl { margin: 0 0 12px; font: 500 14px/1 var(--font-sans); color: var(--ink-mute); font-variant-numeric: tabular-nums; }
.gq-prog__track { height: 6px; border-radius: 999px; background: rgba(17,17,16,.08); overflow: hidden; }
.gq-prog__track i { display: block; height: 100%; border-radius: 999px; background: var(--ink); transition: width .45s cubic-bezier(.2,.7,.2,1); }

.gq-q { font-family: var(--font-serif); font-weight: 400; font-variation-settings: 'SOFT' 50; font-size: clamp(30px, 3.4vw, 44px); line-height: 1.1; letter-spacing: -.022em; color: var(--ink); margin: 0; }
.gq-q__help { margin: 16px 0 0; font: 300 clamp(16.5px, 1.2vw, 18px)/1.6 var(--font-sans); color: var(--ink-soft); max-width: 52ch; }

.gq-opts { display: grid; gap: 12px; margin: clamp(28px, 3.5vw, 40px) 0 0; }
.gq-opt {
    display: flex; align-items: center; gap: 16px; width: 100%; min-height: 68px; text-align: left;
    background: #fff; border: 1.5px solid rgba(17,17,16,.12); border-radius: 18px;
    padding: 16px 20px; cursor: pointer; font: inherit; color: var(--ink);
    transition: all .2s cubic-bezier(.2,.7,.2,1);
}
.gq-opt:hover { border-color: rgba(17,17,16,.4); transform: translateY(-1px); box-shadow: var(--shadow-tile); }
.gq-opt__dot { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid rgba(17,17,16,.3); position: relative; transition: all .2s cubic-bezier(.2,.7,.2,1); }
.gq-opt.is-on { border-color: var(--ink); background: var(--panel, #f6f6f4); }
.gq-opt.is-on .gq-opt__dot { background: var(--ink); border-color: var(--ink); }
.gq-opt.is-on .gq-opt__dot::after { content: ""; position: absolute; left: 6.5px; top: 8px; width: 8px; height: 4px; border-left: 1.8px solid #fff; border-bottom: 1.8px solid #fff; transform: rotate(-45deg); }
.gq-opt__txt { display: block; min-width: 0; }
.gq-opt__txt b { display: block; font: 500 18px/1.3 var(--font-sans); }
.gq-opt__txt small { display: block; margin-top: 3px; font: 400 14px/1.4 var(--font-sans); color: var(--ink-mute); }

.gq-nav { display: flex; justify-content: space-between; align-items: center; margin: clamp(22px, 3vw, 30px) 0 0; }
.gq-back { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 8px 0; cursor: pointer; font: 400 15px/1 var(--font-sans); color: var(--ink-mute); transition: color .25s cubic-bezier(.2,.7,.2,1); }
.gq-back:hover { color: var(--ink); }
.gq-back svg { width: 16px; height: 16px; }

/* details gate + step 2 */
.gq-form { display: grid; gap: 18px; margin: clamp(26px, 3.5vw, 36px) 0 0; }
.gq-field { display: grid; gap: 8px; }
.gq-field > span { font: 500 15px/1.3 var(--font-sans); color: var(--ink); }
.gq-field input, .gq-field select {
    height: 58px; border-radius: 14px; border: 1.5px solid rgba(17,17,16,.14); background: #fff;
    padding: 0 18px; font: 400 17px/1 var(--font-sans); color: var(--ink); width: 100%;
    transition: all .2s cubic-bezier(.2,.7,.2,1);
}
.gq-field select { appearance: none; -webkit-appearance: none; cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141413' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 16px center; background-size: 18px; padding-right: 48px; }
.gq-field input::placeholder { color: var(--ink-mute); }
.gq-field input:focus, .gq-field select:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(17,17,16,.06); }
.gq-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.gq-chip { height: 50px; padding: 0 22px; border-radius: 999px; border: 1.5px solid rgba(17,17,16,.14); background: #fff; color: var(--ink); cursor: pointer; font: 500 16px/1 var(--font-sans); transition: all .2s cubic-bezier(.2,.7,.2,1); }
.gq-chip:hover { border-color: rgba(17,17,16,.4); }
.gq-chip.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.gq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.gq-submit { width: 100%; margin-top: 6px; }
.gq-submit.is-busy { opacity: .6; pointer-events: none; }
.gq-err { margin: 0; font: 400 15px/1.5 var(--font-sans); color: var(--status-problem); }
.gq-fine { margin: 2px 0 0; font: 300 13.5px/1.5 var(--font-sans); color: var(--ink-mute); text-align: center; }
.gq-fine a { color: inherit; }
.gq-actions { margin-top: 28px; }

/* ============================================================
   4 · responsive
   ============================================================ */
@media (max-width: 1000px) {
    .gqh__grid { grid-template-columns: minmax(0, 1fr); }
    .gqh__h1 { max-width: 15ch; }
    .gqh__art { max-width: 600px; }
}
@media (max-width: 900px) {
    .gq-what { grid-template-columns: minmax(0, 1fr); }
    .gqx-quotes { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
    .gqx-contents { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
    .gqx-facts { grid-template-columns: minmax(0, 1fr); }
    .gqx-facts > div + div { border-left: 0; border-top: 1px solid rgba(17,17,16,.08); }
    .gqh__art { padding: 24px 0 0; }
    .gqb { transform: none; }
    .gqb__cover { padding: 44px 26px 56px 46px; }
    .gqg-includes { grid-template-columns: minmax(0, 1fr); width: calc(100% - 24px); }
    .gqg-includes__score { border-right: 0; border-bottom: 1px solid rgba(17,17,16,.08); }
    .gqg-includes__score b { max-width: none; }
    .gqb__cover::before { inset: 14px 14px 14px 32px; }
    .gqb__based { margin-top: 18px; }
        .gq-card { border-radius: 22px; }
}
@media (max-width: 560px) {
    .gqh__cta .gq-btn { width: 100%; }
    .gq-bar-row { grid-template-columns: 96px minmax(0, 1fr) auto; }
}
@media (prefers-reduced-motion: reduce) {
    .gq-btn, .gq-btn svg, .gq-opt, .gq-opt__dot, .gq-prog__track i, .gq-chip { transition: none; }
}
