/* =========================================================
   BEZT Elementor Addons — shared front-end styles
   Colors/spacing exposed as CSS custom properties so the
   Elementor "Style" tab controls can override per-instance.

   WIDTH PHILOSOPHY:
   These widgets do NOT hardcode any width, max-width, or
   horizontal padding on themselves. They render at width:100%
   of whatever Elementor gives them — if the surrounding
   Container/Section is set to Boxed at 84%, the widget is 84%
   wide; if it's set to Full Width, the widget is full width. This
   matches how every other widget on the page behaves and keeps
   sections aligned with each other, controlled entirely from
   Elementor's own Container/Section width settings — never from
   this plugin's CSS.

   If a user wants a full-bleed background behind the widget while
   keeping narrower boxed content, that's a job for Elementor's own
   Section "Stretch Section" option or a Container set to Full
   Width with an inner nested Container set to Boxed — not
   something this plugin should force via CSS tricks.
   ========================================================= */

/* ---------- Key Benefits ---------- */
.bzt-kb{
  --navy:#012060;
  --navy-soft:#1c3a8c;
  --orange:#E88A24;
  --orange-soft:#F5A94E;
  --ink:#1B2233;
  --paper:#F6F7FB;
  --line:rgba(1,32,96,0.08);

  display:block;
  width:100%;
  background:
    radial-gradient(1200px 400px at 12% 0%, rgba(232,138,36,0.07), transparent 60%),
    radial-gradient(1000px 500px at 100% 100%, rgba(1,32,96,0.05), transparent 55%),
    var(--paper);
  padding:clamp(64px, 9vw, 112px) 0;
  font-family:"Poppins", "Helvetica Neue", Arial, sans-serif;
  color:var(--ink);
  box-sizing:border-box;
}
.bzt-kb *{ box-sizing:border-box; }
.bzt-kb-inner{
  width:100%;
  margin:0 auto;
}

.bzt-kb-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:52px;
}
.bzt-kb-head-text{ max-width:680px; }
.bzt-kb-tag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12.5px;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--orange);
  margin-bottom:16px;
}
.bzt-kb-tag::before{
  content:"";
  width:22px;
  height:2px;
  background:var(--orange);
  border-radius:2px;
  display:inline-block;
}
.bzt-kb-title{
  font-family:"Times New Roman", Georgia, serif;
  font-weight:600;
  font-size:clamp(28px, 3.6vw, 48px);
  line-height:1.08;
  color:var(--navy);
  margin:0 0 14px;
  letter-spacing:-0.01em;
}
.bzt-kb-sub{
  font-size:clamp(15px, 1.3vw, 17px);
  line-height:1.6;
  color:#5D6371;
  margin:0;
  max-width:52ch;
}

.bzt-kb-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:22px;
}

.bzt-kb-card{
  position:relative;
  display:flex;
  flex-direction:column;
  padding:32px 26px 30px;
  border-radius:18px;
  background:#fff;
  border:1px solid var(--line);
  box-shadow:0 1px 2px rgba(1,32,96,0.04), 0 12px 28px -18px rgba(1,32,96,0.18);
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease, border-color .35s ease;
  min-width:0;
  overflow:hidden;
}
.bzt-kb-card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:18px;
  padding:1px;
  background:linear-gradient(135deg, var(--orange), transparent 40%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  opacity:0;
  transition:opacity .35s ease;
  pointer-events:none;
}
.bzt-kb-card:hover{
  transform:translateY(-6px);
  box-shadow:0 1px 2px rgba(1,32,96,0.05), 0 24px 40px -18px rgba(1,32,96,0.28);
  border-color:transparent;
}
.bzt-kb-card:hover::after{ opacity:1; }

.bzt-kb-card-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  margin-bottom:24px;
}

.bzt-kb-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:54px;
  height:54px;
  border-radius:14px;
  background:linear-gradient(135deg, var(--navy) 0%, var(--navy-soft) 100%);
  color:#fff;
  flex-shrink:0;
  box-shadow:0 10px 20px -8px rgba(1,32,96,0.45);
  transition:transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.bzt-kb-icon svg{ width:25px; height:25px; }
