:root {
  --ink: #26362d;
  --green: #536b5a;
  --green-dark: #30483b;
  --sage: #e8ede4;
  --cream: #f8f4ed;
  --paper: #fffdf9;
  --rose: #c9817c;
  --line: #d9ded4;
  --muted: #718078;
  --danger: #9f3e42;
}
* { box-sizing: border-box; }
small { font-size: 14px; }
html { min-width: 320px; background: var(--paper); }
body { margin: 0; color: var(--ink); font-family: Arial, sans-serif; }
button, input { font: inherit; }
button { cursor: pointer; }
[hidden] { display: none !important; }
a { color: inherit; text-decoration: none; }
.eyebrow { margin: 0 0 10px; color: var(--rose); font-size: 14px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.store-header { position: sticky; z-index: 10; top: 0; display: flex; align-items: center; justify-content: space-between; height: 112px; padding: 0 clamp(20px, 5vw, 74px); border-bottom: 1px solid rgba(217,222,212,.75); background: rgba(255,253,249,.93); backdrop-filter: blur(14px); }
.store-brand img { width: 190px; height: 88px; object-fit: contain; }
.store-header nav { display: flex; align-items: center; gap: clamp(16px, 3vw, 38px); font-size: 14px; }
.cart-button { border: 1px solid var(--green-dark); border-radius: 999px; background: transparent; color: var(--green-dark); padding: 10px 15px; }
.cart-button span { display: inline-grid; min-width: 20px; height: 20px; margin-left: 6px; place-items: center; border-radius: 50%; background: var(--rose); color: #fff; font-size: 14px; }
.catalog { padding: 48px clamp(20px, 6vw, 90px) 120px; }
.catalog-heading { display: flex; align-items: end; justify-content: space-between; gap: 30px; margin-bottom: 45px; }
.catalog-heading h2 { margin: 0; font-family: Georgia, serif; font-size: 48px; font-weight: 400; }
.catalog-heading > p { color: var(--muted); font-size: 14px; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(18px, 2.5vw, 36px); }
.product-card { display: flex; flex-direction: column; min-width: 0; }
.product-image { position: relative; aspect-ratio: 1; overflow: hidden; border-radius: 3px; background: var(--cream); }
.product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.product-card:hover img { transform: scale(1.025); }
.stock-badge { position: absolute; top: 12px; right: 12px; border-radius: 999px; background: rgba(255,253,249,.92); padding: 6px 9px; color: var(--green-dark); font-size: 14px; font-weight: 700; }
.stock-badge.unavailable { color: var(--danger); }
.product-info { display: grid; flex: 1; padding: 18px 2px 8px; }
.product-info h3 { margin: 0; font-family: Georgia, serif; font-size: 23px; font-weight: 400; line-height: 1.08; }
.product-content { margin: 8px 0 0; color: var(--muted); font-size: 14px; text-transform: uppercase; }
.product-description { min-height: 42px; margin: 12px 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.product-buy-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 15px; border-top: 1px solid var(--line); }
.product-price { font-family: Georgia, serif; font-size: 19px; }
.add-button { border: 0; border-radius: 999px; background: var(--green-dark); color: #fff; padding: 9px 13px; font-size: 14px; font-weight: 700; }
.add-button:disabled { cursor: not-allowed; background: #d8dbd5; color: #777; }
.empty-catalog { grid-column: 1 / -1; padding: 80px 20px; color: var(--muted); text-align: center; }
.cart-drawer { position: fixed; z-index: 30; top: 0; right: 0; width: min(460px, 100%); height: 100dvh; display: grid; grid-template-rows: auto 1fr auto; padding: 30px; background: var(--paper); box-shadow: -15px 0 50px rgba(38,54,45,.15); transform: translateX(105%); transition: transform .3s; }
.cart-drawer.open { transform: none; }
.drawer-header { display: flex; align-items: start; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.drawer-header h2 { margin: 0; font-family: Georgia, serif; font-size: 35px; font-weight: 400; }
.close-button { border: 0; background: transparent; color: var(--muted); font-size: 30px; line-height: 1; }
.cart-items { overflow-y: auto; padding: 10px 0; }
.cart-item { display: grid; grid-template-columns: 62px 1fr auto; gap: 13px; align-items: center; padding: 15px 0; border-bottom: 1px solid var(--line); }
.cart-item img { width: 62px; height: 62px; object-fit: cover; background: var(--cream); }
.cart-item h3 { margin: 0 0 6px; font-family: Georgia, serif; font-size: 15px; font-weight: 400; }
.quantity { display: inline-flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px; }
.quantity button { border: 0; background: transparent; color: var(--green-dark); padding: 0; }
.cart-item-price { font-size: 14px; text-align: right; }
.remove-item { display: block; margin-top: 8px; border: 0; background: transparent; color: var(--rose); padding: 0; font-size: 14px; }
.cart-footer { padding-top: 22px; border-top: 1px solid var(--line); }
.cart-total { display: flex; justify-content: space-between; font-family: Georgia, serif; font-size: 22px; }
.cart-footer > p { color: var(--muted); font-size: 14px; }
.checkout-button { width: 100%; border: 0; border-radius: 10px; background: var(--green-dark); color: #fff; padding: 14px; font-weight: 700; }
.checkout-button:disabled { background: #d8dbd5; color: #777; cursor: not-allowed; }
.account-shortcut { display: block; margin-top: 12px; color: var(--green); font-size: 14px; text-align: center; text-decoration: underline; }
.login-dialog { width: min(470px, calc(100% - 28px)); border: 0; border-radius: 18px; padding: 34px; color: var(--ink); text-align: center; }
.login-dialog::backdrop { background: rgba(26,39,31,.56); backdrop-filter: blur(3px); }
.login-dialog > .close-button { position: absolute; top: 18px; right: 18px; }
.login-dialog > img { width: 200px; margin-bottom: 15px; }
.login-dialog h2 { margin: 0; font-family: Georgia, serif; font-size: 36px; font-weight: 400; }
.login-dialog > p:not(.eyebrow) { color: var(--muted); font-size: 14px; line-height: 1.6; }
.store-email-login { display:grid; gap:12px; margin-top:20px; text-align:left; }
.store-email-login label { display:grid; gap:6px; color:var(--green-dark); font-size:14px; font-weight:700; }
.store-email-login input { width:100%; border:1px solid var(--line); border-radius:9px; padding:11px; }
.password-field { position:relative; display:block; }
.password-field input { padding-right:48px; }
.password-toggle { position:absolute; top:50%; right:5px; width:36px; height:36px; margin:0; padding:7px; border:0; border-radius:8px; background:transparent; color:var(--green-dark); transform:translateY(-50%); }
.password-toggle:hover { background:var(--sage); }
.password-toggle:focus-visible { outline:2px solid var(--green-dark); outline-offset:1px; }
.password-toggle svg { display:block; width:22px; height:22px; fill:currentColor; }
.store-email-login button { border:0; border-radius:9px; background:var(--green-dark); color:#fff; padding:12px; font-weight:700; }
.store-auth-links { display:flex; justify-content:space-between; gap:15px; margin-top:13px; font-size:14px; }
.store-auth-links a { color:var(--green-dark); text-decoration:underline; }
.store-auth-divider { display:flex; align-items:center; gap:10px; margin:20px 0 0; color:var(--muted); font-size:12px; text-transform:uppercase; }
.store-auth-divider::before,.store-auth-divider::after { content:""; flex:1; height:1px; background:var(--line); }
[data-google-button] { display: grid; justify-content: center; min-height: 44px; margin-top: 24px; }
.google-login-disabled { opacity:.42; filter:grayscale(1); pointer-events:none; }
.terms-consent { display:flex; align-items:flex-start; gap:8px; margin:18px 0 0; text-align:left; font-size:14px; line-height:1.5; }
.terms-consent input { width:auto; margin-top:2px; }
.terms-consent a { color:var(--green-dark); text-decoration:underline; }
.service-area-note { margin:10px 0 0 !important; color:var(--rose) !important; font-size:14px !important; font-weight:700; }
.login-message { min-height: 18px; color: var(--danger) !important; }
.confirm-dialog { width:min(520px,calc(100% - 28px)); border:0; border-radius:18px; padding:34px; color:var(--ink); }
.confirm-dialog::backdrop { background:rgba(26,39,31,.56); backdrop-filter:blur(3px); }
.confirm-dialog > .close-button { position:absolute; top:18px; right:18px; }
.confirm-dialog h2 { margin:0 0 22px; font-family:Georgia,serif; font-size:36px; font-weight:400; }
.confirm-dialog > p:not(.eyebrow,.login-message) { color:var(--muted); font-size:14px; line-height:1.6; }
.confirm-items { max-height:280px; overflow-y:auto; border-top:1px solid var(--line); }
.confirm-item { display:flex; justify-content:space-between; gap:20px; padding:13px 0; border-bottom:1px solid var(--line); font-size:14px; }
.confirm-item span { color:var(--muted); }
.confirm-total { display:flex; justify-content:space-between; gap:20px; padding:20px 0 8px; font-family:Georgia,serif; font-size:20px; }
.delivery-section { margin:18px 0; border:1px solid var(--line); border-radius:12px; padding:14px; }
.delivery-heading { display:flex; justify-content:space-between; gap:12px; margin-bottom:10px; font-size:14px; }
.delivery-heading a { color:var(--green); text-decoration:underline; }
.delivery-section select { width:100%; border:1px solid var(--line); border-radius:9px; background:#fff; padding:11px; }
.secondary-address { margin-top:9px; border:1px solid var(--green); border-radius:9px; background:transparent; color:var(--green); padding:8px 10px; font-size:14px; }
.delivery-note { margin:9px 0 0; color:var(--muted); font-size:14px; }
.delivery-deadline { margin:9px 0 0; border-left:3px solid var(--rose); padding-left:9px; color:var(--green-dark); font-size:14px; line-height:1.5; }
.delivery-instructions { display:grid; gap:6px; margin-top:14px; color:var(--green-dark); font-size:14px; font-weight:700; }
.delivery-instructions textarea { width:100%; resize:vertical; border:1px solid var(--line); border-radius:9px; padding:10px; font:inherit; font-weight:400; }
.delivery-instructions small { color:var(--muted); font-weight:400; line-height:1.4; }
.order-totals { display:grid; gap:7px; margin:14px 0; }
.order-totals > div { display:flex; justify-content:space-between; gap:20px; font-size:14px; }
.order-totals .confirm-total { margin-top:5px; border-top:1px solid var(--line); }
.address-form { margin-top:18px; }
.address-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }
.address-grid label { display:grid; gap:5px; margin-bottom:12px; color:var(--green-dark); font-size:14px; font-weight:700; }
.address-grid input { width:100%; border:1px solid var(--line); border-radius:9px; padding:10px; }
.address-grid .wide { grid-column:1/-1; }
.checkbox-address { display:flex !important; align-items:center; }
.checkbox-address input { width:auto; }
.pix-dialog { width:min(680px,calc(100% - 24px)); max-height:calc(100dvh - 24px); overflow-y:auto; border:0; border-radius:18px; padding:34px; color:var(--ink); }
.pix-dialog::backdrop { background:rgba(26,39,31,.6); backdrop-filter:blur(3px); }
.pix-dialog > .close-button { position:absolute; top:18px; right:18px; }
.pix-dialog h2 { margin:0 0 24px; font-family:Georgia,serif; font-size:38px; font-weight:400; }
.test-payment-notice { margin:-10px 0 20px; border-left:3px solid #c68c35; background:#fff5df; padding:11px 13px; color:#795719; font-size:14px; font-weight:700; }
.installment-notice { margin:-8px 0 18px; color:var(--muted); font-size:14px; line-height:1.5; }
.payment-total { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:-8px 0 18px; border:1px solid var(--line); border-radius:12px; background:var(--sage); padding:14px 16px; }
.payment-total span { color:var(--muted); font-size:14px; }
.payment-total strong { font-family:Georgia,serif; font-size:20px; font-weight:400; }
.payment-navigation { display:flex; justify-content:space-between; gap:10px; margin:0 0 18px; }
.payment-navigation button { margin:0; }
.cancel-order-button { border:1px solid var(--danger); border-radius:9px; background:transparent; color:var(--danger); padding:10px 13px; font-weight:700; }
.direct-payment-options { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.direct-payment-options button { display:grid; gap:5px; min-height:88px; border:1px solid var(--line); border-radius:12px; background:#fff; padding:16px; color:var(--green-dark); text-align:left; }
.direct-payment-options button[hidden] { display:none; }
.direct-payment-options button:hover { border-color:var(--green); background:var(--sage); }
.direct-payment-options button.selected { border-color:var(--green-dark); background:var(--sage); box-shadow:0 0 0 2px rgba(48,72,59,.14); }
.direct-payment-options button.selected::after { content:'Selecionado'; color:var(--green-dark); font-size:14px; font-weight:700; }
.direct-payment-options strong { font-size:16px; }
.direct-payment-options span { color:var(--muted); font-size:14px; line-height:1.4; }
.billing-address { margin:14px 0; border:1px solid var(--line); border-radius:12px; background:#fff; padding:18px; }
.billing-address h3 { margin:0; font-family:Georgia,serif; font-size:20px; font-weight:400; }
.billing-address > p { margin:7px 0 15px; color:var(--muted); font-size:14px; line-height:1.5; }
.billing-identity { display:grid; gap:5px; margin-bottom:14px; color:var(--green-dark); font-size:14px; font-weight:700; }
.billing-identity input { width:100%; border:1px solid var(--line); border-radius:9px; padding:10px; }
.billing-same { display:flex; align-items:center; gap:8px; margin-bottom:14px; color:var(--green-dark); font-size:14px; font-weight:700; }
.billing-same input { width:auto; }
.billing-address-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 12px; }
.billing-address-grid label { display:grid; gap:5px; margin-bottom:11px; color:var(--green-dark); font-size:14px; font-weight:700; }
.billing-address-grid label.wide { grid-column:1/-1; }
.billing-address-grid input { width:100%; border:1px solid var(--line); border-radius:9px; padding:10px; }
.billing-address > button { width:100%; }
.change-payment-method { margin:0 0 14px; border:0; background:transparent; color:var(--green); padding:0; font-size:14px; text-decoration:underline; }
#paymentBrick_container { min-height:260px; }
.mp-payment-result { display:grid; gap:13px; border-radius:14px; background:var(--sage); padding:22px; text-align:center; }
.mp-payment-result h3 { margin:0; font-family:Georgia,serif; font-size:25px; font-weight:400; }
.mp-payment-result p { margin:0; color:var(--muted); font-size:14px; line-height:1.6; }
.mp-payment-result img { width:220px; height:220px; margin:auto; border-radius:8px; background:#fff; }
.mp-payment-result label { display:grid; gap:7px; color:var(--green-dark); font-size:14px; font-weight:700; text-align:left; }
.mp-payment-result textarea { width:100%; resize:none; border:1px solid var(--line); border-radius:9px; padding:10px; font:9px monospace; }
.mp-payment-result .account-shortcut { display:block; width:100%; border:0; border-radius:9px; background:var(--green-dark); color:#fff; padding:11px; font-size:14px; font-weight:700; cursor:pointer; }
.payment-support-link { color:var(--green-dark); font-size:14px; font-weight:700; text-decoration:underline; }
.pix-payment { display:grid; grid-template-columns:200px 1fr; gap:25px; align-items:center; }
.pix-payment > img { width:200px; height:200px; border:1px solid var(--line); }
.pix-details { display:grid; gap:12px; }
.pix-details div { display:grid; gap:3px; padding-bottom:9px; border-bottom:1px solid var(--line); }
.pix-details span { color:var(--muted); font-size:14px; text-transform:uppercase; }
.pix-details strong { font-family:Georgia,serif; font-size:16px; font-weight:400; }
.pix-copy-label { display:grid; gap:7px; margin-top:22px; color:var(--green-dark); font-size:14px; font-weight:700; }
.pix-copy-label textarea { width:100%; resize:none; border:1px solid var(--line); border-radius:9px; padding:10px; color:var(--muted); font:9px monospace; overflow-wrap:anywhere; }
.copy-pix { width:100%; border:1px solid var(--green-dark); border-radius:9px; background:transparent; color:var(--green-dark); padding:11px; font-weight:700; }
.pix-confirmation-notice { display:grid; gap:5px; margin:0 0 20px; border:1px solid #c6ad72; border-radius:12px; background:#fff8e8; padding:14px 16px; color:var(--green-dark); font-size:14px; line-height:1.55; }
.confirm-dialog > .pix-confirmation-notice { margin-top:18px; }
.pix-confirmation-notice strong { font-size:14px; }
.proof-section { margin-top:20px; border-top:1px solid var(--line); padding-top:18px; }
.proof-section summary { cursor:pointer; color:var(--green-dark); font-weight:700; font-size:14px; }
.proof-section form { display:grid; gap:13px; margin-top:18px; }
.proof-section label { display:grid; gap:6px; color:var(--green-dark); font-size:14px; font-weight:700; }
.proof-section input { width:100%; border:1px solid var(--line); border-radius:9px; padding:11px; }
.proof-section form > p:not(.login-message) { margin:0; color:var(--muted); font-size:14px; line-height:1.5; }
.toast { position: fixed; z-index: 50; right: 25px; bottom: 25px; max-width: 360px; border-radius: 10px; background: var(--green-dark); color: #fff; padding: 14px 18px; box-shadow: 0 10px 35px rgba(38,54,45,.22); font-size: 14px; }
footer { padding: 30px; border-top: 1px solid var(--line); color: var(--muted); font-size: 14px; text-align: center; }
@media (max-width: 1050px) { .product-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) {
  .payment-navigation { flex-direction:column; }
  .direct-payment-options { grid-template-columns:1fr; }
  .billing-address-grid { grid-template-columns:1fr; }
  .billing-address-grid label.wide { grid-column:auto; }
  .store-header { height: 88px; padding: 0 16px; }
  .store-brand img { width: 145px; height: 68px; }
  .store-header nav > a:first-child { display: none; }
  .store-header nav { gap: 11px; font-size: 14px; }
  .catalog { padding-top: 34px; }
  .catalog-heading { display: block; }
  .product-grid { grid-template-columns: 1fr 1fr; gap: 26px 14px; }
  .product-info h3 { font-size: 19px; }
  .product-description { display: none; }
  .product-buy-row { align-items: stretch; flex-direction: column; }
  .add-button { width: 100%; }
}
@media (max-width: 430px) {
  .store-header nav > a { display: none; }
  .product-grid { grid-template-columns: 1fr; gap: 38px; }
  .product-description { display: block; }
  .cart-drawer { padding: 23px 18px; }
  .pix-dialog { padding:28px 18px; }
  .pix-payment { grid-template-columns:1fr; }
  .pix-payment > img { margin:auto; }
  .address-grid { grid-template-columns:1fr; }
  .address-grid .wide { grid-column:auto; }
}
