﻿/* GPointo public site. Builds on gpointo.css tokens; only var(--g-*) values. */
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.gp-main { flex: 1 0 auto; }

.gp-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 var(--g-space-5); }

/* Header: sticky, translucent panel, thin line */
.gp-header {
  position: sticky; top: 0; z-index: 10;
  background: color-mix(in srgb, var(--g-panel) 85%, transparent);
  -webkit-backdrop-filter: saturate(180%) blur(12px); backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--g-gray-a3);
}
.gp-header__inner { display: flex; align-items: center; gap: var(--g-space-6); height: 64px; }
.gp-header__logo { display: inline-flex; align-items: center; border-radius: var(--g-radius-3); }
.gp-header__logo:hover { text-decoration: none; }
.gp-header__logo .gp-logo { height: 28px; width: auto; }
.gp-header__logo .gp-mark { display: none; height: 28px; width: 28px; }
.gp-header__nav { display: flex; align-items: center; gap: var(--g-space-1); flex: 1; min-width: 0; }
.gp-header__nav a {
  display: inline-flex; align-items: center; height: var(--g-control-2); padding: 0 var(--g-space-3);
  border-radius: var(--g-radius-3); color: var(--g-gray-11); font-weight: 500;
  transition: background-color var(--g-duration-fast) ease, color var(--g-duration-fast) ease;
}
.gp-header__nav a:hover { background: var(--g-gray-3); color: var(--g-gray-12); text-decoration: none; }
.gp-header__nav a[aria-current="page"] { color: var(--g-gray-12); }
.gp-header__tools { display: flex; align-items: center; gap: var(--g-space-1); }

/* Hero: text left, product drawing right */
.gp-hero { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); align-items: center; gap: var(--g-space-9); padding: var(--g-space-9) 0; min-height: calc(100vh - 65px - 81px); } /* header 64 + line, footer 80 + line */
.gp-hero__title {
  font-size: var(--g-font-size-9); line-height: var(--g-line-height-9); letter-spacing: var(--g-letter-spacing-9);
  font-weight: 700; color: var(--g-gray-12); max-width: 17ch; text-wrap: balance;
}
.gp-hero__lead { margin-top: var(--g-space-5); font-size: var(--g-font-size-5); line-height: var(--g-line-height-5); letter-spacing: var(--g-letter-spacing-5); color: var(--g-gray-11); max-width: 30em; text-wrap: pretty; }
.gp-hero__actions { display: flex; flex-wrap: wrap; gap: var(--g-space-3); margin-top: var(--g-space-7); }
.gp-hero__eyebrow { height: var(--g-control-1); padding: 0 var(--g-space-3); margin-bottom: var(--g-space-5); font-size: var(--g-font-size-2); }
.gp-hero__title--wide { max-width: 15ch; }
.gp-hero__aside { display: flex; flex-wrap: wrap; align-items: center; gap: var(--g-space-1) var(--g-space-2); margin-top: var(--g-space-7); color: var(--g-gray-11); }
.gp-hero__actions + .gp-hero__aside { margin-top: var(--g-space-5); }
.gp-hero__aside a { display: inline-flex; align-items: center; gap: var(--g-space-1); font-weight: 500; }

/* Business drawing: one week of a calendar with booked slots */
.gp-art__week {
  position: relative; width: 420px; padding: var(--g-space-4); border-radius: var(--g-radius-6);
  background: var(--g-panel); border: 1px solid var(--g-gray-a3); box-shadow: var(--g-shadow-5);
  display: flex; flex-direction: column; gap: var(--g-space-3);
}
.gp-art__week .gp-art__bar { gap: var(--g-space-3); justify-content: flex-start; }
.gp-art__week .gp-art__bar .gp-art__avatar { margin-left: auto; }
.gp-art__days { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--g-space-2); height: 280px; }
.gp-art__day { display: flex; flex-direction: column; gap: var(--g-space-2); padding: var(--g-space-2); border-radius: var(--g-radius-4); background: var(--g-gray-2); }
.gp-art__day.is-today { background: var(--g-accent-2); box-shadow: inset 0 0 0 1px var(--g-accent-6); }
.gp-art__day-head { height: 8px; width: 60%; border-radius: var(--g-radius-full); background: var(--g-gray-6); margin-bottom: var(--g-space-1); }
.gp-art__day.is-today .gp-art__day-head { background: var(--g-accent-9); }
.gp-art__slot { display: block; height: 32px; border-radius: var(--g-radius-3); border-left: 3px solid; }
.gp-art__slot--h2 { height: 56px; }
.gp-art__slot--accent { background: var(--g-accent-3); border-color: var(--g-accent-9); }
.gp-art__slot--green { background: var(--g-green-3); border-color: var(--g-green-9); }
.gp-art__slot--amber { background: var(--g-amber-3); border-color: var(--g-amber-9); }
.gp-art__slot--gray { background: var(--g-gray-4); border-color: var(--g-gray-8); }
.gp-art__slot--solid { background: var(--g-accent-9); border-color: var(--g-accent-11); }
.gp-art__gap { display: block; height: 32px; }
.gp-art__week { animation: gp-rise var(--g-duration-slow) var(--g-ease-out) both; animation-delay: 120ms; }

/* Pricing in the business context */
.gp-section-head__eyebrow { height: var(--g-control-1); padding: 0 var(--g-space-3); font-size: var(--g-font-size-2); }
.gp-section-head__eyebrow:hover { text-decoration: none; background: var(--g-accent-4); }
.gp-clients-free { display: flex; align-items: center; justify-content: center; gap: var(--g-space-2); margin: calc(var(--g-space-6) * -1) 0 var(--g-space-9); color: var(--g-gray-11); text-align: center; }
.gp-clients-free .gp-icon { color: var(--g-green-11); }
.gp-hero__art { position: relative; display: grid; place-items: center; min-height: 560px; }

