/*
Theme Name: Dharma Seguros
Theme URI: https://dharmaseguros.com.br
Author: Dharma Seguros
Author URI: https://dharmaseguros.com.br
Description: Tema de blocos da Dharma Seguros — corretora de planos de saúde empresarial em Ribeirão Preto. Arquitetura de SEO local, conversão por WhatsApp.
Version: 1.0.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: dharma-seguros
*/

:root{
  --navy:#13293D; --navy-deep:#0a1826; --blue:#4890D1; --light:#C6DAED; --wa:#25D366;
}

body{ -webkit-font-smoothing:antialiased; }

/* Footer margin reset */
.wp-site-blocks > footer{ margin-block-start:0; }

/* ============ HEADER ============ */
.dharma-header{
  position:sticky; top:0; z-index:50;
  background:rgba(13,31,48,.82); backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(72,144,209,.18);
}
.dharma-header .wp-block-site-logo img{ height:42px; width:auto; }
.dharma-nav a{ font-weight:600; font-size:.95rem; color:#cfe0f0; }
.dharma-nav a:hover{ color:var(--blue); }

/* ============ BUTTONS ============ */
.wp-block-button__link{ box-shadow:0 8px 30px rgba(72,144,209,.4); transition:transform .25s, box-shadow .25s; }
.wp-block-button__link:hover{ transform:translateY(-2px); }
.btn-wa .wp-block-button__link{ background:var(--wa)!important; color:#06371a!important; box-shadow:0 8px 30px rgba(37,211,102,.45); }
.btn-wa .wp-block-button__link:hover{ box-shadow:0 12px 36px rgba(37,211,102,.55); }
.is-style-outline .wp-block-button__link,
.btn-ghost .wp-block-button__link{
  background:transparent!important; color:#e8f1fa!important;
  border:1.5px solid rgba(198,218,237,.35)!important; box-shadow:none;
}
.btn-ghost .wp-block-button__link:hover{ border-color:var(--blue)!important; color:var(--blue)!important; }

/* ============ ELEMENTS ============ */
.eyebrow{
  font-family:'Courier Prime',monospace; font-weight:700; font-size:.78rem;
  letter-spacing:3px; text-transform:uppercase; color:var(--light);
  display:inline-flex; align-items:center; gap:.7rem;
  border:1px solid rgba(198,218,237,.25); padding:.5rem 1rem; border-radius:50px;
  background:rgba(72,144,209,.08);
}
.eyebrow::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--wa); box-shadow:0 0 12px var(--wa); }
.eyebrow.no-dot::before{ display:none; }
.accent-text{ color:var(--blue)!important; }
.mono-label{
  font-family:'Courier Prime',monospace; font-size:.72rem; letter-spacing:1.5px;
  text-transform:uppercase; color:#9db4c9;
}

/* ============ HERO ============ */
.dharma-hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(900px 500px at 78% 12%, rgba(72,144,209,.30), transparent 60%),
    radial-gradient(700px 600px at 8% 92%, rgba(72,144,209,.14), transparent 60%),
    linear-gradient(180deg,#13293D,#0a1826);
}
.dharma-hero::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:linear-gradient(rgba(72,144,209,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(72,144,209,.06) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:radial-gradient(circle at 72% 28%, black, transparent 72%);
  mask-image:radial-gradient(circle at 72% 28%, black, transparent 72%);
}
.dharma-hero > *{ position:relative; z-index:2; }
.hero-title{ text-shadow:0 4px 40px rgba(0,0,0,.4); }
.hero-orb{
  position:absolute; border-radius:50%; filter:blur(6px); opacity:.45; z-index:1;
  animation:dharmaFloat 7s ease-in-out infinite;
}
@keyframes dharmaFloat{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-22px);} }

/* stats */
.stat-num{ font-family:'Bebas Neue',sans-serif; font-size:3rem; color:var(--blue); line-height:1; }

