/* ============================================================
   ECN Gás – styles.css  (v2 – real assets)
   ============================================================ */

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

:root {
  --blue-dark:  #0B2D8F;
  --blue-mid:   #1A4FD6;
  --blue-light: #E8F4FF;
  --green:      #4CBB17;
  --green-light:#6CD62E;
  --cyan-bg:    #C8EDFF;
  --white:      #FFFFFF;
  --text-dark:  #1A1A2E;
  --text-body:  #444466;
  --font-head:  'Montserrat', sans-serif;
  --font-body:  'Open Sans', sans-serif;
  --radius:     12px;
  --shadow:     0 4px 24px rgba(11,45,143,.12);
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  color: var(--text-dark);
  background: var(--white);
  overflow-x: hidden;
}

.container {
  width: 90%;
  max-width: 1100px;
  margin-inline: auto;
}

.highlight { color: var(--blue-mid); }

.btn {
  display: inline-block;
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .82rem;
  letter-spacing: .08em;
  text-decoration: none;
  border-radius: 4px;
  cursor: pointer;
  transition: filter .2s, transform .15s;
}
.btn:hover { filter: brightness(1.1); transform: translateY(-2px); }
.btn--primary {
  background: var(--blue-dark);
  color: var(--white);
  padding: .9rem 2.2rem;
}

/* ============================================================
   NAVBAR
   ============================================================ */
.navbar {
  position: fixed;
  inset-block-start: 0;
  inset-inline: 0;
  z-index: 100;
  background: var(--white);
  box-shadow: 0 2px 12px rgba(11,45,143,.08);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 70px;
}

.logo { text-decoration: none; display: flex; align-items: center; }
.logo-img { height: 44px; width: auto; object-fit: contain; }

.nav-links {
  display: flex;
  gap: 2rem;
}
.nav-link {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .85rem;
  color: var(--text-body);
  text-decoration: none;
  padding-block-end: 4px;
  border-bottom: 2px solid transparent;
  transition: color .2s, border-color .2s;
}
.nav-link:hover, .nav-link.active {
  color: var(--blue-dark);
  border-color: var(--blue-dark);
}

.hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
}
.hamburger span {
  display: block;
  width: 24px;
  height: 2px;
  background: var(--text-dark);
  border-radius: 2px;
  transition: transform .3s, opacity .3s;
}

.mobile-menu {
  display: none;
  flex-direction: column;
  background: var(--white);
  padding: 1rem 5%;
  border-top: 1px solid #eee;
}
.mobile-menu a {
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .95rem;
  color: var(--text-dark);
  text-decoration: none;
  padding: .65rem 0;
  border-bottom: 1px solid #f0f0f0;
}
.mobile-menu.open { display: flex; }

@media (max-width: 768px) {
  .nav-links { display: none; }
  .hamburger { display: flex; }
}