/* Drawing: no text, no data. The big dot is the "point" from the logo; one phone gathers every appointment. */
.gp-art__point { position: absolute; width: 440px; height: 440px; border-radius: var(--g-radius-full); background: color-mix(in srgb, var(--g-accent-9) 10%, var(--g-page)); }
.gp-art__phone {
  position: relative; width: 288px; padding: var(--g-space-4); border-radius: 40px;
  background: var(--g-panel); border: 1px solid var(--g-gray-a3); box-shadow: var(--g-shadow-5);
  display: flex; flex-direction: column; gap: var(--g-space-3);
}
.gp-art__bar { display: flex; align-items: center; justify-content: space-between; padding: var(--g-space-2) var(--g-space-2) var(--g-space-1); }
.gp-art__bar .gp-mark { width: 24px; height: 24px; }
.gp-art__avatar { width: 24px; height: 24px; border-radius: var(--g-radius-full); background: var(--g-gray-4); }
.gp-art__line { height: 8px; border-radius: var(--g-radius-full); background: var(--g-gray-4); }
.gp-art__line--title { width: 45%; height: 12px; margin: var(--g-space-1) var(--g-space-2) 0; background: var(--g-gray-6); }
.gp-art__next { display: flex; flex-direction: column; gap: var(--g-space-3); padding: var(--g-space-4); border-radius: var(--g-radius-6); background: var(--g-accent-9); color: var(--g-accent-contrast); }
.gp-art__next-head { display: flex; align-items: center; gap: var(--g-space-2); }
.gp-art__next .gp-art__line { background: var(--g-accent-contrast); opacity: 0.85; }
.gp-art__next .gp-art__line--soft { opacity: 0.45; }
.gp-art__row { display: flex; align-items: center; gap: var(--g-space-3); padding: var(--g-space-2); border-radius: var(--g-radius-5); }
.gp-art__row + .gp-art__row { border-top: 1px solid var(--g-gray-4); border-radius: 0; }
.gp-art__icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--g-radius-4); flex: none; }
.gp-art__icon--accent { background: var(--g-accent-3); color: var(--g-accent-11); }
.gp-art__icon--green { background: var(--g-green-3); color: var(--g-green-11); }
.gp-art__icon--amber { background: var(--g-amber-3); color: var(--g-amber-11); }
.gp-art__icon--gray { background: var(--g-gray-3); color: var(--g-gray-11); }
.gp-art__lines { display: grid; gap: var(--g-space-2); flex: 1; }
.gp-w30 { width: 30%; } .gp-w35 { width: 35%; } .gp-w40 { width: 40%; } .gp-w45 { width: 45%; } .gp-w50 { width: 50%; }
.gp-w55 { width: 55%; } .gp-w60 { width: 60%; } .gp-w70 { width: 70%; } .gp-w75 { width: 75%; } .gp-w80 { width: 80%; }
.gp-w72px { width: 72px; } .gp-w88px { width: 88px; }
.gp-art__pill { width: 36px; height: 16px; border-radius: var(--g-radius-full); background: var(--g-gray-3); }
.gp-art__chip {
  position: absolute; display: flex; align-items: center; gap: var(--g-space-2); padding: var(--g-space-2) var(--g-space-3) var(--g-space-2) var(--g-space-2);
  border-radius: var(--g-radius-full); background: var(--g-panel); border: 1px solid var(--g-gray-a3); box-shadow: var(--g-shadow-4);
}
.gp-art__chip .gp-art__icon { width: 28px; height: 28px; border-radius: var(--g-radius-full); }
.gp-art__chip--a { top: 72px; left: 0; }
.gp-art__chip--b { bottom: 96px; right: 0; }

@keyframes gp-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.gp-hero__text > *, .gp-art__phone, .gp-art__chip { animation: gp-rise var(--g-duration-slow) var(--g-ease-out) both; }
.gp-hero__lead { animation-delay: 60ms; }
.gp-hero__actions { animation-delay: 120ms; }
.gp-art__phone { animation-delay: 120ms; }
.gp-art__chip--a { animation-delay: 300ms; }
.gp-art__chip--b { animation-delay: 420ms; }

/* Section heading (pricing) */
.gp-section-head { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--g-space-3); padding: var(--g-space-9) 0 var(--g-space-7); }
.gp-section-head__title { font-size: var(--g-font-size-8); line-height: var(--g-line-height-8); letter-spacing: var(--g-letter-spacing-8); font-weight: 700; text-wrap: balance; }
.gp-section-head__lead { font-size: var(--g-font-size-4); line-height: var(--g-line-height-4); color: var(--g-gray-11); max-width: 36em; text-wrap: pretty; }
.gp-section-head .gp-segmented { margin-top: var(--g-space-4); }

/* Terms, privacy, refunds, contact: one readable column */
.gp-legal { max-width: 44em; margin: 0 auto; padding-bottom: var(--g-space-9); }
.gp-legal h2 { margin: var(--g-space-7) 0 var(--g-space-2); font-size: var(--g-font-size-5); line-height: var(--g-line-height-5); font-weight: 700; }
.gp-legal > h2:first-child { margin-top: 0; }
.gp-legal p, .gp-legal ul { margin: 0 0 var(--g-space-3); font-size: var(--g-font-size-3); line-height: var(--g-line-height-3); color: var(--g-gray-12); text-wrap: pretty; }
.gp-legal ul { padding-left: var(--g-space-5); }
.gp-legal li + li { margin-top: var(--g-space-2); }
.gp-legal__facts { margin: var(--g-space-4) 0 0; }
.gp-legal p.gp-legal__links { display: flex; flex-wrap: wrap; gap: 0 var(--g-space-4); }
.gp-legal__links a { display: inline-flex; align-items: center; min-height: 40px; }
.gp-legal__pending { color: var(--g-gray-11); }
.gp-section-head--end { padding-top: 0; padding-bottom: var(--g-space-9); }

