.shop { background:#f6f7f9; }
.shop [hidden] { display:none !important; }
.shop a:focus-visible,.shop button:focus-visible,.shop input:focus-visible,.shop select:focus-visible,.shop summary:focus-visible { outline:3px solid #008bff; outline-offset:4px; }
.shop section[id],.shop article[id] { scroll-margin-top:88px; }
.shop-hero { background:radial-gradient(ellipse at 85% 25%,#0082ff20,transparent 60%),var(--navy); color:#fff; padding:64px 0; overflow:hidden; }
.shop-hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.shop-kicker { color:#69baff; font-size:12px; font-weight:700; letter-spacing:3px; }
.shop-hero h1 { font-size:clamp(38px,5.2vw,68px); line-height:1.06; letter-spacing:-2.5px; margin:24px 0; }
.shop-hero p { color:#b2bed0; font-size:18px; line-height:1.8; margin-bottom:28px; }
.shop-cart-link { display:inline-block; color:#fff; padding:12px 20px; font-size:14px; }
.shop-hero-note { color:#8292aa; font-size:12px; margin-top:30px; }
.shop-hero-photo { position:relative; display:block; border-radius:18px; overflow:hidden; background:#1a202a; text-decoration:none; transform:rotate(1.5deg); box-shadow:0 28px 100px #0077ff24; }
.shop-hero-photo img { display:block; width:100%; height:auto; }
.shop-hero-photo>span { display:flex; justify-content:space-between; gap:10px; align-items:center; color:white; background:#111927; padding:20px; font-size:12px; letter-spacing:1.5px; }
.shop-hero-photo strong { font-size:19px; letter-spacing:0; white-space:nowrap; }
.shop-section-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:18px; }
.shop h2 { font-size:clamp(27px,3vw,38px); letter-spacing:-1px; line-height:1.2; margin:10px 0 18px; }
.shop-disclaimer { font-size:12px; color:#5d687a; line-height:1.7; margin:16px 0 24px; max-width:850px; }
.shop-filters { display:flex; gap:10px; flex-wrap:wrap; margin:30px 0; }
.shop-filters button { border:1px solid #dce2eb; background:#fff; padding:10px 21px; border-radius:30px; cursor:pointer; font:inherit; font-size:14px; color:#334155; }
.shop-filters button[aria-pressed="true"] { background:var(--navy); color:#fff; border-color:var(--electric); box-shadow:inset 0 -2px var(--electric); }
.shop-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:30px; }
.shop-product { display:flex; flex-direction:column; background:white; border:1px solid #e3e7ed; border-radius:18px; overflow:hidden; box-shadow:0 6px 20px #10182704; }
.shop-product-image { display:block; position:relative; aspect-ratio:1/1; background:#e9ebef; overflow:hidden; }
.shop-product-image img { width:100%; height:100%; object-fit:contain; display:block; transition:transform .25s ease; }
.shop-product-image:hover img { transform:scale(1.025); }
.shop-product-image>span { position:absolute; top:14px; left:14px; max-width:calc(100% - 28px); background:#ffffffed; color:#172132; padding:5px 11px; border-radius:30px; font-size:10px; font-weight:600; box-shadow:0 1px 10px #0001; }
.shop-product-body { padding:24px; display:flex; flex-direction:column; flex:1; }
.shop-product-category { font-size:10px; text-transform:uppercase; color:#637086; letter-spacing:1.8px; margin-bottom:8px; }
.shop-product h3 { font-size:20px; color:#101827; letter-spacing:-.5px; line-height:1.3; }
.shop-price { color:#101827; font-weight:800; font-size:26px; margin:12px 0; }
.shop-price span { color:#657086; font-size:11px; font-weight:500; }
.shop-product p { font-size:13px; color:#536074; line-height:1.8; margin:0 0 18px; }
.shop-product details { margin-bottom:22px; font-size:12px; color:#536074; }
.shop summary { cursor:pointer; font-weight:600; }
.shop-product details p { margin:12px 0; font-size:12px; }
.shop-add-form { margin-top:auto; }
.shop-form-row { display:grid; grid-template-columns:minmax(0,1fr) 75px; gap:12px; margin-bottom:14px; }
.shop-form-row label { color:#526075; font-size:11px; font-weight:600; display:block; }
.shop-form-row select,.shop-form-row input { width:100%; min-width:0; display:block; margin-top:6px; height:43px; border:1px solid #d9e0e9; border-radius:8px; background:#fafbfc; padding:8px; color:#172132; font:inherit; font-size:13px; }
.shop-add-form .btn { width:100%; display:flex; justify-content:space-between; align-items:center; border-radius:9px; font-size:13px; padding:12px 17px; box-shadow:none; background:#101827; }
.shop-add-form .btn:hover { background:var(--azul); }
.shop-add-form .btn span { font-size:22px; line-height:1; }
.shop-cart-section { background:#edf1f6; border-top:1px solid #e1e7ef; border-bottom:1px solid #e1e7ef; }
.shop-checkout-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:70px; align-items:start; }
.shop-checkout-grid>div>p { color:#526075; font-size:15px; }
.shop-steps { padding-left:20px; color:#34445a; font-size:14px; margin:24px 0; }
.shop-steps li { padding:6px 0; }
.shop-cart-box { border-radius:18px; border:1px solid #dfe5ed; background:white; padding:30px; box-shadow:0 12px 35px #0c193509; }
.shop-cart-box h3 { font-size:22px; margin-bottom:20px; }
.shop-cart-box h3>span { color:#6b778b; font-weight:400; }
.shop-empty { color:#64748b; font-size:14px; padding:20px 0; }
.shop-cart-item { display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:14px; align-items:center; padding:18px 0; border-bottom:1px solid #e7ecf3; }
.shop-cart-item img { width:56px; height:64px; object-fit:cover; border-radius:7px; }
.shop-cart-item strong,.shop-cart-item span,.shop-cart-item b { display:block; }
.shop-cart-item strong { font-size:13px; line-height:1.5; }
.shop-cart-item span { color:#627086; font-size:11px; margin:4px 0; }
.shop-cart-item b { font-size:14px; }
.shop-remove { background:none; border:none; cursor:pointer; color:#64748b; text-decoration:underline; font-size:11px; padding:8px 0 8px 4px; }
.shop-cart-total { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-top:26px; font-size:13px; }
.shop-cart-total strong { font-size:26px; }
.shop-whatsapp { width:100%; text-align:center; font-size:14px; border-radius:9px; background:#147d42; }
.shop-continue { text-align:center; display:block; color:#526075; font-size:12px; margin-top:17px; }
.shop-alert { padding:12px 16px; background:#edf9f1; color:#185c32; border:1px solid #c6e8d0; border-radius:9px; font-size:13px; margin-bottom:20px; }
.shop-error { background:#fff1f0; border-color:#ffc9c4; color:#9e261c; }
.shop-faq { max-width:850px; }
.shop-faq details { padding:20px 0; border-bottom:1px solid #dfe5ee; font-size:15px; }
.shop-faq details p { margin-top:14px; color:#5a687b; font-size:14px; }
@media(max-width:950px) { .shop-products { grid-template-columns:repeat(2,minmax(0,1fr)); } .shop-hero-grid { gap:30px; } .shop-checkout-grid { gap:35px; } }
@media(max-width:640px) { .shop-hero { padding:42px 0; } .shop-hero-grid,.shop-checkout-grid { grid-template-columns:1fr; } .shop-hero h1 { letter-spacing:-1.7px; } .shop-hero p { font-size:16px; } .shop-hero-photo { transform:none; margin-top:14px; } .shop-products { grid-template-columns:1fr; } .shop-section-heading { align-items:start; flex-direction:column; gap:0; } .shop-product-body { padding:22px; } .shop-cart-box { padding:22px 18px; } .shop-filters { gap:7px; } .shop-filters button { padding:9px 15px; font-size:12px; } .shop-cart-item { gap:10px; } }
@media(prefers-reduced-motion:reduce) { .shop-product-image img { transition:none; } }
