.journey-section { background:linear-gradient(180deg,#fff 0%,var(--cream) 100%); position:relative; overflow:visible; }
  .journey-section::before { content:''; position:absolute; top:-120px; right:-120px; width:380px; height:380px; border-radius:50%; background:radial-gradient(circle,rgba(79,122,90,.08),transparent 70%); }
  .journey-section::after { content:''; position:absolute; bottom:-160px; left:-160px; width:480px; height:480px; border-radius:50%; background:radial-gradient(circle,rgba(245,183,34,.06),transparent 70%); }
  .journey-stat { text-align:center; padding:1.4rem 1rem; }
  .journey-stat .num { font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:2.6rem; line-height:1; color:var(--green); }
  .journey-stat .num .plus { color:var(--gold); }
  .journey-stat .label { font-size:.75rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#777; margin-top:.5rem; }

  .am-timeline { position:relative; padding:2.5rem 0; }
  .am-timeline::before { content:''; position:absolute; left:50%; top:0; bottom:0; width:3px; background:linear-gradient(180deg,transparent,var(--green) 8%,var(--green) 92%,transparent); transform:translateX(-50%); border-radius:3px; z-index:0; }
  .am-tl-item { position:relative; padding:2.3rem 0; min-height:300px; }
  .am-tl-card { width:calc(50% - 110px); }
  .am-tl-item:nth-child(odd) .am-tl-card { margin-left:calc(50% + 110px); margin-right:0; }
  .am-tl-item:nth-child(even) .am-tl-card { margin-right:calc(50% + 110px); margin-left:0; }
  .am-tl-marker { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:60px; height:60px; border-radius:50%; background:#fff; border:3px solid var(--green); display:flex; align-items:center; justify-content:center; color:var(--green); font-size:1.4rem; box-shadow:0 6px 20px rgba(79,122,90,.18); z-index:5; transition:.3s; }
  .am-tl-item:hover .am-tl-marker { transform:translate(-50%,-50%) scale(1.08); background:var(--green); color:#fff; }
  .am-tl-item.is-now .am-tl-marker { background:var(--gold); border-color:var(--gold); color:#fff; box-shadow:0 0 0 6px rgba(216,181,17,.18),0 6px 24px rgba(216,181,17,.32); animation:pulse 2.4s ease-in-out infinite; }
  @keyframes pulse { 0%,100% { box-shadow:0 0 0 6px rgba(216,181,17,.18),0 6px 24px rgba(216,181,17,.32); } 50% { box-shadow:0 0 0 14px rgba(216,181,17,.05),0 6px 24px rgba(216,181,17,.32); } }
  .am-tl-card { background:#fff; border:1px solid var(--divider); border-radius:20px; padding:0; box-shadow:0 4px 24px rgba(47,79,58,.06); transition:.3s; position:relative; overflow:visible; z-index:3; }
  .am-tl-card:hover { transform:translateY(-4px); box-shadow:0 14px 40px rgba(47,79,58,.12); border-color:rgba(79,122,90,.4); }
  .am-tl-item:nth-child(odd) .am-tl-card::before { content:''; position:absolute; top:50%; left:-20px; right:auto; transform:translateY(-50%); width:0; height:0; border:10px solid transparent; border-right-color:#fff; border-left-color:transparent; }
  .am-tl-item:nth-child(even) .am-tl-card::before { content:''; position:absolute; top:50%; right:-20px; left:auto; transform:translateY(-50%); width:0; height:0; border:10px solid transparent; border-left-color:#fff; border-right-color:transparent; }
  .am-tl-inner { display:block; min-height:220px; position:relative; }
  .am-tl-img-wrap { position:absolute; top:0; bottom:0; width:clamp(320px,40vw,620px); height:auto; border-radius:18px; overflow:hidden; box-shadow:0 10px 30px rgba(23,37,30,.2); border:1px solid rgba(47,79,58,.1); z-index:1; background:#f8f8f8; }
  .am-tl-item:nth-child(odd) .am-tl-img-wrap { right:calc(100% + 56px); transform:none; }
  .am-tl-item:nth-child(even) .am-tl-img-wrap { left:calc(100% + 56px); transform:none; }
  .am-tl-img-wrap img { width:100%; height:100%; object-fit:cover; display:block; }
  .am-tl-text { width:100%; padding:1.6rem 1.75rem; min-width:0; }
  .am-tl-year { display:inline-block; font-family:'Fraunces',Georgia,serif; font-weight:800; font-size:1.6rem; color:var(--green); padding:.15rem .85rem; background:rgba(79,122,90,.1); border-radius:999px; margin-bottom:.6rem; }
  .am-tl-item.is-now .am-tl-year { color:var(--gold); background:rgba(216,181,17,.12); }
  .am-tl-era { font-size:.65rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:#999; margin-bottom:.5rem; }
  .am-tl-title { font-family:'Fraunces',Georgia,serif; font-weight:700; font-size:1.25rem; color:var(--dark,#1f2a1f); margin-bottom:.5rem; line-height:1.3; }
  .am-tl-desc { font-size:.92rem; color:#666; line-height:1.65; margin-bottom:.85rem; }
  .am-tl-tag { display:inline-flex; align-items:center; gap:.35rem; font-size:.72rem; font-weight:700; color:var(--green); background:rgba(79,122,90,.08); padding:.3rem .7rem; border-radius:999px; margin-right:.4rem; }
  .am-tl-item.is-now .am-tl-tag { color:var(--gold); background:rgba(216,181,17,.12); }

  @media (max-width: 767.98px) {
    .am-timeline::before { left:30px; transform:none; }
    .am-tl-item { min-height:0; padding:1.5rem 0; }
    .am-tl-card { width:auto; margin-left:65px !important; margin-right:0 !important; overflow:hidden; }
    .am-tl-item:nth-child(odd) .am-tl-card::before,
    .am-tl-item:nth-child(even) .am-tl-card::before { top:2.2rem; left:-20px; right:auto; transform:none; border:10px solid transparent; border-right-color:#fff; border-left-color:transparent; }
    .am-tl-marker { width:50px; height:50px; font-size:1.15rem; top:1.5rem; left:30px; transform:translateX(-50%); }
    .am-tl-item:hover .am-tl-marker { transform:translateX(-50%) scale(1.08); }
    .am-tl-inner { min-height:0; }
    .am-tl-img-wrap { position:static; width:100%; height:200px; transform:none !important; border-radius:0; box-shadow:none; border:0; }
    .am-tl-text { width:100%; }
  }

.vm-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 480px; }
    @media (max-width: 767px) { .vm-grid { grid-template-columns: 1fr; } }
    .vm-visi {
      background: var(--deep-green);
      padding: 4rem 3.5rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
      position: relative;
      overflow: hidden;
    }
    .vm-visi::before {
      content: '"';
      position: absolute;
      top: -1.5rem;
      left: 2rem;
      font-family: 'Fraunces', Georgia, serif;
      font-size: 14rem;
      font-weight: 900;
      color: rgba(255,255,255,0.06);
      line-height: 1;
      pointer-events: none;
    }
    .vm-misi {
      background: #fff;
      padding: 4rem 3.5rem;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }
    .vm-label {
      font-size: 0.68rem;
      font-weight: 700;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      margin-bottom: 1.25rem;
    }
    .vm-visi .vm-label { color: rgba(255,255,255,0.45); }
    .vm-misi .vm-label { color: var(--green); }
    .vm-visi-text {
      font-family: 'Fraunces', Georgia, serif;
      font-size: clamp(1.35rem, 2.2vw, 1.75rem);
      font-weight: 700;
      color: #fff;
      line-height: 1.45;
      position: relative;
      z-index: 1;
    }
    .vm-misi-title {
      font-family: 'Fraunces', Georgia, serif;
      font-size: clamp(1.5rem, 2.5vw, 2rem);
      font-weight: 800;
      color: var(--dark);
      margin-bottom: 2rem;
    }
    .vm-misi-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 1.25rem; }
    .vm-misi-item { display: flex; align-items: flex-start; gap: 1rem; }
    .vm-misi-num {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      background: var(--deep-green);
      color: #fff;
      font-family: 'Fraunces', Georgia, serif;
      font-weight: 800;
      font-size: 0.8rem;
      display: flex;
      align-items: center;
      justify-content: center;
      flex-shrink: 0;
      margin-top: 2px;
    }
    .vm-misi-text { font-size: 0.92rem; color: #555; line-height: 1.65; }
    .vm-misi-text strong { color: var(--dark); font-weight: 700; display: block; margin-bottom: 0.15rem; }

.partner-card {
    background: #fff;
    border: 1.5px solid rgba(0,0,0,.06);
    border-radius: 16px;
    padding: 2.5rem 2rem 1.75rem;
    text-align: center;
    transition: transform .2s, box-shadow .2s;
    height: 100%;
  }
  .partner-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,.1);
  }
  .partner-logo {
    height: 52px;
    width: auto;
    max-width: 160px;
    object-fit: contain;
    margin-bottom: 1.25rem;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
  .partner-desc {
    font-size: 0.82rem;
    color: #888;
    margin: 0;
    line-height: 1.5;
  }
