*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#3a2530;background:#fffaf9}.page{max-width:960px;margin:0 auto;padding:1rem 1.25rem 3rem}.demo-banner{background:#f5d0dd;color:#7a3b52;padding:.6rem 1rem;border-radius:8px;font-size:.9rem;margin-bottom:1rem}.hero{position:relative;margin:-1rem -1.25rem 1.5rem}.hero-photo{width:100%;max-height:420px;object-fit:cover;display:block}.hero-content{padding:1.5rem;text-align:center}.hero-sub{color:#6b4d5a}.btn{display:inline-block;padding:.7rem 1.4rem;border-radius:8px;border:none;font-size:1rem;cursor:pointer;text-decoration:none}.btn-primary{background:#b34d6f;color:#fff}.btn-primary:disabled{opacity:.6;cursor:default}.btn-secondary{background:transparent;color:#b34d6f;border:1px solid #b34d6f}.btn-secondary:hover:not(:disabled){background:#f5d0dd}.btn-secondary:disabled{opacity:.5;cursor:default;border-color:#cfa3b1;color:#cfa3b1}.btn-secondary.btn-small{padding:.4rem .9rem;font-size:.85rem}.section{margin:2rem 0}.occasion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.occasion-tile{background:#fbeef2;border-radius:8px;padding:1rem;text-align:center;text-decoration:none;color:#7a3b52;font-weight:600}.hours-table td{padding:.15rem .75rem .15rem 0}.footnote{color:#888;font-size:.85rem}.occasion-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.occasion-filter button{padding:.4rem .9rem;border-radius:999px;border:1px solid #e3b7c6;background:#fff;cursor:pointer}.occasion-filter button.active{background:#b34d6f;color:#fff;border-color:#b34d6f}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.product-card{text-decoration:none;color:inherit;border:1px solid #f0dbe2;border-radius:10px;overflow:hidden;display:block}.product-card img{width:100%;aspect-ratio:9 / 12;object-fit:cover;display:block}.product-card h3,.product-card .price{margin:.4rem .75rem}.price{color:#b34d6f;font-weight:600}.product-detail{display:grid;grid-template-columns:minmax(200px,320px) 1fr;gap:1.5rem}.product-photo{width:100%;border-radius:10px;object-fit:cover;aspect-ratio:9 / 16}.variant-group{margin:.75rem 0;display:flex;flex-direction:column;gap:.25rem;max-width:260px}.variant-group select,.variant-group input{padding:.5rem;border-radius:6px;border:1px solid #ddd}.cart-table{width:100%;border-collapse:collapse}.cart-table td{padding:.5rem;border-bottom:1px solid #f0dbe2}.cart-table input[type=number]{width:4rem}.cart-total{font-weight:600;font-size:1.1rem}.checkout-form fieldset{border:1px solid #f0dbe2;border-radius:10px;margin-bottom:1rem;padding:1rem}.checkout-form label{display:block;margin:.5rem 0}.checkout-form input,.checkout-form select,.checkout-form textarea{display:block;width:100%;padding:.5rem;border-radius:6px;border:1px solid #ddd;margin-top:.2rem}.checkout-form .checkbox-row{display:flex;align-items:center;gap:.5rem}.checkout-form .checkbox-row input{width:auto;display:inline}.error{color:#b3261e}.ok{color:#2e7d32}.notice{background:#fff3cd;padding:.6rem 1rem;border-radius:8px}.owner-group table{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.owner-group th,.owner-group td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid #eee;font-size:.9rem}.site-footer{margin-top:2rem;color:#888;font-size:.8rem}.card{background:#fff;border:1px solid #f0dbe2;border-radius:12px;padding:1.25rem}.checkout-form fieldset.card{border:1px solid #f0dbe2;border-radius:12px;padding:1.25rem;margin:0 0 1.25rem}.checkout-form legend{font-weight:700;font-size:1.05rem;color:#7a3b52;padding:0 .4rem}.checkout-form label{display:flex;flex-direction:column;gap:.35rem;margin:.85rem 0;font-size:.9rem;color:#6b4d5a}.checkout-form input,.checkout-form select,.checkout-form textarea{font-family:inherit;font-size:1rem;color:#3a2530;background:#fffaf9;display:block;width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid #e3c3cf;margin-top:0}.checkout-form input:focus,.checkout-form select:focus,.checkout-form textarea:focus{outline:none;border-color:#b34d6f;box-shadow:0 0 0 3px #b34d6f38}.checkout-form textarea{min-height:4.5rem;resize:vertical}.checkout-form label.radio-row,.checkout-form label.checkbox-row{flex-direction:row;align-items:center;gap:.65rem;padding:.65rem .9rem;border:1px solid #f0dbe2;border-radius:8px;cursor:pointer}.checkout-form label.radio-row:has(input:checked){border-color:#b34d6f;background:#fbeef2}.checkout-form label.radio-row input[type=radio],.checkout-form label.checkbox-row input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:#b34d6f;margin:0;flex-shrink:0}.area-result{display:block;padding:.75rem 1rem;border-radius:8px;margin:.85rem 0;font-weight:500}.area-result.ok{background:#e6f4ea;color:#2e7d32}.area-result.error{background:#fbe9e7;color:#b3261e}.checkout-layout{display:block}.checkout-sidebar{margin-top:1.25rem}.order-summary{background:#fbeef2}.summary-row{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0;font-size:.95rem;color:#6b4d5a}.summary-row.summary-total{border-top:1px solid #e3b7c6;margin-top:.5rem;padding-top:.85rem;font-size:1.25rem;font-weight:700;color:#7a3b52}.summary-note{color:#888;font-size:.8rem;margin:.85rem 0 0}@media(min-width:1024px){.checkout-layout{display:grid;grid-template-columns:1fr 340px;gap:2rem;align-items:start}.checkout-sidebar{position:sticky;top:1.5rem;margin-top:0}}.order-hero{text-align:center;background:#fbeef2;border-radius:12px;padding:1.5rem;margin-bottom:1.25rem}.order-hero h1{margin:0;font-size:1.6rem;color:#7a3b52}.owner-gate{max-width:380px;margin:2rem auto}.table-wrap{overflow-x:auto;border-radius:10px;border:1px solid #f0dbe2}.owner-group table{min-width:640px;margin-bottom:0}.owner-group.card{margin-bottom:1.5rem}@media(max-width:640px){.table-wrap{overflow-x:visible;border:none}.owner-group table,.owner-group tbody,.owner-group tr,.owner-group td{display:block;width:100%}.owner-group table{min-width:0}.owner-group thead{display:none}.owner-group tr{border:1px solid #f0dbe2;border-radius:10px;padding:.6rem .75rem;margin-bottom:.75rem}.owner-group td{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;text-align:right;border-bottom:1px solid #f5eaee;padding:.4rem 0}.owner-group td:last-child{border-bottom:none}.owner-group td:before{content:attr(data-label);font-weight:600;color:#7a3b52;text-align:left;flex-shrink:0}}
