/* ============================================================
   GÁS SÃO PEDRO — layout próprio (15/10/2026)
   Conceito: a página abre como a fachada da loja — painel marinho,
   faixa laranja→dourado, telefone em letra de letreiro e a "lâmpada"
   de aberto/fechado calculada com o horário real.
   style.css continua carregado só pelo modal, botão flutuante e reveal.
   ============================================================ */

:root {
    --sp-ink: #0A305F;        /* marinho da fachada */
    --sp-ink-deep: #071F3E;
    --sp-blue: #0982C5;       /* azul da marca */
    --sp-flame: #D1352D;      /* vermelho-laranja da faixa */
    --sp-gold: #FCB924;       /* dourado */
    --sp-paper: #F2F5F9;
    --sp-text: #0B1B2E;
    --sp-muted: #4F5F75;
    --sp-line: #DAE2EC;
    --sp-wa: #1FAF55;
    --sp-wa-dark: #178F45;

    --sp-display: 'Archivo', 'Arial Narrow', sans-serif;
    --sp-body: 'Instrument Sans', system-ui, sans-serif;
    --sp-mono: 'Instrument Sans', system-ui, sans-serif;
}

body {
    font-family: var(--sp-body);
    color: var(--sp-text);
    background: #fff;
}

.sp-wrap { max-width: 1200px; margin: 0 auto; padding: 0 20px; }
@media (min-width: 768px) { .sp-wrap { padding: 0 32px; } }

.sp-display {
    font-family: var(--sp-display);
    font-stretch: 100%;
    font-variation-settings: "wdth" 100;
    font-weight: 800;
    letter-spacing: -.02em;
}

.sp-mono {
    font-family: var(--sp-body);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
}

/* Faixa da fachada: laranja com o corte inclinado para o dourado */
.sp-stripe {
    height: 12px;
    background: linear-gradient(100deg, var(--sp-flame) 0 74%, #E8661F 74% 84%, var(--sp-gold) 84% 100%);
}

/* ===== Botões ===== */
.sp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .6rem;
    min-height: 52px;
    padding: 0 1.6rem;
    border-radius: 14px;
    font-weight: 700;
    font-size: 1rem;
    white-space: nowrap;
    transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}
.sp-btn:active { transform: translateY(1px) scale(.98); }
.sp-btn svg { width: 20px; height: 20px; flex-shrink: 0; }

.sp-btn-wa {
    background: var(--sp-wa);
    color: #fff;
    box-shadow: 0 10px 24px -10px rgba(31,175,85,.7);
}
.sp-btn-wa:hover { background: var(--sp-wa-dark); }

.sp-btn-ghost {
    color: #fff;
    border: 1.5px solid rgba(255,255,255,.35);
}
.sp-btn-ghost:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.6); }

.sp-btn-line {
    color: var(--sp-ink);
    border: 1.5px solid var(--sp-line);
    background: #fff;
}
.sp-btn-line:hover { border-color: var(--sp-ink); }

a:focus-visible, button:focus-visible, summary:focus-visible {
    outline: 3px solid var(--sp-gold);
    outline-offset: 3px;
}

/* ===== Header ===== */
.sp-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--sp-line);
}
.sp-header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 80px;
}
.sp-header-logo img { height: 58px; width: auto; }
.sp-nav { display: none; gap: 2rem; }
.sp-nav a {
    font-weight: 600;
    font-size: .95rem;
    color: var(--sp-text);
    transition: color 150ms ease;
}
.sp-nav a:hover { color: var(--sp-blue); }
.sp-menu-btn {
    display: inline-flex;
    width: 44px; height: 44px;
    align-items: center; justify-content: center;
    border-radius: 12px;
    color: var(--sp-ink);
}
@media (min-width: 1024px) {
    .sp-nav { display: flex; }
    .sp-menu-btn { display: none; }
}
#lp-mobile-menu { display: none; border-top: 1px solid var(--sp-line); padding: 12px 20px 20px; }
#lp-mobile-menu.is-open { display: block; }
#lp-mobile-menu a.sp-mobile-link {
    display: block;
    padding: 12px 0;
    font-weight: 600;
    border-bottom: 1px solid var(--sp-line);
}
#lp-mobile-menu .sp-btn { width: 100%; margin-top: 16px; }
@media (min-width: 1024px) { #lp-mobile-menu, #lp-mobile-menu.is-open { display: none; } }

/* ===== Hero (15/10): claro e leve — texto à esquerda, produtos em destaque à direita.
   A lâmpada de aberto/fechado vira o selo acima do título. ===== */
.sp-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(55% 60% at 88% 35%, rgba(9,130,197,.13) 0%, transparent 70%),
        radial-gradient(40% 40% at 70% 95%, rgba(252,185,36,.12) 0%, transparent 70%),
        linear-gradient(180deg, #F4F7FB 0%, #FFFFFF 100%);
}
.sp-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 48px;
    padding-top: 40px;
    padding-bottom: 72px;
}
@media (min-width: 1024px) {
    .sp-hero-grid {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
        gap: 80px;
        padding-top: 72px;
        padding-bottom: 104px;
    }
}

