/* =================================================================
   ARCHERY GEAR JUNKIE — interactive tools CSS
   Quiz · Draw Length · Spine · Setup Planner · Hunting Generator
   Arrow Builder · Tuning · Range Map · Comparison
   ================================================================= */

.agj-tool { position: relative; }

.agj-quiz__shell, .agj-draw__shell, .agj-spine__shell, .agj-planner__shell,
.agj-builder__shell, .agj-tune__shell, .agj-map__shell, .agj-hsg__panel,
.agj-compare__shell {
	background: linear-gradient(180deg, var(--agj-surface), var(--agj-surface-2));
	border: 1px solid var(--agj-line-strong);
	border-radius: 22px;
	padding: clamp(20px, 4vw, 36px);
	position: relative; overflow: hidden;
}
.agj-quiz__shell::after, .agj-spine__shell::after, .agj-planner__shell::after, .agj-builder__shell::after {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(circle at 0% 0%, rgba(217,106,44,.08), transparent 45%),
				radial-gradient(circle at 100% 100%, rgba(90,107,59,.10), transparent 45%);
}

/* ----------- form primitives shared by tools ----------- */
.agj-tool label, .agj-quiz label, .agj-draw label, .agj-spine label, .agj-planner label, .agj-builder label {
	display: grid; gap: 6px;
}
.agj-tool input, .agj-tool select,
.agj-draw__form input, .agj-draw__form select,
.agj-spine__form input, .agj-spine__form select,
.agj-planner__form input, .agj-planner__form select,
.agj-builder__form input, .agj-builder__form select {
	background: rgba(0,0,0,.3); border: 1px solid var(--agj-line-strong);
	color: var(--agj-text); padding: 12px 14px; border-radius: 10px;
	font-size: 15px; font-family: var(--agj-body);
}
.agj-tool input:focus, .agj-tool select:focus { outline: 0; border-color: var(--agj-accent); box-shadow: 0 0 0 3px rgba(217,106,44,.18); }

/* ============================================================
   QUIZ
   ============================================================ */
