/** * SPDX-FileCopyrightText: 2023 jordi fita mas * SPDX-License-Identifier: AGPL-3.0-only */ @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Bold'), local('MabryPro-Bold'), url('fonts/MabryPro-Bold.woff2') format('woff2'); font-weight: bold; font-style: normal; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Medium'), local('MabryPro-Medium'), url('fonts/MabryPro-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Black'), local('MabryPro-Black'), url('fonts/MabryPro-Black.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Light Italic'), local('MabryPro-LightItalic'), url('fonts/MabryPro-LightItalic.woff2') format('woff2'); font-weight: 300; font-style: italic; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Bold Italic'), local('MabryPro-BoldItalic'), url('fonts/MabryPro-BoldItalic.woff2') format('woff2'); font-weight: bold; font-style: italic; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Light'), local('MabryPro-Light'), url('fonts/MabryPro-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Black Italic'), local('MabryPro-BlackItalic'), url('fonts/MabryPro-BlackItalic.woff2') format('woff2'); font-weight: 900; font-style: italic; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Medium Italic'), local('MabryPro-MediumItalic'), url('fonts/MabryPro-MediumItalic.woff2') format('woff2'); font-weight: 500; font-style: italic; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro Italic'), local('MabryPro-Italic'), url('fonts/MabryPro-Italic.woff2') format('woff2'); font-weight: normal; font-style: italic; font-display: swap; } @font-face { font-family: 'Mabry Pro'; src: local('Mabry Pro'), local('MabryPro-Regular'), url('fonts/MabryPro-Regular.woff2') format('woff2'); font-weight: normal; font-style: normal; font-display: swap; } *, *::before, *::after { box-sizing: inherit; } * { margin: 0; } html { box-sizing: border-box; font-size: 62.5%; --contrast: #303334; --contrast-2: #5f6158; --contrast-3: #b2b2be; --base: #f0f0f0; --base-2: #f7f8f9; --base-3: #ffffff; --accent: #00aa7d; --accent-2: #FFE37F; --accent-3: #9adff4; --clar-rgb: 239, 237, 236; --clar: rgb(var(--clar-rgb)); } body { font-family: 'Mabry Pro', sans-serif; font-size: 1.6rem; line-height: 1.5; -webkit-font-smoothing: antialiased; background-color: var(--clar); color: var(--contrast); max-width: 200rem; margin-left: auto; margin-right: auto; } img, picture, video, canvas, svg { display: block; max-width: 100%; } img { height: auto; } input, button, textarea, select { font: inherit; } p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; } p + p { margin-top: 1.5em; } h2 { font-size: 4.2rem; font-weight: 400; } a { color: var(--contrast); text-decoration: none; } address { font-style: normal; } 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; } body > header { position: sticky; top: 0; z-index: 999; padding: 1rem 2.5rem; display: flex; align-items: center; justify-content: space-between; } body > header, nav .has-submenu ul { background-color: rgba(var(--clar-rgb), 0.7); backdrop-filter: blur(10px); } h1 a { display: flex; align-items: center; } h1 a span { display: inline-block; } h1 a .logo { width: 5rem; height: 4.33rem; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 98.72705 85.5'%3E%3Cpath d='m49.36377,0L0,85.5h98.72705L49.36377,0Zm18.61945,46.25l18.61945,32.25h-37.23914l18.61969-32.25Z' fill='%23303234'/%3E%3C/svg%3E") top left no-repeat; background-size: 100%; text-indent: 100%; white-space: nowrap; overflow: hidden; margin-right: 1.7rem; } h1 a .name { font-size: 2.5rem; line-height: 1em; text-indent: -.4em; word-wrap: break-word; font-weight: 700; width: 50%; } #menuShowHide, label[for="menuShowHide"] { position: absolute; left: -9999em; } nav ul, .campsite_type_features ul { list-style: none; padding-left: 0; display: flex; } nav ul { flex-wrap: wrap; align-items: center; } nav a, nav button, label[for="menuShowHide"] { font-size: 1.8rem; font-weight: 500; text-transform: uppercase; padding: 0 2rem; line-height: 6rem; } nav button { cursor: pointer; background: none; border: none; } nav .has-submenu { position: relative; } nav .has-submenu > a::after, nav .has-submenu > button::after { content: "↓"; position: absolute; right: -0.05rem; } nav .has-submenu ul { flex-direction: column; align-items: start; display: none; position: absolute; top: 5rem; } nav .has-submenu ul a { line-height: 4rem; white-space: nowrap; } nav .has-submenu:hover ul, nav .has-submenu:focus-within ul { display: flex; } @media (max-width: 48rem) { body > header { display: grid; grid-template-columns: 1fr 1fr; } label[for="menuShowHide"] { position: static; cursor: pointer; justify-self: end; } label[for="menuShowHide"]::before { content: "\2630"; } nav { display: none; grid-column: 1 / span 2; } #menuShowHide:checked ~ nav { display: block; } #menuShowHide:checked ~ label[for="menuShowHide"]::before { content: "✕"; } nav ul { flex-direction: column; align-items: start; } nav .has-submenu ul { display: flex; position: static; padding-left: 2rem; margin-top: -1rem; background: none; } } #content { padding: 2.5rem; } .nature div, .nature section a { background: var(--background-image) center center no-repeat; background-size: cover; } .nature div, .services { margin-bottom: 5rem; } .nature div:first-child, .nature section, .services { border-radius: 5px; } .nature div:first-child, .services { min-height: 6rem; display: flex; align-items: flex-end; gap: 5rem; padding: 5rem; } .nature div:first-child { justify-content: space-between; } .nature h2, .nature div:first-child a, .services h2, .surroundings .spiel a { font-weight: bold; line-height: .9em; } .nature h2, .nature div:first-child a { border-radius: 5px; background-color: var(--clar); } .nature h2 { width: 50%; min-height: 100%; margin-bottom: 0; font-size: calc(2rem + 4vw); display: block; padding: 3rem; } .nature div:first-child a, .services h2, .surroundings .spiel a { font-size: calc(1.8rem + 1.7vw); } .nature div:first-child a, .services a { padding: 1.5rem 2rem; } .nature div:first-child a span, .services a span, .surroundings .spiel a:hover span { display: inline-block; transition: transform 0.5s ease; } .nature div:first-child a:hover span, .services a:hover span, .spiel a:hover span { transform: translateX(1.3rem); } dl, .nature div + div, .outside_activities > div { display: flex; gap: 5rem; } .nature section { flex: 1; } .nature section h3 { font-size: 2.4rem; } .nature section a { display: block; width: 100%; height: 20rem; } .nature section a span { z-index: 2; padding: 1rem 1.5rem; background-color: var(--clar); border-bottom-right-radius: 5px; } @media (max-width: 64rem) { .nature div + div { flex-direction: column; } } @media (max-width: 48rem) { .nature div:first-child { flex-direction: column; } .nature h2 { width: 100%; } } .services { justify-content: end; background-color: var(--accent); } .carousel { display: none; } .carousel .spiel { font-size: 2.4rem; padding-right: 4rem; } .carousel .spiel p { margin-top: 0; margin-bottom: 2rem; } .carousel figure, .carousel .slick-track > img { margin-right: 5rem; position: relative; } .carousel img { height: 40rem; width: 100%; border-radius: 5px; object-fit: cover; } .carousel figcaption { padding: 10px 15px; background: var(--clar); width: fit-content; float: right; position: absolute; bottom: 0; right: 0; border-top-left-radius: 5px; font-size: 1.7rem; } .carousel .slick-list { order: 1; padding: 0 20% 0 0 !important; } .carousel .slick-track { display: flex; align-items: start; } .carousel.slick-slider { display: flex; flex-wrap: wrap; justify-content: end; } .carousel .slick-arrow { font-size: 6rem; line-height: 1; width: 5rem; height: 5rem; border: none !important; background: none; cursor: pointer; transition: transform 0.5s ease; } .carousel .slick-prev.slick-arrow, .carousel .slick-next.slick-arrow { opacity: 1; } .carousel .slick-prev { order: 2; margin: 2.5rem 4rem 0 0; } .carousel .slick-prev:hover { transform: translateX(-1.3rem); } .carousel .slick-next { order: 3; margin: 2.5rem 7rem 0 0; } .carousel .slick-next:hover { transform: translateX(1.3rem); } .enjoy { font-weight: 900; font-size: calc(1.8rem + 8vw); line-height: 1.2em; margin: 10rem 0; } dl { flex-wrap: wrap; } dl div { flex-basis: calc(25% - 5rem + 5rem / 4); } dt { font-size: 2rem; font-weight: 600; padding: 5rem 0 .5rem; margin-bottom: 2rem; border-bottom: 1px solid black; background-size: 2em 2em; background-repeat: no-repeat; background-position: top left; } @media (max-width: 48rem) { dl { flex-direction: column; } del div { flex-basis: 100%; } } .price-list { flex-direction: column; gap: 0; } .price-list dt { display: flex; align-items: center; gap: .5rem; border: none; padding: 0; margin-bottom: 0; } .price-list dd + dt { margin-top: 2rem; } .outside_activities { margin-top: 2rem; } .outside_activities h3, .campsite_services .spiel { font-size: calc(2.2rem + 4vw); font-weight: 600; line-height: .9em; } .outside_activities h3 { margin-bottom: 10rem; } .outside_activities > div { align-items: start; } .outside_activities > div:first-of-type { margin-bottom: 5rem; } .outside_activities > div:first-of-type p { width: 25%; padding-top: 12rem; } .outside_activities > div:first-of-type img { width: 40%; } .outside_activities > div:first-of-type img:last-child { width: 35%; padding-top: 22rem; } .outside_activities > div:nth-of-type(2) > img { width: 35%; } .outside_activities > div:nth-of-type(2) > div { width: 30%; padding-top: 10rem; } .outside_activities > div:nth-of-type(2) > div img { margin-top: 20rem; } .outside_activities > div:nth-of-type(2) > img:last-child { padding-top: 22rem; } .outside_activities > div:last-child img { width: 40%; } .outside_activities > div:last-child img:first-child { margin-top: 10rem; } .outside_activities > div:last-child img:nth-child(2) { margin-top: 22rem; } .outside_activities > div:last-child div { width: 20%; } .campsite_activities { margin-top: 10rem; padding-top: 10rem; border-top: 1px solid black; } .campsite_activities h3 { font-size: 2.9rem; font-weight: 400; line-height: 1.2; margin-bottom: 5rem; } .campsite_services.carousel .slick-track { align-items: center; } .campsite_type_features li { flex: 1; font-size: 2.4rem; text-align: center; justify-content: space-between; background-repeat: no-repeat; background-position: top center; background-size: 7.2rem 7.2rem; padding-top: 7.2rem; } footer { display: flex; flex-direction: column; gap: 1rem; } footer div, .campsite_type_features, .campsite_type_detail { padding: 5rem 0; border-top: 3px solid black; } footer div { display: flex; justify-content: space-between; margin: 0 2.5rem; border-bottom: 3px solid black; } footer section { width: 25%; } footer h2 { font-size: 2.4rem; margin-bottom: 2rem; border-bottom: 1px solid black; } footer ul { list-style: none; padding: 0; } footer li a::before { font-size: 1.25em; content: "→"; display: inline-block; margin-right: .5em; transition: transform .5s ease; } footer li a:hover::before { transform: translateX(.6rem); } footer span { font-size: 1.5rem; text-align: center; padding: 2.5rem; display: block; }