.button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;border:1px solid transparent;border-radius:var(--radius-control);padding:12px 20px;font-weight:700;font-size:.91rem;line-height:1.2;text-decoration:none;transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease}
.button svg,.text-link svg,.product-more svg{width:18px;height:18px;flex:none}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--orange-500);color:var(--forest-950);box-shadow:0 12px 28px rgba(0,0,0,.18)}
.button-primary:hover{background:#f58a34}
.button-dark{background:var(--forest-900);color:var(--white)}
.button-dark:hover{background:var(--forest-800)}
.button-outline{border-color:rgba(255,255,255,.56);color:var(--white);background:rgba(4,39,28,.22)}
.button-outline:hover{background:var(--white);color:var(--forest-900)}
.text-link{display:inline-flex;align-items:center;gap:9px;color:var(--forest-900);font-weight:800;text-decoration-color:var(--orange-500)}

.hero{position:relative;isolation:isolate;overflow:hidden;background:var(--forest-950);color:var(--white)}
.hero-stage{position:relative}
.hero-slide{position:absolute;inset:0;min-height:clamp(650px,calc(100svh - var(--header)),860px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .42s ease,visibility .42s ease}
.hero-slide.is-active{position:relative;z-index:1;opacity:1;visibility:visible;pointer-events:auto}
.hero-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.025)}
.hero-slide:nth-child(1) .hero-backdrop{object-position:center 48%}
.hero-slide:nth-child(2) .hero-backdrop{object-position:center 50%}
.hero-slide:nth-child(3) .hero-backdrop{object-position:center 46%}
.hero-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,39,28,.97) 0%,rgba(4,39,28,.9) 38%,rgba(4,39,28,.55) 66%,rgba(4,39,28,.18) 100%),linear-gradient(0deg,rgba(4,39,28,.5),transparent 48%)}
.hero-route-graphic{position:absolute;z-index:2;right:0;bottom:0;width:min(64vw,980px);height:100%;pointer-events:none;opacity:.78}
.hero-route-graphic svg{width:100%;height:100%;overflow:visible}
.hero-route-graphic path{fill:none;vector-effect:non-scaling-stroke}
.hero-route-ghost{stroke:rgba(255,183,127,.22);stroke-width:2;stroke-dasharray:.012 .018}
.hero-route-stroke{stroke:var(--orange-500);stroke-width:2.25;filter:drop-shadow(0 0 5px rgba(232,117,36,.3))}
.hero-route-graphic circle{fill:var(--orange-500);stroke:rgba(255,253,248,.86);stroke-width:2;vector-effect:non-scaling-stroke}
.hero-route-end{filter:drop-shadow(0 0 8px rgba(232,117,36,.62))}
.hero-content{position:relative;z-index:3;min-height:clamp(650px,calc(100svh - var(--header)),860px);display:flex;align-items:center;padding-top:70px;padding-bottom:110px}
.hero-copy{max-width:700px}
.hero .hero-title{font-family:var(--font-display);font-size:var(--type-hero);font-weight:700;line-height:1.03;letter-spacing:-.025em;color:var(--paper);max-width:13ch;text-shadow:0 3px 24px rgba(0,0,0,.26)}
.hero-copy>p{margin-top:24px;color:#edf4f0;font-size:clamp(1.04rem,1.4vw,1.17rem);font-weight:500;line-height:1.62;max-width:58ch;text-shadow:0 2px 16px rgba(0,0,0,.22)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-path{position:relative;display:flex;align-items:center;width:min(620px,100%);margin-top:42px;padding-top:18px;border-top:1px solid rgba(255,255,255,.32)}
.hero-path-line{position:absolute;left:0;top:-1px;width:100%;height:2px;background:linear-gradient(90deg,var(--orange-500),rgba(232,117,36,.16));pointer-events:none}
.hero-path span{position:relative;z-index:1;flex:1;padding-right:24px;color:#d9e7df;font-size:.76rem;font-weight:600}
.hero-path span+span::before{content:"";position:absolute;left:-18px;top:50%;width:20px;border-top:2px solid var(--orange-500);transform:translateY(-50%)}
.hero-slide.is-active .hero-title{animation:hero-title-in .68s var(--ease-out) both}
.hero-slide.is-active .hero-copy>p{animation:hero-copy-in .68s .08s var(--ease-out) both}
.hero-slide.is-active .hero-actions{animation:hero-copy-in .68s .15s var(--ease-out) both}
.hero-slide.is-active .hero-path{animation:hero-path-in .72s .22s var(--ease-out) both}
.hero-slide.is-active .hero-backdrop{animation:hero-backdrop-in 7s linear both}
.has-gsap-motion .hero-slide.is-active .hero-title,.has-gsap-motion .hero-slide.is-active .hero-copy>p,.has-gsap-motion .hero-slide.is-active .hero-actions,.has-gsap-motion .hero-slide.is-active .hero-path,.has-gsap-motion .hero-slide.is-active .hero-backdrop{animation:none}
@keyframes hero-title-in{from{opacity:.45;filter:blur(4px);clip-path:inset(0 0 100% 0)}to{opacity:1;filter:blur(0);clip-path:inset(0)}}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes hero-path-in{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0)}}
@keyframes hero-backdrop-in{from{transform:scale(1.025)}to{transform:scale(1.065)}}

