.ff-hatha-focus-section{
  width:100%;
  background:#FFFFFF;
  padding:0;
  margin:0;
  box-sizing:border-box;
  font-family:'Poppins',sans-serif;
  overflow:hidden;
}

.ff-hatha-focus-wrap{
  width:100%;
  max-width:100%;
  margin:0;
  display:grid;
  grid-template-columns:48% 52%;
  align-items:stretch;
  min-height:500px;
  background:#FFFFFF;
}

.ff-hatha-focus-visual{
  position:relative;
  min-height:500px;
  overflow:hidden;
  background:#F8F8F8;
}

.ff-hatha-focus-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  filter:saturate(.96) contrast(1.04);
}

.ff-hatha-focus-visual:before{
  content:"";
  position:absolute;
  inset:16px;
  border:1px solid rgba(255,255,255,.72);
  z-index:2;
  pointer-events:none;
}

.ff-hatha-focus-fade{
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:1;
  background:
    radial-gradient(circle at 90% 13%, rgba(255,255,255,.94) 0 2.5%, transparent 8%),
    radial-gradient(circle at 96% 31%, rgba(255,255,255,.90) 0 3.5%, transparent 10%),
    radial-gradient(circle at 89% 50%, rgba(255,255,255,.92) 0 4%, transparent 12%),
    radial-gradient(circle at 96% 70%, rgba(255,255,255,.88) 0 3%, transparent 11%),
    radial-gradient(circle at 88% 86%, rgba(255,255,255,.90) 0 4%, transparent 13%),
    linear-gradient(90deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.03) 46%,
      rgba(255,255,255,.32) 67%,
      rgba(255,255,255,.74) 84%,
      #FFFFFF 100%
    );
}

.ff-hatha-focus-fade:after{
  content:"";
  position:absolute;
  right:-1px;
  top:0;
  width:32%;
  height:100%;
  background:
    radial-gradient(circle at 16% 9%, #FFFFFF 0 4px, transparent 5px),
    radial-gradient(circle at 46% 19%, #FFFFFF 0 8px, transparent 9px),
    radial-gradient(circle at 21% 35%, #FFFFFF 0 5px, transparent 6px),
    radial-gradient(circle at 58% 48%, #FFFFFF 0 10px, transparent 11px),
    radial-gradient(circle at 24% 64%, #FFFFFF 0 8px, transparent 9px),
    radial-gradient(circle at 50% 80%, #FFFFFF 0 6px, transparent 7px),
    linear-gradient(90deg, transparent 0%, rgba(255,255,255,.50) 46%, #FFFFFF 100%);
  opacity:.9;
}

.ff-hatha-focus-mark{
  position:absolute;
  left:20px;
  bottom:20px;
  z-index:3;
  background:rgba(255,255,255,.94);
  border-left:3px solid #D09F6C;
  padding:12px 16px;
  box-shadow:0 18px 46px rgba(46,77,61,.14);
  max-width:250px;
}

.ff-hatha-focus-mark strong{
  display:block;
  color:#2E4D3D;
  font-size:19px;
  line-height:1.1;
  font-weight:700;
}

.ff-hatha-focus-mark span{
  display:block;
  margin-top:4px;
  color:#54595F;
  font-size:10.5px;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.ff-hatha-focus-content{
  position:relative;
  z-index:2;
  padding:28px max(16px,calc((100vw - 1130px) / 2)) 28px 18px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  box-sizing:border-box;
  background:#FFFFFF;
}

.ff-hatha-focus-content:before{
  content:"";
  position:absolute;
  left:0;
  top:50%;
  width:44px;
  height:1px;
  background:#D09F6C;
  transform:translateX(-18px);
}

.ff-hatha-focus-kicker{
  display:block;
  margin-bottom:6px;
  color:#D09F6C;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.ff-hatha-focus-content h2{
  margin:0 0 8px;
  color:#2E4D3D;
  font-size:clamp(28px,3vw,40px);
  line-height:1.12;
  letter-spacing:-.03em;
  font-weight:700;
  max-width:780px;
}

.ff-hatha-focus-content p, 
.ff-hatha-focus-p1 p, 
.ff-hatha-focus-p2 p {
  margin:0 0 10px;
  color:#54595F;
  font-size:14.6px;
  line-height:1.62;
  max-width:820px;
}

.ff-hatha-focus-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:0;
  margin:12px 0 0;
  border-top:1px solid #E6ECE6;
  border-bottom:1px solid #E6ECE6;
}

.ff-hatha-focus-item{
  padding:10px 14px 10px 0;
  border-right:1px solid #E6ECE6;
}

.ff-hatha-focus-item:last-child{
  border-right:0;
  padding-right:0;
  padding-left:14px;
}

.ff-hatha-focus-item:nth-child(2){
  padding-left:14px;
}

.ff-hatha-focus-item span{
  display:block;
  margin-bottom:2px;
  color:#80A37F;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.12em;
}

.ff-hatha-focus-item p{
  margin:0;
  font-size:12.8px;
  line-height:1.52;
}

.ff-hatha-focus-footer{
  margin-top:12px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:16px;
  align-items:center;
}

.ff-hatha-focus-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#80A37F;
  color:#FFFFFF !important;
  text-decoration:none !important;
  border:1px solid #80A37F;
  padding:9px 16px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  transition:all .25s ease;
  white-space:nowrap;
}

.ff-hatha-focus-btn:hover{
  background:#FFFFFF;
  color:#80A37F !important;
}

.ff-hatha-focus-footer p{
  margin:0;
  font-size:13px;
  color:#54595F;
  line-height:1.55;
}

@media(max-width:980px){
  .ff-hatha-focus-wrap{
    grid-template-columns:1fr;
    min-height:auto;
  }

  .ff-hatha-focus-visual{
    min-height:330px;
  }

  .ff-hatha-focus-visual img{
    aspect-ratio:16/9;
  }

  .ff-hatha-focus-fade{
    background:
      linear-gradient(180deg,
        rgba(255,255,255,0) 0%,
        rgba(255,255,255,.12) 50%,
        rgba(255,255,255,.82) 88%,
        #FFFFFF 100%
      );
  }

  .ff-hatha-focus-fade:after,
  .ff-hatha-focus-content:before{
    display:none;
  }

  .ff-hatha-focus-content{
    padding:24px 16px 30px;
  }

  .ff-hatha-focus-grid{
    grid-template-columns:1fr;
  }

  .ff-hatha-focus-item{
    border-right:0;
    border-bottom:1px solid #E6ECE6;
    padding:11px 0;
  }

  .ff-hatha-focus-item:last-child{
    border-bottom:0;
    padding-left:0;
  }

  .ff-hatha-focus-item:nth-child(2){
    padding-left:0;
  }

  .ff-hatha-focus-footer{
    grid-template-columns:1fr;
    gap:10px;
  }

  .ff-hatha-focus-btn{
    width:100%;
    box-sizing:border-box;
  }
}

@media(max-width:560px){
  .ff-hatha-focus-visual{
    min-height:260px;
  }

  .ff-hatha-focus-visual:before{
    inset:10px;
  }

  .ff-hatha-focus-mark{
    left:14px;
    bottom:14px;
    padding:10px 13px;
  }

  .ff-hatha-focus-content{
    padding:24px 12px 28px;
  }

  .ff-hatha-focus-content h2{
    font-size:28px;
  }

  .ff-hatha-focus-content p{
    font-size:13.5px;
    line-height:1.6;
  }
}
