/* Breakpoints de referência (usar estes valores literais nos @media):
   Mobile     <= 480    Mobile-h   481 - 768
   Tablet     769 - 834 Tablet-h   835 - 1024
   Laptop     1025-1440 Desktop    >= 1440
   Grid de produtos: 2col (<=768), 3col (769-1023), 4col (>=1024). Container --max:1200. */
:root{
  --rosa:#B5646B; --rosa-esc:#8f4d53; --creme:#F7F2EA; --papel:#fff;
  --carvao:#2B2620; --carvao-2:#6A6255; --linha:#E6DDD0;
  --fonte-display:'Fraunces',Georgia,serif;
  --fonte-ui:'Inter',system-ui,sans-serif;
  --fonte-script:'Sacramento',cursive;
  --r-btn:8px; --r-input:6px; --r-sheet:20px;
  --s-4:4px; --s-8:8px; --s-12:12px; --s-16:16px; --s-24:24px; --s-gap:56px;
  --max:1200px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--fonte-ui);background:var(--creme);color:var(--carvao);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:0;background:none}
:focus-visible{outline:2px solid var(--rosa);outline-offset:2px}
main{max-width:var(--max);margin:0 auto;padding:0 var(--s-16)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-16);padding-bottom:var(--s-gap)}
.card{cursor:pointer}
.card-media{position:relative;aspect-ratio:3/4;background:var(--linha)}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-name{font-size:13px;font-weight:400;margin:var(--s-8) 0 2px}
.card-price{font-size:13px;font-weight:600;color:var(--rosa);margin:0}
.card--off{opacity:.55}
.card--off .card-media img{filter:grayscale(.3)}
.badge{position:absolute;top:8px;left:8px;background:var(--carvao);color:#fff;
  font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:4px 8px}
.erro{color:var(--rosa-esc);padding:var(--s-24) 0}
@media(min-width:769px){.grid{grid-template-columns:repeat(3,1fr);gap:var(--s-24)}}
@media(min-width:1024px){.grid{grid-template-columns:repeat(4,1fr)}}

.chips{display:flex;gap:var(--s-8);overflow-x:auto;padding:var(--s-4) 0 var(--s-16);
  scrollbar-width:none;-ms-overflow-style:none}
.chips::-webkit-scrollbar{display:none}
.chip{white-space:nowrap;font-size:12px;letter-spacing:.3px;padding:0 16px;
  min-height:44px;display:inline-flex;align-items:center;
  border:1px solid var(--linha);border-radius:999px;color:var(--carvao-2);
  transition:background .18s,color .18s,border-color .18s}
.chip--on{background:var(--carvao);color:#fff;border-color:var(--carvao)}

.sheet-scrim{position:fixed;inset:0;background:rgba(43,38,32,.45);opacity:0;
  transition:opacity .28s;z-index:40}
.sheet-scrim.on{opacity:1}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--papel);
  border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding:var(--s-16) var(--s-16) var(--s-24);
  max-width:520px;margin:0 auto;transform:translateY(100%);transition:transform .28s ease-out;
  box-shadow:0 -8px 30px rgba(0,0,0,.18)}
.sheet.on{transform:translateY(0)}
.sheet-close{position:absolute;top:10px;right:14px;font-size:24px;color:var(--carvao-2);line-height:1}
.sheet-handle{width:40px;height:4px;background:var(--linha);border-radius:2px;margin:2px auto var(--s-16)}
.sheet-top{display:flex;gap:var(--s-12);align-items:flex-start}
.sheet-img{width:90px;height:120px;object-fit:cover;background:var(--linha)}
.sheet-title{font-family:var(--fonte-display);font-style:italic;font-weight:400;font-size:22px;margin:0}
.sheet-price{color:var(--rosa);font-weight:600;font-size:16px;margin:6px 0 0}
.sheet-lbl{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--carvao-2);margin:var(--s-16) 0 var(--s-8)}
.sizes{display:flex;gap:var(--s-8);flex-wrap:wrap}
.sz{width:44px;height:44px;display:flex;align-items:center;justify-content:center;
  border:1px solid var(--linha);border-radius:var(--r-input);font-size:13px;
  transition:background .15s,color .15s,border-color .15s}
