/* === CAMP PARTNERS / CAMPCONSUL PAGE — v2 Premium === */

/* ── Color & Design Tokens ── */
.cp-page{
  --cp-forest:#2d4a3e;
  --cp-forest-deep:#1a3028;
  --cp-sage:#7a9e8e;
  --cp-earth:#8b7355;
  --cp-sand:#f4f0e8;
  --cp-sand-dark:#e8e2d6;
  --cp-warm:#c4a265;
  --cp-warm-light:#d4b87a;
  --cp-cream:#faf8f4;
  --cp-charcoal:#2a2a2a;
  --cp-accent:#c8553d;
}

/* ── Hero — immersive full-screen ── */
.cp-hero{position:relative;min-height:92vh;overflow:hidden;background:var(--cp-forest-deep)}
.cp-hero__bg{position:absolute;inset:0;background:url('/assets/images/campconsul-hero.png') center/cover no-repeat;filter:brightness(0.7) saturate(1.1)}
.cp-hero__overlay{position:absolute;inset:0;background:linear-gradient(160deg,rgba(26,48,40,0.92) 0%,rgba(44,74,62,0.7) 45%,rgba(74,124,89,0.35) 100%)}
.cp-hero__inner{position:relative;z-index:2;max-width:var(--container-max);margin:0 auto;padding:calc(var(--header-height) + var(--space-4xl)) var(--space-xl) var(--space-4xl)}
.cp-hero__label{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-display);font-size:var(--text-xs);letter-spacing:0.25em;color:var(--cp-warm);text-transform:uppercase;margin-bottom:16px;border:1px solid rgba(196,162,101,0.3);padding:8px 20px;border-radius:var(--radius-full)}
.cp-hero__title{font-size:clamp(1.8rem,4vw,3rem);font-weight:900;line-height:1.3;color:white;margin-bottom:16px;max-width:640px}
.cp-hero__title em{font-style:normal;color:var(--cp-warm);position:relative}
.cp-hero__title em::after{content:'';position:absolute;bottom:2px;left:0;right:0;height:3px;background:var(--cp-warm);opacity:0.4;border-radius:2px}
.cp-hero__desc{font-size:var(--text-base);line-height:1.8;color:rgba(255,255,255,0.75);max-width:520px;margin-bottom:16px}
.cp-hero__cta{display:flex;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-3xl)}
.cp-hero__cta .btn--gold{display:inline-flex;align-items:center;gap:8px;background:var(--cp-warm);color:var(--cp-forest-deep);border:none;padding:16px 40px;font-size:var(--text-base);font-weight:700;border-radius:50px;transition:all .3s;text-decoration:none;box-shadow:0 4px 20px rgba(196,162,101,0.35)}
.cp-hero__cta .btn--gold:hover{background:var(--cp-warm-light);transform:translateY(-2px);box-shadow:0 8px 30px rgba(196,162,101,0.45)}
.cp-hero__cta .btn--ghost{display:inline-flex;align-items:center;gap:8px;background:transparent;color:white;border:1px solid rgba(255,255,255,0.3);padding:16px 40px;font-size:var(--text-base);font-weight:600;border-radius:50px;transition:all .3s;text-decoration:none}
.cp-hero__cta .btn--ghost:hover{border-color:white;background:rgba(255,255,255,0.06)}
.cp-hero__stats{display:flex;gap:var(--space-2xl);flex-wrap:wrap}
.cp-hero__stat{display:flex;flex-direction:column}
.cp-hero__stat-num{font-family:var(--font-display);font-size:clamp(2rem,3vw,2.5rem);font-weight:700;color:white;line-height:1}
.cp-hero__stat-num small{font-size:0.5em;color:var(--cp-warm);margin-left:2px}
.cp-hero__stat-label{font-size:var(--text-xs);color:rgba(255,255,255,0.5);margin-top:4px;letter-spacing:0.05em}