/* ============================================================
   HERO
   ============================================================ */
   .hero {
    position: relative;
    padding-block-start: 90px;
    padding-block-end: 0px;
    background: var(--blue-light);
    overflow: hidden;
    min-height: 450px;
  }
  
  .hero-blob {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
  }
  .hero-blob--green {
    width: 130px; height: 65px;
    background: var(--green);
    border-radius: 0 0 65px 65px / 0 0 32px 32px;
    top: 68px; right: 38%;
  }
  .hero-blob--blue {
    width: 180px; height: 180px;
    background: var(--blue-mid);
    top: 50px; right: 50px;
    border-radius: 50% 0 50% 50%;
    opacity: .45;
  }
  
  .hero-inner {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2rem;
    position: relative;
    z-index: 1;
    /* padding-block-end: 1rem; */
  }
  
  .hero-text { max-width: 480px; padding-block-end: 2.6rem; }
  
  .hero-heading {
    font-family: var(--font-head);
    font-weight: 900;
    font-size: clamp(2rem, 4vw, 3rem);
    line-height: 1.15;
    color: var(--text-dark);
    margin-block-end: 1rem;
  }
  
  .hero-sub {
    font-size: .97rem;
    color: var(--text-body);
    line-height: 1.7;
    margin-block-end: 2rem;
  }
  
  /* Hero mascot image */
  .hero-image {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
  }
  
  .hero-mascot {
    height: 420px;
    width: auto;
    object-fit: contain;
    filter: drop-shadow(4px 8px 24px rgba(11,45,143,.2));
    transition: transform .4s ease;
    transform-origin: bottom center;
    display: block;
  }
  .hero-mascot:hover { transform: scale(1.03) rotate(1deg); }

  /* WhatsApp button */
  .hero-wpp-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: #25D366;
    color: #fff;
    text-decoration: none;
    font-family: var(--font-head);
    font-weight: 800;
    font-size: .88rem;
    letter-spacing: .04em;
    padding: .75rem 1.4rem;
    border-radius: 50px;
    white-space: nowrap;
    box-shadow: 0 4px 20px rgba(37,211,102,.55), 0 2px 8px rgba(0,0,0,.18);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s;
    z-index: 10;
  }
  .hero-wpp-btn:hover {
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 8px 28px rgba(37,211,102,.65), 0 4px 12px rgba(0,0,0,.2);
    filter: brightness(1.07);
  }
  .hero-wpp-btn svg { flex-shrink: 0; }

  /* City selector + WPP button wrapper */
  .hero-wpp-wrapper {
    position: absolute;
    top: 62%;
    left: 53%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    z-index: 10;
    white-space: nowrap;
  }

  .city-selector-wrap {
    display: flex;
    align-items: center;
    gap: .4rem;
    background: rgba(255,255,255,0.92);
    border-radius: 50px;
    padding: .4rem .9rem;
    box-shadow: 0 2px 12px rgba(11,45,143,.18);
  }

  .city-selector-label {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-family: var(--font-head);
    font-weight: 700;
    font-size: .72rem;
    color: var(--blue-dark);
    letter-spacing: .04em;
    white-space: nowrap;
    cursor: default;
  }
  .city-selector-label svg { color: var(--blue-mid); flex-shrink: 0; }

  .city-select {
    font-family: var(--font-head);
    font-weight: 600;
    font-size: .78rem;
    color: var(--text-dark);
    border: none;
    background: transparent;
    cursor: pointer;
    outline: none;
    max-width: 210px;
  }
  .city-select:focus { outline: none; }

  @media (max-width: 900px) {
    .hero-mascot { height: 320px; }
    /* recalc: 320 * 0.58 = 185px */
  }
  
  @media (max-width: 680px) {
    .hero-inner { flex-direction: column; align-items: center; text-align: center; }
    .hero-text { max-width: 100%; padding-block-end: 0; }
    .hero-mascot { height: 260px; }
    .hero-wpp-btn { font-size: .8rem; padding: .65rem 1.1rem; }
  }

/* ============================================================
   WHY SECTION
   ============================================================ */
.why {
  padding: 80px 0;
  background: var(--white);
  text-align: center;
}

.eyebrow {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .14em;
  color: var(--green);
  text-transform: uppercase;
  margin-block-end: .75rem;
}

.section-title {
  font-family: var(--font-head);
  font-weight: 800;
  font-size: clamp(1.5rem, 3vw, 2.1rem);
  line-height: 1.3;
  color: var(--text-dark);
  margin-block-end: 3rem;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2.5rem;
  text-align: left;
}

.feature-card h3 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: 1.05rem;
  margin-block: .9rem .5rem;
  color: var(--text-dark);
}

.feature-card p {
  font-size: .9rem;
  color: var(--text-body);
  line-height: 1.65;
}

.feature-icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.feature-icon--blue  { background: var(--blue-dark); }
.feature-icon--green { background: var(--green); }

/* ============================================================
   QUALITY BANNER
   ============================================================ */
.quality-banner {
  position: relative;
  background: var(--cyan-bg);
  /* padding: 70px 0; */
  overflow: hidden;
}

.quality-blob {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
}
.quality-blob--green-tl { width: 110px; height: 110px; background: var(--green);     top: -35px; left: -35px; }
.quality-blob--blue-tr  { width: 130px; height: 130px; background: var(--blue-mid);  top: -25px; right: -25px; opacity: .7; }
.quality-blob--blue-bl  { width: 95px;  height: 95px;  background: var(--blue-dark); bottom: -35px; left: 90px; opacity: .6; }
.quality-blob--green-br { width: 85px;  height: 85px;  background: var(--green);     bottom: -25px; right: 130px; opacity: .8; }

