]> Raphaël G. Git Repositories - airbundle/blobdiff - Resources/public/css/screen.css
Add Lemon font
[airbundle] / Resources / public / css / screen.css
index 9edb5276303c5c1bfda6c270e6d1336bc232d133..3924cb8474fb68e7ab2228eb59bc243b8b6c7854 100644 (file)
@@ -1,6 +1,6 @@
 /* Reset link */
 a {
 /* Reset link */
 a {
-       text-decoration: none;
+       /*text-decoration: none;*/
        color: #066;
 }
 
        color: #066;
 }
 
@@ -22,54 +22,67 @@ a::first-letter {
 html, body, dd, li, p, td {
        /* DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/
        font-family: 'Droid Sans', 'Symbola', 'DejaVu Sans', 'FreeSans', sans-serif;
 html, body, dd, li, p, td {
        /* DejaVu Sans/FreeSans/FreeSerif/Linux Libertine/Symbola/Unifont*/
        font-family: 'Droid Sans', 'Symbola', 'DejaVu Sans', 'FreeSans', sans-serif;
-       font-display: swap;
 }
 
 button, code, input, option, optgroup, pre, select, textarea {
        font-family: 'Droid Sans Mono', monospace;
 }
 
 button, code, input, option, optgroup, pre, select, textarea {
        font-family: 'Droid Sans Mono', monospace;
-       font-display: swap;
 }
 
 dt, h1, h2, h3, h4, h5, h6, label, legend, th, details {
        font-family: 'Droid Serif', serif;
 }
 
 dt, h1, h2, h3, h4, h5, h6, label, legend, th, details {
        font-family: 'Droid Serif', serif;
-       font-display: swap;
 }
 
 /* Default styling */
 h1 {
 }
 
 /* Default styling */
 h1 {
-       font-size: 2rem;
-}
-
-h2 {
        font-size: 1.5rem;
        margin: 0 0 .5rem;
        padding: .5rem;
 }
 
        font-size: 1.5rem;
        margin: 0 0 .5rem;
        padding: .5rem;
 }
 
-h3 {
+h2 {
        font-size: 1.17rem;
        margin: 0 0 .5rem;
        padding: .4rem;
 }
 
        font-size: 1.17rem;
        margin: 0 0 .5rem;
        padding: .4rem;
 }
 
-h4 {
+h3 {
        font-size: 1rem;
        margin: 0 0 .5rem;
        padding: .3rem;
 }
 
        font-size: 1rem;
        margin: 0 0 .5rem;
        padding: .3rem;
 }
 
-h5 {
+h4 {
        font-size: .85rem;
        margin: 0 0 .5rem;
        padding: .2rem;
 }
 
        font-size: .85rem;
        margin: 0 0 .5rem;
        padding: .2rem;
 }
 
-h6 {
+h5 {
        font-size: .67rem;
        margin: 0 0 .5rem;
        padding: .1rem;
 }
 
        font-size: .67rem;
        margin: 0 0 .5rem;
        padding: .1rem;
 }
 
+h6 {
+       font-size: .5rem;
+       margin: 0 0 .5rem;
+       padding: .1rem;
+}
+
+header {
+       margin: 0 0 .5rem;
+}
+
+header h1 {
+       margin: 0;
+       padding: .5rem .5rem .3rem;
+       border-bottom: 0 none;
+}
+
+header h2 {
+       border-bottom: 0 none;
+}
+
 nav strong {
        display: block;
        font-size: 1.17rem;
 nav strong {
        display: block;
        font-size: 1.17rem;
@@ -77,7 +90,7 @@ nav strong {
        padding: .4rem;
 }
 
        padding: .4rem;
 }
 
-h2, h3, h4, h5, nav strong {
+h1, h2, h3, h4, header {
        background-color: #cff;
        border-bottom: .1rem solid #00c3f9;
 }
        background-color: #cff;
        border-bottom: .1rem solid #00c3f9;
 }
@@ -91,6 +104,72 @@ p {
        font-size: .9rem;
 }
 
        font-size: .9rem;
 }
 