/* ── Section Header — refined ── */
.cp-section-header{margin-bottom:var(--space-2xl)}
.cp-section-en{display:block;font-family:var(--font-display);font-size:clamp(var(--text-3xl),4vw,var(--text-5xl));font-weight:700;letter-spacing:-0.02em;line-height:1;color:var(--cp-forest)}
.cp-section-ja{display:block;font-size:var(--text-sm);color:var(--color-text-muted);margin-top:6px;letter-spacing:0.05em}
.cp-section-header::after{content:'';display:block;width:48px;height:3px;background:var(--cp-warm);margin-top:var(--space-md);border-radius:2px}

/* ── Why Us — 4 pillars with cards ── */
.cp-why{padding:var(--space-4xl) 0;background:var(--cp-cream)}
.cp-why__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}
.cp-why__item{background:white;border-radius:var(--radius-lg);padding:var(--space-xl) var(--space-lg);border:1px solid rgba(0,0,0,0.05);transition:all .3s;position:relative;overflow:hidden}
.cp-why__item:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(45,74,62,0.1)}
.cp-why__item::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cp-forest),var(--cp-sage));opacity:0;transition:opacity .3s}
.cp-why__item:hover::before{opacity:1}
.cp-why__icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--cp-forest),var(--cp-sage));display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md);color:white;font-size:1.2rem}
.cp-why__number{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:700;color:var(--cp-forest);line-height:1;margin-bottom:4px}
.cp-why__number small{font-size:0.35em;color:var(--cp-sage);margin-left:2px}
.cp-why__label{font-size:var(--text-sm);font-weight:700;color:var(--cp-charcoal);margin-bottom:var(--space-sm)}
.cp-why__desc{font-size:var(--text-xs);color:var(--color-text-light);line-height:1.7}

/* ── Service cards — with gradient top border ── */
.cp-services{padding:var(--space-4xl) 0;background:white}
.cp-services__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg)}
.cp-svc-card{background:var(--cp-cream);border-radius:var(--radius-lg);padding:var(--space-xl);transition:all .35s;position:relative;overflow:hidden;border:1px solid transparent}
.cp-svc-card::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--cp-forest),var(--cp-warm))}
.cp-svc-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(45,74,62,0.12);border-color:var(--cp-sage);background:white}
.cp-svc-card__icon{width:44px;height:44px;border-radius:10px;background:var(--cp-forest);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-md);font-size:1.1rem;color:white}
.cp-svc-card__title{font-size:var(--text-lg);font-weight:700;color:var(--cp-charcoal);margin-bottom:var(--space-sm)}
.cp-svc-card__pain{font-size:var(--text-sm);color:var(--cp-earth);margin-bottom:var(--space-md);padding-left:12px;border-left:2px solid var(--cp-warm)}
.cp-svc-card__desc{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.8}

/* ── Works — full-width cards ── */
.cp-works{padding:var(--space-4xl) 0;background:var(--cp-cream)}
.cp-works__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}
.cp-work-card{border-radius:var(--radius-lg);overflow:hidden;background:white;box-shadow:0 2px 12px rgba(0,0,0,0.04);transition:all .35s}
.cp-work-card:hover{box-shadow:0 12px 40px rgba(45,74,62,0.12);transform:translateY(-4px)}
.cp-work-card__img{aspect-ratio:16/9;overflow:hidden}
.cp-work-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.cp-work-card:hover .cp-work-card__img img{transform:scale(1.05)}
.cp-work-card__body{padding:var(--space-lg)}
.cp-work-card__badge{display:inline-block;font-size:var(--text-xs);font-weight:600;color:var(--cp-forest);background:rgba(45,74,62,0.08);padding:4px 14px;border-radius:var(--radius-full);margin-bottom:var(--space-sm)}
.cp-work-card__title{font-size:var(--text-lg);font-weight:700;color:var(--cp-charcoal);margin-bottom:6px}
.cp-work-card__result{font-size:var(--text-sm);color:var(--cp-warm);font-weight:600;margin-bottom:var(--space-sm)}
.cp-work-card__desc{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.8}

