@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,600;0,9..40,700;1,9..40,400&family=Inter:wght@400;500;600;700&display=swap');
:root{--surface:#f6f9ff;--surface-dim:#cbdcec;--surface-bright:#f6f9ff;--surface-container-lowest:#ffffff;--surface-container-low:#ebf5ff;--surface-container:#e0f0ff;--surface-container-high:#d9eafa;--surface-container-highest:#d4e5f5;--on-surface:#0d1d29;--on-surface-variant:#3e4944;--inverse-surface:#22323e;--inverse-on-surface:#e6f2ff;--outline:#6e7a73;--outline-variant:#bdc9c2;--surface-tint:#006c50;--primary:#00654b;--on-primary:#ffffff;--primary-container:#008060;--on-primary-container:#d6ffeb;--inverse-primary:#75d9b3;--secondary:#555f6c;--on-secondary:#ffffff;--secondary-container:#d6e1ef;--on-secondary-container:#596470;--tertiary:#005e87;--on-tertiary:#ffffff;--tertiary-container:#0f78a9;--on-tertiary-container:#f0f7ff;--error:#ba1a1a;--on-error:#ffffff;--error-container:#ffdad6;--on-error-container:#93000a;--primary-fixed:#92f6cf;--primary-fixed-dim:#75d9b3;--on-primary-fixed:#002116;--on-primary-fixed-variant:#00513c;--secondary-fixed:#d9e3f2;--secondary-fixed-dim:#bdc7d6;--on-secondary-fixed:#121c27;--on-secondary-fixed-variant:#3e4854;--tertiary-fixed:#c8e6ff;--tertiary-fixed-dim:#87ceff;--on-tertiary-fixed:#001e2e;--on-tertiary-fixed-variant:#004c6d;--background:#f6f9ff;--on-background:#0d1d29;--surface-variant:#d4e5f5;--surface-canvas:#ffffff;--surface-subtle:#f9fafb;--surface-neutral:#f4f6f8;--border-hairline:#dfe3e8;--border-subtle:#c4cdd5;--text-primary:#212b36;--text-secondary:#637381;--text-muted:#919eab;--state-sale:#d9381e;--badge-discount:#ffebe6;--font-display:'DM Sans',sans-serif;--font-body:'Inter',sans-serif;--radius-sm:0.125rem;--radius:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-full:9999px;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4.5rem;--gutter:1.5rem;--gutter-mobile:0.75rem;--container-width:1200px;--header-height:72px;--announcement-height:36px;--cart-drawer-width:420px;--shadow-low:0 2px 8px rgba(33,43,54,0.06),0 1px 2px rgba(33,43,54,0.04);--shadow-medium:0 8px 24px rgba(33,43,54,0.12),0 2px 6px rgba(33,43,54,0.04);--overlay-scrim:rgba(33,43,54,0.45)}
*,::before,::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--font-body);font-size:14px;line-height:1.5;color:var(--on-surface);background:var(--surface);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none}
ul,ol{list-style:none}
.container{width:100%;max-width:var(--container-width);margin-inline:auto;padding-inline:var(--gutter)}
@media(min-width:768px){.container{padding-inline:var(--space-xl)}}
@media(min-width:1024px){.container{padding-inline:var(--space-3xl)}}
section{padding-block:var(--space-2xl)}
@media(min-width:768px){section{padding-block:var(--space-3xl)}}
h1,h2,h3,h4,h5,h6{font-family:var(--font-display);line-height:1.2;letter-spacing:-0.01em;color:var(--text-primary)}
h1{font-size:34px;font-weight:700}
h2{font-size:24px;font-weight:600}
h3{font-size:20px;font-weight:600}
h4{font-size:18px;font-weight:600}
@media(min-width:768px){h1{font-size:48px}h2{font-size:32px}h3{font-size:24px}h4{font-size:20px}}
p{margin-bottom:var(--space-md)}
.announcement-bar{background:var(--primary-container);color:var(--on-primary-container);text-align:center;padding:var(--space-xs) var(--gutter);font-size:12px;line-height:1.5;font-weight:500;letter-spacing:0.01em;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);position:relative;z-index:60}
.announcement-bar span{opacity:0.85}
.announcement-bar a{text-decoration:underline;color:inherit;font-weight:600}
.announcement-bar a:hover{opacity:1}
.site-header{position:fixed;top:var(--announcement-height);left:0;right:0;z-index:50;background:rgba(246,249,255,0.92);backdrop-filter:blur(8px);box-shadow:0 1px 8px rgba(0,0,0,0.04);transition:top 0.2s}
.site-header .container{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);gap:var(--space-lg)}
.logo{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-0.01em;color:var(--text-primary)}
.logo img{height:40px;width:auto;object-fit:contain}
.main-nav{display:none}
@media(min-width:1024px){.main-nav{display:flex;gap:var(--space-xl)}}
.main-nav a{font-size:14px;font-weight:500;color:var(--text-secondary);transition:color 0.15s;position:relative;padding-block:var(--space-xs)}
.main-nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--primary);transition:width 0.3s}
.main-nav a:hover{color:var(--text-primary)}
.main-nav a:hover::after{width:100%}
.header-actions{display:flex;align-items:center;gap:var(--space-md)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius);color:var(--text-primary);transition:background 0.15s}
.icon-btn:hover{background:var(--surface-neutral)}
.mobile-menu-toggle{display:flex}
@media(min-width:1024px){.mobile-menu-toggle{display:none}}
.mobile-nav{position:fixed;top:calc(var(--announcement-height) + var(--header-height));left:0;right:0;bottom:0;background:var(--surface);z-index:49;padding:var(--space-lg);transform:translateX(-100%);transition:transform 0.3s ease}
.mobile-nav.open{transform:translateX(0)}
.mobile-nav a{display:block;padding:var(--space-md) 0;font-size:18px;font-weight:500;color:var(--text-primary);border-bottom:1px solid var(--border-hairline)}
.hero{position:relative;background:linear-gradient(135deg,var(--surface-container-low) 0%,var(--surface-container) 100%);overflow:hidden;min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding-block:calc(var(--announcement-height) + var(--header-height) + var(--space-2xl)) var(--space-2xl)}
.hero .container{position:relative;z-index:1}
.hero h1{font-size:34px;margin-bottom:var(--space-md);color:var(--text-primary)}
.hero p{font-size:16px;max-width:600px;margin-inline:auto;color:var(--text-secondary);margin-bottom:var(--space-xl)}
.hero .btn{max-width:300px;margin-inline:auto}
@media(min-width:768px){.hero h1{font-size:48px}.hero p{font-size:18px}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);font-family:var(--font-body);font-weight:600;font-size:14px;line-height:1;border-radius:var(--radius);padding:var(--space-md) var(--space-lg);transition:all 0.2s;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.btn-primary{background:var(--primary-container);color:var(--on-primary-container);border-color:var(--primary-container)}
.btn-primary:hover{background:#007a5c;border-color:#007a5c;transform:scale(0.99)}
.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--text-primary)}
.btn-secondary:hover{background:var(--surface-neutral)}
.btn-full{width:100%}
.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}
@media(min-width:768px){.product-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.product-grid{grid-template-columns:repeat(4,1fr)}}
.product-card{position:relative;background:var(--surface-canvas);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow 0.2s,border-color 0.2s;display:flex;flex-direction:column}
.product-card:hover{box-shadow:var(--shadow-low);border-color:var(--border-subtle)}
.product-card .product-image{position:relative;aspect-ratio:4/5;background:var(--surface-neutral);overflow:hidden}
.product-card .product-image img{width:100%;height:100%;object-fit:cover;transition:opacity 0.3s,transform 0.3s}
.product-card:hover .product-image img{transform:scale(1.03)}
.product-card .badge{position:absolute;top:var(--space-sm);left:var(--space-sm);z-index:2}
.product-card .quick-add{position:absolute;bottom:0;left:0;right:0;transform:translateY(100%);transition:transform 0.3s;background:rgba(255,255,255,0.95);padding:var(--space-sm)}
.product-card:hover .quick-add{transform:translateY(0)}
.quick-add .btn{width:100%;height:44px}
.product-info{padding:var(--space-md);flex:1;display:flex;flex-direction:column;gap:var(--space-xs)}
.product-name{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--text-primary);line-height:1.3}
.product-price{display:flex;align-items:baseline;gap:var(--space-sm);font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--text-primary)}
.product-price .compare-at{font-size:14px;font-weight:400;color:var(--text-muted);text-decoration:line-through}
.badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;line-height:1}
.badge-new{background:var(--primary-fixed);color:var(--on-primary-fixed)}
.badge-sale{background:var(--state-sale);color:var(--on-error)}
.product-detail{display:grid;grid-template-columns:1fr;gap:var(--space-2xl)}
@media(min-width:768px){.product-detail{grid-template-columns:1fr 1fr}}
.gallery{display:flex;flex-direction:column-reverse;gap:var(--space-md)}
.gallery-main{aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-neutral)}
.gallery-main img{width:100%;height:100%;object-fit:cover}
.gallery-thumbs{display:flex;gap:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs)}
.gallery-thumb{flex:0 0 80px;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;border:2px solid transparent;cursor:pointer;transition:border-color 0.2s}
.gallery-thumb.active{border-color:var(--primary-container)}
.gallery-thumb img{width:100%;height:100%;object-fit:cover}
.product-info-col{display:flex;flex-direction:column;gap:var(--space-lg)}
.product-info-col h1{font-size:28px;margin-bottom:var(--space-sm)}
.product-info-col .product-price{font-size:24px;margin-bottom:var(--space-md)}
.variant-selector{display:flex;flex-wrap:wrap;gap:var(--space-sm)}
.variant-option{border:1px solid var(--border-hairline);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);font-size:14px;font-weight:500;cursor:pointer;transition:border-color 0.2s,background 0.2s}
.variant-option:hover{border-color:var(--border-subtle)}
.variant-option.active{border-color:var(--primary-container);background:var(--surface-container-low)}
.quantity-stepper{display:flex;align-items:center;border:1px solid var(--border-hairline);border-radius:var(--radius);overflow:hidden;width:fit-content}
.quantity-stepper button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;color:var(--text-primary);transition:background 0.2s}
.quantity-stepper button:hover{background:var(--surface-neutral)}
.quantity-stepper input{width:60px;text-align:center;border:none;background:transparent;font-weight:600;font-size:16px;-moz-appearance:textfield}
.quantity-stepper input::-webkit-outer-spin-button,.quantity-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.add-to-cart-btn{margin-top:var(--space-md)}
@media(min-width:768px){.add-to-cart-btn{max-width:300px}}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;visibility:hidden;opacity:0;transition:visibility 0s 0.3s,opacity 0.3s}
.cart-drawer.open{visibility:visible;opacity:1;transition:opacity 0.3s}
.cart-backdrop{position:absolute;inset:0;background:var(--overlay-scrim);backdrop-filter:blur(2px)}
.cart-panel{position:absolute;top:0;right:0;bottom:0;width:100%;max-width:var(--cart-drawer-width);background:var(--surface);box-shadow:var(--shadow-medium);transform:translateX(100%);transition:transform 0.3s ease;display:flex;flex-direction:column}
.cart-drawer.open .cart-panel{transform:translateX(0)}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-lg);border-bottom:1px solid var(--border-hairline)}
.cart-head h2{font-size:20px}
[data-cart-close]{font-size:24px;line-height:1;color:var(--text-secondary);transition:color 0.2s;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius)}
[data-cart-close]:hover{color:var(--text-primary);background:var(--surface-neutral)}
.cart-items{flex:1;overflow-y:auto;padding:var(--space-md)}
.cart-item{display:flex;gap:var(--space-md);padding-block:var(--space-md);border-bottom:1px solid var(--border-hairline);align-items:center}
.cart-item-img{flex:0 0 72px;height:72px;border-radius:var(--radius);overflow:hidden;background:var(--surface-neutral)}
.cart-item-img img{width:100%;height:100%;object-fit:cover}
.cart-item-details{flex:1;min-width:0}
.cart-item-title{font-size:14px;font-weight:500;color:var(--text-primary);margin-bottom:var(--space-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cart-item-price{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--text-primary)}
.cart-item-actions{display:flex;align-items:center;gap:var(--space-sm)}
[data-cart-minus],[data-cart-plus]{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-hairline);border-radius:var(--radius);font-size:16px;font-weight:600;color:var(--text-primary);transition:background 0.2s}
[data-cart-minus]:hover,[data-cart-plus]:hover{background:var(--surface-neutral)}
.cart-qty-value{font-weight:600;font-size:14px;min-width:20px;text-align:center}
[data-cart-remove]{color:var(--text-muted);font-size:12px;text-decoration:underline;transition:color 0.2s}
[data-cart-remove]:hover{color:var(--error)}
.cart-empty{text-align:center;padding:var(--space-2xl) var(--space-md)}
.cart-empty p{color:var(--text-secondary);margin-bottom:var(--space-lg)}
.cart-empty a{color:var(--primary-container);font-weight:600;text-decoration:underline}
.cart-foot{padding:var(--space-lg);border-top:1px solid var(--border-hairline);background:var(--surface-subtle)}
.cart-subtotal{display:flex;justify-content:space-between;margin-bottom:var(--space-sm);font-weight:600}
.cart-subtotal [data-cart-subtotal]{font-family:var(--font-display);font-size:20px}
.cart-checkout-btn{margin-top:var(--space-md)}
.checkout-page{background:var(--surface)}.checkout-page .container{padding-block:var(--space-2xl)}
#checkout-root{display:grid;grid-template-columns:1fr;gap:var(--space-2xl)}
@media(min-width:1024px){#checkout-root{grid-template-columns:1fr 400px}}
#checkout-form{display:flex;flex-direction:column;gap:var(--space-lg)}
.checkout-field{display:flex;flex-direction:column;gap:var(--space-xs)}
.checkout-field label{font-size:14px;font-weight:500;color:var(--text-primary)}
.checkout-field input{height:44px;padding:0 var(--space-md);border:1px solid var(--border-hairline);border-radius:var(--radius);background:var(--surface-canvas);font-size:14px;color:var(--text-primary);transition:border-color 0.2s,box-shadow 0.2s}
.checkout-field input:focus{outline:none;border-color:var(--primary-container);box-shadow:0 0 0 3px rgba(0,128,96,0.15)}
.checkout-submit-btn{margin-top:var(--space-lg)}
.checkout-summary{background:var(--surface-subtle);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);padding:var(--space-lg);height:fit-content;position:sticky;top:calc(var(--announcement-height) + var(--header-height) + var(--space-md))}
.order-line{display:flex;gap:var(--space-sm);padding-block:var(--space-sm);border-bottom:1px solid var(--border-hairline);align-items:center}
.order-line img{width:50px;height:50px;object-fit:cover;border-radius:var(--radius)}
.order-line .order-line-details{flex:1;min-width:0}
.order-line .order-line-title{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.order-line .order-line-price{font-size:13px;color:var(--text-secondary)}
.checkout-total{display:flex;justify-content:space-between;margin-top:var(--space-md);font-weight:600;font-size:16px}
[data-order-thanks]{text-align:center;padding:var(--space-3xl) var(--space-lg)}
[data-order-thanks] h2{font-size:28px;margin-bottom:var(--space-md)}
[data-order-thanks] p{color:var(--text-secondary);margin-bottom:var(--space-lg)}
[data-order-thanks] a{color:var(--primary-container);font-weight:600;text-decoration:underline}
.prose-page{max-width:800px;margin-inline:auto;padding-block:var(--space-2xl)}
.prose-page h1{margin-bottom:var(--space-lg)}
.prose-page h2{margin-top:var(--space-xl);margin-bottom:var(--space-md)}
.prose-page p{margin-bottom:var(--space-md);line-height:1.7;color:var(--text-secondary)}
.prose-page a{color:var(--primary-container);text-decoration:underline}
.prose-page ul,.prose-page ol{margin-left:var(--space-lg);margin-bottom:var(--space-md)}
.prose-page li{margin-bottom:var(--space-xs)}
.form-group{margin-bottom:var(--space-md)}
.form-group label{display:block;margin-bottom:var(--space-xs);font-weight:500}
.form-group input,.form-group textarea,.form-group select{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--border-hairline);border-radius:var(--radius);background:var(--surface-canvas);font-size:14px}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary-container);box-shadow:0 0 0 3px rgba(0,128,96,0.15)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.footer{background:var(--inverse-surface);color:var(--inverse-on-surface);padding-block:var(--space-2xl)}
.footer .container{display:grid;grid-template-columns:1fr;gap:var(--space-xl)}
@media(min-width:768px){.footer .container{grid-template-columns:2fr 1fr 1fr 1fr}}
.footer h4{color:var(--inverse-on-surface);font-size:16px;margin-bottom:var(--space-md)}
.footer a{color:var(--inverse-on-surface);opacity:0.7;transition:opacity 0.2s}
.footer a:hover{opacity:1}
.footer .footer-bottom{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid rgba(255,255,255,0.1);text-align:center;font-size:12px;opacity:0.6}
@media(max-width:767px){.hide-mobile{display:none!important}}
@media(max-width:1023px){.hide-tablet{display:none!important}}
