/* Compat temporário Fase 1 Play CDN: implementa o subconjunto Bootstrap usado no site
   com CSS próprio (sem lib Bootstrap). Fase 2 build: remover e renomear classes p/ Tailwind puro. */
:root { --tw-gutter-x: 1em; --bs-gutter-x: var(--tw-gutter-x); }
@media only screen and (orientation: portrait) { :root { --tw-gutter-x: 1.5em; } }

/* container: mesma largura Bootstrap (1320px, 75vw >=1600px via style.css) */
.container { width: 100%; margin-left: auto; margin-right: auto; padding-left: calc(var(--tw-gutter-x) * .75); padding-right: calc(var(--tw-gutter-x) * .75); }
@media (min-width: 576px) { .container { max-width: 540px; } }
@media (min-width: 768px) { .container { max-width: 720px; } }
@media (min-width: 992px) { .container { max-width: 960px; } }
@media (min-width: 1200px) { .container { max-width: 1140px; } }
@media (min-width: 1400px) { .container { max-width: 1320px; } }

/* row + gutter */
.row { display: flex; flex-wrap: wrap; margin-left: calc(var(--tw-gutter-x) * -.5); margin-right: calc(var(--tw-gutter-x) * -.5); }
.row > * { flex-shrink: 0; width: 100%; max-width: 100%; padding-left: calc(var(--tw-gutter-x) * .5); padding-right: calc(var(--tw-gutter-x) * .5); }
.g-0 { --tw-gutter-x: 0; } .g-3 { --tw-gutter-x: 1rem; }
.gx-5 { --tw-gutter-x: 3rem; }

/* cols base */
.col-12 { flex: 0 0 auto; width: 100%; } .col-6 { flex: 0 0 auto; width: 50%; }
.col-md-2 { flex: 0 0 auto; width: 100%; } .col-md-3 { flex: 0 0 auto; width: 100%; }
.col-md-4 { flex: 0 0 auto; width: 100%; } .col-md-5 { flex: 0 0 auto; width: 100%; }
.col-md-6 { flex: 0 0 auto; width: 100%; } .col-md-7 { flex: 0 0 auto; width: 100%; }
.col-md-8 { flex: 0 0 auto; width: 100%; } .col-md-12 { flex: 0 0 auto; width: 100%; }
.col-lg-2 { flex: 0 0 auto; width: 100%; } .col-lg-4 { flex: 0 0 auto; width: 100%; }
.col-lg-5 { flex: 0 0 auto; width: 100%; } .col-lg-6 { flex: 0 0 auto; width: 100%; }
.col-lg-7 { flex: 0 0 auto; width: 100%; } .col-lg-8 { flex: 0 0 auto; width: 100%; }
.col-lg-12 { flex: 0 0 auto; width: 100%; }
@media (min-width: 768px) {
  .col-md-2 { width: 16.6667%; } .col-md-3 { width: 25%; } .col-md-4 { width: 33.3333%; }
  .col-md-5 { width: 41.6667%; } .col-md-6 { width: 50%; } .col-md-7 { width: 58.3333%; }
  .col-md-8 { width: 66.6667%; } .col-md-12 { width: 100%; }
}
@media (min-width: 992px) {
  .col-lg-2 { width: 16.6667%; } .col-lg-4 { width: 33.3333%; } .col-lg-5 { width: 41.6667%; }
  .col-lg-6 { width: 50%; } .col-lg-7 { width: 58.3333%; } .col-lg-8 { width: 66.6667%; }
  .col-lg-12 { width: 100%; } .col-lg-10 { width: 83.3333%; }
  .offset-lg-1 { margin-left: 8.3333%; } .offset-lg-2 { margin-left: 16.6667%; }
  .order-lg-1 { order: 1; } .order-lg-2 { order: 2; }
}
.order-1 { order: 1; } .order-2 { order: 2; }

/* display / flex helpers usados */
.d-none { display: none !important; } .d-block { display: block !important; }
.d-flex { display: flex !important; }
@media (min-width: 576px) { .d-sm-block { display: block !important; } .d-sm-none { display: none !important; } }
@media (min-width: 768px) { .d-md-flex { display: flex !important; } }
@media (min-width: 992px) { .d-lg-block { display: block !important; } .d-lg-none { display: none !important; } }