/* ── Flow — horizontal steps ── */
.cp-flow{padding:var(--space-4xl) 0;background:var(--cp-forest-deep);color:white;position:relative;overflow:hidden}
.cp-flow::before{content:'';position:absolute;inset:0;background:url('/assets/images/campconsul-hero.png') center/cover no-repeat;opacity:0.08}
.cp-flow>*{position:relative;z-index:1}
.cp-flow .cp-section-en{color:white}
.cp-flow .cp-section-ja{color:rgba(255,255,255,0.5)}
.cp-flow__steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}
.cp-flow__step{padding:var(--space-lg);background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);border-radius:var(--radius-lg);backdrop-filter:blur(8px);position:relative;transition:all .3s}
.cp-flow__step:hover{background:rgba(255,255,255,0.1);transform:translateY(-2px)}
.cp-flow__num{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:700;color:var(--cp-warm);line-height:1;margin-bottom:var(--space-sm)}
.cp-flow__label{font-weight:700;font-size:var(--text-base);margin-bottom:6px}
.cp-flow__desc{font-size:var(--text-sm);color:rgba(255,255,255,0.6);line-height:1.7}
.cp-flow__arrow{display:none;position:absolute;right:-18px;top:50%;transform:translateY(-50%);color:var(--cp-warm);font-size:var(--text-lg)}

/* ── Inbound ── */
.cp-inbound{padding:var(--space-4xl) 0;background:white}
.cp-inbound__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg)}
.cp-inbound-card{padding:var(--space-xl);background:var(--cp-cream);border:1px solid transparent;border-radius:var(--radius-lg);transition:all .3s;position:relative;overflow:hidden}
.cp-inbound-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--cp-warm),var(--cp-forest))}
.cp-inbound-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(45,74,62,0.1);border-color:var(--cp-sage)}
.cp-inbound-card__title{font-size:var(--text-base);font-weight:700;margin-bottom:var(--space-md);color:var(--cp-charcoal)}
.cp-inbound-card__desc{font-size:var(--text-sm);color:var(--color-text-light);line-height:1.8}

/* ── FAQ — clean accordion ── */
.cp-faq{padding:var(--space-4xl) 0;background:var(--cp-cream)}
.cp-faq__list{max-width:800px;margin:0 auto}
.cp-faq__item{border:1px solid rgba(0,0,0,0.06);border-radius:var(--radius-md);margin-bottom:var(--space-sm);overflow:hidden;background:white;transition:all .3s}
.cp-faq__item[open]{border-color:var(--cp-sage);box-shadow:0 4px 16px rgba(45,74,62,0.06)}
.cp-faq__item summary{padding:var(--space-md) var(--space-lg);font-weight:700;cursor:pointer;font-size:var(--text-sm);line-height:1.6;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);transition:all .2s}
.cp-faq__item summary:hover{background:var(--cp-cream)}
.cp-faq__item summary::after{content:'+';font-family:var(--font-display);font-size:var(--text-lg);color:var(--cp-forest);flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(45,74,62,0.06);transition:all .3s}
.cp-faq__item[open] summary::after{content:'−';background:var(--cp-forest);color:white}
.cp-faq__item summary::-webkit-details-marker{display:none}
.cp-faq__answer{padding:0 var(--space-lg) var(--space-lg);line-height:1.9;color:var(--color-text-light);font-size:var(--text-sm)}
.cp-faq__answer ul{margin:var(--space-sm) 0;padding-left:1.5em;list-style:disc}
.cp-faq__answer li{margin-bottom:var(--space-xs)}

