@keyframes experience-rise {
  from { opacity: 0; transform: translateY(22px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes experience-zoom {
  from { opacity: 0; transform: scale(.96); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes experience-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@keyframes experience-pop {
  0% { opacity: 0; transform: scale(.72); }
  75% { transform: scale(1.12); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes experience-underline {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@keyframes experience-draw {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
@keyframes experience-shimmer {
  from { transform: translateX(-120%); }
  to { transform: translateX(120%); }
}
@keyframes experience-ping {
  0%, 100% { box-shadow: 0 4px 14px rgb(25 48 74 / 16%); }
  50% { box-shadow: 0 4px 20px rgb(37 211 102 / 36%); }
}

.hero-copy.reveal.is-visible { animation: experience-rise .7s both; }
.hero-copy h1 { animation: experience-rise .75s .12s both; }
.hero-photo { transition: transform .75s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.hero-visual.reveal.is-visible .hero-photo { animation: experience-zoom .9s .08s both; }
.visual-caption { animation: experience-float 5s 1.2s ease-in-out infinite; }
.caption-icon { transition: transform .35s ease, background .35s ease; }
.visual-caption:hover .caption-icon { transform: rotate(18deg); background: #e2efd9; }
.proof-mark { animation: experience-pop .55s .65s both; }
.trust-inner > p { animation: experience-rise .6s .12s both; }
.trust-inner > div span { animation: experience-rise .5s both; }
.trust-inner > div span:nth-child(2) { animation-delay: .12s; }
.trust-inner > div span:nth-child(3) { animation-delay: .2s; }
.eyebrow { transition: color .25s ease, letter-spacing .25s ease; }
.hero-copy h1 span,
.inner-hero-copy h1 span,
.product-intro-copy h1 span,
.distribution-hero-copy h1 span,
.contact-hero-copy h1 span { transition: color .25s ease, text-shadow .25s ease; }
.section-heading h2 { text-wrap: balance; }
.intro-section .section-heading h2::after { display: block; width: 74px; height: 3px; margin-top: 17px; transform: scaleX(0); transform-origin: left; background: var(--gold); content: ""; }
.intro-section .section-heading.reveal.is-visible h2::after { animation: experience-underline .65s .35s both; }
.feature-card { transition: transform .3s ease, box-shadow .3s ease; }
.feature-card > img { transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.feature-card > div { transition: transform .35s ease, box-shadow .35s ease; }
.feature-number { transition: color .25s ease, transform .35s ease; }
.service-card { transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease; }
.service-icon { transition: transform .35s ease, background .35s ease; }
.service-arrow { transition: transform .25s ease, color .25s ease; }
.market-callout-inner > img { animation: experience-float 6s .5s ease-in-out infinite; }
.button, .nav-cta { position: relative; overflow: hidden; isolation: isolate; }
.button::after { position: absolute; z-index: 1; inset: 0 auto 0 0; width: 45%; transform: translateX(-130%) skewX(-18deg); background: linear-gradient(90deg, transparent, rgb(255 255 255 / 28%), transparent); content: ""; pointer-events: none; }
.button:hover::after { animation: experience-shimmer .7s ease; }
.primary-nav > a:not(.nav-cta) { transition: color .2s ease, transform .2s ease; }
.brand img { transition: transform .35s ease; }
.footer-links a { transition: color .2s ease, transform .2s ease; }
.whatsapp-float { animation: experience-ping 3.2s 1.5s ease-in-out infinite; }
.whatsapp-float:hover .whatsapp-icon { transform: scale(1.12) rotate(-8deg); }
.whatsapp-icon { transition: transform .25s ease; }

.inner-hero-copy.reveal.is-visible,
.product-intro-copy.reveal.is-visible,
.distribution-hero-copy.reveal.is-visible,
.contact-hero-copy.reveal.is-visible { animation: experience-rise .7s both; }
.inner-hero-image.reveal.is-visible img,
.product-intro-image.reveal.is-visible img,
.distribution-hero-grid > img.reveal.is-visible,
.contact-hero-art.reveal.is-visible { animation: experience-zoom .85s .12s both; }
.inner-hero-image img,
.product-intro-image img,
.distribution-hero-grid > img,
.contact-hero-art { transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.story-image img { transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .45s ease; }
.image-note { transition: transform .3s ease, box-shadow .3s ease; }
.company-fact { transition: transform .25s ease, box-shadow .25s ease; }
.company-fact:nth-child(2) { transition-delay: .04s; }
.company-fact:nth-child(3) { transition-delay: .08s; }
.value-card { position: relative; overflow: hidden; transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease; }
.value-card::before { position: absolute; inset: 0 auto auto 0; width: 100%; height: 3px; transform: scaleX(0); transform-origin: left; background: var(--green); content: ""; transition: transform .35s ease; }
.mission-card { border-left: 0 solid var(--green); transition: border-width .25s ease, box-shadow .25s ease; }
.vision-card > img { transition: transform .8s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.vision-card::after { position: absolute; inset: 40% 0 0; background: linear-gradient(transparent, rgb(25 48 74 / 12%)); content: ""; pointer-events: none; }
.vision-card > div { z-index: 1; }
.service-detail-image img { transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.service-detail-image > span { transition: padding .25s ease, background .25s ease; }
.service-detail-copy li { transition: transform .25s ease, color .25s ease; }
.service-detail-copy li:nth-child(2) { transition-delay: .04s; }
.service-detail-copy li:nth-child(3) { transition-delay: .08s; }
.service-note { transition: transform .3s ease, box-shadow .3s ease; }
.product-card > img { transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.product-tag { display: inline-block; transition: color .25s ease, letter-spacing .25s ease; }
.product-card .text-link span,
.hub-card .text-link span { display: inline-block; transition: transform .25s ease; }
.quote-note-icon { transition: transform .35s ease, background .35s ease; }
.hub-card { transition: transform .3s ease, box-shadow .3s ease; }
.hub-card > img { transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .4s ease; }
.market-list > div { transition: padding-left .25s ease, background .25s ease; }
.steps-grid .step-card { position: relative; overflow: hidden; transition: transform .25s ease, box-shadow .25s ease; }
.step-card::before { position: absolute; top: 0; left: 0; width: 100%; height: 2px; transform: scaleX(0); transform-origin: left; background: var(--gold); content: ""; transition: transform .35s ease; }
.contact-quick-links > a { transition: transform .25s ease, color .25s ease; }
.inquiry-form input,
.inquiry-form select,
.inquiry-form textarea { transition: border-color .2s ease, box-shadow .2s ease, background .2s ease; }
.contact-symbol { transition: transform .3s ease, background .3s ease; }
.contact-social > a { transition: padding-inline .25s ease, color .25s ease; }
.contact-social > a > span { display: inline-block; transition: transform .25s ease; }
.map-frame-wrap { transition: box-shadow .3s ease, border-color .3s ease; }

@media (hover: hover) {
  .hero-visual:hover .hero-photo { transform: scale(1.025); filter: brightness(1.13) saturate(1.12); }
  .eyebrow:hover { color: var(--brand-blue); letter-spacing: .18em; }
  .hero-copy h1:hover span,
  .inner-hero-copy h1:hover span,
  .product-intro-copy h1:hover span,
  .distribution-hero-copy h1:hover span,
  .contact-hero-copy h1:hover span { color: var(--green-dark); text-shadow: 0 5px 18px rgb(55 147 75 / 14%); }
  .feature-card:hover { transform: translateY(-5px); box-shadow: 0 18px 34px rgb(25 48 74 / 12%); }
  .feature-card:hover > img { transform: scale(1.06); filter: brightness(1.12) saturate(1.14); }
  .feature-card:hover > div { transform: translateY(-5px); box-shadow: 0 12px 24px rgb(25 48 74 / 10%); }
  .feature-card:hover .feature-number { transform: rotate(-8deg) scale(1.12); color: var(--green); }
  .service-card:hover .service-icon { transform: translateY(-4px) rotate(-8deg); background: #e3efd9; }
  .service-card:hover .service-arrow { transform: translateX(5px); color: var(--brand-blue); }
  .market-callout:hover .market-callout-inner > img { animation-duration: 3s; }
  .primary-nav > a:not(.nav-cta):hover { transform: translateY(-2px); }
  .brand:hover img { transform: rotate(-7deg) scale(1.06); }
  .footer-links a:hover { transform: translateX(3px); }
  .inner-hero-image:hover img,
  .product-intro-image:hover img,
  .distribution-hero-grid > img:hover,
  .contact-hero-art:hover { transform: scale(1.025); filter: brightness(1.12) saturate(1.12); }
  .story-image:hover img { transform: scale(1.035); filter: brightness(1.08); }
  .story-image:hover .image-note { transform: translateY(-5px); box-shadow: 0 12px 28px rgb(25 48 74 / 12%); }
  .company-fact:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgb(25 48 74 / 8%); }
  .value-card:hover { transform: translateY(-5px); border-color: #b7c8b0; box-shadow: 0 12px 26px rgb(25 48 74 / 8%); }
  .value-card:hover::before,
  .step-card:hover::before { transform: scaleX(1); }
  .mission-card:hover { border-left-width: 5px; box-shadow: 0 12px 26px rgb(25 48 74 / 7%); }
  .vision-card:hover > img { transform: scale(1.05); filter: brightness(1.08); }
  .closing-cta .button:hover { box-shadow: 0 8px 22px rgb(52 58 156 / 24%); }
  .service-detail-image:hover img { transform: scale(1.035); filter: brightness(1.08) saturate(1.08); }
  .service-detail-image:hover > span { padding-inline: 20px; background: #f5f7f3; }
  .service-detail-copy li:hover { transform: translateX(4px); color: var(--ink); }
  .service-note:hover { transform: translateY(-3px); box-shadow: 0 14px 28px rgb(25 48 74 / 8%); }
  .product-card:hover { transform: translateY(-6px) rotateX(1deg); box-shadow: 0 16px 30px rgb(25 48 74 / 10%); }
  .product-card:hover > img { transform: scale(1.055); filter: brightness(1.12) saturate(1.12); }
  .product-card:hover .product-tag { color: var(--brand-blue); letter-spacing: .16em; }
  .product-card:hover .text-link span,
  .hub-card:hover .text-link span { transform: translateX(4px); }
  .quote-note:hover .quote-note-icon { transform: rotate(35deg); background: #e2efd9; }
  .hub-card:hover { transform: translateY(-5px); box-shadow: 0 16px 34px rgb(25 48 74 / 11%); }
  .hub-card:hover > img { transform: scale(1.04); filter: brightness(1.1) saturate(1.1); }
  .market-list > div:hover { padding-left: 10px; background: rgb(255 255 255 / 70%); }
  .steps-grid .step-card:hover { transform: translateY(-4px); box-shadow: 0 10px 24px rgb(25 48 74 / 8%); }
  .contact-quick-links > a:hover { transform: translateY(-3px); color: var(--green-dark); }
  .contact-symbol:hover { transform: rotate(-10deg) scale(1.08); background: #e2efd9; }
  .contact-social > a:hover { padding-inline: 6px; color: var(--green-dark); }
  .contact-social > a:hover > span { transform: translateX(4px); }
  .map-frame-wrap:hover { border-color: #b7c8b0; box-shadow: 0 12px 28px rgb(25 48 74 / 9%); }
}

.inquiry-form input:focus,
.inquiry-form select:focus,
.inquiry-form textarea:focus { box-shadow: 0 0 0 4px rgb(55 147 75 / 10%); background: #fffefa; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
