:root{
 --ink:#1d2f4d;        /* marinho do logotipo */
 --ink-soft:#4b5d7a;
 --cobalt:#2f5bd3;
 --violet:#7b3fe4;
 --magenta:#c53dd0;
 --paper:#fafbfe;
 --plate:#e9ecf3;      /* mesa de impressão */
 --line:#d7dce8;
 --wa:#1f9d55;
 --wa-ink:#ffffff;
 --radius-s:6px;--radius-m:14px;
 --gutter:clamp(16px,4vw,48px);
 font-family:'Bricolage Grotesque',system-ui,sans-serif;
 font-optical-sizing:auto;
 color:var(--ink);background:var(--paper);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;line-height:1.5;font-size:17px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;border-radius:var(--radius-s);z-index:20}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:2px}

/* topo */
.top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px var(--gutter);max-width:1240px;margin:0 auto}
.brand img{height:62px;width:auto}

/* botões */
.btn{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:999px;padding:11px 18px;font:600 16px/1 inherit;font-family:inherit;text-decoration:none;cursor:pointer}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn-wa{background:var(--wa);color:var(--wa-ink)}
.btn-wa:hover{background:#18864a}
.btn-big{width:100%;justify-content:center;padding:16px 20px;font-size:18px}

/* destaque: título com camadas de impressão no degradê do logotipo */
.hero{max-width:1240px;margin:0 auto;padding:clamp(20px,4vw,48px) var(--gutter) clamp(26px,4vw,44px)}
.layers{margin:0;max-width:17ch;font-weight:800;font-size:clamp(40px,5.6vw,78px);line-height:.98;letter-spacing:-.02em;
 background:
  repeating-linear-gradient(180deg,transparent 0 3px,rgba(250,251,254,.55) 3px 4px),
  linear-gradient(100deg,var(--cobalt) 0%,var(--violet) 55%,var(--magenta) 100%);
 -webkit-background-clip:text;background-clip:text;color:transparent}
.lede{max-width:52ch;margin:22px 0 0;font-size:clamp(17px,2vw,20px);color:var(--ink-soft)}
@media (prefers-reduced-motion:no-preference){
 .layers{animation:print 1.1s cubic-bezier(.2,.7,.2,1) both}
 @keyframes print{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)}}
}