/* ── Pricing — 3-column cards ── */
.cp-pricing{padding:var(--space-4xl) 0;background:white}
.cp-pricing__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-lg);align-items:start;max-width:960px;margin:0 auto}
.cp-pricing-card{background:var(--cp-cream);border:1px solid rgba(0,0,0,0.06);border-radius:var(--radius-lg);padding:var(--space-xl);transition:all .35s;position:relative;display:flex;flex-direction:column}
.cp-pricing-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px rgba(45,74,62,0.1)}
.cp-pricing-card--featured{border:2px solid var(--cp-warm);background:white;box-shadow:0 8px 32px rgba(196,162,101,0.15);transform:scale(1.04)}
.cp-pricing-card--featured:hover{transform:scale(1.04) translateY(-4px);box-shadow:0 16px 48px rgba(196,162,101,0.2)}
.cp-pricing-card__badge{position:absolute;top:-1px;right:24px;background:var(--cp-warm);color:var(--cp-forest-deep);font-size:var(--text-xs);font-weight:700;padding:4px 16px;border-radius:0 0 8px 8px;letter-spacing:0.05em}
.cp-pricing-card__header{margin-bottom:var(--space-lg);padding-bottom:var(--space-lg);border-bottom:1px solid rgba(0,0,0,0.06)}
.cp-pricing-card__name{font-size:var(--text-lg);font-weight:700;color:var(--cp-charcoal);margin-bottom:var(--space-sm)}
.cp-pricing-card__price{display:flex;align-items:baseline;gap:2px}
.cp-pricing-card__label{font-size:var(--text-sm);color:var(--color-text-muted);margin-right:4px}
.cp-pricing-card__amount{font-family:var(--font-display);font-size:clamp(2.5rem,4vw,3.5rem);font-weight:700;color:var(--cp-forest);line-height:1}
.cp-pricing-card__unit{font-size:var(--text-base);color:var(--color-text-muted);margin-left:2px}
.cp-pricing-card__features{list-style:none;padding:0;margin:0 0 var(--space-xl);flex:1}
.cp-pricing-card__features li{padding:8px 0;font-size:var(--text-sm);color:var(--color-text-light);border-bottom:1px solid rgba(0,0,0,0.04);display:flex;align-items:center;gap:8px}
.cp-pricing-card__features li::before{content:'✓';color:var(--cp-forest);font-weight:700;font-size:0.85rem}
.cp-pricing-card__features li:last-child{border-bottom:none}
.cp-pricing-card__footer{text-align:center}
.cp-pricing-card__footer .btn{width:100%;justify-content:center}
.cp-pricing__note{text-align:center;margin-top:var(--space-xl);font-size:var(--text-sm);color:var(--color-text-muted)}
.cp-pricing__note strong{color:var(--cp-forest)}

/* ── Final CTA — immersive ── */
.cp-cta{padding:var(--space-5xl) 0;background:var(--cp-forest-deep);text-align:center;color:white;position:relative;overflow:hidden}
.cp-cta::before{content:'';position:absolute;inset:0;background:url('/assets/images/campconsul-hero.png') center/cover no-repeat;opacity:0.12}
.cp-cta::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0%,var(--cp-forest-deep) 70%)}
.cp-cta__inner{position:relative;z-index:1;max-width:640px;margin:0 auto}
.cp-cta__title{font-size:clamp(var(--text-2xl),3.5vw,var(--text-4xl));font-weight:900;margin-bottom:var(--space-md);line-height:1.4}
.cp-cta__desc{color:rgba(255,255,255,0.6);margin-bottom:var(--space-2xl);line-height:1.9;font-size:var(--text-sm)}

/* ── Sticky CTA ── */
.cp-sticky-cta{position:fixed;bottom:0;left:0;right:0;z-index:900;background:rgba(26,48,40,0.96);backdrop-filter:blur(12px);padding:12px var(--space-xl);display:flex;align-items:center;justify-content:center;gap:var(--space-lg);transform:translateY(100%);transition:transform .4s cubic-bezier(.25,.46,.45,.94);border-top:1px solid rgba(196,162,101,0.15)}
.cp-sticky-cta.visible{transform:translateY(0)}
.cp-sticky-cta__text{color:rgba(255,255,255,0.7);font-size:var(--text-sm);font-weight:500}
.cp-sticky-cta__text strong{color:var(--cp-warm)}
.cp-sticky-cta .btn--gold{padding:10px 28px;font-size:var(--text-sm);border-radius:50px}

