    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --blue:#7AB3CC; --orange:#C94E1E; --mauve:#C98BB5;
      --yellow:#F5B820; --navy:#0D0D2B; --white:#FFFFFF; --offwhite:#F7F5F0;
      --font-script:'Dancing Script',cursive; --font-body:'Raleway',sans-serif;
    }
    html { scroll-behavior:smooth; }
    body { font-family:var(--font-body); background:var(--offwhite); color:var(--navy); }

    /* NAV */
    nav { background:#7AB3CC; display:flex; align-items:center; justify-content:space-between; padding:0 2.5rem; height:70px; position:sticky; top:0; z-index:200; }
    .nav-logo { display:flex; align-items:center; gap:0.6rem; text-decoration:none; }
    .nav-logo-main { font-family:'Yesteryear',cursive; font-weight:400; font-size:1.7rem; color:var(--navy); line-height:1; }
    nav ul { list-style:none; display:flex; gap:2rem; }
    nav ul a { color:var(--navy); text-decoration:none; font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.12em; transition:color 0.2s; }
    nav ul a:hover, nav ul a.active { color:var(--orange); }
    .nav-cart-btn { background:var(--orange); color:var(--white); border:none; border-radius:6px; padding:0.5rem 1.2rem; font-weight:700; font-family:var(--font-body); cursor:pointer; font-size:0.85rem; transition:background 0.2s; }
    .nav-cart-btn:hover { background:var(--yellow); color:var(--navy); }
    .cart-badge { background:var(--yellow); color:var(--navy); border-radius:99px; padding:0.1rem 0.5rem; font-size:0.75rem; font-weight:800; }
    .hamburger { display:none; background:none; border:none; cursor:pointer; padding:0.4rem; flex-direction:column; gap:5px; }
    .hamburger span { display:block; width:22px; height:2px; background:var(--white); border-radius:2px; transition:all 0.25s; }
    .hamburger.open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
    .hamburger.open span:nth-child(2) { opacity:0; }
    .hamburger.open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

    /* BREADCRUMB */
    .breadcrumb { padding:1rem 2.5rem; font-size:0.78rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:#aaa; }
    .breadcrumb a { color:#aaa; text-decoration:none; }
    .breadcrumb a:hover { color:var(--orange); }
    .breadcrumb span { color:var(--navy); }

    /* PRODUCT LAYOUT */
    .product-layout { display:grid; grid-template-columns:1fr 1fr; gap:3rem; max-width:1100px; margin:0 auto; padding:0 2.5rem 4rem; }

    /* IMAGE GALLERY */
    .gallery { display:flex; flex-direction:column; gap:1rem; }
    .gallery-main { width:100%; max-height:60vh; object-fit:contain; border-radius:16px; background:#f0f0f0; display:block; box-shadow:0 4px 24px rgba(13,13,43,0.08); }
    .gallery-thumbs { display:flex; gap:0.5rem; flex-wrap:wrap; }
    .gallery-thumb { width:72px; height:72px; object-fit:cover; border-radius:8px; cursor:pointer; border:3px solid transparent; transition:border-color 0.2s; opacity:0.7; transition:all 0.2s; }
    .gallery-thumb:hover { opacity:1; }
    .gallery-thumb.active { border-color:var(--orange); opacity:1; }
    .gallery-thumb-wrap { position:relative; width:72px; height:72px; flex-shrink:0; }
    .gallery-thumb-wrap .gallery-thumb { width:100%; height:100%; }
    .gallery-thumb-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:0; height:0; border-style:solid; border-width:8px 0 8px 13px; border-color:transparent transparent transparent #fff; filter:drop-shadow(0 1px 2px rgba(0,0,0,0.6)); pointer-events:none; }
    video.gallery-main { background:#000; }

    /* PRODUCT DETAILS */
    .product-details { display:flex; flex-direction:column; gap:1rem; padding-top:0.5rem; }
    .product-cat-label { font-size:0.68rem; font-weight:800; text-transform:uppercase; letter-spacing:0.15em; color:var(--orange); }
    .product-title { font-family:'Yesteryear',cursive; font-weight:400; font-size:clamp(2rem,4vw,3rem); line-height:1.1; color:var(--navy); }
    .product-price-display { font-size:1.1rem; font-weight:800; color:var(--navy); }
    .product-description { font-size:0.95rem; line-height:1.7; color:#444; white-space:pre-line; }
    .product-contents-list { margin-top:0.25rem; }
    .product-contents-list h4 { font-size:0.72rem; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:#aaa; margin-bottom:0.5rem; }
    .product-contents-list ul { list-style:none; display:flex; flex-wrap:wrap; gap:0.4rem; }
    .product-contents-list ul li { background:#f0f0f0; border-radius:99px; font-size:0.78rem; font-weight:600; color:var(--navy); }
    .product-contents-list ul li a { display:block; padding:0.25rem 0.75rem; color:inherit; text-decoration:none; }
    .product-contents-list ul li a:hover { color:var(--orange); }
    .product-divider { border:none; border-top:2px solid #eee; margin:0.5rem 0; }

    /* CART UI */
    .bundle-heading { font-size:0.88rem; font-weight:800; text-transform:uppercase; letter-spacing:0.12em; color:#444; margin-bottom:0.75rem; }
    .selection-summary { font-size:0.85rem; font-weight:700; color:var(--navy); min-height:1.4em; }
    .selection-summary span { color:var(--orange); }

    /* QTY STEPPER */
    .qty-row { display:flex; align-items:center; gap:1rem; margin-bottom:0.75rem; }
    .qty-label { font-size:0.78rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:#444; }
    .qty-stepper { display:flex; align-items:center; border:2px solid #7AB3CC; border-radius:8px; overflow:hidden; }
    .qty-btn { background:#7AB3CC; color:var(--white); border:none; width:34px; height:34px; font-size:1.1rem; font-weight:700; cursor:pointer; transition:background 0.15s; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
    .qty-btn:hover { background:var(--orange); }
    .qty-btn:active { transform:scale(0.92); }
    .qty-input { width:50px; height:34px; border:none; border-left:1.5px solid #ddd; border-right:1.5px solid #ddd; text-align:center; font-family:var(--font-body); font-weight:800; font-size:0.95rem; color:var(--navy); background:var(--white); -moz-appearance:textfield; }
    .qty-input::-webkit-outer-spin-button, .qty-input::-webkit-inner-spin-button { -webkit-appearance:none; }
    .qty-input:focus { outline:none; background:#f0f7fc; }

    /* ADD TO SELECTION / CART BUTTONS */
    .add-selection-btn { background:#7AB3CC; color:var(--white); border:none; border-radius:8px; padding:0.7rem 1.4rem; font-family:var(--font-body); font-weight:700; font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; cursor:pointer; transition:background 0.2s; }
    .add-selection-btn:hover { background:var(--navy); }
    .add-selection-btn:active { transform:scale(0.97); }
    .add-cart-btn { background:var(--orange); color:var(--white); border:none; border-radius:8px; padding:0.7rem 1.4rem; font-family:var(--font-body); font-weight:700; font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; cursor:pointer; transition:background 0.2s; }
    .add-cart-btn:hover { background:#a03a12; }
    .add-cart-btn:active { transform:scale(0.97); }

    /* BUNDLE OPTIONS */
    .bundle-options { display:flex; flex-direction:column; gap:0.6rem; margin-top:0.5rem; }
    .bundle-option { border:2px solid #ddd; border-radius:10px; padding:0.8rem 1.1rem; cursor:pointer; transition:all 0.2s; background:transparent; font-family:var(--font-body); color:var(--navy); text-align:left; width:100%; }
    .bundle-option:hover { border-color:var(--blue); }
    .bundle-option.ready { border-color:var(--yellow); background:rgba(245,184,32,0.08); }
    .bundle-option-name { font-weight:800; font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; }
    .bundle-option-detail { font-size:0.78rem; color:#888; margin-top:0.1rem; }
    .bundle-option-price { font-size:1.05rem; font-weight:800; color:var(--yellow); margin-top:0.15rem; }
    .bundle-option.ready .bundle-option-detail { color:var(--navy); }

    .back-link { font-size:0.82rem; font-weight:700; color:#444; text-decoration:none; letter-spacing:0.06em; text-transform:uppercase; transition:color 0.2s; margin-top:0.5rem; display:inline-block; }
    .back-link:hover { color:var(--orange); }

    /* CART MODAL */
    .cart-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.6); z-index:300; opacity:0; pointer-events:none; transition:opacity 0.2s; }
    .cart-overlay.open { opacity:1; pointer-events:all; }
    .cart-modal { position:fixed; right:0; top:0; bottom:0; width:min(420px,100vw); background:var(--white); z-index:301; transform:translateX(100%); transition:transform 0.3s cubic-bezier(0.34,1.1,0.64,1); overflow-y:auto; display:flex; flex-direction:column; }
    .cart-modal.open { transform:translateX(0); }
    .cart-modal-header { background:#7AB3CC; padding:1.5rem; display:flex; align-items:center; justify-content:space-between; }
    .cart-modal-title { font-family:var(--font-script); font-weight:700; font-size:2rem; color:var(--white); }
    .cart-modal-close { background:none; border:none; color:rgba(255,255,255,0.8); font-size:1.4rem; cursor:pointer; }
    .cart-modal-close:hover { color:var(--white); }
    .cart-items { padding:1.2rem 1.5rem; flex:1; }
    .cart-item { display:flex; justify-content:space-between; align-items:flex-start; padding:0.9rem 0; border-bottom:1px solid #eee; gap:1rem; }
    .cart-item-name { font-weight:700; font-size:0.95rem; }
    .cart-item-detail { font-size:0.8rem; color:#888; margin-top:0.2rem; line-height:1.4; }
    .cart-item-right { display:flex; align-items:center; gap:0.4rem; flex-shrink:0; }
    .cart-item-price { font-weight:800; font-size:1rem; color:var(--orange); }
    .cart-item-remove { background:none; border:none; color:#ccc; cursor:pointer; font-size:1rem; }
    .cart-item-remove:hover { color:var(--orange); }
    .cart-empty { text-align:center; padding:3rem 1rem; color:#bbb; }
    .cart-footer { padding:1.2rem 1.5rem; border-top:2px solid #eee; background:var(--white); }
    .cart-total { display:flex; justify-content:space-between; align-items:center; margin-bottom:1rem; }
    .cart-total-label { font-weight:700; font-size:0.9rem; text-transform:uppercase; letter-spacing:0.08em; }
    .cart-total-price { font-family:var(--font-script); font-weight:700; font-size:2rem; color:var(--navy); }
    .checkout-btn { width:100%; background:var(--orange); color:var(--white); border:none; border-radius:10px; padding:1rem; font-family:var(--font-body); font-weight:800; font-size:1rem; letter-spacing:0.08em; text-transform:uppercase; cursor:pointer; transition:background 0.2s; }
    .checkout-btn:hover:not(:disabled) { background:#5a93b0; }
    .checkout-btn:disabled { background:#ccc; cursor:default; }

    /* SHIPPING STEP */
    .shipping-step { display:none; flex-direction:column; height:100%; }
    .shipping-step.active { display:flex; }
    .shipping-step-header { background:#7AB3CC; padding:1.5rem; display:flex; align-items:center; gap:0.8rem; }
    .shipping-back-btn { background:none; border:none; color:rgba(255,255,255,0.8); font-size:1.2rem; cursor:pointer; padding:0; line-height:1; }
    .shipping-back-btn:hover { color:var(--white); }
    .shipping-step-title { font-family:var(--font-script); font-weight:700; font-size:2rem; color:var(--white); }
    .shipping-body { padding:1.2rem 1.5rem; flex:1; overflow-y:auto; }
    .shipping-section-label { font-size:0.72rem; font-weight:800; text-transform:uppercase; letter-spacing:0.1em; color:#aaa; margin:0.8rem 0 0.5rem; }
    .shipping-option-card { border:2px solid #eee; border-radius:10px; padding:0.9rem 1.1rem; cursor:pointer; transition:all 0.2s; margin-bottom:0.5rem; }
    .shipping-option-card:hover { border-color:var(--blue); }
    .shipping-option-card.selected { border-color:var(--orange); background:#fff5f2; }
    .shipping-option-name { font-weight:800; font-size:0.9rem; color:var(--navy); }
    .shipping-option-detail { font-size:0.75rem; color:#888; margin-top:0.2rem; line-height:1.4; }
    .shipping-option-price { font-weight:800; font-size:1rem; color:var(--orange); margin-top:0.3rem; }
    .shipping-zip-row { display:flex; gap:0.5rem; margin-top:0.5rem; }
    .shipping-zip-input { flex:1; border:2px solid #ddd; border-radius:8px; padding:0.6rem 0.8rem; font-family:var(--font-body); font-size:0.9rem; color:var(--navy); }
    .shipping-zip-input:focus { outline:none; border-color:var(--blue); }
    .shipping-zip-btn { background:#7AB3CC; color:var(--white); border:none; border-radius:8px; padding:0.6rem 1rem; font-family:var(--font-body); font-weight:700; font-size:0.85rem; cursor:pointer; white-space:nowrap; transition:background 0.2s; }
    .shipping-zip-btn:hover { background:var(--orange); }
    .shipping-zip-btn:disabled { background:#ccc; cursor:default; }
    .shipping-rates-loading { font-size:0.85rem; color:#aaa; padding:0.5rem 0; }
    .shipping-rates-error { font-size:0.85rem; color:var(--orange); padding:0.5rem 0; }
    .shipping-footer { padding:1.2rem 1.5rem; border-top:2px solid #eee; background:var(--white); }
    .shipping-total-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:0.4rem; }
    .shipping-total-label { font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:0.08em; color:#888; }
    .shipping-total-value { font-weight:700; font-size:0.95rem; color:var(--navy); }

    /* TOAST */
    .toast { position:fixed; bottom:2rem; right:2rem; background:#7AB3CC; color:var(--navy); border-left:4px solid var(--orange); padding:0.9rem 1.5rem; border-radius:8px; font-weight:600; font-size:0.9rem; box-shadow:0 8px 30px rgba(0,0,0,0.2); transform:translateY(20px); opacity:0; transition:all 0.3s cubic-bezier(0.34,1.56,0.64,1); z-index:999; pointer-events:none; }
    .toast.show { transform:translateY(0); opacity:1; }

    /* WAVE + FOOTER */
    .wave { display:block; width:100%; }
    footer { background:#7AB3CC; color:var(--navy); text-align:center; padding:2rem; font-size:0.8rem; }
    footer a { color:var(--navy); text-decoration:none; }
    .footer-logo { font-family:'Yesteryear',cursive; font-weight:400; font-size:1.8rem; color:var(--navy); display:block; margin-bottom:0.5rem; }

    /* ERROR STATE */
    .error-state { text-align:center; padding:6rem 2rem; }
    .error-state h2 { font-family:var(--font-script); font-size:2.5rem; color:var(--navy); margin-bottom:1rem; }
    .error-state p { color:#888; margin-bottom:1.5rem; }
    .error-state a { color:var(--orange); font-weight:700; }

    /* RESPONSIVE */
    @media(max-width:700px) {
      nav ul { display:none; flex-direction:column; gap:0; position:absolute; top:70px; left:0; right:0; background:#7AB3CC; padding:1rem 2rem; border-top:1px solid rgba(13,13,43,0.1); z-index:99; }
      nav ul.open { display:flex; }
      nav ul li a { display:block; padding:0.75rem 0; font-size:0.9rem; }
      .hamburger { display:flex; }
      nav { padding:0 1.25rem; }
      .breadcrumb { padding:0.75rem 1.25rem; }
      .product-layout { grid-template-columns:1fr; gap:1.5rem; padding:0 1.25rem 3rem; }
      .gallery-main { border-radius:12px; }
    }