/* Tipografia: restaura escala Bootstrap (Tailwind preflight zera h1-h6) */
h1, .h1 { font-size: calc(1.375rem + 1.5vw) !important; line-height: 1.2; font-weight: 300 !important; margin-bottom: .75rem !important; }
@media (min-width: 1200px) { h1, .h1 { font-size: 2.5rem !important; } }
h2, .h2 { font-size: calc(1.325rem + .9vw) !important; line-height: 1.2; font-weight: 300 !important; margin-bottom: .75rem !important; }
@media (min-width: 1200px) { h2, .h2 { font-size: 2rem !important; } }
h3, .h3 { font-size: calc(1.3rem + .6vw) !important; line-height: 1.2; font-weight: 300 !important; margin-bottom: .75rem !important; }
@media (min-width: 1200px) { h3, .h3 { font-size: 1.75rem !important; } }
h4, .h4 { font-size: calc(1.275rem + .3vw) !important; line-height: 1.2; font-weight: 300 !important; margin-bottom: .75rem !important; }
@media (min-width: 1200px) { h4, .h4 { font-size: 1.5rem !important; } }
h5, .h5 { font-size: 1.25rem !important; line-height: 1.2; font-weight: 300 !important; margin-bottom: .5rem !important; }
h6, .h6 { font-size: 1rem !important; line-height: 1.2; font-weight: 300 !important; margin-bottom: .5rem !important; }
strong, b, .fw-bold { font-weight: 400 !important; }
.font-weight-normal { font-weight: 300 !important; }
.font-semibold { font-weight: 400 !important; }