/* ── CTA button common ── */
.cp-btn-cta{display:inline-flex;align-items:center;gap:8px;background:var(--cp-warm);color:var(--cp-forest-deep);padding:16px 40px;font-size:var(--text-base);font-weight:700;border-radius:50px;text-decoration:none;transition:all .3s;box-shadow:0 4px 20px rgba(196,162,101,0.35)}
.cp-btn-cta:hover{background:var(--cp-warm-light);transform:translateY(-2px);box-shadow:0 8px 30px rgba(196,162,101,0.45)}
.cp-btn-secondary{display:inline-flex;align-items:center;gap:8px;background:var(--cp-forest);color:white;padding:14px 36px;font-size:var(--text-sm);font-weight:600;border-radius:50px;text-decoration:none;transition:all .3s}
.cp-btn-secondary:hover{background:var(--cp-forest-deep);transform:translateY(-2px);box-shadow:0 6px 20px rgba(45,74,62,0.25)}

/* ── Hero Badges ── */
.cp-hero__badges{display:flex;gap:var(--space-md);flex-wrap:wrap}
.cp-hero__badge{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:rgba(255,255,255,0.6);background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);padding:8px 16px;border-radius:var(--radius-full)}
.cp-hero__badge strong{color:var(--cp-warm);font-weight:700}

