/* Find my style, Me, the barber. Tokens and shared parts are in base.css. */

/* Find my style */
.quiz { width: min(680px, 100%); margin-inline: auto; padding: 20px 16px 24px; }
.enter > .quiz { animation: none; } /* Each answer has to feel instant: no entrance between questions. */
.quiz-top { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; min-height: 44px; }
.quiz-count { white-space: nowrap; }
.quiz-skip { margin-left: 4px; }
.quiz-skip.is-off { visibility: hidden; }
.quiz h1 { font-size: clamp(1.875rem, 5vw, 2.5rem); }
.quiz .why { margin-top: 8px; color: var(--ink2); }
.quiz-hint { margin-top: 6px; font-weight: 600; }
.opts.photos { grid-template-columns: 1fr 1fr; }
.opt.pic { position: relative; flex-direction: column; align-items: stretch; padding: 8px; gap: 8px; }
.opt.pic[aria-pressed="true"] { padding: 7px; }
.opt.pic[aria-pressed="true"]::after { display: grid; position: absolute; top: 14px; right: 14px; width: 32px; height: 32px; margin: 0; place-items: center; border-radius: 50%; background: var(--btn); color: var(--btn-ink); font-size: 1.125rem; line-height: 1; box-shadow: 0 0 0 2px var(--surface); }
.dot { width: 28px; height: 28px; border-radius: 50%; flex: none; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .18); }
.group + .group { margin-top: 26px; }
.quiz .why + .group { margin-top: 22px; }
.group .opts { margin-top: 10px; }
.opts.cols2 { grid-template-columns: 1fr 1fr; }
/* The bottom tabs sit over the last 61px on a phone, so the button pins above them. */
.quiz-foot { position: sticky; bottom: calc(61px + env(safe-area-inset-bottom, 0px)); z-index: 5; display: flex; margin: 22px -16px 0; padding: 12px 16px; background: var(--bg); box-shadow: 0 -1px 0 var(--hair); }
.quiz-foot .btn { flex: 1 1 100%; min-height: 56px; }
@media (min-width: 900px) { .quiz-foot { bottom: 0; padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); } }
@media (prefers-reduced-motion: no-preference) { .quiz .bar i { transition: transform 240ms var(--out); } }

/* Me */
.me-head { padding-block: 28px 0; }
.why-line { margin-top: 10px; font-size: 1.125rem; line-height: 1.45; color: var(--ink2); }
.why-line strong { color: var(--ink); }
.chev { width: 20px; height: 20px; flex: none; color: var(--ink2); }
.me-edit-box { margin-top: 14px; border-block: 1px solid var(--hair); }
.me-edit-box summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; font-size: 1.125rem; font-weight: 600; cursor: pointer; list-style: none; }
.me-edit-box summary::-webkit-details-marker { display: none; }
.me-edit-box summary .chev { transition: transform 160ms var(--out); }
.me-edit-box[open] summary .chev { transform: rotate(90deg); }
.me-edit { display: grid; gap: 12px; padding-top: 6px; }
@media (min-width: 480px) { .me-edit { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 860px) { .me-edit { grid-template-columns: repeat(4, 1fr); } }
.me-edit-more { display: flex; flex-wrap: wrap; gap: 0 20px; padding-block: 6px; }
.me-best { padding-block: 28px 8px; }
.why-box { margin-bottom: 20px; padding: 16px; background: var(--surface); border-radius: var(--r); box-shadow: var(--shadow); font-size: 1.125rem; line-height: 1.45; }
.why-box .kick { margin-bottom: 6px; }
.why-box .why-list { display: grid; gap: 4px; }
.picks { display: grid; gap: 28px; }
@media (min-width: 720px) { .picks { grid-template-columns: repeat(3, 1fr); gap: 20px; } }
.card .pick-price { font-weight: 600; color: var(--ink); }
.pick-kick { margin-top: 12px; }
.pick .why-list { margin-top: 4px; display: grid; gap: 4px; font-size: 1.125rem; line-height: 1.4; }
.me-btns { display: grid; gap: 10px; }
@media (min-width: 720px) { .me-btns { grid-template-columns: repeat(auto-fit, minmax(220px, max-content)); } }
/* After the three picks: the free kit, then the offer. Same card as "Why these three". */
.kit-nudge { margin-top: 28px; padding: 18px 16px; background: var(--surface); border-radius: var(--r); box-shadow: var(--shadow); font-size: 1.125rem; line-height: 1.45; }
.kit-nudge h3 { margin-bottom: 6px; }
.kit-nudge .btn { margin-top: 14px; width: 100%; min-height: 52px; }
.me-next { display: grid; gap: 10px; margin-top: 32px; }
@media (min-width: 720px) { .me-next { grid-template-columns: 1fr 1fr; } }
.me-mine { padding-block: 24px 8px; }
.hub-rows { border-top: 1px solid var(--hair); }
.hub-rows li { border-bottom: 1px solid var(--hair); }
.hub-rows a { display: flex; align-items: center; gap: 12px; min-height: 56px; padding-block: 8px; text-decoration: none; transition: opacity 160ms var(--out); }
.hub-rows a:active { opacity: .7; }
.hub-label { flex: none; font-size: 1.125rem; font-weight: 700; line-height: 1.25; }
.hub-count { margin-left: auto; min-width: 0; font-size: 1rem; line-height: 1.3; color: var(--ink2); text-align: right; overflow-wrap: anywhere; }
.me-keep { display: grid; gap: 12px; margin-top: 20px; padding: 16px; background: var(--soft); border-radius: var(--r); }
.me-more { padding-block: 32px 40px; }
.finish { display: grid; gap: 6px; margin-top: 16px; padding: 16px; background: var(--soft); border-radius: var(--r); }
.finish .me-btns { margin-top: 8px; }
.panels { display: grid; gap: 0 48px; margin-top: 16px; }
@media (min-width: 860px) { .panels { grid-template-columns: 1fr 1fr; } }
.panel { padding-block: 20px 24px; border-top: 1px solid var(--hair); min-width: 0; }
.panel h3 { margin-bottom: 8px; }
.panel .small, .finish .small, .barber-note { font-size: 1.125rem; }
.buy-rows { margin-top: 6px; }
.buy-rows li + li { border-top: 1px solid var(--hair); }
.buy-rows a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 52px; padding-block: 8px; text-decoration: none; transition: opacity 160ms var(--out); }
.buy-rows a:active { opacity: .7; }
.buy-name { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.buy-rows .sub { flex: none; font-size: 1rem; }
.swatches { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px 8px; margin-block: 10px 12px; }
@media (min-width: 480px) { .swatches { grid-template-columns: repeat(5, 1fr); } }
.swatch { display: grid; gap: 6px; font-size: .9375rem; line-height: 1.25; }
.swatch i { display: block; aspect-ratio: 3 / 2; border-radius: var(--r-in); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .12); }
.mini-cuts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 4px; }
p.mini-name { margin-top: 6px; font-size: .9375rem; }
.mini-beards { display: flex; flex-wrap: wrap; align-items: center; gap: 0 14px; margin-top: 8px; }
.build-goal { font-weight: 600; }
.panel .why-list { display: grid; gap: 4px; margin-top: 8px; }
.build-set { margin-top: 12px; }
.me-empty { display: grid; gap: 12px; justify-items: start; padding-block: 18px 12px; }
.me-empty-shots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; width: 100%; max-width: 640px; margin-bottom: 8px; }
.me-empty .btn { min-width: min(320px, 100%); margin-top: 4px; }
@media (max-width: 479px) { .me-empty .btn { width: 100%; } }