.sz--on{background:var(--carvao);color:#fff;border-color:var(--carvao)}
.sz--off{text-decoration:line-through;color:var(--linha);cursor:not-allowed}
.reserve-btn{display:block;text-align:center;margin-top:var(--s-24);background:var(--rosa);
  color:#fff;font-weight:600;padding:14px;border-radius:var(--r-btn);
  min-height:44px;transition:background .18s}
.reserve-btn:hover{background:var(--rosa-esc)}
.reserve-btn--off{background:var(--linha);color:var(--carvao-2);cursor:not-allowed}

.announce{background:var(--rosa);color:#fff;text-align:center;font-size:10px;
  letter-spacing:1.5px;text-transform:uppercase;padding:7px var(--s-12)}
.hd{display:flex;align-items:center;justify-content:space-between;
  padding:var(--s-12) var(--s-16);border-bottom:1px solid var(--linha);
  max-width:var(--max);margin:0 auto}
.hd .ic{font-size:16px;color:var(--carvao-2);min-width:44px;min-height:44px}
.hd-icons{display:flex;gap:var(--s-4)}
.logo{display:block;line-height:0}
.logo img{width:40px;height:40px;display:block}
.hero{max-width:var(--max);margin:0 auto;padding:var(--s-24) var(--s-16) var(--s-16)}
.hero-eyebrow{display:flex;align-items:center;gap:10px;width:max-content}
.kicker-rule{width:26px;height:1px;background:var(--rosa);opacity:.5;flex:none}
.kicker{font-size:11px;letter-spacing:3px;text-transform:uppercase;
  font-weight:500;color:var(--rosa-esc);margin:0}
.hero-title{font-family:var(--fonte-display);font-style:italic;font-weight:400;
  font-size:30px;line-height:1.15;margin:var(--s-8) 0 0}
.ft{background:var(--papel);border-top:1px solid var(--linha);text-align:center;
  padding:var(--s-24) var(--s-16);color:var(--carvao-2);font-size:13px;margin-top:var(--s-gap)}
.ft-logo{width:52px;height:52px;display:block;margin:0}
.ft a{color:inherit;text-decoration:none}
/* entrada do grid */
@media(prefers-reduced-motion:no-preference){
  .card{animation:fadeUp .4s ease both}
  .card:nth-child(2){animation-delay:.05s}.card:nth-child(3){animation-delay:.1s}
  .card:nth-child(4){animation-delay:.15s}.card:nth-child(5){animation-delay:.2s}
  .card:nth-child(n+6){animation-delay:.25s}
}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(min-width:768px){.hero-title{font-size:40px}}

.r-input{width:100%;padding:11px 12px;border:1px solid var(--linha);border-radius:var(--r-input);font:inherit;margin-bottom:4px;background:#fff}
.r-erro{color:var(--rosa-esc);font-size:12px;margin:6px 0 0}
.sheet--ok{text-align:center}
.ok-msg{font-size:13px;color:var(--carvao-2);margin:8px 0 16px}

/* ===== header sticky + ícones ===== */
.hd{position:sticky;top:0;z-index:30;background:var(--creme);transition:box-shadow .2s}
.hd.is-stuck{box-shadow:0 1px 0 var(--linha),0 6px 20px -12px rgba(43,38,32,.4)}
.ic{display:inline-flex;align-items:center;justify-content:center}
.ic-burger,.ic-burger::before,.ic-burger::after{content:"";display:block;width:20px;height:1.6px;background:var(--carvao);transition:transform .25s,opacity .2s}
.ic-burger{position:relative}
.ic-burger::before{position:absolute;top:-6px;left:0}
.ic-burger::after{position:absolute;top:6px;left:0}
body.menu-open .ic-burger{background:transparent}
body.menu-open .ic-burger::before{transform:translateY(6px) rotate(45deg)}
body.menu-open .ic-burger::after{transform:translateY(-6px) rotate(-45deg)}

/* ===== busca ===== */
.search-bar{position:sticky;top:57px;z-index:29;background:var(--creme);border-bottom:1px solid var(--linha);
  overflow:hidden;max-height:0;transition:max-height .28s ease}
.search-bar.on{max-height:80px}
.search-inner{display:flex;align-items:center;gap:var(--s-8);max-width:var(--max);margin:0 auto;padding:var(--s-12) var(--s-16)}
.search-input{flex:1;border:0;border-bottom:1px solid var(--linha);background:transparent;font:inherit;
  padding:8px 2px;color:var(--carvao)}
.search-input:focus{outline:none;border-bottom-color:var(--rosa)}
.search-input::placeholder{color:var(--carvao-2);opacity:.7}
.search-x{font-size:22px;color:var(--carvao-2);min-width:32px}
.grid-empty{text-align:center;color:var(--carvao-2);padding:var(--s-24) 0 var(--s-gap);font-family:var(--fonte-display);font-style:italic;font-size:18px}
.grid-empty a{color:var(--rosa);text-decoration:underline;font-family:var(--fonte-ui);font-style:normal;font-size:14px}

/* ===== card hover (desktop) ===== */
@media(hover:hover){
  .card-media{overflow:hidden}
  .card-media img{transition:transform .5s ease}
  .card:not(.card--off):hover .card-media img{transform:scale(1.04)}
  .card:not(.card--off):hover .card-name{color:var(--rosa)}
}

/* ===== drawer / menu (editorial) ===== */
.drawer-scrim{position:fixed;inset:0;background:rgba(43,38,32,.5);opacity:0;transition:opacity .3s;z-index:60}
.drawer-scrim.on{opacity:1}
.drawer{position:fixed;top:0;left:0;bottom:0;z-index:70;width:88%;max-width:360px;background:var(--creme);
  padding:0 0 var(--s-gap);overflow-y:auto;
  transform:translateX(-100%);transition:transform .32s cubic-bezier(.4,0,.1,1);
  box-shadow:18px 0 50px -22px rgba(43,38,32,.55)}
.drawer.on{transform:translateX(0)}
.drawer-top{position:relative;overflow:hidden;padding:28px 22px 22px;
  background:linear-gradient(180deg,rgba(181,100,107,.12),transparent)}
.drawer-glow{position:absolute;top:-34px;right:-12px;width:170px;height:150px;border-radius:999px;
  background:radial-gradient(closest-side,rgba(181,100,107,.30),transparent);filter:blur(26px);pointer-events:none}
.drawer-close{position:absolute;top:14px;right:14px;z-index:2;width:38px;height:38px;border-radius:999px;
  border:1px solid var(--linha);background:var(--papel);color:var(--carvao-2);
  display:inline-flex;align-items:center;justify-content:center;transition:all .18s}
.drawer-close:hover{color:var(--rosa);border-color:var(--rosa)}
.drawer-greet{position:relative;z-index:1;font-family:var(--fonte-script);font-size:46px;color:var(--rosa);line-height:.82;margin:0}
.drawer-tag{position:relative;z-index:1;font-family:var(--fonte-display);font-style:italic;font-size:15px;color:var(--carvao-2);margin:6px 0 0}
.drawer-nav{display:flex;flex-direction:column;padding:6px 22px 0}
.drawer-nav a.dn{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;
  padding:15px 0;border-bottom:1px solid var(--linha);transition:padding-left .2s}
.drawer-nav a.dn:hover,.drawer-nav a.dn.on{padding-left:4px}
.dn-num{font-family:var(--fonte-ui);font-size:11px;letter-spacing:1px;font-weight:600;color:var(--rosa)}
.dn-name{font-family:var(--fonte-display);font-style:italic;font-size:23px;color:var(--carvao);transition:color .18s}
.dn:hover .dn-name,.dn.on .dn-name{color:var(--rosa)}
.dn-arrow{color:var(--rosa);opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s}
.dn:hover .dn-arrow,.dn.on .dn-arrow{opacity:1;transform:translateX(0)}
.drawer-sec{padding:0 22px;margin-top:28px}
.drawer-h{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--rosa);margin:0 0 var(--s-16)}
.drawer-steps{list-style:none;margin:0;padding:0}
.drawer-steps li{display:flex;gap:14px;align-items:flex-start;padding-bottom:16px;position:relative}
.drawer-steps li:not(:last-child)::before{content:"";position:absolute;left:11px;top:24px;bottom:0;width:1px;background:var(--linha)}
.ds-num{flex:0 0 24px;height:24px;border-radius:999px;background:var(--rosa);color:#fff;position:relative;z-index:1;
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}
.ds-txt{font-size:14px;color:var(--carvao-2);padding-top:2px;line-height:1.4}
.drawer-loja-info{font-size:14px;color:var(--carvao-2);line-height:1.7;margin:0 0 var(--s-16)}
.drawer-social{display:flex;gap:10px;margin-bottom:var(--s-16)}
.drawer-cta{display:inline-flex;align-items:center;justify-content:center;background:var(--rosa);color:#fff;
  font-weight:600;font-size:14px;padding:11px 20px;border-radius:999px;transition:background .18s,transform .18s}
.drawer-cta:hover{background:var(--rosa-esc);transform:translateY(-1px)}
@media(prefers-reduced-motion:reduce){
  .drawer,.drawer-scrim,.search-bar,.card-media img,.dn-arrow{transition:none}
}
@media(min-width:768px){.drawer-greet{font-size:52px}}

/* ===== footer (adaptado do componente de referência p/ Editorial Rosé) ===== */
.ft{background:var(--papel);border-top:1px solid var(--linha);color:var(--carvao-2);
  text-align:left;margin-top:var(--s-gap);padding:0}
.ft-grid{max-width:var(--max);margin:0 auto;padding:var(--s-gap) var(--s-16) var(--s-24);
  display:grid;grid-template-columns:1fr;gap:36px}
.ft-col{min-width:0}
.ft-connect{position:relative}
.ft-glow{position:absolute;top:-10px;right:0;width:120px;height:120px;border-radius:999px;
  background:radial-gradient(closest-side,rgba(181,100,107,.22),transparent);filter:blur(24px);
  pointer-events:none;z-index:0}
.ft-connect-h{position:relative;z-index:1;font-family:var(--fonte-display);font-weight:400;
  font-size:28px;line-height:1.1;color:var(--carvao);margin:0 0 var(--s-8)}
.ft-connect-h em{font-style:italic;color:var(--rosa)}
.ft-connect-p{position:relative;z-index:1;font-size:14px;margin:0 0 var(--s-16);max-width:30ch}
.ft a.ft-cta{position:relative;z-index:1;display:inline-flex;align-items:center;gap:8px;
  background:var(--rosa);color:#fff;font-weight:600;font-size:14px;padding:11px 18px;border-radius:999px;
  transition:transform .18s,background .18s}
.ft a.ft-cta:hover{background:var(--rosa-esc);transform:translateY(-1px) scale(1.02);color:#fff}
.ft a.ft-cta svg{flex:0 0 auto;color:#fff}
.ft-h{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--rosa);margin:0 0 var(--s-12)}
.ft-links{display:flex;flex-direction:column;gap:10px}
.ft-links a,.ft-addr a{font-size:14px;color:var(--carvao-2);transition:color .18s}
.ft-links a:hover,.ft-addr a:hover{color:var(--rosa)}
.ft-addr{font-style:normal}
.ft-addr p{margin:0 0 10px;font-size:14px}
.ft-social{display:flex;gap:10px;margin-bottom:var(--s-16)}
.ft-ic{width:40px;height:40px;border-radius:999px;border:1px solid var(--linha);color:var(--carvao-2);
  display:inline-flex;align-items:center;justify-content:center;transition:all .18s}
.ft-ic:hover{border-color:var(--rosa);color:#fff;background:var(--rosa);transform:translateY(-1px)}
.ft-hand{font-family:var(--fonte-display);font-style:italic;font-size:14px;color:var(--carvao-2);margin:0}
.ft-bottom{max-width:var(--max);margin:0 auto;padding:var(--s-16) var(--s-16) var(--s-24);
  border-top:1px solid var(--linha);display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.ft-copy{font-size:12px;color:var(--carvao-2);margin:0}
@media(min-width:481px){.ft-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){
  .ft-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px}
  .ft-bottom{flex-direction:row;justify-content:space-between;text-align:left}
}

/* ===== vitrine no mesmo padrão (hero, grade, cards, sheet) ===== */
.hero{position:relative;overflow:visible}
.hero-glow{position:absolute;top:-24px;right:4px;width:180px;height:150px;border-radius:999px;
  background:radial-gradient(closest-side,rgba(181,100,107,.20),transparent);filter:blur(30px);
  pointer-events:none;z-index:0}
.hero-eyebrow{position:relative;z-index:1}
.hero .kicker,.hero-title,.hero-sub{position:relative;z-index:1}
.hero-title em{font-style:italic;color:var(--rosa)}
.hero-sub{font-size:14px;color:var(--carvao-2);margin:var(--s-12) 0 0;max-width:42ch}

.grid-head{max-width:var(--max);margin:0 auto;display:flex;align-items:baseline;justify-content:space-between;
  gap:var(--s-12);padding:var(--s-8) 0 var(--s-12);border-bottom:1px solid var(--linha)}
.grid-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--rosa);margin:0}
.grid-count{font-family:var(--fonte-display);font-style:italic;font-size:15px;color:var(--carvao-2)}
.grid{padding-top:var(--s-16)}

/* cards elevados */
.card-media{position:relative;aspect-ratio:3/4;background:var(--linha);overflow:hidden}
.card-cta{position:absolute;left:8px;right:8px;bottom:8px;text-align:center;
  background:rgba(181,100,107,.94);color:#fff;font-size:12px;letter-spacing:.4px;padding:9px;border-radius:999px;
  transform:translateY(140%);opacity:0;transition:transform .28s cubic-bezier(.3,0,.2,1),opacity .2s;pointer-events:none}
.card-meta{padding-top:var(--s-8)}
@media(hover:hover){
  .card:not(.card--off):hover .card-cta{transform:translateY(0);opacity:1}
}
@media(hover:none){
  .card:not(.card--off) .card-cta{transform:none;opacity:1}
}

/* sheet: botão avisar (com ícone) + sucesso com glow/saudação */
.reserve-btn.ok-wa{display:flex;align-items:center;justify-content:center;gap:8px}
.reserve-btn.ok-wa svg{flex:0 0 auto}
.sheet--ok{position:relative;overflow:hidden}
.ok-glow{position:absolute;top:-30px;left:50%;transform:translateX(-50%);width:220px;height:120px;border-radius:999px;
  background:radial-gradient(closest-side,rgba(181,100,107,.28),transparent);filter:blur(26px);pointer-events:none}
.ok-greet{position:relative;font-family:var(--fonte-script);font-size:38px;color:var(--rosa);text-align:center;
  line-height:.9;margin:var(--s-8) 0 var(--s-4)}
.ok-msg{text-align:center}
@media(min-width:768px){.hero-sub{font-size:15px}}

/* ===== Galeria (lightbox) ===== */
.galeria-scrim{position:fixed;inset:0;background:rgba(43,38,32,.55);opacity:0;transition:opacity .28s ease;z-index:60}
.galeria-scrim.on{opacity:1}
.galeria{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.98);opacity:0;
  width:min(92vw,440px);background:var(--papel);border-radius:20px;padding:14px 14px 18px;z-index:61;
  box-shadow:0 30px 80px rgba(43,38,32,.28);transition:opacity .28s ease,transform .28s ease}