/* Plans */
.gp-plans-area { padding-bottom: var(--g-space-9); }
.gp-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--g-space-5); max-width: 1200px; margin: 0 auto; } /* up to four plans in one row */
.gp-plan { --gp-plan-pad: var(--g-space-5); display: flex; flex-direction: column; }
.gp-plan__name { padding: var(--g-space-4) var(--gp-plan-pad); background: var(--g-accent-3); border-bottom: 1px solid var(--g-accent-5); border-radius: 11px 11px 0 0; color: var(--g-accent-12); font-size: var(--g-font-size-5); line-height: var(--g-line-height-5); font-weight: 700; }
.gp-plan.is-current .gp-plan__name { display: flex; align-items: center; justify-content: space-between; gap: var(--g-space-2); background: var(--g-accent-9); border-bottom-color: var(--g-accent-9); color: var(--g-accent-contrast); }
.gp-plan__name .gp-badge { flex: none; background: var(--g-accent-contrast); color: var(--g-accent-9); font-weight: 700; }
.gp-card.gp-plan.is-current { border-color: var(--g-accent-9); box-shadow: 0 0 0 1px var(--g-accent-9), var(--g-shadow-2); }
.gp-plan__desc { padding: var(--g-space-4) var(--gp-plan-pad) 0; color: var(--g-gray-11); min-height: calc(var(--g-line-height-2) * 2); }
.gp-plan__price { display: flex; align-items: baseline; gap: var(--g-space-2); flex-wrap: wrap; padding: var(--g-space-4) var(--gp-plan-pad) 0; }
.gp-plan__amount { font-size: var(--g-font-size-8); line-height: var(--g-line-height-8); letter-spacing: var(--g-letter-spacing-8); font-weight: 700; font-variant-numeric: tabular-nums; }
.gp-plan__period { color: var(--g-gray-11); }
.gp-plan__on-request { font-size: var(--g-font-size-5); line-height: var(--g-line-height-8); font-weight: 500; color: var(--g-gray-11); }
.gp-plan__features { list-style: none; padding: var(--g-space-4) 0 var(--gp-plan-pad); margin: var(--g-space-4) var(--gp-plan-pad) 0; border-top: 1px solid var(--g-gray-4); display: grid; gap: var(--g-space-3); align-content: start; }
.gp-plan__features li { display: flex; align-items: center; gap: var(--g-space-2); }
.gp-plan__features .gp-icon { color: var(--g-green-11); }
.gp-plan__features li.is-off { color: var(--g-gray-9); }
.gp-plan__features li.is-off .gp-icon { color: var(--g-gray-8); }
.gp-plan__limit { margin-left: auto; color: var(--g-gray-11); font-variant-numeric: tabular-nums; }
.gp-plans-note { margin-top: var(--g-space-5); text-align: center; }
.gp-plan__action { margin-top: auto; padding: 0 var(--gp-plan-pad) var(--gp-plan-pad); }
.gp-plan__action .gp-btn { width: 100%; }
a.gp-badge--link { color: inherit; }
a.gp-badge--link:hover { text-decoration: none; background: var(--g-gray-4); }
.gp-usage { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--g-space-4); }
.gp-usage__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--g-space-1) var(--g-space-3); align-items: baseline; }
.gp-usage__value { color: var(--g-gray-11); font-variant-numeric: tabular-nums; }
.gp-usage__bar { grid-column: 1 / -1; height: 6px; border-radius: var(--g-radius-full); background: var(--g-gray-4); overflow: hidden; }
.gp-usage__bar span { display: block; height: 100%; background: var(--g-accent-9); border-radius: inherit; }
.gp-usage__row.is-full .gp-usage__bar span { background: var(--g-amber-9); }

/* Empty state */
.gp-empty { display: flex; flex-direction: column; align-items: center; gap: var(--g-space-4); max-width: 560px; margin: 0 auto; padding: var(--g-space-8) var(--g-space-6); text-align: center; }
.gp-empty__text { font-size: var(--g-font-size-3); line-height: var(--g-line-height-3); color: var(--g-gray-11); }
.gp-status { margin-top: var(--g-space-9); }

/* Bell with unread count */
.gp-bell { position: relative; }
.gp-bell__count {
  position: absolute; top: 2px; right: 2px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: var(--g-radius-full);
  background: var(--g-red-9); color: #fff; font-size: 10px; line-height: 16px; font-weight: 700; text-align: center;
}

/* Messages list */
.gp-list__row.gp-note { align-items: flex-start; padding-block: var(--g-space-3); }
.gp-note__dot { width: 8px; height: 8px; margin-top: 7px; border-radius: var(--g-radius-full); background: transparent; flex: none; }
.gp-note.is-new .gp-note__dot { background: var(--g-accent-9); }
.gp-note.is-new .gp-list__title { font-weight: 700; }
.gp-note__body { color: var(--g-gray-11); }
.gp-note__time { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Push on this device (Messages page); the state is set by js/push.js */
.gp-push { display: flex; align-items: center; gap: var(--g-space-4); padding: var(--g-space-4) var(--g-space-5); }
.gp-push[hidden], .gp-push [hidden] { display: none; }
.gp-push__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: var(--g-space-1); }
.gp-push__title { margin: 0; font-size: var(--g-font-size-3); line-height: var(--g-line-height-3); font-weight: 700; }
.gp-push__text { margin: 0; color: var(--g-gray-11); max-width: 44em; }
.gp-push__error { color: var(--g-red-11); font-weight: 500; }
.gp-push > .gp-btn { flex: none; }
.gp-push.is-on .gp-tile { background: var(--g-green-3); color: var(--g-green-11); }
@media (max-width: 599px) {
  .gp-push { flex-wrap: wrap; align-items: flex-start; padding: var(--g-space-4); }
  .gp-push__main { flex-basis: calc(100% - var(--g-control-3) - var(--g-space-4)); }
  .gp-push > .gp-btn { width: 100%; }
}
.gp-status__title { font-size: var(--g-font-size-6); line-height: var(--g-line-height-6); font-weight: 700; margin: 0; }
.gp-status .gp-empty__text { margin: 0; }

/* Footer */
.gp-footer { border-top: 1px solid var(--g-gray-a3); background: var(--g-panel); }
.gp-footer__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--g-space-4); min-height: 80px; flex-wrap: wrap; padding-top: var(--g-space-4); padding-bottom: var(--g-space-4); }
.gp-footer__brand { display: flex; align-items: center; gap: var(--g-space-3); color: var(--g-gray-11); }
.gp-footer__brand .gp-mark { width: 20px; height: 20px; }
.gp-footer__langs { display: flex; gap: var(--g-space-1); list-style: none; margin: 0; padding: 0; }
.gp-footer__langs a { display: inline-flex; align-items: center; height: var(--g-control-1); padding: 0 var(--g-space-2); border-radius: var(--g-radius-3); color: var(--g-gray-11); font-size: var(--g-font-size-1); font-weight: 500; }
.gp-footer__langs a:hover { background: var(--g-gray-3); color: var(--g-gray-12); text-decoration: none; }
.gp-footer__langs a[aria-current="true"] { color: var(--g-gray-12); }

