.ab-flex {
   display: grid;
   grid-template-columns: 1.05fr 1fr;
   gap: 64px;
   align-items: center
}

.ab-visual {
   position: relative
}

.ab-main {
   border-radius: var(--radius);
   overflow: hidden;
   box-shadow: var(--shadow-lg);
   aspect-ratio: 5/4.4
}

.ab-main img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   transition: transform 1.2s cubic-bezier(.2, .8, .2, 1)
}

.ab-visual:hover .ab-main img {
   transform: scale(1.05)
}

.ab-badge {
   position: absolute;
   bottom: -26px;
   right: -22px;
   background: var(--gold-grad);
   color: #3a2c08;
   border-radius: 20px;
   padding: 20px 26px;
   box-shadow: var(--shadow-md);
   text-align: center
}

.ab-badge .big {
   font-family: var(--serif);
   font-size: 2.4rem;
   font-weight: 700;
   line-height: 1
}

.ab-badge .sm {
   font-size: .74rem;
   font-weight: 700;
   letter-spacing: .06em;
   margin-top: 2px
}

.ab-copy h2 {
   font-size: clamp(2rem, 4vw, 3rem);
   margin: 16px 0 18px;
   color: var(--green-800)
}

.ab-copy p {
   color: var(--muted);
   font-size: 1.05rem;
   margin-bottom: 16px
}

.ab-copy .lead-quote {
   font-family: var(--serif);
   font-style: italic;
   font-size: 1.25rem;
   color: var(--green-700);
   border-left: 3px solid var(--gold-500);
   padding-left: 18px;
   margin: 24px 0
}

.ab-stats {
   background: var(--green-900)
}

.ab-stat-grid {
   display: grid;
   grid-template-columns: repeat(4, 1fr);
   gap: 0
}

.ab-stat-grid .stat-item {
   padding: 44px 24px;
   text-align: center;
   border-right: 1px solid rgba(255, 255, 255, .09)
}

.ab-stat-grid .stat-item:last-child {
   border-right: none
}

.ab-stat-grid .num {
   font-family: var(--serif);
   font-size: clamp(2.4rem, 4vw, 3.3rem);
   font-weight: 700;
   line-height: 1;
   background: var(--gold-grad);
   -webkit-background-clip: text;
   background-clip: text;
   -webkit-text-fill-color: transparent
}

.ab-stat-grid .lbl {
   margin-top: 10px;
   font-weight: 600;
   font-size: .9rem;
   color: rgba(255, 255, 255, .7)
}

.val-grid {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 26px
}

.val-card {
   background: #fff;
   border-radius: var(--radius);
   padding: 38px 32px;
   box-shadow: var(--shadow-sm);
   border: 1px solid rgba(18, 69, 42, .06);
   transition: transform .45s, box-shadow .45s;
   position: relative;
   overflow: hidden
}

.val-card:hover {
   transform: translateY(-8px);
   box-shadow: var(--shadow-md)
}

.val-card .vic {
   width: 60px;
   height: 60px;
   border-radius: 16px;
   background: var(--green-grad);
   display: flex;
   align-items: center;
   justify-content: center;
   margin-bottom: 20px
}

.val-card .vic i {
   font-size: 30px;
   color: var(--gold-300);
   line-height: 1
}

.val-card h3 {
   font-size: 1.4rem;
   color: var(--green-800);
   margin-bottom: 10px
}

.val-card p {
   color: var(--muted);
   font-size: .97rem;
   margin: 0
}

.mission-flex {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 60px;
   align-items: center
}

.mission-visual {
   border-radius: var(--radius);
   overflow: hidden;
   box-shadow: var(--shadow-lg);
   aspect-ratio: 4/3
}

.mission-visual img {
   width: 100%;
   height: 100%;
   object-fit: cover
}

.mission-copy h2 {
   font-size: clamp(2rem, 4vw, 3rem);
   margin: 16px 0 18px;
   color: var(--green-800)
}

.mission-copy>p {
   color: var(--muted);
   font-size: 1.05rem;
   margin-bottom: 22px
}

.mission-list {
   display: flex;
   flex-direction: column;
   gap: 16px
}

.mission-list li {
   display: flex;
   gap: 14px;
   align-items: flex-start
}

.mission-list .mic {
   width: 38px;
   height: 38px;
   flex-shrink: 0;
   border-radius: 11px;
   background: linear-gradient(135deg, rgba(47, 155, 92, .16), rgba(216, 180, 90, .2));
   display: flex;
   align-items: center;
   justify-content: center
}

.mission-list .mic i {
   font-size: 19px;
   color: var(--green-600);
   line-height: 1
}

.mission-list b {
   display: block;
   color: var(--green-800);
   font-family: var(--serif);
   font-size: 1.1rem;
   margin-bottom: 2px
}

.mission-list span {
   color: var(--muted);
   font-size: .94rem
}