.ap-svc{ font-family:inherit; background:#ffffff; overflow-x:hidden; }

  .ap-reveal{
    opacity:0; transform:translateY(24px);
    transition:opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1);
    transition-delay:var(--ap-delay,0s);
  }
  .ap-reveal.is-visible{ opacity:1; transform:translateY(0); }

  .ap-eyebrow{
    display:inline-block; font-size:13px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
    color:#ffc400; background:rgba(255,196,0,.12); padding:5px 14px; border-radius:99px; margin-bottom:14px;
  }

  /* ================= HERO ================= */
  .ap-svc-hero{ position:relative; background:#0d0d0d; padding:70px 5vw 56px; text-align:center; overflow:hidden; }
  .ap-svc-hero__glow{
    position:absolute; inset:0;
    background:
      radial-gradient(circle at 15% 20%, rgba(224,31,46,.3), transparent 40%),
      radial-gradient(circle at 85% 10%, rgba(255,196,0,.22), transparent 45%);
    pointer-events:none;
  }
  .ap-svc-hero__inner{ position:relative; max-width:640px; margin:0 auto; }
  .ap-svc-hero__title{ font-size:clamp(28px,4.2vw,42px); font-weight:800; color:#ffffff; margin:0 0 14px; letter-spacing:-0.02em; }
  .ap-svc-hero__sub{ font-size:14.5px; line-height:1.7; color:#cfcfcf; margin:0; }

  /* ================= CATEGORY ================= */
  .ap-svc-cat{ padding:56px 5vw 60px; background:#ffffff; }
  .ap-svc-cat--dark{ background:#f8f8f6; }
  .ap-svc-cat__head{ display:flex; align-items:center; gap:14px; max-width:1200px; margin:0 auto 26px; }
  .ap-svc-cat__badge{
    display:flex; align-items:center; justify-content:center;
    width:38px; height:38px; border-radius:50%;
    font-weight:800; font-size:13px; flex:0 0 auto;
  }
  .ap-svc-cat__badge--red{ background:#e01f2e; color:#ffffff; }
  .ap-svc-cat__badge--yellow{ background:#ffc400; color:#141414; }
  .ap-svc-cat__title{ font-size:clamp(20px,2.4vw,26px); font-weight:800; color:#141414; margin:0; }

  /* ================= CARD GRID ================= */
  .ap-svc-grid{
    max-width:1200px; margin:0 auto;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
  }
  .ap-svc-grid--3{ grid-template-columns:repeat(3,1fr); }

  .ap-svc-card{
    display:block;
    text-decoration:none;
    background:#ffffff;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 10px 24px rgba(20,20,20,.06);
    transition:transform .3s cubic-bezier(.2,.8,.3,1), box-shadow .3s ease;
  }
  .ap-svc-card:hover{ transform:translateY(-6px); box-shadow:0 22px 42px rgba(20,20,20,.12); }
  .ap-svc-card--dark{ background:#1c1c1c; }

  .ap-svc-card__media{
    position:relative;
    aspect-ratio:4/3;
    background:#ececea;
    overflow:hidden;
  }
  .ap-svc-card__media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
  .ap-svc-card:hover .ap-svc-card__media img{ transform:scale(1.06); }
  .ap-svc-card__ph{
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    color:#b7b7b3;
  }
  .ap-svc-card__icon{
    position:absolute;
    left:14px; bottom:-16px;
    width:38px; height:38px;
    border-radius:11px;
    background:#e01f2e; color:#ffffff;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 8px 16px rgba(224,31,46,.35);
  }
  .ap-svc-grid .ap-svc-card:nth-child(4n+2) .ap-svc-card__icon,
  .ap-svc-grid--3 .ap-svc-card:nth-child(3n+2) .ap-svc-card__icon{ background:#141414; box-shadow:0 8px 16px rgba(20,20,20,.35); }
  .ap-svc-grid .ap-svc-card:nth-child(4n+3) .ap-svc-card__icon,
  .ap-svc-grid--3 .ap-svc-card:nth-child(3n+3) .ap-svc-card__icon{ background:#ffc400; color:#141414; box-shadow:0 8px 16px rgba(255,196,0,.35); }

  .ap-svc-card__title{ font-size:14.5px; font-weight:800; color:#141414; margin:26px 16px 8px; }
  .ap-svc-card--dark .ap-svc-card__title{ color:#ffffff; }
  .ap-svc-card__text{ font-size:12px; line-height:1.6; color:#6f6f6f; margin:0 16px 16px; }
  .ap-svc-card--dark .ap-svc-card__text{ color:#a8a8a8; }
  .ap-svc-card__link{
    display:inline-flex; align-items:center; gap:6px;
    font-size:12px; font-weight:700; color:#e01f2e;
    margin:0 16px 18px;
    transition:gap .2s ease;
  }
  .ap-svc-card--dark .ap-svc-card__link{ color:#ffc400; }
  .ap-svc-card:hover .ap-svc-card__link{ gap:10px; }

  /* ================= responsive ================= */
  @media (max-width:1024px){
    .ap-svc-grid, .ap-svc-grid--3{ grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width:768px){
    .ap-svc-hero{ padding:56px 6vw 44px; }
    .ap-svc-cat{ padding:44px 6vw 48px; }
  }
  @media (max-width:480px){
    .ap-svc-grid, .ap-svc-grid--3{ grid-template-columns:1fr; }
  }

  @media (prefers-reduced-motion: reduce){
    .ap-reveal{ transition:none; opacity:1; transform:none; }
    .ap-svc-card, .ap-svc-card__media img, .ap-svc-card__link{ transition:none; }
  }