/* ==========================================================================
   megáfrica, sistema de design da landing de Natal
   Versão 1. Ficheiro base de todas as páginas de v0.21102026/.

   Tipografia: Poppins 600 e 700, embutida em data URI nos @font-face
   abaixo, sem dependência de rede e sem deslocamento de layout.

   Ícones, Font Awesome 6.5.2, por CDN:

   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">

   Estrutura base de uma secção:

   <section class="section section--sand">
     <div class="container">...</div>
   </section>

   Regras do sistema:
   - zero border-radius, zero emojis, zero travessões longos;
   - fundos de secção apenas creme, areia, branco ou verde escuro;
   - padding vertical das secções sempre por padding-top e padding-bottom;
   - movimento definido em tokens e desligado em prefers-reduced-motion.

   Componentes disponíveis: botões, badges, pills, product-card, category-tile,
   editorial-card, feature-card, step-card, quote-card, store-card, faq, modal,
   marquee, countdown, formulários, alert, breadcrumb, page-hero, prose, tabela,
   whatsapp-float, skip-link, utility-bar, site-header, main-nav,
   nav-drawer, site-footer e pay-badge.
   ========================================================================== */

/* Poppins 600 e 700, servidas localmente (assets/fonts, licença OFL).
   Evita a troca de fontes da rede e o deslocamento de layout que provoca. */