.bzt-kb-card:hover .bzt-kb-icon{
  transform:scale(1.08) rotate(-4deg);
  box-shadow:0 14px 26px -8px rgba(232,138,36,0.5);
  background:linear-gradient(135deg, var(--orange) 0%, var(--orange-soft) 100%);
}

.bzt-kb-num{
  font-family:"Times New Roman", Georgia, serif;
  font-size:13px;
  font-weight:700;
  color:rgba(1,32,96,0.28);
  letter-spacing:0.04em;
  transition:color .35s ease;
}
.bzt-kb-card:hover .bzt-kb-num{ color:var(--orange); }

.bzt-kb-card-title{
  font-size:clamp(15.5px, 1.3vw, 18px);
  font-weight:600;
  line-height:1.45;
  color:var(--ink);
  margin:0;
  flex-grow:1;
}

.bzt-kb-rule{
  display:none; /* replaced by the border-glow ::after treatment above */
}

.bzt-kb-strip{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
  margin-top:52px;
}
.bzt-kb-strip-photo{
  margin:0;
  border-radius:16px;
  overflow:hidden;
  aspect-ratio:4/3;
  box-shadow:0 18px 34px -16px rgba(1,32,96,0.35);
  position:relative;
}
.bzt-kb-strip-photo::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, transparent 55%, rgba(1,32,96,0.28) 100%);
  opacity:0;
  transition:opacity .35s ease;
}
.bzt-kb-strip-photo:hover::after{ opacity:1; }
.bzt-kb-strip-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.bzt-kb-strip-photo:hover img{ transform:scale(1.06); }

/* ===== Responsive tiers: desktop(≥1200) / laptop(992-1199) / tablet(768-991) / large-mobile(576-767) / mobile(<576) =====
   These only adjust internal spacing/columns — never the widget's
   own outer width, which always stays fluid at 100%. */

/* Laptop */
@media (max-width:1199px){
  .bzt-kb-grid{ grid-template-columns:repeat(2, 1fr); gap:20px; }
}

/* Tablet */
@media (max-width:991px){
  .bzt-kb-grid{ grid-template-columns:repeat(2, 1fr); gap:18px; }
  .bzt-kb-strip{ grid-template-columns:repeat(2, 1fr); gap:16px; }
  .bzt-kb-head{ margin-bottom:40px; flex-direction:column; align-items:flex-start; }
}

/* Large mobile */
@media (max-width:767px){
  .bzt-kb-grid{ grid-template-columns:1fr; gap:16px; }
  .bzt-kb-card{ padding:28px 24px 26px; }
  .bzt-kb-strip{ grid-template-columns:1fr 1fr; gap:14px; margin-top:40px; }
}

/* Small mobile */
@media (max-width:479px){
  .bzt-kb-strip{ grid-template-columns:1fr; }
  .bzt-kb-card{ padding:26px 22px 24px; }
  .bzt-kb-icon{ width:48px; height:48px; border-radius:12px; }
  .bzt-kb-icon svg{ width:22px; height:22px; }
}



/* ---------- Inspection Covers ---------- */
.bzt-cov{
  --navy:#012060;
  --orange:#E88A24;
  --ink:#1B2233;
  --muted:#5D6371;
  --line:rgba(1,32,96,0.14);

  display:block;
  width:100%;
  background:#ffffff;
  padding:clamp(56px, 8vw, 96px) 0;
  font-family:"Poppins", "Helvetica Neue", Arial, sans-serif;
  color:var(--ink);
  box-sizing:border-box;
}
.bzt-cov *{ box-sizing:border-box; }
.bzt-cov-inner{
  width:100%;
  margin:0 auto;
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:56px;
  align-items:start;
}

