:root{--font-body: Arial, Helvetica, sans-serif;--font-headline: Haettenschweiler, "Arial Narrow Bold", sans-serif;--primary-color: #f0a868;--secondary-color: #525b0f;--tertiary-color: #8a470c;--light-grey: #d0d0d0;--dark-grey: #303030;--font-base: 18px;--small-font: .8em;--large-font: 1.2em}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);font-size:var(--font-base);color:var(--dark-grey)}img{max-width:100%;height:auto;display:block}header{display:flex;justify-content:space-between;padding:.5rem}p{padding:.75rem}.logo{line-height:60px;width:245px;overflow:hidden;display:flex;font-size:30px;text-align:right;font-family:var(--font-headline)}.logo img{width:60px;height:60px}.logo a{text-decoration:none;color:var(--font-body)}.hero{position:relative}.hero .logo{position:absolute;left:calc(50% - 60px);bottom:-15px;background-color:#fff}.logo--square{font-size:var(--small-font);width:110px;height:80px;flex-direction:column;box-shadow:1px 1px 4px var(--light-grey);justify-content:center;align-items:center;line-height:1}.logo--square img{width:90px;height:90px;margin-top:-1.3em}.logo--square>div{margin-top:-1.7em}.highlight{color:var(--tertiary-color)}button{padding:.5em 2em;background-color:var(--secondary-color);color:#fff;margin:auto;display:block;border:0;font-size:var(--large-font);cursor:pointer}.divider{border-bottom:2px solid var(--primary-color)}.categories{padding:2rem 1rem;background-color:#fff}.categories h2{text-align:center;margin-bottom:2rem;color:var(--secondary-color);font-size:1.8rem}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;max-width:1200px;margin:0 auto;padding:0 1rem}.category-card{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:var(--dark-grey);background:#fff;border-radius:8px;padding:1.5rem 1rem;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 2px 10px #0000001a}.category-card:hover{transform:translateY(-5px);box-shadow:0 5px 15px #00000026}.category-card img{width:80px;height:80px;margin-bottom:1rem;object-fit:contain}.category-card h3{margin:0;font-size:1.2rem;color:var(--secondary-color);text-align:center}.cart{padding-top:1em;position:relative;text-align:center}.cart svg{width:25px}.cart:hover svg{fill:gray}.mission{position:absolute;top:1rem;left:0;right:0;line-height:1.3;width:100%;background-color:var(--dark-grey);color:var(--light-grey);opacity:.8}.mission p{margin:0 auto;width:50%;text-align:center}.products{margin-top:2rem;padding:1rem}.product-list{display:flex;flex-flow:row wrap;list-style-type:none;justify-content:center}.product-list a{text-decoration:none;color:var(--dark-grey)}.product-card{flex:1 1 45%;margin:.25em;padding:.5em;border:1px solid var(--light-grey);max-width:250px}.product-card h2,.product-card h3,.product-card p{margin:.5em 0}.card__brand{font-size:var(--small-font)}.card__name{font-size:1em}.product-detail{padding:1em;max-width:500px;margin:auto}.product-detail img{width:100%}.cart-card{display:grid;grid-template-columns:25% auto 15%;font-size:var(--small-font);align-items:center}.cart-card__image{grid-row:1/3;grid-column:1}.cart-card p{margin-top:0}.cart-card .card__name{grid-row:1;grid-column:2}.cart-card__color{grid-row:2;grid-column:2}.cart-card__quantity{grid-row:1;grid-column:3}.cart-card__price{grid-row:2;grid-column:3}@media screen and (min-width: 500px){body{max-width:1080px;margin:auto}.mission{font-size:1.2em}.cart-card{font-size:inherit;grid-template-columns:150px auto 15%}}footer{font-size:var(--small-font);padding:1em}.sort-controls{margin:1rem 0;padding:.5rem}.sort-controls select{margin-left:.5rem;padding:.25rem;border-radius:4px}.checkout-container{display:grid;grid-template-columns:1fr 300px;gap:2rem;max-width:1200px;margin:0 auto;padding:1rem}.checkout-form{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;padding:2rem}.checkout-form fieldset{border:1px solid var(--light-grey);border-radius:6px;margin-bottom:2rem;padding:1.5rem}.checkout-form legend{font-weight:700;color:var(--secondary-color);padding:0 .5rem;font-size:1.1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--dark-grey)}.form-group input{width:100%;padding:.75rem;border:1px solid var(--light-grey);border-radius:4px;font-size:1rem;transition:border-color .3s ease}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #f0a86833}.form-group input:required{border-left:3px solid var(--tertiary-color)}.checkout-submit{width:100%;background:var(--primary-color);color:#fff;padding:1rem 2rem;border:none;border-radius:6px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:background-color .3s ease;margin-top:1rem}.checkout-submit:hover{background:var(--tertiary-color)}.checkout-submit:disabled{background:var(--light-grey);cursor:not-allowed}.order-summary{background:#f9f9f9;border-radius:8px;padding:1.5rem;height:fit-content;position:sticky;top:1rem;box-shadow:0 2px 10px #0000001a}.order-summary h3{color:var(--secondary-color);margin-bottom:1rem;font-size:1.3rem;border-bottom:2px solid var(--primary-color);padding-bottom:.5rem}.summary-line{display:flex;justify-content:space-between;margin-bottom:.75rem;padding:.25rem 0}.total-line{border-top:2px solid var(--primary-color);padding-top:.75rem;margin-top:1rem;font-size:1.1rem}.success-message,.error-message{padding:1rem;margin:1rem 0;border-radius:4px;font-weight:500;text-align:center}.success-message{background-color:#d4edda;color:#155724;border:1px solid #c3e6cb}.error-message{background-color:#f8d7da;color:#721c24;border:1px solid #f5c6cb}@media (max-width: 768px){.checkout-container{grid-template-columns:1fr;gap:1rem;padding:.5rem}.order-summary{position:static;order:-1}.checkout-form,.checkout-form fieldset{padding:1rem}}.checkout-button{background:var(--primary-color);color:#fff;padding:.75rem 1.5rem;border:none;border-radius:6px;font-weight:700;cursor:pointer;transition:background-color .3s ease;margin-top:1rem;width:100%;font-size:1rem}.checkout-button:hover{background:var(--tertiary-color)}.cart-total{margin-top:2rem;padding:1rem;background:#f9f9f9;border-radius:6px;text-align:center}.cart-total h3{color:var(--secondary-color);margin-bottom:1rem}