.quality-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  position: relative;
  z-index: 1;
}

.quality-heading {
  font-family: var(--font-head);
  font-weight: 800;
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  color: var(--text-dark);
  margin-block-end: .3rem;
}

.quality-badge {
  display: inline-block;
  background: var(--green);
  color: var(--white);
  font-family: var(--font-head);
  font-weight: 900;
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  letter-spacing: .05em;
  padding: .2rem 1rem;
  border-radius: 6px;
  margin-block-end: 1.5rem;
}

.quality-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}
.quality-list li {
  display: flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--font-head);
  font-weight: 600;
  font-size: 1rem;
  color: var(--text-dark);
}
.check-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px; height: 24px;
  background: var(--green);
  color: var(--white);
  border-radius: 50%;
  font-size: .72rem;
  flex-shrink: 0;
}

.quality-image { display: flex; align-items: center; justify-content: center; }
.quality-cyl {
  height: 320px;
  width: auto;
  object-fit: contain;
  /* filter: drop-shadow(8px 16px 32px rgba(11,45,143,.25)); */
  transition: transform .4s ease;
}
.quality-cyl:hover { transform: scale(1.04) rotate(-2deg); }

@media (max-width: 768px) {
  .quality-inner { flex-direction: column; text-align: center; }
  .quality-list { align-items: center; }
  .quality-cyl { height: 200px; }
}

/* ============================================================
   PRODUCTS
   ============================================================ */
.products {
  padding: 80px 0;
  background: var(--blue-light);
  text-align: center;
}

.products-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 2rem;
}

.product-card {
  background: var(--white);
  border-radius: var(--radius);
  padding: 2rem 1.5rem 1.8rem;
  box-shadow: var(--shadow);
  transition: transform .3s ease, box-shadow .3s ease;
  position: relative;
}
.product-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 40px rgba(11,45,143,.18);
}
.product-card--featured {
  border: 2px solid var(--blue-mid);
}
.product-card--featured::before {
  content: 'MAIS VENDIDO';
  position: absolute;
  top: -12px; left: 50%;
  transform: translateX(-50%);
  background: var(--blue-mid);
  color: var(--white);
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .65rem;
  letter-spacing: .1em;
  padding: 3px 12px;
  border-radius: 20px;
}

.product-img-wrap {
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-block-end: 1rem;
}
.product-img-wrap img {
  max-height: 100%;
  width: auto;
  object-fit: contain;
  filter: drop-shadow(2px 6px 12px rgba(11,45,143,.2));
  transition: transform .3s ease;
}
.product-card:hover .product-img-wrap img { transform: scale(1.06); }

.product-card h3 {
  font-family: var(--font-head);
  font-weight: 800;
  font-size: 1.4rem;
  color: var(--blue-dark);
  margin-block-end: .2rem;
}
.product-weight {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .9rem;
  color: var(--green);
  margin-block-end: .6rem;
}
.product-card p:last-child {
  font-size: .88rem;
  color: var(--text-body);
  line-height: 1.6;
}

/* ============================================================
   ABOUT
   ============================================================ */
.about {
  padding: 80px 0;
  background: var(--white);
}

.about-inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: center;
}

.about-logo-img { height: 48px; width: auto; margin-block-end: 1.2rem; }

.about-text p {
  font-size: .96rem;
  color: var(--text-body);
  line-height: 1.7;
  margin-block-end: .8rem;
  text-align: justify;
}
.about-tagline strong {
  color: var(--blue-mid);
  font-family: var(--font-head);
  font-weight: 700;
}

