/* =========================================================
   Fono Life System — Front-end
   Design: "Fono Life Saúde" (Novamira design system)
   Fonts: Fredoka (headings) / Nunito (body)
   ========================================================= */

:root{
  --fls-bg:#F4F8FB;
  --fls-surface:#FFFFFF;
  --fls-ink:#0C2D4A;
  --fls-ink-2:#163f66;
  --fls-ink-3:#1f5488;
  --fls-ink-muted:#54595F;
  --fls-accent:#61CE70;
  --fls-accent-dark:#3DB550;
  --fls-danger:#E53E3E;
  --fls-warning:#F6AD55;
  --fls-sm:8px;
  --fls-md:16px;
  --fls-lg:32px;
  --fls-xl:64px;
  --fls-r-sm:6px;
  --fls-r-md:12px;
  --fls-r-lg:20px;
  --fls-r-pill:999px;
  --fls-shadow-card:0 2px 16px rgba(12,45,74,.08);
  --fls-shadow-pop:0 8px 40px rgba(12,45,74,.18);
  --fls-shadow-card-hover:0 6px 24px rgba(12,45,74,.12);
  --fls-font-head:"Fredoka",sans-serif;
  --fls-font-body:"Nunito",sans-serif;
}

/* ---------- Shared primitives ---------- */

.fls-login-wrap,
.fls-card-page{
  font-family:var(--fls-font-body);
  color:var(--fls-ink);
}

.fls-login-wrap h2,
.fls-card-page h2,
.fls-card-brand,
.fls-card-value,
.fls-card-label{
  font-family:var(--fls-font-head);
}

.fls-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:14px 28px;
  border-radius:var(--fls-r-pill);
  font-family:var(--fls-font-body);
  font-size:15px;
  font-weight:700;
  text-decoration:none;
  cursor:pointer;
  border:none;
  line-height:1.2;
  transition:transform .15s ease, box-shadow .15s ease, background-color .15s ease, color .15s ease;
}
.fls-btn:active{ transform:translateY(1px); }