/* buttons: mesma paleta, rounded suave 14px */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 400; line-height: 1.5; text-align: center; vertical-align: middle; cursor: pointer; border: 1px solid transparent; padding: .65rem 1.25rem; font-size: 1rem; border-radius: 6px; transition: .15s; text-decoration: none !important; }
.btn-lg { padding: .8rem 1.5rem; font-size: 1.15rem; border-radius: 6px; }
.btn-sm { padding: .3rem .65rem; font-size: .875rem; border-radius: 4px; }
.btn-block { display: flex; width: 100%; } .w-100 { width: 100% !important; } .w-75 { width: 75% !important; }
.btn-primary { background: var(--primary-color); border-color: var(--primary-color); color: #fff; box-shadow: none; }
.btn-primary:hover { filter: brightness(1.08); color: #fff; }
.btn-secondary { background: #6c757d; border-color: #6c757d; color: #fff; }
.btn-success { background: #198754; border-color: #198754; color: #fff; }
.btn-danger { background: #dc3545; border-color: #dc3545; color: #fff; }
.btn-warning { background: #ffc107; border-color: #ffc107; color: #000; }
.btn-light { background: #f8f9fa; border-color: #e9ecef; color: #000; }
.btn-dark { background: #212529; border-color: #212529; color: #fff; }
.btn-dark:hover { background: #000; color: #fff; }
.btn-outline-primary { border-color: var(--primary-color); color: var(--primary-color); background: transparent; }
.btn-outline-secondary { border-color: #6c757d; color: #6c757d; background: transparent; }
.btn-close { width: 1em; height: 1em; background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat; border: 0; opacity: .5; cursor: pointer; }
.btn-download-app { padding: .7rem 1.1rem; border-radius: 6px; line-height: 1.1; }

/* forms: restaura aparência Bootstrap sobre o preflight */
.assinatura .row.g-3 { row-gap: 1.1rem; }
.form-label { display: block; font-weight: 400; font-size: .9rem; margin-bottom: .4rem; color: var(--text-dark); }
.form-control, .form-select { display: block; width: 100%; padding: .7rem .9rem; font-size: 1rem; font-weight: 400; line-height: 1.5; color: #212529; border: 1px solid #ced4da; border-radius: 6px; background-color: #fff; background-clip: padding-box; appearance: none; }
.form-control::placeholder { color: #adb5bd; opacity: 1; }
.form-control:focus, .form-select:focus { border-color: var(--primary-color); outline: 0; box-shadow: 0 0 0 .25rem rgba(0,53,170,.15); }
textarea.form-control { min-height: 120px; resize: vertical; }
.form-select { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right .9rem center; background-size: 16px 12px; padding-right: 2.5rem; }
.form-control-lg, .form-select-lg { padding: .8rem 1.1rem; font-size: 1.1rem; border-radius: 6px; }
.form-check { display: flex; gap: .6rem; align-items: flex-start; }
.form-check-input { width: 1.1em; height: 1.1em; margin-top: .2em; flex: 0 0 auto; accent-color: var(--primary-color); }
.form-check-label { font-size: .92rem; line-height: 1.5; }
label.error { color: #dc3545; padding-top: .5em; font-size: .8em; }

/* badges */
.badge { display:inline-block; padding:.35em .65em; font-size:.75em; font-weight:400; line-height:1; text-align:center; white-space:nowrap; vertical-align:baseline; border-radius:6px; }
/* cards */
.card-img-top { width:100%; border-top-left-radius:8px; border-top-right-radius:8px; }
.card-body { flex:1 1 auto; display:flex; flex-direction:column; padding:1rem 1.25rem; }
/* alert */
.alert { padding: .75rem 1.25rem; border-radius: 6px; border: 1px solid transparent; }
.alert-info { background: #cff4fc; border-color: #b6effb; color: #055160; }
.alert-warning { background: #fff3cd; border-color: #ffecb5; color: #664d03; }
.text-danger { color: #dc3545 !important; }
.img-thumbnail { padding: .25rem; background: #fff; border: 1px solid #dee2e6; border-radius: 6px; max-width: 100%; height: auto; }

/* modal vanilla (substitui bootstrap.js): usa [hidden] + .tw-open */
.tw-modal { position: fixed; inset: 0; z-index: 1055; display: none; overflow-y: auto; background: rgba(0,0,0,.5); padding: 1rem; }
.tw-modal.tw-open { display: flex; align-items: center; justify-content: center; }
.tw-modal-dialog { width: 100%; max-width: 500px; margin: auto; background: #fff; border-radius: 8px; box-shadow: 0 .5rem 1rem rgba(0,0,0,.15); }
.tw-modal-header, .tw-modal-body, .tw-modal-footer { padding: 1rem; }
.tw-modal-header { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #dee2e6; }
.tw-modal-footer { display: flex; justify-content: flex-end; gap: .5rem; border-top: 1px solid #dee2e6; }

/* collapse vanilla */
.tw-collapse { display: none; } .tw-collapse.show { display: block; }

/* carousel vanilla */
.tw-carousel { position: relative; overflow: hidden; }
.tw-carousel-track { display: flex; transition: transform .5s ease; }
.tw-carousel-slide { flex: 0 0 100%; }
.tw-carousel-btn { position: absolute; top: 0; bottom: 0; display: flex; align-items: center; padding: 0 1rem; background: transparent; border: 0; cursor: pointer; }
.tw-carousel-prev { left: 0; } .tw-carousel-next { right: 0; }
.tw-carousel-dots { position: absolute; bottom: 1rem; left: 0; right: 0; display: flex; justify-content: center; gap: .5rem; }
.tw-carousel-dots button { width: 30px; height: 3px; background: rgba(255,255,255,.5); border: 0; cursor: pointer; }
.tw-carousel-dots button.on { background: #fff; }

/* imgs */
.img-fluid { max-width: 100%; height: auto; }

/* ---- Utilitários Bootstrap usados no site, valores exatos p/ layout idêntico ----
   (sobrescrevem a escala do Tailwind Play CDN; Fase 2: trocar por classes TW) */
.m-0 { margin: 0 !important; } .m-3 { margin: 1rem !important; }
.mt-0 { margin-top: 0 !important; } .mt-1 { margin-top: .25rem !important; }
.mt-2 { margin-top: .5rem !important; } .mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; } .mt-5 { margin-top: 3rem !important; }
.mb-0 { margin-bottom: 0 !important; } .mb-1 { margin-bottom: .25rem !important; }
.mb-2 { margin-bottom: .5rem !important; } .mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; } .mb-5 { margin-bottom: 3rem !important; }
.ms-2 { margin-left: .5rem !important; } .mx-1 { margin-left: .25rem !important; margin-right: .25rem !important; }
.me-md-2 { margin-right: .5rem !important; }
@media (min-width: 992px) { .mb-lg-0 { margin-bottom: 0 !important; } .mt-lg-5 { margin-top: 3rem !important; } .ml-lg-auto { margin-left: auto !important; } }
.p-0 { padding: 0 !important; } .p-2 { padding: .5rem !important; } .p-3 { padding: 1rem !important; } .p-4 { padding: 1.5rem !important; }
.px-4 { padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.py-2 { padding-top: .5rem !important; padding-bottom: .5rem !important; }
.py-4 { padding-top: 1.5rem !important; padding-bottom: 1.5rem !important; }
.py-5 { padding-top: 3rem !important; padding-bottom: 3rem !important; }
.pt-0 { padding-top: 0 !important; } .pt-1 { padding-top: .25rem !important; }
.pt-2 { padding-top: .5rem !important; } .pt-3 { padding-top: 1rem !important; }
.pb-0 { padding-bottom: 0 !important; } .pb-3 { padding-bottom: 1rem !important; }
.ps-2 { padding-left: .5rem !important; } .ps-3 { padding-left: 1rem !important; }
@media (min-width: 768px) { .pt-md-0 { padding-top: 0 !important; } }
@media (min-width: 992px) { .p-lg-5 { padding: 3rem !important; } }
.text-center { text-align: center !important; } .text-left { text-align: left !important; }
@media (min-width: 768px) { .text-md-start { text-align: left !important; } }
@media (min-width: 992px) { .text-lg-start { text-align: left !important; } }
.text-muted { color: #6c757d !important; } .text-white { color: #fff !important; } .text-dark { color: #212529 !important; }
.text-uppercase { text-transform: uppercase !important; }
.bg-light { background: #f8f9fa !important; } .bg-info { background: #0dcaf0 !important; }
.bg-primary { background: var(--primary-color) !important; } .bg-success { background: #198754 !important; } .bg-warning { background: #ffc107 !important; }
.fs-3 { font-size: calc(1.3rem + .6vw) !important; } .fs-5 { font-size: 1.25rem !important; }
.fw-bold { font-weight: 400 !important; } .small, small { font-size: .875em; }
.lead { font-size: 1.25rem; font-weight: 300; }
.display-1 { font-size: calc(1.625rem + 4.5vw); font-weight: 300; line-height: 1.15; letter-spacing: -.02em; }
.display-2 { font-size: calc(1.575rem + 3.9vw); font-weight: 300; line-height: 1.15; letter-spacing: -.02em; }
.display-3 { font-size: calc(1.525rem + 3.3vw); font-weight: 300; line-height: 1.15; letter-spacing: -.02em; }
.display-4 { font-size: calc(1.475rem + 2.7vw); font-weight: 300; line-height: 1.15; letter-spacing: -.02em; }
.display-5 { font-size: calc(1.425rem + 2.1vw); font-weight: 300; line-height: 1.2; letter-spacing: -.02em; }
.display-6 { font-size: calc(1.375rem + 1.5vw); font-weight: 300; line-height: 1.2; }
@media (min-width: 1200px) {
  .display-1 { font-size: 5rem; } .display-2 { font-size: 4.5rem; } .display-3 { font-size: 4rem; }
  .display-4 { font-size: 3.5rem; } .display-5 { font-size: 3rem; } .display-6 { font-size: 2.5rem; }
}
/* compat legado mr-/ml- (Bootstrap 4) usados nos botões do app */
.mr-2 { margin-right: .5rem !important; } .mr-4 { margin-right: 1.5rem !important; }
.ml-2 { margin-left: .5rem !important; }
.me-2 { margin-right: .5rem !important; } .ms-3 { margin-left: 1rem !important; }
.pr-2 { padding-right: .5rem !important; } .pl-2 { padding-left: .5rem !important; }
@media (min-width: 768px) { .mr-md-3 { margin-right: 1rem !important; } }
.align-items-center { align-items: center !important; } .align-items-end { align-items: flex-end !important; } .align-items-start { align-items: flex-start !important; }
.justify-content-center { justify-content: center !important; }
@media (min-width: 768px) { .justify-content-md-center { justify-content: center !important; } }
.flex-column { flex-direction: column !important; } .flex-grow-1 { flex-grow: 1 !important; }
@media (min-width: 992px) { .d-lg-block { display: block !important; } }
@media (min-width: 768px) { .d-md-block { display: block !important; } }
.d-inline-block { display: inline-block !important; }
.col-auto { flex: 0 0 auto; width: auto; }
@media (min-width: 768px) { .col-md-auto { flex: 0 0 auto; width: auto; } .col-md-10 { width: 83.3333%; } }
@media (min-width: 992px) { .col-lg-3 { width: 25%; } }
.g-4 { --tw-gutter-x: 1.5rem; }
.border-0 { border: 0 !important; } .border-top { border-top: 1px solid #dee2e6 !important; }
.rounded { border-radius: 6px !important; } .rounded-4 { border-radius: 8px !important; }
.shadow-sm { box-shadow: 0 .125rem .25rem rgba(0,0,0,.075) !important; }
.h-100 { height: 100% !important; } .overflow-hidden { overflow: hidden !important; }
.card { border: 1px solid rgba(0,0,0,.08); border-radius: 8px; background: #fff; box-shadow: none; }
/* rounded global reduzido */
.tw-modal-dialog { border-radius: 8px !important; overflow: hidden; }
.alert { border-radius: 6px !important; }
.icon-box, .contact-form-wrapper, .contact-item { border-radius: 8px !important; }
.img-thumbnail { border-radius: 6px !important; }