@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/poppins-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(data:font/woff2;base64,d09GMgABAAAAAB84AAwAAAAAP0AAAB7nAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGx4cLgZgAIFUCuZ00SoLgzYAATYCJAOGaAQgBYNUB4QLG+oxsxEVbBwgIOPPJaJqM1z2XyTwRMT+UJEwQqs6juMEjIDhGGF92W/7XuEVPuxUcVbbQr8+4ojlO3TVbIQksy3P878/+PY59/0RkQWnWZOEDDcxTTNCkvSGyM0a7WgsNUZNxAIIglKqCtKWqoAFtAOKNBVUFBSNsdSIpSe5Oy8xvb2a5LrntZZS/XxyJcmVtGv5JA4G0wU2ThYdT4t0Zd2aXUOV5Psg/zA5GNCufk/mPTNLqRQ/AkaSZT6w+ZGOxtVM3alPsC1y/Ey2g7B4/P86fddryzmVyy4gDFuVwqwOM8+dnt6zLNnvK+Z+WXFIDjko+5Oc/NMjuWSr5BRha7b0Ty3rMzsp8cY4/anDCDxs3ec/FbaqmlooK6tjCQqB2hmGq8v3juWsm6RdtWxNsAQKg0SQu5c+SwEsJlYst933zC4AvjwB5hlOHImF5VEYdXq1nQjCHbTkpI3QbRqntogX0Ct5EGC/opyImGzYcWFOli8T+xwukIN3gfVW9Iz+fwHoJmtt6wBwE0A360XAOp0cXsDoX4EHtzriyZK0xamXcx1gSR1e55n8XuhKr/fmOuHwaPgmeAIcCU+H8+FH4hMSQhMilMWEAbidO+QdGQaPgsdyGb+pZn4+X5zfnyfmhv9hr7z87uWjtXNrp9dOrR1fO7K2Y21iDXPn7O2V2x8CNy/+t8XzEOAndskH2eU3OtFYAcivDQto7y/Ogxd3blgxAaFdxf29w4P7PIkbITaOm7VW3K/Oqhu4Wz+r3EivHCMFV2XUAHeiOEyXrw0+FfDkUes+vxCGclDu5N0MD9JbZrA2MkQEFY+mPGZYlARkI64A9ZcZBCbYOEdzoD95SK1ZeLvLjs6pvpjQjUlflgXsgP8NX2+GMEux3eOK7snmKGXfUQlXuLvMED28A9pK8rg3DFxroW7oOGTCuoP3deRzu4tl+/jEc0TM9xMOgRdfx5EmLdq82PAojzPco6s23lWR6iY8fjipzoHqj5I5CqGE75PTdVYIDnxoCyNtXLFkDy9hney9+Qzrtn9/EeItsUuD32DswNs8xfD8d1iWqQ5CEWBHLHxivXssBaQBdlLuRBuT+OA4/Pl7zaXg5GXJVrmYLZZOKaVddeCu0BB/wAauXNxRXwnA6XdShpZk/grVBgrNKos75rBlQQqqP7Fkl/dGuj2CJib8OuEYf+6U4+OnMT24P8SqwAZ9b7rb55oD7TNYtzTjGykMSX2c9gyW/+rP1FyF4lcInHY3sPyTyvYaFD98i7POeodgffDBedo9ECiUSmFIkbVmkA/ONonVi5drS6TS0uZXqa47zJU99EPXOSxjrNI96Ahn0DyRWNnwXFuQL78wB03ywaoIS8ugWsqlaQGVDgQdM6JIMnuW8kAsT7MRcvbeotfFqkIsY5Lvr62aP39cRAmvawKNaiJhyYE5bIk1OVsPPYxZ+ZI4cd5pg5TIY2OiXWuVTwgNMTT3sVOcVoTzW+cDrTsgq3SbzZjTWYTvZWYt8A3hPiEeco7OmbXpb6m1Utcz90HlSmZvZnoHKJ7/FNRUlCetlFJgAdO+QjpcOF5FkNbFFjlH8MP0d2HZuJ9o2XfiWZexjeP0ArVO4dkr+DS9xBdfanqeplC+VyeHPs+33YeIuVhkZCJxP5EtEm+Mi9Df8xz1HAqaSIMn4Z8/0IOJQwZGicl7TG6JnAgI0f4wmmR4xJRx/YZAib/hIz8nUxzoG+UT2PjdvcFwkZ+oFu2MYuk48ruqqQj66s13WF7i+G3+Fb+KSuPuNzmtlOlkSEOOJQcbwxFqkda5yXurZsuGckdDOogYe19p1gIUwexhq8giDgh66EPzyGtaDaOwMpsDt2CWo/zIog1TeyvMy068RTakC0wHB1KBqjbIQj9Zz3GsiRwRLKNg5ZrDPLQGyuVGg23pMLCy4tV5kcleR9Vr8IC0WQKhar5PJKbExE6LxyvPaiMGl+gBIe5n1XT/HsUHz7eZOOEfIintGSOCgbI2SshnFwi/lxYlcRh7DeEsUjq13LEXZiOYHoa9YECedzQ/cKDYXmCud1A5P5Dk0UQmktgrxpKJv1xsXux11f/zsYvDCodn/Zq+7+ia25ATkao+i+55RlhOIS7iLYMpd3w6SXvE59g7i+BH2thn4EEKn3p7+7KoeCa6NJopu0YOWOpSwzDU1mX0P3IFiA+yjx30g8hmZx76MxRlr3+FpWyXiNahEDMaxg5EZoFCNzTgSmjG1BUrKS05LOfVzyN4JqKvlXKWWTvWz77CzRGyV0hhrlpxUZBrz44+etaT/nb/afeNPbYPuUAL5i1JK6vOZTnAxa+6mWDtiTVkg6+8Q2L//hUsm6DECmJQMV53UnAr9MaNq5lTk9NvDPKaHzbznFs5fdjU2/71anLy3clCiEJkCVEaU6wVSjTUvVcOzaXwCCOMYHgxfsmtQjj7Yc8iiLXlYGzW381pe7H0ckoJjv+x+UtQwqFaWa+qv49fmqPmyjpSWTY7Fe7wxAkkGW8r65H5NkftujGCPpFhrmw7oyEtUX7O4x6BxtpN5WmPLuoObODgLxxLpVvWV0574BaJNf5bU2ViLEHTxMIhIdm6Gp4+nopeWNWBh108GIUickHdHxiQR4Mi8PhKwoS+hIV4dnduNQTxoWMRls8+gT56MDFyetL6GjxGHr4TkhuAGiws+tkVTWQ+MtN1n0HCgXVz2DJy9MhAobfMsTcynl2dejjvEEu/n7Ro5XR6zoJqoEsp3Stbgg+mklCi7VVYbGFuvUkvpuY75VLrS5LS5aTykH3J+Ntkoji5yXKdz/nQ2G3dgXdNNLQ1ifCemBk3Z/gLZ/zdbedF7vpvR3t8jyfUlDDGirmEZOqHjWw8cQAK72m2BkHw09DgiMfX/0WS5UVgMg7GjtZyO5OTLQ08ZC3cKO9HE6cm3d/Ci4VoSEnN4e9gX2N9eYpboOEpFm8dDWLP8fUWaulqOnmwk1hPb6b3PCtkSGYiPCdpURYv4cJbde5iqn0TqctJDI1GOCo17bFzTVMQQeO7unP6JU+p/j/Vjtn7IOE6bprJrgseTBkn80Mog42dPKT0qbikr0M6fj/4pd1Ckw9DQeuyR1bpEbkpGVTNaV0Y8Epxm3TdbrBZQPdlDMt4mWozLFKaTTZkkJGyO3uxm5a4V0J51xBuX0TrkOKxZIaCO6BolcNeNJQnrhEy7IjgLbzATBfGEmvwqV/fxt1DBQdffZxiCPGxlzMdXi4b/PNy0N3zgu8mfx6YuH4gcsNXvuBXCLBX1vL/7qR136237tPN4ef+ReHbt2zekXiwb4Jz0KvObT61NcxuPpmwtxdwDvraOzfDz13fm+cAdZpcok+HPHPZeVW+rXq3wlkvIS/wHWFIYWKWHCpsr6v0yWXnqn0aq7wL57CY1YuSUFVClgyyhraUHSW/gTg9fDwhfq72OEhqKFIKBEXK7JymvpyumcHlwYHlCaFMTou5nCxjRI0VFQgEqoKcHFWTFRbGdDnHHyIGXS6jgwqpRKNy5TSRszRsKKdOGr+zPRFPyC5LYWUVp6XI4YMgdGMsO3rD12HHj4aEudErJiEntfLAvlHDL4cPajByHC+TboL6wA96c+L+w1asWT0SUGdsRLy5rTZaZwgcAfAPA4lybNube1SLBYy0UDt2eH/MrCkHo0cJxV2pb3dSWU1R5JAxYshcQlWXG9WJJZZaCiO3mtZvBXLkxfd737/o/Pw64NZkU1QJOwqUeTuhMOaD08H3jEN2XEBOaP9gYqLj6LH2j+jy0bEJcahujE4fS6eRZIfo5+n0+b9l2SCxsOvxtfEioHlLLW8wS2100j9EIoULG/Rw9LcZG1tbqmT5IzVGlRjV9JsRZLR319aIDUSyipbFVn3pOcEuFWVSy81kacNIg4dlMPgBjWTEZUpJio22jaPqlDR8WgJ1CKSOWATf7V4tchaNukZ9D39O+AJsUvMPi3PgWEU1hKtl2bqHWxsHGnxLBwd+J2RkiJmsTHYGpvVU/5EPwZ5sWCrEtoB2RymWyqmi0cxSId1Sx8w22ktT97Se37w0aLI1+BZ07zgrZGZkcHlMKotDT8/kZQBPC8wy6l+harkLJGfrqNQiC1mhECQfSSqNkrdiYJZm8fk6B0UqtVP4On4Ws0z/+uJeEnEvEfcRHn8Zt+8TAYNK5LMyMnhZBAqUzgC3d47iWTS905qXiGfryRlGqbWnu3G06ez5buzeWmWFxECnltG63zr9DjWDxaZSWVwaJZPLBMk91+7cIiduTwc6o5zxTvjvOijindz+kZy8fgdYv+mor6rcrDd6ZLd5HsQVluOY2ERsajy2dx1FbaQI9Vdd/JH6YuygsuQNfR59oqZYQv53YKUUS8pWlsilzK46GaR60dOcGpAQHEWLSsLzoqpJrVO9A7ZFi/FSc/tk34BWnBBWWoFqqt9fUPqGYWrw9ydDc7LUxQQoGfMdGtG+SZiM3pIM/uiNxPVO/bu0+9M7nf9Ml6jba+BfIlWz6NQCQ5oQtwQX6nHkXDKTnat4TSqIZRhMObHznctjWNwp0tYLIyDhw7KFnSW65uOOBNOuBhWBwaygkw0CiGysoDMZKmLDrgTzMbtdt7OkbJcB7FvcpyyZN5lK3tyntDxbembkOhx1dQ6npeqLKvC16PhD68NFWOPM8kwjeLrYkHj6jvUOyrUEMD+15ePoLDWNYuALqAYtjaOoLgiS/lHjdAaIStvGJSXVC6JVQ9kCl6WzH22EG8DA4pILnYJ2Dfm4lDjw9WoSS+DG4gN9c32VzmkzutZ1oZBbMA/AVy+ptB+WwXhJPxhXjFKDry0/Whvv7YB0dykZV5Y+Mi9/tNJS377l/TaBHa7M23dcy+J6Z80FkN67S9ULBv2AOLKyaqG0YkFvqFgtk9WuplNMAgHFqKZlZWloEPCTbdLQswDnIFlbn6FqXudacsttoNG1rI91TXh9o/UzK8h2mjqWUivFjS6XbeOlvX1aOEXvnMX3nwo4uj2IG+xa8s5toNM1mZDcIgvfF725pZlhJ+CbGM3gkXcTgVceNIvR4gkdyLjC/o28sAJkpozLYpZa8aLafqN3+Y6w0TQ0LDmWr9/EC1OimHIOnaG20nNA3GLDktglXmoAXy6eEIolPL5YIjwxcrw429nJlMs6mGJn8XFwfvH14qHXi7PvYC5hAGth6f3Fvd1/DP6xGywvzTo3jmx8sy+6LRr8NPtg8MH8DfXt4l2zvwz8Mn+94nYJsC4+XHnqevpoZX6GNc0C3zWn22/W0q7QfRIgKvHNRkebo+mFFnxyJuR742DIPSMwfvii6cDc+AIc3zf2e3j/440d32UBZ1F90j7w+xndfWMjgJu5XY2QkFVGOCsfwYzk7qsgsgSNQm638jQeJeIhUSgOIllEJCZLuKhCmM0iEngIKghM4YkSbqdSye1uFJ4048/JXfdc/kljsRgXMXVwkcniuCwmAjqD5OUjAbgZ6mwTKAz9+siyudODmExIpZBDqkzlBulcZPGASa9oE0CdKlXA5krVpq74jN4bzdtWTujOhu2zIXSnzUjFPKoMzp1bLx/QVyk6BIIupQrq2gzlydt5/PbccZSXlE0jC1gOwD2nPT96PsuWFau3qZvc7XBb2notKCWW4/fJR1JzmC1tgiL7bB2sYnivCEtmSkUS1b4KElMCWoDUzTr3QI4pLhO0VKpZCrmIXI6Akc4VcImue67Xu4uTaUBfM1UlEYjPh+VzMC4MqK4Zv9aHv1JWolCyHMnwbbH9LjCy/PDRObe9iw/OPY14Hga+/l+xSfcA5RSxvb0echE5HD6DweVziFdM+vpgXLyFAhSJU009dVzPyATXCa0/WiTBJ9cJOq1KJoMHvlsEoi6lUtLVJVAoLCzJ65jd1S3IRbRyk1BiijyvIDNTUSCXyzgePHw9+7L2d41ZRvio0EV0KZLGf9Rv5Hc2C4UZJdhTohHiSMHp8rQMQZOI15V/moAWcxFIRDKgRSQSWiKoEFSIv9EPX/snfQrB5TJzwl0Ylwp871uDZ+UnjGSZ0MlfbYgxv3NbFkfn0FPJ0soUXlVzpVd+P9wbjRzeENt+7FLOcYDrjX8ZMVzw07l1sQfgHHvRySP+XBt3aGSo3QbkaMyIYLcqmcSpotLNEshFwAQ420ECSOkcPjDzOfrQZ+hZQM7D7ELP6bp13dsW0KPavaa904Y92j3A0XBYd3j2TMS5sPn6Q9WHZs+GnY8AKnSEDT/jCLsV89Zo93g3+LDxL9tsw2PosW2yAdTteuqPwPjKYOUpsjJVDmTHsDJiffJhPmVJFBIkdpeQ+NQEnzJ/n/yYuBtwjAPKKVPJsLByXxka4f8UrLWM7BoB5Xh/BJqdwRocGPiNuJge/N0SqCS+xF1MgihJHcD6YzNYGDt4UzyY9aoDeHZpKbTJ/WRdQGh0WpYxWFNW7nf3vZFfZ8DL9OAy3fMo0gvrYf5iD7o7ByyW3olub2lTVaGPkq20wFpHamsNUSjQDlVQ1dwdKShmCXMgyD5eLJBRW38/QvgZuoTvE2fV5IfxaPz0ShMJsjY53dVdQX+S0gzp0QsLFzS743xT4AUh4BYzwDH06w80+tlb2wcfMJn/37799TSDMf16qMU/a6HCDZf6ODHxcWrqWiK4tq1Ru8ctgQtb1a4OuYZ8vWEJvD1A2zgLn5+GpqB54D2V7BpzDYfojxS8Xk3hyTk6HF/bXOGmcHnliJDjcZE72fCfSxKLVGwyTT4rpxw/d4QBsTBTA+Fv2xkCYQ8KVRlBWo0yNlY1gf721bFvrczgtw/mS4oWjEZDrNEbKrOhmNgnEW4tL5P9+rJLihHYsnL3XklJlqyKRtfz+XQD3xpZOdaCYKjt8EhCKpnLZpM5qfAvhtuChZY8GYgRYHOl2NS8ntRadS0u8lN0Wg4Om0ex4HgIBAmHIyEQPBzodRQee+/eV3psd2nRsUjv47oC+9mnroH3awHrQw2FomExKWoNlck0A1XNZFE1+0KmsFlVJBLjzREpi8RiZaGo/JQcRcqVYSTeUt5lU+JsnC0U7jPnGxQCBwM3dB06EK2pVReqajS5ebVaumnz1qeFJyWGE/Aeg3siHkzXtl9wvnJebL8o6mDfYP5PAabPHFHGKRqy7/0cGUoJjuPXJsqzIOzrTpP+7ATrhxRMUVZeBm5T5GWPv8WbsEoaT6JgImqVqLCm0NDpyERGXBoyJC8ModCD3xfvG3X37aAEjRlRvlGUlo69Gz5MHCZwuBCDwYU4BCB3yDiylshQu91emk6sMNEVXPANRkKjULMZ9NE8R9RIaKgritVRRARhdXl7NDWBIAYi5hZhGYxiLCGXSiHmFuMYjCIcIZcSg0tEJHmk4dyTkog44EKWHOs1KmDEhxRIYp/a4+yOpf4tSw9bMZxazqX06fsza5iJyaKJYlBexzj5+D4qbV3ub1mWGVA4p9J6t1YOLfd/vt81ZwqnhnMpffT+jrWUibniuRLQQkkeYw9cLZahiB+IjZ8SMGaf+bn250ve1qme5/zu7balJ5bJcv1yNbhgzz0f9Sb1bFO1H5qG3ePbXARzVci3qw3Z6xhwPFt9QZ7HCZyC+OcGoaPNYnE466qO7HfuP1oF7jgnJsbHS0rGJ1wuZ10uT+ncE5NgRjaPaxUWhCvJtCS+u1lbVfd2qlOgV+8ssi7h6xotdEySli2QZHLqoVxRkdKLC7w+wEGQ1bli0VbX8vCg/fqzpWauGgcIhAGG9VsrIOkydHa6UlKHpyvSCO9UcZH+IaY90miejJlTX65RN2lhRQOIJWSiNDaWG5wfK2KmxScGfb53fdIggeVKX+9CAE7uupzDHXk8Mv67L+ci5Zv1JUwdYTWvM+9nNSGjMHgZlNzOZkjcxFXJOmSZ5WimpJHPbpePw33lvEyagrv9xdcFgjOpcPh2QL9lg3QuXFFfXQBDmf7xsPFgegm9JUdVPq0ExPDYh8qMkskucb6iM47XLepsg7Jzbtp7bIlsQWTrj/2f6q0JbG54G5yThJJQqYbYjkA+Q84TKxTKDJD0ewBN/CLH+cp5w7wzM4j8/lmClpEdlGpExGJldv7z+A0pHBZYJSKZleeEkV/dleDzhVEx+Mgv70alIkuIyYFHr4fPTGGzkNeZn8/rbhYKM4spX1a7HrmCk7Y+UknItE9J5YCQi5IlJHAZnRltyKPZhzUPL8KsM+Xyykk39Xxp2cIvLIiLrxDaCJ3FMxYYg0gxZPlHGyCIYkB5ESAr15s2wxLwaOUgDC6GYyTj2fVkjqKz5IHuEew6kjqthsQtD6Ft2Rv9JHw6RcgrffE1F4GSUCgms6ki7yPnOuRyVQaY3zOdr59WTCn04PE2LotI4LHIZFEJRK6Y+ZFL4eFL6yMuDJtwIQIE72SziRH/z/g2HFEi9eWs1fdBBKJGwsgDljvscDugZOd5bnannp6ueaGleXzqqmsIbroX99Re/2J/oi8+s4Q3rZGDptXnn8k3QsmfmYGdJEch5akKFRGso9eKAOHJweWhgWXw9MIjCGM7kZ8wl9nccqYzoUaZD61fF7jyHvmq/Bk6s8XRfMyRYNo5psQzmBW0yXfzr60PXLfyW/nvTaoZTBD1HCzv4ECTgEP+yz1Z63bz2JvCknv3KzTDBf8t/S/47Q77ATsAdRWwnhDAwkKA3A4lxIbs4C5oNaCCDwsWfhFikoZ5/mdig2vnr1jlrzrEN7u458ceMMl8nkGunb+idk+zSgbL5/Hl2vkr8697mue7CkEp5gxDvD0v3sC181c84K/6Yk+zNYbO57nGtfNXXFLMHSuZRMyyhz/nwPMtUHHt/BXn+Ku2882OKB+7lREN85ziDlw7f8XsnmYuz/vDxVsKXJ3BzrPyy47mL5VcZZi3lbwO297nU3Pt/BX7+KuG9jR7UynCAlYl4Nr5K47sabbAlPHtjgTM+gP1+cD6Qtxo/DkPJVee0G5XLAReioO9U9adt2+fFx/AdwbCYPJ7dsLO/7jaDOjZ6e/SDm0rkmfuZJtooA+Oi03D9gZbQ/cl+wYE5O1xsWE77VYp/KeIVXz+C/I6Lf/8yLMZQC69edgkzv/0t65c5dsuQaAbDxzlwLddwOH+QM+dt/j5r1YOLPh8d+ld5TEw7DsTjVTw+S2hT0UB/h/Yhp1fHi8bDd/5SfM2faxD/ojelRC9s7JBqnxBu/SXzN/YcmeKgQWfb0kf8/r/7xbWCAjr4uRc8qxLrnuPdMxbELM0F8ZpboApCz1wdZdDHZT5m6/H+BLgzXsPfgQA76xE/eLlf18eh3058QALcwcQ4Pc5Y4teaLD/0PGO/eWgt/PMtO9v1yOnKk0txHCI7ijKYOb5+Un0AUTuq8FfUWi98bsgzytB3YswnrD5EaL9KDFLKgu2hXCdkdZe8naCmiSxPdLbiBMf2PChKyLvXZrSFDdawhRD2M9Ftwc0AFi/X4AaDmropj+R+XRJnRP4LDxi8d7h4SESq/GEQdebWi1SOeBdxOvHAidgpR6DbDv/7oyYxwb6zNH8wdID4kekmgTx6/3iTYNaAgLAlEuxiBWd6VqmSuf8v4rU0Kco0KFcOySwwL54plkYD5VeG+qTY7eQ39ifT9fg2xN45RPI/J8lFAUYyq0CHPcFdg6to1AlyFRzSjmRqQJJyeM3loXJl2ILg+tBaIBuLC6T/PKUmO6RH6NNqRbiXz02Rtod4AlECoqfe8LzPuv8ib0O0ecQIwVaaArml/eeGwfBKgi3wUGJFOqf/xp61Mt8XFAWOjqvkjTKDdYKA3aX3ivImF1uzU4UUjuY4KAkiPLPL4eetEO8C8pD8SBxnSJqG2DA7sLNJLIe6YSXOMWKT5jkMPn5h28uReEz5ONt8lok7nCBFwLzXoZby82KoHxI1/OwyYSzFRPLAx9x1o9sG0olHBbbiBvgbePWaeI9BDdvcAcsQs+D27Qo4G6f10e7gTtytLtA80d7YNFUep4+2osf1dHe4KjhwFseOFvT+7j1bNKlCcxXaWTahZtyIJUtXCt5q0aGVqmcQDYF63h4PRPLTxVOvmp1TLisaumQpcLDIxMrICCXAc7QKBw/Wpnylejy0hNn0KyWViMr5T3QVtWpQat+OCL8ewauYOdcrQB+CDdK2FynVcQZjmZSo7b4lHMyPs0GpsdMs8pbvopVXQVfZfSsMFroNGpFuW5yaO5eznN+GNFl3wbSDB5/BfS/AV8wfvytEyBQkGAhQoUJFyHSelE2iBYj1kabxIGLlyBREgQklGRoGCmwcFKlwSMgIiGjoKKhY0iXIRMTSxY2Di4ePoiAkIiYhFS2HDJyCrny5CugpFKoSLESpcqUq6CmoY2n3Xr1uWjWz/qNGvaWg/bEy1bX9ZjyxFMj8TboA7c9Nu+Q557504KjPvGxYypVGafzmWqrPvWVz33hS7/Q+87XvnGcwR8mXPa9Hxg99KshZiY16tSy2MmqQb0biUs/D3YOD7RwatVms3b/scsWHTp1eeQ3S6444WR8XHXLNaecds55HzrjrI8MOOySd1yIL5ffA5sOPCI72513qE/zOSY8noNvfPyduBSdyOV5/u9ivKYTiQQK) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/poppins-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Poppins";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(data:font/woff2;base64,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) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Hanken Grotesk 300, 400, 600 e 700, servidas localmente (assets/fonts,
   licença OFL). Fonte de corpo da marca, sem dependência de rede. */