+pre {
+       margin: 0 .5rem .3rem;
+       font-size: .8rem;
+}
+
+dl {
+       margin: 0 .5rem .5rem;
+}
+
+dl:first-child,
+dl:only-child,
+dl:first-of-type {
+       margin-top: .5rem;
+}
+
+dt {
+       font-size: .9rem;
+       font-weight: bold;
+}
+
+dd {
+       font-size: .9rem;
+       margin-left: 1rem;
+}
+
+.map figure,
+.multimap figure,
+.thumb figure {
+       text-align: center;
+}
+
+.map img,
+.multimap img,
+.thumb img {
+       border-radius: .2rem;
+       border: .1rem solid #00c3f9;
+       aspect-ratio: 1;
+}
+
+.map dd {
+       margin: 0;
+}
+
+.map dd img {
+       width: 100%;
+       width: calc(100% - .2rem);
+       height: auto;
+}
+
+.thumb img {
+       width: 100%;
+       width: calc(100% - 1.2rem);
+}
+
+.four .multimap {
+       grid-column: span 4;
+}
+
+.three .multimap {
+       grid-column: span 3;
+}
+
+.two .multimap {
+       grid-column: span 2;
+}
+
 body {
        display: flex;
        flex-flow: column wrap;
 body {
        display: flex;
        flex-flow: column wrap;
@@ -98,7 +177,8 @@ body {
 }
 
 nav,
 }
 
 nav,
-section {
+section,
+article {
        margin: 0 .5rem .5rem;
        border: .1rem solid #00c3f9;
        border-radius: .3rem;
        margin: 0 .5rem .5rem;
        border: .1rem solid #00c3f9;
        border-radius: .3rem;
@@ -169,25 +249,21 @@ form div:last-of-type {
        margin-bottom: 0;
 }
 
        margin-bottom: 0;
 }
 
-/*form section div {
-       display: flex;
-       flex-direction: row;
-       align-content: space-around;
-       justify-content: center;
-}
-
-form section section {
-       display: flex;
-       flex-direction: column;
-}*/
-
 form label {
        width: 12rem;
 form label {
        width: 12rem;
-       /*padding: .2rem 1rem .2rem 0;*/
+       line-height: 1.3rem;
        padding-right: 1rem;
        text-align: right;
 }
 
        padding-right: 1rem;
        text-align: right;
 }
 
+form label.captcha {
+       line-height: normal;
+}
+
+form label.captcha img {
+       height: 1.325rem;
+}
+
 form input,
 form option,
 form optgroup,
 form input,
 form option,
 form optgroup,
@@ -196,6 +272,7 @@ form textarea,
 form section section {
        width: 24rem;
        padding: .1rem;
 form section section {
        width: 24rem;
        padding: .1rem;
+       margin: 0 auto;
 }
 
 form select {
 }
 
 form select {
@@ -210,17 +287,25 @@ form button {
 }
 
 form .message {
 }
 
 form .message {
+       margin: 0 0 .5rem 0;
+}
+
+form div .message {
        margin: .25rem 0 0 0;
 }
 
 /* Vertical form */
        margin: .25rem 0 0 0;
 }
 
 /* Vertical form */
+.location .col label,
 .col label {
        width: 8rem;
        padding-right: 0;
        padding-bottom: .2rem;
        text-align: center;
 .col label {
        width: 8rem;
        padding-right: 0;
        padding-bottom: .2rem;
        text-align: center;
+       margin: 0 auto;
 }
 
 }
 
+.location .col input,
+.location .col textarea,
 .col input,
 .col option,
 .col optgroup,
 .col input,
 .col option,
 .col optgroup,
@@ -233,10 +318,6 @@ form .message {
        width: 8rem;
 }
 
        width: 8rem;
 }
 
-/*.col section {
-       width: auto;
-}*/
-
 .col .row {
        flex-direction: column;
 }
 .col .row {
        flex-direction: column;
 }
@@ -248,6 +329,7 @@ form .message {
 
 /* Header */
 #header {
 
 /* Header */
 #header {
+       background-color: transparent;
        border: .1rem solid #00c3f9;
        border-top: 0;
        border-radius: 0 0 .5rem .5rem;
        border: .1rem solid #00c3f9;
        border-top: 0;
        border-radius: 0 0 .5rem .5rem;
@@ -256,22 +338,19 @@ form .message {
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: space-between;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: space-between;
-       line-height: 32px;
+       line-height: 45px;
        font-size: 32px;
        padding: .5rem;
        gap: .5rem;
 }
 
        font-size: 32px;
        padding: .5rem;
        gap: .5rem;
 }
 
-#header h1 {
+#logo {
+       font-size: 2rem;
        padding: 0;
        padding: 0;
-       margin: 0;
+       margin: auto;
        white-space: nowrap;
        white-space: nowrap;
-       width: 171px;
-       height: 32px;
-}
-
-#header h2 {
-       display: none;
+       width: 100px;
+       height: 45px;
 }
 
 #header nav {
 }
 
 #header nav {