@media (max-width: 1023px) {
  .gp-hero { grid-template-columns: 1fr; gap: var(--g-space-8); min-height: 0; padding: var(--g-space-8) 0 var(--g-space-9); }
  .gp-hero__title { font-size: var(--g-font-size-8); line-height: var(--g-line-height-8); letter-spacing: var(--g-letter-spacing-8); }
  .gp-hero__lead { font-size: var(--g-font-size-4); line-height: var(--g-line-height-4); }
  .gp-hero__art { min-height: 520px; }
  .gp-art__point { width: 360px; height: 360px; }
}

@media (max-width: 767px) {
  .gp-container { padding: 0 var(--g-space-4); }
  /* Two rows on phones: logo and tools, then the two audiences side by side */
  .gp-header__inner { flex-wrap: wrap; gap: 0 var(--g-space-2); height: auto; padding-top: var(--g-space-1); }
  .gp-header__logo { min-height: var(--g-touch); }
  .gp-header__logo .gp-logo { display: none; }
  .gp-header__logo .gp-mark { display: block; }
  .gp-header__tools { margin-left: auto; }
  .gp-header__nav { order: 3; flex: 0 0 100%; margin: 0; overflow-x: auto; scrollbar-width: none; }
  .gp-header__nav a { height: var(--g-touch); white-space: nowrap; flex: none; }
  .gp-header__nav a[aria-current="page"] { box-shadow: inset 0 -2px 0 var(--g-accent-9); border-radius: 0; }
  .gp-art__week { width: 100%; max-width: 340px; }
  .gp-art__days { height: 220px; }
  .gp-hero__aside { margin-top: var(--g-space-5); }
  .gp-header__tools .gp-btn--icon { width: var(--g-touch); height: var(--g-touch); }
  .gp-header__tools .gp-select { height: var(--g-touch); }
  .gp-hero { padding: var(--g-space-7) 0 var(--g-space-8); gap: var(--g-space-7); }
  .gp-hero__actions .gp-btn { width: 100%; height: var(--g-touch); }
  .gp-hero__art { min-height: 480px; }
  .gp-art__point { width: 300px; height: 300px; }
  .gp-art__phone { width: 256px; }
  .gp-art__chip--a { top: 40px; }
  .gp-art__chip--b { bottom: 48px; }
  .gp-section-head { padding: var(--g-space-7) 0 var(--g-space-6); }
  .gp-section-head__title { font-size: var(--g-font-size-7); line-height: var(--g-line-height-7); letter-spacing: var(--g-letter-spacing-7); }
  .gp-section-head__lead { font-size: var(--g-font-size-3); line-height: var(--g-line-height-3); }
  .gp-plan { --gp-plan-pad: var(--g-space-4); }
}

/* The brand band: where the site speaks to clients, not where it does work. The big circles are the point from the logo. */
.gp-band { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--g-accent-9) 0%, color-mix(in srgb, var(--g-accent-9) 42%, black) 100%); color: var(--g-accent-contrast); }
.gp-band::before, .gp-band::after { content: ""; position: absolute; border-radius: var(--g-radius-full); background: color-mix(in srgb, var(--g-accent-contrast) 8%, transparent); pointer-events: none; }
.gp-band::before { width: 520px; height: 520px; top: -240px; right: -120px; }
.gp-band::after { width: 300px; height: 300px; bottom: -180px; left: 8%; }
.gp-band > * { position: relative; z-index: 1; }
.gp-band__eyebrow { display: inline-flex; align-items: center; gap: var(--g-space-1); padding: var(--g-space-1) var(--g-space-3); border-radius: var(--g-radius-full); background: color-mix(in srgb, var(--g-accent-contrast) 16%, transparent); font-weight: 500; }
.gp-btn.gp-btn--on-band { border-color: var(--g-accent-contrast); background: var(--g-accent-contrast); color: var(--g-accent-9); font-weight: 700; }
.gp-btn.gp-btn--on-band:hover { background: color-mix(in srgb, var(--g-accent-contrast) 90%, transparent); }

