/** * SPDX-FileCopyrightText: 2023 jordi fita mas * SPDX-License-Identifier: AGPL-3.0-only */ *, *::before, *::after { box-sizing: border-box; } *:not(dialog) { margin: 0; } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 100; font-display: swap; src: local('JetBrains Mono Thin'), url('./fonts/JetBrainsMono-ThinItalic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 200; font-display: swap; src: local('JetBrains Mono ExtraLight'), url('./fonts/JetBrainsMono-ExtraLightItalic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 300; font-display: swap; src: local('JetBrains Mono Light'), url('./fonts/JetBrainsMono-LightItalic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 400; font-display: swap; src: local('JetBrains Mono'), url('./fonts/JetBrainsMono-Italic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 500; font-display: swap; src: local('JetBrains Mono Medium'), url('./fonts/JetBrainsMono-MediumItalic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 600; font-display: swap; src: local('JetBrains Mono SemiBoldItalic'), url('./fonts/JetBrainsMono-SemiBoldItalic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 700; font-display: swap; src: local('JetBrains Mono Bold'), url('./fonts/JetBrainsMono-BoldItalic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: italic; font-weight: 800; font-display: swap; src: local('JetBrains Mono ExtraBold'), url('./fonts/JetBrainsMono-ExtraBoldItalic.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 100; font-display: swap; src: local('JetBrains Mono Thin'), url('./fonts/JetBrainsMono-Thin.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 200; font-display: swap; src: local('JetBrains Mono ExtraLight'), url('./fonts/JetBrainsMono-ExtraLight.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 300; font-display: swap; src: local('JetBrains Mono Light'), url('./fonts/JetBrainsMono-Light.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 400; font-display: swap; src: local('JetBrains Mono'), url('./fonts/JetBrainsMono-Regular.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 500; font-display: swap; src: local('JetBrains Mono Medium'), url('./fonts/JetBrainsMono-Medium.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 600; font-display: swap; src: local('JetBrains Mono SemiBold'), url('./fonts/JetBrainsMono-SemiBold.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 700; font-display: swap; src: local('JetBrains Mono Bold'), url('./fonts/JetBrainsMono-Bold.woff2') format('woff2'); } @font-face { font-family: 'JetBrains Mono'; font-style: normal; font-weight: 800; font-display: swap; src: local('JetBrains Mono ExtraBold'), url('./fonts/JetBrainsMono-ExtraBold.woff2') format('woff2'); } html { font-family: 'JetBrains Mono', monospace; font-size: 62.5%; --camper--color--black: #3f3b37; --camper--color--dark-gray: #8a8885; --camper--color--light-gray: #e1dbd6; --camper--color--white: #ffffff; --camper--color--yellow: #ffd200; --camper--color--red: #ff7a53; --camper--color--rosy: #ffbaa6; --camper--color--green: #5ae487; --camper--color--light-green: #9fefb9; --camper--color--blue: #55bfff; --camper--color--light-blue: #cbebff; --camper--color--hay: #ffe673; --camper--text-color: var(--camper--color--black); --camper--background-color: var(--camper--color--white); --camper--header--background-color: #ede9e5; } body { font-size: 1.6rem; line-height: 1.5; -webkit-font-smoothing: antialiased; } body, dialog, .media-picker header, .media-picker footer { background-color: var(--camper--background-color); color: var(--camper--text-color); } img, picture, video, canvas, svg { display: block; max-width: 100%; } input, button, textarea, select { font: inherit; } p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; } :any-link { color: #0000ff; } a.missing-translation { color: #ff0000; } body > a[href="#content"], .sr-only { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; } body > a[href="#content"]:focus { background-color: #f1f1f1; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, .6); clip: auto !important; clip-path: none; color: #21759b; display: block; font-size: 1.4rem; font-weight: 700; height: auto; left: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; } /* header */ header { display: flex; justify-content: space-between; align-items: center; background-color: var(--camper--header--background-color); } header, body > nav a { padding: 0 3rem; } body > nav { border-bottom: 1px solid var(--camper--color--light-gray); } body > nav ul { display: flex; list-style: none; padding: 0; } body > nav li { flex: 1; } body > nav a { text-decoration: none; color: inherit; min-height: 8rem; display: flex; align-items: center; } main { padding: 2rem 3rem; } table:not(.month) { width: 100%; border-collapse: collapse; margin: 2rem 0 0 0; } /* user menu */ nav details { position: relative; } nav details summary { background-color: var(--camper--background-color); display: flex; cursor: pointer; justify-content: center; align-items: center; width: 7rem; height: 7rem; margin: 1rem 0; border-radius: 50%; border: none; } nav details summary:hover, nav details summary:focus, nav details a:hover, nav details button:hover { background-color: var(--camper--color--light-gray); } nav details summary img { width: 4.8rem; object-fit: contain; } nav details summary span { display: none; } nav details summary::-webkit-details-marker { display: none; } nav details[open] summary::before { background-color: var(--camper--header--background-color); position: fixed; top: 0; left: 0; right: 0; bottom: 0; content: ""; cursor: default; z-index: 10; mix-blend-mode: multiply; } nav details ul { position: absolute; padding: 1rem 2rem; list-style: none; background-color: var(--camper--background-color); z-index: 20; right: -1.875em; } nav details a:any-link, nav details button { color: var(--camper--text-color); font-size: 2rem; font-style: italic; height: 5.5rem; width: 46rem; padding-left: 2rem; display: flex; align-items: center; border: 0; text-decoration: none; text-transform: initial; cursor: pointer; } nav details li + li { border-top: 1px solid var(--camper--color--dark-gray); } /* form */ fieldset { border: none; padding: 0; } form h2 { margin-bottom: 1em; } label, legend { display: block; font-style: italic; } fieldset + label, label + label { margin-top: 1rem; } label input, label textarea, label select { font-style: normal; } form fieldset + footer { margin-top: 3rem; } input[type="submit"], button, .button { min-width: 34rem; background-color: var(--camper--color--white); border: 2px solid var(--camper--color--black); text-transform: uppercase; display: inline-block; text-align: center; padding: 1rem; } input[type="text"], input[type="search"], input[type="password"], input[type="email"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], select, textarea { background-color: var(--camper--background-color); border: 1px solid var(--camper--color--black); border-radius: 0; padding: .5rem 1rem; height: 3.5rem; } /* login */ #login-form { background-color: var(--camper--color--hay); padding: 1.25em; } #login-form fieldset { display: flex; gap: 2rem; } #login-form label { margin: 0; } /* media */ .media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(26rem, 1fr)); grid-auto-rows: 1fr; list-style: none; gap: 1rem; padding: 0; } .media-grid img, .media-grid button { width: 100%; height: 100%; max-height: 26rem; } .media-grid button { min-width: 0; border: none; padding: 0; } .media-grid img { object-fit: cover; } .media-picker { min-width: 75vw; } .media-picker header, .media-picker footer { position: sticky; padding-top: 1rem; padding-bottom: 1rem; } .media-picker header { top: -1em; } .media-picker footer { bottom: -1em; } #campground-map .guest-only { display: none; } #campground-map a:hover { fill: var(--camper--color--hay); } [class^="icon_"] { background-size: 2em 2em; background-repeat: no-repeat; background-position: center left; } .services [class^="icon_"] { padding-left: 2.5em; } .icon-input ul { padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: .25em; } .icon-input button { padding: 1em; } .icon-input button[aria-pressed="true"] { background-color: #ffeeaa; } .season-calendar { display: grid; grid-template-columns: repeat(3, auto); grid-auto-rows: 1fr; justify-content: center; align-items: start; gap: 2em; } @media (max-width: 48rem) { .season-calendar { display: flex; flex-direction: column; } } .season-calendar table { border-collapse: collapse; } .season-calendar td { width: calc(100% / 7); } .season-calendar time { display: block; width: 100%; min-width: 3rem; aspect-ratio: 1; text-indent: 100%; white-space: nowrap; overflow: hidden; } .season-calendar [aria-checked] { border: 2px solid var(--camper--color--black); position: relative; } .season-calendar [aria-checked]::after { content: ""; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: block; background-color: var(--camper--color--black); border-radius: 50%; width: .8rem; height: .8rem; } .season-calendar form { position: fixed; } .season-calendar button { display: flex; gap: 1em; } /* snack bar */ #snackbar [role="alert"] { cursor: pointer; background-color: var(--camper--color--black); color: var(--camper--color--white); padding: 2rem; min-width: 28.8rem; max-width: 56.8rem; border-radius: 2px; position: fixed; translate: -50% 100%; left: 50%; bottom: 0; transition: translate; transition-duration: 300ms; } #snackbar [role="alert"].open { translate: -50%; }