@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-300-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-300-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+1E9E, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+1E9E, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-600-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-600-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+1E9E, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Hanken Grotesk";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/hanken-grotesk-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+1E9E, U+FEFF, U+FFFD;
}

/* Enquanto as fontes da marca carregam, o conteúdo fica invisível.
   Assim a troca de métricas da fonte de sistema para a Poppins acontece
   sem deslocamento visível de layout. Sem JavaScript, nada é escondido. */
html.fonts-pending main {
  opacity: 0;
}

.site-loader {
  display: none;
}

html.loader-active .site-loader {
  position: fixed;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  background: var(--red-dark);
  color: var(--white);
}

.site-loader__inner {
  display: grid;
  justify-items: center;
  gap: 20px;
  padding: 24px;
}

.site-loader__inner img {
  display: block;
  width: 191px;
  height: auto;
}

.site-loader__bar {
  width: 191px;
  height: 2px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.3);
}

.site-loader__bar::after {
  content: "";
  display: block;
  width: 38%;
  height: 100%;
  background: var(--white);
  animation: loader-progress 1.1s ease-in-out infinite alternate;
}

.site-loader__text {
  font-family: var(--font-body);
  font-size: 0.75rem;
}

@keyframes loader-progress {
  to { transform: translateX(165%); }
}

@media (prefers-reduced-motion: reduce) {
  .site-loader__bar::after { animation: none; }
}

@media print {
  html.loader-active .site-loader { display: none; }
}

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */

:root {
  /* Marca */
  --red: #ed1c24;
  --red-action: #e01b22;
  --red-dark: #911a1a;
  --green: #0b5d3b;
  --green-dark: #073d27;
  --gold: #e6a700;
  --gold-soft: #f5c451;
  --paper: #faf7f2;
  --cream: var(--paper);
  --sand: #f2eee7;
  --ink: #111111;
  --ink-soft: #4a4a4a;
  --white: #ffffff;

  /* Semântica */
  --bg: var(--cream);
  --text: var(--ink);
  --text-muted: var(--ink-soft);
  --line: rgba(17, 17, 17, 0.14);
  --line-strong: rgba(17, 17, 17, 0.3);
  --line-invert: rgba(250, 247, 242, 0.24);
  --invert-muted: rgba(250, 247, 242, 0.8);
  --focus: var(--red-dark);

  /* Tipografia */
  --font-display: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-body: "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* Espaço */
  --gutter: 24px;
  --container: 1152px;
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;
  --space-9: 6rem;

  /* Elevação. Borda para estrutura, sombra para profundidade. */
  --shadow-1: 0 2px 0 rgba(17, 17, 17, 0.18);
  --shadow-2: 0 2px 4px rgba(17, 17, 17, 0.06), 0 14px 28px -18px rgba(17, 17, 17, 0.45);
  --shadow-3: 0 6px 12px rgba(17, 17, 17, 0.08), 0 30px 50px -24px rgba(17, 17, 17, 0.5);

  /* Movimento */
  --dur-1: 150ms;
  --dur-2: 250ms;
  --dur-3: 500ms;
  --dur-4: 700ms;
  --ease: cubic-bezier(0.2, 0, 0, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);

  /* Camadas */
  --z-float: 80;
  --z-header: 90;
  --z-overlay: 110;
  --z-drawer: 120;
  --z-modal: 200;
  --z-skip: 300;
}

/* --------------------------------------------------------------------------
   2. Reset e base
   -------------------------------------------------------------------------- */

*,
*::before,
*::after {
  box-sizing: border-box;
  border-radius: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scrollbar-color: var(--red) var(--sand);
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
svg,
video,
canvas {
  display: block;
  max-width: 100%;
  height: auto;
}

img {
  outline: 1px solid rgba(17, 17, 17, 0.1);
  outline-offset: -1px;
}

button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

button {
  cursor: pointer;
}

a {
  color: inherit;
  text-decoration: none;
}

p {
  margin: 0 0 1em;
  text-wrap: pretty;
}

ul,
ol {
  margin: 0 0 1em;
  padding-left: 1.2em;
}

li {
  margin-bottom: 0.35em;
}

hr {
  border: 0;
  border-top: 1px solid var(--line);
  margin: var(--space-6) 0;
}

/* Foco sempre visível e com contraste nos dois sentidos. */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

:focus:not(:focus-visible) {
  outline: none;
}

::selection {
  background: var(--gold);
  color: var(--ink);
}

[hidden] {
  display: none !important;
}

/* --------------------------------------------------------------------------
   3. Tipografia
   -------------------------------------------------------------------------- */

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0 0 0.5em;
  font-family: var(--font-display);
  font-weight: 700;
  color: inherit;
  text-wrap: balance;
}

h1 {
  font-size: clamp(2.6rem, 6vw, 5rem);
  line-height: 0.98;
  letter-spacing: -0.03em;
}

h2 {
  font-size: clamp(1.9rem, 3.6vw, 3.2rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
}

h3 {
  font-size: clamp(1.15rem, 1.6vw, 1.5rem);
  line-height: 1.18;
  letter-spacing: -0.01em;
}

h4 {
  font-size: 1.05rem;
  line-height: 1.3;
  letter-spacing: -0.005em;
}

h5 {
  font-size: 0.95rem;
  line-height: 1.35;
}

h6 {
  font-size: 0.82rem;
  line-height: 1.4;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  color: var(--red-dark);
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}

.eyebrow::before {
  content: "";
  width: 28px;
  height: 2px;
  flex: none;
  background: currentColor;
}

.eyebrow--gold {
  color: var(--gold-soft);
}

.eyebrow--plain::before {
  display: none;
}

.lead {
  max-width: 62ch;
  margin: 0 0 1em;
  color: var(--text-muted);
  font-size: clamp(1.05rem, 1.4vw, 1.2rem);
  line-height: 1.55;
}

.small,
small {
  font-size: 0.82rem;
  line-height: 1.5;
}

strong,
b {
  font-weight: 700;
}

/* --------------------------------------------------------------------------
   4. Layout
   -------------------------------------------------------------------------- */

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

.section {
  --section-y: 64px;
  padding-top: var(--section-y);
  padding-bottom: var(--section-y);
}

.section--tight {
  --section-y: 40px;
}

.section--flush-top {
  padding-top: 0;
}

.section--flush-bottom {
  padding-bottom: 0;
}

.section--sand {
  background: var(--sand);
}

.section--cream {
  background: var(--cream);
}

.section--white {
  background: var(--white);
}

.section--green {
  --focus: var(--cream);
  background: var(--green-dark);
  color: var(--cream);
}

.section--red {
  --focus: var(--cream);
  background: var(--red-action);
  color: var(--white);
}

.section--ink {
  --focus: var(--cream);
  background: var(--ink);
  color: var(--cream);
}

.section--green .lead,
.section--red .lead,
.section--ink .lead {
  color: var(--invert-muted);
}

.section--green .eyebrow,
.section--ink .eyebrow {
  color: var(--gold-soft);
}

.section--red .eyebrow {
  color: var(--paper);
}

.section--green .eyebrow--gold::before,
.section--red .eyebrow--gold::before,
.section--ink .eyebrow--gold::before {
  background: var(--gold);
}

.section--rule {
  border-top: 1px solid var(--line);
}

.section-head {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 760px;
  margin-bottom: 32px;
}

.section-head > :last-child {
  margin-bottom: 0;
}

.section-head .lead {
  margin-bottom: 0;
}

.section-head__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.section-head--center {
  align-items: center;
  margin-inline: auto;
  text-align: center;
}

/* Grelhas. Todas móvel primeiro, sem larguras rígidas. */
.grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}

.grid > * {
  min-width: 0;
}

.grid--2,
.grid--3,
.grid--4 {
  grid-template-columns: minmax(0, 1fr);
}

.grid--products {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.grid--categories {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.grid--sidebar {
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
}

/* Pilha e grupo, para conteúdo escrito por outros agentes. */
.stack > * + * {
  margin-top: var(--space-4);
}

.cluster {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.text-center {
  text-align: center;
}

.mx-auto {
  margin-inline: auto;
}

/* --------------------------------------------------------------------------
   5. Utilitários
   -------------------------------------------------------------------------- */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.skip-link {
  position: fixed;
  top: 0;
  left: 16px;
  z-index: var(--z-skip);
  padding: 12px 18px;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--font-display);
  font-weight: 600;
  transform: translateY(-120%);
  transition: transform var(--dur-1) var(--ease);
}

.skip-link:focus {
  transform: translateY(0);
}

/* Revelação no scroll. O estado oculto só existe quando o JS arrancou,
   para que sem JavaScript todo o conteúdo continue visível. */
html.js .reveal {
  opacity: 0;
  transform: translateY(16px);
}

html.js .reveal.is-visible {
  opacity: 1;
  transform: none;
  transition:
    opacity var(--dur-3) var(--ease) var(--reveal-delay, 0ms),
    transform var(--dur-3) var(--ease) var(--reveal-delay, 0ms);
}

.reveal--delay-1 {
  --reveal-delay: 100ms;
}

.reveal--delay-2 {
  --reveal-delay: 200ms;
}

.reveal--delay-3 {
  --reveal-delay: 300ms;
}

/* --------------------------------------------------------------------------
   6. Botões
   -------------------------------------------------------------------------- */

.btn {
  --btn-bg: transparent;
  --btn-fg: var(--ink);
  --btn-bd: var(--ink);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 12px 22px;
  border: 2px solid var(--btn-bd);
  background: var(--btn-bg);
  color: var(--btn-fg);
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  transition:
    background-color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease),
    color var(--dur-1) var(--ease),
    box-shadow var(--dur-1) var(--ease),
    transform var(--dur-1) var(--ease-out);
}

.btn:not(:disabled):not([aria-disabled="true"]):active {
  transform: scale(0.96);
}

.btn:disabled,
.btn[aria-disabled="true"] {
  opacity: 0.55;
  cursor: not-allowed;
}

.btn i {
  font-size: 1em;
  line-height: 1;
}

.btn--primary {
  --btn-bg: var(--red-action);
  --btn-fg: var(--white);
  --btn-bd: var(--red-action);
  box-shadow: inset 0 -3px 0 rgba(17, 17, 17, 0.16);
}

.btn--secondary {
  --btn-bg: transparent;
  --btn-fg: var(--ink);
  --btn-bd: var(--ink);
}

.btn--light {
  --btn-bg: var(--white);
  --btn-fg: var(--ink);
  --btn-bd: var(--white);
}

.btn--outline {
  --btn-bg: transparent;
  --btn-fg: var(--cream);
  --btn-bd: var(--cream);
  --focus: var(--cream);
}

.btn--block {
  width: 100%;
}

.btn--sm {
  min-height: 42px;
  padding: 9px 14px;
  font-size: 0.82rem;
}

.btn--lg {
  min-height: 56px;
  padding: 16px 28px;
  font-size: 1rem;
}

@media (hover: hover) {
  .btn--primary:hover {
    --btn-bg: var(--red-dark);
    --btn-bd: var(--red-dark);
    box-shadow: inset 0 -3px 0 rgba(17, 17, 17, 0.24);
  }

  .btn--secondary:hover {
    --btn-bg: var(--ink);
    --btn-fg: var(--cream);
  }

  .btn--light:hover {
    --btn-bg: var(--sand);
    --btn-bd: var(--sand);
  }

  .btn--outline:hover {
    --btn-bg: var(--cream);
    --btn-fg: var(--ink);
  }
}

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 24px;
  padding-bottom: 2px;
  border-bottom: 2px solid currentColor;
  color: var(--red-dark);
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.3;
}