.bzt-cov-media{
  position:sticky;
  top:32px;
  border-radius:14px;
  overflow:hidden;
  box-shadow:0 24px 48px rgba(1,32,96,0.16);
}
.bzt-cov-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:3/4;
}
.bzt-cov-media-badge{
  position:absolute;
  left:20px;
  bottom:20px;
  background:#fff;
  border-radius:10px;
  padding:12px 18px;
  box-shadow:0 12px 26px rgba(1,32,96,0.22);
  line-height:1.2;
}
.bzt-cov-media-badge span{
  display:block;
  font-family:"Times New Roman", Georgia, serif;
  font-weight:700;
  font-size:18px;
  color:var(--navy);
}
.bzt-cov-media-badge small{
  font-size:11px;
  font-weight:600;
  color:var(--orange);
  letter-spacing:0.02em;
}

.bzt-cov-tag{
  display:inline-block;
  font-size:13px;
  font-weight:600;
  color:var(--orange);
  padding-bottom:6px;
  border-bottom:2px solid var(--orange);
  margin-bottom:18px;
}
.bzt-cov-title{
  font-family:"Times New Roman", Georgia, serif;
  font-weight:600;
  font-size:clamp(24px, 3vw, 38px);
  line-height:1.2;
  color:var(--navy);
  margin:0 0 18px;
}
.bzt-cov-intro{
  font-size:clamp(15px, 1.4vw, 17px);
  line-height:1.65;
  color:var(--muted);
  max-width:58ch;
  margin:0 0 36px;
}

.bzt-cov-panels{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:30px;
}
.bzt-cov-panel{
  background:#F7F8FB;
  border:1px solid var(--line);
  border-radius:12px;
  padding:24px 22px;
  min-width:0;
}
.bzt-cov-panel-head{
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:18px;
}
.bzt-cov-panel-icon{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--navy);
  color:#fff;
}
.bzt-cov-panel-icon svg{ width:20px; height:20px; }
.bzt-cov-panel h3{
  font-size:15px;
  font-weight:700;
  color:var(--navy);
  margin:0;
  line-height:1.3;
}
.bzt-cov-ul{
  list-style:none;
  margin:0;
  padding:0;
}
.bzt-cov-ul li{
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:14px;
  line-height:1.5;
  color:var(--ink);
  padding:10px 0;
  border-top:1px solid rgba(1,32,96,0.08);
}
.bzt-cov-ul li:first-child{ border-top:none; padding-top:0; }
.bzt-cov-ico{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  margin-top:1px;
  color:var(--orange);
}
.bzt-cov-ico svg{ width:16px; height:16px; }

.bzt-cov-standard{
  display:flex;
  align-items:center;
  gap:12px;
  font-size:14px;
  font-weight:600;
  color:var(--navy);
  padding:14px 18px;
  background:#F4F5F9;
  border-left:3px solid var(--orange);
  border-radius:4px;
  margin:0 0 28px;
}
.bzt-cov-standard-ico{
  flex:0 0 auto;
  display:inline-flex;
  width:20px;
  height:20px;
  color:var(--orange);
}

.bzt-cov-badge-label{
  display:block;
  font-size:13px;
  font-weight:700;
  color:var(--muted);
  margin-bottom:12px;
}
.bzt-cov-badge-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.bzt-cov-badge{
  display:inline-flex;
  align-items:center;
  font-size:12px;
  font-weight:600;
  color:var(--navy);
  background:#EAEEFF;
  padding:8px 14px;
  border-radius:99px;
}

/* ===== Responsive tiers ===== */

/* Tablet */
@media (max-width:991px){
  .bzt-cov-inner{
    grid-template-columns:1fr;
    gap:32px;
  }
  .bzt-cov-media{
    position:static;
    max-width:460px;
    margin:0 auto;
  }
  .bzt-cov-media img{ aspect-ratio:16/10; }
  .bzt-cov-panels{ gap:16px; }
}

/* Large mobile */
@media (max-width:767px){
  .bzt-cov-panels{ grid-template-columns:1fr; }
  .bzt-cov-intro{ margin-bottom:28px; }
}

/* Small mobile */
@media (max-width:479px){
  .bzt-cov-media{ max-width:100%; }
  .bzt-cov-panel{ padding:20px 18px; }
  .bzt-cov-badge-row{ gap:8px; }
  .bzt-cov-badge{ font-size:11px; padding:7px 12px; }
}