@@ -332,9 +411,11 @@ form .message {
 .mortal,
 .mortal button,
 .mortal select {
 .mortal,
 .mortal button,
 .mortal select {
-       border-color: #c33333;
+       /*border-color: #c33333;
+       color: #c33333;*/
+       border-color: #930;
        background-color: #f9c3c3;
        background-color: #f9c3c3;
-       color: #c33333;
+       color: #930;
 }
 
 .dangerous,
 }
 
 .dangerous,
@@ -374,9 +455,12 @@ form .message {
 .dangerous,
 .dangerous button,
 .dangerous select {
 .dangerous,
 .dangerous button,
 .dangerous select {
-       border-color: #c39333;
+       /*border-color: #c39333;
        background-color: #f9c333;
        background-color: #f9c333;
-       color: #936333;
+       color: #936333;*/
+       border-color: #930;
+       background-color: #fc9;
+       color: #930;
 }
 
 .warning {
 }
 
 .warning {
@@ -399,12 +483,12 @@ form .message {
 #form,
 #recover,
 #regulation {
 #form,
 #recover,
 #regulation {
-       border: .1rem solid #00c3f9;
        border-radius: .5rem;
        border-radius: .5rem;
+       /*border: .1rem solid #00c3f9;
        margin: .5rem;
        margin-top: 0;
        display: flex;
        margin: .5rem;
        margin-top: 0;
        display: flex;
-       flex-direction: column;
+       flex-direction: column;*/
 }
 
 .panel {
 }
 
 .panel {
@@ -415,23 +499,38 @@ form .message {
 }
 
 .grid {
 }
 
 .grid {
-       display: flex;
-       flex-flow: row wrap;
+       display: grid;
        border-style: solid;
        border-color: #00c3f9;
        border-radius: .2rem;
        border-style: solid;
        border-color: #00c3f9;
        border-radius: .2rem;
-       flex: 1 1 auto;
        box-sizing: border-box;
        border-collapse: collapse;
        box-sizing: border-box;
        border-collapse: collapse;
-       gap: .1rem;
+       grid-gap: .1rem;
+       flex: 1 1 auto;
 }
 
 }
 
+.grid article,
 .grid section {
 .grid section {
+       border-collapse: inherit;
+       border-radius: inherit;
+       border-style: inherit;
+       border-width: .1rem;
+       box-sizing: inherit;
+       flex-grow: inherit;
        margin: 0;
        margin: 0;
+       min-height: 5rem;
+       overflow: hidden;
+}
+
+.grid section {
+       border-color: inherit;
 }
 
 .grid h3 {
        margin: 0;
 }
 
 .grid h3 {
        margin: 0;
+       overflow: hidden;
+       text-overflow: ellipsis;
+       white-space: nowrap;
 }
 
 .grid ul {
 }
 
 .grid ul {
@@ -441,339 +540,237 @@ form .message {
        list-style: none inside none;
 }
 
        list-style: none inside none;
 }
 
-.grid p {
-       margin: 0 0 .3rem;
-}
-
-.grid p:only-child,
-.grid p:last-child,
-.grid p:last-of-type {
-       margin: 0;
-}
-
-.form {
-       margin: 0;
-       display: flex;
-       flex-direction: column;
-       gap: .5rem;
-}
-
-.form h2 {
-       font-size: 1.17rem;
-       padding: .4rem;
-}
-
-.form a {
-       white-space: nowrap;
-}
-
-.form section {
-       margin: 0;
-       border: .05rem solid #00c3f9;
+.grid li {
+       border-width: .1rem;
+       border-style: solid;
        border-radius: .2rem;
        border-radius: .2rem;
+       white-space: nowrap;
+       padding: .1rem;
+       display: flex;
+       margin: 0 0 .1rem;
+       flex-direction: row;
+       justify-content: space-between;
 }
 
 }
 
-.form form {
-       gap: .5rem;
-}
-
-#location section {
-       display: flex;
-       flex: 1 1 auto;
-       flex-direction: column;
+.grid li a:first-letter {
+       color: inherit;
 }
 
 }
 
-#location h3 {
+/*XXX: required by ul display:block for overflow:hidden*/
+.grid li:only-child,
+.grid li:last-child,
+.grid li:last-of-type {
        margin: 0;
        margin: 0;
-       border-style: none;
-       flex: 1 1 auto;
 }
 
 }
 
-#location form {
-       margin-top: .5rem;
+.grid a {
+       /*TODO: voir pourquoi on a besoin d'un overflow-y de merde, sans une putain de scrollbar s'affiche dans certaines conditions sur chrome, depuis le passage de deux lignes de grid à 3 !!!*/
+       /*Est-ce parce que le city est pas expanded ???*/
+       overflow-y: clip;
+       overflow-x: hidden;
+       text-overflow: ellipsis;
 }
 
 }
 
-#location form label {
-       width: 4.5rem;
+.grid p {
+       margin: 0 0 .3rem;
 }
 
 }
 
-/*#dashboard .panel {
-       display: flex;
-       flex-direction: row;
-       flex-wrap: nowrap;
-       place-content: space-between;
-       border: 0;
+.grid p:only-child,
+.grid p:last-child,
+.grid p:last-of-type {
        margin: 0;
        margin: 0;
-       padding: 0 .5rem .5rem .5rem;
-}
-
-#dashboard .panel:only-child,
-#dashboard .panel:first-child,
-#dashboard .panel:first-of-type {
-       padding-top: .5rem;
 }
 
 }
 
-
-#dashboard .panel:only-child,
-#dashboard .panel:last-child,
-#dashboard .panel:last-of-type {
-       padding-bottom: .5rem;
-}*/
-
-#dashboard .candidate section,
-#dashboard .location section {
-       flex-direction: column;
-       flex-grow: 1;
-       border: .1rem solid #00c3f9;
-       border-radius: .3rem;
-       padding: 0;
+.current,
+.current h3 {
+       background-color: #cfc;
+       border-color: #008000;
+       color: #008000;
 }
 
 }
 