/* Home */
.gp-home-hero__inner { display: grid; justify-items: center; gap: var(--g-space-5); padding-top: var(--g-space-9); padding-bottom: calc(var(--g-space-9) + var(--g-space-9)); text-align: center; }
.gp-home-hero__title { max-width: 18ch; font-size: var(--g-font-size-9); line-height: var(--g-line-height-9); letter-spacing: var(--g-letter-spacing-9); font-weight: 700; text-wrap: balance; }
.gp-home-hero__lead { max-width: 34em; font-size: var(--g-font-size-5); line-height: var(--g-line-height-5); text-wrap: pretty; }
.gp-home-hero .gp-searchbar { width: min(860px, 100%); margin-top: var(--g-space-3); box-shadow: var(--g-shadow-5); text-align: left; }
.gp-home-cats { position: relative; z-index: 2; margin-top: calc(-1 * var(--g-space-9)); }
.gp-home-cats__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--g-space-3); margin: 0; padding: 0; list-style: none; }
.gp-home-cat { display: flex; align-items: center; gap: var(--g-space-3); height: 100%; padding: var(--g-space-4); border: 1px solid var(--g-gray-a3); border-radius: var(--g-radius-5); background: var(--g-panel); box-shadow: var(--g-shadow-3); color: var(--g-gray-12); transition: box-shadow var(--g-duration-fast) ease, transform var(--g-duration-fast) ease; }
.gp-home-cat:hover { box-shadow: var(--g-shadow-4); text-decoration: none; transform: translateY(-2px); }
.gp-home-cat > .gp-icon { flex: none; margin-left: auto; color: var(--g-gray-9); }
.gp-home-cat__name { min-width: 0; font-size: var(--g-font-size-3); line-height: var(--g-line-height-3); font-weight: 700; }
.gp-home-cat__icon { display: grid; flex: none; place-items: center; width: 52px; height: 52px; border-radius: var(--g-radius-4); }
.gp-home-cat__icon--0 { background: var(--g-accent-3); color: var(--g-accent-11); }
.gp-home-cat__icon--1 { background: var(--g-green-3); color: var(--g-green-11); }
.gp-home-cat__icon--2 { background: var(--g-amber-3); color: var(--g-amber-11); }
.gp-home-block { padding: var(--g-space-9) 0 0; }
.gp-home-block__title { font-size: var(--g-font-size-8); line-height: var(--g-line-height-8); letter-spacing: var(--g-letter-spacing-8); font-weight: 700; text-align: center; }
.gp-home-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--g-space-7); margin: var(--g-space-7) 0 0; padding: 0; list-style: none; }
.gp-home-step { position: relative; display: grid; justify-items: center; align-content: start; gap: var(--g-space-2); text-align: center; }
.gp-home-step + .gp-home-step::before { content: ""; position: absolute; top: 28px; right: calc(50% + 44px); width: calc(100% - 56px); height: 2px; background: var(--g-accent-5); }
.gp-home-step__number { display: grid; place-items: center; width: 56px; height: 56px; margin-bottom: var(--g-space-2); border-radius: var(--g-radius-full); background: var(--g-accent-9); color: var(--g-accent-contrast); font-size: var(--g-font-size-5); font-weight: 700; }
.gp-home-step__title { font-size: var(--g-font-size-4); line-height: var(--g-line-height-4); font-weight: 700; }
.gp-home-step__text { max-width: 26em; color: var(--g-gray-11); }
.gp-home-why { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: var(--g-space-8); padding-top: var(--g-space-9); }
.gp-home-why .gp-home-block__title { text-align: left; }
.gp-home-points { display: grid; gap: var(--g-space-5); margin: var(--g-space-6) 0 0; padding: 0; list-style: none; }
.gp-home-point { display: flex; gap: var(--g-space-4); align-items: flex-start; }
.gp-home-point .gp-tile { flex: none; }
.gp-home-point__title { font-size: var(--g-font-size-4); line-height: var(--g-line-height-4); font-weight: 700; }
.gp-home-point__text { margin-top: var(--g-space-1); color: var(--g-gray-11); }
.gp-home-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--g-space-5); margin: var(--g-space-9) 0; padding: var(--g-space-8); border-radius: var(--g-radius-6); }
.gp-home-cta__title { font-size: var(--g-font-size-7); line-height: var(--g-line-height-7); letter-spacing: var(--g-letter-spacing-7); font-weight: 700; }
.gp-home-cta__text { margin-top: var(--g-space-2); font-size: var(--g-font-size-4); line-height: var(--g-line-height-4); }
.gp-biz-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--g-space-6); margin: 0; padding-top: var(--g-space-8); padding-bottom: var(--g-space-9); list-style: none; }

/* The business page on the band */
.gp-hero--band { padding-top: var(--g-space-8); padding-bottom: var(--g-space-8); min-height: 0; }
.gp-hero--band .gp-hero__title, .gp-hero--band .gp-hero__lead, .gp-hero--band .gp-hero__aside { color: var(--g-accent-contrast); }
.gp-hero--band .gp-band__eyebrow { margin-bottom: var(--g-space-5); }
.gp-hero--band .gp-art__point { background: color-mix(in srgb, var(--g-accent-contrast) 10%, transparent); }

/* Footer: where to go next on public pages; inside a business only the last line */
.gp-footer__top { display: grid; grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); gap: var(--g-space-6); padding-top: var(--g-space-7); padding-bottom: var(--g-space-6); }
.gp-footer__about { display: grid; gap: var(--g-space-3); align-content: start; max-width: 26em; color: var(--g-gray-11); }
.gp-footer__about .gp-logo { height: 28px; width: auto; }
.gp-footer__column { display: grid; gap: var(--g-space-2); align-content: start; }
.gp-footer__column h2 { font-size: var(--g-font-size-2); line-height: var(--g-line-height-2); font-weight: 700; color: var(--g-gray-12); }
.gp-footer__column a { color: var(--g-gray-11); }
.gp-footer__column a:hover { color: var(--g-accent-11); text-decoration: none; }
.gp-footer__top + .gp-footer__inner { min-height: 56px; border-top: 1px solid var(--g-gray-a3); }
body:has(.gp-biz-side) .gp-footer__top { display: none; }
body:has(.gp-biz-side) .gp-footer__top + .gp-footer__inner { border-top: 0; }

/* A "More" menu: the list of what is rarely needed */
.gp-more { position: relative; }
.gp-more > summary { list-style: none; cursor: pointer; }
.gp-more > summary::-webkit-details-marker { display: none; }
.gp-more--end { margin-left: auto; }
.gp-more__panel { position: absolute; z-index: 5; bottom: calc(100% + var(--g-space-1)); left: 0; display: grid; gap: 2px; width: max-content; min-width: 240px; max-width: min(320px, 90vw); padding: var(--g-space-2); border: 1px solid var(--g-gray-a3); border-radius: var(--g-radius-4); background: var(--g-panel); box-shadow: var(--g-shadow-5); }
.gp-more--end .gp-more__panel { right: 0; left: auto; }
.gp-more__item { display: flex; align-items: center; gap: var(--g-space-2); width: 100%; min-height: 40px; padding: var(--g-space-2) var(--g-space-3); border: 0; border-radius: var(--g-radius-3); background: transparent; color: var(--g-gray-12); font: inherit; text-align: left; cursor: pointer; }
.gp-more__item:hover { background: var(--g-gray-3); text-decoration: none; }
.gp-more__item--danger { color: var(--g-red-11); }
.gp-more__item--danger:hover { background: var(--g-red-3); }
.gp-late-form { gap: var(--g-space-2); padding: var(--g-space-3); }

