/* Check-ins, badges and profiles. Loaded after theme.css and business-directory.css and built
   on the Superbloom tokens in theme.css. */
.gv-checkin{margin:16px 0 0;padding:20px 24px;border-radius:var(--sb-card-r);background:#fff;box-shadow:inset 0 0 0 1.5px var(--line)}
.btn.gv-checkin-button{background:var(--teal-deep);cursor:pointer}
.btn.gv-checkin-button:hover{background:var(--night)}
.gv-checkin-button:disabled{opacity:.55;cursor:progress}
.gv-checkin-note{margin:10px 0 0;color:var(--ink-soft);font-size:15px}
.gv-checkin-message{margin:10px 0 0;font-weight:700;color:var(--teal-deep);min-height:1.5em}
.gv-checkin-message:empty{min-height:0;margin:0}
.gv-again{margin-left:6px;cursor:pointer}

.gv-celebrate{margin:16px 0 0;padding:26px 20px;border-radius:var(--sb-card-r);background:#fff;box-shadow:var(--sb-shadow);border-top:6px solid var(--pollen);text-align:center}
.gv-celebrate-art{width:min(200px,60%);margin:0 auto}
.gv-celebrate-art svg,.gv-award-art svg{display:block;width:100%;height:auto}
.sb .gv-celebrate-name{margin:12px 0 0;font-size:clamp(28px,3.4vw,40px);line-height:1.05}
.gv-celebrate-earned{margin:6px 0 0;font:600 30px/1.1 var(--hand);color:var(--bloom)}
.gv-stage-wrap{width:min(260px,80%);margin:8px auto 0}
.gv-stage{display:block;width:100%;height:auto;overflow:visible}
.gv-celebrate-how{margin:6px 0 0;color:var(--ink-soft)}
.gv-celebrate-link{margin:14px 0 0}

/* The celebration moves only when the reader has not asked for reduced motion. Without these
   rules the drawing is the finished still: hands up, medal on. Whole sequence: 2.6 seconds. */
@media (prefers-reduced-motion: no-preference){
  .gv-bud{transform-origin:120px 214px;animation:gv-pop .4s cubic-bezier(.3,1.5,.6,1) both}
  .gv-arm-left{transform-origin:88px 150px;animation:gv-raise-left .8s cubic-bezier(.3,1.4,.6,1) .4s both}
  .gv-arm-right{transform-origin:152px 150px;animation:gv-raise-right .8s cubic-bezier(.3,1.4,.6,1) .4s both}
  .gv-medal{animation:gv-drop 1.2s cubic-bezier(.4,0,.3,1) .9s both}
  .gv-sparkles{transform-origin:120px 120px;animation:gv-shine .5s ease-out 2.1s both}
  .gv-celebrate-how,.gv-celebrate-link{animation:gv-fade .5s ease-out 2.1s both}
  @keyframes gv-pop{from{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}
  @keyframes gv-raise-left{from{transform:rotate(-112deg)}to{transform:rotate(0)}}
  @keyframes gv-raise-right{from{transform:rotate(112deg)}to{transform:rotate(0)}}
  @keyframes gv-drop{0%{transform:translateY(-230px);opacity:0}12%{opacity:1}72%{transform:translateY(6px)}86%{transform:translateY(-4px)}100%{transform:translateY(0);opacity:1}}
  @keyframes gv-shine{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
  @keyframes gv-fade{from{opacity:0}to{opacity:1}}
}

.gv-panel{max-width:520px;padding:24px;border-radius:var(--sb-card-r);background:#fff;box-shadow:var(--sb-shadow)}
.gv-lede{margin:0 0 16px;color:var(--ink-soft)}
.gv-form{display:grid;gap:14px;justify-items:start}
.gv-field{display:grid;gap:6px;width:100%}
.gv-field label{font:700 15px/1.3 var(--body);color:var(--teal-deep)}
.gv-field input{display:block;width:100%;min-height:48px;padding:13px 16px;border:0;border-radius:18px 18px 18px 6px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--teal);color:var(--ink);font:500 16px/1.4 var(--body);-webkit-appearance:none;appearance:none}
.gv-field input:focus{outline:0;box-shadow:inset 0 0 0 2.5px var(--bloom)}
.gv-hint{margin:0;color:var(--ink-soft);font-size:13.5px}
.gv-form .btn,.gv-panel .btn,.gv-actions .btn{cursor:pointer}
.gv-form-message{margin:12px 0 0;min-height:1.5em;font-weight:700;color:var(--teal-deep)}
.gv-form-message:empty{min-height:0;margin:0}
.gv-form-message.warn{color:var(--bloom-deep)}
.gv-or{margin:20px 0 8px;color:var(--ink-soft)}
[hidden]{display:none !important}

.sb .gv-name{margin:0 0 18px;font-size:clamp(36px,5vw,64px);overflow-wrap:anywhere}
.gv-section{margin:36px 0 0}
.sb .gv-section h2{margin:0 0 14px;font-size:clamp(28px,3.4vw,42px)}
.gv-awards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}
.gv-award{padding:20px 16px;border-radius:var(--sb-card-r);background:#fff;box-shadow:var(--sb-shadow);text-align:center}
.gv-award.earned{border-top:6px solid var(--pollen)}
.gv-award.locked{background:transparent;box-shadow:none;border:2px dashed var(--line);color:var(--ink-soft)}
.gv-award-art{width:120px;margin:0 auto 10px}
.sb .gv-award h3{margin:0 0 4px;font-size:21px}
.gv-award p{margin:0;font-size:15px}
.gv-award-date{color:var(--bloom-deep);font-weight:700}
.gv-progress{margin:18px 0 0;padding:14px 20px;border-radius:var(--sb-card-r);background:var(--mist);color:var(--teal-deep);font-weight:700}
.gv-checkins{list-style:none;margin:0;padding:0;border-radius:var(--sb-card-r);background:#fff;box-shadow:inset 0 0 0 1.5px var(--line);overflow:hidden}
.gv-checkins li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:13px 20px;border-top:1.5px dashed var(--line)}
.gv-checkins li:first-child{border-top:0}
.gv-checkin-date{color:var(--ink-soft)}
.gv-empty{margin:0;color:var(--ink-soft)}
.gv-settings .gv-inline{grid-template-columns:minmax(0,340px) auto;align-items:end;justify-items:stretch;max-width:520px}
.gv-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.btn.secondary.gv-danger{color:var(--bloom-deep);box-shadow:inset 0 0 0 2px var(--bloom-deep)}
.btn.secondary.gv-danger:hover{background:var(--bloom-deep);color:#fff}
.btn.gv-danger-solid{background:var(--night)}
.btn.gv-danger-solid:hover{background:var(--bloom-deep)}
.gv-confirm{margin:16px 0 0;padding:20px 24px;border:2px dashed var(--bloom-deep);border-radius:var(--sb-card-r);background:#fff;max-width:520px}
.sb .gv-confirm h3{margin:0 0 6px;font-size:23px}
.gv-confirm p{margin:0}
.gv-confirm ul{margin:8px 0 0;padding-left:20px}
@media(max-width:760px){
  .gv-checkin{padding:18px 20px}
  .gv-checkin-button{width:100%}
  .gv-again{margin:8px 0 0}
  .gv-settings .gv-inline{grid-template-columns:1fr}
  .gv-actions .btn,.gv-form .btn{width:100%}
  .gv-awards{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){.gv-awards{grid-template-columns:1fr}}