.fls-btn-primary{
  background:var(--fls-accent);
  color:var(--fls-ink);
  width:100%;
  box-shadow:0 4px 14px rgba(97,206,112,.35);
}
.fls-btn-primary:hover{ background:var(--fls-accent-dark); color:#fff; }

.fls-btn-outline{
  background:transparent;
  border:1.5px solid var(--fls-ink);
  color:var(--fls-ink);
  padding:10px 22px;
}
.fls-btn-outline:hover{ background:var(--fls-ink); color:#fff; }

.fls-btn-print{
  background:rgba(255,255,255,.14);
  color:#fff;
  border:1.5px solid rgba(255,255,255,.5);
  padding:10px 20px;
  font-size:13px;
}
.fls-btn-print:hover{ background:#fff; color:var(--fls-ink); }

.fls-alert{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:14px 16px;
  border-radius:var(--fls-r-md);
  margin-bottom:var(--fls-md);
  font-size:14px;
  font-weight:600;
}
.fls-alert-error{ background:#FDEEEE; color:#B32424; border:1px solid rgba(229,62,62,.25); }
.fls-alert-success{ background:#EAF9EC; color:#2C7A38; border:1px solid rgba(97,206,112,.35); }

/* ---------- Login / Recuperar senha ---------- */

.fls-login-wrap{
  max-width:460px;
  margin:56px auto;
  padding:0 20px;
}

.fls-login-box{
  position:relative;
  background:var(--fls-surface);
  border-radius:var(--fls-r-lg);
  padding:44px 36px;
  box-shadow:var(--fls-shadow-card);
  overflow:hidden;
}
.fls-login-box::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:6px;
  background:linear-gradient(90deg, var(--fls-accent), var(--fls-ink));
}

.fls-login-box h2{
  font-weight:600;
  font-size:26px;
  color:var(--fls-ink);
  margin:6px 0 8px;
  letter-spacing:-.01em;
}

.fls-login-subtitle{
  color:var(--fls-ink-muted);
  font-size:14.5px;
  line-height:1.5;
  margin-bottom:28px;
}

.fls-login-form .fls-field{ margin-bottom:18px; }

.fls-login-form label{
  display:block;
  font-family:var(--fls-font-body);
  font-size:13px;
  font-weight:700;
  color:var(--fls-ink);
  margin-bottom:7px;
}

.fls-login-form input[type="text"],
.fls-login-form input[type="password"],
.fls-login-form input[type="email"]{
  width:100%;
  padding:13px 15px;
  border:1.5px solid #D8DEE6;
  border-radius:var(--fls-r-sm);
  font-family:var(--fls-font-body);
  font-size:15px;
  color:var(--fls-ink);
  background:#fff;
  box-sizing:border-box;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.fls-login-form input::placeholder{ color:#A7B0BB; }
.fls-login-form input:focus{
  border-color:var(--fls-accent);
  outline:none;
  box-shadow:0 0 0 4px rgba(97,206,112,.22);
}

.fls-field-remember{ display:flex; align-items:center; margin-bottom:22px; }
.fls-field-remember label{
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:500;
  font-size:13.5px;
  color:var(--fls-ink-muted);
  margin:0;
  cursor:pointer;
}
.fls-field-remember input[type="checkbox"]{
  width:16px; height:16px;
  accent-color:var(--fls-accent-dark);
}

.fls-login-links{ margin-top:20px; text-align:center; }
.fls-login-links a{
  color:var(--fls-ink);
  font-size:13.5px;
  font-weight:700;
  text-decoration:none;
  border-bottom:1.5px solid var(--fls-accent);
  padding-bottom:1px;
}
.fls-login-links a:hover{ color:var(--fls-accent-dark); }

.fls-login-success{ text-align:center; }
.fls-login-success p{ color:var(--fls-ink-muted); margin-bottom:20px; }

/* ---------- Carteirinha ---------- */

.fls-card-page{
  max-width:520px;
  margin:56px auto 80px;
  padding:0 20px;
}

.fls-card-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:28px;
  gap:16px;
}
.fls-card-header h2{
  font-weight:600;
  font-size:24px;
  color:var(--fls-ink);
  margin:0;
}

.fls-virtual-card{
  position:relative;
  aspect-ratio:85.6 / 54;
  width:100%;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(97,206,112,.18), transparent 55%),
    linear-gradient(135deg, var(--fls-ink) 0%, var(--fls-ink-2) 55%, var(--fls-ink-3) 100%);
  border-radius:var(--fls-r-md);
  padding:22px 26px;
  color:#fff;
  box-shadow:var(--fls-shadow-pop);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  box-sizing:border-box;
  overflow:hidden;
}
.fls-virtual-card::after{
  content:"";
  position:absolute;
  right:-40px; bottom:-60px;
  width:220px; height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(97,206,112,.16), transparent 70%);
  pointer-events:none;
}

.fls-card-top{
  display:flex;
  align-items:center;
  gap:10px;
}
.fls-card-logo{ height:28px; width:auto; }
.fls-card-brand{
  font-size:16px;
  font-weight:600;
  letter-spacing:.01em;
}

.fls-card-status{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 12px;
  border-radius:var(--fls-r-pill);
  font-family:var(--fls-font-body);
  font-size:11px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
}
.fls-card-status::before{
  content:"";
  width:6px; height:6px;
  border-radius:50%;
  background:currentColor;
}
.fls-status-ativo{ background:rgba(97,206,112,.2); color:#8BEF9B; }
.fls-status-pendente{ background:rgba(246,173,85,.2); color:#F6AD55; }
.fls-status-cancelado{ background:rgba(229,62,62,.22); color:#FF8A8A; }

.fls-card-number{ margin:6px 0; }
.fls-card-label{
  display:block;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1.2px;
  opacity:.65;
  margin-bottom:4px;
  font-weight:500;
}
.fls-card-value{
  font-size:clamp(18px,4.4vw,24px);
  font-weight:600;
  font-family:"SFMono-Regular","Courier New",monospace;
  letter-spacing:1.5px;
}

.fls-card-info{
  display:grid;
  grid-template-columns:1.3fr 1fr 1fr;
  gap:14px;
}
.fls-card-info-item{ min-width:0; }
.fls-card-info-item .fls-card-value{
  font-size:clamp(13px,2.6vw,15px);
  font-family:var(--fls-font-body);
  font-weight:700;
  letter-spacing:0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  display:block;
}

.fls-card-footer{
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid rgba(255,255,255,.18);
  padding-top:12px;
  margin-top:4px;
}
.fls-card-footer span{ font-size:11px; opacity:.75; }

.fls-card-actions{
  display:flex;
  gap:12px;
  margin-top:24px;
  flex-wrap:wrap;
}
.fls-card-actions .fls-btn{ flex:1 1 160px; }
.fls-card-actions .fls-btn-download{
  background:var(--fls-ink);
  color:#fff;
}
.fls-card-actions .fls-btn-download:hover{ background:var(--fls-ink-2); }

.fls-card-hint{
  margin-top:18px;
  text-align:center;
  font-size:13px;
  color:var(--fls-ink-muted);
}

/* ---------- Terms checkbox (checkout) ---------- */

.fls-terms-checkbox{
  margin:20px 0;
  padding:16px 18px;
  background:var(--fls-bg);
  border:1px solid #E1E9F1;
  border-radius:var(--fls-r-md);
}
.fls-terms-checkbox label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-family:var(--fls-font-body);
  font-size:13.5px;
  color:var(--fls-ink-muted);
  line-height:1.5;
  cursor:pointer;
}
.fls-terms-checkbox input[type="checkbox"]{
  margin-top:3px;
  width:16px; height:16px;
  accent-color:var(--fls-accent-dark);
  flex-shrink:0;
}
.fls-terms-checkbox a{ color:var(--fls-ink); font-weight:700; text-decoration:underline; }

/* ---------- WooCommerce checkout / cadastro ---------- */

body.woocommerce-checkout #payment,
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields{
  font-family:var(--fls-font-body);
}

.woocommerce-checkout .col2-set,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review{
  font-family:var(--fls-font-body);
}

.woocommerce-billing-fields h3,
.woocommerce-additional-fields h3,
.woocommerce-checkout #order_review_heading{
  font-family:var(--fls-font-head) !important;
  color:var(--fls-ink) !important;
  font-weight:600 !important;
  font-size:20px !important;
}

.woocommerce-checkout form .form-row label{
  font-family:var(--fls-font-body);
  font-weight:700;
  font-size:13px;
  color:var(--fls-ink);
}

.woocommerce-checkout form .input-text,
.woocommerce-checkout form select,
.woocommerce-checkout form textarea{
  border:1.5px solid #D8DEE6 !important;
  border-radius:var(--fls-r-sm) !important;
  padding:12px 14px !important;
  font-family:var(--fls-font-body) !important;
  font-size:15px !important;
  box-shadow:none !important;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.woocommerce-checkout form .input-text:focus,
.woocommerce-checkout form select:focus,
.woocommerce-checkout form textarea:focus{
  border-color:var(--fls-accent) !important;
  outline:none;
  box-shadow:0 0 0 4px rgba(97,206,112,.22) !important;
}

.woocommerce-checkout #place_order,
.woocommerce-cart .checkout-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button{
  background:var(--fls-accent) !important;
  color:var(--fls-ink) !important;
  border:none !important;
  border-radius:var(--fls-r-pill) !important;
  font-family:var(--fls-font-body) !important;
  font-weight:700 !important;
  padding:14px 30px !important;
  box-shadow:0 4px 14px rgba(97,206,112,.35);
  transition:background-color .15s ease, color .15s ease;
}
.woocommerce-checkout #place_order:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover{
  background:var(--fls-accent-dark) !important;
  color:#fff !important;
}

.woocommerce ul#shipping_method,
.woocommerce-checkout-review-order-table{
  border-radius:var(--fls-r-md);
  overflow:hidden;
}
.woocommerce-checkout-review-order-table{
  background:var(--fls-surface);
  box-shadow:var(--fls-shadow-card);
  border-collapse:separate;
}
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td{
  font-family:var(--fls-font-body) !important;
  border-color:#EAEFF4 !important;
}
.woocommerce-checkout-review-order-table .order-total .amount{
  color:var(--fls-ink) !important;
  font-weight:800 !important;
}

.woocommerce-error, .woocommerce-notice--error{
  background:#FDEEEE !important;
  border-top-color:var(--fls-danger) !important;
  color:#B32424 !important;
  border-radius:var(--fls-r-md);
  font-family:var(--fls-font-body);
}
.woocommerce-message, .woocommerce-notice--success{
  background:#EAF9EC !important;
  border-top-color:var(--fls-accent-dark) !important;
  color:#2C7A38 !important;
  border-radius:var(--fls-r-md);
  font-family:var(--fls-font-body);
}

/* Payment method boxes */
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method{
  border:1.5px solid #E1E9F1;
  border-radius:var(--fls-r-md);
  padding:14px 16px;
  margin-bottom:10px;
  transition:border-color .15s ease, background-color .15s ease;
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method label{
  font-weight:700;
  color:var(--fls-ink);
}
.woocommerce-checkout ul.wc_payment_methods li.wc_payment_method .payment_box{
  background:var(--fls-bg);
  border-radius:var(--fls-r-sm);
  font-family:var(--fls-font-body);
}

/* ---------- Responsive ---------- */

@media (max-width:600px){
  .fls-login-box{ padding:30px 22px; }
  .fls-card-info{ grid-template-columns:1fr 1fr; }
  .fls-card-info-item:first-child{ grid-column:1 / -1; }
  .fls-virtual-card{ aspect-ratio:auto; padding:24px 20px; }
  .fls-card-header{ flex-wrap:wrap; }
}

@media print{
  .fls-card-header, .fls-card-actions, .fls-card-hint{ display:none !important; }
  .fls-virtual-card{ box-shadow:none !important; border:1px solid #ccc !important; aspect-ratio:auto; }
  .fls-virtual-card::after{ display:none; }
}


/* Remove o titulo grande padrao do tema (Login, Minha Carteirinha, Checkout, Carrinho, etc.) */
.page-header{display:none !important;}


/* ============================================
   Cabecalho e rodape do tema nas paginas internas
   (Login, Carteirinha, Carrinho, Checkout, etc.)
   ============================================ */

/* O logo estava sendo exibido em tamanho original (884x949px),
   criando um enorme espaco em branco no topo da pagina. */
.site-header .custom-logo,
.site-footer .custom-logo{
  max-height:56px !important;
  width:auto !important;
  height:auto !important;
}

.site-header .site-logo,
.site-footer .site-logo{
  max-width:200px;
}

.site-header .header-inner{
  padding:14px 24px !important;
  display:flex;
  align-items:center;
}

.site-footer .footer-inner{
  padding:18px 24px !important;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* Garante que o conteudo comece logo abaixo do cabecalho */
.site-main{
  min-height:auto !important;
}

.site-main > .page-content{
  padding-top:24px;
}