/* Lâmpada de aberto/fechado (no hero em versão clara; no quadro de horário, escura) */
.sp-lamp {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    font-weight: 600;
    font-size: .92rem;
}
.sp-lamp-light {
    background: #fff;
    color: var(--sp-ink);
    border: 1px solid var(--sp-line);
    box-shadow: 0 6px 18px -10px rgba(10,48,95,.35);
}
.sp-lamp-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: #8A97A8;
    flex-shrink: 0;
}
.sp-lamp[data-state="open"] .sp-lamp-dot { background: #22C55E; animation: sp-glow 2.2s ease-out infinite; }
.sp-lamp[data-state="closing"] .sp-lamp-dot { background: var(--sp-gold); animation: sp-glow 2.2s ease-out infinite; }
.sp-lamp[data-state="closed"] .sp-lamp-dot { background: var(--sp-flame); }
@keyframes sp-glow {
    0% { box-shadow: 0 0 0 0 rgba(34,197,94,.5); }
    70% { box-shadow: 0 0 0 9px rgba(34,197,94,0); }
    100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

.sp-hero-title {
    margin-top: 24px;
    font-family: var(--sp-display);
    font-weight: 800;
    font-stretch: 100%;
    font-variation-settings: "wdth" 100;
    font-size: clamp(2.6rem, 5.2vw, 4.4rem);
    line-height: 1.02;
    text-wrap: balance;
    letter-spacing: -.035em;
    color: var(--sp-ink);
}
.sp-hero-title span { display: block; color: var(--sp-blue); }

.sp-hero-lead {
    margin-top: 22px;
    max-width: 31rem;
    font-size: 1.14rem;
    line-height: 1.62;
    color: var(--sp-muted);
}
.sp-hero-actions {
    margin-top: 34px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}
@media (max-width: 479px) {
    .sp-hero-actions .sp-btn { width: 100%; }
}

.sp-hero-proof {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 1px solid var(--sp-line);
    display: flex;
    flex-wrap: wrap;
    gap: 14px 30px;
    max-width: 34rem;
}
.sp-hero-proof li {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-weight: 600;
    font-size: .93rem;
    color: var(--sp-ink);
}
.sp-hero-proof svg { width: 18px; height: 18px; color: var(--sp-flame); flex-shrink: 0; }


/* Produtos em destaque (P13 + galão + P45) */
.sp-hero-stage {
    position: relative;
    width: 100%;
    max-width: 520px;
    aspect-ratio: 1 / 1;
    justify-self: center;
    display: grid;
    place-items: center;
}
@media (min-width: 1024px) { .sp-hero-stage { justify-self: end; } }
.sp-hero-stage::before {
    content: "";
    position: absolute;
    inset: 6%;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 40%, #FFFFFF 0%, #E3EEF7 55%, #CFE2F1 100%);
    box-shadow: inset 0 -30px 60px -30px rgba(9,130,197,.35);
}
.sp-hero-stage::after {
    content: "";
    position: absolute;
    inset: 2%;
    border-radius: 50%;
    border: 2px solid transparent;
    background: conic-gradient(from 200deg, var(--sp-flame), var(--sp-gold), transparent 45%, transparent 70%, var(--sp-blue), var(--sp-flame)) border-box;
    -webkit-mask: linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: .7;
}
.sp-hero-stage img { position: absolute; filter: drop-shadow(0 26px 22px rgba(10,48,95,.28)); }
.sp-hero-stage .is-main { width: 62%; left: 19%; bottom: 10%; z-index: 3; }
.sp-hero-stage .is-left { width: 40%; left: 2%; bottom: 13%; z-index: 2; }
.sp-hero-stage .is-right { width: 34%; right: 2%; bottom: 13%; z-index: 1; }
.sp-hero-tag {
    position: absolute;
    z-index: 4;
    padding: 10px 16px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 20px 40px -22px rgba(10,48,95,.45), 0 0 0 1px rgba(10,48,95,.05);
    font-weight: 700;
    font-size: .92rem;
    color: var(--sp-ink);
    line-height: 1.25;
}
.sp-hero-tag small { display: block; font-weight: 600; font-size: .78rem; color: var(--sp-muted); }
.sp-hero-tag-1 { top: 12%; right: 2%; }
.sp-hero-tag-2 { bottom: 4%; left: 6%; }

/* Sequência de entrada do hero (só uma vez, no carregamento) */
.sp-rise { opacity: 0; transform: translateY(14px); animation: sp-rise .7s cubic-bezier(.2,.7,.2,1) forwards; }
.sp-rise-2 { animation-delay: .08s; }
.sp-rise-3 { animation-delay: .16s; }
.sp-rise-4 { animation-delay: .24s; }
.sp-rise-5 { animation-delay: .36s; }
@keyframes sp-rise { to { opacity: 1; transform: none; } }

/* ===== Cabeçalho de seção ===== */
.sp-section { padding: 88px 0; }
@media (max-width: 767px) { .sp-section { padding: 64px 0; } }
.sp-kicker { color: var(--sp-blue); display: inline-flex; align-items: center; gap: 10px; }
.sp-kicker::before { content: ""; width: 22px; height: 2px; background: var(--sp-flame); }
.sp-h2 {
    margin-top: 14px;
    font-size: clamp(2rem, 4.4vw, 3.1rem);
    line-height: 1.02;
    color: var(--sp-ink);
}
.sp-intro { margin-top: 16px; color: var(--sp-muted); font-size: 1.05rem; line-height: 1.6; max-width: 36rem; }
.sp-section-head { display: grid; gap: 8px; }
@media (min-width: 1024px) {
    .sp-section-head-split {
        grid-template-columns: 1fr auto;
        align-items: end;
        gap: 48px;
    }
}

/* ===== Produtos ===== */
.sp-products { background: var(--sp-paper); }
.sp-products-grid {
    margin-top: 48px;
    display: grid;
    gap: 20px;
    grid-template-columns: 1fr;
}
@media (min-width: 560px) { .sp-products-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .sp-products-grid { grid-template-columns: repeat(4, 1fr); } }

.sp-prod {
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--sp-line);
    border-radius: 22px;
    overflow: hidden;
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.sp-prod:hover {
    transform: translateY(-4px);
    border-color: #C6D2E0;
    box-shadow: 0 24px 40px -28px rgba(10,48,95,.45);
}
.sp-prod-stage {
    position: relative;
    aspect-ratio: 4 / 3;
    display: grid;
    place-items: center;
    background: radial-gradient(90% 70% at 50% 80%, #fff 0%, #EEF2F7 75%);
    overflow: hidden;
}
/* O peso gigante e vazado atrás do produto */
.sp-prod-num {
    position: absolute;
    left: 14px;
    top: 6px;
    font-family: var(--sp-display);
    font-weight: 900;
    font-stretch: 100%;
    font-variation-settings: "wdth" 100;
    font-size: 7.4rem;
    line-height: .9;
    letter-spacing: -.04em;
    color: transparent;
    -webkit-text-stroke: 2px rgba(10,48,95,.13);
    transition: -webkit-text-stroke-color 220ms ease;
    user-select: none;
}
.sp-prod-num sup {
    font-size: .26em;
    vertical-align: top;
    position: relative;
    top: .5em;
    margin-left: 4px;
    letter-spacing: 0;
    -webkit-text-stroke-width: 1.5px;
}
.sp-prod:hover .sp-prod-num { -webkit-text-stroke-color: rgba(209,53,45,.35); }
@media (max-width: 559px) { .sp-prod-stage { aspect-ratio: 16 / 11; } }
.sp-prod-stage img {
    position: relative;
    max-height: 78%;
    max-width: 62%;
    object-fit: contain;
    filter: drop-shadow(0 18px 14px rgba(10,48,95,.18));
    transition: transform 300ms cubic-bezier(.2,.7,.2,1);
}
.sp-prod:hover .sp-prod-stage img { transform: translateY(-4px); }
.sp-prod-tag {
    position: absolute;
    right: 12px; top: 12px;
    z-index: 1;
    padding: 6px 10px;
    border-radius: 8px;
    background: var(--sp-gold);
    color: var(--sp-ink-deep);
}
.sp-prod-body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: 20px 20px 20px;
    border-top: 1px dashed var(--sp-line);
}
.sp-prod-title {
    font-family: var(--sp-display);
    font-weight: 800;
    font-stretch: 100%;
    font-variation-settings: "wdth" 100;
    font-size: 1.3rem;
    line-height: 1.1;
    letter-spacing: -.015em;
    color: var(--sp-ink);
}
.sp-prod-title span { display: block; color: var(--sp-blue); }
.sp-prod-note { margin-top: 8px; color: var(--sp-muted); font-size: .94rem; line-height: 1.45; }
.sp-prod-spec { margin-top: 14px; color: #7A889B; font-size: .66rem; }
.sp-prod-cta { margin-top: auto; padding-top: 18px; }
.sp-prod-cta .sp-btn { width: 100%; min-height: 48px; font-size: .95rem; }
.sp-prod-num-word { font-size: 5.6rem; text-transform: uppercase; }

/* ===== Como funciona ===== */
.sp-how-grid { display: grid; gap: 48px; align-items: center; }
@media (min-width: 1024px) { .sp-how-grid { grid-template-columns: 1fr 1fr; gap: 72px; } }

.sp-how-photo {
    position: relative;
    border-radius: 24px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: var(--sp-paper);
}
.sp-how-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 70%; }
.sp-how-photo::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: 0;
    height: 10px;
    background: linear-gradient(100deg, var(--sp-flame) 0 74%, #E8661F 74% 84%, var(--sp-gold) 84% 100%);
}

.sp-steps { margin-top: 36px; display: grid; gap: 0; counter-reset: sp-step; }
.sp-step {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 18px;
    padding: 20px 0;
    border-top: 1px solid var(--sp-line);
}
.sp-step:last-child { border-bottom: 1px solid var(--sp-line); }
.sp-step-n {
    width: 48px; height: 48px;
    display: grid; place-items: center;
    border-radius: 14px;
    background: var(--sp-ink);
    color: var(--sp-gold);
    font-family: var(--sp-display);
    font-weight: 900;
    font-size: 1.25rem;
}
.sp-step h3 { font-weight: 700; font-size: 1.12rem; color: var(--sp-ink); }
.sp-step p { margin-top: 4px; color: var(--sp-muted); line-height: 1.55; }

.sp-facts {
    margin-top: 56px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1px;
    background: var(--sp-line);
    border: 1px solid var(--sp-line);
    border-radius: 20px;
    overflow: hidden;
}
@media (min-width: 1024px) { .sp-facts { grid-template-columns: repeat(4, 1fr); } }
.sp-fact { background: #fff; padding: 22px 22px 24px; }
.sp-fact svg { width: 24px; height: 24px; color: var(--sp-flame); }
.sp-fact strong { display: block; margin-top: 14px; font-size: 1.02rem; color: var(--sp-ink); }
.sp-fact span { display: block; margin-top: 4px; font-size: .9rem; color: var(--sp-muted); line-height: 1.45; }

/* ===== Horário e endereço ===== */
.sp-visit { background: var(--sp-paper); }
.sp-visit-grid { margin-top: 44px; display: grid; gap: 20px; }
@media (min-width: 1024px) { .sp-visit-grid { grid-template-columns: 1.1fr .9fr; } }

.sp-board {
    background: var(--sp-ink);
    color: #fff;
    border-radius: 24px;
    overflow: hidden;
}
.sp-board-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 24px 26px;
}
.sp-board-head h3 { font-size: 1.35rem; }
.sp-board ul { padding: 0 26px 10px; }
.sp-board li {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding: 15px 0;
    border-top: 1px solid rgba(255,255,255,.1);
    font-size: 1rem;
}
.sp-board li b { font-weight: 600; color: rgba(255,255,255,.85); }
.sp-board li time { font-variant-numeric: tabular-nums; font-weight: 600; font-size: .95rem; }
.sp-board li.is-today b { color: var(--sp-gold); }
.sp-board li.is-today b::after {
    content: "hoje";
    margin-left: 10px;
    padding: 3px 8px;
    border-radius: 6px;
    background: var(--sp-gold);
    color: var(--sp-ink-deep);
    font-family: var(--sp-mono);
    font-size: .62rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    vertical-align: 2px;
}

.sp-address {
    background: #fff;
    border: 1px solid var(--sp-line);
    border-radius: 24px;
    padding: 26px;
    display: flex;
    flex-direction: column;
}
.sp-address h3 { font-size: 1.35rem; color: var(--sp-ink); }
.sp-address address { margin-top: 14px; font-style: normal; font-size: 1.08rem; line-height: 1.55; }
.sp-address-phone {
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--sp-line);
}
.sp-address-phone a {
    display: block;
    margin-top: 6px;
    font-family: var(--sp-display);
    font-weight: 800;
    font-stretch: 100%;
    font-variation-settings: "wdth" 100;
    font-size: 1.7rem;
    color: var(--sp-ink);
}
.sp-address-actions { margin-top: auto; padding-top: 24px; display: flex; flex-wrap: wrap; gap: 10px; }
.sp-address-actions .sp-btn { flex: 1 1 180px; }

/* ===== FAQ ===== */
.sp-faq-grid { display: grid; gap: 40px; }
@media (min-width: 1024px) {
    .sp-faq-grid { grid-template-columns: .8fr 1.2fr; gap: 80px; }
    .sp-faq-side { position: sticky; top: 110px; align-self: start; }
}
.sp-faq-list { border-top: 1px solid var(--sp-line); }
.sp-faq-item { border-bottom: 1px solid var(--sp-line); }
.sp-faq-item summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    padding: 22px 0;
    font-weight: 700;
    font-size: 1.08rem;
    color: var(--sp-ink);
}
.sp-faq-item summary::-webkit-details-marker { display: none; }
.sp-faq-plus {
    position: relative;
    width: 30px; height: 30px;
    flex-shrink: 0;
    border-radius: 50%;
    border: 1.5px solid var(--sp-line);
    transition: background-color 200ms ease, border-color 200ms ease;
}
.sp-faq-plus::before, .sp-faq-plus::after {
    content: "";
    position: absolute;
    left: 50%; top: 50%;
    width: 12px; height: 2px;
    margin: -1px 0 0 -6px;
    background: var(--sp-ink);
    transition: transform 220ms ease, background-color 200ms ease;
}
.sp-faq-plus::after { transform: rotate(90deg); }
.sp-faq-item[open] .sp-faq-plus { background: var(--sp-ink); border-color: var(--sp-ink); }
.sp-faq-item[open] .sp-faq-plus::before,
.sp-faq-item[open] .sp-faq-plus::after { background: var(--sp-gold); }
.sp-faq-item[open] .sp-faq-plus::after { transform: rotate(0deg); }
.sp-faq-item p { padding: 0 48px 24px 0; color: var(--sp-muted); line-height: 1.65; }
.sp-faq-side .sp-btn { margin-top: 28px; }

