/* Appily Fifteen — Fresh Pick Counter product page */ .page-pick-counter { --pick-accent: var(--teal); --pick-accent-soft: var(--teal-light); --pick-wash: #f0faf7; --pick-wash-deep: #dff5ef; --pick-ticket: #fffdf9; background: linear-gradient(180deg, #fafcfb 0%, #fff 240px); } .page-pick-counter.tone-citrus { --pick-accent: #f57c00; --pick-accent-soft: #fff3e0; --pick-wash: #fff8ef; --pick-wash-deep: #ffe8c8; } .page-pick-counter.tone-berry { --pick-accent: #c2185b; --pick-accent-soft: #fce4ec; --pick-wash: #fff5f8; --pick-wash-deep: #ffd9e8; } .page-pick-counter.tone-tropical { --pick-accent: #f9a825; --pick-accent-soft: #fff8e1; --pick-wash: #fffbf0; --pick-wash-deep: #ffefc2; } .page-pick-counter.tone-stone { --pick-accent: #e64a19; --pick-accent-soft: #fbe9e7; --pick-wash: #fff6f2; --pick-wash-deep: #ffddd2; } .page-pick-counter.tone-melon { --pick-accent: #43a047; --pick-accent-soft: #e8f5e9; --pick-wash: #f3fbf4; --pick-wash-deep: #d7f0d9; } .page-pick-counter.tone-orchard { --pick-accent: #8d6e63; --pick-accent-soft: #efebe9; --pick-wash: #faf7f5; --pick-wash-deep: #ebe2dd; } .page-pick-counter.tone-exotic { --pick-accent: #7e57c2; --pick-accent-soft: #ede7f6; --pick-wash: #f8f5fd; --pick-wash-deep: #e6dbf8; } .page-pick-counter.tone-fresh { --pick-accent: var(--teal); --pick-accent-soft: var(--teal-light); --pick-wash: #f0faf7; --pick-wash-deep: #dff5ef; } /* Breadcrumb trail */ .pick-trail { padding: 18px 0 0; } .pick-trail-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; } .pick-crumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: .82rem; color: var(--muted); } .pick-crumb a:hover { color: var(--pick-accent); } .pick-crumb-current { color: var(--ink); font-weight: 600; } .pick-aisle-chip { display: inline-flex; align-items: center; padding: 6px 14px; border-radius: 999px; background: var(--pick-accent-soft); color: var(--pick-accent); font-size: .78rem; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; } .pick-aisle-chip:hover { filter: brightness(.97); } /* Main stage */ .pick-stage { padding: 28px 0 56px; } .pick-stage-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr); gap: clamp(24px, 4vw, 48px); align-items: start; } /* Visual panel */ .pick-visual { position: relative; min-height: 420px; display: grid; place-items: center; padding: 48px 32px 36px; } .pick-visual-wash { position: absolute; inset: 8% 6% 12%; border-radius: 42% 58% 52% 48% / 48% 42% 58% 52%; background: radial-gradient(circle at 30% 28%, var(--pick-wash-deep) 0%, transparent 52%), radial-gradient(circle at 72% 68%, rgba(255,255,255,.85) 0%, transparent 45%), linear-gradient(145deg, var(--pick-wash) 0%, #fff 100%); animation: pick-wash-float 9s ease-in-out infinite alternate; } @keyframes pick-wash-float { from { transform: rotate(-2deg) scale(1); } to { transform: rotate(2deg) scale(1.03); } } .pick-visual-ring { position: absolute; top: 24px; right: clamp(12px, 4vw, 36px); width: 92px; height: 92px; z-index: 2; } .pick-visual-ring svg { width: 100%; height: 100%; transform: rotate(-90deg); } .pick-ring-track { fill: none; stroke: rgba(255,255,255,.75); stroke-width: 8; } .pick-ring-fill { fill: none; stroke: var(--pick-accent); stroke-width: 8; stroke-linecap: round; stroke-dasharray: 327; stroke-dashoffset: calc(327 - (327 * var(--pick-score, 90) / 100)); transition: stroke-dashoffset .8s ease; } .pick-ring-label { position: absolute; inset: 0; display: grid; place-items: center; font-size: .68rem; font-weight: 800; color: var(--pick-accent); text-align: center; line-height: 1.15; } .pick-hero-img { position: relative; z-index: 1; margin: 0; width: min(100%, 380px); filter: drop-shadow(0 28px 40px rgba(0,0,0,.12)); } .pick-hero-img img { width: 100%; aspect-ratio: 1; object-fit: contain; } .pick-ribbon { position: absolute; top: 18px; left: 0; z-index: 3; padding: 8px 16px 8px 12px; background: var(--pick-accent); color: #fff; font-size: .72rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 50%, 100% 100%, 0 100%); } .pick-ribbon-sold { background: #888; } .pick-badges { position: relative; z-index: 2; list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; } .pick-badges li { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,.88); border: 1px solid rgba(0,0,0,.06); font-size: .78rem; font-weight: 600; color: var(--ink-soft); box-shadow: 0 4px 14px rgba(0,0,0,.05); } /* Produce ticket card */ .pick-ticket { position: relative; background: var(--pick-ticket); border: 1px solid rgba(0,0,0,.07); border-radius: 18px; box-shadow: 0 1px 0 rgba(255,255,255,.8) inset, 0 24px 48px rgba(0,0,0,.08); overflow: hidden; } .pick-ticket-scallop { height: 14px; background: radial-gradient(circle at 10px -2px, transparent 10px, var(--pick-accent-soft) 10px) 0 0 / 20px 14px repeat-x; border-bottom: 1px dashed rgba(0,0,0,.08); } .pick-ticket-body { padding: 24px 26px 28px; } .pick-ticket-kicker { margin: 0 0 6px; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pick-accent); } .pick-ticket-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 18px; } .pick-ticket h1 { margin: 0; font-size: clamp(1.65rem, 3vw, 2.15rem); line-height: 1.15; letter-spacing: -.02em; } .pick-variant { margin: 8px 0 0; font-size: .92rem; color: var(--muted); } .pick-rating { display: flex; align-items: center; gap: 1px; flex-shrink: 0; padding-top: 4px; } .pick-star { color: #ddd; font-size: .95rem; } .pick-star.is-on { color: #ffb300; } .pick-reviews { font-size: .78rem; color: var(--muted); margin-left: 4px; } .pick-price-block { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 20px; padding: 16px 18px; border-radius: 14px; background: linear-gradient(135deg, var(--pick-accent-soft) 0%, #fff 100%); border: 1px solid rgba(0,0,0,.05); } .pick-price-was { font-size: .95rem; color: var(--muted); text-decoration: line-through; } .pick-price { font-size: clamp(1.8rem, 4vw, 2.35rem); font-weight: 800; color: var(--ink); letter-spacing: -.03em; } .pick-price.is-sale { color: var(--sale); } .pick-price-unit { font-size: .88rem; color: var(--muted); font-weight: 500; } .pick-meta-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 18px; } .pick-meta-tile { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: #fff; border: 1px solid var(--line); } .pick-meta-icon { font-size: .68rem; font-weight: 800; color: var(--pick-accent); letter-spacing: .04em; } .pick-meta-label { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); } .pick-meta-tile strong { font-size: .92rem; color: var(--ink); } .pick-desc { margin: 0 0 18px; color: var(--ink-soft); font-size: .94rem; line-height: 1.65; } .pick-perforation { height: 1px; margin: 0 0 20px; background: repeating-linear-gradient(90deg, transparent 0 4px, rgba(0,0,0,.14) 4px 8px); } .pick-buy-form { display: grid; gap: 14px; } .pick-qty-wrap { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .pick-qty-label { font-size: .84rem; font-weight: 700; color: var(--ink-soft); } .pick-qty-stepper { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; background: #fff; } .pick-qty-btn { width: 40px; height: 40px; border: 0; background: transparent; font-size: 1.15rem; font-weight: 600; color: var(--pick-accent); cursor: pointer; } .pick-qty-btn:hover { background: var(--pick-accent-soft); } .pick-qty-stepper input { width: 44px; border: 0; text-align: center; font: inherit; font-weight: 700; background: transparent; -moz-appearance: textfield; } .pick-qty-stepper input::-webkit-outer-spin-button, .pick-qty-stepper input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; } .pick-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; width: 100%; padding: 16px 22px; border: 0; border-radius: 14px; font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer; transition: transform .15s, box-shadow .15s, background .15s; } .pick-btn-primary { background: var(--pick-accent); color: #fff; box-shadow: 0 10px 24px color-mix(in srgb, var(--pick-accent) 35%, transparent); } .pick-btn-primary:hover { transform: translateY(-1px); filter: brightness(1.04); } .pick-btn-disabled { background: #ececec; color: #888; cursor: not-allowed; } .pick-footnote { margin: 14px 0 0; font-size: .76rem; color: var(--muted); line-height: 1.5; } /* Detail accordions */ .pick-details { padding: 0 0 48px; } .pick-details-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; } .pick-detail-card { border: 1px solid var(--line); border-radius: 14px; background: #fff; overflow: hidden; } .pick-detail-card summary { padding: 16px 18px; font-weight: 700; cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; } .pick-detail-card summary::-webkit-details-marker { display: none; } .pick-detail-card summary::after { content: '+'; font-size: 1.1rem; color: var(--pick-accent); } .pick-detail-card[open] summary::after { content: '−'; } .pick-detail-card p { margin: 0; padding: 0 18px 18px; font-size: .88rem; color: var(--ink-soft); line-height: 1.6; } /* Related aisle scroll */ .pick-aisle-row { padding: 12px 0 64px; background: linear-gradient(180deg, #fff 0%, #f7fbf9 100%); border-top: 1px solid var(--line); } .pick-aisle-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 22px; } .pick-aisle-kicker { margin: 0 0 4px; font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--teal); } .pick-aisle-head h2 { margin: 0; font-size: clamp(1.25rem, 2.5vw, 1.6rem); } .pick-aisle-all { font-size: .88rem; font-weight: 700; color: var(--teal); white-space: nowrap; } .pick-aisle-all:hover { color: var(--teal-dark); } .pick-scroll-track { display: flex; gap: 14px; overflow-x: auto; padding: 4px 2px 16px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; } .pick-scroll-track::-webkit-scrollbar { height: 6px; } .pick-scroll-track::-webkit-scrollbar-thumb { background: #cfd8d5; border-radius: 999px; } .pick-scroll-card { flex: 0 0 168px; scroll-snap-align: start; display: grid; gap: 10px; padding: 14px; border-radius: 16px; background: #fff; border: 1px solid var(--line); transition: transform .15s, box-shadow .15s; } .pick-scroll-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); } .pick-scroll-thumb { display: grid; place-items: center; aspect-ratio: 1; border-radius: 50%; background: var(--pick-accent-soft, var(--teal-light)); padding: 12px; } .pick-scroll-card.tone-citrus .pick-scroll-thumb { background: #fff3e0; } .pick-scroll-card.tone-berry .pick-scroll-thumb { background: #fce4ec; } .pick-scroll-card.tone-tropical .pick-scroll-thumb { background: #fff8e1; } .pick-scroll-card.tone-stone .pick-scroll-thumb { background: #fbe9e7; } .pick-scroll-card.tone-melon .pick-scroll-thumb { background: #e8f5e9; } .pick-scroll-card.tone-orchard .pick-scroll-thumb { background: #efebe9; } .pick-scroll-card.tone-exotic .pick-scroll-thumb { background: #ede7f6; } .pick-scroll-thumb img { width: 100%; height: 100%; object-fit: contain; } .pick-scroll-body { display: grid; gap: 4px; min-width: 0; } .pick-scroll-name { font-size: .84rem; font-weight: 600; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .pick-scroll-price { font-size: .88rem; font-weight: 800; color: var(--pick-accent, var(--teal)); } /* 404 */ .page-pick-miss { background: #f8fbf9; } .pick-miss { padding: 80px 0 100px; text-align: center; } .pick-miss-orbit { position: relative; width: 120px; height: 120px; margin: 0 auto 24px; } .pick-miss-ring { position: absolute; inset: 0; border: 2px dashed #c5ddd7; border-radius: 50%; animation: pick-miss-spin 14s linear infinite; } @keyframes pick-miss-spin { to { transform: rotate(360deg); } } .pick-miss-leaf { position: absolute; inset: 0; display: grid; place-items: center; font-size: 2rem; } .pick-miss-tag { margin: 0 0 8px; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--teal); } .pick-miss-inner h1 { margin: 0 0 12px; font-size: clamp(1.5rem, 3vw, 2rem); } .pick-miss-inner p { max-width: 460px; margin: 0 auto 24px; color: var(--muted); } @media (max-width: 960px) { .pick-stage-grid { grid-template-columns: 1fr; } .pick-visual { min-height: 320px; padding-top: 32px; } .pick-ticket { order: 2; } .pick-details-grid { grid-template-columns: 1fr; } } @media (max-width: 640px) { .pick-trail-inner { flex-direction: column; align-items: flex-start; } .pick-ticket-head { flex-direction: column; } .pick-meta-grid { grid-template-columns: 1fr 1fr; } .pick-visual-ring { width: 76px; height: 76px; top: 12px; right: 12px; } .pick-badges { justify-content: flex-start; } }