/* Filó Rendeira — correções globais de estabilidade, acessibilidade e responsividade. */
:root {
  --brand-pink-soft: #D8A7B1;
  --brand-pink-dark: #9D5D6B;
  --brand-rose-deep: #874B58;
  --brand-pink-light: #F8E7EB;
  --brand-action: #9D5D6B;
  --brand-action-hover: #874B58;
  --focus-ring: #6C4050;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { overflow-x: hidden; }
a { color: inherit; }
img, svg, video, canvas { max-width: 100%; }
img { height: auto; }
main, section, article, div, p, h1, h2, h3, h4, h5, h6 { min-width: 0; }
h1, h2, h3, p, a, button, span, label, input, textarea, select { overflow-wrap: anywhere; }
h1 { font-size: clamp(2.25rem, 7vw, 4.8rem); line-height: .98; }
h2 { font-size: clamp(1.8rem, 5vw, 3.35rem); line-height: 1.05; }
h3 { line-height: 1.15; }
.button-primary, .fr-btn-primary, .fr-primary-btn, .nav-cta, .fr-card-btn-primary {
  background: linear-gradient(135deg, var(--brand-action), var(--brand-action-hover)) !important;
  color: #fff !important;
  border-color: transparent !important;
}
.button-outline, .fr-btn-secondary, .fr-secondary-btn, .fr-card-btn-secondary {
  color: var(--brand-action-hover) !important;
  border-color: rgba(157,93,107,.45) !important;
}
.button-primary:hover, .fr-btn-primary:hover, .fr-primary-btn:hover { filter: brightness(.98); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--focus-ring) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 4px rgba(108,64,80,.16) !important;
}
.skip-link, .fr-skip-link {
  position: fixed;
  top: .75rem;
  left: .75rem;
  z-index: 2147483647;
  transform: translateY(-150%);
  background: #fff;
  color: var(--brand-brown);
  border: 2px solid var(--brand-action);
  border-radius: 999px;
  padding: .75rem 1rem;
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus, .fr-skip-link:focus { transform: translateY(0); }
.form-error[aria-live] { min-height: 1.25rem; }
.form-error.show { display:block; color:#8f1d2f; font-weight:600; }
.input-error, .form-input.input-error { border-color:#8f1d2f !important; box-shadow:0 0 0 3px rgba(143,29,47,.12) !important; }
.fr-portfolio-grid, .fr-portfolio-grid-v9, .fr-lookbook-grid, .fr-benefits-grid, .fr-support-grid, .fr-step-grid, .fr-testimonial-grid, .seo-gallery, .resumo-card-grid { width:100%; }
.portfolio-card, .fr-portfolio-card, .fr-portfolio-card-v9, .fr-lookbook-card, .piece-card, .premium-card, .fr-benefit-card, .fr-support-card, .seo-card { overflow:hidden; }
.fr-portfolio-card-img, .fr-card-image, .piece-image { background:#f8eef1; }
.hero-slide:not(.active) { pointer-events:none; }
.floating-whatsapp-smart { right: max(1rem, env(safe-area-inset-right)); bottom: max(1rem, env(safe-area-inset-bottom)); z-index: 9995 !important; }
body.cookie-banner-open .floating-whatsapp-smart { bottom: calc(max(1rem, env(safe-area-inset-bottom)) + 5.5rem) !important; }
#cookie-banner { gap: 1rem; }
#cookie-banner a { color: #fff !important; text-decoration: underline; }
#lightbox, #popup, #exit-popup { overscroll-behavior: contain; }
@media (max-width: 767px) {
  .section-padding { padding-left: 1rem !important; padding-right: 1rem !important; }
  .fr-model-copy, .fr-budget-copy, .fr-portfolio-hero-copy, .fr-inner-hero-polished { text-align:left; }
  .fr-model-actions, .fr-portfolio-hero-actions, .fr-section-actions { display:flex; flex-direction:column; align-items:stretch; gap:.75rem; }
  .fr-model-actions a, .fr-portfolio-hero-actions a, .button-primary, .button-outline { width:100%; justify-content:center; text-align:center; }
  .fr-hero-frame, .fr-inner-visual-card, .fr-portfolio-hero-visual { max-width:100%; }
  .fr-budget-form-shell form { padding-left: 1rem !important; padding-right: 1rem !important; }
  #cookie-banner { padding: 1rem !important; align-items:stretch !important; }
  #cookie-banner > div { width:100%; display:grid !important; grid-template-columns:1fr 1fr; }
  .floating-whatsapp-smart { max-width: calc(100vw - 2rem); }
  .floating-whatsapp-smart .float-subtitle { display:none; }
  .fr-benefits-grid, .fr-support-grid, .fr-step-grid, .fr-testimonial-grid, .seo-gallery { grid-template-columns:1fr !important; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
}

/* Correção do bloco de orçamento: centraliza os textos e impede que ultrapassem o contêiner. */
#orcamento .fr-budget-wrap {
  grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr);
  overflow: hidden;
}

#orcamento .fr-budget-copy {
  width: 100%;
  max-width: 34rem;
  margin-inline: auto;
  text-align: center !important;
  align-items: center;
}

#orcamento .fr-budget-copy .fr-mini-label,
#orcamento .fr-budget-copy h2,
#orcamento .fr-budget-copy p,
#orcamento .fr-budget-copy small {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none;
}

#orcamento .fr-budget-copy h2 {
  max-width: 11ch;
  font-size: clamp(2.15rem, 4.1vw, 3.65rem) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.032em !important;
  text-align: center !important;
  text-wrap: balance;
}