/* A row across the whole width: the details in columns that line up, not piled under the name. On a phone they wrap under it. */
.gp-list__cell { flex: 0 0 180px; min-width: 0; color: var(--g-gray-11); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-list__cell--s { flex-basis: 110px; }
.gp-list__cell--wide { flex-basis: 240px; white-space: normal; }
.gp-list__cell--status { display: flex; flex-basis: 160px; justify-content: flex-end; }
.gp-list__cell--num { color: var(--g-gray-12); font-weight: 500; font-variant-numeric: tabular-nums; text-align: right; }
.gp-list__badges--wide { flex: 0 0 240px; }
.gp-list__progress { display: flex; align-items: center; justify-content: flex-end; gap: var(--g-space-2); flex-basis: 220px; }
.gp-list__progress .gp-usage__bar { flex: 1; min-width: 60px; margin: 0; }
.gp-list__progress .gp-badge { flex: none; }
@media (max-width: 767px) {
  .gp-list__row:has(.gp-list__cell) { flex-wrap: wrap; row-gap: var(--g-space-1); }
  .gp-list__row:has(.gp-list__cell) .gp-list__main { flex: 1 1 calc(100% - 72px); }
  .gp-list__cell, .gp-list__badges--wide { flex: 0 1 auto; white-space: normal; }
  .gp-list__cell:empty { display: none; }
  .gp-list__row:has(a.gp-list__title):has(.gp-list__cell) > .gp-btn--icon { display: none; }
  .gp-list__progress { flex: 1 1 100%; }
  .gp-list__badges--wide { justify-content: flex-start; }
}

/* Business page: the long list of services opens on request; on a phone booking stays one tap away */
.gp-biz-services__more { display: flex; flex-direction: column; gap: var(--g-space-3); }
.gp-biz-services__more > summary { align-self: center; list-style: none; cursor: pointer; }
.gp-biz-services__more > summary::-webkit-details-marker { display: none; }
.gp-biz-services__more[open] > summary { order: 2; }
.gp-book-cta { display: none; }
@media (max-width: 1023px) {
  .gp-book-cta { position: fixed; z-index: 9; right: var(--g-space-4); bottom: calc(var(--g-space-4) + env(safe-area-inset-bottom)); left: var(--g-space-4); display: flex; justify-content: center; height: var(--g-touch); box-shadow: var(--g-shadow-5); }
  .gp-book-cta[hidden] { display: none; }
  body:has(.gp-book-cta) .gp-footer { padding-bottom: calc(var(--g-touch) + var(--g-space-5)); }
}

/* Choosing a service: soft buttons, so a long list does not read as a wall of boxes */
.gp-service .gp-btn:not(.gp-btn--primary) { border-color: transparent; background: var(--g-accent-3); color: var(--g-accent-11); font-weight: 700; box-shadow: none; }
.gp-service .gp-btn:not(.gp-btn--primary):hover { background: var(--g-accent-4); }

@media (max-width: 1023px) {
  .gp-home-why { grid-template-columns: minmax(0, 1fr); gap: var(--g-space-6); }
  .gp-home-why__art { order: 2; }
  .gp-home-cats__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .gp-band::before { width: 320px; height: 320px; top: -160px; right: -120px; }
  .gp-home-hero__inner { padding-top: var(--g-space-7); padding-bottom: var(--g-space-9); }
  .gp-home-hero__title { font-size: var(--g-font-size-8); line-height: var(--g-line-height-8); letter-spacing: var(--g-letter-spacing-8); }
  .gp-home-hero__lead { font-size: var(--g-font-size-3); line-height: var(--g-line-height-3); }
  .gp-home-cats { margin-top: calc(-1 * var(--g-space-7)); }
  .gp-home-cats__grid { grid-template-columns: minmax(0, 1fr); gap: var(--g-space-2); }
  .gp-home-cat { padding: var(--g-space-3); }
  .gp-home-block { padding-top: var(--g-space-8); }
  .gp-home-block__title { font-size: var(--g-font-size-7); line-height: var(--g-line-height-7); }
  .gp-home-steps { grid-template-columns: minmax(0, 1fr); gap: var(--g-space-6); margin-top: var(--g-space-6); }
  .gp-home-step + .gp-home-step::before { display: none; }
  .gp-home-why { padding-top: var(--g-space-8); }
  .gp-home-cta { margin: var(--g-space-8) 0; padding: var(--g-space-6) var(--g-space-5); }
  .gp-home-cta .gp-btn { width: 100%; }
  .gp-biz-points { grid-template-columns: minmax(0, 1fr); }
  .gp-footer__top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gp-footer__about { grid-column: 1 / -1; }
  .gp-footer__column a { display: flex; align-items: center; min-height: 40px; }
  .gp-footer__langs a { height: 40px; }
  .gp-more--end { margin-left: 0; }
}
@media (min-width: 768px) {
  .gp-searchbar--two { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) auto; }
}
.gp-art__title { padding: 0 var(--g-space-2); font-size: var(--g-font-size-4); line-height: var(--g-line-height-4); font-weight: 700; color: var(--g-gray-12); }
.gp-art__next-head { font-size: var(--g-font-size-1); line-height: var(--g-line-height-1); font-weight: 500; }
.gp-art__next-name { font-size: var(--g-font-size-5); line-height: var(--g-line-height-5); font-weight: 700; }
.gp-art__lines { gap: 0; }
.gp-art__label { font-weight: 500; color: var(--g-gray-12); }
.gp-art__state { font-size: var(--g-font-size-1); line-height: var(--g-line-height-1); color: var(--g-gray-11); }

