/*
Theme Name: LCW Child
Template: astra
Version: 1.0.0
*/

:root {
  --lcw-header-height: 72px;
}


/* ======================================================
   BASE DO SITE
====================================================== */

.site,
#page,
#content {
  font-family: 'Inter', sans-serif;
  background: #faf8f7;
  color: #1f2937;
}

h1, h2, h3 {
  font-family: 'Playfair Display', serif;
}

/* ======================================================
   HEADER BASE
====================================================== */

.lcw-site-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: #ffffff;
  border-bottom: 1px solid #e5e7eb;
}

.lcw-header-inner {
  max-width: 1400px;
  margin: 0 auto;
  padding: 18px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.lcw-logo {
  font-family: 'Playfair Display', serif;
  font-size: 20px;
  font-weight: 600;
  text-decoration: none;
  color: #1f2937;
}

/* ======================================================
   MENU DESKTOP
====================================================== */

.lcw-main-nav ul {
  list-style: none;
  display: flex;
  gap: 24px;
  margin: 0;
  padding: 0;
}

.lcw-main-nav a {
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  color: #1f2937;
}

.lcw-main-nav a:hover {
  color: #8b6a55;
}

/* CTA */
.lcw-menu-cta a {
  padding: 10px 18px;
  border-radius: 999px;
}

/* ======================================================
   HAMBURGER — SINGLE SOURCE OF TRUTH
====================================================== */

/* Desktop: escondido */
.lcw-menu-toggle {
  display: none;
}

/* Mobile */
@media (max-width: 900px) {

  .lcw-main-nav {
    display: none;
  }

  .lcw-menu-toggle {
    all: unset;
    display: flex;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    cursor: pointer;
    font-size: 26px;
    line-height: 1;
    color: #000000;

    z-index: 10001;
  }

  .lcw-menu-toggle:hover,
  .lcw-menu-toggle:focus,
  .lcw-menu-toggle:active {
    color: #000000;
    outline: none;
    box-shadow: none;
  }

  /* Ícones */
  .lcw-menu-toggle .lcw-icon-open,
  .lcw-menu-toggle .lcw-icon-close {
    display: none;
  }

  /* Fechado */
  .lcw-menu-toggle .lcw-icon-open {
    display: block;
  }

  /* Aberto */
  .lcw-menu-toggle.active .lcw-icon-open {
    display: none;
  }

  .lcw-menu-toggle.active .lcw-icon-close {
    display: block;
  }
}

/* ======================================================
   MENU MOBILE
====================================================== */

.lcw-mobile-nav {
  position: fixed;
  inset: 0;
  background: #ffffff;
  z-index: 9999;

  padding: 96px 24px 24px;

  transform: translateX(100%);
  transition: transform .3s ease;
}

.lcw-mobile-nav.active {
  transform: translateX(0);
}

.lcw-mobile-nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.lcw-mobile-nav li {
  margin-bottom: 20px;
}

.lcw-mobile-nav a {
  font-size: 18px;
  font-weight: 600;
  color: #1f2937;
  text-decoration: none;
}

.lcw-mobile-nav a:hover {
  color: #8b6a55;
}

.lcw-mobile-cta {
  margin-top: 40px;
}

/* ======================================================
   FOOTER
====================================================== */

.lcw-site-footer {
  background: #faf8f7;
  border-top: 1px solid #e5e7eb;
  margin-top: 80px;
}

.lcw-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 16px;
  text-align: center;
  font-size: 14px;
  color: #6b7280;
}

/* ======================================================
   FIX DEFINITIVO — HAMBURGER COM ÍCONES CSS
====================================================== */

/* Base do botão */
.lcw-menu-toggle {
  all: unset;
  display: none;
}