.agj-quiz__progress { height: 6px; background: rgba(255,255,255,.06); border-radius: 999px; overflow: hidden; margin-bottom: 10px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04); }
.agj-quiz__bar { height: 100%; background: linear-gradient(90deg, var(--agj-accent), var(--agj-bronze)); transition: width .45s cubic-bezier(.2,.8,.2,1); box-shadow: 0 0 12px rgba(217,106,44,.35); border-radius: 999px; }
.agj-quiz__step-counter { font-family: var(--agj-mono); font-size: 11.5px; color: var(--agj-muted); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 22px; text-align: right; }
.agj-quiz__step-counter strong { color: var(--agj-accent); font-size: 14px; margin-right: 4px; font-weight: 800; }
.agj-quiz__step-counter span { color: var(--agj-muted); }
.agj-quiz__head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 22px; }
.agj-quiz__pips { list-style: none; padding: 0; margin: 0; display: flex; gap: 6px; }
.agj-quiz__pips li {
	width: 26px; height: 26px; border-radius: 50%;
	background: rgba(255,255,255,.04); border: 1px solid var(--agj-line-strong);
	color: var(--agj-muted); font-family: var(--agj-mono); font-size: 11px; font-weight: 700;
	display: grid; place-items: center;
	transition: all .25s ease;
}
.agj-quiz__pips li.is-done { background: var(--agj-olive); border-color: transparent; color: #fff; }
.agj-quiz__pips li.is-current { background: var(--agj-accent); border-color: transparent; color: #0a0a0a; transform: scale(1.1); box-shadow: 0 0 14px rgba(217,106,44,.5); }
@media (max-width: 600px) {
	.agj-quiz__pips li { width: 22px; height: 22px; font-size: 10px; }
}
.agj-quiz__steps { position: relative; min-height: 320px; }
.agj-quiz__step {
	display: none; position: relative;
	animation: agj-quiz-in .35s cubic-bezier(.2,.8,.2,1) both;
}
.agj-quiz__step.is-active { display: block; }
@keyframes agj-quiz-in { 0% { opacity: 0; transform: translateY(12px); } 100% { opacity: 1; transform: translateY(0); } }
.agj-quiz__step h3 { font-size: clamp(1.1rem, 2.4vw, 1.5rem); margin: 0 0 18px; }
.agj-quiz__opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; }
.agj-quiz__opts--grid { grid-template-columns: repeat(auto-fit, minmax(80px, 1fr)); }
.agj-quiz__opts button {
	background: var(--agj-surface-2); border: 1px solid var(--agj-line-strong);
	color: var(--agj-text); padding: 14px 16px; border-radius: 12px;
	display: flex; align-items: center; gap: 10px; font-family: var(--agj-head); font-weight: 600;
	font-size: 14px; transition: all .2s ease; text-align: left;
}
.agj-quiz__opts button:hover { border-color: var(--agj-accent); background: rgba(217,106,44,.08); transform: translateY(-1px); }
.agj-quiz__opts button.is-selected { background: var(--agj-accent); border-color: transparent; color: #0a0a0a; }
.agj-quiz__opts button .agj-icon { color: var(--agj-accent); }
.agj-quiz__opts button.is-selected .agj-icon { color: #0a0a0a; }
.agj-quiz__nav { margin-top: 22px; }
.agj-quiz__back { background: transparent; border: 0; color: var(--agj-muted); font-family: var(--agj-mono); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.agj-quiz__back:hover { color: var(--agj-accent); }

.agj-quiz__result { display: none; }
.agj-quiz__result.is-active { display: block; }
.agj-quiz__result-card {
	background: linear-gradient(135deg, rgba(217,106,44,.12), transparent 60%);
	border: 1px solid var(--agj-accent);
	border-radius: 18px; padding: 28px;
	display: grid; gap: 18px;
}
.agj-quiz__result-card h3 { font-size: 1.4rem; margin: 0; }
.agj-quiz__result-rows { display: grid; gap: 10px; }
.agj-quiz__result-row { display: grid; grid-template-columns: 130px 1fr; gap: 16px; align-items: center; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.05); }
.agj-quiz__result-row:last-child { border-bottom: 0; }
.agj-quiz__result-row dt { font-family: var(--agj-mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--agj-muted); margin: 0; }
.agj-quiz__result-row dd { margin: 0; color: var(--agj-text); font-weight: 600; }
.agj-quiz__result-actions { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }

/* ============================================================
   DRAW LENGTH
   ============================================================ */
.agj-draw__shell, .agj-spine__shell {
	display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
}
.agj-draw__form, .agj-spine__form, .agj-planner__form {
	display: grid; gap: 14px; align-content: start;
}
.agj-draw__diagram { background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 14px; padding: 18px; }
.agj-draw__svg { width: 100%; height: auto; }
.agj-draw__stats, .agj-spine__stats, .agj-planner__rows {
	display: grid; gap: 10px; margin-top: 18px;
}
.agj-draw__stats > div, .agj-spine__stats > div { display: grid; grid-template-columns: 160px 1fr; gap: 14px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.05); }
.agj-draw__stats > div:last-child, .agj-spine__stats > div:last-child { border-bottom: 0; }
.agj-draw__stats dt, .agj-spine__stats dt { font-family: var(--agj-mono); font-size: 11.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--agj-muted); margin: 0; }
.agj-draw__stats dd, .agj-spine__stats dd { margin: 0; color: var(--agj-text); font-family: var(--agj-head); font-weight: 700; }

/* ============================================================
   SPINE
   ============================================================ */
.agj-spine__chart { background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 14px; padding: 22px; }
.agj-spine__curve { margin: 18px 0 0; padding: 14px; background: rgba(0,0,0,.3); border: 1px solid var(--agj-line); border-radius: 14px; }
.agj-spine__curve-svg { width: 100%; height: auto; display: block; }
.agj-spine__curve figcaption { font-size: 11.5px; color: var(--agj-muted); text-align: center; margin-top: 8px; font-family: var(--agj-mono); letter-spacing: .08em; }
[data-agj-spine-dot] { transition: transform .55s cubic-bezier(.2,.8,.2,1); }
[data-agj-spine-curve], [data-agj-spine-curve-glow] { transition: d .55s cubic-bezier(.2,.8,.2,1); }
.agj-spine__chart-axis, .agj-spine__chart-labels { display: flex; justify-content: space-between; font-family: var(--agj-mono); font-size: 11px; color: var(--agj-muted); letter-spacing: .12em; }
.agj-spine__chart-track { position: relative; height: 18px; background: linear-gradient(90deg, #b03a3a, #d96a2c, #6ea24b, #d96a2c, #b03a3a); border-radius: 999px; margin: 14px 0 8px; overflow: hidden; }
.agj-spine__chart-fill { position: absolute; inset: 0; background: rgba(0,0,0,.4); transition: width .5s cubic-bezier(.2,.8,.2,1); }
.agj-spine__chart-marker { position: absolute; top: -6px; bottom: -6px; width: 4px; background: #fff; border-radius: 4px; box-shadow: 0 0 12px rgba(255,255,255,.45); transform: translateX(-50%); left: 0%; transition: left .5s cubic-bezier(.2,.8,.2,1); }
.agj-spine__suggested { margin-top: 16px; }
.agj-spine__suggested .agj-eyebrow { display: block; margin-bottom: 8px; }
.agj-spine__suggested ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.agj-spine__suggested li { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 10px; font-size: 13.5px; }
.agj-spine__suggested li a { color: var(--agj-accent); font-family: var(--agj-mono); font-size: 11.5px; letter-spacing: .12em; }
.agj-spine__actions { display: flex; gap: 8px; margin-top: 16px; }

/* ============================================================
   PLANNER
   ============================================================ */
.agj-planner__shell { display: grid; grid-template-columns: 320px 1fr; gap: 32px; }
.agj-planner__output { display: grid; gap: 18px; }
.agj-planner__summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.agj-planner__summary > div { padding: 16px; background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 12px; }
.agj-planner__summary .agj-eyebrow { display: block; margin-bottom: 4px; }
.agj-planner__summary strong { font-family: var(--agj-mono); font-size: 1.5rem; color: var(--agj-accent); }
.agj-planner__rows { gap: 8px; }
.agj-planner__row {
	display: grid; grid-template-columns: 56px 1fr auto auto; gap: 14px; align-items: center;
	padding: 14px; background: rgba(0,0,0,.25); border: 1px solid var(--agj-line);
	border-radius: 12px; transition: all .2s ease;
}
.agj-planner__row:hover { border-color: var(--agj-accent); }
.agj-planner__row-icon { width: 56px; height: 56px; display: grid; place-items: center; background: var(--agj-surface-2); border-radius: 10px; color: var(--agj-accent); }
.agj-planner__row-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.agj-planner__row-cat { font-family: var(--agj-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--agj-muted); }
.agj-planner__row-name { font-weight: 700; color: var(--agj-text); }
.agj-planner__row-cost { font-family: var(--agj-mono); color: var(--agj-text-2); font-size: 14px; }
.agj-planner__row .agj-btn { padding: 8px 14px; }
.agj-planner__actions { display: flex; gap: 10px; }

/* ============================================================
   HUNTING SETUP GENERATOR
   ============================================================ */
.agj-hsg__tabs {
	display: flex; gap: 4px; flex-wrap: wrap; padding: 6px;
	background: var(--agj-surface); border: 1px solid var(--agj-line);
	border-radius: 999px; margin: 0 auto 24px; max-width: max-content;
}
.agj-hsg__tabs button {
	background: transparent; border: 0; color: var(--agj-text-2);
	padding: 10px 16px; border-radius: 999px;
	display: flex; align-items: center; gap: 8px;
	font-size: 13px; font-family: var(--agj-head); font-weight: 600;
	transition: all .2s ease;
}
.agj-hsg__tabs button.is-active, .agj-hsg__tabs button:hover { background: var(--agj-accent); color: #0a0a0a; }
.agj-hsg__tabs button .agj-icon { width: 16px; height: 16px; }
.agj-hsg__panel { display: grid; grid-template-columns: 1.6fr 1fr; gap: 24px; }
.agj-hsg__head { grid-column: 1 / -1; }
.agj-hsg__bundle { display: grid; gap: 8px; }
.agj-hsg__row {
	display: grid; grid-template-columns: 36px 1fr auto; gap: 12px; align-items: center;
	padding: 12px 14px; background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 10px;
}
.agj-hsg__row-cat { font-family: var(--agj-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--agj-muted); }
.agj-hsg__row strong { color: var(--agj-text); }
.agj-hsg__advice { background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 14px; padding: 18px; }
.agj-hsg__advice h4 { font-family: var(--agj-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--agj-accent); margin: 0 0 10px; }
.agj-hsg__advice ul { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 6px; font-size: 13.5px; color: var(--agj-text-2); }
.agj-hsg__advice li::before { content: '→  '; color: var(--agj-accent); }

/* ============================================================
   ARROW BUILDER
   ============================================================ */
.agj-builder__shell { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.agj-builder__canvas { background: linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.15)); border: 1px solid var(--agj-line); border-radius: 14px; padding: 22px; display: grid; place-items: center; }
.agj-builder__svg { width: 100%; height: auto; }
.agj-builder__form { display: grid; gap: 14px; align-content: start; }
.agj-builder__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 6px 0 0; }
.agj-builder__stats > div { background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 10px; padding: 12px; }
.agj-builder__stats dt { font-family: var(--agj-mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--agj-muted); margin: 0 0 4px; }
.agj-builder__stats dd { margin: 0; font-family: var(--agj-mono); font-weight: 700; color: var(--agj-accent); font-size: 1.1rem; }
.agj-builder__actions { display: flex; gap: 10px; margin-top: 6px; }

/* ============================================================
   TUNING ASSISTANT
   ============================================================ */
.agj-tune__list { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 8px; }
.agj-tune__step label { display: grid; grid-template-columns: 24px 36px 1fr; gap: 14px; align-items: start; padding: 14px; background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 12px; cursor: pointer; transition: all .2s ease; }
.agj-tune__step label:hover { border-color: var(--agj-accent); }
.agj-tune__step input[type="checkbox"] { width: 20px; height: 20px; accent-color: var(--agj-accent); margin-top: 2px; }
.agj-tune__num { width: 36px; height: 36px; display: grid; place-items: center; background: var(--agj-surface-2); color: var(--agj-accent); font-family: var(--agj-mono); font-weight: 700; border-radius: 10px; }
.agj-tune__body strong { display: block; margin-bottom: 4px; color: var(--agj-text); }
.agj-tune__body span { color: var(--agj-text-2); font-size: 13.5px; }
.agj-tune__step.is-done label { background: rgba(110,162,75,.08); border-color: rgba(110,162,75,.4); }
.agj-tune__progress { height: 6px; background: rgba(255,255,255,.06); border-radius: 999px; overflow: hidden; }
.agj-tune__progress > div { height: 100%; background: linear-gradient(90deg, var(--agj-accent), var(--agj-success)); transition: width .35s ease; }
.agj-tune__hint { margin: 12px 0 0; color: var(--agj-muted); font-size: 13px; text-align: center; }

/* ============================================================
   RANGE / SHOP MAP
   ============================================================ */
.agj-map__shell { display: grid; grid-template-columns: 320px 1fr; gap: 0; padding: 0; overflow: hidden; }
.agj-map__sidebar { background: var(--agj-surface); border-right: 1px solid var(--agj-line-strong); padding: 22px; }
.agj-map__filters { display: grid; gap: 6px; margin-bottom: 18px; }
.agj-map__filters button {
	display: flex; align-items: center; gap: 10px; padding: 10px 14px;
	background: transparent; border: 1px solid var(--agj-line); color: var(--agj-text-2);
	border-radius: 10px; font-family: var(--agj-head); font-weight: 600; font-size: 13.5px;
	transition: all .2s ease;
}
.agj-map__filters button.is-active, .agj-map__filters button:hover { background: var(--agj-accent); color: #0a0a0a; border-color: transparent; }
.agj-map__filters button .agj-icon { width: 16px; height: 16px; }
.agj-map__list { display: grid; gap: 8px; max-height: 460px; overflow-y: auto; padding-right: 4px; }
.agj-map__list-item { padding: 12px 14px; background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 10px; cursor: pointer; transition: all .2s ease; }
.agj-map__list-item:hover, .agj-map__list-item.is-active { border-color: var(--agj-accent); background: rgba(217,106,44,.06); }
.agj-map__list-name { font-weight: 700; font-size: 14px; }
.agj-map__list-type { font-family: var(--agj-mono); font-size: 10.5px; color: var(--agj-muted); letter-spacing: .14em; text-transform: uppercase; }
.agj-map__canvas { position: relative; min-height: 460px; background: var(--agj-surface-2); }
.agj-map__svg { width: 100%; height: 100%; min-height: 460px; }
.agj-map__pin { cursor: pointer; transform-origin: center; transition: transform .2s ease; }
.agj-map__pin:hover, .agj-map__pin.is-active { transform: scale(1.25); }
.agj-map__pin circle { fill: var(--agj-accent); }
.agj-map__pin.is-shop circle { fill: var(--agj-bronze); }
.agj-map__pin.is-3d circle { fill: var(--agj-olive); }

/* ============================================================
   COMPARISON TABLE
   ============================================================ */
.agj-compare__empty { text-align: center; padding: 40px 20px; }
.agj-compare__empty-icon { color: var(--agj-muted); width: 48px; height: 48px; margin-bottom: 12px; }
.agj-compare__table { display: grid; grid-template-columns: 1fr; gap: 18px; }
.agj-compare__table-grid { display: grid; gap: 14px; }
.agj-compare__row { display: grid; grid-template-columns: 160px repeat(var(--cols, 3), 1fr); gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--agj-line); }
.agj-compare__row--head { font-family: var(--agj-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--agj-accent); border-bottom: 1px solid var(--agj-accent); }
.agj-compare__row-label { color: var(--agj-muted); font-family: var(--agj-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; }
.agj-compare__cell { color: var(--agj-text); font-size: 14px; }
.agj-compare__cell strong { color: var(--agj-accent); }
.agj-compare__cell-product { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; padding: 10px; background: rgba(0,0,0,.25); border: 1px solid var(--agj-line); border-radius: 12px; }
.agj-compare__cell-product .agj-btn { padding: 6px 12px; font-size: 12px; }

/* ============================================================
   responsive — tools collapse to single column on mobile
   ============================================================ */
@media (max-width: 980px) {
	.agj-draw__shell, .agj-spine__shell, .agj-planner__shell, .agj-builder__shell, .agj-hsg__panel, .agj-map__shell {
		grid-template-columns: 1fr;
	}
	.agj-planner__summary { grid-template-columns: 1fr; }
	.agj-map__sidebar { border-right: 0; border-bottom: 1px solid var(--agj-line-strong); }
	.agj-map__list { max-height: 200px; }
	.agj-builder__stats { grid-template-columns: 1fr; }
	.agj-compare__row { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
	.agj-quiz__opts--grid { grid-template-columns: repeat(3, 1fr); }
	.agj-tune__step label { grid-template-columns: 24px 1fr; }
	.agj-tune__num { display: none; }
	.agj-planner__row { grid-template-columns: 44px 1fr; row-gap: 8px; }
	.agj-planner__row .agj-planner__row-cost, .agj-planner__row .agj-btn { grid-column: 2 / -1; justify-self: start; }
}
