
/**
 * site.css - stylesheet for the Caltech Library's Digital Library Development Group's sandbox.
 *
 * orange: #FF6E1E;
 *
 * Secondary pallet:
 *
 * lightgrey: #C8C8C8
 * grey: #76777B
 * darkgrey: #616265
 * slategrey: #AAA99F
 *
 * Impact Pallete see: http://identity.caltech.edu/web/colors
 *
 * TODO: Need to make a small screen friendly version
 *
 *
 * ============================================
 * Customization & Theming Notes
 * ============================================
 *
 * This stylesheet uses CSS custom properties (variables)
 * to allow optional theming and customization.
 *
 * Default values are defined in the :root selector below.
 * These defaults will be used automatically if no overrides
 * are provided.
 *
 * To customize styles, create a separate CSS file and define
 * your own :root variables there. Then include that file
 * AFTER this stylesheet in your HTML.
 *
 * Example:
 *
 *   <link rel="stylesheet" href="site.css">
 *   <link rel="stylesheet" href="custom.css">
 *
 * In custom.css:
 *
 *   :root {
 *     --color-primary: #0055cc;
 *     --color-nav-bg: black;
 *   }
 *
 * Only override the variables you need—everything else will
 * fall back to the defaults defined here.
 *
 * This approach allows:
 *   - Zero configuration for most users
 *   - Simple overrides for advanced users
 *   - Safe fallback values if variables are missing
 *
 * Note: CSS applies the "cascade" rule, meaning later files
 * override earlier ones when selectors have equal specificity.
 */

/* Base values */
:root {
  /* Primary */
  --color-primary: #FF6E1E;

  /* Secondary palette */
  --color-lightgrey: #C8C8C8;
  --color-grey: #76777B;
  --color-darkgrey: #616265;
  --color-slategrey: #AAA99F;

  /* Base */
  --color-text: black;
  --color-bg: white;
  --color-link: #747267;
  --color-nav-bg: #333333;
  --color-footer-bg: #303030;
  --color-border: red;

  --font-family-base: Open Sans, Helvetica, Sans-Serif;
  --font-size-base: 14px;

  /* special cases */
  --color-announcement: white;
  --color-bg-announcement: orange;
}

body {
     margin: 0;
     border: 0;
     padding: 0;
     width: 100%;
     height: 100%;
     color: var(--color-text, black);
     background-color: var(--color-bg, white);
     font-family: var(--font-family-base, Open Sans, Helvetica, Sans-Serif);
     font-size: var(--font-size-base, 14px);
}

header {
     position: relative;
     display: block;
     color: var(--color-bg, white);
     background-color: var(--color-bg, white);
     z-index: 2;
     height: 105px;
     vertical-align: middle;
}

header img {
     position: relative;
     display: inline;
     padding-left: 20px;
     margin: 0;
     height: 42px;
     padding-top: 32px;
}