/* Mobile */
@media (max-width: 900px) {

  .lcw-menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 44px;
    height: 44px;

    cursor: pointer;
    z-index: 10001;
  }

  /* Remove qualquer herança do Astra */
  .lcw-menu-toggle,
  .lcw-menu-toggle:hover,
  .lcw-menu-toggle:focus,
  .lcw-menu-toggle:active {
    background: transparent !important;
    color: #000000 !important;
    box-shadow: none !important;
    outline: none !important;
  }

  /* Esconde spans (não usamos mais) */
  .lcw-menu-toggle span {
    display: none !important;
  }

  /* ÍCONE ☰ */
  .lcw-menu-toggle::before {
    content: "☰";
    font-size: 26px;
    font-weight: 400;
    line-height: 1;
    color: #000000;
  }

  /* ÍCONE ✕ QUANDO ATIVO */
  .lcw-menu-toggle.active::before {
    content: "✕";
    font-size: 26px;
    font-weight: 400;
    color: #000000;
  }
}


.lcw-mobile-nav {
  position: fixed;
  inset: 0;
  background: #ffffff;
  z-index: 10000;

  /* 🔥 ALINHADO AO HEADER */
  padding-top: calc(var(--lcw-header-height, 72px) + 24px);
  padding-left: 24px;
  padding-right: 24px;
  padding-bottom: 24px;

  transform: translateX(100%);
  transition: transform .3s ease;
}

.lcw-mobile-nav.active {
  transform: translateX(0);
}

/* 🚫 NÃO empurra conteúdo quando menu abre */
body.lcw-menu-open {
  padding-top: 0 !important;
}


.lcw-mobile-nav::before {
  content: '';
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.08);
  z-index: -1;
}


/* LOGO DINÂMICO */
.lcw-logo {
  display: flex;
  align-items: center;
}

.lcw-logo img {
  max-height: 70px; /* desktop */
  width: auto;
  display: block;
}

@media (max-width: 900px) {
  .lcw-logo img {
    max-height: 48px; /* mobile */
  }
}

/* Remove estilos herdados do Astra */
.lcw-logo a {
  text-decoration: none;
  display: flex;
  align-items: center;
}


/* ======================================================
   LAYOUT BASE — ESPAÇAMENTO E LARGURA (GLOBAL)
====================================================== */

/* Container principal do site */
#page,
.site,
.site-content {
  width: 100%;
  margin: 0 auto;
}

/* Conteúdo padrão (páginas, posts, listas) */
#primary,
.ast-container,
.content-area {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 32px;
  padding-right: 32px;
}

/* Telas grandes */
@media (min-width: 1440px) {
  #primary,
  .ast-container,
  .content-area {
    max-width: 1400px;
  }
}

/* Mobile */
@media (max-width: 900px) {
  #primary,
  .ast-container,
  .content-area {
    padding-left: 20px;
    padding-right: 20px;
  }
}

/* ======================================================
   HEADER — ALINHADO COM CONTEÚDO
====================================================== */

.lcw-site-header {
  padding-left: 0;
  padding-right: 0;
}

.lcw-header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 32px;
}

@media (min-width: 1440px) {
  .lcw-header-inner {
    max-width: 1400px;
  }
}

@media (max-width: 900px) {
  .lcw-header-inner {
    padding: 14px 20px;
  }
}

/* ======================================================
   FOOTER — MESMO GRID DO CONTEÚDO
====================================================== */

.lcw-site-footer {
  padding: 60px 0;
}

.lcw-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 32px;
}

@media (min-width: 1440px) {
  .lcw-footer-inner {
    max-width: 1400px;
  }
}

@media (max-width: 900px) {
  .lcw-footer-inner {
    padding: 0 20px;
  }
}

/* ======================================================
   PÁGINA DO CASAL — EVITA COLAR NAS BORDAS
====================================================== */

body.lcw-casal-page main,
body.lcw-casal-page .site-content {
  padding-left: 0;
  padding-right: 0;
}

/* Seções do casal */
.lcw-casal-hero,
.lcw-casal-story,
.lcw-casal-gallery,
.lcw-casal-evento,
.lcw-lista-publica {
  padding-left: 20px;
  padding-right: 20px;
}

@media (min-width: 900px) {
  .lcw-casal-hero,
  .lcw-casal-story,
  .lcw-casal-gallery,
  .lcw-casal-evento,
  .lcw-lista-publica {
    padding-left: 32px;
    padding-right: 32px;
  }
}