/* ── Responsive ── */
/* ── Hero Split Layout (Desktop: text left + form right) ── */
section.cp-hero .cp-hero__split{position:relative;z-index:2;width:100% !important;max-width:1200px;margin:0 auto;padding:120px 24px 48px;display:grid !important;grid-template-columns:1fr 380px !important;gap:40px;align-items:center;box-sizing:border-box}
.cp-hero__text{display:flex;flex-direction:column}
.cp-hero__cta--mobile{display:none}
.cp-hero__form-wrap{display:block;width:100%}
.cp-hero__form-card{background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);border-radius:14px;padding:28px 24px;box-shadow:0 12px 40px rgba(0,0,0,0.25)}
.cp-hf-input{display:block;width:100%;padding:10px 14px;border:1px solid #e0e0e0;border-radius:8px;font-size:.88rem;font-family:inherit;background:#fafafa;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}
.cp-hf-input:focus{border-color:#2d5a3d;outline:none;box-shadow:0 0 0 3px rgba(45,90,61,.12);background:#fff}
.cp-hf-input::placeholder{color:#aaa}
textarea.cp-hf-input{resize:none;min-height:70px}
.cp-hf-submit{display:block;width:100%;padding:13px 20px;background:var(--cp-warm,#c4a265);color:#1a3028;font-size:.95rem;font-weight:700;border:none;border-radius:8px;cursor:pointer;transition:all .3s;font-family:inherit}
.cp-hf-submit:hover{background:var(--cp-warm-light,#d4b87a);transform:translateY(-1px);box-shadow:0 4px 16px rgba(196,162,101,.35)}

/* ── Result Cards ── */
.cp-result-card{background:#fff;border-radius:14px;padding:0;text-align:center;border:1px solid #eee;transition:all .3s;position:relative;overflow:hidden}
.cp-result-card:hover{transform:translateY(-4px);box-shadow:0 12px 36px rgba(0,0,0,.08)}
.cp-result-card__illust{width:100%;height:140px;display:flex;align-items:center;justify-content:center;padding:8px}
.cp-result-card__illust svg{width:100%;height:100%}
.cp-result-card__icon{margin-bottom:var(--space-md)}
.cp-result-card__number{font-size:2.8rem;font-weight:800;color:var(--cp-forest,#2d4a3e);line-height:1;padding:16px 20px 0}
.cp-result-card__number span{font-size:1rem;font-weight:600}
.cp-result-card__label{font-size:.78rem;color:var(--color-text-muted,#999);margin:4px 0 var(--space-md);letter-spacing:.05em}
.cp-result-card__title{font-size:var(--text-base,1rem);font-weight:700;line-height:1.6;margin-bottom:var(--space-sm);color:#1a1a1a;padding:0 20px}
.cp-result-card__desc{font-size:.85rem;color:var(--color-text-light,#666);line-height:1.7;padding:0 20px}
.cp-result-card__tag{font-size:.75rem;color:var(--color-text-muted,#999);margin-top:var(--space-sm);padding:0 20px 20px}

/* ── Responsive ── */
@media(max-width:1023px){
  .cp-hero__split{grid-template-columns:1fr;gap:var(--space-lg)}
  .cp-hero__form-wrap{max-width:420px}
  .cp-why__grid{grid-template-columns:repeat(2,1fr)}
  .cp-services__grid{grid-template-columns:repeat(2,1fr)}
  .cp-flow__steps{grid-template-columns:repeat(2,1fr)}
  .cp-pricing__grid{grid-template-columns:repeat(3,1fr);gap:var(--space-md)}
  .cp-pricing-card--featured{transform:scale(1.02)}
  .cp-pricing-card--featured:hover{transform:scale(1.02) translateY(-4px)}
}
@media(max-width:767px){
  .cp-hero{min-height:auto;padding-bottom:var(--space-2xl)}
  .cp-hero__split{padding-top:calc(var(--header-height) + var(--space-2xl))}
  .cp-hero__title{font-size:1.6rem}
  .cp-hero__cta--mobile{display:flex}
  .cp-hero__form-wrap{display:none}
  .cp-hero__stats{gap:var(--space-lg)}
  .cp-why__grid,.cp-services__grid,.cp-inbound__grid,.cp-works__grid{grid-template-columns:1fr}
  .cp-flow__steps{grid-template-columns:1fr}
  .cp-sticky-cta__text{display:none}
  .cp-sticky-cta{padding:10px var(--space-md)}
  .cp-pricing__grid{grid-template-columns:1fr;max-width:400px}
  .cp-pricing-card--featured{transform:none}
  .cp-pricing-card--featured:hover{transform:translateY(-4px)}
  .cp-case-grid{grid-template-columns:1fr !important}
  .cp-case-grid > *{order:0 !important}
}

/* ══════════════════════════════════════════
   SCROLL ANIMATIONS — Cloudflare-inspired
   ══════════════════════════════════════════ */

/* ── Keyframes ── */
@keyframes cpFadeUp{
  from{opacity:0;transform:translateY(40px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes cpFadeIn{
  from{opacity:0}
  to{opacity:1}
}
@keyframes cpSlideLeft{
  from{opacity:0;transform:translateX(-30px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes cpSlideRight{
  from{opacity:0;transform:translateX(30px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes cpScaleIn{
  from{opacity:0;transform:scale(0.92)}
  to{opacity:1;transform:scale(1)}
}
@keyframes cpCountPulse{
  0%{transform:scale(1)}
  50%{transform:scale(1.06)}
  100%{transform:scale(1)}
}
@keyframes cpLineGrow{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}

/* ── Base: hidden until observed ── */
.cp-reveal{opacity:0;transform:translateY(40px);transition:opacity 0.7s cubic-bezier(0.22,1,0.36,1),transform 0.7s cubic-bezier(0.22,1,0.36,1)}
.cp-reveal--left{opacity:0;transform:translateX(-30px);transition:opacity 0.7s cubic-bezier(0.22,1,0.36,1),transform 0.7s cubic-bezier(0.22,1,0.36,1)}
.cp-reveal--right{opacity:0;transform:translateX(30px);transition:opacity 0.7s cubic-bezier(0.22,1,0.36,1),transform 0.7s cubic-bezier(0.22,1,0.36,1)}
.cp-reveal--scale{opacity:0;transform:scale(0.92);transition:opacity 0.6s cubic-bezier(0.22,1,0.36,1),transform 0.6s cubic-bezier(0.22,1,0.36,1)}

/* ── Visible state ── */
.cp-reveal.is-visible,
.cp-reveal--left.is-visible,
.cp-reveal--right.is-visible,
.cp-reveal--scale.is-visible{opacity:1;transform:translate(0) scale(1)}

/* ── Stagger children (cards) ── */
.cp-stagger > *{opacity:0;transform:translateY(30px);transition:opacity 0.5s cubic-bezier(0.22,1,0.36,1),transform 0.5s cubic-bezier(0.22,1,0.36,1)}
.cp-stagger.is-visible > *:nth-child(1){transition-delay:0ms}
.cp-stagger.is-visible > *:nth-child(2){transition-delay:100ms}
.cp-stagger.is-visible > *:nth-child(3){transition-delay:200ms}
.cp-stagger.is-visible > *:nth-child(4){transition-delay:300ms}
.cp-stagger.is-visible > *:nth-child(5){transition-delay:400ms}
.cp-stagger.is-visible > *:nth-child(6){transition-delay:500ms}
.cp-stagger.is-visible > *{opacity:1;transform:translateY(0)}

/* ── Hero entrance ── */
.cp-hero__label{opacity:0;animation:cpFadeIn 0.8s 0.2s cubic-bezier(0.22,1,0.36,1) forwards}
.cp-hero__title{opacity:0;animation:cpSlideLeft 0.9s 0.4s cubic-bezier(0.22,1,0.36,1) forwards}
.cp-hero__desc{opacity:0;animation:cpFadeUp 0.8s 0.6s cubic-bezier(0.22,1,0.36,1) forwards}
.cp-hero__cta{opacity:0;animation:cpFadeUp 0.8s 0.8s cubic-bezier(0.22,1,0.36,1) forwards}
.cp-hero__form-wrap{opacity:0;animation:cpSlideRight 0.9s 0.5s cubic-bezier(0.22,1,0.36,1) forwards}
.cp-hero__stats{opacity:0;animation:cpFadeUp 0.7s 1s cubic-bezier(0.22,1,0.36,1) forwards}

/* ── Section header line animation ── */
.cp-section-header::after{transform-origin:left;animation:none}
.cp-section-header.is-visible::after{animation:cpLineGrow 0.8s 0.3s cubic-bezier(0.22,1,0.36,1) forwards}

/* ── Number count-up pulse ── */
.cp-count-done{animation:cpCountPulse 0.4s cubic-bezier(0.22,1,0.36,1)}

/* ── Card hover micro-animations (enhanced) ── */
.cp-why__item,.cp-svc-card,.cp-result-card,.cp-pricing-card{
  transition:transform 0.35s cubic-bezier(0.22,1,0.36,1),box-shadow 0.35s cubic-bezier(0.22,1,0.36,1)}
.cp-why__item:hover,.cp-svc-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px rgba(0,0,0,0.08)}
.cp-svc-card__icon svg,.cp-why__icon svg{transition:transform 0.3s cubic-bezier(0.22,1,0.36,1)}
.cp-svc-card:hover .cp-svc-card__icon svg,.cp-why__item:hover .cp-why__icon svg{transform:scale(1.12)}

/* ── Respect reduced motion ── */
@media(prefers-reduced-motion:reduce){
  .cp-reveal,.cp-reveal--left,.cp-reveal--right,.cp-reveal--scale,
  .cp-stagger > *,
  .cp-hero__label,.cp-hero__title,.cp-hero__desc,.cp-hero__cta,.cp-hero__form-wrap,.cp-hero__stats{
    opacity:1!important;transform:none!important;animation:none!important;transition:none!important}
}