/* ===== Rodapé ===== */
.sp-footer { background: var(--sp-ink-deep); color: rgba(255,255,255,.78); }
.sp-footer-grid { display: grid; gap: 40px; padding: 64px 0 40px; }
@media (min-width: 768px) { .sp-footer-grid { grid-template-columns: 1.3fr 1fr 1fr; } }
.sp-footer-logo { display: inline-flex; background: #fff; border-radius: 16px; padding: 8px 14px; }
.sp-footer-logo img { height: 54px; width: auto; }
.sp-footer h3 { color: #fff; margin-bottom: 14px; }
.sp-footer li + li { margin-top: 10px; }
.sp-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.sp-footer-bottom {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 22px 0 28px;
    border-top: 1px solid rgba(255,255,255,.12);
    font-size: .88rem;
}
@media (min-width: 768px) { .sp-footer-bottom { flex-direction: row; justify-content: space-between; } }

/* Botão flutuante: mesmo verde dos CTAs */
.lp-whatsapp-float { background: var(--sp-wa) !important; }

@media (prefers-reduced-motion: reduce) {
    .sp-rise { opacity: 1; transform: none; animation: none; }
    .sp-lamp-dot { animation: none !important; }
    .sp-prod, .sp-prod-stage img { transition: none; }
    .sp-prod:hover, .sp-prod:hover .sp-prod-stage img { transform: none; }
}
