:root {
    --font-family: system-ui;
    --font-size: 1.3rem;
    --font-weight: 400;
    --header-margin-bottom: 16px;
    --input-horizontal-padding: 16px;
    --input-vertical-padding: 12px;

    --header-color: white;
    --header-bgcolor: steelblue;
    --header-button-bgcolor: mediumblue;
    --button-primary-bgcolor: steelblue;

    --text-error-color: red;
    --text-link-color: rgb(1, 88, 135);
    --text-line-height: 1.5;

    /* for dark */
    /* --text-link-color: rgb(121, 192, 255); */
}
/* @media (min-width: 576px) {
  :host, :root {
    --font-size: 106.25%;
  }
}
@media (min-width: 768px) {
    :host, :root {
        --font-size: 112.5%;
    }
}
@media (min-width: 1024px) {
    :host, :root {
        --font-size: 118.75%;
    }
}
@media (min-width: 1280px) {
    :host, :root {
    --font-size: 125%;
  }
}
@media (min-width: 1536px) {
  :host, :root {
    --font-size: 131.25%;
  }
} */


html {
    -webkit-text-size-adjust: 100%;
}
html, body {
    margin: 0;
    padding: 0;
}

/* TODO: this reset stuff is probably wrong */
div,button,input,select,textarea,header,menu,label, em,a {
    margin: 0;
    padding: 0;
}
div,button,input,select,textarea,header,label {
    box-sizing: border-box;
    display: block;
}
body {
    /* padding-top: 60px; */
    background-color: #f5f5f5;;
    font-weight: var(--font-weight);
    font-family: var(--font-family);
    /* font-family: Arial, Helvetica, sans-serif; */
    font-size: var(--font-size);
    line-height: var(--text-line-height);
}
body {
    /* color: #636363; */
    color: #000;
}

h1, h2, h3, h4 {
    font-weight: 700;
    line-height: 1.125;
    margin-top: 0;
    margin-bottom: var(--header-margin-bottom);
}
h1 {
    font-size: 2.25rem;
}
h2 {
    font-size: 2rem;
}
h3 {
    font-size: 1.75rem;
}
h1 a, h2 a, h3 a, h4 a {
    color: black;
}


input, select, textarea {
    background-color: white;
    /* background-color: #f5f5f5; */
    /*#fbfbfb;*/
    border: 2px solid #ccc;
    color: #000;
    padding: var(--input-vertical-padding) var(--input-horizontal-padding);
    width: 100%;
}

input, button, select, textarea, a.button {
    border-radius: 0.25rem;
}
input, select, textarea, button, a.button, p {
    font-size: inherit;
}

input:focus, select:focus, textarea:focus {
    border: 2px solid var(--button-primary-bgcolor);
}

button, a.button {
    background-color: var(--button-primary-bgcolor);
    border: 2px solid var(--button-primary-bgcolor);
    color: #fff;
    /*
    cursor: pointer;
    */
    /* display: inline-block; */
    /* somehow 3em height is ignored if you increase font-size */
    /*
    height: 48px;
    line-height: 2.8em;
    */
    overflow: hidden;
    overflow-wrap: break-word;
    padding: var(--input-vertical-padding) var(--input-horizontal-padding);
    text-align: center;
    vertical-align: middle;
    white-space: normal;
    /*
    width: 100%;
    */
}

/* This is to gently nudge the input narrower in the tag list above addNote */
/* input {
    min-width: 60px;
} */

input[type=date] {
    /* display: inline; */
    width: auto;
}


label, .buttonrow {
    margin-top: 24px;
    margin-bottom: 6px; 
    /* calc(1rem * 0.375); */
}
small {
    color: var(--text-error-color);
    display: block;
    font-size: large;
    margin-top: 8px;
    margin-bottom: 8px;
    margin-left: var(--input-horizontal-padding);
}
table {
    width: 100%;
}


p {
    margin-bottom: 16px;
}

a {
    color: var(--text-link-color);
}
header a {
    color: black;
}








/* COMPONENTS */
header {
    background-color: var(--header-bgcolor);
    margin-bottom: 24px;
    /* position: fixed; */
    /* top: 0; */
    /* width: 100vw; */
}
header.faux {
    position: relative;
}
header .menu {
    display: grid;
    gap: 1px;
    grid-template-columns: auto 80px;
    font-size: 22px;
    padding-top: 0.3em;
    padding-bottom: 0.3em;
}
header .menu > * {
    color: white;
}

nav.menu2 {
    display: flex;
}
nav.menu2 > * {
    padding-top: 14px;
    padding-bottom: 14px;
}
nav.menu2 > a {
    flex: auto;
}
nav a {
    align-items: center;
    color: var(--header-color);
    display: inline-flex;
    text-decoration: none;
    /* font-style: italic; */
}
nav a.org {
    font-size: 2.2rem;
}
nav > div {
    display: flex;
    justify-content: flex-end;
    padding-top: 12px;
}
nav div a {
    background-color: var(--header-button-bgcolor);
    padding: var(--input-vertical-padding) var(--input-horizontal-padding);
    border: 2px solid var(--header-button-bgcolor);
    border-radius: 0.25rem;
    line-height: 1rem;
    margin-right: 16px;
}
nav img {
    width: 32px;
}

@media (max-width: 1100px) {
    .menu2 > .org {
        content: "LG"
    }
    nav span {
        display:none;
    }
}

/* #hamburger {
    width: 300px;
} */
/* nav {
    background-color: #f5f5f5;
}
nav > * {
    font-size: 1.2em;
}
nav.subnav {
    background-color: beige;
}
*/