.link-arrow i {
  font-size: 0.8em;
  transition: transform var(--dur-1) var(--ease);
}

.link-arrow--light {
  color: var(--gold-soft);
}

@media (hover: hover) {
  .link-arrow:hover i {
    transform: translateX(4px);
  }
}

/* --------------------------------------------------------------------------
   7. Badges, pills e selos
   -------------------------------------------------------------------------- */

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border: 1px solid transparent;
  background: var(--gold);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

.badge i {
  font-size: 0.9em;
}

.badge--red {
  background: var(--red-action);
  color: var(--white);
}

.badge--green {
  background: var(--green);
  color: var(--white);
}

.badge--ink {
  background: var(--ink);
  color: var(--cream);
}

.badge--cream {
  background: var(--cream);
  color: var(--ink);
}

.badge--outline {
  background: transparent;
  border-color: var(--line-strong);
  color: var(--ink);
}

.badge--outline-light {
  background: transparent;
  border-color: var(--line-invert);
  color: var(--cream);
}

.pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid var(--line-strong);
  background: var(--white);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
  transition:
    background-color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease),
    color var(--dur-1) var(--ease);
}

.pill__count {
  color: var(--ink-soft);
  font-size: 0.75em;
  font-weight: 600;
}

.pill[aria-pressed="true"],
.pill.is-active {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--cream);
}

.pill[aria-pressed="true"] .pill__count,
.pill.is-active .pill__count {
  color: rgba(250, 247, 242, 0.72);
}

@media (hover: hover) {
  .pill:hover {
    border-color: var(--ink);
  }
}

.seal {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 10px 10px;
  border: 0;
  background: var(--gold);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 5px), 50% 100%, 0 calc(100% - 5px));
}

.seal--red {
  background: var(--red-action);
  color: var(--white);
}

.seal--green {
  background: var(--green);
  color: var(--white);
}

.seal--ink {
  background: var(--ink);
  color: var(--gold-soft);
}

/* --------------------------------------------------------------------------
   8. Cartão de produto
   -------------------------------------------------------------------------- */

.product-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
  transition:
    transform var(--dur-2) var(--ease),
    border-color var(--dur-2) var(--ease),
    box-shadow var(--dur-2) var(--ease);
}

.product-card__media {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--sand);
}

.product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-3) var(--ease-out);
}

.product-card__seal {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 2;
  max-width: calc(100% - 62px);
  white-space: normal;
  transform: rotate(-1.5deg);
}

.product-card__wish {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line-strong);
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink);
  transition:
    background-color var(--dur-1) var(--ease),
    color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease);
}

.product-card__wish[aria-pressed="true"] {
  border-color: var(--red-action);
  background: var(--red-action);
  color: var(--white);
}

.product-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 6px;
  padding: 14px;
}

.product-card__brand {
  margin: 0;
  color: var(--ink-soft);
  font-family: var(--font-display);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.product-card__name {
  margin: 0;
  min-height: 2.5em;
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.product-card__name a {
  text-decoration: none;
}

.product-card__desc {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.86rem;
  line-height: 1.45;
}

.product-card__prices {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 10px;
  margin-top: 4px;
}

.price {
  color: var(--red);
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.price__was {
  color: var(--ink-soft);
  font-size: 0.82rem;
  font-variant-numeric: tabular-nums;
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  white-space: nowrap;
}

.price__note {
  display: block;
  margin-top: 2px;
  color: var(--ink-soft);
  font-size: 0.74rem;
}

.product-card__ref {
  color: var(--ink-soft);
  font-size: 0.7rem;
  letter-spacing: 0.04em;
}

.product-card__actions {
  display: grid;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
}

.product-card__actions .btn {
  min-height: 42px;
  padding: 9px 12px;
  font-size: 0.8rem;
  white-space: normal;
}

@media (hover: hover) {
  .product-card:hover {
    transform: translateY(-3px);
    border-color: var(--line-strong);
    box-shadow: var(--shadow-2);
  }

  .product-card:hover .product-card__media img {
    transform: scale(1.04);
  }

  .product-card__name a:hover {
    color: var(--red-dark);
  }
}

/* --------------------------------------------------------------------------
   9. Azulejo de categoria
   -------------------------------------------------------------------------- */

.category-tile {
  position: relative;
  display: block;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--ink);
  color: var(--cream);
  border: 1px solid rgba(17, 17, 17, 0.22);
}

.category-tile img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-4) var(--ease-out);
}

.category-tile::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(17, 17, 17, 0) 34%, rgba(17, 17, 17, 0.78) 100%);
}

.category-tile__body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 4px;
  height: 100%;
  padding: 16px;
}

.category-tile__count {
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.category-tile__title {
  margin: 0;
  color: var(--white);
  font-size: clamp(1.1rem, 2vw, 1.5rem);
  line-height: 1.1;
}

.category-tile__arrow {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  background: var(--cream);
  color: var(--ink);
  transition:
    background-color var(--dur-1) var(--ease),
    transform var(--dur-2) var(--ease);
}

@media (hover: hover) {
  .category-tile:hover img {
    transform: scale(1.04);
  }

  .category-tile:hover .category-tile__arrow {
    background: var(--gold);
    transform: translate(2px, -2px);
  }
}

/* --------------------------------------------------------------------------
   10. Cartão editorial
   -------------------------------------------------------------------------- */

.editorial-card {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
}

.editorial-card__media {
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: var(--sand);
}

.editorial-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--dur-4) var(--ease-out);
}

.editorial-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  padding: 20px;
}

.editorial-card__body > :last-child {
  margin-bottom: 0;
}

.editorial-card__title {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.2;
}

.editorial-card__text {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.5;
}

.editorial-card__link {
  margin-top: auto;
  padding-top: 10px;
}

@media (hover: hover) {
  .editorial-card:hover .editorial-card__media img {
    transform: scale(1.04);
  }
}

/* --------------------------------------------------------------------------
   11. Cartão de benefício
   -------------------------------------------------------------------------- */

.feature-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px;
  background: var(--white);
  border: 1px solid var(--line);
  border-top: 3px solid var(--red);
  color: var(--ink);
}

.feature-card__icon {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  margin-bottom: 4px;
  background: var(--gold);
  color: var(--ink);
  font-size: 1.15rem;
}

.feature-card__title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.25;
}

.feature-card__text {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.5;
}

.feature-card--dark {
  background: rgba(250, 247, 242, 0.05);
  border-color: var(--line-invert);
  border-top-color: var(--gold);
  color: var(--cream);
}

.feature-card--dark .feature-card__text {
  color: var(--invert-muted);
}

/* --------------------------------------------------------------------------
   12. Cartão de passo
   -------------------------------------------------------------------------- */

.step-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 24px;
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
}

.step-card__num {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 6px;
  background: var(--red-action);
  color: var(--white);
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1;
}

.step-card__title {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.25;
}

.step-card__text {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.92rem;
  line-height: 1.5;
}

/* --------------------------------------------------------------------------
   13. Cartão de citação
   -------------------------------------------------------------------------- */

.quote-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 5px solid var(--gold);
  color: var(--ink);
}

.quote-card__mark {
  color: var(--gold);
  font-size: 1.35rem;
  line-height: 1;
}

.quote-card__text {
  margin: 0;
  color: var(--ink);
  font-size: 1.02rem;
  line-height: 1.55;
}

.quote-card__footer {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.quote-card__avatar {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: none;
  background: var(--ink);
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.quote-card__name {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1.3;
}

.quote-card__role {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.3;
}

/* --------------------------------------------------------------------------
   14. Cartão de loja
   -------------------------------------------------------------------------- */

.store-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 22px;
  background: var(--white);
  border: 1px solid var(--line);
  color: var(--ink);
}

.store-card--hq {
  border-top: 4px solid var(--red);
}

.store-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.store-card__title {
  margin: 0;
  font-size: 1.1rem;
  line-height: 1.2;
}

.store-card__list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.9rem;
}

.store-card__list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  color: var(--ink-soft);
  line-height: 1.5;
}

.store-card__list i {
  width: 16px;
  flex: none;
  margin-top: 3px;
  color: var(--red-dark);
  text-align: center;
}

.store-card__list a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding-block: 1px;
  color: var(--ink);
  border-bottom: 1px solid var(--line-strong);
}

.store-card__foot {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid var(--line);
}

/* --------------------------------------------------------------------------
   15. FAQ e acordeão
   -------------------------------------------------------------------------- */

.faq {
  border-top: 1px solid var(--line-strong);
}

.faq-item {
  border-bottom: 1px solid var(--line-strong);
}

.faq-q {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  margin: 0;
  padding: 20px 0;
  border: 0;
  background: none;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
  list-style: none;
  cursor: pointer;
}

.faq-q::-webkit-details-marker {
  display: none;
}

.faq-q:focus-visible {
  outline-offset: 4px;
}

.faq-icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: none;
  border: 1px solid var(--line-strong);
  color: var(--ink);
  transition:
    background-color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease),
    color var(--dur-1) var(--ease);
}

.faq-icon::before,
.faq-icon::after {
  content: "";
  position: absolute;
  background: currentColor;
}

.faq-icon::before {
  width: 12px;
  height: 2px;
}

.faq-icon::after {
  width: 2px;
  height: 12px;
  transition: transform var(--dur-2) var(--ease);
}

.faq-q[aria-expanded="true"] .faq-icon,
.faq-item[open] .faq-icon {
  border-color: var(--ink);
  background: var(--ink);
  color: var(--cream);
}

.faq-q[aria-expanded="true"] .faq-icon::after,
.faq-item[open] .faq-icon::after {
  transform: scaleY(0);
}

.faq-a {
  max-width: 68ch;
  padding: 0 0 22px;
  color: var(--ink-soft);
  font-size: 0.95rem;
}

.faq-a > :last-child {
  margin-bottom: 0;
}

@media (hover: hover) {
  .faq-q:hover .faq-icon {
    border-color: var(--ink);
  }
}

/* --------------------------------------------------------------------------
   16. Modal
   -------------------------------------------------------------------------- */

.modal {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: grid;
  place-items: center;
  padding: 16px;
}

.modal__backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: rgba(17, 17, 17, 0.64);
  cursor: pointer;
}

.modal__dialog {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  max-height: min(86vh, 760px);
  padding: 32px 24px;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--cream);
  border-top: 6px solid var(--gold);
  box-shadow: var(--shadow-3);
  color: var(--ink);
}

.modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-strong);
  background: var(--white);
  color: var(--ink);
  font-size: 1rem;
}

.modal__title {
  margin: 0 32px 8px 0;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  line-height: 1.1;
}

.modal__lead {
  margin: 0 0 20px;
  color: var(--ink-soft);
}

.modal__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

@media (prefers-reduced-motion: no-preference) {
  .modal:not([hidden]) .modal__dialog {
    animation: mgf-modal-in var(--dur-2) var(--ease-out) both;
  }
}

@keyframes mgf-modal-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   17. Marquee
   -------------------------------------------------------------------------- */

.marquee {
  --marquee-duration: 36s;
  position: relative;
  overflow: hidden;
  background: var(--ink);
  border-top: 1px solid var(--line-invert);
  border-bottom: 1px solid var(--line-invert);
  color: var(--cream);
}

.marquee__track {
  display: flex;
  width: max-content;
  animation: mgf-marquee var(--marquee-duration) linear infinite;
}

.marquee__group {
  display: flex;
  flex: none;
  align-items: center;
}

.marquee__item {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 14px 26px;
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}

.marquee__sep {
  color: var(--gold);
  font-size: 0.9rem;
}

.marquee:hover .marquee__track,
.marquee:focus-within .marquee__track {
  animation-play-state: paused;
}

@keyframes mgf-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}

/* --------------------------------------------------------------------------
   18. Contagem decrescente
   -------------------------------------------------------------------------- */

.countdown {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 6px;
}

.countdown__unit {
  min-width: 58px;
  padding: 10px 8px 9px;
  background: var(--ink);
  border-bottom: 3px solid var(--gold);
  color: var(--cream);
  text-align: center;
}