-#dashboard .location h4 {
-       border-width: 0;
+.current h3:first-letter {
+       color: #00b000;
 }
 
 }
 
-/*#dashboard .grid {
-       display: flex;
-       flex-flow: row wrap;
-       border-style: solid;
+.granted,
+.granted a {
+       background-color: #cff;
        border-color: #00c3f9;
        border-color: #00c3f9;
-       border-radius: .2rem;
-       flex-grow: 1;
-       box-sizing: border-box;
-       border-collapse: collapse;
-       gap: .1rem;
-}*/
-
-       /*margin: 0;
-#dashboard .grid:only-child,
-#dashboard .grid:last-child,
-#dashboard .grid:last-of-type {
-       margin-bottom: 0;
-}*/
-
-/*#dashboard .candidate .grid,
-#dashboard .location .grid {
-       padding: .5rem;
-}*/
-
-#dashboard .dlgrid {
-       display: flex;
-       flex-flow: row wrap;
-       gap: .5rem;
-}
-
-#dashboard dl {
-       /*margin: .5rem;
-       padding: .25rem;
-       border: .1rem solid #00c3f9;
-       border-radius: .2rem;
-       flex-grow: 1;
-       box-sizing: border-box;
-       border-collapse: collapse;*/
-       margin: 0 .5rem .5rem .5rem;
-}
-
-#dashboard dl:first-child,
-#dashboard dl:only-child,
-#dashboard dl:first-of-type {
-       margin-top: .5rem;
-}
-
-#dashboard dt {
-       font-size: .9rem;
-       font-weight: bold;
-}
-
-#dashboard dd {
-       font-size: .9rem;
-       margin-left: 1rem;
 }
 
 }
 