.subheader {
    background-color: gray;
    top: 0;
}

.container {
    margin-left: auto;
    margin-right: auto;
    /* max-width: 1100px; */
    max-width: 800px;
}

menu {
    background-color: lightgray;
}
menu > div {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: var(--input-vertical-padding);
}
menu > div > a {
    align-items: center;
    color: black;
    display: inline-flex;
    flex: 1;
    justify-content: right;
    margin-right: 16px;
    text-align: right;
    width: 100%;
}
menu span {
    margin-left: 8px;
}

/* nav > menu {
    display: flex;
}
nav > menu > * {
    border: 2px solid #f5f5f5;;
    flex: 1;
    line-height: 2em;
    margin: 0;
    text-align: center;
}
nav > menu > .selected {
    background-color: white;
    border-color: white;
} */










button.cancel, a.cancel {
    background-color: orange;
    border: 2px solid orange;
}


.buttons, .buttonrow {
    display: flex;
}
.buttons > * {
    flex:1;
}
.buttonrow > * {
    margin-right: 10px;
    width: auto;
}
.buttonrow > label {
    border: 0;
    overflow: hidden;
    overflow-wrap: break-word;
    padding-top: 10px;
    text-align: center;
    vertical-align: middle;
    white-space: normal;
}
div {
    text-align: left;
    vertical-align: middle;;
}

.notice {
    background-color: #ab4642;
}


:focus {
    outline: none;
}


.groups {
    display: grid;
    /* i can't get flex grid to work without this */
    grid-template-columns: repeat(auto-fit, minmax(320px,1fr));
    gap: 10px;
}

div.groupCard {
    border: 2px solid rgb(231, 234, 240);
    background-color: rgba(111, 120, 135, 0.04);
    /*
    padding: 10px;
    */
    border-radius: 0.25rem;
    max-width: 400px;
}

.groupCard > .split  {
    display: flex;
}
.groupCard > .split > * {
    flex: 1;
}
.groupNumMembers {
    text-align: right;
}


div.banner img {
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
    width: 100%;
    height: 140px;
    object-fit: cover;
    object-position: top;
}

.separator {
    font-size: larger;
}

.hidden {
    display: none;
}


@media (max-width: 1100px) {
    .container {
        margin: 0;
        padding-left: 5px;
        padding-right: 5px;
        width: 100%;
    }

    /*
    .groups {
        grid-template-columns: 100%;
    }
    */
}

.material-symbols-outlined {
    color:  red;
}

hr {
    border: 2px solid;
}
hr.light {
    border: 1px dashed;
}

#fuzzyaddress {
    /* display: flex; */
}
#fuzzyaddress button {
    flex: 200px;
}
#fuzzyaddress > * {
    margin: 0;
}


.columns {
    display: flex;
    gap: 20px;
}
.columns > * {
    flex: 1;
}
@media (max-width: 1100px) {
    .columns {
        display: block
    }
}

.half {
    display: grid;
    grid-template-columns: 50% 50%;
    gap: 10px;
}

hgroup {
    background-color: lightgray;
    display: grid;
    grid-auto-rows: 50px;
    grid-template-columns: auto 70px;
    margin-bottom: 10px;
}
hgroup > a {
    align-items: center;
    display: flex;
    font-size: larger;
    font-weight: bold;
    vertical-align: middle;
}
hgroup > button {
}


.split {
    display: flex;
}
.split > * {
    flex: auto;
}
.split > :last-child {
    flex:none;
}


/* UPCOMING CALENDAR */
#upcoming {
    display: grid;
    /* i can't get flex grid to work without this */
    /* 350 works on iPhone SE */
    grid-template-columns: repeat(auto-fit, minmax(350px,1fr));
    gap: 15px;
}
#upcoming .title {
    background-color: gray;
    font-weight: bold;
    padding: 10px;
    text-align: center;
}
#upcoming .calendargrid {
    display: grid;
    grid-template-columns: 14.28% 14.28% 14.28% 14.28% 14.28% 14.28% 14.28%;
}

#upcoming .calendargrid > * {
    border: 1px solid white;
    height: 50px;
}
#upcoming .calendargrid .dow {
    background-color: lightgray;
    border: 1px solid lightgray;
    height: auto;
    padding: 4px;
}
/* #upcoming .calendargrid > div > .date {
    font-size: smaller;
} */
#upcoming .calendargrid > div > div:not(:first-child) {
    display: block;
    /* height: 5px; */
}

/* #upcoming .calendargrid .previous, #upcoming .calendargrid .next {
    background-color: lightgray;
    border-color: lightgray;
} */
#upcoming .calendargrid .today {
    border-color: green;
}

#upcomingGroups {
    display: grid;
    grid-template-columns: 60px auto;
    margin-bottom: 5px;
}
#upcomingGroups input {
    height: 20px;
}
#upcomingGroups label {
    padding: 4px;
}

tr:nth-child(odd) {
    background-color: lightgray;
}
th, td {
    padding: 10px;
}

@media (max-width: 1100px) {
    td.wideOnly, th.wideOnly {
        display: none;
    }
}

#CityResults {
    background-color: white;
    border: 2px solid orange;
    display: none;
    position: absolute;

}
#CityResults > div {
    border-bottom: lightgray;
    padding: 16px;
}
#AddressResults {
    background-color: white;
    border: 2px solid orange;
    display: none;
    position: absolute;

}
#AddressResults > div {
    border-bottom: lightgray;
    padding: 16px;
}

#footer {
    margin-top: 30px;
}
#footer .container * {
    margin-bottom: 20px;
}