/* Work area of a business (Shell 2027): fixed menu on the left, the content takes the rest of the screen */
:root { --gp-side-w: clamp(256px, 15vw, 320px); }
.gp-biz-side { position: fixed; top: 65px; bottom: 0; left: 0; z-index: 9; width: var(--gp-side-w); display: flex; flex-direction: column; padding: var(--g-space-4) var(--g-space-3); overflow-y: auto; background: var(--g-gray-2); border-right: 1px solid var(--g-gray-a3); }
.gp-biz-side__firm { display: flex; flex-wrap: wrap; align-items: center; gap: var(--g-space-2); padding: 0 var(--g-space-2) var(--g-space-3); border-bottom: 1px solid var(--g-gray-a3); }
.gp-biz-side__name { flex: 1; min-width: 0; font-weight: 700; color: var(--g-gray-12); overflow-wrap: anywhere; }
.gp-biz-side__nav { display: flex; flex-direction: column; gap: var(--g-space-1); }
.gp-biz-side__group { padding: var(--g-space-4) var(--g-space-2) var(--g-space-1); font-size: var(--g-font-size-1); line-height: var(--g-line-height-1); font-weight: 500; color: var(--g-gray-11); }
.gp-biz-side__item { display: flex; align-items: center; gap: var(--g-space-2); min-height: var(--g-control-2); padding: 0 var(--g-space-2); border-radius: var(--g-radius-3); color: var(--g-gray-11); font-weight: 500; }
.gp-biz-side__item:hover { background: var(--g-gray-3); color: var(--g-gray-12); text-decoration: none; }
.gp-biz-side__item[aria-current="page"] { background: var(--g-accent-3); color: var(--g-accent-11); }
.gp-biz-side__foot { margin-top: auto; flex: none; }
.gp-biz-menu, .gp-biz-scrim { display: none; }
body:has(.gp-biz-side) .gp-header .gp-container, body:has(.gp-biz-side) .gp-footer .gp-container { max-width: none; }
body:has(.gp-biz-side) .gp-header__nav { visibility: hidden; }
body:has(.gp-biz-side) .gp-main, body:has(.gp-biz-side) .gp-footer { padding-left: var(--gp-side-w); }
body:has(.gp-biz-side) .gp-app { max-width: 1600px; margin-inline: auto; padding-inline: var(--g-space-6); }
body:has(.gp-biz-side) .gp-app--wide:has(.gp-cal) { max-width: none; }
@media (max-width: 1199px) {
  body:has(.gp-biz-side) .gp-main, body:has(.gp-biz-side) .gp-footer { padding-left: 0; }
  body:has(.gp-biz-side) .gp-app--wide { padding-inline: var(--g-space-4); }
  .gp-biz-side { top: 0; z-index: 31; width: min(320px, 85vw); visibility: hidden; transform: translateX(-100%); transition: transform var(--g-duration-base) var(--g-ease-out), visibility var(--g-duration-base); box-shadow: var(--g-shadow-5); }
  .gp-nav-open .gp-biz-side { visibility: visible; transform: none; }
  .gp-biz-side__item { min-height: var(--g-touch); }
  .gp-biz-menu { display: flex; align-items: center; gap: var(--g-space-2); min-height: var(--g-touch); padding: 0 var(--g-space-3); border: 1px solid var(--g-gray-a3); border-radius: var(--g-radius-4); background: var(--g-panel); color: var(--g-gray-12); font: inherit; font-weight: 700; cursor: pointer; }
  .gp-nav-open .gp-biz-scrim { display: block; position: fixed; inset: 0; z-index: 30; background: var(--g-scrim); }
}
@media (max-width: 767px) { body:has(.gp-biz-side) .gp-header__nav { display: none; } }

/* Search page: results beside the map; on a narrow screen the results come first, the map after them */
.gp-finder-results { display: grid; gap: var(--g-space-5); align-items: start; }
.gp-finder-results__list { display: grid; gap: var(--g-space-3); min-width: 0; }
.gp-finder-results.has-map .gp-map { order: 2; }
@media (min-width: 1024px) {
  .gp-finder-results.has-map { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
  .gp-finder-results.has-map .gp-map { position: sticky; top: calc(64px + var(--g-space-4)); height: calc(100vh - 64px - var(--g-space-7)); }
}

/* Business page */
.gp-biz-loyalty { display: flex; align-items: center; gap: var(--g-space-2); padding: var(--g-space-3) var(--g-space-4); border-radius: var(--g-radius-4); background: var(--g-accent-3); color: var(--g-accent-11); font-weight: 500; }
.gp-biz-loyalty .gp-icon { flex: none; }

/* Asking before something that cannot be taken back */
.gp-dialog.gp-confirm { width: min(420px, calc(100vw - var(--g-space-6))); }
.gp-confirm__text { font-size: var(--g-font-size-3); line-height: var(--g-line-height-3); font-weight: 500; color: var(--g-gray-12); }

@media (max-width: 1023px) {
  .gp-home-points { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .gp-hero__search { grid-template-columns: minmax(0, 1fr); }
  .gp-hero__search .gp-btn { height: var(--g-touch); }
  .gp-biz-hero { padding: var(--g-space-4); gap: var(--g-space-3); }
  .gp-biz-hero__links .gp-btn { height: var(--g-touch); }
}

/* People and things: the icon sits beside the name */
.gp-person h2.gp-person__name { display: flex; align-items: center; gap: var(--g-space-2); }
.gp-app__sub a { display: inline-flex; align-items: center; gap: var(--g-space-1); }

/* Business page */
.gp-biz-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: var(--g-space-3) var(--g-space-6); }
.gp-biz-head__main { display: grid; gap: var(--g-space-2); min-width: 0; }
.gp-biz-head__places { justify-content: flex-end; }
.gp-biz-head__desc { grid-column: 1 / -1; }
.gp-biz-head + .gp-gallery { margin-top: calc(-1 * var(--g-space-3)); }
.gp-biz-head__name { font-size: var(--g-font-size-8); line-height: var(--g-line-height-8); letter-spacing: var(--g-letter-spacing-8); font-weight: 700; }
.gp-biz-head__facts { display: flex; flex-wrap: wrap; gap: var(--g-space-1) var(--g-space-5); color: var(--g-gray-11); }
.gp-biz-head__facts > span { display: inline-flex; align-items: center; gap: var(--g-space-1); }
.gp-biz-head__desc { max-width: 44em; color: var(--g-gray-11); white-space: pre-line; }
.gp-rating .gp-icon { color: var(--g-amber-9); fill: var(--g-amber-9); }
.gp-rating strong { color: var(--g-gray-12); }
.gp-book__deal { display: flex; align-items: center; gap: var(--g-space-2); padding: var(--g-space-2) var(--g-space-3); border-radius: var(--g-radius-4); background: var(--g-green-3); color: var(--g-green-11); font-weight: 500; }
.gp-book__deal .gp-icon { flex: none; }
.gp-book__say { display: grid; gap: var(--g-space-2); padding-top: var(--g-space-3); border-top: 1px solid var(--g-gray-4); }
.gp-finder__or { color: var(--g-gray-11); font-weight: 500; }

/* Label and value, row under row: the details of a business, a booking, an inquiry */
.gp-facts { margin: 0; padding: var(--g-space-2) var(--g-space-5); }
.gp-facts > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: var(--g-space-4); padding: var(--g-space-3) 0; border-bottom: 1px solid var(--g-gray-4); }
.gp-facts > div:last-child { border-bottom: 0; }
.gp-facts dt { color: var(--g-gray-11); }
.gp-facts dd { margin: 0; color: var(--g-gray-12); overflow-wrap: anywhere; }
.gp-facts__links { display: flex; flex-wrap: wrap; gap: var(--g-space-1) var(--g-space-4); }
.gp-facts__list { display: grid; gap: var(--g-space-1); }