-#dashboard .subgrid {
-       display: flex;
-       flex-flow: row wrap;
-       border-style: solid;
-       border-color: #00c3f9;
-       border-width: .1rem 0 0 .1rem;
-       border-radius: .2rem;
-       flex-grow: 1;
-       box-sizing: border-box;
-       border-collapse: collapse;
-       margin: .5rem;
+.disputed,
+.disputed a {
+       border-color: #930;
+       background-color: #fc9;
+       color: #930;
 }
 
 }
 
-#dashboard .subgrid:only-child,
-#dashboard .subgrid:last-child,
-#dashboard .subgrid:last-of-type {
-       margin-bottom: 0;
+.canceled,
+.canceled a,
+.canceled h2,
+.canceled header {
+       color: #963;
+       background-color: #fddddd;
+       border-color: #963;
 }
 
 }
 
-#dashboard .cell {
-       border-color: inherit;
-       border-style: inherit;
-       border-width: .1rem;
-       border-radius: inherit;
-       flex-grow: inherit;
-       box-sizing: inherit;
-       border-collapse: inherit;
+.locked,
+.locked a {
+       border-color: #930;
+       background-color: #f9c3c3;
+       color: #930;
 }
 
 }
 
-#dashboard .subgrid .cell {
-       border-radius: 0;
-       border-width: 0 .1rem .1rem 0;
-}
-#dashboard .subgrid .cell:only-child,
-#dashboard .subgrid .cell:last-child,
-#dashboard .subgrid .cell:last-of-type {
-       border-radius: inherit;
+.pending,
+.pending a {
+       background-color: #ccc;
+       border-color: #066;
 }
 
 }
 
-#dashboard .fourth {
-       min-height: 5rem;
-       width: calc(100% / 4 - (3/4*.1rem));
+.highlight,
+.highlight a,
+.highlight h3 {
+       border-color: #3333c3;
+       background-color: #c3c3f9;
+       color: #606;
 }
 
 }
 
-#dashboard .seventh {
-       min-height: 5rem;
-       width: calc(100% / 7 - (6/7*.1rem));
+.highlight h3::first-letter {
+       color: #3333c3;
 }
 
 }
 
-#dashboard .third {
-       min-height: 5rem;
-       width: calc(100% / 3 - (2/3*.1rem));
+.disabled {
+       filter: grayscale(66%);
 }
 
 }
 
-#dashboard .session {
-       border: .1rem solid #00c3f9;
-       border-radius: .2rem;
-       white-space: nowrap;
-       display: flex;
-       flex-direction: row;
-       justify-content: space-between;
-       padding: .1rem;
+.calendar a {
+       display: grid;
+       /*grid-template-columns: 1fr auto fit-content(1fr);*/
+       grid-template-columns: max-content 1fr max-content;
+       flex: 1 1 auto;
+       grid-gap: .1rem;
+       /*XXX: reset to visible to prevent scroll*/
+       overflow-x: visible;
 }
 
 }
 
