/* Taxi CTA Banner — shared styles (one copy loaded no matter how many
   instances of the widget/shortcode are on the page). Per-instance
   colours/sizes come from CSS custom properties set inline on .trcta */

.trcta{
  font-family:'Poppins','Segoe UI',system-ui,-apple-system,sans-serif;
  position:relative;
}
.trcta *{box-sizing:border-box;}

.trcta__band{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  min-height:190px;
  overflow:hidden;
  border-radius:var(--trcta-band-radius,14px);
  isolation:isolate;
}

/* full-width background stretch, boxed content stays readable */
.trcta--stretch .trcta__band{
  width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  border-radius:0;
}
.trcta--stretch .trcta__half{
  max-width:calc(var(--trcta-maxw,1200px) / 2);
}
.trcta--stretch .trcta__half--left{ margin-left:auto; }
.trcta--stretch .trcta__half--right{ margin-right:auto; }

.trcta__half{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  width:100%;
  padding:28px clamp(20px,5vw,64px);
  color:#fff;
  overflow:hidden;
}
.trcta__half--left{
  background:linear-gradient(135deg,var(--trcta-left-start,#1c7a3e) 0%,var(--trcta-left-end,#125c2c) 100%);
  padding-right:calc(64px + 6vw);
}
.trcta__half--right{
  background:linear-gradient(135deg,var(--trcta-right-start,#9e2521) 0%,var(--trcta-right-end,#c8302a) 100%);
  padding-left:calc(64px + 6vw);
  text-align:right;
  align-items:flex-end;
  margin-left:auto;
}

.trcta__half::before{
  content:"";
  position:absolute;
  inset:-20% -20%;
  background:repeating-linear-gradient(120deg,rgba(255,255,255,.05) 0 2px,transparent 2px 26px);
  pointer-events:none;
}

.trcta__eyebrow{
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  font-weight:600;
  opacity:.85;
}
.trcta__title{
  font-size:clamp(20px,2.6vw,30px);
  font-weight:700;
  margin:0;
  line-height:1.15;
}
.trcta__sub{
  font-size:clamp(13px,1.4vw,15px);
  margin:0;
  opacity:.92;
  max-width:320px;
}
.trcta__half--right .trcta__sub{margin-left:auto;}

.trcta__btn{
  margin-top:6px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--trcta-btn-bg,#fff);
  font-weight:700;
  font-size:14px;
  padding:12px 20px;
  border-radius:var(--trcta-btn-radius,10px);
  text-decoration:none;
  width:fit-content;
  box-shadow:0 6px 16px rgba(0,0,0,.18);
  transition:transform .18s ease, box-shadow .18s ease;
}
.trcta__half--left .trcta__btn{ color:var(--trcta-left-btn-color,#125c2c); }
.trcta__half--right .trcta__btn{ color:var(--trcta-right-btn-color,#9e2521); margin-left:auto; }
.trcta__btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(0,0,0,.24);}
.trcta__btn svg{width:16px;height:16px;flex:none;}

/* ---------------- Centre badge ---------------- */
.trcta__badge-slot{
  position:absolute;
  left:50%;
  top:50%;
  width:var(--trcta-badge-size,150px);
  height:var(--trcta-badge-size,150px);
  transform:translate(-50%,-50%);
  z-index:5;
  pointer-events:none;
}
.trcta__badge{
  position:absolute;
  inset:0;
  background:var(--trcta-badge-bg,#fff);
  box-shadow:0 10px 30px rgba(0,0,0,.28);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  transition:transform .8s cubic-bezier(.22,.9,.3,1.3);
  transform:scale(1);
}
.trcta__badge svg,
.trcta__badge img{ width:78%; height:78%; object-fit:contain; }

.trcta__badge.is-zoom{
  transform:scale(var(--trcta-zoom-scale,2.2));
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}

/* logo shapes */
.trcta-shape-circle{ border-radius:50%; clip-path:none; }
.trcta-shape-rounded{ border-radius:28%; clip-path:none; }
.trcta-shape-squircle{ border-radius:42% 58% 61% 39% / 45% 41% 59% 55%; clip-path:none; }
.trcta-shape-hexagon{ border-radius:0; clip-path:polygon(25% 6%,75% 6%,100% 50%,75% 94%,25% 94%,0% 50%); }
.trcta-shape-none{ border-radius:0; clip-path:none; }

/* -------- responsive -------- */
@media (max-width:1024px){
  .trcta__badge-slot:not(.trcta__badge-slot--allsizes){ display:none; }
}
@media (max-width:760px){
  .trcta__band{ grid-template-columns:1fr; }
  .trcta--stretch .trcta__half{ max-width:none; }
  .trcta__half--left,.trcta__half--right{
    padding:34px 24px;
    text-align:left;
    align-items:flex-start;
    margin-left:0;
    margin-right:0;
  }
  .trcta__half--right .trcta__sub,
  .trcta__half--right .trcta__btn{ margin-left:0; }
}

@media (prefers-reduced-motion:reduce){
  .trcta__badge{ transition:none; }
}