.countdown__value {
  display: block;
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.countdown__label {
  display: block;
  margin-top: 6px;
  color: var(--gold-soft);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1;
  text-transform: uppercase;
}

.countdown__sep {
  align-self: center;
  color: var(--ink-soft);
  font-family: var(--font-display);
  font-weight: 700;
}

.countdown--light .countdown__unit {
  background: var(--cream);
  color: var(--ink);
}

.countdown--light .countdown__label {
  color: var(--red-dark);
}

.countdown--light .countdown__sep {
  color: rgba(250, 247, 242, 0.6);
}

/* --------------------------------------------------------------------------
   19. Formulários
   -------------------------------------------------------------------------- */

.form {
  display: grid;
  gap: 16px;
  min-width: 0;
}

.form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  min-width: 0;
}

.form-field {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.label {
  display: block;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.3;
}

.label__req {
  color: var(--red-dark);
}

.input,
.select,
.textarea {
  width: 100%;
  min-width: 0;
  min-height: 48px;
  padding: 12px 14px;
  border: 1px solid var(--line-strong);
  background: var(--white);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.4;
  transition:
    border-color var(--dur-1) var(--ease),
    box-shadow var(--dur-1) var(--ease);
}

.input::placeholder,
.textarea::placeholder {
  color: var(--ink-soft);
  opacity: 1;
}

.input:hover,
.select:hover,
.textarea:hover {
  border-color: var(--ink-soft);
}

.input:focus,
.select:focus,
.textarea:focus {
  border-color: var(--ink);
}

.input[aria-invalid="true"],
.select[aria-invalid="true"],
.textarea[aria-invalid="true"] {
  border-color: var(--red-dark);
  border-width: 2px;
  padding: 11px 13px;
}

.select {
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%2317181c' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  appearance: none;
}

.textarea {
  min-height: 140px;
  resize: vertical;
}

.field-hint {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.78rem;
  line-height: 1.45;
}

.field-error {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0;
  color: var(--red-dark);
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
}

.field-error i {
  margin-top: 2px;
}

.checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--ink);
  font-size: 0.88rem;
  line-height: 1.5;
}

.checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: none;
  margin: 3px 0 0;
  accent-color: var(--red);
}

.checkbox a {
  color: var(--red-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

/* --------------------------------------------------------------------------
   20. Alerta
   -------------------------------------------------------------------------- */

.alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-left: 4px solid var(--ink);
  background: var(--white);
  color: var(--ink);
}

.alert > i {
  margin-top: 3px;
  color: var(--ink);
}

.alert__body {
  min-width: 0;
}

.alert__title {
  margin: 0 0 2px;
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 600;
  line-height: 1.3;
}

.alert__text {
  margin: 0;
  color: var(--ink-soft);
  font-size: 0.9rem;
  line-height: 1.5;
}

.alert__text a {
  color: var(--red-dark);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.alert--success {
  border-left-color: var(--green);
}

.alert--success > i {
  color: var(--green);
}

.alert--warning {
  border-left-color: var(--gold);
  background: var(--cream);
}

.alert--warning > i {
  color: var(--ink);
}

.alert--error {
  border-left-color: var(--red);
}

.alert--error > i {
  color: var(--red-dark);
}

/* --------------------------------------------------------------------------
   21. Breadcrumb
   -------------------------------------------------------------------------- */

.breadcrumb {
  font-size: 0.8rem;
  line-height: 1.4;
}

.breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumb li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: var(--ink-soft);
}

.breadcrumb li + li::before {
  content: "/";
  color: var(--line-strong);
  font-weight: 700;
}

.breadcrumb a {
  color: var(--ink-soft);
  border-bottom: 1px solid transparent;
}

.breadcrumb a:hover {
  color: var(--red-dark);
  border-bottom-color: currentColor;
}

.breadcrumb [aria-current="page"] {
  color: var(--ink);
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   22. Cabeçalho de página
   -------------------------------------------------------------------------- */

.page-hero {
  padding-top: 40px;
  padding-bottom: 40px;
  background: var(--cream);
  border-bottom: 1px solid var(--line);
}

.page-hero__inner {
  display: grid;
  gap: 14px;
  max-width: 840px;
}

.page-hero__title {
  margin: 0;
}

.page-hero__lead {
  max-width: 62ch;
  margin: 0;
  color: var(--ink-soft);
  font-size: clamp(1.02rem, 1.4vw, 1.15rem);
}

.page-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 8px;
}

.page-hero--sand {
  background: var(--sand);
}

.page-hero--green {
  --focus: var(--cream);
  background: var(--green-dark);
  border-bottom-color: transparent;
  color: var(--cream);
}

.page-hero--green .page-hero__lead {
  color: var(--invert-muted);
}

.page-hero--green .breadcrumb,
.page-hero--green .breadcrumb a,
.page-hero--green .breadcrumb li {
  color: rgba(250, 247, 242, 0.74);
}

.page-hero--green .breadcrumb [aria-current="page"] {
  color: var(--cream);
}

.page-hero--red {
  --focus: var(--cream);
  background: var(--red-action);
  border-bottom-color: transparent;
  color: var(--white);
}

.page-hero--red .page-hero__lead {
  color: rgba(255, 255, 255, 0.86);
}

/* --------------------------------------------------------------------------
   23. Prosa, para páginas legais e editoriais
   -------------------------------------------------------------------------- */

.prose {
  max-width: 68ch;
  color: var(--ink);
}

.prose > :first-child {
  margin-top: 0;
}

.prose h2 {
  margin-top: 2.4em;
  margin-bottom: 0.5em;
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  line-height: 1.1;
  scroll-margin-top: 120px;
}

.prose h3 {
  margin-top: 1.8em;
  margin-bottom: 0.4em;
  font-size: 1.15rem;
  scroll-margin-top: 120px;
}

.prose h4 {
  margin-top: 1.6em;
}

.prose p,
.prose li {
  color: var(--ink-soft);
}

.prose li {
  margin-bottom: 0.5em;
}

.prose ul,
.prose ol {
  padding-left: 1.3em;
}

.prose li::marker {
  color: var(--red);
}

.prose a {
  color: var(--red-dark);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 2px;
}

.prose strong {
  color: var(--ink);
}

.prose blockquote {
  margin: 1.8em 0;
  padding: 4px 0 4px 20px;
  border-left: 4px solid var(--gold);
  color: var(--ink);
}

.prose blockquote p:last-child {
  margin-bottom: 0;
}

.prose figure {
  margin: 1.8em 0;
}

.prose figcaption {
  margin-top: 8px;
  color: var(--ink-soft);
  font-size: 0.8rem;
}

.prose hr {
  margin: 2.5em 0;
}

.prose code {
  padding: 1px 5px;
  background: var(--sand);
  color: var(--ink);
  font-size: 0.9em;
}

.prose .prose__updated {
  padding: 12px 14px;
  border-left: 3px solid var(--line-strong);
  background: var(--sand);
  color: var(--ink-soft);
  font-size: 0.82rem;
}

/* --------------------------------------------------------------------------
   24. Tabela
   -------------------------------------------------------------------------- */

.table-wrap {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--line);
}

.table {
  width: 100%;
  min-width: 420px;
  border-collapse: collapse;
  color: var(--ink);
  font-size: 0.9rem;
}

.table caption {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: var(--white);
  color: var(--ink-soft);
  font-size: 0.8rem;
  text-align: left;
}

.table th,
.table td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.table th {
  background: var(--sand);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.table tbody tr:last-child td {
  border-bottom: 0;
}

.table td.is-num,
.table th.is-num {
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.table tbody tr:nth-child(even) td {
  background: rgba(242, 238, 231, 0.45);
}

/* --------------------------------------------------------------------------
   25. Elementos flutuantes
   -------------------------------------------------------------------------- */

.whatsapp-float {
  --whatsapp-green: #25d366;
  --whatsapp-green-hover: #1fb959;
  position: fixed;
  left: 16px;
  bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  z-index: var(--z-float);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--whatsapp-green);
  box-shadow: 0 8px 22px -10px rgba(17, 17, 17, 0.45);
  color: var(--white);
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 600;
  transition:
    background-color var(--dur-1) var(--ease),
    transform var(--dur-1) var(--ease-out);
}

.whatsapp-float i {
  font-size: 1.7rem;
  line-height: 1;
}

.whatsapp-nudge {
  position: fixed;
  bottom: calc(80px + env(safe-area-inset-bottom, 0px));
  left: 16px;
  z-index: var(--z-float);
  display: flex;
  align-items: center;
  max-width: min(245px, calc(100vw - 32px));
  border: 1px solid var(--line-strong);
  background: var(--paper);
  box-shadow: var(--shadow-2);
  font-family: var(--font-display);
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.3;
}

.whatsapp-nudge::before {
  position: absolute;
  bottom: -6px;
  left: 24px;
  width: 9px;
  height: 9px;
  border-right: 1px solid var(--line-strong);
  border-bottom: 1px solid var(--line-strong);
  background: var(--paper);
  content: "";
  transform: rotate(45deg);
}

.whatsapp-nudge__link {
  padding: 11px 8px 11px 12px;
  color: var(--ink);
  text-decoration: none;
}

.whatsapp-nudge__link:hover { color: var(--red-dark); }

.whatsapp-nudge__close {
  align-self: stretch;
  min-width: 32px;
  padding: 0 8px;
  border: 0;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}

.map-consent[hidden] { display: none; }

.map-consent {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: calc(var(--z-float) + 1);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px 24px;
  padding: 18px max(16px, calc((100vw - 1152px) / 2));
  border-top: 1px solid var(--line-strong);
  background: var(--paper);
  box-shadow: 0 -6px 28px rgba(17, 17, 17, 0.12);
  color: var(--ink);
  max-height: 85vh;
  overflow-y: auto;
}

.map-consent__copy { max-width: 560px; }
.map-consent__copy strong { font-family: var(--font-display); font-size: 0.9rem; }
.map-consent__copy p { margin: 3px 0 0; font-size: 0.78rem; line-height: 1.45; }
.map-consent__copy a { color: var(--red-dark); text-decoration: underline; }
.map-consent__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.map-consent__actions button {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--red-dark);
  background: transparent;
  color: var(--red-dark);
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
}
.map-consent__actions .map-consent__accept,
.map-consent__actions .map-consent__reject { background: var(--red-dark); color: var(--white); }

.map-consent__actions button:focus-visible { outline: 3px solid var(--red-dark); outline-offset: 3px; }

html.map-consent-open .whatsapp-float,
html.map-consent-open .whatsapp-nudge { visibility: hidden; }

@media (hover: hover) {
  .whatsapp-float:hover {
    background: var(--whatsapp-green-hover);
    transform: translateY(-2px);
  }
}

/* --------------------------------------------------------------------------
   26. Barra utilitária
   -------------------------------------------------------------------------- */

.utility-bar {
  background: var(--sand);
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-size: 0.74rem;
  line-height: 1.3;
}

.utility-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 16px;
  min-height: 38px;
  padding-top: 7px;
  padding-bottom: 7px;
}

.utility-bar__item {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: var(--ink);
  font-weight: 500;
}

.utility-bar__item i {
  color: var(--red-dark);
  font-size: 0.78rem;
}

.utility-bar__short {
  display: none;
}

.utility-bar__links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
}

.utility-bar__links a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-bottom: 1px solid transparent;
  color: var(--ink);
  font-weight: 600;
}

.utility-bar__links i {
  color: var(--red-dark);
  font-size: 0.78rem;
}

@media (hover: hover) {
  .utility-bar__links a:hover {
    border-bottom-color: var(--ink);
  }
}

/* Em móvel a barra fica numa linha: entrega e contactos. */
@media (max-width: 767px) {
  .utility-bar {
    font-size: 0.68rem;
  }

  .utility-bar__inner {
    justify-content: space-between;
    gap: 2px 10px;
    min-height: 32px;
    padding-top: 6px;
    padding-bottom: 6px;
  }

  .utility-bar__item--secondary,
  .utility-bar__label {
    display: none;
  }

  .utility-bar__long {
    display: none;
  }

  .utility-bar__short {
    display: inline;
  }

  .utility-bar__links {
    gap: 6px 12px;
  }
}

/* --------------------------------------------------------------------------
   27. Cabeçalho
   -------------------------------------------------------------------------- */

/* O wrapper fica preso ao topo com o recuo exato da barra utilitária,
   para só o cabeçalho ficar visível durante o scroll. O sticky vive no
   wrapper porque um elemento sticky não sai do contentor dele. */
#site-header {
  position: sticky;
  top: -33px;
  z-index: var(--z-header);
}

@media (min-width: 768px) {
  #site-header {
    top: -39px;
  }
}

.site-header {
  --focus: var(--cream);
  background: var(--red-action);
  border-bottom: 3px solid var(--gold);
  color: var(--white);
  transition: box-shadow var(--dur-2) var(--ease);
}

