:root { --bg-color: #f7ac131a; --text-color: #555; --text-accent: #444; --primary-color: #c65631; --product-default-color: #ffe6a4; --ipparrot-color: #004f48; --fetchfavicon-color: #c2195b; } * { box-sizing: border-box; } html { height: 100%; } body { background: var(--bg-color); color: var(--text-color); font-family: Helvetica, Arial, sans-serif; font-size: 20px; font-weight: 300; height: 100%; line-height: 1.4; margin: 0; padding: 0; } .container { overflow: hidden; padding: 0 140px; } .bg { margin: auto; max-width: 1000px; position: relative; min-height: 100vh; display: flex; flex-direction: column; height: 100%; } .bg:after { content: ""; z-index: -1; display: block; position: absolute; top: -150px; left: -230px; height: 600px; width: 600px; background-image: radial-gradient(circle closest-side, #fff 0%, rgba(226, 226, 226, 0) 100%); } h1, h2, h3, h4 { color: var(--text-accent); font-weight: 300; } h1 { font-size: 1.4em; } h2 { font-size: 1.25em; } a { color: var(--primary-color); text-decoration: none; } a:hover, a:active { text-decoration: underline; } strong { font-weight: 700; } abbr { text-decoration: none; } li { margin-bottom: 0.5em; } .tel, .postal-code { white-space: nowrap; } main { flex: 1 0 auto; width: 100%; } main p { font-weight: 400; font-size: 20px; margin: 0; padding-top: 20px; line-height: 27px; } .products { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 35px; margin: 45px 0; } .products a { background-color: transparent; border: none; -webkit-appearance: none; -moz-appearance: none; appearance: none; padding: 0; text-decoration: none; cursor: pointer; } .products a .product { display: flex; align-items: flex-start; padding: 20px; position: relative; border-radius: 20px; overflow: hidden; transition: 0.25s transform, 0.25s box-shadow, 0.25s border-color, 0.25s background-color; will-change: transform; width: 100%; max-width: 100%; border: 1px solid transparent; border-color: transparent; gap: 10px; } .products a .product:hover, .products a .product:focus-visible { transform: translateY(-4px); box-shadow: 0 4px 12px -6px rgba(0, 0, 0, 0.15); background-color: rgba(255, 230, 164, 0.15); } .products a .ipparrot.product:hover, .products a .ipparrot.product:focus-visible { border-color: var(--ipparrot-color); } .products a .fetchfavicon.product:hover, .products a .fetchfavicon.product:focus-visible { border-color: var(--fetchfavicon-color); } .products a .product .overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0.2; z-index: -1; background-color: var(--product-default-color); } .products a .product .icon { flex-shrink: 0; margin-top: 2px; } .products a .product .icon img { width: 32px; height: 32px; } .products a .product .data { margin-left: 10px; } .products a .product .data .name { color: var(--text-accent); font-weight: 600; } .products a .product .data .description { color: var(--text-color); margin-top: 4px; font-size: 14px; } .products a .product .data .url { font-weight: 600; margin-top: 6px; font-size: 14px; } .products a .ipparrot .overlay { background-color: var(--ipparrot-color); } .products a .ipparrot .data .url { color: var(--ipparrot-color); } .products a .fetchfavicon .overlay { background-color: var(--fetchfavicon-color); } .products a .fetchfavicon .data .url { color: var(--fetchfavicon-color); } header { position: relative; flex: none; margin-top: 100px; } header:before { content: ""; background: url("img/logo.png") no-repeat; width: 236px; height: 135px; display: block; position: relative; top: 0; left: 0; background-size: 236px; } footer { flex: none; padding-bottom: 70px; font-size: 12px; } footer .adr { margin-bottom: 0.25em; } @media (max-width: 992px) { .container { padding: 0 70px; } } @media (max-width: 900px) { .container { padding: 0 40px; } header { margin-top: 50px; } .products { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 30px; } } @media (max-width: 568px) { .container { padding: 0 25px; font-size: 15px; } header { margin-top: 25px; } .bg:after { top: -200px; left: -200px; height: 500px; width: 500px; } } @media (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi), (min-resolution: 1.5dppx) { header:before { background: url("img/logo.png") no-repeat; background-size: 236px; } } header:before, header h1, main, footer { opacity: 0; } header:before { animation: fadeInPrimary 800ms ease forwards; } header h1 { animation: fadeInPrimary 800ms ease 250ms forwards; } main, footer { animation: fadeInPrimary 1600ms ease 400ms forwards; } @-webkit-keyframes fadeInPrimary { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeInPrimary { from { opacity: 0; } to { opacity: 1; } } .not-found main { display: flex; flex-direction: column; justify-content: center; } .not-found h1 { font-size: 4rem; } @media (prefers-reduced-motion: reduce) { .products a .product { transition: none; } .products a .product:hover, .products a .product:focus-visible { transform: none; box-shadow: none; } }