header h1 {
     position: relative;
     display: inline-block;
     margin: 0;
     border: 0;
     padding: 0;
     font-size: 3em;
     font-weight: normal;
     vertical-align: 0.78em;
     color: var(--color-primary, #FF6E1E);
}

header a, header a:link, header a:visited, header a:active, header a:hover, header a:focus {
    color: var(--color-primary, #FF6E1E);
    background-color: inherit;
}

a, a:link, a:visited {
    color: var(--color-link, #747267);
    background-color: inherit;
    text-decoration: none;
}

a:active, a:hover, a:focus {
  color: var(--color-primary, #FF6E1E);
  font-weight: bolder;
}

nav {
     position: relative;
     display: block;
     width: 100%;
     margin: 0;
     padding: 0;
     font-size: 0.78em;
     vertical-align: middle;
     color: var(--color-text, black);
     background-color: var(--color-nav-bg, #333333);
     text-align: left;
}

nav div {
     display: inline-block;
     /* padding-left: 10em; */
     margin-left: 10em;
     margin-right: 0;
}

nav a, nav a:link, nav a:visited, nav a:active {
    color: var(--color-bg, white);
    background-color: inherit;
    text-decoration: none;
}

nav a:hover, nav a:focus {
    color: var(--color-primary, #FF6E1E);
    background-color: inherit;
    text-decoration: none;
}

nav div h2 {
     position: relative;
     display: block;
     min-width: 20%;
     margin: 0;
     font-size: 1.24em;
     font-style: normal;
}

nav div > ul {
     display: none;
     padding-left: 0.24em;
     text-align: left;
}

nav ul {
     display: inline-block;
     padding-left: 0.24em;
     list-style-type: none;
     text-align: left;
     text-decoration: none;
}

nav ul li {
     display: inline;
     padding: 1em;
}

section {
     position: relative;
     display: inline-block;
     width: auto;
     max-width: 98%;
     height: 100%;
     color: var(--color-text, black);
     background-color: var(--color-bg, white);
     margin: 0;
     padding-top: 2em;
     padding-bottom: 2em;
     padding-left: 1em;
     padding-right: 2em;
}

section > menu {
	display: flex;
	list-style: none;
	padding: 0;
	margin: 0;
}

section > menu > li {
	flex-grow: 1;
}

section h1 {
    font-size: 1.32em;
}

section h2 {
    font-size: 1.12em;
    font-style: italic;
}

section h3 {
    font-size: 1em;
    /* text-transform: uppercase; */
}

section ul {
    list-style-type: disc;
}


section a, section a:link, section a:visited, section a:active {
    font-style: italic;
    font-weight: normal;
    text-decoration: underline;
}

section a:hover, section a:focus {
    color: var(--color-primary, #FF6E1E);
    text-decoration: none;
}

/*
 * We want the links in the output of the Builder widget to pop out
 * as links.
 */
section.widget a, section.widget a:link, section.widget a:visited, section.widget a:active {
    color: var(--color-widget-link, blue);
}

aside {
     margin: 0;
     border: 0;
     padding-left: 1em;
     position: relative;
     display: inline-block;
     text-align: right;
}

aside h2 {
     font-size: 1em;
     text-transform: uppercase;
}

aside h2 > a {
     font-style: normal;
}

aside ul {
     margin: 0;
     padding: 0;
     display: block;
     list-style-type: none;
}

aside ul li {
     font-size: 0.82em;
}

aside ul > ul {
     padding-left: 1em;
     font-size: 0.72em;
}

footer {
     position: fixed;
     bottom: 0;
     display: block;
     width: 100%;
     height: 2em;
     color: var(--color-bg, white);
     background-color: var(--color-footer-bg, #303030);
     font-size: 80%;
     text-align: left;
     vertical-align: middle;
     z-index: 2;
}

footer h1, footer span, footer address {
     position: relative;
     display: inline-block;
     margin: 0;
     padding-left: 0.24em;
     font-family: var(--font-family-base, Open Sans, Helvetica, Sans-Serif);
     font-size: 1m;
}

footer h1 {
     font-weight: normal;
}

footer a, footer a:link, footer a:visited, footer a:active, footer a:focus, footer a:hover {
     padding: 0;
     display: inline;
     margin: 0;
     color: var(--color-primary, #FF6E1E);
     text-decoration: none;
}

/* Form styling */
/*
form {
    display: block;
    padding: 1em;
    border-style: solid;
    border-radius: 0.82em;
    border-width: 0.18em;
    border-color: red;
}
*/

form div label {
    display: inline;
    margin: 0.72em;
    text-align: right;
    min-width: 5em;
}

form div input[type=button] {
    margin: 1em;
    border-radius: 82em;
}

/* Widget is the outer container for either a
 * BuilderWidget or SearchWidger */
.widget {
    display: block;
    flex-flow: row wrap;
    padding: 1em;
    border-style: solid;
    border-radius: 0.82em;
    border-width: 0.18em;
    border-color: var(--border-color, red);
}

.announcement {
    color: var(--color-announcement, white);
    background-color: var(--color-bg-announcement, orange);
    padding: 1em;
    margin-top: 2em;
    margin-bottom: 2em;
    margin-left: 0em;
    margin-right: 0em;
    text-overflow: ellipsis;
    border: 1px solid black;
}

/*
.article-result, .publication-result, .book_section-result {
    margin-bottom: 1.24em;
}
*/


/*
 * Search box and results layout
 */
.search-box {
    display: block;
}

.search-box div {
    display: block;
}

.search-box div label {
    vertical-align: top;
}

.search-go-button {
    display: block;
}

.search-go-button input {
    text-align: center;
    margin: 0.24em;
}

.search-result-pager {
    padding-top: 1.24em;
    padding-bottom: 1.24em;
}

.search-results {
    margin-top:0;
    margin-bottom:0;
    margin-left: 0;
    margin-right: 1.24em;
    padding: 0;
}
.search-result {
    padding-top: 0.24em;
    padding-bottom: 1.24em;
}

.search-result:nth-child(odd) {
    background-color: var(--color-lightgrey, lightgrey);
}

.field-name, .matched-name, .index-name {
    display: inline-block;
    width: 6%;
    margin-right: 1.24em;
    text-transform: lowercase;
    text-align: right;
    vertical-align: top;
}

.field-value, .matched-value, .index-value {
    display: inline-block;
    text-align: left;
    vertical-align: top;
}

.index-name, .index-value {
    font-style: italic;
    font-size: smaller;
}

a.visually-hidden:focus {
    position: static;
    display: block;
    width: 9rem;
    height: 1rem;
    margin: 5px;
    overflow: visible;
    clip: auto;
    white-space: normal;
    padding: 0.5rem 1rem;
    border: 2px solid var(--color-text, while);
    border-radius: 4px;
    background-color: var(--color-bg, while);
}

a.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