.site-header.is-scrolled {
  box-shadow: 0 8px 24px -12px rgba(17, 17, 17, 0.6);
}

.header-inner {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 70px;
  padding-top: 9px;
  padding-bottom: 9px;
}

.brand {
  display: inline-flex;
  flex: none;
  align-items: center;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

.brand img {
  width: auto;
  height: 28px;
  outline: 0;
}

.main-nav {
  display: none;
}

.main-nav__link {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 48px;
  padding: 4px 10px;
  color: var(--cream);
  font-family: var(--font-display);
  font-size: 0.86rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.main-nav__link::after {
  content: "";
  position: absolute;
  right: 10px;
  bottom: 0;
  left: 10px;
  height: 3px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform var(--dur-2) var(--ease);
}

.main-nav__link[aria-current="page"] {
  color: var(--white);
}

.main-nav__link[aria-current="page"]::after {
  transform: scaleX(1);
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.header-phone {
  display: none;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 6px;
  color: var(--cream);
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 600;
  white-space: nowrap;
}

.header-phone i {
  font-size: 0.85rem;
}

.header-cta {
  min-height: 44px;
  padding: 8px 14px;
}

.nav-toggle {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex: none;
  padding: 0;
  border: 1px solid rgba(250, 247, 242, 0.5);
  background: transparent;
  color: var(--cream);
  transition:
    background-color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease);
}

.nav-toggle__bars {
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 22px;
}

.nav-toggle__bars span {
  display: block;
  width: 100%;
  height: 2px;
  background: currentColor;
  transition:
    transform var(--dur-2) var(--ease),
    opacity var(--dur-1) linear;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(2) {
  opacity: 0;
}

.nav-toggle[aria-expanded="true"] .nav-toggle__bars span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (hover: hover) {
  .main-nav__link:hover::after {
    transform: scaleX(1);
  }

  .nav-toggle:hover {
    background: rgba(250, 247, 242, 0.12);
    border-color: var(--cream);
  }
}

/* --------------------------------------------------------------------------
   28. Menu móvel
   -------------------------------------------------------------------------- */

.nav-overlay {
  position: fixed;
  inset: 0;
  z-index: var(--z-overlay);
  background: rgba(17, 17, 17, 0.58);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--dur-2) var(--ease),
    visibility 0s linear var(--dur-2);
}

.nav-overlay.is-open {
  opacity: 1;
  visibility: visible;
  transition:
    opacity var(--dur-2) var(--ease),
    visibility 0s;
}

.nav-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: var(--z-drawer);
  display: flex;
  flex-direction: column;
  width: min(360px, 88vw);
  background: var(--cream);
  border-left: 4px solid var(--gold);
  color: var(--ink);
  transform: translateX(100%);
  visibility: hidden;
  transition:
    transform var(--dur-2) var(--ease-out),
    visibility 0s linear var(--dur-2);
}

.nav-drawer.is-open {
  transform: none;
  visibility: visible;
  transition:
    transform var(--dur-2) var(--ease-out),
    visibility 0s;
}

.nav-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px;
  background: var(--red-action);
  color: var(--cream);
}

.nav-drawer__title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.nav-drawer__close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(250, 247, 242, 0.5);
  background: transparent;
  color: var(--cream);
  font-size: 1rem;
}

.nav-drawer__nav {
  flex: 1;
  padding: 4px 20px 8px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.nav-drawer__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-weight: 600;
  line-height: 1.3;
}

.nav-drawer__link i {
  color: var(--red-dark);
  font-size: 0.72rem;
  transition: transform var(--dur-1) var(--ease);
}

.nav-drawer__link[aria-current="page"] {
  color: var(--red-dark);
}

.nav-drawer__foot {
  display: grid;
  gap: 8px;
  padding: 16px 20px calc(20px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--line);
  background: var(--sand);
}

.nav-drawer__label {
  margin: 0;
  color: var(--ink-soft);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nav-drawer__phone {
  margin-bottom: 2px;
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

.nav-drawer__foot .small {
  margin: 0 0 6px;
  color: var(--ink-soft);
}

.nav-drawer__foot .btn {
  min-height: 44px;
  font-size: 0.82rem;
}

@media (hover: hover) {
  .nav-drawer__link:hover i {
    transform: translateX(4px);
  }

  .nav-drawer__link:hover {
    color: var(--red-dark);
  }
}

/* Bloqueio de scroll enquanto o menu está aberto. */
html.nav-open,
html.nav-open body {
  overflow: hidden;
}

/* --------------------------------------------------------------------------
   29. Rodapé
   -------------------------------------------------------------------------- */

.site-footer {
  --focus: var(--cream);
  padding-top: 56px;
  padding-bottom: 24px;
  background: var(--green-dark);
  border-top: 4px solid var(--gold);
  color: var(--cream);
}

.footer-top {
  display: grid;
  gap: 24px;
  padding-bottom: 32px;
  border-bottom: 1px solid var(--line-invert);
}

.footer-wordmark {
  margin: 0 0 8px;
  color: var(--cream);
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1;
}

.footer-tagline {
  max-width: 48ch;
  margin: 0;
  color: var(--invert-muted);
  font-size: 0.92rem;
  line-height: 1.55;
}

.footer-claims {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-claim {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 8px 10px;
  border: 1px solid var(--line-invert);
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 20px;
  padding-top: 36px;
  padding-bottom: 36px;
}

.footer-col--contact {
  grid-column: 1 / -1;
}

.footer-col__title {
  margin: 0 0 14px;
  color: var(--gold-soft);
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}

.footer-col ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-col li {
  margin: 0;
}

.footer-col a {
  display: inline-block;
  border-bottom: 1px solid transparent;
  color: var(--invert-muted);
  font-size: 0.9rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.footer-contact li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--invert-muted);
  font-size: 0.88rem;
  line-height: 1.5;
}

.footer-contact i {
  width: 16px;
  flex: none;
  margin-top: 4px;
  color: var(--gold-soft);
  text-align: center;
}

.footer-contact a {
  color: var(--invert-muted);
}

.footer-contact .footer-note-line {
  color: rgba(250, 247, 242, 0.66);
  font-size: 0.8rem;
}

.footer-pay {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 24px;
  padding-bottom: 24px;
  border-top: 1px solid var(--line-invert);
}

.footer-pay__label {
  margin: 0 6px 0 0;
  color: rgba(250, 247, 242, 0.7);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.pay-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 9px;
  border: 1px solid var(--line-invert);
  color: var(--cream);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  line-height: 1.1;
  text-transform: uppercase;
}

.pay-badge i {
  color: var(--gold-soft);
  font-size: 0.95rem;
}

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line-invert);
  color: rgba(250, 247, 242, 0.68);
  font-size: 0.76rem;
  line-height: 1.5;
}

.footer-bottom p {
  margin: 0;
}

.footer-legal {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 16px;
}

.footer-legal a,
.footer-legal__button {
  color: rgba(250, 247, 242, 0.78);
  border-bottom: 1px solid transparent;
}

.footer-legal__button {
  padding: 0;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

@media (hover: hover) {
  .footer-col a:hover,
  .footer-contact a:hover,
  .footer-legal a:hover,
  .footer-legal__button:hover {
    color: var(--cream);
    border-bottom-color: var(--gold);
  }
}

/* --------------------------------------------------------------------------
   30. Breakpoints
   -------------------------------------------------------------------------- */

/* 390 px, telemóvel pequeno */
@media (min-width: 390px) {
  .grid {
    gap: 16px;
  }

  .grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid--products {
    gap: 14px;
  }

  .product-card__body {
    padding: 16px;
  }

  .category-tile__body {
    padding: 18px;
  }
}

@media (max-width: 389px) {
  .header-inner {
    gap: 8px;
  }

  .brand img {
    height: 24px;
  }

  .header-cta {
    width: 44px;
    min-height: 44px;
    padding: 0;
  }

  .header-cta__label {
    display: none;
  }

  .nav-toggle {
    width: 44px;
    height: 44px;
  }

  .product-card__body {
    gap: 5px;
    padding: 11px;
  }

  .product-card__name {
    font-size: 0.92rem;
  }

  .product-card__wish {
    width: 36px;
    height: 36px;
  }

  .grid--products {
    gap: 10px;
  }

  .price {
    font-size: 1.18rem;
  }

  .footer-grid {
    gap: 28px 16px;
  }
}

@media (max-width: 479px) {
  .product-card__seal {
    max-width: calc(100% - 60px);
    padding: 7px 8px 9px;
    font-size: 0.56rem;
    letter-spacing: 0.08em;
  }
}

/* 768 px, tablet */
@media (min-width: 768px) {
  .section {
    --section-y: 80px;
  }

  .section--tight {
    --section-y: 56px;
  }

  .section-head {
    margin-bottom: 40px;
  }

  .grid {
    gap: 20px;
  }

  .grid--3,
  .grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .grid--products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  .grid--categories {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
  }

  .grid--sidebar {
    gap: 40px;
  }

  .form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .form-grid .form-field--full {
    grid-column: 1 / -1;
  }

  .product-card__body {
    padding: 18px;
  }

  .product-card__name {
    font-size: 1.02rem;
  }

  .category-tile {
    aspect-ratio: 3 / 4;
  }

  .editorial-card__body {
    padding: 22px;
  }

  .modal__dialog {
    padding: 36px 32px;
  }

  .page-hero {
    padding-top: 56px;
    padding-bottom: 56px;
  }

  .site-footer {
    padding-top: 72px;
  }

  .footer-top {
    grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
    align-items: end;
  }

  .footer-claims {
    justify-content: flex-end;
  }

  .footer-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 32px 24px;
    padding-top: 44px;
    padding-bottom: 44px;
  }

  .whatsapp-float {
    left: 24px;
    bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  }

  .whatsapp-nudge {
    left: 24px;
    bottom: calc(88px + env(safe-area-inset-bottom, 0px));
  }
}

/* 1024 px, desktop pequeno */
@media (min-width: 1024px) {
  .main-nav {
    display: flex;
    align-items: center;
    gap: 0;
    margin-left: auto;
  }

  .nav-toggle {
    display: none;
  }

  .header-inner {
    gap: 16px;
    min-height: 80px;
    padding-top: 11px;
    padding-bottom: 11px;
  }

  .brand img {
    height: 32px;
  }

  .header-actions {
    margin-left: 8px;
  }

  .header-cta {
    min-height: 46px;
    padding: 10px 16px;
  }

  .nav-drawer,
  .nav-overlay {
    display: none !important;
  }

  .grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .grid--products {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
  }

  .grid--sidebar {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 56px;
  }

  .section-head--split {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
    max-width: none;
    gap: 32px;
  }

  .section-head--split > :first-child {
    max-width: 640px;
  }

  .section-head--split .section-head__actions {
    margin-top: 0;
    padding-bottom: 4px;
  }

  .footer-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 32px 24px;
    padding-top: 44px;
    padding-bottom: 44px;
  }

  .footer-col--contact {
    grid-column: auto;
  }

  .category-tile {
    aspect-ratio: 4 / 5;
  }

  .category-tile__body {
    padding: 20px;
  }

  .whatsapp-float {
    left: 28px;
    bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  }

  .whatsapp-nudge {
    left: 28px;
    bottom: calc(92px + env(safe-area-inset-bottom, 0px));
  }

  .modal__dialog {
    padding: 40px;
  }
}

@media (min-width: 1200px) {
  .header-phone {
    display: inline-flex;
  }
}

/* 1440 px, desktop largo */
@media (min-width: 1440px) {
  .section {
    --section-y: 96px;
  }

  .section--tight {
    --section-y: 64px;
  }

  .header-inner {
    min-height: 84px;
  }

  .brand img {
    height: 32px;
  }

  .grid--products {
    gap: 24px;
  }

  .product-card__body {
    padding: 20px;
  }

  .page-hero {
    padding-top: 64px;
    padding-bottom: 64px;
  }
}

/* Ancoras não ficam escondidas pelo cabeçalho fixo. */
section[id],
main[id],
article[id],
div[id].section,
h2[id],
h3[id] {
  scroll-margin-top: 100px;
}

