/*
Theme Name: Daemonz
Theme URI: https://daemonz.com.br
Author: Gustavo Sasaki
Description: Tema customizado para a loja Daemonz.
Version: 1.0
Text Domain: daemonz
*/
  :root{
    --cor-preto-puro:#000000;
    --cor-preto-web:#000C1D;
    --cor-azul-daemonz:#009DFF;
    --cor-vermelho-daemonz:#D70036;
    --cor-roxo:#29079D;
    --cor-branco:#FFFFFF;
    --cor-cinza-azulado:#5C5E67;
    --cor-cinza-escuro:#898989;
    --cor-cinza-medio:#BDBDBD;
    --cor-cinza-claro:#E0E0E0;
    --cor-streetwear:#FFCC00;
    --cor-games:#06DD89;
    --cor-dark-alternativo:#C40003;
    --cor-anime:#00A4EB;
    --cor-mistico:#9200C3;
    --cor-rpg:#F95F00;
    --cor-text:#1a1a1a;
    --cor-text-muted:#666666;
    --cor-text-light:#9a9a9a;
    --cor-gray-bg:#f4f4f4;
    --cor-border:#e3e3e3;
    --cor-star:#ffc107;
    --cor-link-blue:#1d5fb8;

    --cat-yellow:#f0c400;
    --cat-green:#2fa84f;
    --cat-blue:#1c97e5;
    --cat-gray:#9a9a9a;
    --cat-orange:#f2811d;

    --avatar-purple:#4b2fcb;
    --avatar-pink:#e31c5f;
    --avatar-blue:#1ca6e8;

  --font-heading: 'Titillium Web', Arial, sans-serif;
  --font-body: 'Titillium Web', Arial, Helvetica, sans-serif;

    --space-1:4px;
    --space-2:8px;
    --space-3:12px;
    --space-4:16px;
    --space-5:24px;
    --space-6:32px;
    --space-7:48px;
    --space-8:64px;
    --space-9:85px;
    --space-10:120px;

    --radius-sm:4px;
    --radius-md:8px;
    --radius-full:999px;

    --container-max:1680px;
    --shadow-card:0 2px 10px rgba(0,0,0,0.08);
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{
    max-width: 100%;
    overflow-x: hidden;
    scroll-behavior:smooth;
  }
  body{
    max-width: 100%;
    overflow-x: hidden;
    margin:0;
    font-family:var(--font-body);
    color:var(--cor-text);
    background:var(--cor-branco);
    -webkit-font-smoothing:antialiased;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;cursor:pointer;}
  ul{list-style:none;margin:0;padding:0;}
  h1,h2,h3,p{margin:0;}

  .container{
    max-width:var(--container-max);
    margin:0 auto;
    padding:0 var(--space-7);
  }

  /* ============ HEADER ============ */
  .header{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    background: linear-gradient(to bottom, var(--cor-preto-puro), var(--cor-preto-web));
    color:var(--cor-branco);
    transition: background .3s ease, backdrop-filter .3s ease;
  }
  .header.is-scrolled{
    background: linear-gradient(to bottom, var(--cor-preto-puro), rgba(0,12,29,0.85));
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }
  .header.is-searching{
    background: linear-gradient(to bottom, var(--cor-preto-puro), var(--cor-preto-web));
    background-size: 100% 500px;
    background-attachment: fixed;
    background-position: top;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .header__top{
    position: relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:var(--space-4) var(--space-7) 10px;
  }
  .header__logo img{height:44px;}
  .header__spacer{width:110px;}
  .header__logo-wrap{flex:1;display:flex;justify-content:center;}
  .header__actions{
    display:flex;
    align-items:center;
    gap:var(--space-5);
    width:110px;
    justify-content:flex-end;
  }
  .header__icon-btn{
    background:none;
    border:none;
    color:var(--cor-branco);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:2px;
  }
  #sacola{position:relative;}
  #sacola svg:hover{color:var(--cor-vermelho-daemonz)}
  #usuario svg:hover{color:var(--cor-azul-daemonz)}
  .header__icon-btn svg{width:23px;height:23px;}
  .header__icon-badge{
    position:absolute;
    top:-4px;
    right:-6px;
    min-width:16px;
    height:16px;
    padding:0 3px;
    border-radius:8px;
    background:var(--cor-vermelho-daemonz);
    border:2px solid var(--cor-preto-web);
    color:var(--cor-branco);
    font-size:10px;
    font-weight:800;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .header__icon-badge[hidden]{display:none;}

  /* ============ USER MENU (logado) ============ */
  .user-menu{position:relative;}
  .user-menu__trigger{position:relative;}
  .user-menu__badge{
    position:absolute;
    right:-2px;
    bottom:-2px;
    width:14px;
    height:14px;
    border-radius:50%;
    background:var(--cor-azul-daemonz);
    border:2px solid var(--cor-preto-web);
    color:var(--cor-branco);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .user-menu__badge svg{width:8px;height:8px;}
  /* Sem isto, "display:flex" acima empata em especificidade com o [hidden]
     padrao do navegador e vence por vir depois no CSS - o badge aparecia
     mesmo deslogado, com o atributo hidden presente. Nao remover. */
  .user-menu__badge[hidden]{display:none;}
  .user-menu__dropdown{
    position:absolute;
    top:calc(100% + var(--space-3));
    right:0;
    width:260px;
    background:var(--cor-branco);
    border-radius:var(--radius-md);
    box-shadow:0 12px 30px rgba(0,0,0,0.25);
    overflow:hidden;
    z-index:60;
  }
  .user-menu__dropdown::before{
    content:"";
    position:absolute;
    top:-8px;
    right:14px;
    width:14px;
    height:14px;
    background:var(--cor-preto-web);
    transform:rotate(45deg);
  }
  .user-menu__dropdown-header{
    position:relative;
    display:flex;
    align-items:center;
    gap:var(--space-3);
    background:var(--cor-preto-web);
    color:var(--cor-branco);
    padding:var(--space-4);
  }
  .user-menu__avatar{
    flex:0 0 auto;
    width:40px;
    height:40px;
    border-radius:50%;
    background:var(--cor-azul-daemonz);
    color:var(--cor-branco);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .user-menu__avatar svg{width:20px;height:20px;}
  .user-menu__greeting{font-size:14px;line-height:1.3;}
  .user-menu__greeting span{color:var(--cor-azul-daemonz);font-weight:800;}
  .user-menu__dropdown-list{padding:var(--space-2) 0;}
  .user-menu__dropdown-list li{display:block;}
  .user-menu__dropdown-list a,
  .user-menu__dropdown-list button{
    display:flex;
    align-items:center;
    gap:var(--space-3);
    width:100%;
    padding:var(--space-3) var(--space-4);
    background:none;
    border:none;
    color:var(--cor-text);
    font-size:14px;
    font-family:inherit;
    text-align:left;
  }
  .user-menu__dropdown-list a:hover,
  .user-menu__dropdown-list button:hover{background:var(--cor-gray-bg);}
  .user-menu__dropdown-list a svg,
  .user-menu__dropdown-list button svg{width:18px;height:18px;color:var(--cor-azul-daemonz);flex-shrink:0;}
  .user-menu__logout{color:var(--cor-vermelho-daemonz) !important;}
  .user-menu__logout svg{color:var(--cor-vermelho-daemonz) !important;}

  .nav{
    position: relative;
  }
  .nav__list{
    display:flex;
    justify-content:center;
    gap:var(--space-8);
  }
  .nav__link{
    display: inline-block;
    padding: var(--space-2) 0;
    font-size:13px;
    letter-spacing:0.06em;
    font-weight:00;
    color:var(--cor-branco);
    opacity:0.92;
  }
  .nav__link:hover{opacity:1;color:var(--cor-azul-daemonz);}

  @property --edge-color{
    syntax: '<color>';
    inherits: true;
    initial-value: #ffffff;
  }

  .nav__dropdown{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    --edge-color: #ffffff;
    padding: var(--space-3) 0;
    background: linear-gradient(to right,
      var(--edge-color) 0%,
      #010A19 38%,
      #000 50%,
      #010A19 62%,
      var(--edge-color) 100%);
    box-shadow: 0 4px 4px rgba(0,0,0,0.25);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s, --edge-color .25s ease;
    pointer-events: none;
  }
  .nav__dropdown.is-open{
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
  }
  .nav__dropdown-list{
    display:flex;
    justify-content:center;
    gap:var(--space-9);
  }
  .nav__dropdown-grid{
    display:grid;
    grid-template-columns: repeat(3, auto);
    justify-content:center;
    column-gap:var(--space-9);
    row-gap:var(--space-5);
  }
  .nav__dropdown-link{
    font-size:15px;
    letter-spacing:0.06em;
    color:var(--cor-branco);
    opacity:0.85;
    white-space: nowrap;
  }
  .nav__dropdown-link:hover{color:var(--cor-azul-daemonz);opacity:1;}

  .nav:has(.nav__dropdown-link--games:hover) .nav__dropdown--estilos{--edge-color:var(--cor-games);}
  .nav:has(.nav__dropdown-link--rpg:hover) .nav__dropdown--estilos{--edge-color:var(--cor-rpg);}
  .nav:has(.nav__dropdown-link--dark:hover) .nav__dropdown--estilos{--edge-color:var(--cor-dark-alternativo);}
  .nav:has(.nav__dropdown-link--anime:hover) .nav__dropdown--estilos{--edge-color:var(--cor-anime);}
  .nav:has(.nav__dropdown-link--mistico:hover) .nav__dropdown--estilos{--edge-color:var(--cor-mistico);}
  .nav:has(.nav__dropdown-link--streetwear:hover) .nav__dropdown--estilos{--edge-color:var(--cor-streetwear);}

  .nav__dropdown-link--games:hover{color:var(--cor-games);}
  .nav__dropdown-link--rpg:hover{color:var(--cor-rpg);}
  .nav__dropdown-link--dark:hover{color:var(--cor-dark-alternativo);}
  .nav__dropdown-link--anime:hover{color:var(--cor-anime);}
  .nav__dropdown-link--mistico:hover{color:var(--cor-mistico);}
  .nav__dropdown-link--streetwear:hover{color:var(--cor-streetwear);}

  .hamburger{
    display:none;
    background:none;
    border:none;
    color:var(--cor-branco);
    flex-direction:column;
    gap:5px;
    padding:8px;
  }
  .hamburger span{
    width:24px;
    height:2px;
    background:var(--cor-branco);
    display:block;
    transition:transform .25s ease, opacity .25s ease;
  }
  .hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
  .hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  .nav__list{
    max-height:500px;
    overflow:hidden;
    transition:max-height .35s ease, padding .35s ease;
  }

  /* ============ SEARCH OVERLAY ============ */
  .nav{
    opacity: 1;
    transition: opacity .2s ease;
  }
  .header.is-searching .nav{
    opacity: 0;
    pointer-events: none;
  }
  .header__actions{
    transition: opacity .2s ease, visibility .2s ease;
  }
  .header.is-searching .header__actions{
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .search-overlay{
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1;
    background: linear-gradient(to bottom, var(--cor-preto-puro), var(--cor-preto-web));
    background-size: 100% 500px;
    background-attachment: fixed;
    background-position: top;
    text-align: center;
    padding: 0 var(--space-7);
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: max-height .45s ease, opacity .3s ease, padding .45s ease;
  }
  .header.is-searching .search-overlay{
    max-height: 340px;
    opacity: 1;
    padding: var(--space-5) var(--space-7) var(--space-7);
    pointer-events: auto;
  }
  .search-overlay__cancel{
    position: absolute;
    top: 50%;
    right: var(--space-7);
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--cor-branco);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.06em;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
  }
  .header.is-searching .search-overlay__cancel{
    opacity: 0.92;
    visibility: visible;
    pointer-events: auto;
  }
  .search-overlay__cancel:hover{
    opacity: 1;
    color: var(--cor-azul-daemonz);
  }
  .search-overlay__form{
    margin-bottom: var(--space-5);
  }
  .search-overlay__input-wrap{
    position: relative;
    max-width: 526px;
    margin: 0 auto;
  }
  .search-overlay__input-wrap svg{
    position: absolute;
    left: var(--space-4);
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    color: var(--cor-text-muted);
    pointer-events: none;
  }
  .search-overlay__input{
    width: 100%;
    padding: var(--space-2) var(--space-2) var(--space-2) 44px;
    border: none;
    border-radius: var(--radius-sm);
    background: var(--cor-branco);
    color: var(--cor-text);
    font-family: inherit;
    font-size: 14px;
  }
  .search-overlay__input::placeholder{
    color: var(--cor-text-light);
  }
  .search-overlay__input:focus{
    outline: 2px solid var(--cor-azul-daemonz);
    outline-offset: 2px;
  }
  .search-overlay__suggestions-title{
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: var(--cor-branco);
    margin-bottom: var(--space-3);
  }
  .search-overlay__terms{
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-3);
    min-height: 42px;
  }
  .search-overlay__term{
    padding: var(--space-2) var(--space-5);
    border: 1px solid var(--cor-branco);
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--cor-branco);
    font-size: 13px;
    font-weight: 700;
  }
  .search-overlay__term:hover,
  .search-overlay__term.is-active{
    background: var(--cor-azul-daemonz);
    border-color: var(--cor-azul-daemonz);
  }

  /* ============ HERO ============ */
  .hero{
    width: 100%;
    position:relative;
    min-height:440px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    text-align:center;
    margin: 0;
    padding: 0;
  }
  .hero__deco{
    position:absolute;
    top:0;
    height:100%;
    width:32%;
    opacity:0.55;
    pointer-events:none;
  }
  .hero__deco--left{
    left:0;background:linear-gradient(120deg, rgba(75,47,203,0.35), transparent 70%);
  }
  .hero__deco--right{
    right:0;background:linear-gradient(240deg, rgba(75,47,203,0.35), transparent 70%);
  }
  .hero__content{
    width: 100%;
    margin: 0;
    padding: 0;
    position:relative;
    z-index:2;
  }
  .hero__banner {
    width: 100%;
    display: block;
    border: none;
    margin: 0;
    aspect-ratio: 16 / 6.6;
    object-fit: cover;
    object-position: center;
  }

  .hero__tagline{
    color:var(--cor-branco);
    font-size:24px;
    font-weight:700;
    letter-spacing:0.14em;
    display:inline-block;
    padding-bottom:var(--space-3);
    
    position: absolute;
    z-index: 10;
    top: 72%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .colecoes-page-spacer{height:var(--space-9);}

  .collection-banner{display:block;width:100%;}
  .collection-banner img{width:100%;display:block;}

  /* ============ TICKER ============ */
  .ticker{
    background:var(--cor-roxo);
    color:var(--cor-branco);
    overflow:hidden;
    white-space:nowrap;
  }
  .ticker__track{
    display:inline-flex;
    overflow:hidden;
    align-items:center;
    padding:var(--space-3) 0;
    animation:ticker-scroll 44s linear infinite;
  }
  .ticker__item{
    font-size:14px;
    font-weight:600;
    letter-spacing:0.04em;
    padding:0 var(--space-6);
    position:relative;
  }
  .ticker__item + .ticker__item::before{
    content:"";
    position:absolute;
    left:-2px;
    top:50%;
    transform:translateY(-50%);
    width:4px;
    height:4px;
    border-radius:50%;
    background:rgba(255,255,255,0.6);
  }
  @keyframes ticker-scroll{
    0%{transform:translateX(0);}
    100%{transform:translateX(-50%);}
  }

  /* ============ SECTION HEADINGS ============ */
  .section{padding:var(--space-8) var(--space-7);}
  .section__title{
    text-align:center;
    font-size:30px;
    font-weight:800;
    letter-spacing:0.03em;
    margin-bottom:var(--space-6);
  }
  .section__title--left{
    text-align:left;
    max-width:var(--container-max);
    margin:0 auto var(--space-5);
    display:flex;
    align-items:center;
    gap:var(--space-2);
    font-size:24px;
  }
  .section__title--left a{color:inherit;}
  .section__title--pink{color:var(--cor-vermelho-daemonz);}
  .section__subtitle{
    max-width:var(--container-max);
    margin:calc(-1 * var(--space-3)) auto var(--space-5);
    font-size:14px;
    color:var(--cor-text-muted);
  }
  .section__view-all{text-align:center;margin-top:var(--space-5);}
  .section__view-all a{
    display:inline-flex;
    align-items:center;
    gap:var(--space-1);
    padding:var(--space-2) var(--space-5);
    background:var(--cor-gray-bg);
    border-radius:var(--radius-full);
    font-size:13px;
    font-weight:700;
  }
  .section__view-all a:hover{background:var(--cor-cinza-claro);}

  /* ============ CAROUSEL WRAPPER ============ */
  .carousel{
    max-width:var(--container-max);
    width: 100%;
    margin:0 auto;
    display:flex;
    align-items:center;
    gap:var(--space-4);
    overflow: hidden;
  }
  .carousel__arrow{
    flex:0 0 auto;
    width:44px;
    height:44px;
    border-radius:50%;
    border:none;
    background:var(--cor-gray-bg);
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--cor-text);
    transition:background .2s ease;
  }
  .carousel__arrow:hover{background:#e6e6e6;}
  .carousel__arrow svg{width:16px;height:16px;}
  .carousel__track{
    flex:1 1 auto;
    position: relative;
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: safe center;
    gap: var(--space-6);
    overflow: hidden;
    --card-w: 204px;
    --card-h: 277px;
    --gap: var(--space-5);
    --scale-inner: 0.86;
    --scale-edge: 0.7;
  }
  .carousel__track::-webkit-scrollbar{display:none;}

  /* Carrossel de categorias (cover flow): posicionamento proprio via JS,
     nao precisa de flex/scroll do trilho generico acima. */
  #catTrack{
    display: block;
    height: 290px;
    overflow: visible;
  }

  /* ============ CATEGORIES ============ */

  .category-card {
    position: absolute;
    bottom: 0;
    left: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    transform-origin: bottom center;
    transition: transform 0.5s cubic-bezier(0.22, 0.61, 0.36, 1), opacity 0.5s ease;
    will-change: transform, opacity;
  }

  .category-card__img-wrap {
    position: relative;
    width: var(--card-w);
    height: var(--card-h);
    overflow: hidden; /* Corta qualquer pedaço da imagem que tentar sair da caixa */
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .category-card__img-wrap img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
  }

  .category-card__label{
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      margin: 0;
      background: linear-gradient(to bottom, rgba(0,0,0,0) 0%, var(--cor-preto-puro) 100%);
      color: var(--cor-branco);
      font-size:16px;
      font-weight:500;
      letter-spacing:0.05em;
      text-align: center;
      padding: var(--space-3) var(--space-2);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
  }

  .category-card::after{
      content: "";
      display: block;
      width: var(--card-w);
      height: 5px;
      background: var(--cat-color, transparent);
  }
  .category-card--streetwear{--cat-color:var(--cor-streetwear);}
  .category-card--games{--cat-color:var(--cor-games);}
  .category-card--animes{--cat-color:var(--cor-anime);}
  .category-card--mistico{--cat-color:var(--cor-mistico);}
  .category-card--rpg{--cat-color:var(--cor-rpg);}

  /* ============ RESPONSIVIDADE (CELULARES E TABLETS) ============ */
  @media (max-width: 768px) {
    .carousel__track {
      --card-w: 140px;
      --card-h: 190px;
      --gap: 10px;
    }
    #catTrack {
      height: 200px;
    }

    /* Esconde as extremas direita e esquerda para caber na tela */
    .card--edge {
      opacity: 0 !important;
      pointer-events: none;
    }

    /* Diminui um pouco as setas para não roubar espaço das imagens */
    .carousel__arrow {
      width: 32px;
      height: 32px;
    }
  }

  /* ============ PRODUCT CARDS ============ */
  .product-card{
    flex:0 0 auto;
    width:366px;
    border:1px solid var(--cor-border);
    border-radius:var(--radius-md);
    overflow:hidden;
    box-shadow:var(--shadow-card);
    background:var(--cor-branco);
    position:relative;
    transition:transform .5s cubic-bezier(0.22, 0.61, 0.36, 1), opacity .5s ease;
  }
  .product-card__img-wrap{
    width:100%;
    height:416px;
    background:var(--cor-gray-bg);
    position:relative;
    overflow:hidden;
  }
  .product-card__img-wrap img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .4s ease;
    transform-origin:50% 40%;
  }
  .product-card:hover .product-card__img-wrap img{transform:scale(1.18);}
  .product-card__badge{
    position:absolute;
    top:var(--space-3);
    right:var(--space-3);
    background:var(--cor-vermelho-daemonz);
    color:var(--cor-branco);
    width:52px;
    height:52px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    font-size:11px;
    font-weight:800;
    line-height:1.1;
    text-align:center;
  }
  .product-card__body{padding:var(--space-4) var(--space-1) var(--space-5);text-align:center;}
  .product-card__name{
    font-size:18px;
    font-weight:700;
    margin-bottom:var(--space-2);
  }
  .product-card__name:hover{color:var(--cor-vermelho-daemonz);}
  .product-card__rating{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-1);
    margin-bottom:var(--space-2);
    font-size:12px;
    color:var(--cor-text-muted);
  }
  .product-card__stars{color:#d9d9d9;letter-spacing:1px;font-size:20px;}
  .product-card__price{font-size:24px;font-weight:700;margin-bottom:var(--space-1);}
  .product-card__installment{font-size:12px;color:var(--cor-link-blue);margin-bottom:var(--space-4);}
  .product-card__btn{
    display:block;
    width:70%;
    margin:0 auto;
    padding:var(--space-3) 0;
    background:var(--cor-preto-puro);
    color:var(--cor-branco);
    border:none;
    border-radius:var(--radius-sm);
    font-size:13px;
    font-weight:700;
    letter-spacing:0.03em;
    text-transform:none;
  }
  .product-card__btn:hover{background:var(--cor-roxo);}

  /* ============ ARTISTS ============ */
  .artists{
    display:flex;
    justify-content:center;
    gap:var(--space-8);
    max-width:var(--container-max);
    margin:0 auto;
    flex-wrap:wrap;
  }
  .artist-card{text-align:center;}
  .artist-card__avatar{
    width:150px;
    height:150px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    margin:0 auto var(--space-3);
    color:rgba(255,255,255,0.85);
  }
  .artist-card__avatar svg{width:36px;height:36px;}
  .artist-card__avatar--purple{background:var(--avatar-purple);}
  .artist-card__avatar--pink{background:var(--avatar-pink);}
  .artist-card__avatar--blue{background:var(--avatar-blue);}
  .artist-card__name{font-size:20px;font-weight:700;}

  /* ============ SEARCH BY PRODUCT ============ */
  .search-products{
    display:flex;
    justify-content:center;
    gap:var(--space-5);
    max-width:var(--container-max);
    margin:0 auto;
    flex-wrap:wrap;
  }
  .search-product-card{
    position:relative;
    width:220px;
    height:300px;
    border-radius:var(--radius-md);
    overflow:hidden;
    background:var(--cor-gray-bg);
  }
  .search-product-card:hover{
    border-bottom:3px solid var(--cor-vermelho-daemonz);
  }
  .search-product-card img{width:100%;height:100%;object-fit:cover;}
  .search-product-card__label{
    position:absolute;
    left:0;right:0;bottom:0;
    background:rgba(10,10,10,0.55);
    color:var(--cor-branco);
    font-size:13px;
    font-weight:800;
    letter-spacing:0.04em;
    text-align:center;
    padding:var(--space-3) 0;
  }

  /* ============ FOOTER ============ */
  .footer{
    background:var(--cor-preto-puro);
    color:var(--cor-branco);
    padding:0;
  }
  .footer__top{
    display:grid;
    grid-template-columns:1fr 2fr;
  }
  .footer__brand{
    background:var(--cor-preto-web);
    padding:var(--space-6) var(--space-7);
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  .footer__cols{
    background:var(--cor-preto-puro);
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:var(--space-10);
    padding:var(--space-6) var(--space-7);
  }
  .footer__brand img{height:40px;margin-bottom:var(--space-6);}
  .footer__newsletter-title{font-size:18px;font-weight:700;letter-spacing:0.04em;margin-bottom:var(--space-2);}
  .footer__newsletter-sub{font-size:14px;color:var(--cor-text-light);margin-bottom:var(--space-4);max-width:400px;}
  .footer__input{
    width:100%;
    max-width:463px;
    padding:var(--space-3) var(--space-3);
    margin-bottom:var(--space-3);
    border:none;
    border-radius:var(--radius-sm);
    background:var(--cor-branco);
    font-size:13px;
  }
  .footer__submit{
    width:100%;
    max-width:232px;
    margin-top:var(--space-3);
    padding:var(--space-3) var(--space-6);
    background:var(--cor-preto-puro);
    color:var(--cor-branco);
    border: 1px solid var(--cor-branco);
    border-radius:var(--radius-sm);
    font-size:13px;
    font-weight:700;
  }
  .footer__col-title{
    font-size:24px;
    font-weight:700;
    letter-spacing:0.04em;
    margin-bottom:var(--space-4);
  }
  .footer__col ul li{margin-bottom:var(--space-3);}
  .footer__col a{font-size:16px;color:var(--cor-text-light);}
  .footer__col a:hover{color:var(--cor-branco);}
  .footer__social{
    display:flex;
    align-items:center;
    align-self:flex-start;
    gap:var(--space-2);
    font-size:16px;
    color:var(--cor-text-light);
  }
  .footer__social img{width:26px;height:26px;}

  .footer__payments{
    background:var(--cor-branco);
    margin:0;
    padding:var(--space-5) var(--space-7);
    border-bottom:1px solid var(--cor-preto-puro);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-4);
    flex-wrap:wrap;
    font-size:11px;
    letter-spacing:0.05em;
    color:var(--cor-preto-puro);
  }
  .footer__payments img{height:20px;}
  .footer__copyright{
    background:var(--cor-branco);
    text-align:center;
    font-size:11px;
    color:var(--cor-preto-puro);
    padding:var(--space-4) var(--space-7);
  }
  .visually-hidden{
    position:absolute;
    width:1px;height:1px;
    padding:0;margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }

  /* ============ ACCOUNT MODAL ============ */
  .account-modal{
    position:fixed;
    inset:0;
    z-index:100;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:var(--space-5);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease, visibility .2s ease;
  }
  .account-modal.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .account-modal__backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.55);
  }
  .account-modal__box{
    position:relative;
    width:100%;
    max-width:600px;
    max-height:90vh;
    background:var(--cor-branco);
    border:1px solid var(--cor-cinza-azulado);
    border-radius:var(--radius-md);
    overflow-y:auto;
    overflow-x:hidden;
    box-shadow:0 12px 40px rgba(0,0,0,0.35);
    transform:scale(0.96);
    transition:transform .2s ease;
  }
  .account-modal.is-open .account-modal__box{
    transform:scale(1);
  }
  .account-modal__header{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--cor-preto-web);
    color:var(--cor-branco);
    padding:var(--space-3) var(--space-7);
  }
  .account-modal__title{
    font-size:18px;
    font-weight:800;
    letter-spacing:0.04em;
    text-align:center;
  }
  .account-modal__close{
    position:absolute;
    top:50%;
    right:var(--space-5);
    transform:translateY(-50%);
    width:28px;
    height:28px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,0.5);
    background:none;
    color:var(--cor-branco);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .account-modal__close:hover{border-color:var(--cor-branco);}
  .account-modal__close svg{width:16px;height:16px;}
  .account-modal__body{
    padding:var(--space-6) var(--space-7);
  }
  .account-modal__label{
    display:block;
    font-size:16px;
    font-weight:800;
    margin-bottom:var(--space-2);
  }
  .account-modal__required{color:var(--cor-vermelho-daemonz);margin-left:2px;}
  .account-modal__input-wrap{
    position:relative;
    margin-bottom:var(--space-5);
  }
  .account-modal__input-wrap > svg{
    position:absolute;
    left:var(--space-4);
    top:50%;
    transform:translateY(-50%);
    width:18px;
    height:18px;
    color:var(--cor-text-muted);
    pointer-events:none;
  }
  .account-modal__input{
    width:100%;
    padding:var(--space-2) var(--space-2) var(--space-3) 44px;
    border:1px solid var(--cor-cinza-escuro);
    border-radius:var(--radius-sm);
    font-family:inherit;
    font-size:14px;
    color:var(--cor-text);
  }
  .account-modal__input:focus{
    outline:none;
    border-color:var(--cor-azul-daemonz);
  }
  .account-modal__input.is-loading{opacity:0.6;}
  .account-modal__actions{
    display:flex;
    gap:var(--space-4);
    flex-wrap:wrap;
  }
  .account-modal__google,
  .account-modal__continue{
    flex:1 1 200px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    padding:var(--space-3) var(--space-4);
    border-radius:var(--radius-sm);
    font-family:inherit;
    font-size:14px;
    font-weight:700;
    transition:background .2s ease, border-color .2s ease;
  }
  /* Sem isto, um <svg> inline com viewBox mas sem width/height cai no
     tamanho padrao do navegador (300x150px) e infla o botao. Como os dois
     botoes sao flex items de .account-modal__actions (align-items:stretch
     por padrao), um botao inflado estica o irmao junto. Nao remover. */
  .account-modal__google svg,
  .account-modal__continue svg{
    width:16px;
    height:16px;
    flex-shrink:0;
  }
  .account-modal__google{
    background:var(--cor-branco);
    border:1px solid var(--cor-azul-daemonz);
    color:var(--cor-azul-daemonz);
  }
  .account-modal__google:hover{background:var(--cor-gray-bg);}
  .account-modal__continue{
    background:var(--cor-vermelho-daemonz);
    border:none;
    color:var(--cor-branco);
  }
  .account-modal__continue:hover{background:var(--cor-roxo);}

  /* ---- passos de cadastro/login (verificação de e-mail) ---- */
  .account-modal__subtitle{
    text-align:center;
    font-size:22px;
    font-weight:800;
    margin-bottom:var(--space-2);
  }
  .account-modal__hint{
    text-align:center;
    font-size:14px;
    color:var(--cor-text-muted);
    margin-bottom:var(--space-5);
  }
  .account-modal__identity{
    display:flex;
    align-items:center;
    gap:var(--space-4);
    margin-bottom:var(--space-6);
  }
  .account-modal__avatar{
    flex:0 0 auto;
    width:56px;
    height:56px;
    border-radius:50%;
    background:var(--cor-gray-bg);
    color:var(--cor-cinza-medio);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .account-modal__avatar svg{width:26px;height:26px;}
  .account-modal__avatar--filled{
    background:var(--cor-azul-daemonz);
    color:var(--cor-branco);
  }
  .account-modal__identity-name{font-size:15px;font-weight:800;}
  .account-modal__identity-email{font-size:14px;color:var(--cor-text-muted);}
  .account-modal__identity-switch{font-size:13px;color:var(--cor-text-muted);margin-top:var(--space-1);}
  .account-modal__link{
    background:none;
    border:none;
    padding:0;
    color:var(--cor-vermelho-daemonz);
    font-size:inherit;
    font-family:inherit;
    text-decoration:underline;
  }
  .account-modal__title-highlight{color:var(--cor-azul-daemonz);}

  .account-modal__input-wrap--password .account-modal__input{
    padding:var(--space-2) 44px var(--space-3) var(--space-4);
  }
  .account-modal__toggle-visibility{
    position:absolute;
    right:var(--space-4);
    top:50%;
    transform:translateY(-50%);
    background:none;
    border:none;
    color:var(--cor-text-muted);
    display:flex;
  }
  .account-modal__toggle-visibility svg{width:18px;height:18px;}

  .account-modal__rules{margin-bottom:var(--space-5);}
  .account-modal__rules-title{font-size:13px;margin-bottom:var(--space-2);}
  .account-modal__rules ul{display:flex;flex-direction:column;gap:var(--space-1);}
  .account-modal__rules li{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    font-size:13px;
    color:var(--cor-cinza-medio);
  }
  .account-modal__rules li svg{width:16px;height:16px;flex-shrink:0;}
  .account-modal__rules li.is-valid{color:var(--cor-azul-daemonz);}

  .account-modal__error{
    font-size:13px;
    color:var(--cor-vermelho-daemonz);
    margin:0 0 var(--space-4);
  }
  .account-modal__login-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:var(--space-3);
    margin-bottom:var(--space-5);
  }
  .account-modal__checkbox{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    font-size:13px;
    color:var(--cor-text-muted);
  }
  .account-modal__submit{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    width:100%;
    padding:var(--space-3) var(--space-4);
    background:var(--cor-vermelho-daemonz);
    color:var(--cor-branco);
    border:none;
    border-radius:var(--radius-sm);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.03em;
  }
  .account-modal__submit svg{width:16px;height:16px;}
  .account-modal__submit:hover{background:var(--cor-roxo);}
  .account-modal__submit.is-loading,
  .account-modal__continue.is-loading,
  .account-modal__submit:disabled,
  .account-modal__continue:disabled{opacity:0.6;pointer-events:none;}

  /* ---- input sem ícone à esquerda (código, nome, usuário) ---- */
  .account-modal__input--plain{padding-left:var(--space-4);}
  .account-modal__input--plain:disabled{
    background:var(--cor-gray-bg);
    color:var(--cor-text-muted);
    cursor:default;
  }
  .account-modal__input--code{
    text-align:center;
    letter-spacing:0.3em;
    font-size:18px;
    font-weight:700;
  }

  /* ---- passo de verificação por código ---- */
  .account-modal__countdown{
    font-size:13px;
    color:var(--cor-text-muted);
    text-align:center;
    margin:calc(-1 * var(--space-3)) 0 var(--space-4);
    min-height:1em;
  }
  .account-modal__verify-links{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:var(--space-3);
    margin-bottom:var(--space-5);
    font-size:13px;
  }
  .account-modal__link--muted{color:var(--cor-text-muted);text-decoration:none;}
  .account-modal__link:disabled{color:var(--cor-cinza-medio);cursor:default;}

  /* ---- passo de perfil ---- */
  .account-modal__name-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-4);
  }

  /* ============ TABLET ============ */
  @media (max-width:1024px){
    .container,.section,.header__top{padding-left:var(--space-5);padding-right:var(--space-5);}
    .search-overlay__cancel{right:var(--space-5);}
    .hamburger{display:flex;}
    .nav{position:relative;}
    .nav__list{
      flex-direction:column;
      align-items:flex-start;
      gap:var(--space-4);
      padding:0 var(--space-5);
      max-height:0;
    }
    .nav__list.is-open{
      max-height:400px;
      padding:var(--space-4) var(--space-5);
    }
    .header__top{padding:var(--space-4) var(--space-5);}
    .header__actions{width:150px;gap:var(--space-3);}
    .header__spacer{width:150px;}
    .hero__logo{font-size:56px;}
    .footer__top{grid-template-columns:1fr 1fr;}

    /* Dropdowns Estilos/Produtos: de flyout horizontal para lista empilhada,
       já que essa faixa de largura usa o menu hambúrguer, não o hover.
       Usa max-height (como o .nav__list) em vez de opacity/visibility para
       não reservar espaço invisível dentro do header fixo quando fechado. */
    .nav__dropdown{
      position:static;
      background:var(--cor-preto-web);
      opacity:1;
      visibility:visible;
      transform:none;
      max-height:0;
      overflow:hidden;
      padding:0 var(--space-5);
      transition:max-height .3s ease, padding .3s ease;
    }
    .nav__dropdown.is-open{
      max-height:400px;
      padding:var(--space-3) var(--space-5);
    }
    .nav__dropdown-grid{
      grid-template-columns:1fr;
      justify-content:start;
      row-gap:var(--space-3);
    }
    .nav__dropdown-list{
      flex-direction:column;
      align-items:flex-start;
      gap:var(--space-3);
    }
    .nav__dropdown-link{white-space:normal;}
  }

  /* ============ ACCOUNT PAGE (Minha Conta) ============ */
  .account-page{padding:calc(var(--space-9) + var(--space-6)) var(--space-7) var(--space-8);}
  .account-page__container{max-width:var(--container-max);margin:0 auto;}
  .account-page__crumb{
    font-size:13px;
    color:var(--cor-text-muted);
    margin-bottom:var(--space-6);
  }
  .account-page__crumb a{color:var(--cor-link-blue);}
  .account-page__layout{
    display:grid;
    grid-template-columns:260px 1fr;
    gap:var(--space-7);
    align-items:start;
  }

  .account-page__sidebar{
    background:var(--cor-gray-bg);
    border-radius:var(--radius-md);
    padding:var(--space-5);
  }
  .account-page__sidebar-greeting{
    display:flex;
    align-items:center;
    gap:var(--space-3);
    margin-bottom:var(--space-5);
    font-weight:700;
  }
  .account-page__avatar{
    flex:0 0 auto;
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--cor-azul-daemonz);
    color:var(--cor-branco);
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .account-page__avatar svg{width:22px;height:22px;}
  .account-page__sidebar-greeting span{color:var(--cor-link-blue);}
  .account-page__nav-title{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    font-size:14px;
    font-weight:800;
    padding:var(--space-2) 0;
  }
  .account-page__nav-title svg{width:18px;height:18px;color:var(--cor-text);}
  .account-page__nav-title--link{color:var(--cor-text);margin-top:var(--space-3);}
  .account-page__nav-title--link.is-active,
  .account-page__nav-title--link.is-active svg{color:var(--cor-link-blue);}
  .account-page__nav-sub{margin:0 0 0 var(--space-6);}
  .account-page__nav-sub li a{
    display:block;
    padding:var(--space-2) 0;
    font-size:13px;
    color:var(--cor-text-muted);
  }
  .account-page__nav-sub li a.is-active{color:var(--cor-link-blue);font-weight:700;}
  .account-page__nav-sub li a:hover{color:var(--cor-text);}

  .account-page__panel-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:var(--space-6);
  }
  .account-page__title{font-size:24px;font-weight:800;margin-bottom:var(--space-6);}
  .account-page__panel-header .account-page__title{margin-bottom:0;}
  .account-page__add-btn{
    padding:var(--space-3) var(--space-5);
    background:var(--cor-vermelho-daemonz);
    color:var(--cor-branco);
    border:none;
    border-radius:var(--radius-sm);
    font-size:13px;
    font-weight:700;
  }
  .account-page__add-btn:hover{background:var(--cor-roxo);}
  .account-page__empty{color:var(--cor-text-muted);font-size:14px;}
  .account-page__success{color:var(--cor-azul-daemonz);font-size:13px;margin-bottom:var(--space-4);}
  .account-page__form{max-width:480px;}
  .account-page__form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);}
  .account-page__form-row--actions{grid-template-columns:1fr 1fr;margin-top:var(--space-2);}

  /* ---- Dados da conta (Configurações da conta) ---- */
  .account-data-form{max-width:760px;}
  .account-data-form .account-page__form-row{margin-bottom:var(--space-2);}
  .account-data-field{position:relative;margin-bottom:var(--space-2);}
  .account-data-field .account-modal__input{padding-right:80px;}
  .account-data-field__alter{
    position:absolute;
    right:var(--space-4);
    top:50%;
    transform:translateY(-50%);
    background:none;
    border:none;
    padding:0;
    color:var(--cor-vermelho-daemonz);
    font-family:inherit;
    font-size:13px;
    font-weight:700;
  }
  .account-data-field__alter:hover{color:var(--cor-roxo);}
  .account-data-field--edit{margin-top:var(--space-2);}
  .account-data-field--edit .account-modal__input{padding-right:var(--space-4);}
  .account-data-field--phone{display:flex;gap:var(--space-2);}
  .account-data-field--phone .account-data-field__ddi{flex:0 0 96px;padding-right:var(--space-4);}
  .account-data-field--phone .account-modal__input:not(.account-data-field__ddi){flex:1;}
  .account-data-form__hint{
    font-size:12px;
    color:var(--cor-text-muted);
    margin:calc(-1 * var(--space-1)) 0 var(--space-4);
  }
  .account-data-form__save{width:100%;}
  .account-page__checkbox-label{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    font-size:12px;
    color:var(--cor-text-muted);
    margin:calc(-1 * var(--space-3)) 0 var(--space-4);
  }
  .account-page__optional{font-weight:400;color:var(--cor-text-muted);}
  .account-page__cancel-btn{
    padding:var(--space-3) var(--space-4);
    background:var(--cor-gray-bg);
    color:var(--cor-text-muted);
    border:none;
    border-radius:var(--radius-sm);
    font-size:14px;
    font-weight:700;
  }
  .account-modal__box--wide{max-width:760px;}

  /* ---- cards de endereço ---- */
  .address-list{display:flex;flex-direction:column;gap:var(--space-4);}
  .address-card{
    position:relative;
    border:1px solid var(--cor-border);
    border-radius:var(--radius-md);
    padding:var(--space-5);
    font-size:14px;
    color:var(--cor-text);
  }
  .address-card p{margin-bottom:var(--space-1);}
  .address-card__name{font-weight:800;margin-bottom:var(--space-2) !important;}
  .address-card__actions{
    position:absolute;
    top:var(--space-4);
    right:var(--space-5);
    display:flex;
    gap:var(--space-4);
  }
  .address-card__link{
    background:none;
    border:none;
    font-size:13px;
    color:var(--cor-link-blue);
    text-decoration:underline;
  }
  .address-card__link--danger{color:var(--cor-vermelho-daemonz);}

  /* ---- cards de pedido ---- */
  .order-list{display:flex;flex-direction:column;gap:var(--space-5);}
  .order-card{border:1px solid var(--cor-border);border-radius:var(--radius-md);overflow:hidden;}
  .order-card__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    background:var(--cor-gray-bg);
    padding:var(--space-4) var(--space-5);
    font-size:13px;
  }
  .order-card__number{display:block;font-weight:700;}
  .order-card__date{display:block;color:var(--cor-text-muted);margin-top:var(--space-1);}
  .order-card__status{color:var(--cor-link-blue);font-weight:700;}
  .order-card__summary{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:var(--space-4) var(--space-5) 0;
    font-size:14px;
    font-weight:700;
  }
  .order-card__item{
    display:flex;
    align-items:center;
    gap:var(--space-4);
    padding:var(--space-4) var(--space-5);
    border-bottom:1px solid var(--cor-border);
  }
  .order-card__item img{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;background:var(--cor-gray-bg);}
  .order-card__item-info{flex:1 1 auto;}
  .order-card__item-info p{font-weight:700;font-size:14px;margin-bottom:var(--space-1);}
  .order-card__item-info span{font-size:13px;color:var(--cor-text-muted);}
  .order-card__item-price{font-size:14px;color:var(--cor-text-muted);}
  .order-card__actions{
    display:flex;
    gap:var(--space-4);
    padding:var(--space-5);
  }
  .order-card__btn{
    flex:1 1 0;
    padding:var(--space-3) var(--space-4);
    background:var(--cor-gray-bg);
    color:var(--cor-text-muted);
    border:none;
    border-radius:var(--radius-sm);
    font-size:13px;
    font-weight:700;
  }
  .order-card__btn--primary{background:var(--cor-vermelho-daemonz);color:var(--cor-branco);}
  .order-card__btn--primary:hover{background:var(--cor-roxo);}

  /* ============ SACOLA (carrinho) ============ */
  .cart-drawer{
    position:fixed;
    inset:0;
    z-index:110;
    visibility:hidden;
    pointer-events:none;
  }
  .cart-drawer.is-open{visibility:visible;pointer-events:auto;}
  .cart-drawer__backdrop{
    position:absolute;
    inset:0;
    background:transparent;
  }
  .cart-drawer__panel{
    position:absolute;
    top:var(--space-5);
    right:var(--space-5);
    bottom:var(--space-5);
    width:100%;
    max-width:420px;
    background:var(--cor-branco);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border-radius:var(--radius-md);
    transform:translateX(calc(100% + var(--space-5)));
    transition:transform .25s ease;
    box-shadow:-8px 0 30px rgba(0,0,0,0.25);
  }
  .cart-drawer.is-open .cart-drawer__panel{transform:translateX(0);}
  .cart-drawer__header{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:var(--space-4) var(--space-8);
    background:var(--cor-preto-web);
    color:var(--cor-branco);
    text-align:center;
  }
  .cart-drawer__title{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    font-size:16px;
    font-weight:800;
  }
  .cart-drawer__title svg{width:20px;height:20px;flex-shrink:0;}
  .cart-drawer__count{font-weight:400;color:var(--cor-cinza-medio);}
  .cart-drawer__close{
    position:absolute;
    right:var(--space-4);
    top:50%;
    transform:translateY(-50%);
    background:none;
    border:1px solid rgba(255,255,255,0.4);
    border-radius:50%;
    width:28px;
    height:28px;
    color:var(--cor-branco);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
  }
  .cart-drawer__close svg{width:14px;height:14px;}

  .cart-drawer__promo{
    --promo-fill:0%;
    padding:var(--space-3) var(--space-4);
    background:linear-gradient(to right, var(--cor-vermelho-daemonz) var(--promo-fill), var(--cor-cinza-medio) var(--promo-fill));
    transition:background .3s ease;
  }
  .cart-drawer__promo-text{
    display:block;
    text-align:center;
    color:var(--cor-branco);
    font-size:13px;
    font-weight:700;
  }

  .cart-drawer__items{
    flex:1;
    overflow-y:auto;
    padding:var(--space-4) var(--space-5);
  }
  .cart-drawer__empty[hidden]{display:none;}
  .cart-drawer__empty{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--cor-text-muted);
    font-size:14px;
    padding:var(--space-6);
  }

  .cart-item{
    display:flex;
    gap:var(--space-3);
    padding:var(--space-4) 0;
    border-bottom:1px solid var(--cor-border);
  }
  .cart-item:first-child{padding-top:0;}
  .cart-item__img{
    flex:0 0 auto;
    width:72px;
    height:88px;
    border-radius:var(--radius-sm);
    overflow:hidden;
    background:var(--cor-gray-bg);
  }
  .cart-item__img img{width:100%;height:100%;object-fit:cover;}
  .cart-item__body{flex:1;min-width:0;}
  .cart-item__header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:var(--space-2);
  }
  .cart-item__name{font-size:14px;font-weight:700;}
  .cart-item__remove{
    background:none;
    border:none;
    color:var(--cor-cinza-escuro);
    flex:0 0 auto;
  }
  .cart-item__remove svg{width:16px;height:16px;}
  .cart-item__remove:hover{color:var(--cor-vermelho-daemonz);}
  .cart-item__variants{
    display:flex;
    gap:var(--space-2);
    margin:var(--space-2) 0;
  }
  .cart-item__select-wrap{position:relative;display:inline-flex;align-items:center;}
  .cart-item__select-wrap--color .cart-item__select{padding-left:26px;}
  .cart-item__color-dot{
    position:absolute;
    left:var(--space-2);
    top:50%;
    transform:translateY(-50%);
    width:10px;
    height:10px;
    border-radius:50%;
    border:1px solid var(--cor-cinza-escuro);
    pointer-events:none;
  }
  .cart-item__color-dot[hidden]{display:none;}
  .cart-item__select{
    padding:var(--space-1) var(--space-2);
    border:1px solid var(--cor-cinza-escuro);
    border-radius:var(--radius-sm);
    font-family:inherit;
    font-size:12px;
    background:var(--cor-branco);
  }
  .cart-item__footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:var(--space-2);
  }
  .cart-item__qty{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    border:1px solid var(--cor-cinza-escuro);
    border-radius:var(--radius-sm);
    padding:2px var(--space-1);
  }
  .cart-item__qty button{
    background:none;
    border:none;
    width:20px;
    height:20px;
    font-size:14px;
    line-height:1;
  }
  .cart-item__qty span{font-size:13px;min-width:14px;text-align:center;}
  .cart-item__price{font-size:14px;}

  .cart-drawer__footer{
    padding:var(--space-4) var(--space-5) var(--space-5);
    border-top:1px solid var(--cor-border);
  }
  .cart-drawer__shipping-row{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    font-size:13px;
    font-weight:700;
    margin-bottom:var(--space-3);
  }
  .cart-drawer__cep-input{
    flex:1;
    padding:var(--space-2) var(--space-3);
    border:1px solid var(--cor-cinza-escuro);
    border-radius:var(--radius-sm);
    font-family:inherit;
    font-size:13px;
  }
  .cart-drawer__cep-btn{
    padding:var(--space-2) var(--space-4);
    background:var(--cor-preto-web);
    color:var(--cor-branco);
    border:none;
    border-radius:var(--radius-sm);
    font-size:13px;
    font-weight:700;
  }
  .cart-drawer__shipping-result[hidden]{display:none;}
  .cart-drawer__shipping-result{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:var(--space-3);
    padding:var(--space-3);
    background:#eaf4ff;
    border:1px solid var(--cor-azul-daemonz);
    border-radius:var(--radius-sm);
    font-size:13px;
    margin-bottom:var(--space-4);
  }
  .cart-drawer__shipping-eta{
    display:flex;
    align-items:center;
    gap:var(--space-1);
    color:var(--cor-text-muted);
    font-size:12px;
    margin-top:2px;
  }
  .cart-drawer__shipping-eta svg{width:14px;height:14px;}
  .cart-drawer__total-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:18px;
    font-weight:800;
    padding-top:var(--space-4);
    margin-bottom:var(--space-4);
    border-top:1px solid var(--cor-border);
  }
  .cart-drawer__total-row > div{text-align:right;}
  .cart-drawer__installment{font-size:12px;font-weight:400;color:var(--cor-text-muted);}
  .cart-drawer__checkout{
    width:100%;
    padding:var(--space-3) var(--space-4);
    background:var(--cor-vermelho-daemonz);
    color:var(--cor-branco);
    border:none;
    border-radius:var(--radius-sm);
    font-size:14px;
    font-weight:700;
    letter-spacing:0.03em;
  }
  .cart-drawer__checkout:hover{background:var(--cor-roxo);}
  .cart-drawer__checkout:disabled{opacity:0.6;}
  .cart-drawer__more{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-1);
    width:100%;
    background:none;
    border:none;
    margin-top:var(--space-3);
    font-size:13px;
    text-decoration:underline;
    color:var(--cor-text-muted);
  }
  .cart-drawer__more svg{width:14px;height:14px;flex-shrink:0;}

  /* ============ VISUALIZAÇÃO RÁPIDA DO PRODUTO ============ */
  .product-quickview{
    position:fixed;
    inset:0;
    z-index:120;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:var(--space-5);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease, visibility .2s ease;
  }
  .product-quickview.is-open{opacity:1;visibility:visible;pointer-events:auto;}
  .product-quickview__backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.55);}
  .product-quickview__box{
    position:relative;
    width:100%;
    max-width:1040px;
    max-height:90vh;
    overflow-y:auto;
    background:var(--cor-branco);
    border-radius:var(--radius-md);
    box-shadow:0 20px 60px rgba(0,0,0,0.35);
    transform:scale(0.96);
    transition:transform .2s ease;
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:var(--space-6);
    padding:var(--space-6);
  }
  .product-quickview.is-open .product-quickview__box{transform:scale(1);}
  .product-quickview__close{
    position:absolute;
    top:var(--space-4);
    right:var(--space-4);
    z-index:3;
    background:var(--cor-branco);
    border:1px solid var(--cor-border);
    border-radius:50%;
    width:32px;
    height:32px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .product-quickview__close svg{width:16px;height:16px;}

  .product-quickview__gallery{
    display:flex;
    gap:var(--space-3);
    height:420px;
  }
  .product-quickview__thumbs{
    display:flex;
    flex-direction:column;
    gap:var(--space-2);
    width:76px;
    flex-shrink:0;
    overflow-y:auto;
  }
  .product-quickview__thumbs img{
    width:100%;
    height:88px;
    object-fit:cover;
    border-radius:var(--radius-sm);
    border:2px solid transparent;
    cursor:pointer;
  }
  .product-quickview__thumbs img.is-active{border-color:var(--cor-azul-daemonz);}
  .product-quickview__main{
    position:relative;
    flex:1;
    background:var(--cor-gray-bg);
    border-radius:var(--radius-sm);
    overflow:hidden;
  }
  .product-quickview__main img{width:100%;height:100%;object-fit:cover;}
  .product-quickview__view-link{
    position:absolute;
    top:0;
    left:0;
    right:0;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    padding:var(--space-3);
    background:var(--cor-preto-web);
    color:var(--cor-branco);
    font-size:13px;
    font-weight:700;
    z-index:2;
  }
  .product-quickview__view-link svg{width:16px;height:16px;}

  .product-quickview__gallery-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:2;
    width:36px;
    height:36px;
    border-radius:50%;
    background:rgba(255,255,255,0.85);
    border:none;
    color:var(--cor-preto-web);
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 8px rgba(0,0,0,0.2);
  }
  .product-quickview__gallery-nav:hover{background:var(--cor-branco);}
  .product-quickview__gallery-nav svg{width:18px;height:18px;}
  .product-quickview__gallery-nav--prev{left:var(--space-3);}
  .product-quickview__gallery-nav--next{right:var(--space-3);}

  .product-quickview__gallery-dots{
    position:absolute;
    bottom:var(--space-3);
    left:0;
    right:0;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
  }
  .product-quickview__gallery-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    background:transparent;
    border:1.5px solid rgba(255,255,255,0.85);
    box-shadow:0 0 0 1px rgba(0,0,0,0.15);
    cursor:pointer;
    transition:width .2s ease, height .2s ease, background .2s ease, border-color .2s ease;
  }
  .product-quickview__gallery-dot.is-active{
    width:12px;
    height:12px;
    background:var(--cor-azul-daemonz);
    border-color:var(--cor-azul-daemonz);
  }
  .product-quickview__view-link:hover{background:var(--cor-roxo);}

  .product-quickview__info{display:flex;flex-direction:column;}
  .product-quickview__collection{
    display:inline-block;
    align-self:flex-start;
    background:var(--avatar-purple);
    color:var(--cor-branco);
    padding:var(--space-2) var(--space-4);
    border-radius:var(--radius-sm);
    font-size:12px;
    font-weight:800;
    letter-spacing:0.05em;
    margin-bottom:var(--space-3);
    transition:background .2s ease;
  }
  .product-quickview__collection:hover{background:var(--cor-roxo);}
  .product-quickview__breadcrumb{font-size:12px;color:var(--cor-text-muted);margin-bottom:var(--space-2);}
  .product-quickview__title{font-size:22px;font-weight:800;margin-bottom:var(--space-2);}
  .product-quickview__rating{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);}
  .product-quickview__stars{color:var(--cor-star);letter-spacing:2px;}
  .product-quickview__rating-count{font-size:12px;color:var(--cor-text-muted);}
  .product-quickview__price{margin-bottom:var(--space-5);}
  .product-quickview__price strong{font-size:26px;}
  .product-quickview__price p{font-size:13px;color:var(--cor-text-muted);margin-top:2px;}
  .product-quickview__pix{color:var(--cor-azul-daemonz);font-weight:700;}

  .product-quickview__variant-group{margin-bottom:var(--space-4);padding:var(--space-2);border-radius:var(--radius-sm);transition:background .2s ease;}
  .product-quickview__variant-group.is-missing{background:rgba(215,0,54,0.08);animation:daemonz-shake .4s ease;}
  .product-quickview__variant-group.is-missing .product-quickview__variant-label{color:var(--cor-vermelho-daemonz);}
  .product-quickview__variant-group.is-missing .product-quickview__variant-btn{border-color:var(--cor-vermelho-daemonz);}
  @keyframes daemonz-shake{
    0%, 100%{transform:translateX(0);}
    25%{transform:translateX(-4px);}
    75%{transform:translateX(4px);}
  }
  .product-quickview__variant-label{font-size:13px;font-weight:800;margin-bottom:var(--space-2);}
  .product-quickview__variant-options{display:flex;gap:var(--space-2);flex-wrap:wrap;}
  .product-quickview__variant-btn{
    padding:var(--space-2) var(--space-4);
    border:1px solid var(--cor-cinza-escuro);
    border-radius:var(--radius-sm);
    background:var(--cor-branco);
    font-size:13px;
    font-family:inherit;
  }
  .product-quickview__variant-btn.is-selected{
    border-color:var(--cor-azul-daemonz);
    background:var(--cor-azul-daemonz);
    color:var(--cor-branco);
  }

  .product-quickview__actions{display:flex;gap:var(--space-3);margin-top:auto;align-items:center;}
  .product-quickview__qty{flex:0 0 auto;}
  .product-quickview__add{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    padding:var(--space-3) var(--space-4);
    background:var(--cor-preto-web);
    color:var(--cor-branco);
    border:none;
    border-radius:var(--radius-sm);
    font-size:14px;
    font-weight:700;
  }
  .product-quickview__add:hover{background:var(--cor-roxo);}
  .product-quickview__add:disabled{opacity:0.6;}
  .product-quickview__add svg{width:18px;height:18px;}
  .product-quickview__illustrator{font-size:12px;color:var(--cor-text-muted);text-align:center;margin-top:var(--space-3);}
  .product-quickview__illustrator span{color:var(--avatar-purple);font-weight:700;}

  /* ---- formulario de avaliação (modal "Enviar avaliação") ---- */
  .review-form__rating-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:var(--space-4);
    margin-bottom:var(--space-5);
  }
  .review-form__stars{display:flex;gap:var(--space-2);}
  .review-form__star{
    background:none;
    border:none;
    padding:0;
    width:32px;
    height:32px;
    font-size:30px;
    line-height:32px;
    color:var(--cor-cinza-medio);
  }
  .review-form__star.is-filled{color:var(--cor-star);}
  .review-form__anonymous{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    font-size:14px;
    color:var(--cor-text-muted);
    white-space:nowrap;
  }
  .review-form__image-preview{
    display:flex;
    align-items:center;
    gap:var(--space-3);
    padding:var(--space-3);
    border:1px dashed var(--cor-cinza-medio);
    border-radius:var(--radius-sm);
    margin-bottom:var(--space-4);
  }
  .review-form__image-preview img{
    width:56px;
    height:56px;
    object-fit:cover;
    border-radius:var(--radius-sm);
    background:var(--cor-gray-bg);
  }
  .review-form__image-preview span{flex:1;font-size:13px;color:var(--cor-text-muted);}
  .review-form__image-preview button{background:none;border:none;color:var(--cor-cinza-escuro);}
  .review-form__image-preview button:hover{color:var(--cor-vermelho-daemonz);}
  .review-form__image-preview button svg{width:18px;height:18px;}
  .review-form__actions{display:flex;gap:var(--space-4);align-items:stretch;}
  .review-form__image-btn{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    padding:var(--space-3) var(--space-4);
    background:#eaf4ff;
    border:1px solid var(--cor-azul-daemonz);
    border-radius:var(--radius-sm);
    color:var(--cor-azul-daemonz);
    font-size:14px;
    font-weight:700;
  }
  .review-form__image-btn svg{width:18px;height:18px;}
  .review-form__submit{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:var(--space-2);
    padding:var(--space-3) var(--space-4);
    background:var(--cor-vermelho-daemonz);
    color:var(--cor-branco);
    border:none;
    border-radius:var(--radius-sm);
    font-size:14px;
    font-weight:800;
    letter-spacing:0.03em;
  }
  .review-form__submit:hover{background:var(--cor-roxo);}
  .review-form__submit:disabled{opacity:0.6;}
  .review-form__submit svg{width:16px;height:16px;}
  .product-reviews__card-title{font-weight:700;margin-bottom:var(--space-1);}
  .product-reviews__card-image{
    width:100%;
    max-width:180px;
    border-radius:var(--radius-sm);
    margin-top:var(--space-3);
  }

  /* ============ PÁGINA DO PRODUTO ============ */
  .product-page{padding-top:calc(var(--space-9) + var(--space-6));padding-bottom:var(--space-8);}
  .product-page__hero{
    display:grid;
    grid-template-columns:1.4fr 1fr;
    gap:var(--space-7);
    margin-bottom:var(--space-8);
  }
  .product-page__gallery{height:520px;}
  .product-page__gallery .product-quickview__thumbs{width:88px;}
  .product-page__gallery .product-quickview__thumbs img{height:100px;}

  .product-page__split{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-7);
    padding-top:var(--space-6);
    border-top:1px solid var(--cor-border);
    margin-bottom:var(--space-8);
  }
  .product-page__shipping-label{font-size:14px;font-weight:800;margin-bottom:var(--space-3);}
  .product-page__description-text{font-size:14px;color:var(--cor-text-muted);line-height:1.6;}
  .product-page__description-text p{margin-bottom:var(--space-3);}

  .product-reviews{margin-bottom:var(--space-8);}
  .product-reviews__title{font-size:22px;font-weight:800;margin-bottom:var(--space-5);}
  .product-reviews__summary{
    display:grid;
    grid-template-columns:auto 1fr;
    gap:var(--space-7);
    align-items:center;
    margin-bottom:var(--space-6);
  }
  .product-reviews__average{text-align:center;}
  .product-reviews__average strong{display:block;font-size:36px;font-weight:800;}
  .product-reviews__average span:last-child{display:block;font-size:12px;color:var(--cor-text-muted);margin-top:var(--space-1);}
  .product-reviews__bars{display:flex;flex-direction:column;gap:var(--space-1);}
  .product-reviews__bar-row{display:flex;align-items:center;gap:var(--space-3);font-size:12px;}
  .product-reviews__bar-row span:first-child{width:32px;flex-shrink:0;color:var(--cor-text-muted);}
  .product-reviews__bar-track{
    flex:1;
    height:6px;
    background:var(--cor-cinza-claro);
    border-radius:var(--radius-full);
    overflow:hidden;
  }
  .product-reviews__bar-fill{display:block;height:100%;background:var(--cor-star);}
  .product-reviews__controls{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:var(--space-3);
    padding-top:var(--space-4);
    border-top:1px solid var(--cor-border);
  }
  .product-reviews__filter-form{display:flex;gap:var(--space-5);font-size:13px;}
  .product-reviews__filter-form select{
    margin-left:var(--space-2);
    padding:var(--space-1) var(--space-2);
    border:1px solid var(--cor-cinza-escuro);
    border-radius:var(--radius-sm);
    font-family:inherit;
    font-size:13px;
  }
  .product-reviews__add-btn{
    padding:var(--space-2) var(--space-4);
    background:var(--cor-branco);
    border:1px solid var(--cor-cinza-escuro);
    border-radius:var(--radius-sm);
    font-size:13px;
    font-weight:700;
  }
  .product-reviews__add-btn:hover{border-color:var(--cor-vermelho-daemonz);color:var(--cor-vermelho-daemonz);}

  .product-reviews__list{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-5);
  }
  .product-reviews__card{
    padding:var(--space-5);
    border:1px solid var(--cor-border);
    border-radius:var(--radius-md);
    box-shadow:var(--shadow-card);
  }
  .product-reviews__card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);}
  .product-reviews__card-header span{font-size:12px;color:var(--cor-text-muted);}
  .product-reviews__card-rating{
    display:flex;
    align-items:center;
    gap:var(--space-2);
    color:var(--cor-star);
    font-weight:700;
    margin-bottom:var(--space-2);
  }
  .product-reviews__card-text{font-size:14px;color:var(--cor-text-muted);line-height:1.5;}

  /* ============ MOBILE ============ */
  @media (max-width:768px){
    .header__logo img{height:26px;}
    .header__actions{gap:var(--space-3);width:auto;}
    .header__spacer{display:none;}
    .hero{
      min-height:0;
      padding:0;
      display:block;
      background:var(--cor-preto-web);
    }
    .hero__logo{font-size:38px;}
    .hero__tagline{
      position:static;
      display:block;
      transform:none;
      margin:0;
      padding:var(--space-5) var(--space-4);
      font-size:11px;
      letter-spacing:0.1em;
    }
    .section{padding:var(--space-6) var(--space-4);}
    .section__title{font-size:17px;}
    .carousel{gap:var(--space-2);}
    .carousel__track{gap:var(--space-3);}
    .carousel__arrow{width:34px;height:34px;}
    .product-card{width:260px;}
    .product-card__img-wrap{height:310px;}
    .artists{gap:var(--space-5);}
    .artist-card__avatar{width:76px;height:76px;}
    .search-product-card{width:150px;height:210px;}
    .footer__top{grid-template-columns:1fr;gap:var(--space-6);}
    .footer__payments{justify-content:center;}
    .account-modal__body{padding:var(--space-5) var(--space-5);}
    .account-modal__name-row{grid-template-columns:1fr;}
    .account-modal__verify-links{justify-content:center;text-align:center;}
    .account-page{padding:var(--space-8) var(--space-4) var(--space-6);}
    .account-page__layout{grid-template-columns:1fr;}
    .account-page__form-row{grid-template-columns:1fr;}
    .order-card__header{flex-direction:column;align-items:flex-start;gap:var(--space-1);}
    .product-quickview__box{grid-template-columns:1fr;max-height:85vh;}
    .product-quickview__gallery{height:280px;}
    .product-page__hero{grid-template-columns:1fr;}
    .product-page__split{grid-template-columns:1fr;}
    .product-reviews__summary{grid-template-columns:1fr;text-align:center;}
    .product-reviews__list{grid-template-columns:1fr;}
    .product-reviews__controls{flex-direction:column;align-items:stretch;text-align:center;}
  }