/* ======================================================
   FIX MOBILE — CONTEÚDO NÃO COLA NA BORDA (ASTRA)
====================================================== */

@media (max-width: 900px) {

  /* Containers principais do Astra */
  .site-content,
  .ast-container,
  .content-area,
  .entry-content,
  .entry-content > *,
  main,
  section {
    padding-left: 20px !important;
    padding-right: 20px !important;
    box-sizing: border-box;
  }

  /* Evita double padding em blocos internos */
  .entry-content > .wp-block-group,
  .entry-content > .wp-block-cover {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

}



/* ======================================================
   CHECKOUT / CARRINHO — CONTROLE MOBILE CORRETO
====================================================== */

@media (max-width: 900px) {

  /* Containers principais */
  body.woocommerce-checkout #primary,
  body.woocommerce-checkout .site-content,
  body.woocommerce-checkout .ast-container,
  body.woocommerce-checkout .entry-content,
  body.woocommerce-cart #primary,
  body.woocommerce-cart .site-content,
  body.woocommerce-cart .ast-container,
  body.woocommerce-cart .entry-content {
    padding-left: 16px !important;
    padding-right: 16px !important;
    box-sizing: border-box;
  }

  /* Conteúdo Woo */
  body.woocommerce-checkout .woocommerce,
  body.woocommerce-cart .woocommerce {
    padding: 0 !important;
    max-width: 100%;
  }


}

/* ======================================================
   FIX DEFINITIVO — ASTRA + WOO MOBILE
====================================================== */

@media (max-width: 900px) {

  /* CONTAINER RAIZ DO ASTRA */
  body.woocommerce-checkout .ast-container,
  body.woocommerce-cart .ast-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  /* ÁREA PRINCIPAL */
  body.woocommerce-checkout #primary,
  body.woocommerce-cart #primary {
    padding: 0 !important;
    margin: 0 !important;
    width: 100%;
  }

  /* ENTRY CONTENT */
  body.woocommerce-checkout .entry-content,
  body.woocommerce-cart .entry-content {
    padding: 0 !important;
    margin: 0 !important;
  }

  /* BLOCO WOO */
  body.woocommerce-checkout .woocommerce,
  body.woocommerce-cart .woocommerce {
    width: 100%;
    max-width: 100%;
  }

}


/* ======================================================
   CHECKOUT / CARRINHO — AJUSTE FINAL MOBILE
   (SEM RESET GLOBAL, SEM QUEBRAR ASTRA)
====================================================== */

@media (max-width: 900px) {

  /* Container principal do Astra */
  body.woocommerce-checkout .ast-container,
  body.woocommerce-cart .ast-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* Área principal */
  body.woocommerce-checkout #primary,
  body.woocommerce-cart #primary {
    padding: 0 !important;
    margin: 0 !important;
  }

  /* Conteúdo Woo */
  body.woocommerce-checkout .woocommerce,
  body.woocommerce-cart .woocommerce {
    padding: 0 !important;
  }


}

/* ======================================================
   CHECKOUT / CART — FIX OVERFLOW DEFINITIVO MOBILE
====================================================== */

@media (max-width: 900px) {

  /* Nunca permitir overflow horizontal */
  html,
  body {
    overflow-x: hidden;
  }

  body.woocommerce-checkout,
  body.woocommerce-cart {
    overflow-x: hidden;
  }

  /* Container Woo */
  body.woocommerce-checkout .woocommerce,
  body.woocommerce-cart .woocommerce {
    max-width: 100%;
    overflow-x: hidden;
  }

  /* Colunas Woo (culpadas clássicas) */
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout .woocommerce-checkout-review-order,
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart .cart_totals {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  /* Tabelas */
  body.woocommerce-checkout table,
  body.woocommerce-cart table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed;
    word-break: break-word;
  }


}

/* ======================================================
   CHECKOUT MOBILE — FIX CIRÚRGICO (SEM QUEBRAR SITE)
====================================================== */