/* Barber */
.barber { padding-top: 24px; }
.barber-seg { margin-top: 14px; max-width: 360px; }
.barber-chips { margin-top: 6px; }
.seg-a { min-height: 46px; display: grid; place-items: center; border-radius: 9px; font-weight: 600; text-decoration: none; }
.seg-a[aria-current="true"] { background: var(--surface); box-shadow: var(--shadow); font-weight: 700; }
a.chip[aria-current="true"] { background: var(--btn); color: var(--btn-ink); border-color: var(--btn); }
a.chip[aria-current="true"]::before { content: "\2713"; font-weight: 800; }
/* The strip runs to the screen edge and fades out, so he sees there is more. The end padding clears the last one of the fade. */
.strip { display: flex; gap: 10px; overflow-x: auto; margin-inline: -16px; padding: 16px 48px 10px 16px; scroll-padding-inline: 16px; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-mask-image: linear-gradient(90deg, #000 90%, transparent); mask-image: linear-gradient(90deg, #000 90%, transparent); }
.strip::-webkit-scrollbar { display: none; }
@media (min-width: 720px) { .strip { margin-inline: -6px; padding-inline: 6px 48px; scroll-padding-inline: 6px; scrollbar-width: thin; } }
.strip-a { flex: none; width: 108px; scroll-snap-align: start; text-decoration: none; font-size: .9375rem; line-height: 1.25; font-weight: 600; color: var(--ink2); }
.strip-a span { display: block; margin-top: 6px; }
.strip-a[aria-current="true"] { color: var(--ink); font-weight: 700; }
.strip-a[aria-current="true"] .photo { outline: 3px solid var(--ink); outline-offset: -3px; }
/* A choice with no photo, like Clean-shaven: a dark tile, on purpose. */
.photo.strip-none { display: grid; place-items: center; background: var(--btn); color: var(--btn-ink); outline: 0; }
.strip-none svg { width: 40px; height: 40px; }
.card-barber { display: grid; gap: 20px; padding-block: 12px 24px; }
.cb-say .kick { margin-top: 12px; }
.say { margin-top: 8px; padding: 20px; background: var(--surface); border-radius: var(--r); box-shadow: var(--shadow); font-size: clamp(1.5rem, 3.6vw, 2rem); font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.cb-photo .photo img { max-height: 320px; object-position: 50% 20%; } /* Keeps the whole head in the crop, hair to chin. */
.cb-more:empty { display: none; }
.cb-more .block:first-child { margin-top: 0; }
.block h3 { margin-bottom: 4px; }
.barber-note { max-width: 62ch; }
@media (min-width: 860px) {
  .card-barber { max-width: 760px; }
  .card-barber.has-photo { max-width: none; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); grid-template-rows: auto 1fr; gap: 20px 48px; align-items: start; }
  .has-photo .cb-photo { grid-column: 1; grid-row: 1 / span 2; }
  .has-photo .cb-say { grid-column: 2; grid-row: 1; }
  .has-photo .cb-more { grid-column: 2; grid-row: 2; }
  .cb-photo .photo img { max-height: none; }
}
@media (prefers-reduced-motion: reduce) {
  .me-edit-box summary .chev { transition: none; }
}
