/* TG_BOOK_UI_V1: staging booking presentation only. */
.page-book .book { padding-block: clamp(1.5rem, 4vw, 3rem); }
.page-book .book > .shell { max-width: 1160px; }
.page-book .book__head { max-width: 52rem; margin-bottom: 1.25rem; }
.page-book .book__title { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.08; }
.page-book .book__lede { font-size: .94rem; line-height: 1.55; color: #bcb9b1; }
.page-book .book__progress { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 0; max-width: 740px; margin-bottom: 1.5rem; border-bottom: 1px solid #39352c; }
.page-book .book__progress li { min-width: 0; border: 0; border-bottom: 2px solid transparent; padding: .6rem .5rem .75rem; font-family: var(--font-sans); font-size: .8rem; letter-spacing: 0; text-transform: none; color: #aaa69c; line-height: 1.4; }
.page-book .book__progress li span { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; margin-right: .35rem; border: 1px solid #504a3f; border-radius: 50%; font-size: .65rem; font-weight: 600; }
.page-book .book__progress li.is-current { border-bottom-color: var(--accent); color: #f6f0df; font-weight: 600; background: rgba(214,176,100,.06); }
.page-book .book__progress li.is-current span { background: var(--accent); border-color: var(--accent); color: #17130b; }
.page-book .book__progress li.is-done { color: var(--accent-bright); }
.page-book .book__layout { gap: 1.5rem; }
.page-book .book__layout:has(.book__summary[hidden]) { grid-template-columns: minmax(0,1fr); }
.page-book .book__app, .page-book .book__summary { min-width: 0; }
.page-book .bk-head { margin-bottom: 1rem; }
.page-book .book__step-title { font-size: clamp(1.3rem,2vw,1.65rem); line-height: 1.2; margin-bottom: .5rem; scroll-margin-top: 7rem; }
.page-book .book__step-title + p { color: #bcb9b1; font-size: .94rem; line-height: 1.5; }
.page-book .bk-session { font-size: .85rem; margin-bottom: .9rem; opacity: 1; color: #bcb9b1; }
.page-book .bk-session .textlink { font-family: var(--font-sans); font-size: inherit; letter-spacing: 0; text-transform: none; }
.page-book .bk-cards { grid-template-columns: repeat(4,minmax(0,1fr)); gap: .75rem; }
.page-book .bk-cards--barbers { grid-template-columns: repeat(3,minmax(0,1fr)); }
.page-book .bk-cards--barbers .bk-card { min-height: 72px; justify-content: center; }
.page-book .bk-card { padding: 1rem; gap: .5rem; min-height: 138px; clip-path: none; border-radius: 6px !important; border-color: #514632 !important; background: linear-gradient(145deg,#191712,#11100d); }
.page-book .bk-card::before, .page-book .bk-card::after { display: none; }
.page-book .bk-card__name { font-family: var(--font-sans); font-size: 1rem; line-height: 1.35; letter-spacing: 0; text-transform: none; font-weight: 650; }
.page-book .bk-card__title { font-family: var(--font-sans); font-size: .75rem; line-height: 1.4; letter-spacing: 0; text-transform: none; color: #d8bd87; opacity: 1; }
.page-book .bk-card__bio { display: block; overflow: visible; font-size: .83rem; line-height: 1.5; color: #bcb9b1; opacity: 1; }
.page-book .bk-card:not(.bk-card--any):not(.bk-card--usual):not(.bk-card--group):not(:disabled) .bk-card__name::after { display: none; }
.page-book .bk-card.is-unavailable { opacity: .7; border-color: #454039 !important; }
.page-book .bk-card--usual.is-unavailable { opacity: 1; background: #11100e; }
.page-book .bk-card--usual.is-unavailable .bk-card__name { color: #b5a27b; }
.page-book .bk-card--usual.is-unavailable .bk-card__title { opacity: 1; color: #a6a198; }
.page-book .bk-card--usual .bk-card__bio--link { opacity: 1; }
.page-book .bk-subhead { margin: 1.25rem 0 .65rem; font-family: var(--font-sans); font-size: .98rem; font-weight: 600; line-height: 1.4; letter-spacing: 0; text-transform: none; }
.page-book .bk-cat { clip-path: none; border-radius: 6px !important; border-color: #454037 !important; background: #14120f; margin-bottom: .65rem; }
.page-book .bk-cat__title { min-height: 56px; font-family: var(--font-sans); font-size: 1rem; line-height: 1.4; text-transform: none; letter-spacing: 0; gap: .5rem; }
.page-book .bk-cat__count { font-family: var(--font-sans); font-size: .75rem; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.page-book .bk-svc { border-radius: 4px !important; padding: .85rem; background: #1b1813; }
.page-book .bk-svc__top { line-height: 1.45; font-size: .94rem; }
.page-book .bk-svc__price { font-family: var(--font-sans); font-size: .95rem; white-space: nowrap; flex-shrink: 0; }
.page-book .bk-svc__meta { font-family: var(--font-sans); font-size: .8rem; line-height: 1.4; text-transform: none; letter-spacing: 0; color: #bcb9b1; opacity: 1; }
.page-book .book__summary { clip-path: none; border-radius: 6px !important; padding: 1.1rem; border-color: #514632 !important; }
.page-book .book__summary::before, .page-book .book__summary::after { display: none; }
.page-book .book__summary-title { font-size: 1.2rem; line-height: 1.3; }
.page-book .bk-dl { grid-template-columns: minmax(65px,max-content) minmax(0,1fr); gap: .75rem 1rem; font-size: .9rem; line-height: 1.5; }
.page-book .bk-dl dt { font-family: var(--font-sans); font-size: .8rem; letter-spacing: 0; text-transform: none; color: #bcb9b1; opacity: 1; }
.page-book .bk-dl dd { overflow-wrap: anywhere; }
.page-book .bk-form { max-width: 700px; gap: 1rem; }
.page-book .bk-row { gap: 1rem; }
.page-book .bk-field { min-width: 0; gap: .4rem; }
.page-book .bk-label { font-size: .9rem; line-height: 1.45; }
.page-book :is(.bk-input,.bk-gin) { width: 100%; min-width: 0; min-height: 48px; padding: .75rem .85rem; border-radius: 5px; background: #191712; border-color: #635b4e; font-size: 1rem; }
.page-book textarea.bk-input { min-height: 100px; resize: vertical; }
.page-book :is(.bk-input,.bk-gin)::placeholder { color: #aaa69c; }
.page-book .bk-hint { margin: 0; font-size: .82rem; line-height: 1.5; color: #bcb9b1; opacity: 1; }
.page-book .bk-check { font-size: .9rem; line-height: 1.5; gap: .75rem; }
.page-book .bk-check input { accent-color: var(--accent); }
.page-book .bk-policy { color: #c4c0b6; font-size: .85rem; background: #14120f; }
.page-book .bk-policy-more summary { padding-block: .5rem; font-size: .85rem; color: var(--accent-bright); }
.page-book .bk-person { background: #14120f; padding: 1rem; border-color: #514632; border-radius: 6px; }
.page-book .bk-person .bk-subhead { margin: 0 0 .6rem; }
.page-book .bk-gfield > span { opacity: 1; color: #c4c0b6; }
.page-book :is(.bk-plan,.bk-earliest,.bk-resume) { border-radius: 6px; background: linear-gradient(145deg,#211b10,#14120f); border-color: #6c5732; padding: 1rem; }
.page-book .bk-plan__list { font-size: .9rem; line-height: 1.65; }
.page-book .bk-soonline { font-size: 1rem; line-height: 1.55; }
.page-book .bk-resume { flex-direction: row; align-items: center; flex-wrap: wrap; gap: .75rem 1rem; }
.page-book .bk-resume .bk-soonline { flex-basis: 100%; }
.page-book .bk-resume .bk-back { margin-left: auto; }
.page-book .bk-back, .page-book .bk-more { font-family: var(--font-sans); font-size: .87rem; letter-spacing: 0; text-transform: none; opacity: 1; min-height: 44px; color: var(--accent-bright); }
.page-book .bk-actions { margin-top: 1.25rem; gap: .75rem; }
.page-book .book__app .button { min-height: 48px; font-family: var(--font-sans); font-weight: 650; font-size: .9rem; letter-spacing: .01em; text-transform: none; padding: .75rem 1.2rem; }
.page-book .book__app .button--compact { min-height: 44px; padding: .6rem .85rem; font-size: .85rem; }
.page-book .bk-views { gap: .5rem; }
.page-book .bk-view { padding: .6rem .85rem; font-size: .85rem; border-radius: 4px; }
.page-book .bk-pref__chip { min-height: 48px; }
.page-book .bk-pref__hint { color: #bcb9b1; opacity: 1; }
.page-book .bk-times { display: grid; grid-template-columns: repeat(auto-fill,minmax(100px,1fr)); gap: .5rem; max-width: 760px; }
.page-book .bk-time { min-width: 0; border-radius: 4px; background: #191712; border-color: #514a3e; }
.page-book .bk-pager__label { letter-spacing: 0; font-size: .9rem; line-height: 1.4; }
.page-book .bk-cal__day { border-radius: 4px; }
.page-book .bk-period__name { color: #bcb9b1; opacity: 1; letter-spacing: .07em; }
.page-book .bk-hold { border-radius: 4px; font-size: .88rem; line-height: 1.5; }
.page-book .bk-field-err { color: #ff9c94; line-height: 1.4; }
.page-book .book__app :is(button,a,input,select,textarea,summary):focus-visible { outline: 2px solid #f5d48f; outline-offset: 3px; }
@media (max-width: 960px) {
 .page-book .bk-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .page-book .bk-cards--barbers { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 600px) {
 .page-book .book { padding-block: 1.25rem 2rem; }
 .page-book .book > .shell { padding-inline: 1rem; }
 .page-book .book__head { margin-bottom: 1rem; }
 .page-book .book__head .eyebrow { font-size: .65rem; letter-spacing: .14em; }
 .page-book .book__title { font-size: 2rem; }
 .page-book .book__lede { font-size: .85rem; }
 .page-book .book__progress { margin-bottom: 1.1rem; }
 .page-book .book__progress li { display: flex; flex-direction: column; align-items: center; gap: .35rem; padding: .5rem .1rem .6rem; text-align: center; font-size: .64rem; line-height: 1.35; }
 .page-book .book__progress li span { margin: 0; width: 1.4rem; height: 1.4rem; }
 .page-book .bk-cards { grid-template-columns: minmax(0,1fr); gap: .6rem; }
 .page-book .bk-card { min-height: 0; padding: .85rem 1rem; gap: .25rem; }
 .page-book .bk-card__name { font-size: 1rem; }
 .page-book .bk-card__bio { font-size: .81rem; line-height: 1.45; }
 .page-book .bk-cards--barbers { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .45rem; }
 .page-book .bk-cards--barbers .bk-card { padding: .75rem .5rem; align-items: center; justify-content: center; text-align: center; min-height: 72px; }
 .page-book .bk-cards--barbers .bk-card__name { font-size: .85rem; }
 .page-book .bk-row { grid-template-columns: minmax(0,1fr); }
 .page-book .bk-svc { padding: .75rem; }
 .page-book .bk-svc__top { font-size: .87rem; gap: .65rem; }
 .page-book .bk-cat { padding-inline: .75rem; }
 .page-book .bk-cat__title { font-size: .94rem; }
 .page-book .bk-dl { gap: .6rem .75rem; }
 .page-book .bk-actions { align-items: stretch; }
 .page-book .bk-actions > .button { width: 100%; }
 .page-book .bk-soon-actions .button { width: 100%; }
 .page-book .bk-views { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
 .page-book .bk-view { width: 100%; padding-inline: .4rem; }
 .page-book .bk-cal { gap: 3px; }
 .page-book .bk-cal__day { min-width: 0; }
 .page-book .bk-cal__wd { letter-spacing: 0; font-size: .62rem; }
 .page-book .bk-times { grid-template-columns: repeat(3,minmax(0,1fr)); }
 .page-book .bk-time { padding-inline: .3rem; font-size: .88rem; }
 .page-book .bk-pager__btn { width: 44px; height: 44px; flex-shrink: 0; }
 .page-book .bk-resume .bk-back { margin-left: 0; }
 .page-book .footer__credit { overflow-wrap: anywhere; min-width: 0; }
 .page-book .footer__credit-mail { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
 .page-book .book__app * { transition: none; }
}

.page-book .bk-review { padding: 1rem; margin-bottom: 1rem; border: 1px solid #454037; border-radius: 6px; background: #14120f; }
.page-book .bk-review dd:has(.bk-more) { position: relative; padding-right: 70px; min-height: 44px; }
.page-book .bk-review dd > .bk-more { position: absolute; right: 0; top: -.5rem; padding: .5rem 0 .5rem .4rem; }
@media (max-width: 600px) {
 .page-book .bk-views { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .35rem; }
 .page-book .bk-review { grid-template-columns: minmax(0,1fr); gap: .3rem; padding: .85rem; }
 .page-book .bk-review dd { margin-bottom: .65rem; font-weight: 550; }
 .page-book .bk-review dd:last-child { margin-bottom: 0; }
 .page-book .bk-review dd:has(.bk-more) { padding-right: 58px; }
}

/* Uniform gold booking cards. */
.page-book .bk-card :is(.bk-card__name,.bk-card__title,.bk-card__bio,.textlink),
.page-book .bk-card--usual.is-unavailable :is(.bk-card__name,.bk-card__title,.bk-card__bio) {
 color: var(--accent-bright); opacity: 1;
}

.page-book .bk-cards--barbers .bk-card :is(.bk-card__name,.bk-card__title,.bk-card__bio,.textlink) { color: var(--text); }

.page-book .bk-card :is(.bk-card__title,.bk-card__bio,.bk-card__bio .textlink),
.page-book .bk-card--usual.is-unavailable :is(.bk-card__title,.bk-card__bio,.bk-card__bio .textlink) { color: var(--text); opacity: 1; }

/* Sign In uses the same gold as booking titles. */
.page-book :is(.bk-session,.bk-card--usual) a[href="/portal/signin"] { color: var(--accent-bright) !important; }