@media (max-width: 900px) {

  /* Impede scroll horizontal */
  html, body {
    overflow-x: hidden;
  }

  /* Container Woo */
  body.woocommerce-checkout .woocommerce {
    max-width: 100%;
    width: 100%;
  }

  /* Colunas do checkout */
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout .woocommerce-checkout-review-order {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  /* Tabelas */
  body.woocommerce-checkout table {
    width: 100% !important;
    table-layout: fixed;
    word-break: break-word;
  }

  /* Inputs */
  body.woocommerce-checkout input,
  body.woocommerce-checkout select,
  body.woocommerce-checkout textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

}

/* ======================================================
   CHECKOUT MOBILE — FIX CIRÚRGICO (SEM QUEBRAR SITE)
====================================================== */

@media (max-width: 900px) {

  /* Impede scroll horizontal */
  html, body {
    overflow-x: hidden;
  }

  /* Container Woo */
  body.woocommerce-checkout .woocommerce {
    max-width: 100%;
    width: 100%;
  }

  /* Colunas do checkout */
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout .woocommerce-checkout-review-order {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
  }

  /* Tabelas */
  body.woocommerce-checkout table {
    width: 100% !important;
    table-layout: fixed;
    word-break: break-word;
  }

  /* Inputs */
  body.woocommerce-checkout input,
  body.woocommerce-checkout select,
  body.woocommerce-checkout textarea {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

}

/* ======================================================
   CHECKOUT — FIX RADIO BUTTON (Woo Blocks)
====================================================== */

body.woocommerce-checkout 
.wc-block-components-radio-control__input {
  width: auto !important;
  max-width: none !important;
  display: inline-block !important;
}

body.woocommerce-checkout 
.wc-block-components-radio-control {
  align-items: flex-start;
}

body.woocommerce-checkout 
.wc-block-components-radio-control__label {
  width: auto !important;
}

/* Campos normais apenas */
body.woocommerce-checkout input[type="text"],
body.woocommerce-checkout input[type="email"],
body.woocommerce-checkout input[type="tel"],
body.woocommerce-checkout input[type="number"],
body.woocommerce-checkout input[type="password"],
body.woocommerce-checkout select,
body.woocommerce-checkout textarea {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box;
}


/* ================================
   FIX RADIO — WooCommerce Blocks
================================ */

body.woocommerce-checkout 
.wc-block-components-radio-control__input {
  width: auto !important;
  max-width: none !important;
  display: inline-block !important;
}

/* Woo Blocks – checkbox nunca pode esticar */
body.woocommerce-checkout 
.wc-block-components-checkbox__input[type="checkbox"] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
  max-width: 20px !important;
  flex: 0 0 20px !important;
}


/* ===============================
   HOME HERO
================================ */

.lcw-home-hero {
  padding: 120px 20px 80px;
  text-align: center;
}

.lcw-home-container {
  max-width: 900px;
  margin: 0 auto;
}

.lcw-home-hero h1 {
  font-size: 42px;
  margin-bottom: 20px;
}

.lcw-home-hero p {
  font-size: 18px;
  color: #6b7280;
  margin-bottom: 32px;
}

.lcw-home-cta {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}


/* ===============================
   COMO FUNCIONA
================================ */

.lcw-home-steps {
  padding: 80px 20px;
  background: #ffffff;
  text-align: center;
}

.lcw-home-steps h2 {
  margin-bottom: 50px;
  font-size: 30px;
}

.lcw-steps-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

.lcw-step {
  padding: 32px;
  border-radius: 16px;
  background: #faf8f7;
}

.lcw-step-number {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: #8b6a55;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  font-weight: 600;
}

/* MOBILE */
@media (max-width: 900px) {
  .lcw-home-hero h1 {
    font-size: 30px;
  }

  .lcw-steps-grid {
    grid-template-columns: 1fr;
  }
}

/* =========================================
   REMOVER TÍTULO DA PÁGINA INICIAL
========================================= */

body.home .entry-header {
  display: none !important;
}

.entry-header {
  display: none !important;
}


.woocommerce-js button.button, .woocommerce-js input.button {
    margin: 0;
    position: relative;
    overflow: visible;
    left: auto;
    display: inline-block;
    background-image: none;
    box-shadow: none;
    text-shadow: none;
    color: #fff;
}