/* --------------------------------------------------------------------------
   31. Movimento reduzido e impressão
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  html.js .reveal {
    opacity: 1;
    transform: none;
  }

  .marquee__track {
    animation: none !important;
  }

  .marquee {
    overflow-x: auto;
  }
}

@media print {
  body {
    background: #ffffff;
    color: #111111;
    font-size: 11pt;
  }

  .utility-bar,
  .site-header,
  .site-footer,
  .nav-drawer,
  .nav-overlay,
  .whatsapp-float,
  .modal,
  .skip-link {
    display: none !important;
  }

  .section,
  .page-hero {
    padding-top: 18pt;
    padding-bottom: 18pt;
  }

  .container {
    max-width: none;
    padding-inline: 0;
  }

  a {
    color: #111111;
    text-decoration: underline;
  }

  .product-card,
  .editorial-card,
  .feature-card,
  .store-card,
  .step-card,
  .quote-card {
    break-inside: avoid;
  }

  .table-wrap {
    overflow: visible;
    border: 0;
  }
}

/* ==========================================================================
   Interação
   Camada própria para os componentes que o JavaScript cria ou ativa:
   desejos na barra utilitária, estado do filtro, avisos, neve, botão de
   neve, pop-up 10+1 e folga no rodapé para os elementos fixos.

   Zero cantos arredondados. Movimento só em transform, opacity e cor.
   Todas as animações ficam atrás de prefers-reduced-motion.
   ========================================================================== */

/* --------------------------------------------------------------------------
   I1. Desejos na barra utilitária
   -------------------------------------------------------------------------- */

.utility-bar__wish {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.utility-bar__wish__count {
  display: inline-grid;
  place-items: center;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--font-display);
  font-size: 0.6rem;
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  transition: background-color var(--dur-1) var(--ease);
}

.utility-bar__wish.is-filled .utility-bar__wish__count {
  background: var(--red-action);
  color: var(--white);
}

.utility-bar__wish.is-filled i {
  color: var(--red);
}

/* --------------------------------------------------------------------------
   I2. Filtro de brinquedos
   -------------------------------------------------------------------------- */

.toys-status {
  margin: 0 0 16px;
  color: var(--ink-soft);
  font-family: var(--font-display);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.4;
}

/* A região aria-live fica no documento, mas sem ocupar espaço até ter texto. */
.toys-status:empty {
  margin: 0;
}

.product-card__wish {
  -webkit-tap-highlight-color: transparent;
  transition:
    background-color var(--dur-1) var(--ease),
    color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease),
    transform var(--dur-1) var(--ease-out);
}

.product-card__wish:not(:disabled):active {
  transform: scale(0.96);
}

.product-card__wish i {
  transition: transform var(--dur-1) var(--ease-out);
}

@media (hover: hover) {
  .product-card__wish:hover {
    border-color: var(--ink);
  }
}

/* --------------------------------------------------------------------------
   I3. Acordeão, entrada da resposta
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
  .faq-a:not([hidden]) {
    animation: mgf-faq-open 180ms var(--ease-out) both;
  }
}

@keyframes mgf-faq-open {
  from {
    opacity: 0;
    transform: translateY(-4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   I4. Avisos (toasts)
   -------------------------------------------------------------------------- */

.mgf-toasts {
  position: fixed;
  right: 16px;
  bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  left: 16px;
  z-index: 260;
  display: grid;
  gap: 8px;
  justify-items: center;
  pointer-events: none;
}

.mgf-toast {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  width: 100%;
  max-width: 420px;
  padding: 12px 14px;
  border: 1px solid var(--line-strong);
  border-left: 4px solid var(--ink);
  background: var(--cream);
  box-shadow: var(--shadow-2);
  color: var(--ink);
  font-size: 0.9rem;
  line-height: 1.45;
  opacity: 0;
  transform: translateY(12px);
  transition:
    opacity 200ms var(--ease-out),
    transform 200ms var(--ease-out);
}

.mgf-toast.is-visible {
  opacity: 1;
  transform: none;
}

/* A saída é mais curta do que a entrada. */
.mgf-toast:not(.is-visible) {
  transition-duration: 150ms;
}

.mgf-toast > i {
  flex: none;
  margin-top: 3px;
  font-size: 0.95rem;
}

.mgf-toast__text {
  margin: 0;
  min-width: 0;
}

.mgf-toast--success {
  border-left-color: var(--green);
}

.mgf-toast--success > i {
  color: var(--green);
}

.mgf-toast--error {
  border-left-color: var(--red);
}

.mgf-toast--error > i {
  color: var(--red-dark);
}

.mgf-toast--warning {
  border-left-color: var(--gold);
}

.mgf-toast--warning > i {
  color: var(--ink);
}

.mgf-toast--info {
  border-left-color: var(--ink);
}

.mgf-toast--info > i {
  color: var(--ink-soft);
}

@media (min-width: 768px) {
  .mgf-toasts {
    right: 24px;
    bottom: calc(96px + env(safe-area-inset-bottom, 0px));
    left: 24px;
  }
}

/* --------------------------------------------------------------------------
   I5. Neve
   -------------------------------------------------------------------------- */

/* Abaixo dos elementos flutuantes (80) e do cabeçalho (90), acima do
   conteúdo. Sem captura de ponteiro, nunca bloqueia cliques. */
.snow {
  position: fixed;
  inset: 0;
  z-index: 79;
  overflow: hidden;
  pointer-events: none;
}

.snow__flake {
  position: absolute;
  top: 0;
  left: var(--snow-left, 50%);
  width: var(--snow-size, 6px);
  height: var(--snow-size, 6px);
  opacity: var(--snow-opacity, 0.8);
  transform: translate3d(0, -10vh, 0) rotate(var(--snow-rotate, 0deg));
  animation: mgf-snow-fall var(--snow-duration, 16s) linear var(--snow-delay, 0s) infinite;
}

.snow__flake::before,
.snow__flake::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--white);
  box-shadow: 0 0 2px rgba(17, 17, 17, 0.4);
}

.snow__flake::before {
  width: 1px;
  height: 100%;
  transform: translate(-50%, -50%);
}

.snow__flake::after {
  width: 100%;
  height: 1px;
  transform: translate(-50%, -50%);
}

@keyframes mgf-snow-fall {
  from {
    transform: translate3d(0, -10vh, 0) rotate(var(--snow-rotate, 0deg));
  }
  to {
    transform: translate3d(var(--snow-drift, 20px), 110vh, 0)
      rotate(calc(var(--snow-rotate, 0deg) + 180deg));
  }
}

@media (prefers-reduced-motion: reduce) {
  .snow {
    display: none;
  }
}

/* --------------------------------------------------------------------------
   I6. Pop-up 10+1
   -------------------------------------------------------------------------- */

.mgf-promo__note {
  margin: 0;
  color: var(--ink-soft);
}

/* --------------------------------------------------------------------------
   I7. Folga no rodapé para os elementos fixos
   -------------------------------------------------------------------------- */

/* Sem esta folga, o WhatsApp e a neve tapam a última linha do rodapé a
   390 px e a 1440 px. O valor cobre a altura dos botões mais a margem. */
html.js .site-footer {
  padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px));
}

@media (min-width: 768px) {
  html.js .site-footer {
    padding-bottom: calc(104px + env(safe-area-inset-bottom, 0px));
  }
}

/* --------------------------------------------------------------------------
   I8. Ajustes de móvel
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {
  .utility-bar__wish {
    gap: 4px;
  }

  .utility-bar__wish__label {
    display: none;
  }

  /* Sem o rótulo, um zero solto não diz nada. O contador só aparece
     quando há brinquedos guardados. */
  .utility-bar__wish:not(.is-filled) .utility-bar__wish__count {
    display: none;
  }

  .mgf-toast {
    font-size: 0.86rem;
  }
}

/* --------------------------------------------------------------------------
   I9. Pop-up aberto
   -------------------------------------------------------------------------- */

/* Com o pop-up aberto, os atalhos fixos saem de cena e não disputam
   atenção com o diálogo. */
html.promo-open .whatsapp-float,
html.promo-open .whatsapp-nudge {
  opacity: 0.25;
  pointer-events: none;
  transition: opacity var(--dur-2) var(--ease);
}


/* ==========================================================================
   Componentes partilhadas movidas de home.css (mantidas verbatim)
   ========================================================================== */

/* --------------------------------------------------------------------------
   2. Hero
   Movido de home.css, mantido verbatim.
   -------------------------------------------------------------------------- */

.hero {
  position: relative;
  padding-top: 28px;
  padding-bottom: 44px;
  background: var(--cream);
}

.hero__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
  align-items: center;
}

.hero__copy {
  min-width: 0;
  max-width: 640px;
}

.hero__title {
  max-width: 12ch;
  margin-bottom: 16px;
}

.hero__lead {
  max-width: 48ch;
  margin-bottom: 22px;
}

.hero__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}

.hero__actions .btn {
  width: 100%;
}

.hero__countdown {
  max-width: 380px;
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
}

.hero__countdown-label {
  margin: 0 0 10px;
  color: var(--ink-soft);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  line-height: 1.2;
  text-transform: uppercase;
}

.hero__seals {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
}

.hero__seal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 9px 11px;
  border: 1px solid var(--line-strong);
  border-left: 3px solid var(--gold);
  background: var(--white);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.2;
}

.hero__seal i {
  color: var(--red-dark);
  font-size: 0.85rem;
}

/* Colagem. O palco define a altura e as imagens preenchem-no. */
.hero__collage {
  position: relative;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 10px;
  aspect-ratio: 6 / 7;
  min-width: 0;
}

.hero__shot {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: var(--sand);
}

.hero__shot img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms var(--ease);
}

.hero__shot-btn {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
}

.hero__shot-btn:focus-visible {
  outline: 3px solid var(--white);
  outline-offset: -3px;
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .hero__shot:hover img {
    transform: scale(1.12);
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__shot img {
    transition: none;
  }
}

.hero__shot--main {
  grid-row: 1 / 3;
}

.hero__shot--main img {
  object-position: center 38%;
}

.hero__shot--gifts img {
  object-position: center;
}

.hero__shot--child img {
  object-position: center 35%;
}

@media (min-width: 480px) {
  .hero__actions {
    display: flex;
    flex-wrap: wrap;
  }

  .hero__actions .btn {
    width: auto;
  }
}

@media (max-width: 767px) {
  .hero__collage {
    aspect-ratio: auto;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: auto auto;
  }

  .hero__shot--main {
    grid-column: 1 / -1;
    grid-row: auto;
    aspect-ratio: 4 / 5;
  }

  .hero__shot--gifts,
  .hero__shot--child {
    aspect-ratio: 1 / 1;
  }
}

@media (min-width: 768px) and (max-width: 899px) {
  .hero__collage {
    max-width: 640px;
    aspect-ratio: 16 / 13;
  }
}

@media (min-width: 900px) {
  .hero {
    padding-top: 40px;
    padding-bottom: 64px;
  }

  .hero__inner {
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
    gap: 40px;
  }

  .hero__countdown {
    margin-top: 30px;
  }
}

@media (min-width: 1024px) {
  .hero__inner {
    gap: 56px;
  }
}


/* --------------------------------------------------------------------------
   4. Faixa 10+1
   Movida de home.css, mantida verbatim.
   -------------------------------------------------------------------------- */

.offer-band {
  --section-y: 48px;
}

.offer-band__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  align-items: center;
}

.offer-band__figure {
  display: flex;
  align-items: baseline;
  gap: 2px;
  margin: 0;
  color: var(--paper);
  font-family: var(--font-display);
  font-size: clamp(3.6rem, 13vw, 6.5rem);
  font-weight: 700;
  letter-spacing: -0.06em;
  line-height: 0.8;
}

.offer-band__figure span:last-child {
  font-size: 0.62em;
}

.offer-band__copy {
  min-width: 0;
}

.offer-band__copy h2 {
  color: var(--white);
}

.offer-band__text {
  max-width: 56ch;
  margin-bottom: 18px;
  color: var(--white);
  font-size: 1.02rem;
  line-height: 1.55;
}

.offer-band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.offer-band__media {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border: 1px solid var(--line-invert);
  background: rgba(17, 17, 17, 0.16);
}

.offer-band__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (min-width: 900px) {
  .offer-band {
    --section-y: 56px;
  }

  .offer-band__inner {
    grid-template-columns: 180px minmax(0, 1fr) 300px;
    gap: 36px;
  }

  .offer-band__figure {
    justify-content: flex-start;
  }

  .offer-band__media {
    aspect-ratio: 4 / 3;
  }
}

@media (min-width: 1200px) {
  .offer-band__inner {
    grid-template-columns: 220px minmax(0, 1fr) 340px;
    gap: 48px;
  }
}


/* --------------------------------------------------------------------------

   Movida de home.css, mantida verbatim.
   B. Brinquedos, filtro e lista de desejos (partilhada: home e brinquedos.html)
   -------------------------------------------------------------------------- */