/* ============ OPERADORAS STRIP ============ */
.op-logos img{ height:30px; width:auto; filter:grayscale(1) brightness(2.4); opacity:.6; transition:.3s; }
.op-logos img:hover{ filter:none; opacity:1; }

/* ============ CARDS ============ */
.equal-cards > .wp-block-column{ display:flex; flex-direction:column; flex-grow:0; }
.equal-cards > .wp-block-column > .wp-block-group{ display:flex; flex-direction:column; flex-grow:1; }
.equal-cards .cta-bottom{ margin-top:auto; }
.dharma-card{
  background:linear-gradient(180deg, rgba(72,144,209,.10), rgba(72,144,209,.02));
  border:1px solid rgba(72,144,209,.22); border-radius:16px;
  transition:transform .25s, border-color .25s, box-shadow .25s;
}
.dharma-card:hover{ transform:translateY(-6px); border-color:var(--blue); box-shadow:0 24px 50px -20px rgba(72,144,209,.4); }
.card-icon{ width:54px; height:54px; border-radius:12px; background:rgba(72,144,209,.18); position:relative; }
.card-icon::after{
  content:""; position:absolute; inset:0; margin:auto; width:28px; height:28px;
  background:var(--blue);
  -webkit-mask:var(--icon) center / 28px 28px no-repeat; mask:var(--icon) center / 28px 28px no-repeat;
}
.icon-compare{ --icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12h4l3 8 4-16 3 8h4'/%3E%3C/svg%3E"); }
.icon-bolt{ --icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2L3 14h7l-1 8 10-12h-7l1-8z'/%3E%3C/svg%3E"); }
.icon-shield{ --icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 4v5c0 5-3.5 8-8 9-4.5-1-8-4-8-9V7l8-4z'/%3E%3C/svg%3E"); }

/* step number */
.step-no{ font-family:'Courier Prime',monospace; font-weight:700; font-size:.85rem; color:var(--blue); }

/* surface band */
.band-deep{ background:var(--navy-deep)!important; }

/* portrait / rafael */
.rafael-photo img{ border-radius:18px; border:2px solid rgba(72,144,209,.4); }

/* FAQ */
.dharma-faq .wp-block-details{
  border:1px solid rgba(72,144,209,.22); border-radius:12px; padding:1.1rem 1.4rem;
  background:rgba(72,144,209,.05); margin-bottom:.9rem;
}
.dharma-faq summary{ font-weight:700; cursor:pointer; color:#fff; list-style:none; }
.dharma-faq summary::-webkit-details-marker{ display:none; }
.dharma-faq summary::after{ content:"+"; float:right; color:var(--blue); font-size:1.3rem; line-height:1; }
.dharma-faq details[open] summary::after{ content:"−"; }

/* CTA band */
.cta-band{
  background:
    radial-gradient(600px 300px at 50% 0%, rgba(72,144,209,.35), transparent 60%),
    linear-gradient(180deg,#13293D,#0a1826);
  border-top:1px solid rgba(72,144,209,.2);
}

/* ============ PAGE CONTENT ============ */
.lead-text{ color:#cfe0f0; }
.entry-content h2, .wp-block-post-content h2{ margin-top:2.5rem; }
.wp-block-post-content a, .entry-content a{ text-decoration:underline; text-underline-offset:3px; }
.wp-block-post-content ul li{ margin-bottom:.5rem; }
.callout{
  border-left:3px solid var(--blue); background:rgba(72,144,209,.08);
  padding:1.2rem 1.4rem; border-radius:0 10px 10px 0; color:#cfe0f0;
}

/* tables */
.dharma-table table{ border-collapse:collapse; width:100%; }
.dharma-table th, .dharma-table td{
  border:1px solid rgba(72,144,209,.22); padding:.85rem 1rem; text-align:left; vertical-align:top;
}
.dharma-table thead th{
  background:rgba(72,144,209,.16); color:#fff;
  font-family:'Courier Prime',monospace; font-size:.78rem; letter-spacing:1px; text-transform:uppercase;
}
.dharma-table tbody tr:nth-child(even){ background:rgba(72,144,209,.05); }
.dharma-table td{ color:#cfe0f0; }

/* quote form */
.dharma-quote-form{
  background:linear-gradient(180deg, rgba(72,144,209,.10), rgba(72,144,209,.02));
  border:1px solid rgba(72,144,209,.22); border-radius:16px; padding:2rem; max-width:640px;
}
.dharma-quote-form .dqf-row{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.dharma-quote-form label{
  flex:1; min-width:200px; display:flex; flex-direction:column; gap:.4rem;
  font-family:'Courier Prime',monospace; font-size:.72rem; letter-spacing:1px; text-transform:uppercase; color:var(--light);
}
.dharma-quote-form input, .dharma-quote-form select{
  padding:.8rem 1rem; border:1.5px solid rgba(72,144,209,.3); border-radius:9px;
  background:rgba(13,31,48,.6); color:#e8f1fa; font-family:'Manrope',sans-serif; font-size:.95rem;
}
.dharma-quote-form input:focus, .dharma-quote-form select:focus{ outline:none; border-color:var(--blue); }
.dharma-quote-form option{ color:#13293D; }
.dqf-submit{
  width:100%; padding:1rem; border:none; border-radius:50px; cursor:pointer;
  background:var(--wa); color:#06371a; font-family:'Manrope',sans-serif; font-weight:700; font-size:1rem;
  box-shadow:0 8px 30px rgba(37,211,102,.45); transition:transform .2s;
}
.dqf-submit:hover{ transform:translateY(-2px); }
.dqf-note{ font-family:'Courier Prime',monospace; font-size:.72rem; color:#9db4c9; margin:.9rem 0 0; text-align:center; }

/* calculadora embed */
.dharma-calc-embed{
  width:100%; border:1px solid rgba(72,144,209,.22); border-radius:18px; overflow:hidden;
  box-shadow:0 24px 60px -25px rgba(0,0,0,.6); background:var(--navy-deep);
}
.dharma-calc-iframe{ width:100%; height:760px; border:0; display:block; }

/* footer */
.dharma-footer{ background:var(--navy-deep); }
.dharma-footer .wp-block-site-logo img{ height:40px; width:auto; }

/* ============ ANIMATIONS ============ */
.animate-on-scroll{ opacity:0; transform:translateY(30px); transition:opacity .7s ease, transform .7s ease; }
.animate-on-scroll.is-visible{ opacity:1; transform:translateY(0); }
.fade-up{ opacity:0; transform:translateY(30px); animation:fadeUp .7s ease forwards; }
@keyframes fadeUp{ to{ opacity:1; transform:translateY(0);} }
.stagger-children > *{ opacity:0; transform:translateY(20px); animation:fadeUp .6s ease forwards; }
.stagger-children > *:nth-child(1){ animation-delay:.1s; }
.stagger-children > *:nth-child(2){ animation-delay:.25s; }
.stagger-children > *:nth-child(3){ animation-delay:.4s; }
.stagger-children > *:nth-child(4){ animation-delay:.55s; }

/* ============ EDITOR VISIBILITY ============ */
.editor-styles-wrapper .animate-on-scroll,
.editor-styles-wrapper .fade-up,
.editor-styles-wrapper .stagger-children > *{
  opacity:1!important; transform:none!important; animation:none!important; transition:none!important;
}

/* ============ REDUCED MOTION ============ */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .animate-on-scroll, .fade-up, .stagger-children > *{ opacity:1!important; transform:none!important; }
  .hero-orb{ animation:none!important; }
}

/* ============ RESPONSIVE ============ */
@media (max-width:781px){
  .stat-num{ font-size:2.4rem; }
  .dharma-hero::after{ -webkit-mask-image:none; mask-image:none; opacity:.5; }
}
