:root{
  --esr-offset: 0px;
  --esr-accent: #f28c1a;
  --esr-z: 99990;
}

.search-reveal{
  position: fixed;
  top: var(--esr-offset);
  left: 0;
  right: 0;
  transform: translateY(-100%);
  transition: transform .24s cubic-bezier(.22,.61,.36,1), opacity .24s linear;
  opacity: 0;
  background: #fff;
  border-bottom: 3px solid var(--esr-accent);
  z-index: var(--esr-z);
  will-change: transform, opacity;
  box-shadow: 0 6px 16px rgba(0,0,0,.10);
  pointer-events: none; /* allow clicks through when closed */
}

.search-reveal.is-open{
  transform: translateY(0);
  opacity: 1;
  pointer-events: auto; /* interactive only when open */
  animation: esrPop .18s ease-out;
}
@keyframes esrPop{
  0%{ transform: translateY(-12%) }
  100%{ transform: translateY(0) }
}

.search-reveal-inner{
  max-width: min(1120px, 92vw);
  margin: 0 auto;
  padding: 18px 14px;
}

.search-form{
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 12px;
  align-items: center;
  direction: rtl;
}

.search-form input[type="search"]{
  width: 100%;
  font-size: 18px;
  line-height: 1;
  padding: 14px 16px;
  border: 1px solid #dcdcdc;
  border-radius: 12px;
  outline: none;
}

.search-form input[type="search"]:focus{
  border-color: var(--esr-accent);
  /*box-shadow: 0 0 0 3px rgba(242,140,26,.2);*/
}

.btn-search{
  padding: 14px 18px;
  border: 0;
  border-radius: 12px;
  background: var(--esr-accent);
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}

.btn-close{
  padding: 42px 24px;
  border: 0;
  background: transparent;
  font-size: 16px;
  line-height: 0;
  cursor: pointer;
}

html.esr-open, html.esr-open body{ overflow: hidden; }

@media (max-width: 767px){
  .search-form{ grid-template-columns: 1fr auto; }
  .btn-close{ order: 2; }
}