/*
 * Copyright 2020 The Go Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style
 * license that can be found in the LICENSE file.
 */

@import './unit_header.css';
@import './unit_fixed_header.css';
@import './unit_readme.css';
@import './unit_doc.css';
@import './unit_directories.css';
@import './unit_meta.css';
@import './unit_outline.css';

.UnitDetails {
  column-gap: 2rem;
  display: grid;
  grid-template-columns: minmax(0, auto);
  margin-top: 1rem;
}
@media only screen and (min-width: 52rem) {
  .UnitDetails {
    grid-template-columns: 15.5rem minmax(32.5rem, 43.125rem);
  }
}
@media only screen and (min-width: 64rem) {
  .UnitDetails {
    grid-template-columns: 15.5rem minmax(32.5rem, 43.125rem) minmax(10rem, 15.5rem);
  }
}
@media only screen and (min-width: 80rem) {
  .UnitDetails {
    grid-template-columns: 15.5rem minmax(43.125rem, 60rem) 15.5rem;
    justify-content: center;
  }
}
.UnitDetails-outline {
  display: none;
  height: calc(100vh - 5.3475rem);
  margin-top: 2.5rem;
  position: sticky;
  top: 4.5rem;
}
@media only screen and (min-width: 52rem) {
  .UnitDetails-outline {
    display: block;
  }
}
.UnitDetails-content {
  margin-top: 0.5rem;
  max-width: 60rem;
}
@media only screen and (min-width: 52rem) {
  .UnitDetails-content {
    margin-top: 2rem;
  }
}
.UnitDetails-meta {
  display: none;
  margin-top: 2rem;
}
@media only screen and (min-width: 64rem) {
  .UnitDetails-meta {
    display: block;
  }
}