/* Finding a service: one bar, then the results. Filters and speaking wait behind a chip. */
.gp-seek { display: grid; gap: var(--g-space-4); }
.gp-seek__title { font-size: var(--g-font-size-7); line-height: var(--g-line-height-7); letter-spacing: var(--g-letter-spacing-7); font-weight: 700; }
.gp-seek__form { display: grid; gap: var(--g-space-3); }
.gp-seek__access { display: grid; gap: var(--g-space-1); margin: 0; padding: 0; border: 0; }
.gp-searchbar { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) minmax(170px, 1fr) auto; align-items: center; padding: var(--g-space-2); border-radius: var(--g-radius-full); background: var(--g-panel); box-shadow: var(--g-shadow-3); }
.gp-searchbar__part { position: relative; display: grid; min-width: 0; padding: var(--g-space-1) var(--g-space-5); border-radius: var(--g-radius-full); cursor: text; transition: background var(--g-duration-fast) ease; }
.gp-searchbar__part:hover { background: var(--g-gray-2); }
.gp-searchbar__part:focus-within { background: var(--g-accent-2); box-shadow: inset 0 0 0 2px var(--g-accent-8); }
.gp-searchbar__part + .gp-searchbar__part::before { content: ""; position: absolute; left: 0; top: 25%; bottom: 25%; width: 1px; background: var(--g-gray-5); }
.gp-searchbar__label { font-size: var(--g-font-size-1); line-height: var(--g-line-height-1); font-weight: 700; color: var(--g-gray-12); }
.gp-searchbar__input { width: 100%; min-width: 0; height: 24px; margin: 0; padding: 0; border: 0; outline: 0; background: transparent; color: var(--g-gray-12); font: inherit; }
.gp-searchbar__input::placeholder { color: var(--g-gray-10); }
.gp-searchbar__date { position: relative; display: block; }
.gp-searchbar__any { display: none; position: absolute; inset: 0; color: var(--g-gray-10); line-height: 24px; pointer-events: none; }
.gp-searchbar__input.is-empty:not(:focus)::-webkit-datetime-edit { color: transparent; }
.gp-searchbar__input.is-empty:not(:focus) + .gp-searchbar__any { display: block; }
.gp-searchbar__go { height: 48px; margin-left: var(--g-space-2); padding: 0 var(--g-space-5); border-radius: var(--g-radius-full); }

/* A result of the search: the photo sells it, the card opens the business */
.gp-card.gp-result { position: relative; display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 0; padding: 0; overflow: hidden; transition: box-shadow var(--g-duration-fast) ease; }
.gp-card.gp-result:hover { box-shadow: var(--g-shadow-3); }
.gp-result__media { position: relative; background: var(--g-gray-3); }
.gp-result__media > * { position: absolute; inset: 0; width: 100%; height: 100%; }
.gp-result__photo { display: block; object-fit: cover; }
.gp-result__body { display: grid; gap: var(--g-space-3); align-content: start; min-width: 0; padding: var(--g-space-4) var(--g-space-5); }
.gp-result__top { display: grid; gap: var(--g-space-1); }
.gp-result__name { margin: 0; font-size: var(--g-font-size-5); line-height: var(--g-line-height-5); font-weight: 700; }
.gp-result__name a { color: var(--g-gray-12); }
.gp-result__name a::after { content: ""; position: absolute; inset: 0; }
.gp-card.gp-result:hover .gp-result__name a { color: var(--g-accent-11); }
.gp-result__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--g-space-1) var(--g-space-3); margin: 0; color: var(--g-gray-11); }
.gp-result__services { display: grid; gap: var(--g-space-1); margin: 0; padding: 0; list-style: none; }
.gp-result__services a { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: var(--g-space-4); color: var(--g-gray-12); }
.gp-result__services a:hover .gp-result__service { color: var(--g-accent-11); }
.gp-result__service { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gp-result__price { flex: none; color: var(--g-gray-11); font-variant-numeric: tabular-nums; }
.gp-result__more { color: var(--g-gray-11); font-size: var(--g-font-size-1); line-height: var(--g-line-height-1); }
.gp-result__foot { display: flex; flex-wrap: wrap; align-items: center; gap: var(--g-space-2) var(--g-space-3); padding-top: var(--g-space-3); border-top: 1px solid var(--g-gray-4); }
.gp-result__free { display: inline-flex; align-items: center; gap: var(--g-space-1); color: var(--g-green-11); font-weight: 500; }
.gp-result__foot .gp-btn { position: relative; z-index: 1; margin-left: auto; }

@media (max-width: 767px) {
  .gp-biz-head { grid-template-columns: minmax(0, 1fr); }
  .gp-biz-head__places { justify-content: flex-start; }
  .gp-biz-head__name { font-size: var(--g-font-size-7); line-height: var(--g-line-height-7); }
  .gp-facts { padding: var(--g-space-1) var(--g-space-4); }
  .gp-facts > div { grid-template-columns: minmax(0, 1fr); gap: var(--g-space-1); }
  .gp-seek__title { font-size: var(--g-font-size-6); line-height: var(--g-line-height-6); }
  .gp-seek .gp-chips { flex-wrap: nowrap; margin: 0 calc(-1 * var(--g-space-4)); padding: 0 var(--g-space-4); overflow-x: auto; scrollbar-width: none; }
  .gp-seek .gp-chips::-webkit-scrollbar { display: none; }
  .gp-seek .gp-chip { flex: none; white-space: nowrap; }
  .gp-searchbar { grid-template-columns: minmax(0, 1fr); padding: var(--g-space-2); border-radius: var(--g-radius-5); }
  .gp-searchbar__part { padding: var(--g-space-2) var(--g-space-3); border-radius: var(--g-radius-4); }
  .gp-searchbar__part + .gp-searchbar__part::before { left: var(--g-space-3); right: var(--g-space-3); top: 0; bottom: auto; width: auto; height: 1px; }
  .gp-searchbar__go { width: 100%; height: var(--g-touch); margin: var(--g-space-2) 0 0; border-radius: var(--g-radius-4); }
  .gp-card.gp-result { grid-template-columns: minmax(0, 1fr); }
  .gp-result__media { height: 168px; }
  .gp-result__body { padding: var(--g-space-4); }
  .gp-result__foot .gp-btn { flex: 1 1 100%; height: var(--g-touch); margin-left: 0; }
}