/* Zibayab Phase 13 — generated component slice. Keep selectors scoped to their owning surface. */
/* Frontend quality owner: selectors are scoped to body.zy-design-v2 so component rules do not need blanket !important. *//**
 * Zibayab frontend quality — final CRO + UI/UX layer.
 * Loaded last on public discovery/decision surfaces. This file intentionally
 * owns only cross-surface hierarchy, readability and conversion safeguards.
 */:root{
  --zy-cro-touch:48px;
  --zy-cro-rule:color-mix(in srgb,var(--zy-line) 78%,transparent);
  --zy-cro-muted-size:.72rem;
  --zy-cro-ui-size:.76rem;
  --zy-cro-action-radius:10px;
}/* One interaction language: primary is unmistakable, secondary is quiet. */body.zy-design-v2 :where(.button.button-primary,.zy-ui-action--primary){
  background:var(--zy-ink);
  border-color:var(--zy-ink);
  color:var(--zy-bg);
  box-shadow:none;
  font-weight:800;
}body.zy-design-v2 :where(.button.button-primary,.zy-ui-action--primary):hover{
  background:var(--zy-ink-2);
  border-color:var(--zy-ink-2);
}body.zy-design-v2 :where(.button.button-secondary,.zy-ui-action--secondary){
  background:transparent;
  border-color:var(--zy-line-strong);
  color:var(--zy-ink);
  box-shadow:none;
}body.zy-design-v2 :where(.button.button-quiet,.zy-ui-action--quiet){
  background:transparent;
  border-color:transparent;
  color:var(--zy-muted);
  box-shadow:none;
}body.zy-design-v2 :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:2px solid var(--zy-brand);
  outline-offset:3px;
  box-shadow:none;
}/* Consistent page rhythm: whitespace separates ideas; boxes are reserved for actions. */body.zy-design-v2 :where(.market-section-head,.fresha-route-section__head,.profile-dt-section-head,.price-section-heading){
  gap:16px;
}body.zy-design-v2 :where(.market-section-head__copy,.fresha-route-section__head>div,.profile-dt-section-head>div,.price-section-heading>div) p{
  max-width:720px;
}body.zy-design-v2 :where(.market-eyebrow,.provider-result__specialty,.zy-hub-item__meta,.home-recent-card small){
  letter-spacing:0;
}/* Provider cards are the core monetisation surface: keep decision facts readable. *//* Contact is a deliberate lead action, not a generic modal. */body.zy-design-v2 .zy-contact-sheet__action strong{font-size:.82rem;}body.zy-design-v2 .zy-contact-sheet__action small{font-size:.72rem;line-height:1.55;}body.zy-design-v2 .zy-contact-sheet__note{font-size:.72rem;line-height:1.8;}body.zy-design-v2 .zy-contact-sheet__action:focus-visible{outline-offset:-2px;}/* Home: readable shortcuts without turning the landing page back into a dashboard. *//* Hubs: routes stay compact, but metadata must not become microcopy. */body.zy-design-v2 .zy-hub-item__copy small{font-size:.72rem;line-height:1.6;}body.zy-design-v2 .zy-hub-item__meta,body.zy-design-v2 .hub-disclosure>summary small{font-size:.72rem;}body.zy-design-v2 .hub-context-bar{font-size:.72rem;}/* Need intelligence: trade-offs and local availability are decision data, not captions. */body.zy-design-v2 .need-path-filter small{font-size:.72rem;}body.zy-design-v2 .need-path-card__role,body.zy-design-v2 .need-path-card__availability{font-size:.72rem;}body.zy-design-v2 .need-path-card__facts small{font-size:.72rem;}body.zy-design-v2 .need-path-card__facts strong{font-size:.72rem;}body.zy-design-v2 .need-path-card__facts em{font-size:.72rem;}body.zy-design-v2 .need-path-card__actions .button{min-height:44px;font-size:.75rem;}body.zy-design-v2 .need-path-card__guide,body.zy-design-v2 .need-decision-disclaimer{font-size:.72rem;}/* City×Service: keep the comparison table present on every viewport and make filters legible. */body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-overview{display:block;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table-wrap{
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  border-radius:0;
  box-shadow:none;
}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table thead th{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table td{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__badge{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action .button{min-height:38px;font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__summary small,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__status,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-reset{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__summary strong{font-size:.73rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__active-count{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-select select,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-chip span,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-submit{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-chip small{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .city-service-results-context{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .city-service-result-nudge__items span{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .city-service-result-nudge>a{font-size:.72rem;}/* Price cards: the number and provider action outrank editorial analysis. *//* Profile: trust stays visible, details stay secondary. */body.zy-design-v2 .profile-marketplace--v5 .profile-dt-badges .provider-verified{font-size:.72rem;}/* Long-form content remains visibly secondary, but links are discoverable. */body.zy-design-v2 :where(.landing-editorial-prose,.article-prose,.profile-richtext) a:not(.button){
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-decoration-color:color-mix(in srgb,var(--zy-brand) 38%,transparent);
  text-underline-offset:3px;
}body.zy-design-v2 :where(.landing-editorial-prose,.article-prose,.profile-richtext) a:not(.button):hover{color:var(--zy-brand-strong);}/* Mobile final pass: one thumb-zone, readable metadata, no squeezed three-action rows. */@media(max-width:760px){:root{--zy-cro-muted-size:.72rem;--zy-cro-ui-size:.76rem}body.zy-design-v2 :where(.button,input:not([type="checkbox"]):not([type="radio"]),select,textarea){min-height:var(--zy-cro-touch);}body.zy-design-v2 .zy-mobile-conversion-dock__copy strong{font-size:.8rem;}body.zy-design-v2 .zy-mobile-conversion-dock__copy small{font-size:.72rem;}body.zy-design-v2 .zy-mobile-conversion-dock__secondary .zy-mobile-conversion-dock__copy strong{font-size:.72rem;}body.zy-design-v2 .zy-hub-item__copy small,body.zy-design-v2 .zy-hub-item__meta,body.zy-design-v2 .hub-context-bar{font-size:.72rem;}body.zy-design-v2 .need-path-card__facts small,body.zy-design-v2 .need-path-card__facts em{font-size:.72rem;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-overview{padding-top:18px;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table{min-width:720px;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table th,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table td{padding:9px 10px;}body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-select select,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-chip span,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-submit{min-height:42px;}/* Sticky controls should not compete with the persistent conversion dock. */}@media(hover:none) and (pointer:coarse){body.zy-design-v2 :where(.button,.provider-result,.zy-hub-item,.home-need-card,.home-service-card,.need-path-card):hover{transform:none;box-shadow:none;}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}/* Search chrome correction — one outer shell; inner fields stay flat without specificity hacks. *//* Directory structure refinement — hierarchy without nested cards. *//* Full taxonomy tree: groups and links, not cards inside cards. *//* Provider acquisition band: deterministic contrast in both light and dark themes. *//* Final search state — selection is expressed with a quiet fill, never an inner frame. */body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table{
  min-width:0;
  table-layout:fixed;
}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-cell{width:22%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__type{width:16%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__decision-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__decision{width:26%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location{width:21%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action{width:15%;}@media(max-width:760px){body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table-wrap{overflow-x:hidden;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table{width:100%;min-width:0;table-layout:fixed;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__type,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location{display:none;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-cell{width:40%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__decision-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__decision{width:35%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action{width:25%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table th,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table td{padding:8px 6px;white-space:normal;overflow-wrap:anywhere;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider{display:block;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__decision{font-size:.72rem;line-height:1.7;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__badge{display:inline-flex;margin-top:3px;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action .button{width:100%;min-width:0;padding-inline:6px;}}/* Final layout polish 20.27.5 — direct comparison table, mobile filter rail, balanced table columns. */body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-overview{
  padding:0 0 18px;
}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table-wrap{
  margin-top:0;
}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action-head{
  text-align:left;
}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action{
  text-align:left;
}@media(max-width:760px){/* Canonical mobile controls: one visible Filter action + one Sort control; facets live in the bottom sheet. */body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__controls{
    min-width:0;
    max-width:100%;
  }body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__controls{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:7px;
    width:100%;
    overflow:visible;
    padding:0;
    touch-action:auto;
  }body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__controls>.local-filter-mobile-trigger,body.zy-design-v2 .fresha-city-landing.axis-service .local-filter-form__controls>.local-filter-select--sort{
    width:100%;
    min-width:0;
  }/* Three-column mobile comparison remains a real table: provider, neighborhood, action. */body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table{display:table;width:100%;min-width:0;table-layout:fixed;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table thead{display:table-header-group;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table tbody{display:table-row-group;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table tbody tr{display:table-row;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-cell{display:table-cell;width:43%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__type,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__decision,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__decision-head{display:none;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location{display:table-cell;width:33%;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action{display:table-cell;width:24%;text-align:left;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table th,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table td{padding:8px 5px;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__provider-cell{padding-inline-start:2px;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__location{padding-inline:4px 2px;}body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action-head,body.zy-design-v2 .fresha-city-landing.axis-service .local-provider-quick-table__action{padding-inline-end:2px;}}/* Single article final polish 20.29.1 — calmer type, clearer next-step surfaces, no nested provider frame. *//* Parent-guide callout: warm editorial cue rather than a bordered box. *//* Continue-path rail: a quiet warm surface with one obvious action. *//* Article refinement 20.29.2 — restore the calmer boxed reading rail shown in the preferred layout. *//* Preferred desktop reading rail: contained TOC + contained next-step card. *//* Preferred parent-guide card: return to the clearer contained treatment. *//* Mobile search sheet polish 20.29.4 — one calm shell, no focus rings inside it. */
