/* Photographic series cards also power the CMS preview. */
.portfolio, .preview-product-series { background: linear-gradient(170deg, #fafbf6, #eff3e9 50%, #e7eddf); }
.portfolio { padding-block: 96px; scroll-margin-top: 86px; }
.portfolio-stage-motion { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.portfolio-stage-light { position: absolute; width: 105%; height: 92%; top: -38%; left: -40%; background: linear-gradient(110deg, transparent 32%, rgba(255,255,255,.9) 43%, rgba(230,243,202,.62) 52%, transparent 65%); filter: blur(20px); transform: rotate(-20deg); animation: portfolio-stage-sweep 14s ease-in-out infinite alternate; }
.portfolio-stage-light-secondary { top: 35%; left: 15%; height: 90%; opacity: .62; animation-delay: -7s; animation-direction: alternate-reverse; }
.portfolio-stage-floor { position: absolute; inset: 22% -20% -15%; background: radial-gradient(ellipse at center, transparent 35%, rgba(129,155,108,.13) 75%); transform: perspective(600px) rotateX(24deg); border-radius: 50%; animation: portfolio-stage-floor 10s ease-in-out infinite alternate; }
.portfolio .portfolio-card, .preview-product-series .portfolio-card { box-shadow: 0 18px 24px -21px rgba(50,75,38,.55), 0 2px 2px rgba(255,255,255,.85); border-bottom: 3px solid rgba(255,255,255,.8); }
@keyframes portfolio-stage-sweep { from { transform: translateX(-8%) rotate(-20deg); } to { transform: translateX(65%) rotate(-12deg); } }
@keyframes portfolio-stage-floor { from { opacity: .5; transform: perspective(600px) rotateX(24deg) scale(.95); } to { opacity: 1; transform: perspective(600px) rotateX(24deg) scale(1.05); } }
@media (prefers-reduced-motion: reduce) { .portfolio-stage-motion > div { animation: none; } }
.portfolio.has-background-image .module-light-wash { background: rgba(248,249,246,.95); }
.portfolio-shell { width: 100%; margin-inline: 0; }
.portfolio-heading { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 48px; margin-bottom: 42px; }
.portfolio .portfolio-heading { width: min(1440px, calc(100% - 96px)); margin-inline: auto; }
.portfolio-heading .eyebrow { margin: 0 0 14px; color: #597363; font-size: 12px; letter-spacing: 0; }
.portfolio-heading h2 { margin: 0; color: #183c30; font-family: Georgia, "Songti SC", serif; font-size: 56px; font-weight: 500; line-height: 1.25; white-space: pre-line; }
.portfolio-intro { max-width: 510px; justify-self: end; }
.portfolio-intro p { margin: 0; color: #657269; font-size: 15px; line-height: 1.9; }
.portfolio-intro .portfolio-statement { margin-bottom: 6px; color: #264b3b; font-size: 20px; }
.portfolio-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.portfolio-card { --series-tint: #bac8bb; --series-light: #f2f5f1; position: relative; min-width: 0; min-height: 254px; padding: 34px 36px; overflow: hidden; border: 0; border-radius: 8px; background: var(--series-image, linear-gradient(100deg, var(--series-light), var(--series-tint))) center / cover no-repeat; }
.portfolio-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(247,246,239,.88) 0%, rgba(247,246,239,.72) 32%, rgba(247,246,239,.15) 60%, transparent 78%); pointer-events: none; }
.portfolio-card-copy { position: relative; z-index: 1; width: 61%; }
a.portfolio-card { display: block; color: inherit; text-decoration: none; cursor: pointer; scale: 1; transition: scale .25s ease, box-shadow .25s ease; }
a.portfolio-card:nth-child(odd) { transform-origin: left center; }
a.portfolio-card:nth-child(even) { transform-origin: right center; }
a.portfolio-card:focus-visible { z-index: 2; scale: 1.015; outline: 2px solid #276448; outline-offset: -3px; box-shadow: 0 12px 24px -12px rgba(25, 58, 39, .4); }
.portfolio-reveal-ready a.portfolio-card:focus-visible { opacity: 1; transform: none; }
@media (hover: hover) and (pointer: fine) {
    a.portfolio-card:hover { z-index: 2; scale: 1.015; box-shadow: 0 12px 24px -12px rgba(25, 58, 39, .4); }
}
.portfolio-card h3 { margin: 0; color: #234735; font-family: Georgia, "Songti SC", serif; font-size: 32px; font-weight: 500; line-height: 1.4; overflow-wrap: anywhere; }
.portfolio-card .portfolio-english { margin: 7px 0 0; color: #4f6256; font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
.portfolio-card .portfolio-summary { margin: 34px 0 0; color: #526057; font-size: 15px; line-height: 1.9; overflow-wrap: anywhere; }
.portfolio-card--balance { --series-image: url('/images/portfolio-series-balance.png'); --series-tint: #9a863b; --series-light: #ece5cb; }
.portfolio-card--microbe { --series-image: url('/images/portfolio-series-microbe.png'); --series-tint: #408a64; --series-light: #dceade; }
.portfolio-card--bio { --series-image: url('/images/portfolio-series-bio.png'); --series-tint: #6a8b51; --series-light: #e4ebd8; }
.portfolio-card--organic { --series-tint: #a36848; --series-light: #f0dfd2; }
.portfolio-card--water { --series-image: url('/images/portfolio-series-water.png'); --series-tint: #538dae; --series-light: #deeaf3; }
.portfolio-card--inoculant { --series-image: url('/images/portfolio-series-inoculant.png'); --series-tint: #358f86; --series-light: #dbece6; }
.portfolio-card--soil { --series-image: url('/images/portfolio-series-soil.png'); --series-tint: #8f8878; --series-light: #e8e5dc; }
.portfolio-card--regulator { --series-tint: #88729f; --series-light: #e9e0ef; }
.portfolio-link { display: inline-flex; align-items: center; gap: 34px; min-height: 44px; padding: 10px 21px; margin-top: 18px; border-radius: 4px; background: #214d37; color: #fff; font-size: 13px; line-height: 1.5; }
.portfolio-link > span { font-size: 20px; }
.portfolio-link:hover { background: #153e2a; }
.portfolio-link:focus-visible { outline: 2px solid #1d684c; outline-offset: 5px; }
.portfolio-reveal-ready .portfolio-heading,
.portfolio-reveal-ready .portfolio-card {
    opacity: 0;
    transform: translate3d(0, -36px, 0);
    transition: opacity .2s ease, transform .2s ease;
}
.portfolio-reveal-ready .portfolio-card:nth-child(odd) { transform: translate3d(-56px, 0, 0); }
.portfolio-reveal-ready .portfolio-card:nth-child(even) { transform: translate3d(56px, 0, 0); }
.portfolio-reveal-ready.is-revealed .portfolio-heading {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-duration: 1.1s;
    transition-timing-function: cubic-bezier(.16, .72, .2, 1);
}
.portfolio-reveal-ready.is-revealed .portfolio-card {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition-duration: .95s;
    transition-delay: var(--portfolio-reveal-delay, .65s);
    transition-timing-function: cubic-bezier(.16, .72, .2, 1);
}
.portfolio-reveal-ready:focus-within .portfolio-heading {
    opacity: 1;
    transform: none;
}
.portfolio-reveal-ready.is-revealed a.portfolio-card {
    transition-property: opacity, transform, scale, box-shadow;
    transition-duration: .95s, .95s, .25s, .25s;
    transition-delay: var(--portfolio-reveal-delay, .65s), var(--portfolio-reveal-delay, .65s), 0s, 0s;
    transition-timing-function: cubic-bezier(.16, .72, .2, 1), cubic-bezier(.16, .72, .2, 1), ease, ease;
}
@media (prefers-reduced-motion: reduce) {
    a.portfolio-card, a.portfolio-card:hover, a.portfolio-card:focus-visible { scale: 1; transition: none; }
    .portfolio-reveal-ready .portfolio-heading,
    .portfolio-reveal-ready .portfolio-card:nth-child(n) { opacity: 1; transform: none; transition: none; }
}
@media (max-width: 1100px) {
    .portfolio .portfolio-heading { width: calc(100% - 64px); }
    .portfolio-shell { width: 100%; }
    .portfolio-card { padding: 28px; min-height: 250px; }
    .portfolio-card-copy { width: 68%; }
    .portfolio-card h3 { font-size: 28px; }
    .portfolio-card .portfolio-summary { font-size: 14px; }
}
@media (max-width: 720px) {
    .portfolio .portfolio-heading { width: calc(100% - 40px); }
    .portfolio { padding-block: 64px; }
    .portfolio-shell { width: 100%; }
    .portfolio-heading { grid-template-columns: 1fr; gap: 22px; margin-bottom: 28px; }
    .portfolio-heading h2 { font-size: 40px; }
    .portfolio-intro { max-width: 100%; justify-self: start; }
    .portfolio-intro .portfolio-statement { font-size: 18px; }
    .portfolio-grid { grid-template-columns: 1fr; gap: 16px; }
    .portfolio-card { padding: 28px 24px; min-height: 230px; }
    .portfolio-card-copy { width: 76%; }
    .portfolio-card h3 { font-size: 27px; }
    .portfolio-card .portfolio-summary { margin-top: 28px; }
}
.preview-product-series .portfolio-grid { gap: 10px; }
.preview-product-series .portfolio-card { padding: 17px; min-height: 140px; }
.preview-product-series .portfolio-card-copy { width: 68%; }
.preview-product-series .portfolio-card h3 { font-size: 17px; }
.preview-product-series .portfolio-english { font-size: 7px; }
.preview-product-series .portfolio-summary { margin-top: 16px; font-size: 9px; }
.preview-product-series .portfolio-link { min-height: 28px; font-size: 9px; padding: 5px 10px; margin-top: 9px; gap: 12px; }