.toys-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin-bottom: 10px;
  padding: 14px;
  border: 1px solid var(--line);
  background: var(--sand);
}

.age-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.age-filter .pill {
  min-height: 44px;
}

.wishlist-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}

.wishlist-bar__label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.84rem;
  font-weight: 600;
  line-height: 1.2;
}

.wishlist-bar__label i {
  color: var(--red);
}

.wishlist-bar__label strong {
  display: inline-grid;
  min-width: 26px;
  height: 26px;
  padding: 0 6px;
  place-items: center;
  background: var(--ink);
  color: var(--cream);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1;
}

.wishlist-bar .btn {
  min-height: 44px;
}

.toys-note {
  margin: 0 0 20px;
  color: var(--ink-soft);
}

.toys-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.toys-grid .product-card__media {
  aspect-ratio: 1 / 1;
}

.toys-grid .product-card__wish {
  width: 44px;
  height: 44px;
}

.toys-grid .product-card__seal {
  max-width: calc(100% - 68px);
}

.toys-grid .product-card__name {
  min-height: 3em;
}

@media (min-width: 390px) {
  .toys-grid {
    gap: 14px;
  }
}

@media (min-width: 768px) {
  .toys-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 16px;
  }

  .toys-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
  }

  .toys-grid .product-card__name {
    min-height: 2.5em;
  }
}

@media (min-width: 1024px) {
  .toys-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (min-width: 1440px) {
  .toys-grid {
    gap: 24px;
  }
}


/* --------------------------------------------------------------------------
   C. Galeria de produto, lightbox e hero em banner
   -------------------------------------------------------------------------- */

/* Tags de estatísticas compactas, uma por linha de texto. */
.hub-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

.hub-tags li {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  margin: 0;
  padding: 4px 8px;
  border: 1px solid var(--line-strong);
  border-left: 2px solid var(--gold);
  background: var(--white);
  color: var(--ink);
  font-family: var(--font-display);
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

.hub-tags strong {
  color: var(--red-dark);
  font-size: 0.82rem;
  font-weight: 700;
}

/* Galeria: imagem principal no rácio natural, miniaturas por baixo e
   magnificação por hover e foco. */
.gallery {
  position: relative;
  margin: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

.gallery__stage {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: var(--sand);
  overflow: hidden;
  cursor: zoom-in;
}

.gallery__stage img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform 600ms var(--ease);
}

.gallery__thumbs {
  display: flex;
  gap: 8px;
  margin: 0;
  padding: 10px 0 0;
  list-style: none;
  background: none;
  border-top: 0;
}

.gallery__thumbs li {
  margin: 0;
}

.gallery__thumbs button {
  display: block;
  width: 76px;
  padding: 0;
  border: 2px solid var(--line);
  background: var(--sand);
  overflow: hidden;
  cursor: pointer;
}

.gallery__thumbs button[aria-current="true"] {
  border-color: var(--red-action);
}

.gallery__thumbs button:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

.gallery__thumbs img {
  display: block;
  width: 100%;
  height: auto;
}

@media (hover: hover) {
  .gallery__stage:hover img,
  .gallery__stage:focus-visible img {
    transform: scale(1.12);
  }
}

@media (prefers-reduced-motion: reduce) {
  .gallery__stage img {
    transition: none;
  }
}

/* Slideshow em sobreposição. */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(17, 17, 17, 0.94);
}

.lightbox[hidden] {
  display: none;
}

html.lightbox-open {
  overflow: hidden;
}

.lightbox__frame {
  position: relative;
  display: grid;
  gap: 12px;
  width: min(960px, 100%);
}

.lightbox__stage {
  position: relative;
  background: var(--ink);
}

.lightbox__img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 72vh;
  object-fit: contain;
  margin: 0 auto;
}

.lightbox__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--cream);
}

.lightbox__caption {
  margin: 0;
  min-width: 0;
  font-family: var(--font-display);
  font-size: 0.92rem;
  font-weight: 600;
}

.lightbox__count {
  flex: none;
  color: var(--invert-muted);
  font-size: 0.8rem;
  font-variant-numeric: tabular-nums;
}

.lightbox__nav {
  display: flex;
  gap: 8px;
  flex: none;
}

.lightbox__btn {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--line-invert);
  background: transparent;
  color: var(--cream);
  font-size: 0.95rem;
  cursor: pointer;
}

.lightbox__btn:hover {
  background: rgba(250, 247, 242, 0.12);
}

.lightbox__btn--close {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 2;
  background: var(--ink);
}

/* Hero de subpágina em duas colunas: texto à esquerda, fotografia
   emoldurada à direita. Leve, sobre papel. */
.page-hero--split {
  background: var(--paper);
}

.page-hero--split .page-hero__shell {
  align-items: center;
}

.page-hero__media {
  position: relative;
  margin: 0;
  border: 1px solid var(--line-strong);
  background: var(--sand);
  box-shadow: var(--shadow-1);
}

.page-hero__media img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 900px) {
  .page-hero--split .page-hero__shell {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    gap: 40px;
  }
}

/* --------------------------------------------------------------------------
   C2. Flipbook dos catálogos (hubs de cabazes e brinquedos)
   -------------------------------------------------------------------------- */

.flipbook {
  position: relative;
  min-height: min(900px, 100svh);
  overflow: hidden;
  background: var(--red-dark);
  color: var(--white);
}

.flipbook > .container {
  position: relative;
  z-index: 1;
}

.flipbook__layout {
  display: grid;
  gap: 34px;
  align-items: center;
}

.flipbook__intro {
  max-width: 540px;
}

.flipbook .section-head {
  margin-bottom: 24px;
}

.flipbook .section-head .eyebrow {
  color: var(--white);
}

.flipbook .section-head .eyebrow::before {
  background: var(--white);
}

.flipbook .section-head h2 {
  color: var(--white);
  font-size: clamp(2.25rem, 5vw, 4.8rem);
  line-height: 0.96;
}

.flipbook .section-head .lead {
  max-width: 33rem;
  color: rgba(255, 255, 255, 0.82);
}

.flipbook__edition {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 0 0 22px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.28);
  color: rgba(255, 255, 255, 0.78);
}

.flipbook__edition strong {
  color: var(--white);
  font-family: var(--font-display);
  font-size: 2.2rem;
  line-height: 1;
}

.flipbook__instruction {
  margin: 18px 0 0;
  color: rgba(255, 255, 255, 0.66);
  font-size: 0.82rem;
}

.flipbook__instruction i {
  margin-right: 7px;
}

.flipbook__tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.34);
}

.flipbook__tabs [role="tab"] {
  margin: 0;
  flex: 1 1 50%;
  padding: 12px 20px;
  border: 0;
  border-right: 1px solid rgba(255, 255, 255, 0.34);
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
  font-family: var(--font-display);
  font-size: 0.86rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition:
    color var(--dur-1) var(--ease),
    border-color var(--dur-1) var(--ease);
}

.flipbook__tabs [role="tab"]:hover {
  color: var(--white);
}

.flipbook__tabs [role="tab"][aria-selected="true"] {
  background: var(--white);
  color: var(--red-dark);
}

.flipbook__tabs [role="tab"]:last-child {
  border-right: 0;
}

.flipbook__tabs [role="tab"]:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 2px;
}

.flipbook__panel[hidden] {
  display: none;
}

.flipbook__viewer {
  position: relative;
  display: block;
}

.flipbook__panels {
  display: grid;
  gap: 32px;
  min-width: 0;
}

.flipbook__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-top: 18px;
}

.flipbook__actions .btn {
  min-height: 44px;
}

.flipbook__frame {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  padding: 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.flipbook__frame:focus-visible {
  outline: 3px solid var(--white);
  outline-offset: 6px;
}

.flipbook__frame img {
  display: block;
  max-width: 100%;
  width: auto;
  height: auto;
  max-height: 78vh;
  box-shadow: 0 14px 34px -14px rgba(17, 17, 17, 0.38);
}

.flipbook__open-icon {
  position: absolute;
  top: 50%;
  left: 50%;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  border-radius: 50%;
  background: rgba(17, 17, 17, 0.62);
  color: var(--white);
  font-size: 0.95rem;
  transform: translate(-50%, -50%);
  pointer-events: none;
  transition: background-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);
  animation: flipbook-open-breathe 3.6s ease-in-out infinite alternate;
}

.flipbook__frame:hover .flipbook__open-icon,
.flipbook__frame:focus-visible .flipbook__open-icon {
  background: rgba(17, 17, 17, 0.82);
  animation: none;
  transform: translate(-50%, -50%) scale(1.04);
}

@keyframes flipbook-open-breathe {
  from { opacity: 0.82; }
  to { opacity: 1; }
}

.flipbook__meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: baseline;
  gap: 6px 18px;
  margin: 12px 0 0;
  color: rgba(255, 255, 255, 0.78);
  font-family: var(--font-display);
  font-size: 0.8rem;
  font-weight: 600;
}

.flipbook__counter {
  font-variant-numeric: tabular-nums;
}

.flipbook__hint {
  color: rgba(255, 255, 255, 0.62);
  font-weight: 400;
}

@media (max-width: 639px) {
  .flipbook__frame img {
    max-height: 56vh;
  }

  .flipbook__open-icon {
    width: 42px;
    height: 42px;
    font-size: 0.875rem;
  }

  .flipbook__hint,
  .flipbook__instruction {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .flipbook__open-icon {
    animation: none;
    transition: none;
  }
}

@media (min-width: 900px) {
  .flipbook__layout {
    grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.28fr);
    gap: clamp(54px, 7vw, 104px);
  }

  .flipbook__intro {
    position: sticky;
    top: 150px;
  }

  .flipbook__panels {
    min-width: 0;
  }
}

/* Leitor de catálogo em ecrã completo. */
.flipbook-fullscreen[hidden] {
  display: none;
}

.flipbook-fullscreen {
  position: fixed;
  inset: 0;
  z-index: var(--z-modal);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  background: rgba(17, 17, 17, 0.97);
  color: var(--white);
}

html.flipbook-fullscreen-open {
  overflow: hidden;
}

.flipbook-fullscreen__bar,
.flipbook-fullscreen__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 64px;
  padding: 10px 18px;
  background: var(--ink);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.flipbook-fullscreen__footer {
  justify-content: center;
  min-height: 54px;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 0;
}

.flipbook-fullscreen__title,
.flipbook-fullscreen__count {
  margin: 0;
  font-family: var(--font-display);
  font-size: 0.86rem;
  font-weight: 600;
}

.flipbook-fullscreen__tools {
  display: flex;
  align-items: center;
  gap: 6px;
}

.flipbook-fullscreen__btn {
  display: grid;
  place-items: center;
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.35);
  background: transparent;
  color: var(--white);
  cursor: pointer;
}

.flipbook-fullscreen__btn:hover {
  background: var(--white);
  color: var(--ink);
}

.flipbook-fullscreen__btn:focus-visible {
  outline: 3px solid var(--white);
  outline-offset: 2px;
}

.flipbook-fullscreen__btn:disabled {
  opacity: 0.35;
  cursor: default;
}

.flipbook-fullscreen__zoom-value {
  min-width: 52px;
  color: rgba(255, 255, 255, 0.78);
  font-family: var(--font-display);
  font-size: 0.75rem;
  text-align: center;
}

.flipbook-fullscreen__stage {
  display: grid;
  place-items: start center;
  min-width: 0;
  min-height: 0;
  padding: 24px;
  overflow: auto;
  overscroll-behavior: contain;
}

.flipbook-fullscreen__img {
  display: block;
  width: 100%;
  max-width: 1100px;
  height: auto;
  margin: auto;
  transform-origin: top center;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.55);
}

@media (max-width: 639px) {
  .flipbook-fullscreen__bar {
    flex-wrap: wrap;
    min-height: 0;
    gap: 6px;
  }

  .flipbook-fullscreen__title {
    width: 100%;
    padding: 0;
  }

  .flipbook-fullscreen__tools {
    width: 100%;
    justify-content: space-between;
    gap: 3px;
  }

  .flipbook-fullscreen__tools .flipbook-fullscreen__btn {
    min-width: 39px;
    padding: 0 7px;
  }

  .flipbook-fullscreen__zoom-value {
    min-width: 40px;
  }

  .flipbook-fullscreen__stage {
    padding: 12px;
  }

  .flipbook-fullscreen__footer {
    justify-content: space-between;
  }
}

/* --------------------------------------------------------------------------
   I10. Impressão
   -------------------------------------------------------------------------- */

@media print {
  .snow,
  .mgf-toasts,
  .utility-bar__wish,
  .toys-status {
    display: none !important;
  }
}
