*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--ripe-tomato:#e74c3c;--ripe-green:#27ae60;--ripe-yellow:#f1c40f;--ripe-linen:#f5f0e6}
.ripe-body{font-family:'Nunito',sans-serif;background:var(--ripe-linen);color:#3d3d3d;line-height:1.65}
.ripe-skip{position:absolute;left:-9999px;z-index:999;background:var(--ripe-green);color:#fff;padding:.5rem}
.ripe-skip:focus{left:0}
.ripe-handwrite{font-family:'Amatic SC',cursive;font-weight:700}
.ripe-stall-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;background:var(--ripe-green);color:#fff;flex-wrap:wrap;gap:1rem}
.ripe-stall-header h1{font-size:clamp(2.5rem,6vw,3.5rem);letter-spacing:.02em}
.ripe-badge{display:inline-block;padding:.2rem .65rem;font-family:'Nunito',sans-serif;font-size:.7rem;font-weight:700;text-transform:uppercase;background:var(--ripe-yellow);color:#333;border-radius:2px}
.ripe-badge--season{background:var(--ripe-tomato);color:#fff;font-size:.75rem}
.ripe-banner{text-align:center;padding:2rem 1.5rem;background:repeating-linear-gradient(-45deg,var(--ripe-linen),var(--ripe-linen) 10px,#ebe4d4 10px,#ebe4d4 20px)}
.ripe-banner p{font-size:1.1rem;margin-bottom:1rem}
.ripe-call{color:var(--ripe-tomato);font-weight:700;text-decoration:none;font-size:1.15rem}
.ripe-crates{padding:2rem 1.5rem;max-width:900px;margin:0 auto}
.ripe-crates>h2{font-size:2.5rem;text-align:center;margin-bottom:2rem;color:var(--ripe-green)}
.ripe-crate-stack{display:flex;flex-direction:column;gap:1rem;margin-bottom:1rem}
.ripe-crate-stack--offset{margin-left:2rem}
.ripe-crate{padding:1.5rem;border:3px solid #8b6914;border-radius:4px;position:relative;background:#fff;box-shadow:inset 0 -8px 0 rgba(139,105,20,.3),0 4px 8px rgba(0,0,0,.08)}
.ripe-crate h3{font-family:'Amatic SC',cursive;font-size:1.75rem;margin-bottom:.35rem}
.ripe-crate .ripe-badge{position:absolute;top:.75rem;right:.75rem}
.ripe-crate--tomato{border-color:var(--ripe-tomato);box-shadow:inset 0 -8px 0 rgba(231,76,60,.2),0 4px 8px rgba(0,0,0,.08)}
.ripe-crate--tomato h3{color:var(--ripe-tomato)}
.ripe-crate--green{border-color:var(--ripe-green);box-shadow:inset 0 -8px 0 rgba(39,174,96,.2),0 4px 8px rgba(0,0,0,.08)}
.ripe-crate--green h3{color:var(--ripe-green)}
.ripe-crate--yellow{border-color:var(--ripe-yellow);box-shadow:inset 0 -8px 0 rgba(241,196,15,.3),0 4px 8px rgba(0,0,0,.08)}
.ripe-crate--yellow h3{color:#b7950b}
.ripe-crate--linen{background:var(--ripe-linen);border-color:#c4b896}
.ripe-about{padding:2rem 1.5rem;max-width:650px;margin:0 auto;text-align:center;font-size:.95rem}
.ripe-about address{margin-top:1rem;font-style:normal;font-weight:600}
.ripe-about a{color:var(--ripe-green)}
.ripe-contact{padding:2rem 1.5rem;max-width:460px;margin:0 auto 2rem;background:#fff;border:2px dashed var(--ripe-green);border-radius:8px}
.ripe-contact h2{font-size:2.25rem;text-align:center;margin-bottom:1.25rem;color:var(--ripe-tomato)}
.ripe-form{display:flex;flex-direction:column;gap:.65rem}
.ripe-form label{font-weight:700;font-size:.85rem}
.ripe-form input,.ripe-form textarea{padding:.6rem;border:2px solid #ddd;font-family:inherit;border-radius:4px;font-size:1rem}
.ripe-form input:focus,.ripe-form textarea:focus{border-color:var(--ripe-green);outline:none}
.ripe-consent{display:flex;gap:.5rem;font-weight:400;font-size:.85rem;align-items:flex-start}
.ripe-consent input{margin-top:.2rem}
.ripe-form button{background:var(--ripe-tomato);color:#fff;border:none;padding:.75rem;font-family:'Amatic SC',cursive;font-size:1.5rem;cursor:pointer;border-radius:4px}
.ripe-status{min-height:1.5rem;font-weight:600;font-size:.9rem}
.ripe-status.ok{color:var(--ripe-green)}
.ripe-status.err{color:var(--ripe-tomato)}
.ripe-legal{padding:1.25rem 1.5rem;max-width:650px;margin:0 auto;border-top:1px dashed #ccc}
.ripe-legal h2{font-family:'Amatic SC',cursive;font-size:1.5rem;color:var(--ripe-green);margin-bottom:.35rem}
.ripe-legal p{font-size:.85rem;color:#666}
.ripe-footer{text-align:center;padding:1.5rem;background:var(--ripe-green);color:#fff}
.ripe-footer nav{display:flex;justify-content:center;gap:1.25rem;margin-top:.5rem}
.ripe-footer a{color:var(--ripe-yellow);text-decoration:none;font-size:.9rem}
@media(max-width:600px){.ripe-crate-stack--offset{margin-left:0}}