/* catálogo */
.catalog{max-width:1240px;margin:0 auto;padding:0 var(--gutter) 40px}
.catalog-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px 24px;border-top:2px solid var(--ink);padding-top:18px}
.catalog-head h2,.how h2{margin:0;font-size:clamp(26px,3.4vw,36px);font-weight:800;letter-spacing:-.01em}
.search{flex:1 1 280px;max-width:420px}
.search input{width:100%;font:inherit;font-size:16px;padding:12px 16px;border:1.5px solid var(--line);border-radius:999px;background:#fff;color:var(--ink)}
.search input:focus{border-color:var(--cobalt);outline:none;box-shadow:0 0 0 3px rgba(47,91,211,.18)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:16px 0 4px;scrollbar-width:thin}
.chip{flex:none;font:500 15px/1 inherit;font-family:inherit;padding:9px 14px;border-radius:999px;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.status{color:var(--ink-soft);margin:18px 0}
.status:empty{display:none}
.grid{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:28px 20px}
.card{display:flex;flex-direction:column;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.card .plate{aspect-ratio:1;border-radius:var(--radius-m)}
.card h3{margin:12px 0 2px;font-size:19px;font-weight:600;line-height:1.25}
.card .meta{margin:0;color:var(--ink-soft);font-size:15px}
.card .from{margin:6px 0 0;font-weight:600;font-size:18px}
.card:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.plate{background:
  radial-gradient(circle at 1px 1px,rgba(29,47,77,.07) 1px,transparent 1.4px) 0 0/9px 9px,
  var(--plate);
 display:grid;place-items:center;overflow:hidden}
.plate img{width:100%;height:100%;object-fit:contain}
.plate .none{color:var(--ink-soft);font-size:14px}
.empty{grid-column:1/-1;padding:36px 0;max-width:52ch}
.empty p{margin:0 0 16px;font-size:18px}

/* como pedir */
.how{max-width:1240px;margin:0 auto;padding:40px var(--gutter) 64px}
.steps{margin:20px 0 0;padding:0;list-style:none;counter-reset:s;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px 32px}
.steps li{counter-increment:s;position:relative;padding-top:52px;max-width:36ch;color:var(--ink-soft)}
.steps li::before{content:counter(s);position:absolute;top:0;left:0;font-weight:800;font-size:40px;line-height:1;
 background:linear-gradient(100deg,var(--cobalt),var(--magenta));-webkit-background-clip:text;background-clip:text;color:transparent}
.steps strong{color:var(--ink);font-weight:600}

/* rodapé */
.foot{border-top:1px solid var(--line);padding:32px 0 40px;width:calc(min(1240px,100%) - 2*var(--gutter));margin:0 auto;display:grid;gap:12px;justify-items:start}
.foot address{font-style:normal;color:var(--ink-soft);display:grid;gap:4px}
.foot a{color:var(--ink)}
.small{font-size:14px;color:var(--ink-soft);margin:0}

/* produto */
dialog{border:0;padding:0;border-radius:var(--radius-m);width:min(980px,calc(100vw - 24px));max-height:calc(100vh - 24px);color:var(--ink);background:#fff}
dialog::backdrop{background:rgba(29,47,77,.55)}
.sheet{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);position:relative}
.close{position:absolute;top:10px;right:10px;width:42px;height:42px;border-radius:50%;border:0;background:#fff;color:var(--ink);font-size:28px;line-height:1;cursor:pointer;z-index:2;box-shadow:0 0 0 1.5px var(--line)}
.gallery{padding:16px}
.gallery .plate{aspect-ratio:1;border-radius:var(--radius-s);position:relative}
.gallery .plate img[hidden]{display:none}
.gallery .plate .none{position:absolute}
.thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto}
.thumbs button{flex:none;width:64px;height:64px;padding:0;border:2px solid transparent;border-radius:var(--radius-s);background:var(--plate);cursor:pointer;overflow:hidden}
.thumbs button[aria-current="true"]{border-color:var(--cobalt)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.detail{padding:28px 24px 24px;display:flex;flex-direction:column;gap:14px}
.detail .cat{margin:0;color:var(--violet);font-weight:600}
.detail h2{margin:0;font-size:clamp(26px,3vw,34px);line-height:1.1;font-weight:800;padding-right:40px}
.price{margin:0;font-size:28px;font-weight:800}
.price small{font-size:15px;font-weight:500;color:var(--ink-soft)}
.variants{border:0;padding:0;margin:0}
.variants legend{font-weight:600;margin-bottom:8px}
.variants div{display:flex;flex-wrap:wrap;gap:8px}
.variants label{display:block}
.variants input{position:absolute;opacity:0}
.variants span{display:block;padding:9px 14px;border:1.5px solid var(--line);border-radius:var(--radius-s);cursor:pointer;font-size:15px}
.variants input:checked+span{border-color:var(--cobalt);background:#eef2fd;font-weight:600}
.variants input:focus-visible+span{outline:3px solid var(--cobalt);outline-offset:2px}
.qty{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600}
.stepper{display:inline-flex;border:1.5px solid var(--line);border-radius:999px;overflow:hidden}
.stepper button{width:44px;height:44px;border:0;background:#fff;font-size:22px;color:var(--ink);cursor:pointer}
.stepper input{width:60px;border:0;text-align:center;font:inherit;font-size:17px;-moz-appearance:textfield}
.stepper input::-webkit-inner-spin-button{-webkit-appearance:none}
.desc{margin:0;color:var(--ink-soft);white-space:pre-line}
.desc:empty{display:none}

@media (max-width:760px){
 body{font-size:16px}
 .brand img{height:48px}
 .top .btn span{display:none}
 .top .btn{padding:11px}
 .sheet{grid-template-columns:1fr}
 .detail{padding:4px 18px 20px}
 .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
 .card h3{font-size:17px}
}

/* ---------- carrinho ---------- */
.top-actions{display:flex;align-items:center;gap:10px}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{background:#2a4168}
.btn-cart{position:relative;background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}
.btn-cart:hover{box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn-cart .count{min-width:22px;height:22px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;font-size:13px;font-weight:800;color:#fff;
 background:linear-gradient(100deg,var(--violet),var(--magenta))}
.btn-cart .count[hidden]{display:none}
.link-wa{align-self:center;color:var(--wa);font-weight:600;text-underline-offset:3px}
#cart{margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(460px,100vw);border-radius:var(--radius-m) 0 0 var(--radius-m)}
.cart-sheet{display:flex;flex-direction:column;min-height:100%;padding:18px 20px calc(20px + env(safe-area-inset-bottom))}
.cart-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.cart-head h2{margin:0;font-size:26px;font-weight:800}
.cart-head .close{position:static;box-shadow:0 0 0 1.5px var(--line)}
.cart-note{margin:12px 0 0;padding:10px 12px;border-radius:var(--radius-s);background:#fff6e5;color:#7a4b00;font-size:15px}
.cart-note[hidden]{display:none}
.cart-list{list-style:none;margin:0;padding:0}
.cart-item{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.plate.thumb{width:64px;height:64px;border-radius:var(--radius-s)}
.ci-main p{margin:0}
.ci-name{font-weight:600;line-height:1.25}
.ci-var{color:var(--ink-soft);font-size:15px}
.ci-price{font-size:15px;margin-top:2px!important}
.ci-side{display:grid;justify-items:end;gap:6px}
.small-stepper button{width:36px;height:36px;font-size:19px}
.small-stepper input{width:44px;font-size:16px}
.ci-remove,.link-clear{background:none;border:0;padding:4px 0;color:var(--ink-soft);font:inherit;font-size:14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.cart-empty{padding:40px 0;text-align:center}
.cart-empty[hidden],.cart-foot[hidden]{display:none}
.cart-empty p{margin:0 0 16px;font-size:18px;color:var(--ink-soft)}
.cart-foot{margin-top:auto;padding-top:16px;display:grid;gap:12px}
.cart-total{display:flex;justify-content:space-between;align-items:baseline;font-size:18px}
.cart-total strong{font-size:26px;font-weight:800}
.field{display:grid;gap:6px;font-weight:600;font-size:15px}
.field input,.field textarea{font:inherit;font-weight:400;font-size:16px;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--radius-s);color:var(--ink);background:#fff;resize:vertical}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--cobalt);box-shadow:0 0 0 3px rgba(47,91,211,.18)}
.link-clear{justify-self:center}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:50;display:flex;align-items:center;gap:14px;
 max-width:calc(100vw - 24px);padding:12px 14px 12px 18px;border-radius:999px;background:var(--ink);color:#fff;font-size:15px;box-shadow:0 10px 30px rgba(29,47,77,.3)}
.toast[hidden]{display:none}
.toast button{flex:none;border:0;border-radius:999px;padding:8px 12px;background:#fff;color:var(--ink);font:600 14px/1 inherit;font-family:inherit;cursor:pointer}
@media (max-width:760px){
 .top .btn-cart .label{display:none}
 .top .btn-cart{padding:11px 12px}
 #cart{width:100vw;border-radius:0}
 .cart-item{grid-template-columns:56px minmax(0,1fr);}
 .plate.thumb{width:56px;height:56px}
 .ci-side{grid-column:2;grid-template-columns:auto auto;justify-content:space-between;align-items:center;justify-items:start}
}