-#dashboard .session a {
+.calendar .reducible {
        overflow-x: hidden;
        text-overflow: ellipsis;
        overflow-x: hidden;
        text-overflow: ellipsis;
+       text-align: center;
 }
 
 }
 
-#dashboard .session a:first-letter {
-       color: #066;
+.calendar .glyph {
+       font-family: 'Noto Color Emoji', 'Noto Emoji', 'Droid Sans', 'Symbola', 'DejaVu Sans', 'FreeSans', sans-serif;
 }
 
 }
 
-#dashboard .disabled {
-       /*color: #acc;
-       background-color: #bee;*/
-       filter: grayscale(33%);
+.calendar .temperature,
+.calendar .rain,
+.calendar .rate {
+       line-height: 1rem;
+       text-align: right;
 }
 
 }
 
-#dashboard .current {
-       background-color: #cff;
+.calendar .rate {
+       text-align: center;
 }
 
 }
 
-#dashboard .current h3 {
-       text-decoration: underline solid #00c3f9;
+.calendar .info {
+       line-height: 1rem;
+       text-align: right;
 }
 
 }
 
-#dashboard .next {
-       background-color: #eff;
+.calendar .pseudonym {
+       grid-column: span 2;
 }
 
 }
 
-#dashboard .pending {
-       background-color: #ccc;
+.seven {
+       grid-template-columns: repeat(7, 1fr);
 }
 
 }
 
-#dashboard .granted {
-       background-color: #cff;
-       /*background-color: #33b679;
-       border-color: #33b679;*/
+.four {
+       grid-template-columns: repeat(4, 1fr);
 }
 
 }
 
-#dashboard .disputed {
-       background-color: #fcc;
+.three {
+       grid-template-columns: repeat(3, 1fr);
 }
 
 }
 
-#dashboard .orphaned {
-       background-color: #fc9;
+.two {
+       grid-template-columns: repeat(2, 1fr);
 }
 
 }
 
-#dashboard .highlight {
-       border-color: #3333c3;
-       background-color: #c3c3f9;
-       color: #3333c3;
+.city .grid h3,
+.location .grid h3,
+.city .grid h4,
+.location .grid h4 {
+       border-style: none;
+       margin: 0;
+       flex: 1 1 auto;
+       white-space: nowrap;
+       overflow: hidden;
+       text-overflow: ellipsis;
 }
 
 }
 
-/* Weather
- * TODO: drop
->24°C
-#dashboard .cleary a::before {
-       content: "☀";
+.city .grid article,
+.location .grid article {
+       min-height: auto;
+       height: fit-content;
 }
 
 }
 
->17°C
-#dashboard .sunny a::before {
-       content: "⛅";
+.city .grid {
+       gap: .5rem;
 }
 
 }
 
->10°C
-#dashboard .cloudy a::before {
-       content: "☁";
+.location form {
+       margin: .5rem auto;
 }
 
 }
 
-<=10°C
-#dashboard .winty a::before {
-       content: "❄️";
+.location form .row {
+       flex-direction: column;
 }
 
 }
 
->0mm
-#dashboard .rainy a::before {
-       content: "🌂";
+.location form div {
+       margin-left: auto;
+       margin-right: auto;
 }
 
 }
 
->2mm
-#dashboard .stormy a::before {
-       content: "☔";
-}*/
+.location label {
+       width: 20rem;
+       padding-right: 0;
+       text-align: center;
+}
 
 
-/* Regulation */
-#regulation {
+.location input,
+.location textarea {
+       width: 20rem;
+       margin: 0 .1rem;
 }
 
 }
 
-#regulation dl {
-       /*display: flex;
-       flex-direction: row;
-       justify-content: space-around;
-       padding-bottom: .5rem;*/
-       padding: .25rem;
-       margin-bottom: .5rem;
+.form {
+       margin: 0;
+       display: flex;
+       flex-direction: column;
+       gap: .5rem;
 }
 
 }
 
