/* Vitrine compacta e identidade compartilhada com o pedido. */
.storefront {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background-color: #210a32;
  background-image:
    radial-gradient(circle, #ffffff06 .8px, transparent 1px),
    radial-gradient(ellipse at 4% 32%, #9b1c7860, transparent 46%),
    radial-gradient(ellipse at 96% 0%, #becf4626, transparent 35%),
    linear-gradient(145deg, #2d103e, #190824 80%);
  background-size: 6px 6px, auto, auto, auto;
}
.storefront main { flex: 1; }
.storefront .page-width { width: min(1220px, calc(100% - 4rem)); }
.storefront .site-header {
  justify-content: space-between;
  min-height: 100px;
  border-bottom: 1px solid #ffffff16;
}
.storefront .wordmark,
.storefront .footer-brand,
.storefront .summary-oba {
  font-weight: 800;
  letter-spacing: -.085em;
  color: var(--lime);
  text-shadow: none;
}
.storefront .wordmark { font-size: 4.15rem; transform: rotate(-5deg); }
.storefront .header-cta {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 44px;
  padding: .7rem 1.1rem;
  border: 1px solid #ffffff35;
  border-radius: 99px;
  background: #ffffff0b;
  color: #fff;
  font-size: .875rem;
  box-shadow: none;
}
.storefront .header-location{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:.62rem 1rem;border:1px solid #e0d4e5;border-radius:999px;background:#fff;color:var(--purple);font:800 .86rem/1 var(--body);cursor:pointer;box-shadow:0 4px 14px #32103d10}.storefront .header-location span{color:#0a9b4b;font-size:1.1rem}.storefront .header-location strong{max-width:15ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.storefront .header-cta span { color: var(--lime); font-size: 1.3rem; }
.storefront .order-section { padding: 2.35rem 0 2.75rem; }
.shop-intro {
  display: grid;
  grid-template-columns: 1fr minmax(340px, 480px);
  align-items: center;
  gap: 2.5rem;
  margin-bottom: 2.2rem;
}
.shop-intro .section-heading { display: block; margin: 0; }
.shop-intro h1 {
  margin: 0;
  color: #fff9fc;
  font: 800 clamp(3rem, 5.2vw, 4.4rem)/.98 var(--heading);
  letter-spacing: -.04em;
}
.shop-intro h1 span { color: var(--lime); }

/* O brilho acompanha apenas cupons disponíveis ou ativos. */
.shop-intro .coupon-entry {
  position: relative;
  min-height: 96px;
  margin: 0;
  padding: 1.1rem 1.25rem;
  border: 1px solid #f9a6ef;
  border-radius: 22px;
  background: linear-gradient(115deg, #f7ffd1, #def26a);
  color: var(--deep);
  box-shadow: 0 10px 32px #13031c3d;
}
.shop-intro .coupon-entry[data-coupon-state="available"],
.shop-intro .coupon-entry[data-coupon-state="active"] {
  animation: coupon-aura 3.4s ease-in-out infinite;
}
.shop-intro .coupon-entry:hover { transform: translateY(-2px); }
.shop-intro .coupon-entry:disabled { animation: none; transform: none; opacity: .8; }
.shop-intro .coupon-entry.is-expired {
  animation: none;
  color: #842645;
  background: #fce9f0;
  border-color: #e99eb5;
  box-shadow: 0 8px 28px #18042233;
}
.coupon-entry .coupon-percent { font-weight: 800; font-size: 3.25rem; letter-spacing: -.04em; }
.coupon-entry .coupon-entry-copy strong { font-size: 1rem; font-weight: 800; max-width: 20ch; }
.coupon-entry .coupon-entry-end { font-weight: 800; font-size: 1.65rem; }
.coupon-entry .coupon-badge { width: 20px; height: 20px; box-shadow: none; }
@keyframes coupon-aura {
  0%, 100% { box-shadow: 0 0 0 1px #ffb4ed55, 0 0 20px #f34aae55, 0 12px 32px #15041e55; }
  50% { box-shadow: 0 0 0 3px #ffb4ed38, 0 0 38px #f34aae88, 0 12px 40px #15041e55; }
}

.storefront .product-grid { gap: 1.2rem; }
.product-grid .product-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-height: 0;
  padding: .65rem;
  border: 1px solid #ffffffb3;
  border-radius: 26px;
  background: linear-gradient(155deg, #fff, #f6f0fa);
  color: var(--deep);
  box-shadow: 0 18px 38px #10041845, inset 0 1px 0 #fff;
}
.product-grid .product-card::before { content: none; }
.product-visual {
  display: grid;
  place-items: center;
  overflow: hidden;
  width: 100%;
  border-radius: 19px;
  background: #f3e8f4;
}
.product-card .product-image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  max-height: none;
  object-fit: contain;
  object-position: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none;
  filter: none;
}
.product-copy { display: flex; flex: 1; flex-direction: column; padding: 1rem .5rem .4rem; min-width: 0; }
.product-name {
  display: block;
  min-height: 2.14em;
  font: 800 clamp(1.6rem, 2.15vw, 1.95rem)/1.07 var(--heading);
  letter-spacing: -.025em;
  text-wrap: balance;
}
.product-card .product-price { display: grid; gap: .1rem; margin: .85rem 0 0; padding: 0; border: 0; text-transform: none; letter-spacing: 0; }
.product-card .product-price > span { font: 600 .75rem/1.4 var(--body); color: #75617c; }
.product-card .product-price strong { margin: 0; font: 800 2.15rem/1.1 var(--heading); letter-spacing: -.04em; color: var(--purple); }
.product-card .product-choose {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  min-height: 44px;
  margin: 1rem 0 0;
  padding: .65rem .95rem;
  border: 0;
  border-radius: 13px;
  color: #fff;
  background: var(--purple);
  font: 800 .875rem/1.3 var(--body);
}
.product-card .product-choose b { color: var(--lime); font-size: 1.2rem; background: none; }
@media (hover: hover) {
  .product-grid .product-card:hover { border-color: var(--lime); transform: translateY(-5px); box-shadow: 0 22px 45px #10041866; }
  .product-grid .product-card:hover .product-image { transform: none; filter: none; }
  .product-card:hover .product-choose { background: #351044; }
  .storefront .header-cta:hover { border-color: var(--lime); background: #ffffff13; }
}
.product-grid .product-card:active { transform: translateY(1px); }
.storefront .site-footer { border: 0; background: #16072045; padding: 0; color: #d9cbe3; }
.storefront .footer-inner { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-block: 1.35rem; border-top: 1px solid #ffffff17; }
.storefront .footer-brand { font-size: 2rem; }
.storefront .image-credits-link { padding: .7rem 0; font-size: .75rem; color: #d6bfdc; }

/* Telas de escolha: fotos, seleção clara e espaço para o toque. */
.storefront .builder:not([hidden]) {
  background: radial-gradient(ellipse at 100% 0%, #e4f69b70, transparent 40%), radial-gradient(ellipse at 0% 55%, #f6d5e680, transparent 48%), #faf6fc;
}
.builder .eyebrow { font-size: .75rem; letter-spacing: .07em; }
.builder .change-product { min-height: 44px; border: 1px solid #d6c7e0; padding: .5rem .8rem; border-radius: 99px; font-size: .8rem; }
.builder .builder-progress { height: 5px; gap: 5px; }
.builder .builder-progress span { border-radius: 99px; background: #e1d6e8; }
.builder .builder-progress .is-active { background: var(--purple); }
.storefront .builder .builder-title-row h2 { font-weight: 800; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.08; letter-spacing: -.025em; }
.builder .selection-image { border: 0; box-shadow: 0 4px 16px #4c17601a; }
.builder .selection-price { border: 0; background: var(--purple); color: #fff; font: 800 1.4rem/1.2 var(--heading); border-radius: 12px; }
.builder .topping-head h3, .builder .sauce-heading h3, .cup-panel h3,
.gift-title strong, .delivery-copy strong, .builder .type-choice strong { font-weight: 800; letter-spacing: -.025em; }
.builder .topping-head h3, .builder .sauce-heading h3 { font-size: 1.6rem; }
.builder .topping-count { border: 0; border-radius: 99px; background: var(--lime); color: var(--deep); font-weight: 800; }
.builder .choice-note { color: #75617e; }
.builder .photo-choice { border-color: #e3d8eb; border-radius: 16px; box-shadow: 0 4px 15px #42145106; }
.builder .ingredient-photo { border-radius: 11px; }
.builder .ingredient-check { width: 22px; height: 22px; right: -.15rem; top: -.2rem; }
.builder .ingredient-option .choice-input:checked + .photo-choice { border-color: var(--purple); background: #e9f7a9; box-shadow: 0 0 0 1px var(--purple); }
.builder .ingredient-option .choice-input:disabled + .photo-choice { opacity: .48; box-shadow: none; }
.builder .sauce-none { border-radius: 15px; }
.builder #sauce-none:checked + .sauce-none { background: #e9f7a9; }
.builder .flow-action, .storefront .finish-button, .coupon-submit {
  min-height: 54px;
  border-radius: 15px;
  font-weight: 800;
  box-shadow: 0 7px 18px #350b461a;
}
.builder .flow-action { background: var(--purple); color: #fff; }
.builder .flow-action > span { color: var(--lime); }
.builder .flow-footer { background: #faf6fcf5; border-color: #e5d9eb; }
.builder .field-label input, #coupon-form input { min-height: 54px; border: 1px solid #d6c6df; border-radius: 14px; background: #fff; padding: .85rem 1rem; font-size: 1rem; box-shadow: 0 4px 12px #4c176005; }
.builder .field-label input:focus { outline: 3px solid var(--lime); border-color: var(--purple); outline-offset: 1px; }
.builder .customer-form { gap: 1rem; }
.builder .gift-card { border: 1px solid #e5bfd3; box-shadow: 0 8px 24px #82124b09; }
.builder .gift-card.is-selected { border-color: var(--purple); box-shadow: 0 0 0 1px var(--purple); }
.builder .delivery-choice { box-shadow: 0 4px 18px #4c176006; border-width: 1px; }
.builder .delivery-option .choice-input:checked + .delivery-choice { background: #e9f7a9; box-shadow: 0 0 0 1px var(--purple); }

/* Cada tamanho tem cor e proporção próprias; a foto permanece inteira. */
.builder .choice-grid.size-grid { gap: 1rem; margin-top: 1.15rem; }
.size-option { --size-surface: #f9dce8; --photo-scale: .67; --photo-angle: -6deg; }
.size-option[data-size="500"] { --size-surface: #e8f5bb; --photo-scale: .77; --photo-angle: 4deg; }
.size-option[data-size="700"] { --size-surface: #e5d5f7; --photo-scale: .88; --photo-angle: -3deg; }
.size-option[data-size="1l"] { --size-surface: #ffdec8; --photo-scale: .97; --photo-angle: 2deg; }
.builder .size-option .size-choice {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  min-height: 0;
  padding: 0;
  border: 2px solid #e1d3e8;
  border-radius: 22px;
  background: #fff;
  text-align: left;
  overflow: hidden;
  box-shadow: 0 8px 24px #42145108;
}
.size-art {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 205px;
  padding: 12px 20px;
  overflow: hidden;
  background: radial-gradient(ellipse at 75% 15%, #ffffff9c, transparent 65%), var(--size-surface);
}
.builder .size-option .size-photo {
  display: block;
  width: 100%;
  max-width: 182px;
  height: auto;
  max-height: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  border-radius: 17px;
  background: transparent;
  transform: rotate(var(--photo-angle)) scale(var(--photo-scale));
  box-shadow: 0 10px 22px #3c15442b;
  transition: transform .2s ease;
}
.size-details { display: grid; gap: .25rem; padding: 1rem 1.1rem 1.15rem; }
.builder .size-volume { margin: 0; color: var(--deep); font: 800 2.5rem/.95 var(--heading); letter-spacing: -.04em; }
.size-volume > span { font: 800 1rem/1 var(--body); margin-left: .25em; letter-spacing: -.02em; }
.builder .size-choice .size-price { margin-top: .25rem; font: 800 1.1rem/1.35 var(--body); color: var(--purple); }
.size-quantity { margin-bottom: .3rem; color: #705579; font-size: .8rem; font-weight: 800; }
.builder .size-unit-price { color: #6c5476; font: 600 .8rem/1.4 var(--body); }
.size-arrow { position: absolute; right: 1.1rem; bottom: 1.2rem; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--size-surface); color: var(--deep); font-size: 1.3rem; }
.builder[data-product="combo"] .size-arrow { top: .75rem; right: .75rem; bottom: auto; background: #ffffffd9; }
.builder .size-option .choice-input:checked + .size-choice { border-color: var(--purple); box-shadow: 0 0 0 1px var(--purple); background: #f4f9dc; }
.builder .size-option .choice-input:checked + .size-choice .size-arrow { background: var(--purple); color: var(--lime); }
@media (hover: hover) {
  .builder .size-option .size-choice:hover { border-color: var(--purple); }
  .builder .size-option .size-choice:hover .size-photo { transform: rotate(0deg) translateY(-3px) scale(var(--photo-scale)); }
}

/* Cadastro e resumo com a mesma tipografia forte. */
.storefront .order-summary:not([hidden]) { background: radial-gradient(ellipse at 90% 0, #98226c40, transparent 55%), #280d3b; }
.order-summary h2, .payment-method strong, .payment-total strong, .summary-total strong { font-family: var(--heading); font-weight: 800; letter-spacing: -.03em; }
.storefront .summary-heading h2 { font-size: 2.8rem; line-height: 1.1; }
.storefront .summary-oba { font-size: 3.25rem; }
.order-summary .summary-line { padding: 1.2rem; border: 1px solid #ffffff24; background: #ffffff08; border-radius: 18px; margin-bottom: .7rem; }
.order-summary .summary-line strong { font-size: 1.05rem; }
.order-summary .summary-delivery { background: #ffffff0c; border-radius: 16px; border: 1px solid #ffffff1d; }
.order-summary .summary-total strong { font-size: 2.4rem; }
.order-summary .edit-button { border-radius: 15px; min-height: 48px; }
.coupon-inline { border-radius: 13px; }
.coupon-dialog { border-radius: 25px; }
.coupon-dialog-heading {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1.1rem;
  min-height: 145px;
  padding: 1.8rem 2rem;
  text-align: left;
  border-bottom: 0;
  background: radial-gradient(ellipse at 95% 0%, #cb297956, transparent 70%), #331047;
}
.coupon-dialog-symbol { display: grid; place-items: center; flex-shrink: 0; width: 65px; height: 75px; border-radius: 20px; transform: rotate(-8deg); background: var(--lime); color: var(--deep); font: 800 3.2rem/1 var(--heading); box-shadow: 0 6px 20px #14031f44; }
.coupon-dialog-heading h2 { margin: 0; font: 800 2rem/1.06 var(--heading); letter-spacing: -.025em; }
.coupon-dialog-heading h2 span { color: var(--lime); }
.coupon-dialog .dialog-close { color: #fff; background: #ffffff15; }
.coupon-dialog:has(.coupon-result:not([hidden])) .dialog-close { background: #4c17600a; color: var(--purple); }
#coupon-form { padding: 1.4rem 1.6rem 1.6rem; }
.coupon-result h2 { font-weight: 800; letter-spacing: -.025em; }
.coupon-result-timer > strong { font-weight: 800; }
.coupon-result-mark { border: 0; box-shadow: 0 8px 25px #4c17601a; }
.coupon-submit { border: 0; box-shadow: 0 6px 18px #6682071a; }
.coupon-submit:hover { box-shadow: 0 8px 22px #6682072a; }

@media (max-width: 960px) {
  .storefront .page-width { width: min(680px, calc(100% - 2rem)); }
  .shop-intro { grid-template-columns: 1fr; gap: 1.4rem; margin-bottom: 1.5rem; }
  .shop-intro h1 { font-size: 3.4rem; }
  .shop-intro h1 br { display: none; }
  .storefront .product-grid { grid-template-columns: 1fr; gap: 1rem; }
  .product-grid .product-card { display: grid; grid-template-columns: 42% minmax(0, 1fr); align-items: stretch; gap: 1.1rem; padding: .65rem; border-radius: 24px; }
  .product-visual { align-self: stretch; border-radius: 17px; }
  .product-copy { padding: .55rem .45rem .55rem 0; justify-content: center; }
  .product-name { min-height: 0; font-size: 2rem; text-wrap: initial; }
  .product-card .product-price { margin-top: .55rem; }
  .product-card .product-price strong { font-size: 2.2rem; }
  .product-card .product-choose { margin-top: .65rem; }
}
@media (max-width: 640px) {
  .storefront .site-header { min-height: 76px; }
  .storefront .wordmark { font-size: 3.4rem; }
  .storefront .header-cta { padding: .55rem .8rem; font-size: .8rem; gap: .65rem; }
  .storefront .header-location{padding:.55rem .8rem;font-size:.8rem}
  .storefront .order-section { padding: 1.4rem 0 1.7rem; }
  .shop-intro { gap: 1.05rem; margin-bottom: 1.2rem; }
  .shop-intro h1 { max-width: 12ch; font-size: 2.65rem; line-height: .98; }
  .shop-intro h1 br { display: initial; }
  .shop-intro .coupon-entry { min-height: 84px; padding: .8rem .95rem; gap: .7rem; border-radius: 18px; }
  .coupon-entry .coupon-percent { font-size: 2.8rem; padding-right: .75rem; }
  .coupon-entry .coupon-entry-copy strong { font-size: .875rem; }
  .coupon-entry .coupon-entry-end { font-size: 1.35rem; }
  .storefront .product-grid { gap: .8rem; }
  .product-grid .product-card { grid-template-columns: 41% minmax(0, 1fr); gap: .85rem; padding: .55rem; border-radius: 21px; }
  .product-visual { border-radius: 14px; }
  .product-copy { padding: .35rem .3rem .35rem 0; }
  .product-name { font-size: 1.5rem; line-height: 1.07; }
  .product-card .product-price { margin-top: .4rem; gap: 0; }
  .product-card .product-price > span { font-size: .75rem; }
  .product-card .product-price strong { font-size: 1.75rem; }
  .product-card .product-choose { min-height: 36px; margin-top: .45rem; padding: .45rem .75rem; font-size: .875rem; border-radius: 11px; }
  .storefront .footer-inner { padding-block: .8rem; }
  .storefront .builder .builder-title-row h2 { font-size: 1.45rem; }
  .builder .selection-price { font-size: 1.15rem; }
  .builder .topping-head h3, .builder .sauce-heading h3 { font-size: 1.35rem; }
  .builder .choice-grid.size-grid { gap: .75rem; margin-top: .85rem; }
  .builder .size-option .size-choice { padding: 0; border-radius: 19px; }
  .size-art { height: 143px; padding: 12px 8px; }
  .builder .size-option .size-photo { border-radius: 12px; max-width: 118px; }
  .size-details { padding: .8rem .85rem .95rem; gap: .2rem; }
  .builder .size-volume { font-size: 2.25rem; }
  .size-volume > span { font-size: .85rem; }
  .builder .size-choice .size-price { font-size: .9375rem; }
  .size-arrow { width: 28px; height: 28px; right: .7rem; bottom: .8rem; font-size: 1.1rem; }
  .builder .size-unit-price { font-size: .75rem; }
  .size-quantity { font-size: .75rem; }
  .builder .gift-title strong, .builder .delivery-copy strong { font-size: 1.25rem; }
  .storefront .summary-heading h2 { font-size: 2.4rem; }
  .order-summary .summary-line { padding: 1rem; }
  .coupon-dialog-heading { padding: 1.65rem 1.35rem; gap: .9rem; }
  .coupon-dialog-heading h2 { font-size: 1.85rem; }
  .coupon-dialog-symbol { width: 55px; height: 65px; font-size: 2.8rem; }
  #coupon-form { padding: 1.2rem; }
}
@media (max-width: 360px) {
  .product-grid .product-card { grid-template-columns: 39% minmax(0, 1fr); gap: .7rem; }
  .product-name { font-size: 1.32rem; }
  .product-card .product-price strong { font-size: 1.6rem; }
  .coupon-entry .coupon-percent { font-size: 2.35rem; }
  .coupon-entry .coupon-entry-copy strong { font-size: .8rem; }
  .storefront .builder .builder-title-row h2 { font-size: 1.2rem; }
  .size-art { height: 120px; }
  .builder .size-option .size-photo { max-width: 98px; }
  .size-details { padding-inline: .7rem; }
  .builder .size-volume { font-size: 2rem; }
  .size-volume > span { font-size: .75rem; }
  .size-arrow { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .shop-intro .coupon-entry[data-coupon-state], .product-grid .product-card { animation: none; }
  .product-card, .builder .size-option .size-photo { transition: none; }
}

/* Fundo branco e retorno sempre acessível durante a montagem. */
body.storefront{background:#fff;background-image:none;color:var(--ink)}
.storefront .site-header{border-bottom-color:#e7dfea}
.storefront .wordmark{color:var(--purple)}
.storefront .header-cta{border-color:var(--purple);background:var(--purple);color:#fff}
.shop-intro h1{color:var(--deep)}
.shop-intro h1 span{color:var(--purple)}
.storefront .builder:not([hidden]){background:#fff}
.quick-back{position:fixed;z-index:55;left:max(1rem,env(safe-area-inset-left));bottom:max(1rem,env(safe-area-inset-bottom));min-height:48px;padding:.7rem 1rem;border:2px solid var(--purple);border-radius:999px;background:var(--purple);color:#fff;box-shadow:0 8px 28px #2c0b3652;font-weight:800;cursor:pointer}
.quick-back:hover{background:var(--deep);color:var(--lime)}
@media(max-width:640px){.quick-back{min-height:44px;padding:.55rem .85rem;font-size:.875rem}}

.storefront .site-footer{background:#fff;color:var(--purple);border-top:1px solid #e7dfea}
.storefront .footer-inner{border-top:0}
.storefront .footer-brand,.storefront .image-credits-link{color:var(--purple)}

@media(min-width:901px){.storefront .product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Versão mobile: navegação curta, alvos de toque e leitura em uma mão. */
@media(max-width:640px){
  html{scroll-padding-top:72px}
  body.storefront{overflow-x:hidden}
  button,a,label{touch-action:manipulation}
  .storefront .page-width{width:calc(100% - 1.5rem)}
  .storefront .site-header{
    position:sticky;top:0;z-index:20;min-height:64px;
    background:#fffffff2;backdrop-filter:blur(14px);
    border-bottom:1px solid #e7dfea
  }
  .storefront .wordmark{font-size:2.85rem}
  .storefront .header-cta{min-height:44px;padding:.55rem .8rem;gap:.45rem}
  .storefront .order-section{padding:1rem 0 1.4rem}
  .shop-intro{gap:.8rem;margin-bottom:1rem}
  .shop-intro h1{max-width:none;font-size:2.25rem;line-height:.95}
  .shop-intro h1 br{display:none}
  .shop-intro .coupon-entry{
    min-height:72px;padding:.65rem .8rem;border-radius:16px;
    box-shadow:0 7px 20px #4c176012
  }
  .coupon-entry .coupon-percent{font-size:2.25rem;padding-right:.65rem}
  .coupon-entry .coupon-entry-copy strong{font-size:.82rem}
  .storefront .product-grid{gap:.7rem}
  .product-grid .product-card{
    grid-template-columns:38% minmax(0,1fr);gap:.7rem;
    min-height:164px;padding:.45rem;border:1px solid #e5dce9;
    border-radius:18px;box-shadow:0 7px 20px #2c0b3612
  }
  .product-visual{min-height:154px;border-radius:14px;background:#f7f2f8}
  .product-card .product-image{height:100%;aspect-ratio:auto;object-fit:cover}
  .product-copy{padding:.4rem .35rem .4rem 0;justify-content:center}
  .product-name{font-size:1.28rem;line-height:1.04}
  .product-card .product-price{margin-top:.35rem}
  .product-card .product-price>span{font-size:.68rem}
  .product-card .product-price strong{font-size:1.5rem}
  .product-card .product-choose{min-height:44px;margin-top:.45rem;padding:.5rem .7rem;font-size:.8rem}

  .builder:not([hidden]){
    padding:max(.75rem,env(safe-area-inset-top)) .75rem calc(6.5rem + env(safe-area-inset-bottom));
    overscroll-behavior:contain
  }
  .builder:not([hidden]) .builder-topline,
  .builder:not([hidden]) .builder-title-row,
  .builder:not([hidden]) #builder-content{width:100%}
  .builder:not([hidden]) .builder-topline{
    position:sticky;top:calc(-1 * max(.75rem,env(safe-area-inset-top)));
    z-index:8;margin:0 -.75rem .75rem;padding:.75rem;
    background:#fffffff2;backdrop-filter:blur(14px);
    border-bottom:1px solid #e7dfea
  }
  .builder .change-product{min-height:42px;padding:.45rem .65rem;text-decoration:none}
  .builder:not([hidden]) .builder-title-row{
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;
    gap:.65rem;margin:0 0 .75rem;padding:0 0 .75rem
  }
  .selection-image{width:50px;height:50px}
  .storefront .builder .builder-title-row h2{font-size:1.18rem;line-height:1.05}
  .builder .selection-price{padding:.45rem .5rem;font-size:.95rem;border-radius:9px}
  .coupon-inline{min-height:44px;margin-bottom:.75rem;padding:.55rem .7rem;font-size:.78rem}
  .builder .choice-grid.size-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-top:.65rem}
  .size-art{height:118px;padding:8px}
  .builder .size-option .size-photo{max-width:96px}
  .size-details{padding:.65rem .7rem .75rem}
  .builder .size-volume{font-size:1.8rem}
  .builder .size-choice .size-price{font-size:.85rem}
  .size-arrow{display:none}
  .builder .topping-head{position:sticky;top:67px;z-index:6;margin:0 -.25rem;padding:.65rem .25rem;background:#fff}
  .builder .topping-head h3,.builder .sauce-heading h3{font-size:1.15rem}
  .builder .topping-count{padding:.4rem .5rem;font-size:.75rem;box-shadow:none}
  .builder .topping-grid,.builder .sauce-grid{grid-template-columns:1fr;gap:.55rem;margin-top:.65rem}
  .builder .ingredient-photo{width:62px;height:62px;border-radius:10px}
  .builder .photo-choice{min-height:76px;padding:.45rem .55rem;border-radius:14px}
  .builder .photo-choice>span:not(.ingredient-check){font-size:.9rem}
  .builder .ingredient-check{width:24px;height:24px;right:.45rem;top:50%;transform:translateY(-50%)}
  .builder .sauce-heading{padding:.5rem 0}
  .builder .sauce-none{min-height:50px;margin-top:.7rem;padding:.65rem .75rem}
  .builder .flow-footer{
    bottom:calc(-1 * (6.5rem + env(safe-area-inset-bottom)));
    grid-template-columns:1fr;gap:.25rem;margin-top:.75rem;
    padding:.65rem 0 calc(.65rem + env(safe-area-inset-bottom));background:#fffffff5
  }
  .builder .flow-footer .flow-action{min-height:50px;font-size:.9rem}
  .builder .flow-footer .flow-back{min-height:36px}
  .quick-back{
    left:.75rem;bottom:calc(4.85rem + env(safe-area-inset-bottom));
    min-height:42px;padding:.5rem .75rem;font-size:.8rem;
    box-shadow:0 5px 18px #2c0b3638
  }
  .gift-card{margin-top:.5rem;padding:.9rem;border-radius:16px}
  .gift-toggle{gap:.65rem}
  .option-icon{width:2.35rem;height:2.35rem}
  .delivery-choice{min-height:74px;padding:.75rem}
  .builder .customer-form{gap:.7rem;margin-top:.65rem}
  .builder .field-label input{min-height:50px;font-size:16px}
  .order-summary:not([hidden]){padding:1rem .85rem calc(1rem + env(safe-area-inset-bottom))}
  .storefront .summary-heading h2{font-size:2rem}
  .storefront .summary-oba{font-size:2.5rem}
  .order-summary .summary-line{padding:.8rem;border-radius:14px}
  .order-summary .summary-total{position:sticky;bottom:0;background:#280d3bf2;z-index:3}
  .order-summary .summary-total strong{font-size:1.9rem}
  .coupon-dialog{width:100vw;max-height:92dvh;margin:auto 0 0;border-radius:22px 22px 0 0}
  .coupon-dialog::backdrop{background:#1f062b99}
  .storefront .footer-inner{min-height:64px}
}

@media(max-width:380px){
  .storefront .page-width{width:calc(100% - 1rem)}
  .storefront .header-cta{font-size:.75rem}
  .shop-intro h1{font-size:2rem}
  .product-grid .product-card{grid-template-columns:36% minmax(0,1fr);min-height:150px}
  .product-visual{min-height:140px}
  .product-name{font-size:1.12rem}
  .product-card .product-price strong{font-size:1.35rem}
  .builder .choice-grid.size-grid{grid-template-columns:1fr 1fr}
  .size-art{height:105px}
}

/* Catálogo por categoria: tamanhos visíveis antes da montagem. */
.storefront #product-grid{display:block}
.catalog-section{margin-top:2rem}
.catalog-section:first-child{margin-top:0}
.catalog-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.catalog-heading p{margin:0;color:var(--hot);font-size:.7rem;font-weight:900;letter-spacing:.12em}
.catalog-heading h2{margin:0;color:var(--deep);font:800 1.55rem/1.1 var(--heading);letter-spacing:-.025em}
.variant-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}
.variant-grid .variant-card{min-width:0;padding:.5rem;border-radius:20px;box-shadow:0 9px 24px #2c0b3612}
.variant-grid .product-visual{border-radius:15px}
.variant-grid .product-image{aspect-ratio:1.12/1;object-fit:cover}
.variant-grid .product-copy{padding:.7rem .35rem .3rem}
.variant-volume{display:inline-flex;align-self:flex-start;margin-bottom:.45rem;padding:.28rem .5rem;border-radius:99px;background:#edf7bd;color:var(--deep);font-size:.7rem;font-weight:900}
.variant-grid .product-name{min-height:0;font-size:1.22rem}
.variant-grid .product-price{margin-top:.55rem}
.variant-grid .product-price strong{font-size:1.65rem}
.variant-grid .product-choose{min-height:42px;margin-top:.65rem;padding:.48rem .7rem}
.variant-grid:has(.variant-card:only-child){grid-template-columns:minmax(210px,280px)}
.builder .change-product{font-weight:900}
.quick-back{display:flex;align-items:center;gap:.35rem}
.quick-back::first-letter{font-size:1.15em}

@media(max-width:960px){
  .variant-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .variant-grid .variant-card{display:flex;flex-direction:column}
  .variant-grid .product-copy{padding:.75rem .45rem .35rem}
}

@media(max-width:640px){
  .catalog-section{margin-top:1.35rem}
  .catalog-heading{display:block;margin-bottom:.65rem}
  .catalog-heading p{margin-bottom:.25rem;font-size:.64rem}
  .catalog-heading h2{font-size:1.2rem}
  .variant-grid{
    display:flex;gap:.65rem;overflow-x:auto;overscroll-behavior-inline:contain;
    margin-inline:-.75rem;padding:0 .75rem .7rem;scroll-padding-inline:.75rem;
    scroll-snap-type:x mandatory;scrollbar-width:none
  }
  .variant-grid::-webkit-scrollbar{display:none}
  .variant-grid .variant-card{
    display:flex;flex:0 0 205px;flex-direction:column;min-height:0;
    padding:.45rem;border-radius:17px;scroll-snap-align:start
  }
  .variant-grid .product-visual{min-height:0;aspect-ratio:1.14/1;border-radius:13px}
  .variant-grid .product-image{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .variant-grid .product-copy{padding:.55rem .3rem .25rem}
  .variant-volume{margin-bottom:.35rem;font-size:.64rem}
  .variant-grid .product-name{font-size:1.05rem}
  .variant-grid .product-price{margin-top:.4rem}
  .variant-grid .product-price>span{font-size:.65rem}
  .variant-grid .product-price strong{font-size:1.42rem}
  .variant-grid .product-choose{min-height:42px;margin-top:.5rem;font-size:.78rem}
  .quick-back{background:#fff;color:var(--purple);border:2px solid var(--purple);box-shadow:0 5px 18px #2c0b3626}
  .quick-back:hover{background:#f5edf7;color:var(--purple)}
  .builder .change-product{background:#fff;color:var(--purple);border:2px solid var(--purple)}
}

@media(max-width:380px){
  .variant-grid .variant-card{flex-basis:190px}
}
/* Carrinho limpo inspirado na referência enviada. */
.storefront .order-summary:not(.payment-screen),.storefront .order-summary:not(.payment-screen):not([hidden]){background:#fff!important;color:#241b27!important;padding:0!important;border:0!important;border-radius:0!important}.storefront .order-summary:not(.payment-screen) .summary-heading{width:100%!important;max-width:none!important;margin:0!important;padding:1rem 1.25rem!important;background:#571568!important;color:#fff!important;border:0!important;align-items:center}.storefront .order-summary:not(.payment-screen) .summary-heading .eyebrow{display:none}.storefront .order-summary:not(.payment-screen) .summary-heading h2{color:#fff!important;font-size:1.2rem!important}.storefront .order-summary:not(.payment-screen) .summary-oba{display:none}.storefront .order-summary:not(.payment-screen) #summary-content{width:100%!important;max-width:none!important;margin:0!important;display:block!important}.cart-product{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:.8rem;align-items:start;padding:1rem;border-bottom:1px solid #e7e2e8;background:#fff}.cart-product>img{width:70px;height:70px;object-fit:cover;border-radius:12px;background:#f8f5f9}.cart-product-copy{min-width:0}.cart-product-copy>strong{display:block;color:#241b27;font-size:.95rem}.cart-product-copy p{margin:.16rem 0;color:#6f6672;font-size:.72rem;line-height:1.35}.cart-quantity{display:inline-grid;grid-template-columns:28px 28px 28px;align-items:center;margin-top:.5rem;border:1px solid #dcd5df;border-radius:999px;overflow:hidden}.cart-quantity button{width:28px;height:28px;border:0;background:#fff;color:#9b91a0}.cart-quantity b{text-align:center;font-size:.78rem}.cart-product-end{display:grid;justify-items:end;gap:.55rem}.cart-product-end button{border:0;background:none;color:#681778;font-size:.72rem;font-weight:800}.cart-product-end strong{color:#0da64f;font-size:.9rem;white-space:nowrap}.cart-delivery{margin-top:auto;padding:1rem 1.25rem;border-top:1px solid #e8e3e9;background:#fff}.cart-delivery div{display:flex;justify-content:space-between;gap:1rem;padding:.33rem 0;color:#5f5663;font-size:.82rem}.cart-delivery strong{color:#2d2530}.cart-delivery .is-free{color:#8a7e8e}.cart-address{margin:0 1rem 1rem;padding:.9rem;border:1px solid #e2dbe5;border-radius:12px;background:#fbf9fc}.cart-address>span{color:#a92d59;font-size:.62rem;font-weight:900;letter-spacing:.08em}.cart-address>strong{display:block;margin:.3rem 0;color:#2c2330;font-size:.86rem}.cart-address p,.cart-address small{display:block;margin:.2rem 0;color:#756a79;font-size:.7rem;line-height:1.4}.storefront .order-summary:not(.payment-screen) .coupon-inline{width:calc(100% - 2rem)!important;max-width:none!important;margin:.3rem 1rem .8rem!important;background:#f3f8db!important;color:#312638!important;border-color:#d9e590!important}.storefront .order-summary:not(.payment-screen) .summary-total{position:static!important;width:calc(100% - 2.5rem)!important;max-width:none!important;margin:0 1.25rem!important;padding:.9rem 0!important;background:#fff!important;border-top:1px solid #ddd6e0!important;color:#2a222d!important}.storefront .order-summary:not(.payment-screen) .summary-total strong{color:#10a94f!important;font-size:1.55rem!important}.storefront .order-summary:not(.payment-screen) .edit-button{width:calc(100% - 2rem)!important;max-width:none!important;margin:.25rem 1rem .65rem!important;min-height:46px;background:#fff!important;color:#5b176b!important;border:1px solid #b99fc0!important;border-radius:999px!important}.storefront .order-summary:not(.payment-screen) .finish-button{width:calc(100% - 2rem)!important;max-width:none!important;margin:0 1rem!important;min-height:50px;background:#12ad52!important;border-color:#12ad52!important;color:#fff!important;border-radius:999px!important}.continue-shopping{display:block;width:100%;padding:.7rem;border:0;background:none;color:#746979;font-size:.75rem;cursor:pointer}.storefront .order-summary:not(.payment-screen) .summary-footnote{color:#776d7b!important;margin:0 auto 1rem!important}.storefront .order-summary:not(.payment-screen):not([hidden]){display:flex!important;flex-direction:column!important}
@media(min-width:901px){.storefront .order-summary:not(.payment-screen):not([hidden]){width:min(440px,42vw)!important;border-radius:0!important}}
@media(max-width:640px){.storefront .order-summary:not(.payment-screen):not([hidden]){padding-bottom:calc(76px + env(safe-area-inset-bottom))!important}.cart-product{grid-template-columns:66px minmax(0,1fr) auto;padding:.85rem}.cart-product>img{width:62px;height:62px}.cart-delivery{margin-top:auto}}
/* Valores com tipografia de texto comum e contraste legível. */
:is(body.storefront, #order-summary, #payment-screen) :is(.product-price strong, .size-price, .selection-price, .order-dock strong, .cart-product-end > strong, .cart-delivery strong, .summary-total strong, .payment-total strong, .payment-breakdown strong, .delivery-cost, .delivery-choice > b, .summary-extra > span, .discount-line strong, .gift-title > span, .account-order > b) {
  color: #4b4b4b !important;
  font-family: var(--body) !important;
  font-size: .9375rem !important;
  font-weight: 400 !important;
  font-style: normal !important;
  line-height: 1.5 !important;
  letter-spacing: normal !important;
  text-shadow: none !important;
}
body.storefront .selection-price { background: #fff !important; box-shadow: none !important; }
body.storefront .offer-price { display: grid !important; justify-items: start; border-top: 0 !important; padding-top: .25rem !important; }
body.storefront .offer-price > :is(span, small, em), body.storefront .offer-price del {
  color: #4b4b4b !important;
  font-family: var(--body) !important;
  font-size: .8125rem !important;
  font-weight: 400 !important;
  font-style: normal !important;
  line-height: 1.5;
  text-transform: none !important;
  letter-spacing: normal !important;
}
body.storefront .offer-price > strong { margin-top: .08rem !important; }
body.storefront .offer-price > em { margin-top: .25rem; padding: 0; background: transparent; border-radius: 0; }
