.bp-section, .bp-section *{box-sizing:border-box;}
.bp-section{
  --bg:#F6F8F5;
  --card:#FFFFFF;
  --teal-deep:#264E47;
  --teal:#3E9385;
  --teal-soft:#E4F1EC;
  --coral:#E99678;
  --coral-soft:#FBEAE2;
  --sand:#EFE8D8;
  --text-soft:#5C6D67;
  --line: rgba(38,78,71,0.10);
  width:100%;
  background:var(--bg);
  font-family:'Figtree',sans-serif;
  color:var(--teal-deep);
  padding:clamp(48px,7vw,96px) clamp(20px,6vw,72px);
  overflow:hidden;
  margin:0;
}
.bp-wrap{
  max-width:1240px;
  margin:0 auto;
  display:grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap:clamp(32px,5vw,64px);
  align-items:center;
}
.bp-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--teal);
  margin-bottom:18px;
}
.bp-eyebrow::before{
  content:"";
  width:22px;height:1px;
  background:var(--teal);
}
.bp-headline{
  font-family:'Fraunces',serif;
  font-weight:500;
  font-size:clamp(34px,4.4vw,54px);
  line-height:1.08;
  letter-spacing:-0.01em;
  color:var(--teal-deep);
  margin:0 0 18px;
}
.bp-headline em{
  font-style:italic;
  color:var(--coral);
  font-weight:400;
}
.bp-sub{
  font-size:17px;
  line-height:1.65;
  color:var(--text-soft);
  max-width:44ch;
  margin:0 0 40px;
}
.bp-features{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px 24px;
}
.bp-feature{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.bp-icon{
  width:44px;height:44px;
  border-radius:12px;
  background:var(--teal-soft);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.bp-icon svg{width:22px;height:22px;stroke:var(--teal-deep);}
.bp-feature:nth-child(2) .bp-icon{background:var(--coral-soft);}
.bp-feature:nth-child(2) .bp-icon svg{stroke:#B85B3A;}
.bp-feature-title{
  font-size:15.5px;
  font-weight:600;
  color:var(--teal-deep);
}
.bp-feature-text{
  font-size:14px;
  line-height:1.55;
  color:var(--text-soft);
}
.bp-cta{
  margin-top:44px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  background:var(--teal-deep);
  color:#F6F8F5;
  font-size:14.5px;
  font-weight:600;
  padding:14px 28px;
  border-radius:100px;
  text-decoration:none;
  transition:transform 0.25s ease, background 0.25s ease;
}
.bp-cta:hover{background:var(--teal);transform:translateY(-2px);color:#F6F8F5;}
.bp-cta svg{width:15px;height:15px;transition:transform 0.25s ease;}
.bp-cta:hover svg{transform:translateX(3px);}
.bp-visual{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:380px;
}
.bp-blob{
  position:absolute;
  width:min(420px,88%);
  height:min(420px,88%);
  background:var(--sand);
  border-radius:44% 56% 62% 38% / 48% 42% 58% 52%;
  z-index:0;
}
.bp-visual img{
  position:relative;
  z-index:1;
  width:min(390px,82%);
  height:auto;
  display:block;
  filter:drop-shadow(0 24px 40px rgba(38,78,71,0.14));
}
.bp-badge{
  position:absolute;
  z-index:2;
  background:var(--card);
  border:1px solid var(--line);
  border-radius:16px;
  padding:12px 16px;
  display:flex;
  align-items:center;
  gap:10px;
  box-shadow:0 10px 30px rgba(38,78,71,0.10);
}
.bp-badge--top{ top:6%; left:-2%; }
.bp-badge--bottom{ bottom:8%; right:-4%; }
.bp-badge-icon{
  width:30px;height:30px;
  border-radius:50%;
  background:var(--teal-soft);
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.bp-badge-icon svg{width:15px;height:15px;stroke:var(--teal-deep);}
.bp-badge-text{display:flex;flex-direction:column;}
.bp-badge-num{font-size:14px;font-weight:700;color:var(--teal-deep);line-height:1.2;}
.bp-badge-label{font-size:11px;color:var(--text-soft);line-height:1.2;}

@media (max-width: 980px){
  .bp-section .bp-wrap{grid-template-columns:1fr;}
  .bp-section .bp-visual{order:-1;min-height:320px;margin-bottom:8px;}
  .bp-section .bp-sub{max-width:none;}
  .bp-section .bp-badge--top{left:0;}
  .bp-section .bp-badge--bottom{right:0;}
}
@media (max-width: 560px){
  .bp-section .bp-features{grid-template-columns:1fr;gap:22px;}
  .bp-section .bp-headline{font-size:clamp(28px,8vw,36px);}
  .bp-section .bp-badge{padding:9px 12px;border-radius:13px;}
  .bp-section .bp-badge-num{font-size:12.5px;}
  .bp-section .bp-badge-label{font-size:10px;}
  .bp-section .bp-cta{width:100%;justify-content:center;}
}
