/* lojas-fisicas.css */

/* HERO - Carrossel */
.loja-hero {
    position: relative;
    width: 100vw;
    min-height: 530px;
    overflow: hidden;
    color: #fff;
    z-index: 0;
  }
  .carousel-bg {
    position: absolute;
    top:0; left:0; width:100%; height:100%;
    z-index: 1;
    overflow: hidden;
  }
  .carousel-slide {
    position: absolute;
    top:0; left:0; width:100%; height:100%;
    background-size: cover;
    background-position: center;
    background-color: #1a1a2e; /* Fallback color */
    opacity: 0;
    transform: scale(1.07);
    pointer-events: none;
    transition: opacity 1.55s cubic-bezier(.23,.86,.46,1.2), transform 8s cubic-bezier(.25,1,.3,1);
    will-change: opacity, transform;
  }
  .carousel-slide.active,
  .carousel-slide[aria-hidden="false"] {
    opacity: 1;
    z-index: 2;
    transform: scale(1.0);
    pointer-events: auto;
  }
  .hero-content {
    position: relative;
    z-index: 3;
    min-height: 530px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    max-width: 700px;
    margin: 0 auto;
    padding-top: 90px;
    text-shadow: 0 4px 24px rgba(0,0,0,0.25);
  }
  .loja-hero h1 {
    font-size: 2.6rem;
    font-weight: 700;
    margin-bottom: 12px;
    background: linear-gradient(95deg, #fff 60%, #254af5 95%);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
  }
  .loja-hero p {
    font-size: 1.2rem;
    margin-bottom: 26px;
    max-width: 540px;
    color: #fff;
  }
  
  /* Vitrine Digital */
  .vitrine-digital {
    background: #181a1b;
    padding: 52px 0;
    color: #fff;
  }
  .vitrine-card {
    display: flex;
    align-items: center;
    gap: 32px;
    max-width: 700px;
    margin: 0 auto;
    padding: 38px 28px;
    background: var(--bg-card,#232437);
    border-radius: 20px;
    box-shadow: 0 10px 32px rgba(31,76,246,0.12);
  }
  .vitrine-status {
    flex: .65;
    display: flex; flex-direction: column; align-items: center;
  }
  #store-status {
    font-size: 1.13rem;
    font-weight: 600;
    padding: 12px 29px;
    border-radius: 19px;
    margin-bottom: 12px;
    color: #fff;
    box-shadow: 0 2px 11px rgba(0,0,0,0.07);
  }
  #store-status.open {
    background: #27c26a;
    animation: pulse-status 1.1s infinite alternate;
  }
  #store-status.closed {
    background: #fe4a5b;
    animation: none;
  }
  @keyframes pulse-status {
    0% {box-shadow: 0 0 22px #19ff91aa;}
    100% {box-shadow: 0 0 50px #19ff9166;}
  }
  .vitrine-info {
    flex: 2;
  }
  .vitrine-nome {
    font-size: 1.31rem;
    font-weight: 600;
    color: #f52b40;
  }
  .vitrine-endereco {
    margin: 12px 0 22px 0;
    font-size: 1.12rem;
    color: #b4f4ed;
  }
  .btn-mapa {
    font-size: 1.05rem;
    padding: 15px 33px;
    border-radius: 30px;
    background: #254af5;
    color: #fff;
  }
  .btn-mapa i {
    margin-right: 9px;
  }
  
  /* Jornada do Cliente Local */
  .loja-jornada {
    background: #121317;
    color: #fff;
    padding: 62px 0;
  }
  .jornada-title {
    text-align: center;
    font-size: 1.45rem;
    margin-bottom: 36px;
    color: #7fd6fb;
  }
  .jornada-infografico {
    position: relative;
    max-width: 350px;
    margin: 0 auto;
    padding-top: 18px;
  }
  .jornada-linha {
    position: absolute;
    left: 34px; top: 45px; bottom: 25px; width:6px;
    background: linear-gradient(180deg, #254af5 45%, #f52b40 100%);
    z-index: 1; border-radius: 9px;
  }
  .jornada-etapa {
    display: flex; align-items: center;
    gap: 18px; margin-bottom: 50px; position: relative;
    opacity: 0; transform: translateY(64px);
    transition: opacity 0.65s, transform 0.7s;
    z-index: 2;
  }
  .jornada-etapa:last-child { margin-bottom: 0; }
  .jornada-etapa .jornada-icone {
    background: #0d1117;
    border: 3px solid #254af5;
    color: var(--accent-color, #254af5);
    width: 54px; height: 54px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.7rem; box-shadow: 0 3px 8px rgba(37,74,245,0.08);
  }
  .jornada-etapa-titulo {
    font-size: 1.12rem; font-weight: 600; color: #f52b40; display: block;
  }
  .jornada-etapa-desc { font-size: 0.99rem; color: #b3d1fd; }
  .jornada-etapa.is-visible {
    opacity: 1; transform: translateY(0);
  }
  .jornada-etapa.is-visible .jornada-icone {
    background: #254af5;
    color: #fff;
    border-color: #f52b40;
    box-shadow: 0 6px 24px rgba(245,43,64,0.12);
  }
  
  /* Mapa de Impacto */
  .loja-mapa-container {
    background: #181a1b;
    padding: 0;
  }
  .loja-mapa-bg {
    position: relative;
    width: 100%;
    max-width: 1020px;
    margin: 0 auto;
    border-radius: 28px;
    overflow: hidden;
    min-height: 370px;
  }
  .loja-mapa-svg {
    display: block;
    width: 100%;
    height: 360px;
    filter: drop-shadow(0 10px 40px #254af555);
  }
  .mapa-pin {
    fill: #f52b40;
    filter: drop-shadow(0 0 8px #ff5a7c88) blur(0.3px);
    opacity: 0;
    transition: opacity 0.25s;
  }
  #pin-central {
    fill: #27c26a;
    filter: drop-shadow(0 0 22px #0ff9a288);
    opacity: 1;
    stroke: #fff; stroke-width:5px;
  }
  .mapa-pin.pulsate {
    animation: mapaPulse 1.15s infinite alternate;
    opacity: 1;
  }
  @keyframes mapaPulse {
    0% {filter: drop-shadow(0 0 8px #ff5a7c88);}
    100% {filter: drop-shadow(0 0 20px #7fd6fb);}
  }
  .mapa-linha {
    stroke: #7fd6fb;
    stroke-width: 3;
    stroke-linecap: round;
    opacity: 0;
    transition: opacity 0.3s;
  }
  .mapa-linha.active { opacity: 1; stroke-dasharray: 180; stroke-dashoffset: 180;
    animation: drawLine .7s forwards cubic-bezier(.32,.04,.62,1.33);}
  @keyframes drawLine {
    to { stroke-dashoffset: 0;}
  }
  .mapa-label-central {
    position: absolute;
    top: 150px; left: 50%; transform: translateX(-50%);
    color: #fff; text-align: center; font-size: 1rem;
    background: rgba(25,25,25,0.80);
    padding: 12px 16px; border-radius: 13px;
    box-shadow: 0 2px 13px #19ff91aa;
  }
  
  /* Catálogo/Cardápio Digital */
  .loja-catalogo {
    background: #121317;
    color: #fff;
    padding: 66px 0 62px 0;
  }
  .catalogo-title {
    text-align: center;
    font-size: 1.45rem;
    margin-bottom: 32px;
    color: #7fd6fb;
    font-weight: 500;
  }
  .catalogo-tabs {
    display: flex;
    justify-content: center;
    gap: 22px;
    margin-bottom: 28px;
  }
  .catalogo-tab {
    background: #282e32;
    color: #fff;
    border: none;
    border-radius: 22px;
    font-size: 1.05rem;
    font-family: 'Inter', sans-serif;
    padding: 12px 36px;
    cursor: pointer;
    transition: background 0.18s, color 0.18s;
  }
  .catalogo-tab.active {
    background: #254af5;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 2px 14px #254af522;
  }
  .catalogo-itens {
    display: flex;
    flex-wrap: wrap;
    gap: 23px;
    justify-content: center;
  }
  .catalogo-item {
    background: #1a2433;
    border-radius: 18px;
    min-width: 170px;
    min-height: 222px;
    max-width: 184px;
    box-shadow: 0 1px 13px #254af510;
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: transform 0.38s, box-shadow 0.38s;
    cursor: pointer;
    overflow: hidden;
    position: relative;
  }
  .catalogo-img {
    width: 100%;
    height: 114px;
    background-size: cover;
    background-position: center;
    background-color: #2a2a3e; /* Fallback color */
    border-top-left-radius: 18px;
    border-top-right-radius: 18px;
    transition: transform 0.35s cubic-bezier(.25,1,.47,1.36);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .catalogo-item:hover .catalogo-img {
    transform: scale(1.10) rotate(-2deg);
    box-shadow: 0 10px 18px #ffb01a21;
  }
  .catalogo-itens .catalogo-item .catalogo-info {
    padding: 14px 0 13px 0;
    width: 100%;
    text-align: center;
  }
  .item-nome {
    color: #7fd6fb;
    font-size: 1.04rem;
    font-weight: 500;
  }
  .item-preco {
    color: #f52b40;
    display: block;
    font-size: 1.16rem;
    font-weight: bold;
    margin-top: 7px;
  }
  
  /* CTA Final */
  .loja-cta-final {
    background: linear-gradient(90deg, #254af5 65%, #f52b40 100%);
    color: #fff;
    text-align: center;
    padding: 54px 0;
  }
  .loja-cta-final h2 {
    font-size: 2rem;
    margin-bottom: 18px;
  }
  .loja-cta-final .btn-primary {
    font-size: 1rem;
    padding: 14px 44px;
    border-radius: 30px;
    background: #121317;
    color: #fff;
    border: none;
    transition: background 0.2s;
  }
  .loja-cta-final .btn-primary:hover {
    background: #7fd6fb;
    color: #0d1117;
  }
  
  /* Responsividade */
  @media (max-width: 1100px) {
    .vitrine-card { flex-direction: column; }
    .catalogo-itens { gap: 14px;}
  }
  @media (max-width: 700px) {
    .hero-content h1 { font-size: 1.22rem; }
    .vitrine-card { padding: 22px 6px;}
    .loja-hero, .hero-content { min-height: 370px; }
    .loja-mapa-svg, .loja-mapa-bg { min-height: 240px;}
  }
  