.product-card{min-width:0;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.product-card:hover{border-color:rgba(201,92,24,.52);box-shadow:var(--shadow-soft)}
.product-image{height:275px;position:relative;overflow:hidden;background:#d9e0d9}
.product-image img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.product-image--fallback{display:grid;place-items:center;padding:46px;background:linear-gradient(145deg,var(--paper),var(--leaf-100))}
.product-image--fallback img{width:min(76%,260px);height:auto;max-height:82%;object-fit:contain;filter:drop-shadow(0 18px 20px rgba(4,39,28,.12))}
.product-card:hover .product-image img{transform:scale(1.045)}
.product-card:hover .product-image--fallback img{transform:translateY(-4px) scale(1.02)}
.product-card:nth-child(3n+2) .product-image img{object-position:65% center}
.product-card:nth-child(3n+3) .product-image img{object-position:78% center}
.product-type,.modal-type{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(255,253,248,.95);color:var(--forest-900);font-size:.66rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.product-type{position:absolute;left:14px;top:14px;max-width:calc(100% - 28px)}
.product-body{display:flex;flex:1;flex-direction:column;padding:24px}
.product-body h3{font-family:var(--font-display);color:var(--forest-900);font-size:var(--type-h3);font-weight:600;line-height:1.18;letter-spacing:-.01em}
.product-body>p{margin-top:12px;color:var(--muted);font-size:.9rem;min-height:4.5em}
.product-meta{display:flex;justify-content:space-between;gap:14px;margin-top:auto;padding-top:20px;border-top:1px solid var(--line);font-size:.72rem;font-weight:700;color:var(--muted)}
.product-meta span:last-child{color:var(--orange-700)}
.product-more{width:100%;min-height:46px;margin-top:18px;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border:1px solid var(--forest-900);border-radius:10px;background:transparent;color:var(--forest-900);font-weight:700;text-decoration:none;transition:background-color .2s ease,color .2s ease,border-color .2s ease}
.product-more:hover{background:var(--forest-900);color:var(--white)}

.product-modal{width:min(980px,calc(100% - 32px));max-height:min(760px,calc(100dvh - 32px));padding:0;border:0;border-radius:16px;background:var(--paper);color:var(--ink);box-shadow:0 28px 90px rgba(4,39,28,.34);overflow:hidden}
.product-modal::backdrop{background:rgba(4,39,28,.78)}
.modal-grid{height:min(760px,calc(100dvh - 32px));min-height:min(570px,calc(100dvh - 32px));display:grid;grid-template-columns:minmax(300px,.88fr) minmax(0,1.12fr)}
.modal-media{position:relative;min-height:100%;background:var(--leaf-100)}
.modal-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.modal-content{position:relative;min-height:0;padding:48px 50px 42px;overflow:auto}
.modal-close{position:absolute;top:16px;right:16px;z-index:2;width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--forest-900)}
.modal-close:hover{background:var(--ivory)}
.modal-close svg{width:22px;height:22px}
.modal-type{background:var(--leaf-100)}
.modal-content h2{margin-top:18px;font-family:var(--font-display);color:var(--forest-950);font-size:var(--type-modal);line-height:1.06;letter-spacing:-.02em}
.modal-description{margin-top:18px;color:var(--muted);max-width:58ch}
.modal-details{display:grid;margin-top:28px;border-top:1px solid var(--line)}
.modal-detail{display:grid;grid-template-columns:132px 1fr;gap:18px;padding:15px 0;border-bottom:1px solid var(--line)}
.modal-detail dt{color:var(--forest-900);font-weight:700}
.modal-detail dd{color:var(--muted)}
.modal-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}

.contact-form{padding:38px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 50px rgba(4,39,28,.07)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:grid;gap:8px}
.field--full{grid-column:1/-1}
.field label{color:var(--forest-900);font-size:.82rem;font-weight:800}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid #aabbb1;border-radius:10px;background:var(--white);color:var(--ink)}
.field textarea{min-height:132px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#687b70;opacity:1}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--leaf-700);outline:0;box-shadow:0 0 0 4px rgba(24,121,78,.17)}
.form-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:4px}
.form-actions p{max-width:36ch;color:var(--muted);font-size:.75rem}
.form-status{margin-bottom:20px;padding:14px 16px;border-radius:10px;font-size:.88rem;font-weight:700}
.form-status--success{background:var(--leaf-100);color:var(--forest-900)}
.form-status--error{background:var(--orange-100);color:#7b2e0a}
.honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.whatsapp{position:fixed;z-index:80;right:22px;bottom:22px;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:#1e8e50;color:var(--white);box-shadow:0 12px 28px rgba(4,39,28,.28);transition:transform .2s ease,background-color .2s ease}
.whatsapp:hover{transform:translateY(-3px);background:#167842}
.whatsapp svg{width:28px;height:28px;fill:currentColor;stroke:none}

.motion-ready [data-reveal]{opacity:0;transition:opacity .58s var(--ease-out),transform .64s var(--ease-out),filter .58s var(--ease-out),clip-path .64s var(--ease-out);transition-delay:var(--reveal-delay,0ms)}
.motion-ready [data-reveal="copy"]{transform:translateY(22px);clip-path:inset(0 0 16% 0)}
.motion-ready [data-reveal="media"]{transform:translateY(16px);clip-path:inset(0 0 18% 0)}
.motion-ready [data-reveal="item"]{transform:translateY(18px)}
.motion-ready [data-reveal="route"]{transform:translateX(-18px)}
.motion-ready [data-reveal="panel"]{transform:translateY(20px);filter:blur(3px)}
.motion-ready [data-reveal-group].is-visible [data-reveal]{opacity:1;transform:none;filter:none;clip-path:inset(0)}

@media (max-width:760px){
  .hero-slide,.hero-content{min-height:720px}
  .hero-content{align-items:flex-end;padding-top:110px;padding-bottom:92px}
  .hero-slide::after{background:linear-gradient(0deg,rgba(4,39,28,.98) 0%,rgba(4,39,28,.91) 47%,rgba(4,39,28,.28) 100%)}
  .hero-slide:nth-child(1) .hero-backdrop{object-position:60% center}
  .hero-slide:nth-child(2) .hero-backdrop{object-position:62% center}
  .hero-slide:nth-child(3) .hero-backdrop{object-position:68% center}
  .hero-route-graphic{right:-20%;width:112vw;opacity:.34}
  .hero .hero-title{max-width:12ch}
  .hero-copy>p{font-size:1rem;color:#e8f0eb}
  .hero-actions{align-items:stretch;flex-direction:column}
  .hero-actions .button{width:100%}
  .hero-path{margin-top:30px;gap:9px}
  .hero-path span{padding:0;font-size:.68rem}
  .hero-path span+span::before{display:none}
  .product-image{height:290px}
  .product-body>p{min-height:0}
  .modal-grid{height:calc(100dvh - 32px);min-height:0;grid-template-columns:1fr;grid-template-rows:230px minmax(0,1fr)}
  .modal-media{min-height:0}
  .modal-content{padding:32px 24px 28px}
  .modal-detail{grid-template-columns:1fr;gap:3px}
  .form-grid{grid-template-columns:1fr}
  .field--full{grid-column:auto}
  .contact-form{padding:26px 20px}
  .form-actions{align-items:stretch;flex-direction:column}
  .form-actions .button{width:100%}
  .whatsapp{right:14px;bottom:14px;width:52px;height:52px}
}

@media (prefers-reduced-motion:reduce){
  .hero-slide.is-active .hero-title,.hero-slide.is-active .hero-copy>p,.hero-slide.is-active .hero-actions,.hero-slide.is-active .hero-path,.hero-slide.is-active .hero-backdrop{animation:none}
  .motion-ready [data-reveal]{opacity:1;transform:none;filter:none;clip-path:none}
  .hero-route-stroke{stroke-dasharray:none!important;stroke-dashoffset:0!important}
}
