:root{--c-bg: #F6FBF4;--c-surface: #FFFFFF;--c-primary: #5BBD2D;--c-primary-dark: #4A9C22;--c-primary-light: #C2E89E;--c-brown: #2A6010;--c-brown-dark: #1A3C08;--c-rose: #8DD462;--c-cream: #EDF7E6;--c-cream-mid: #D4EDBC;--c-text: #1A3808;--c-text-muted: #4A7035;--c-border: #D4EDBC;--c-overlay: rgba(26, 56, 8, .65);--c-success: #22c55e;--shadow-sm: 0 2px 8px rgba(42, 96, 16, .08);--shadow-md: 0 8px 32px rgba(42, 96, 16, .12);--shadow-lg: 0 16px 56px rgba(42, 96, 16, .18);--shadow-xl: 0 24px 80px rgba(26, 56, 8, .28);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--radius-xl: 32px;--ease: cubic-bezier(.4, 0, .2, 1);--t: all .3s var(--ease)}.app{min-height:100vh;display:flex;flex-direction:column}.container{max-width:1200px;margin:0 auto;padding:0 24px}.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(155deg,#62c43a,#4fae27 45%,#3a8c18);overflow:hidden;text-align:center;padding:80px 24px 100px}.hero-content{position:relative;z-index:2;max-width:700px;animation:fadeInUp .8s var(--ease) both}.hero-badge{display:inline-flex;align-items:center;gap:8px;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:#ffffffeb;margin-bottom:28px;padding:8px 22px;border:1.5px solid rgba(255,255,255,.35);border-radius:100px;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hero-title{font-family:Playfair Display,serif;font-size:clamp(3.8rem,9vw,7.5rem);font-weight:700;color:#fff;line-height:1.08;margin-bottom:22px;letter-spacing:-.02em;text-shadow:0 2px 20px rgba(0,0,0,.15)}.hero-title em{font-style:italic;color:#ffffffe0}.hero-subtitle{font-size:clamp(1rem,2vw,1.2rem);color:#ffffffe0;font-style:italic;margin-bottom:14px;line-height:1.75}.hero-tagline{font-size:.85rem;color:#ffffffad;letter-spacing:.05em;margin-bottom:40px;opacity:1}.hero-divider{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:44px;color:#ffffff8c;opacity:1}.hero-divider:before,.hero-divider:after{content:"";width:60px;height:1px;background:currentColor}.hero-divider span{font-size:1.2rem}.hero-cta{display:inline-flex;align-items:center;gap:10px;background:#fff;color:var(--c-primary-dark);padding:18px 48px;border-radius:100px;font-size:1rem;font-weight:700;letter-spacing:.04em;transition:var(--t);box-shadow:0 10px 30px #0000002e}.hero-cta:hover{background:#ffffffeb;transform:translateY(-3px);box-shadow:0 16px 40px #00000040}.hero-cta-arrow{transition:transform .3s var(--ease)}.hero-cta:hover .hero-cta-arrow{transform:translate(4px)}.hero-scroll{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:#ffffffa6;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;animation:bounce 2s ease-in-out infinite;z-index:2}.hero-scroll-line{width:1px;height:40px;background:linear-gradient(to bottom,rgba(255,255,255,.65),transparent)}.hero-deco{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1}.hero-blob{position:absolute;border-radius:50%}.hero-blob-1{width:560px;height:560px;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 65%);top:-120px;right:-120px;animation:float 7s ease-in-out infinite}.hero-blob-2{width:400px;height:400px;background:radial-gradient(circle,rgba(255,255,255,.12) 0%,transparent 65%);bottom:-80px;left:-80px;animation:float 9s ease-in-out infinite 2s}.hero-blob-3{width:240px;height:240px;background:radial-gradient(circle,rgba(255,255,255,.14) 0%,transparent 65%);top:38%;left:8%;animation:float 6s ease-in-out infinite 4s}.hero-blob-4{width:180px;height:180px;background:radial-gradient(circle,rgba(255,255,255,.08) 0%,transparent 65%);top:20%;right:15%;animation:float 8s ease-in-out infinite 1s}.features-strip{background:var(--c-brown-dark);padding:20px 24px}.features-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:center;gap:48px;flex-wrap:wrap}.feature-item{display:flex;align-items:center;gap:10px;color:#fffc;font-size:.85rem;font-weight:500;letter-spacing:.03em}.feature-icon{font-size:1.1rem}.menu-section{flex:1;padding:96px 0 112px;background:var(--c-bg)}.section-header{text-align:center;margin-bottom:64px}.section-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--c-primary);margin-bottom:14px}.section-eyebrow:before,.section-eyebrow:after{content:"";width:32px;height:1.5px;background:currentColor;opacity:.5}.section-title{font-family:Playfair Display,serif;font-size:clamp(2rem,4.5vw,3.2rem);font-weight:700;color:var(--c-text);line-height:1.2;margin-bottom:16px}.section-subtitle{font-size:1rem;color:var(--c-text-muted);max-width:460px;margin:0 auto;line-height:1.75}.cakes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:32px}.cake-card{background:var(--c-surface);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid rgba(237,213,192,.6);transition:var(--t);animation:fadeInUp .55s var(--ease) both;display:flex;flex-direction:column}.cake-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--c-primary-light)}.cake-card:nth-child(1){animation-delay:.05s}.cake-card:nth-child(2){animation-delay:.12s}.cake-card:nth-child(3){animation-delay:.19s}.cake-card:nth-child(4){animation-delay:.26s}.cake-card:nth-child(5){animation-delay:.33s}.cake-card:nth-child(6){animation-delay:.4s}.cake-card:nth-child(7){animation-delay:.47s}.cake-card:nth-child(8){animation-delay:.54s}.cake-image-wrapper{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:var(--c-cream)}.cake-img{width:100%;height:100%;object-fit:cover;transition:transform .55s var(--ease)}.cake-card:hover .cake-img{transform:scale(1.06)}.cake-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#edf7e6,#d4edbc);font-size:4.5rem}.cake-badge{position:absolute;top:14px;left:14px;background:var(--c-primary);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:100px;box-shadow:0 2px 8px #5bbd2d66}.cake-body{padding:24px 24px 22px;flex:1;display:flex;flex-direction:column}.cake-name{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:600;color:var(--c-text);margin-bottom:8px;line-height:1.3}.cake-desc{font-size:.875rem;color:var(--c-text-muted);line-height:1.65;flex:1;margin-bottom:20px;min-height:2.8em}.cake-footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.cake-price{font-family:Playfair Display,serif;font-size:1.45rem;font-weight:700;color:var(--c-primary);line-height:1}.cake-price-unit{font-family:Be Vietnam Pro,sans-serif;font-size:.78rem;font-weight:400;color:var(--c-text-muted);margin-left:2px}.btn-order{background:var(--c-primary);color:#fff;padding:11px 26px;border-radius:100px;font-size:.88rem;font-weight:700;letter-spacing:.03em;transition:var(--t);white-space:nowrap;box-shadow:0 4px 14px #5bbd2d52}.btn-order:hover{background:var(--c-primary-dark);transform:translateY(-2px);box-shadow:0 8px 22px #5bbd2d73}.btn-order:active{transform:translateY(0)}.loading-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:96px 0;gap:20px;color:var(--c-text-muted)}.spinner{width:48px;height:48px;border:3px solid var(--c-border);border-top-color:var(--c-primary);border-radius:50%;animation:spin .75s linear infinite}.error-card{text-align:center;padding:56px 32px;background:#fff9f9;border:1px solid #fcc;border-radius:var(--radius-md);color:#b91c1c}.empty-card{text-align:center;padding:72px 32px;color:var(--c-text-muted);grid-column:1 / -1}.footer{background:var(--c-brown-dark);padding:56px 24px;text-align:center;margin-top:auto}.footer-logo{font-family:Playfair Display,serif;font-size:2rem;font-weight:700;color:#fff;letter-spacing:.06em;margin-bottom:10px}.footer-tagline{font-size:.85rem;color:#ffffff80;letter-spacing:.06em;margin-bottom:24px}.footer-divider{width:40px;height:1px;background:#fff3;margin:0 auto 20px}.footer-copy{font-size:.78rem;color:#ffffff59}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--c-overlay);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .2s var(--ease)}.modal-box{background:var(--c-surface);border-radius:var(--radius-xl);width:100%;max-width:520px;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .32s var(--ease);scrollbar-width:thin;scrollbar-color:var(--c-border) transparent}.modal-box::-webkit-scrollbar{width:4px}.modal-box::-webkit-scrollbar-track{background:transparent}.modal-box::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:4px}.modal-header{padding:30px 32px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-title{font-family:Playfair Display,serif;font-size:1.6rem;font-weight:700;color:var(--c-text)}.modal-close{width:36px;height:36px;border-radius:50%;background:var(--c-cream);color:var(--c-text-muted);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;transition:var(--t);line-height:1}.modal-close:hover{background:var(--c-cream-mid);color:var(--c-text)}.modal-body{padding:24px 32px 32px}.order-summary-card{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#edf7e6,#d8eec4);border-radius:var(--radius-md);padding:16px;margin-bottom:28px;border:1px solid var(--c-border)}.order-summary-img{width:76px;height:76px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.order-summary-placeholder{width:76px;height:76px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#d4edbc,#c0e09c);display:flex;align-items:center;justify-content:center;font-size:2.2rem;flex-shrink:0}.order-summary-name{font-family:Playfair Display,serif;font-size:1.1rem;font-weight:600;color:var(--c-text);margin-bottom:4px}.order-summary-price{font-size:.875rem;font-weight:600;color:var(--c-primary)}.form-group{margin-bottom:20px}.form-label{display:block;font-size:.85rem;font-weight:700;color:var(--c-text);margin-bottom:8px;letter-spacing:.02em}.form-input{width:100%;padding:13px 16px;border:1.5px solid var(--c-border);border-radius:var(--radius-sm);font-size:1rem;color:var(--c-text);background:#fff;outline:none;transition:var(--t)}.form-input::placeholder{color:#c5a896}.form-input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3.5px #5bbd2d21}.form-input.is-error{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}.form-error-msg{font-size:.8rem;color:#dc2626;margin-top:6px;display:flex;align-items:center;gap:4px}.form-textarea{resize:vertical;min-height:82px;line-height:1.55;padding-top:11px;padding-bottom:11px}.form-label-optional{font-weight:400;color:var(--c-text-muted);font-size:.8rem;margin-left:4px}.qr-note-row{background:linear-gradient(135deg,#f0f9ec,#e8f5e4)!important;align-items:flex-start!important;padding:12px 18px 14px!important}.qty-row{display:flex;align-items:center;gap:0;border:1.5px solid var(--c-border);border-radius:var(--radius-sm);overflow:hidden;width:fit-content;background:#fff}.qty-btn{width:46px;height:46px;display:flex;align-items:center;justify-content:center;background:var(--c-cream);color:var(--c-brown);font-size:1.3rem;font-weight:600;transition:var(--t);-webkit-user-select:none;user-select:none}.qty-btn:hover:not(:disabled){background:var(--c-cream-mid);color:var(--c-brown-dark)}.qty-btn:disabled{opacity:.35;cursor:not-allowed}.qty-val{width:52px;text-align:center;font-size:1.1rem;font-weight:700;color:var(--c-text);border-left:1.5px solid var(--c-border);border-right:1.5px solid var(--c-border);height:46px;display:flex;align-items:center;justify-content:center;background:#fff}.order-total{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;background:linear-gradient(135deg,#edf7e6,#d8eec4);border-radius:var(--radius-md);border:1px solid var(--c-border);margin:24px 0}.order-total-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--c-text-muted)}.order-total-amount{font-family:Playfair Display,serif;font-size:1.65rem;font-weight:700;color:var(--c-primary)}.server-error-box{background:#fef2f2;border:1px solid #fca5a5;border-radius:var(--radius-sm);padding:12px 16px;font-size:.875rem;color:#b91c1c;margin-bottom:16px}.btn-submit{width:100%;padding:17px;background:linear-gradient(135deg,var(--c-primary) 0%,var(--c-primary-dark) 100%);color:#fff;border-radius:100px;font-size:1rem;font-weight:700;letter-spacing:.04em;transition:var(--t);box-shadow:0 8px 26px #5bbd2d61;display:flex;align-items:center;justify-content:center;gap:10px}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 14px 36px #5bbd2d80;filter:brightness(1.05)}.btn-submit:active:not(:disabled){transform:translateY(0)}.btn-submit:disabled{opacity:.65;cursor:not-allowed}.btn-submit-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .65s linear infinite}.qr-modal-box{max-width:460px}.qr-receipt-header{padding:32px 32px 26px;text-align:center;background:linear-gradient(160deg,#edf7e6,#d4edbc);border-bottom:2px dashed var(--c-cream-mid);position:relative}.qr-receipt-header:after{content:"";position:absolute;bottom:-14px;left:50%;transform:translate(-50%);width:28px;height:28px;background:var(--c-surface);border-radius:50%;box-shadow:inset 0 0 0 2px var(--c-cream-mid)}.qr-success-icon{width:60px;height:60px;background:var(--c-success);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:1.6rem;color:#fff;box-shadow:0 6px 20px #22c55e59;animation:popIn .4s var(--ease) .1s both}.qr-receipt-title{font-family:Playfair Display,serif;font-size:1.45rem;font-weight:700;color:var(--c-text);margin-bottom:18px}.qr-code-hint{font-size:.75rem;color:var(--c-text-muted);margin-bottom:10px;letter-spacing:.04em}.qr-order-code{display:inline-block;font-family:Courier New,Courier,monospace;font-size:1.15rem;font-weight:700;color:var(--c-primary);letter-spacing:.1em;background:#fff;padding:10px 24px;border-radius:var(--radius-sm);border:1.5px dashed var(--c-primary);cursor:pointer;transition:var(--t);-webkit-user-select:all;user-select:all}.qr-order-code:hover{background:var(--c-primary);color:#fff;border-style:solid}.qr-body{padding:32px 32px 28px}.qr-details{margin-bottom:24px;border:1px solid var(--c-border);border-radius:var(--radius-md);overflow:hidden}.qr-detail-row{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;font-size:.875rem;border-bottom:1px solid var(--c-cream)}.qr-detail-row:last-child{border-bottom:none;background:linear-gradient(135deg,#f6fbf4,#edf7e6)}.qr-detail-label{color:var(--c-text-muted);font-weight:500}.qr-detail-value{color:var(--c-text);font-weight:600;text-align:right}.qr-detail-value.is-total{font-family:Playfair Display,serif;font-size:1.2rem;color:var(--c-primary)}.qr-image-container{display:flex;justify-content:center;margin-bottom:22px}.qr-image{width:272px;height:auto;border-radius:var(--radius-md);border:1.5px solid var(--c-border);box-shadow:var(--shadow-md)}.qr-image-loading{width:272px;height:200px;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--c-cream) 25%,var(--c-cream-mid) 50%,var(--c-cream) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border:1.5px solid var(--c-border)}.qr-instruction{background:linear-gradient(135deg,#f0f9f3,#e8f5ee);border:1px solid #BBE0C8;border-radius:var(--radius-sm);padding:14px 18px;font-size:.82rem;color:#166534;line-height:1.65;margin-bottom:22px}.btn-close-qr{width:100%;padding:15px;background:var(--c-brown-dark);color:#fff;border-radius:100px;font-size:.95rem;font-weight:700;letter-spacing:.04em;transition:var(--t)}.btn-close-qr:hover{background:var(--c-brown);transform:translateY(-1px);box-shadow:0 6px 20px #3d20104d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(48px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-24px) rotate(1.2deg)}66%{transform:translateY(12px) rotate(-.8deg)}}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-8px)}}@keyframes popIn{0%{opacity:0;transform:scale(.5)}70%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.cart-toggle{position:fixed;top:24px;right:24px;z-index:150;width:58px;height:58px;border-radius:50%;background:var(--c-primary);color:#fff;font-size:1.45rem;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px #5bbd2d73;transition:var(--t);border:2.5px solid rgba(255,255,255,.25)}.cart-toggle:hover{background:var(--c-primary-dark);transform:scale(1.08);box-shadow:0 10px 32px #5bbd2d8c}.cart-toggle-badge{position:absolute;top:-5px;right:-5px;background:#ef4444;color:#fff;font-size:.66rem;font-weight:700;min-width:22px;height:22px;border-radius:11px;padding:0 5px;display:flex;align-items:center;justify-content:center;border:2px solid white;font-family:Be Vietnam Pro,sans-serif;line-height:1;box-shadow:0 2px 6px #ef444466}.cart-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a380885;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);z-index:180;animation:fadeIn .22s var(--ease)}.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:min(400px,100vw);background:#fff;z-index:190;display:flex;flex-direction:column;box-shadow:-10px 0 60px #1a380833;transform:translate(100%);transition:transform .38s var(--ease);will-change:transform}.cart-drawer.is-open{transform:translate(0)}.cart-drawer-header{padding:22px 22px 18px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#edf7e6,#d8eec4);border-bottom:1px solid var(--c-border);flex-shrink:0}.cart-drawer-title{font-family:Playfair Display,serif;font-size:1.3rem;font-weight:700;color:var(--c-text);display:flex;align-items:center;gap:10px}.cart-header-count{font-family:Be Vietnam Pro,sans-serif;font-size:.75rem;font-weight:700;background:var(--c-primary);color:#fff;padding:3px 10px;border-radius:100px}.cart-drawer-close{width:36px;height:36px;border-radius:50%;background:#fff;color:var(--c-text-muted);display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:var(--t);border:1.5px solid var(--c-border)}.cart-drawer-close:hover{background:var(--c-cream);color:var(--c-text);border-color:var(--c-cream-mid)}.cart-drawer-body{flex:1;overflow-y:auto;padding:14px;scrollbar-width:thin;scrollbar-color:var(--c-border) transparent}.cart-drawer-body::-webkit-scrollbar{width:4px}.cart-drawer-body::-webkit-scrollbar-track{background:transparent}.cart-drawer-body::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:4px}.cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:260px;text-align:center;gap:10px;padding:40px 20px}.cart-empty-icon{font-size:3.5rem;opacity:.3;margin-bottom:4px}.cart-empty p{font-family:Playfair Display,serif;font-size:1.1rem;color:var(--c-text-muted);margin:0}.cart-empty span{font-size:.82rem;color:var(--c-text-muted);opacity:.7}.cart-items-list{display:flex;flex-direction:column;gap:10px}.cart-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);border:1px solid var(--c-border);background:#fff;transition:var(--t)}.cart-item:hover{border-color:var(--c-primary-light);background:var(--c-bg)}.cart-item-img-wrap{width:60px;height:60px;border-radius:var(--radius-sm);overflow:hidden;flex-shrink:0;background:var(--c-cream)}.cart-item-img{width:100%;height:100%;object-fit:cover}.cart-item-img-ph{width:100%;height:100%;background:linear-gradient(135deg,#edf7e6,#d4edbc);display:flex;align-items:center;justify-content:center;font-size:1.6rem}.cart-item-info{flex:1;min-width:0}.cart-item-name{font-weight:600;font-size:.875rem;color:var(--c-text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.cart-item-price{font-size:.76rem;color:var(--c-text-muted)}.cart-item-subtotal{font-size:.9rem;font-weight:700;color:var(--c-primary);margin-top:3px}.cart-item-controls{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}.cart-qty-row{display:flex;align-items:center;border:1.5px solid var(--c-border);border-radius:8px;overflow:hidden}.cart-qty-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--c-cream);color:var(--c-brown);font-size:1.1rem;font-weight:700;transition:var(--t);-webkit-user-select:none;user-select:none}.cart-qty-btn:hover:not(:disabled){background:var(--c-cream-mid);color:var(--c-brown-dark)}.cart-qty-btn:disabled{opacity:.3;cursor:not-allowed}.cart-qty-val{width:30px;text-align:center;font-size:.88rem;font-weight:700;color:var(--c-text);border-left:1.5px solid var(--c-border);border-right:1.5px solid var(--c-border);height:30px;display:flex;align-items:center;justify-content:center;background:#fff}.cart-remove-btn{width:24px;height:24px;border-radius:50%;background:transparent;color:#9ca3af;font-size:.68rem;display:flex;align-items:center;justify-content:center;transition:var(--t);border:1px solid #e5e7eb}.cart-remove-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.cart-drawer-footer{padding:18px 18px 22px;border-top:1px solid var(--c-border);background:#fff;flex-shrink:0}.cart-total-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding:14px 16px;background:linear-gradient(135deg,#edf7e6,#d8eec4);border-radius:var(--radius-md);border:1px solid var(--c-border)}.cart-total-label{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--c-text-muted)}.cart-total-amount{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;color:var(--c-primary)}.cart-footer-actions{display:flex;gap:10px}.cart-btn-clear{flex-shrink:0;padding:12px 16px;border-radius:100px;font-size:.82rem;font-weight:600;color:var(--c-text-muted);background:var(--c-cream);border:1.5px solid var(--c-border);transition:var(--t);white-space:nowrap}.cart-btn-clear:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.cart-btn-checkout{flex:1;padding:12px 16px;border-radius:100px;font-size:.95rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--c-primary) 0%,var(--c-primary-dark) 100%);transition:var(--t);box-shadow:0 4px 16px #5bbd2d59;letter-spacing:.02em}.cart-btn-checkout:hover{transform:translateY(-2px);box-shadow:0 8px 24px #5bbd2d80;filter:brightness(1.05)}.order-cart-summary{border:1.5px solid var(--c-border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:24px;background:#fff}.order-cart-row{display:flex;justify-content:space-between;align-items:center;padding:11px 16px;font-size:.9rem;border-bottom:1px solid var(--c-cream)}.order-cart-row:last-child{border-bottom:none;background:linear-gradient(135deg,#f6fbf4,#edf7e6)}.order-cart-name{color:var(--c-text);font-weight:600}.order-cart-qty{color:var(--c-text-muted);font-weight:400}.order-cart-subtotal{color:var(--c-primary);font-weight:700;white-space:nowrap}.btn-order.btn-order-added{background:var(--c-success);box-shadow:0 4px 14px #22c55e52}.btn-order.btn-order-added:hover{background:#16a34a;box-shadow:0 6px 18px #22c55e73}@media (max-width: 768px){.hero{padding:60px 20px 80px}.hero-title{font-size:3.2rem}.hero-scroll{display:none}.features-inner{gap:24px}.menu-section{padding:64px 0 80px}.cakes-grid{grid-template-columns:1fr;gap:20px}.modal-box{max-height:96vh}.modal-header,.modal-body{padding-left:22px;padding-right:22px}.qr-receipt-header,.qr-body{padding:24px 22px 22px}}@media (max-width: 480px){.hero-title{font-size:2.6rem}.hero-badge{font-size:.66rem}.cake-footer{flex-direction:column;align-items:stretch;gap:14px}.btn-order{text-align:center}.hero-cta{padding:16px 36px}}@media (min-width: 769px) and (max-width: 1024px){.cakes-grid{grid-template-columns:repeat(2,1fr)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Be Vietnam Pro,Inter,system-ui,sans-serif;background-color:#f6fbf4;color:#2c1810;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;display:block}button{cursor:pointer;border:none;background:none;font-family:inherit;line-height:inherit}input{font-family:inherit}a{text-decoration:none}