-#regulation dt {
-       font-size: .9rem;
-       font-weight: bold;
-       padding-bottom: .2rem;
+.form h2 {
+       font-size: 1.17rem;
+       padding: .4rem;
 }
 
 }
 
-#regulation dd {
-       font-size: .9rem;
-       margin-left: 1.5rem;
+.form a {
+       white-space: nowrap;
 }
 
 }
 
-#regulation dd:before {
+.form section {
+       margin: 0;
+       border: .05rem solid #00c3f9;
+       border-radius: .2rem;
+       width: 100%;
 }
 
 }
 
-#regulation dl:only-child,
-#regulation dl:last-child,
-#regulation dl:last-of-type,
-#regulation dt:only-child,
-#regulation dt:last-child,
-#regulation dt:last-of-type,
-#regulation dd:only-child,
-#regulation dd:last-child,
-#regulation dd:last-of-type {
-       margin-bottom: 0;
+.form form {
+       gap: .5rem;
 }
 
 /* Footer */
 }
 
 /* Footer */
@@ -788,10 +785,7 @@ form .message {
        display: flex;
        justify-content: space-between;
        background-color: #cff;
        display: flex;
        justify-content: space-between;
        background-color: #cff;
-}
-
-#footer details {
-       font-weight: bold;
+       gap: .5rem;
 }
 
 #footer summary::after {
 }
 
 #footer summary::after {
@@ -808,12 +802,34 @@ form .message {
 }
 
 /* viewport responsive hack */
 }
 
 /* viewport responsive hack */
-@media ( max-width: 900px ) {
+@media ( max-width: 1400px ) {
+       .location label,
+       .location input,
+       .location textarea {
+               width: 12rem;
+       }
+
+       .location .two {
+               grid-template-columns: repeat(1, 1fr);
+       }
+
+       .session .three {
+               grid-template-columns: repeat(2, 1fr);
+       }
+}
+
+@media ( max-width: 950px ) {
        .panel {
        .panel {
-               place-content: center;
+               /*flex-flow: column-reverse wrap;*/
                flex-flow: column wrap;
        }
 
                flex-flow: column wrap;
        }
 
+       .location .two {
+               grid-template-columns: repeat(2, 1fr);
+       }
+}
+
+@media ( max-width: 900px ) {
        .form {
                flex-direction: row;
        }
        .form {
                flex-direction: row;
        }
@@ -823,6 +839,12 @@ form .message {
                line-height: 2rem;
        }
 
                line-height: 2rem;
        }
 
+       form label.captcha img {
+               height: auto;
+               width: 6rem;
+               padding: .25rem 0;
+       }
+
        form input,
        form option,
        form optgroup,
        form input,
        form option,
        form optgroup,
@@ -851,7 +873,43 @@ form .message {
                width: 12rem;
        }
 
                width: 12rem;
        }
 
-       #dashboard .seventh:nth-child(7n+1),
+       .seven {
+               grid-template-columns: repeat(4, 1fr);
+       }
+
+       .calendar .sunday {
+               grid-column: span 2;
+       }
+
+       /*.grid section:nth-child(7n) {
+               grid-column: span 2;
+       }*/
+
+       .four {
+               grid-template-columns: repeat(3, 1fr);
+       }
+
+       .three {
+               grid-template-columns: repeat(2, 1fr);
+       }
+
+       .two {
+               grid-template-columns: repeat(1, 1fr);
+       }
+
+       .four .multimap {
+               grid-column: span 3;
+       }
+
+       .three .multimap {
+               grid-column: span 2;
+       }
+
+       .two .multimap {
+               grid-column: span 1;
+       }
+
+       /*#dashboard .seventh:nth-child(7n+1),
        #dashboard .seventh:nth-child(7n+2),
        #dashboard .seventh:nth-child(7n+3),
        #dashboard .seventh:nth-child(7n+4) {
        #dashboard .seventh:nth-child(7n+2),
        #dashboard .seventh:nth-child(7n+3),
        #dashboard .seventh:nth-child(7n+4) {
@@ -862,6 +920,18 @@ form .message {
        #dashboard .seventh:nth-child(7n+6),
        #dashboard .seventh:nth-child(7n+7) {
                width: calc(100% / 3 - (2/3*.1rem));
        #dashboard .seventh:nth-child(7n+6),
        #dashboard .seventh:nth-child(7n+7) {
                width: calc(100% / 3 - (2/3*.1rem));
+       }*/
+}
+
+@media ( max-width: 700px ) {
+       .session .three {
+               grid-template-columns: repeat(1, 1fr);
+       }
+
+       .multimap img {
+               width: 100%;
+               width: calc(100% - .2rem);
+               height: auto;
        }
 }
 
        }
 }
 
