:root{--font-body: "Segoe UI", Arial, Helvetica, sans-serif;--font-headline: "Montserrat", Haettenschweiler, "Arial Narrow Bold", sans-serif;--primary-color: #2a9d8f;--secondary-color: #264653;--tertiary-color: #e9c46a;--accent-color: #f4a261;--light-grey: #f1f1f1;--dark-grey: #22223b;--success-color: #43aa8b;--danger-color: #e63946;--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);background:#f8fafc}img{max-width:100%}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);color:var(--primary-color)}.logo img{width:60px;height:60px}.logo a{text-decoration:none;color:var(--font-body)}.hero{position:relative;width:100%;max-width:1400px;margin:0 auto}.hero img{width:100%;height:auto;max-height:600px;object-fit:cover;object-position:center}.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;align-items:flex-end;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}.btn{display:inline-block;padding:.75em 1.5em;background-color:var(--primary-color);color:#fff;text-decoration:none;border-radius:6px;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;border:2px solid var(--primary-color);text-align:center;margin:1rem auto}.btn:hover{background-color:var(--tertiary-color);border-color:var(--tertiary-color);transform:translateY(-2px);box-shadow:0 4px 8px #0003}.btn:active{transform:translateY(0);box-shadow:0 2px 4px #0003}.cart-empty{text-align:center;padding:2rem;background-color:#f8f9fa;border-radius:8px;border:1px solid var(--light-grey);margin:1rem 0}.cart-empty p{font-size:1.2rem;color:var(--dark-grey);margin-bottom:1rem}.divider{border-bottom:2px solid var(--primary-color)}.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}.category-products{display:flex;flex-direction:column;gap:3rem}.category-section{border-bottom:1px solid var(--light-grey);padding-bottom:2rem}.category-section:last-child{border-bottom:none}.category-section h3{color:var(--dark-grey);margin-bottom:1.5rem;font-size:1.5rem;text-align:center}.category-section .product-list{display:flex;flex-flow:row wrap;list-style-type:none;justify-content:center;gap:1.5rem}.category-section .product-card{flex:1 1 250px;margin:0;padding:1rem;border:1px solid var(--light-grey);max-width:300px;border-radius:8px;transition:all .3s ease}.category-section .product-card:hover{border-color:var(--dark-grey);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.categories{margin-top:2rem;padding:1rem;text-align:center}.categories h2{margin-bottom:2rem;color:var(--primary-color);font-family:var(--font-headline)}.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2.5rem;max-width:1200px;margin:0 auto}.category-card{display:flex;flex-direction:column;align-items:center;padding:2rem;border:2px solid var(--primary-color);border-radius:8px;text-decoration:none;color:var(--dark-grey);transition:all .3s ease;background:#fff}.category-card:hover{border-color:var(--accent-color);transform:translateY(-5px);box-shadow:0 4px 16px #2a9d8f1f}.category-card img{width:100px;height:100px;margin-bottom:1.5rem;filter:brightness(0) saturate(100%) invert(20%) sepia(20%) saturate(2000%) hue-rotate(200deg) brightness(.8) contrast(1)}.category-card:hover img{filter:brightness(0) saturate(100%) invert(15%) sepia(30%) saturate(2500%) hue-rotate(200deg) brightness(.7) contrast(1.2)}.category-card h3{margin:0;font-size:1.4rem;font-weight:600}.product-list{display:flex;flex-flow:row wrap;list-style-type:none;justify-content:center;gap:1.5rem}.product-list a{text-decoration:none;color:var(--dark-grey)}.product-card{flex:1 1 300px;margin:0;padding:1rem;border:1px solid var(--light-grey);max-width:350px;border-radius:8px;transition:all .3s ease}.product-card:hover{border-color:var(--dark-grey);box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.product-card h2,.product-card h3,.product-card p{margin:.5em 0}.card__brand{font-size:var(--small-font)}.card__name{font-size:1.1em}.product-detail{padding:2rem;max-width:800px;margin:auto}.product-detail img{width:100%;border-radius:8px}.cart-card{display:grid;grid-template-columns:25% auto 15%;font-size:var(--small-font);align-items:center;position:relative}.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}.remove-item{position:absolute;right:10px;top:10px;font-weight:700;font-size:1.5em;color:#c00;background:#fff;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s;z-index:2;border:1px solid #eee}.remove-item:hover{background:#c00;color:#fff}.product-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1.5rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid var(--light-grey);box-shadow:0 2px 4px #0000000d}.sort-controls,.filter-controls{display:flex;align-items:center;gap:.5rem}.sort-controls label,.filter-controls label{font-weight:600;color:var(--dark-grey);white-space:nowrap;font-size:.9rem}.sort-dropdown,.filter-dropdown{padding:.5rem .75rem;border:1px solid var(--light-grey);border-radius:4px;background:#fff;font-size:.9rem;min-width:150px;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a}.sort-dropdown:hover,.filter-dropdown:hover{border-color:var(--primary-color);box-shadow:0 2px 6px #f0a86833}.sort-dropdown:focus,.filter-dropdown:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #f0a86833}.view-controls{display:flex;gap:.25rem}.view-btn{padding:.5rem;border:1px solid var(--light-grey);background:#fff;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000001a}.view-btn:hover{background:#f0f0f0;border-color:var(--primary-color);transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.view-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);box-shadow:0 2px 6px #f0a8684d}.product-stats{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem;background:#f8f9fa;border-radius:6px;font-size:.9rem;color:var(--dark-grey);border-left:4px solid var(--primary-color)}#product-count{font-weight:600;color:var(--secondary-color)}#active-filters{color:var(--tertiary-color);font-style:italic;font-size:.85rem}.product-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;list-style:none;padding:0;transition:all .3s ease}.product-list.list-view{grid-template-columns:1fr;gap:1rem}.product-list.list-view .product-card{display:flex;flex-direction:row;align-items:center;padding:1rem;border:1px solid var(--light-grey);border-radius:8px;transition:all .2s ease;background:#fff;box-shadow:0 2px 4px #0000000d}.product-list.list-view .product-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:var(--primary-color)}.product-list.list-view .product-card img{width:120px;height:120px;object-fit:cover;border-radius:4px;margin-right:1rem;box-shadow:0 2px 4px #0000001a}.product-list.list-view .product-card .card-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.product-list.list-view .card__brand{font-size:.9rem;color:var(--tertiary-color);margin:0;font-weight:600}.product-list.list-view .card__name{font-size:1.1rem;margin:0;color:var(--dark-grey);line-height:1.3}.product-list.list-view .product-card__price{font-size:1.2rem;font-weight:600;color:var(--secondary-color);margin:0}.product-card{transition:all .3s ease;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 2px 8px #0000001a}.product-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #00000026}.product-card img{transition:transform .3s ease}.product-card:hover img{transform:scale(1.05)}.product-size{font-size:.85rem;color:var(--tertiary-color);background:#f8f9fa;padding:.25rem .5rem;border-radius:3px;display:inline-block;margin:.25rem 0;border:1px solid #e9ecef}.product-rating{font-size:.9rem;color:#ff6b35;font-weight:600;display:flex;align-items:center;gap:.25rem;margin:.25rem 0}.product-rating:before{content:"★";color:gold;font-size:1rem}.product-list.loading{opacity:.6;pointer-events:none}.product-list.loading:after{content:"Loading products...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.1rem;color:var(--tertiary-color);font-weight:600}@media screen and (max-width: 768px){.product-controls{flex-direction:column;align-items:stretch;gap:.75rem}.sort-controls,.filter-controls{flex-direction:column;align-items:stretch}.sort-controls label,.filter-controls label{margin-bottom:.25rem}.sort-dropdown,.filter-dropdown{width:100%}.view-controls{align-self:center}.product-stats{flex-direction:column;gap:.5rem;text-align:center}.product-list.list-view .product-card{flex-direction:column;text-align:center}.product-list.list-view .product-card img{margin-right:0;margin-bottom:1rem}}@media screen and (max-width: 480px){.product-list{grid-template-columns:1fr}.product-controls{padding:.75rem}.sort-dropdown,.filter-dropdown{font-size:1rem;padding:.75rem}}@media screen and (min-width: 500px){body{max-width:1400px;margin:auto}.mission{font-size:1.2em}.cart-card{font-size:inherit;grid-template-columns:150px auto 15%}}.footer{background-color:var(--dark-grey);color:var(--light-grey);padding:3rem 0 1rem;margin-top:4rem;border-top:3px solid var(--primary-color)}.footer-container{max-width:1400px;margin:0 auto;padding:0 2rem}.footer-content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;margin-bottom:2rem}.footer-section{display:flex;flex-direction:column}.footer-title{color:var(--primary-color);font-size:1.5rem;font-weight:700;margin-bottom:1rem;font-family:var(--font-headline)}.footer-subtitle{color:var(--primary-color);font-size:1.1rem;font-weight:600;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.5px}.footer-description{line-height:1.6;margin-bottom:1.5rem;color:#b0b0b0}.footer-social{display:flex;gap:1rem;margin-top:auto}.social-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background-color:#ffffff1a;border-radius:50%;color:var(--light-grey);text-decoration:none;transition:all .3s ease}.social-link:hover{background-color:var(--primary-color);color:#fff;transform:translateY(-2px)}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin-bottom:.5rem}.footer-links a{color:#b0b0b0;text-decoration:none;transition:color .3s ease;font-size:.95rem}.footer-links a:hover{color:var(--primary-color)}.contact-info p{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:#b0b0b0;font-size:.95rem}.contact-info svg{color:var(--primary-color);flex-shrink:0}.footer-bottom{border-top:1px solid #444;padding-top:1.5rem;margin-top:2rem}.footer-bottom-content{text-align:center}.copyright{font-weight:600;color:var(--light-grey);margin-bottom:.5rem}.disclaimer{font-size:.85rem;color:#888;margin-bottom:.5rem;font-style:italic}.student-info{font-size:.85rem;color:#888;margin-bottom:0}@media screen and (max-width: 768px){.footer{padding:2rem 0 1rem;margin-top:2rem}.footer-container{padding:0 1rem}.footer-content{grid-template-columns:1fr;gap:1.5rem}.footer-section{text-align:center}.footer-social,.contact-info p{justify-content:center}}@media screen and (max-width: 480px){.footer{padding:1.5rem 0 1rem}.footer-container{padding:0 .75rem}.footer-title{font-size:1.3rem}.footer-subtitle{font-size:1rem}.social-link{width:35px;height:35px}}.checkout-container{max-width:1200px;margin:0 auto;padding:2rem}.checkout-container h2{text-align:center;margin-bottom:2rem;color:var(--dark-grey);font-size:2rem}.checkout-content{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}.order-summary{background:#f8f9fa;border:1px solid var(--light-grey);border-radius:8px;padding:1.5rem;position:sticky;top:2rem}.order-summary h3{margin-bottom:1rem;color:var(--dark-grey);border-bottom:2px solid var(--primary-color);padding-bottom:.5rem}.cart-items-summary{margin-bottom:1.5rem}.summary-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e9ecef}.summary-item:last-child{border-bottom:none}.item-name{font-weight:500;color:var(--dark-grey);flex:1}.item-price{font-weight:600;color:var(--secondary-color)}.order-totals{border-top:2px solid var(--light-grey);padding-top:1rem}.total-line{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;font-size:1rem}.total-line.total-final{font-size:1.2rem;font-weight:700;color:var(--secondary-color);border-top:2px solid var(--primary-color);margin-top:.5rem;padding-top:1rem}.checkout-form{background:#fff;border:1px solid var(--light-grey);border-radius:8px;padding:2rem;box-shadow:0 2px 8px #0000001a}.form-section{margin-bottom:2rem}.form-section h3{margin-bottom:1rem;color:var(--dark-grey);border-bottom:2px solid var(--primary-color);padding-bottom:.5rem}.form-group{margin-bottom:1rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:var(--dark-grey)}.form-group input,.form-group select{width:100%;padding:.75rem;border:2px solid var(--light-grey);border-radius:4px;font-size:1rem;transition:border-color .3s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #f0a86833}.form-group input.error,.form-group select.error{border-color:#dc3545}.error-message{color:#dc3545;font-size:.875rem;margin-top:.25rem;font-weight:500}.form-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--light-grey)}.checkout-btn{background-color:var(--secondary-color);border-color:var(--secondary-color);font-size:1.1rem;padding:1rem 2rem}.checkout-btn:hover{background-color:var(--tertiary-color);border-color:var(--tertiary-color)}.btn-secondary{background-color:var(--light-grey);border-color:var(--light-grey);color:var(--dark-grey)}.btn-secondary:hover{background-color:silver;border-color:silver;color:var(--dark-grey)}@media screen and (max-width: 768px){.checkout-content{grid-template-columns:1fr;gap:2rem}.order-summary{position:static;order:2}.checkout-form{order:1}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.checkout-container{padding:1rem}}@media screen and (max-width: 480px){.checkout-form,.order-summary{padding:1rem}.form-group input,.form-group select{padding:.5rem}}.success-container{max-width:800px;margin:0 auto;padding:2rem;text-align:center}.success-content{background:#fff;border-radius:8px;padding:3rem 2rem;box-shadow:0 4px 6px #0000001a}.success-icon{color:#4caf50;margin-bottom:1.5rem}.success-content h1{color:var(--secondary-color);margin-bottom:1rem;font-size:2rem}.success-message{font-size:1.1rem;line-height:1.6;margin-bottom:2rem;color:var(--dark-grey)}.success-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem;flex-wrap:wrap}.success-actions .btn{min-width:150px}.order-info{text-align:left;background:#f8f9fa;padding:1.5rem;border-radius:6px;margin-top:2rem}.order-info h3{color:var(--secondary-color);margin-bottom:1rem;font-size:1.2rem}.order-info ul{list-style:none;padding:0}.order-info li{position:relative;padding:.5rem 0 .5rem 1.5rem}.order-info li:before{content:"✓";position:absolute;left:0;color:#4caf50;font-weight:700}@media screen and (max-width: 768px){.success-container{padding:1rem}.success-content{padding:2rem 1rem}.success-actions{flex-direction:column;align-items:center}.success-actions .btn{width:100%;max-width:250px}}.alert{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;margin:1rem;border-radius:6px;background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24;font-weight:500;box-shadow:0 2px 4px #0000001a;animation:slideIn .3s ease-out}.alert.alert-success{background-color:#d4edda;border-color:#c3e6cb;color:#155724}.alert.alert-info{background-color:#d1ecf1;border-color:#bee5eb;color:#0c5460}.alert.alert-warning{background-color:#fff3cd;border-color:#ffeaa7;color:#856404}.alert-message{flex:1;margin-right:1rem}.alert-close{background:none;border:none;font-size:1.5rem;font-weight:700;color:inherit;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s ease}.alert-close:hover{background-color:#0000001a}@keyframes slideIn{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@media screen and (max-width: 768px){.alert{margin:.5rem;padding:.75rem 1rem;font-size:.9rem}.alert-close{font-size:1.25rem;width:20px;height:20px}}.house-list{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;list-style:none;padding:0}.house-card{background:#fff;border:1.5px solid var(--light-grey);border-radius:12px;box-shadow:0 2px 8px #2a9d8f12;max-width:340px;min-width:260px;padding:1.5rem 1rem 1rem;transition:box-shadow .2s,border .2s;display:flex;flex-direction:column;align-items:center}.house-card:hover{border-color:var(--primary-color);box-shadow:0 8px 24px #2a9d8f2e}.house-card img{width:100%;max-width:300px;height:180px;object-fit:cover;border-radius:8px;margin-bottom:1rem}.card-content{width:100%;text-align:left}.card__address{font-size:1.1rem;font-weight:700;color:var(--secondary-color);margin-bottom:.5rem}.house-card__price{color:var(--primary-color);font-size:1.2rem;font-weight:600;margin-bottom:.5rem}.house-card__status{display:inline-block;background:var(--tertiary-color);color:var(--secondary-color);font-size:.95em;font-weight:600;padding:.2em .8em;border-radius:16px;margin-bottom:.5rem}.house-gallery{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.house-gallery img{width:120px;height:90px;object-fit:cover;border-radius:6px;border:1px solid var(--light-grey)}.house-owner,.house-reviews{background:#f6f9fa;border-radius:8px;padding:1rem;margin:1rem 0}.house-owner h4{color:var(--primary-color);margin-bottom:.5rem}.house-reviews h4{color:var(--secondary-color);margin-bottom:.5rem}.review{border-bottom:1px solid var(--light-grey);padding:.5rem 0;font-size:.98em}.review:last-child{border-bottom:none}@media (max-width: 700px){.house-list{flex-direction:column;align-items:center}.house-card{min-width:90vw;max-width:98vw}.house-gallery{flex-wrap:wrap;justify-content:center}}