.about-photo-placeholder {
  border-radius: var(--radius);
  overflow: hidden;
  background: linear-gradient(135deg, #deeeff 0%, #c4e4ff 100%);
  height: 340px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-block-end: 0;
  box-shadow: var(--shadow);
}

.family-scene {
  display: flex;
  align-items: flex-end;
  /* gap: .8rem;
  padding-block-end: 1.5rem; */
}

.kitchen-cylinder { display: flex; align-items: flex-end; }

.family-silhouettes {
  display: flex;
  align-items: flex-end;
  gap: 5px;
}

.person { border-radius: 26px 26px 0 0; }
.person--adult1 { width: 54px; height: 110px; background: linear-gradient(180deg,#7BACD4,#4A7DAE); }
.person--child  { width: 38px; height: 75px;  background: linear-gradient(180deg,#E8C45A,#C89028); }
.person--adult2 { width: 54px; height: 105px; background: linear-gradient(180deg,#4A6FA5,#2D4F85); }

@media (max-width: 768px) {
  .about-inner { grid-template-columns: 1fr; }
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
  background: var(--blue-dark);
  color: var(--white);
  padding: 50px 0 40px;
}

.footer-inner {
  display: grid;
  grid-template-columns: 2fr 1fr 2fr auto;
  gap: 2.5rem;
  align-items: start;
}

.footer-logo-img {
  height: 50px;
  width: auto;
  object-fit: contain;
  /* Invert to white on dark bg */
  filter: brightness(0) invert(1);
}

.footer-tagline {
  margin-block-start: .6rem;
  font-size: .85rem;
  color: rgba(255,255,255,.7);
  text-align: justify;
}

.footer-nav h4,
.footer-institucional h4 {
  font-family: var(--font-head);
  font-weight: 700;
  font-size: .75rem;
  letter-spacing: .12em;
  color: var(--green-light);
  margin-block-end: 1rem;
}

.footer-nav ul { list-style: none; }
.footer-nav ul li { margin-block-end: .45rem; }
.footer-nav ul li a {
  color: rgba(255,255,255,.8);
  text-decoration: none;
  font-size: .88rem;
  transition: color .2s;
}
.footer-nav ul li a:hover { color: var(--white); }

.footer-institucional p {
  font-size: .88rem;
  color: rgba(255,255,255,.8);
  line-height: 1.6;
}

.flame-icon-big { font-size: 8rem; }

@media (max-width: 900px) {
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .flame-icon-big { display: none; }
}
@media (max-width: 560px) {
  .footer-inner { grid-template-columns: 1fr; }
}

/* ============================================================
   SCROLL-REVEAL utility (set by JS)
   ============================================================ */
.will-reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .55s ease, transform .55s ease;
}
.will-reveal.revealed {
  opacity: 1;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .will-reveal { opacity: 1; transform: none; transition: none; }
}

/* ============================================================
   CAROUSEL
   ============================================================ */
.carousel {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(11,45,143,.18);
  background: #0b2d8f;
  /* Fixed aspect ratio 16:9 */
  aspect-ratio: 16 / 9;
  width: 100%;
}

/* Track holds all slides stacked */
.carousel-track { position: relative; width: 100%; height: 100%; }

.carousel-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .75s ease;
  pointer-events: none;
}
.carousel-slide.active {
  opacity: 1;
  pointer-events: auto;
}

.carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Caption bar */
.carousel-caption {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: .4rem;
  background: linear-gradient(transparent, rgba(11,45,143,.82));
  color: rgba(255,255,255,.92);
  font-family: var(--font-head);
  font-weight: 600;
  font-size: .75rem;
  letter-spacing: .05em;
  padding: 2rem 1rem .7rem;
}
.carousel-caption svg { flex-shrink: 0; color: #6CD62E; }

/* Dots */
.carousel-dots {
  position: absolute;
  bottom: 2.2rem;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: .45rem;
  z-index: 10;
}
.carousel-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.7);
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background .3s, transform .3s, border-color .3s;
}
.carousel-dot.active {
  background: var(--white);
  border-color: var(--white);
  transform: scale(1.25);
}

/* Arrows */
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: none;
  background: rgba(255,255,255,.18);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: background .2s, transform .2s;
}
.carousel-arrow:hover {
  background: rgba(255,255,255,.35);
  transform: translateY(-50%) scale(1.1);
}
.carousel-arrow--prev { left: .75rem; }
.carousel-arrow--next { right: .75rem; }

/* Progress bar */
.carousel-progress {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: rgba(255,255,255,.2);
  z-index: 10;
}
.carousel-progress-bar {
  height: 100%;
  background: #4CBB17;
  width: 0%;
  transition: width linear;
}