.galeria.on{transform:translate(-50%,-50%) scale(1);opacity:1}
.galeria-close{position:absolute;right:10px;top:8px;z-index:2;border:0;background:transparent;font-size:26px;line-height:1;color:var(--carvao);cursor:pointer}
.galeria-stage{position:relative;display:flex;align-items:center}
.galeria-viewport{overflow:hidden;border-radius:14px;width:100%;background:var(--linha)}
.galeria-track{display:flex;transition:transform .3s ease}
.galeria-slide{flex:0 0 100%;aspect-ratio:3/4}
.galeria-slide img{width:100%;height:100%;object-fit:cover;display:block}
.galeria-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:38px;height:38px;border-radius:50%;
  border:0;background:rgba(255,255,255,.85);color:var(--carvao);font-size:22px;line-height:1;cursor:pointer;
  box-shadow:0 4px 14px rgba(43,38,32,.18)}
.galeria-prev{left:6px}.galeria-next{right:6px}
.galeria-dots{display:flex;gap:6px;justify-content:center;margin:12px 0 6px}
.galeria-dot{width:7px;height:7px;border-radius:50%;border:0;background:var(--linha);padding:0;cursor:pointer}
.galeria-dot.on{background:var(--rosa)}
.galeria-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}
.galeria-title{font-family:var(--fonte-display);font-size:18px;margin:0}
.galeria-price{color:var(--rosa);font-weight:600;margin:2px 0 0}
.galeria-cta{white-space:nowrap}
@media (prefers-reduced-motion: reduce){
  .galeria,.galeria-scrim,.galeria-track{transition:none}
}

/* ===== Como funciona (home) ===== */
.como-funciona{max-width:var(--max);margin:0 auto;padding:var(--s-gap) var(--s-16) var(--s-24)}
.cf-titulo{font-family:var(--fonte-display);font-style:italic;font-weight:400;font-size:22px;color:var(--carvao);margin:0 0 var(--s-16)}
.cf-passos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:var(--s-16)}
.cf-passo{display:flex;align-items:flex-start;gap:12px}
.cf-num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--rosa);color:#fff;
  font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center}
.cf-txt{font-size:14px;color:var(--carvao-2);line-height:1.5;padding-top:4px}
@media(min-width:768px){
  .cf-passos{grid-template-columns:repeat(3,1fr);gap:var(--s-24)}
  .cf-titulo{font-size:26px}
}

/* ===== Sheet: helper + nota ===== */
.sheet-help{font-size:12px;color:var(--carvao-2);margin:6px 0 0}
.sheet-nota{font-size:12.5px;line-height:1.5;color:var(--carvao-2);background:var(--creme);
  border-radius:12px;padding:10px 12px;margin:var(--s-12) 0 0}