#orcamento .fr-budget-copy p {
  max-width: 30rem;
  text-align: center !important;
  text-wrap: pretty;
}

#orcamento .fr-budget-list {
  width: min(100%, 30rem);
  margin-left: auto;
  margin-right: auto;
  text-align: left;
}

#orcamento .fr-budget-form-shell,
#orcamento .fr-budget-form-shell > div {
  min-width: 0;
  max-width: 100%;
}

#orcamento .fr-budget-form-shell .bg-\[var\(--brand-pink-dark\)\] {
  text-align: center !important;
  padding-left: clamp(1.25rem, 4vw, 2rem) !important;
  padding-right: clamp(1.25rem, 4vw, 2rem) !important;
  overflow: hidden;
}

#orcamento .fr-budget-form-shell .bg-\[var\(--brand-pink-dark\)\] h3,
#orcamento .fr-budget-form-shell .bg-\[var\(--brand-pink-dark\)\] p {
  max-width: 34rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  white-space: normal !important;
  text-wrap: balance;
}

/* No orçamento, a animação passa a subir suavemente em vez de entrar pela lateral,
   evitando que o texto apareça fora do card durante o reveal. */
html.filo-main-motion-ready #orcamento .filo-main-title.filo-main-left:not(.filo-main-visible),
html.filo-main-motion-ready #orcamento .filo-main-title.filo-main-right:not(.filo-main-visible),
html.filo-main-motion-ready #orcamento .filo-main-text.filo-main-left:not(.filo-main-visible),
html.filo-main-motion-ready #orcamento .filo-main-text.filo-main-right:not(.filo-main-visible) {
  transform: translate3d(0, 28px, 0) !important;
}

html.filo-main-motion-ready #orcamento .filo-main-visible {
  transform: translate3d(0, 0, 0) !important;
}

@media (max-width: 1023px) {
  #orcamento .fr-budget-wrap {
    grid-template-columns: 1fr;
  }

  #orcamento .fr-budget-copy {
    padding-left: 1rem;
    padding-right: 1rem;
  }
}

@media (max-width: 767px) {
  #orcamento .fr-budget-copy h2 {
    max-width: 10.5ch;
    font-size: clamp(2.05rem, 10vw, 2.85rem) !important;
  }

  #orcamento .fr-budget-form-shell .bg-\[var\(--brand-pink-dark\)\] h3 {
    font-size: clamp(1.55rem, 7vw, 2rem) !important;
  }
}

/* Correção reforçada — banner de cookies/Clarity sempre visível e clicável. */
#cookie-banner[data-cookie-banner],
#cookie-banner {
  box-sizing: border-box !important;
  position: fixed !important;
  left: max(1rem, env(safe-area-inset-left)) !important;
  right: max(1rem, env(safe-area-inset-right)) !important;
  bottom: max(1rem, env(safe-area-inset-bottom)) !important;
  width: auto !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
  z-index: 2147483000 !important;
  background: var(--brand-brown, #4A3728) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  border-radius: 1.25rem !important;
  padding: 1rem 1.15rem !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.24) !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
}

#cookie-banner .fr-cookie-text,
#cookie-banner p {
  flex: 1 1 520px !important;
  max-width: 760px !important;
  margin: 0 !important;
  color: #fff !important;
  opacity: .96 !important;
  font-size: .86rem !important;
  line-height: 1.55 !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

#cookie-banner a {
  color: #fff !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
  text-underline-offset: .18em !important;
}

#cookie-banner .fr-cookie-actions,
#cookie-banner > div {
  display: flex !important;
  flex: 0 0 auto !important;
  gap: .7rem !important;
  align-items: center !important;
}

#cookie-banner button {
  appearance: none !important;
  min-height: 44px !important;
  border-radius: 999px !important;
  padding: .72rem 1.15rem !important;
  cursor: pointer !important;
  font-weight: 700 !important;
  font-size: .84rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

#cookie-banner .fr-cookie-accept,
#cookie-banner button[onclick*="acceptCookies"] {
  background: var(--brand-pink-dark, #9D5D6B) !important;
  color: #fff !important;
  border: 1px solid transparent !important;
}

#cookie-banner .fr-cookie-decline,
#cookie-banner button[onclick*="declineCookies"] {
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.45) !important;
}

body.cookie-banner-open .floating-whatsapp-smart,
body.cookie-banner-open #back-to-top {
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 767px) {
  #cookie-banner[data-cookie-banner],
  #cookie-banner {
    left: .75rem !important;
    right: .75rem !important;
    bottom: .75rem !important;
    max-height: calc(100vh - 1.5rem) !important;
    overflow-y: auto !important;
    padding: .95rem !important;
    align-items: stretch !important;
  }

  #cookie-banner .fr-cookie-text,
  #cookie-banner p {
    flex-basis: 100% !important;
    max-width: none !important;
    text-align: left !important;
    font-size: .78rem !important;
    line-height: 1.45 !important;
  }

  #cookie-banner .fr-cookie-actions,
  #cookie-banner > div {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
  }

  #cookie-banner button {
    width: 100% !important;
    padding-inline: .75rem !important;
  }
}