@@ -884,23 +954,126 @@ form .message {
                flex-direction: column;
        }
 
                flex-direction: column;
        }
 
-       #dashboard .seventh:nth-child(n) {
+       .seven {
+               grid-template-columns: repeat(2, 1fr);
+       }
+
+       /*.grid section:nth-child(7n) {
+               grid-column: span 2;
+               margin-bottom: .5rem;
+       }
+
+       .grid section:only-child,
+       .grid section:last-child,
+       .grid section:last-of-type {
+               margin-bottom: 0;
+       }*/
+
+       .calendar .sunday {
+               margin-bottom: .5rem;
+       }
+
+       .calendar .sunday:only-child,
+       .calendar .sunday:last-child {
+               margin-bottom: 0;
+       }
+
+       .four {
+               grid-template-columns: repeat(2, 1fr);
+       }
+
+       .three {
+               grid-template-columns: repeat(1, 1fr);
+       }
+
+       .four .multimap {
+               grid-column: span 2;
+       }
+
+       .three .multimap {
+               grid-column: span 1;
+       }
+
+       .location .two {
+               grid-template-columns: repeat(1, 1fr);
+       }
+
+       /*#dashboard .seventh:nth-child(n) {
                width: calc(100% / 2 - .1rem);
        }
 
        #dashboard .seventh:nth-child(7n) {
                width: calc(100%);
                width: calc(100% / 2 - .1rem);
        }
 
        #dashboard .seventh:nth-child(7n) {
                width: calc(100%);
+       }*/
+
+       /*.city .two,
+       .location .two {
+               grid-template-columns: 1fr;
        }
        }
+
+       .city .grid article,
+       .location .grid article {
+               overflow: hidden;
+       }*/
 }
 
 @media ( max-width: 450px ) {
 }
 
 @media ( max-width: 450px ) {
+       dd, p, #footer {
+               font-size: 110%;
+       }
+
+       a, dd, figcaption, #footer {
+               /*XXX: required to validate Tap targets are sized appropriately*/
+               line-height: 3rem;
+       }
+
+       figure,
+       .calendar a {
+               line-height: normal;
+       }
+
        form .row,
        .grid,
        form .row,
        .grid,
-       .form {
+       .form,
+       #footer {
                flex-direction: column;
        }
 
                flex-direction: column;
        }
 
-       #dashboard .seventh:nth-child(n) {
-               width: calc(100%);
+       form label {
+               text-align: center;
+       }
+
+       .seven {
+               grid-template-columns: repeat(1, 1fr);
+       }
+
+       /*.grid section:nth-child(n) {
+               grid-column: auto;
+       }*/
+       .calendar .sunday {
+               grid-column: auto;
+       }
+
+       .four {
+               grid-template-columns: repeat(1, 1fr);
+       }
+
+       .four .multimap {
+               grid-column: span 1;
+       }
+}
+
+@media ( max-width: 260px ) {
+       .col label,
+       .col input,
+       .col option,
+       .col optgroup,
+       .col select,
+       .col textarea {
+               width: 10rem;
+       }
+
+       .col button {
+               width: 10rem;
        }
 }
        }
 }