/* Presentational components only. No cart, upload, payment or form behavior. */
.fanyi-ui .screen-reader-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.fanyi-ui,.fanyi-ui *,.fanyi-ui *::before,.fanyi-ui *::after{box-sizing:border-box;}
.fanyi-ui :where(h1,h2,h3,h4,p,figure){margin:0;}
.fanyi-ui :where(img,video){display:block;max-width:100%;height:auto;}
.fanyi-ui :where(button,input,select,textarea){font:inherit;}
.fanyi-ui :where(a){color:inherit;text-underline-offset:.2em;}
.fanyi-ui :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--fanyi-green-hover);outline-offset:4px;}
.fanyi-ui .fanyi-container{width:min(calc(100% - var(--fanyi-gutter)*2),var(--fanyi-container));margin-inline:auto;}
.fanyi-ui .fanyi-section{padding-block:var(--fanyi-section-space);}
.fanyi-ui .fanyi-surface{background:var(--fanyi-bg-soft);}
.fanyi-ui .fanyi-eyebrow{color:var(--fanyi-green-hover);font-size:.6875rem;font-weight:750;letter-spacing:.13em;margin-bottom:1rem;}
.fanyi-ui .fanyi-title,.fanyi-ui .fanyi-heading{font-weight:750;line-height:var(--fanyi-leading-heading);letter-spacing:var(--fanyi-tracking);text-wrap:balance;overflow-wrap:break-word;}
.fanyi-ui .fanyi-title{font-size:var(--fanyi-h1);}
.fanyi-ui .fanyi-heading{font-size:var(--fanyi-h2);}
.fanyi-ui .fanyi-subheading{font-size:var(--fanyi-h3);line-height:1.25;font-weight:720;letter-spacing:-.025em;}
.fanyi-ui .fanyi-copy{color:var(--fanyi-muted);max-width:var(--fanyi-reading);}
.fanyi-ui .fanyi-lead{font-size:var(--fanyi-text-lead);}
.fanyi-ui .fanyi-section-heading{display:grid;gap:1rem;max-width:52rem;margin-bottom:clamp(1.5rem,2.6vw,2.5rem);}
.fanyi-ui .fanyi-section-heading .fanyi-eyebrow{margin:0;}
.fanyi-ui .fanyi-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:48px;min-height:var(--fanyi-control-height);max-width:100%;padding:.875rem 1.5rem;border:1px solid transparent;border-radius:var(--fanyi-radius-sm);background:var(--fanyi-green);color:#fff;font-weight:650;line-height:1.35;text-align:center;text-decoration:none;white-space:normal;cursor:pointer;transition:background-color var(--fanyi-motion) ease;}
.fanyi-ui .fanyi-button:hover{background:var(--fanyi-green-hover);}
.fanyi-ui .fanyi-button--secondary{background:transparent;border-color:var(--fanyi-border);color:var(--fanyi-text);}
.fanyi-ui .fanyi-button--secondary:hover{background:var(--fanyi-bg-soft);}
.fanyi-ui .fanyi-button:disabled,.fanyi-ui .fanyi-button[aria-disabled=true]{opacity:.55;cursor:not-allowed;}
.fanyi-ui .fanyi-cta{min-height:var(--fanyi-cta-height);}
.fanyi-ui .fanyi-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(1rem,1.7vw,1.5rem);}
.fanyi-ui .fanyi-card{min-width:0;overflow:hidden;border:1px solid var(--fanyi-border);border-radius:var(--fanyi-radius-lg);background:var(--fanyi-bg);box-shadow:var(--fanyi-shadow-card);}
.fanyi-ui .fanyi-card__body{padding:clamp(1.25rem,2vw,1.85rem);display:grid;gap:.75rem;}
.fanyi-ui .fanyi-card__body p{color:var(--fanyi-muted);font-size:.9375rem;}
.fanyi-ui .fanyi-card__image{width:100%;aspect-ratio:4/3;object-fit:contain;background:var(--fanyi-bg-soft);}
.fanyi-ui .fanyi-product-card .fanyi-card__image{aspect-ratio:1;}
.fanyi-ui .fanyi-category-card{text-decoration:none;display:block;}
.fanyi-ui .fanyi-category-card:hover{border-color:var(--fanyi-green);}
.fanyi-ui .fanyi-price{font-size:1rem;font-weight:650;}
.fanyi-ui .fanyi-field{display:grid;gap:.5rem;min-width:0;}
.fanyi-ui .fanyi-field label,.fanyi-ui .fanyi-label{font-weight:650;font-size:.9375rem;}
.fanyi-ui .fanyi-input,.fanyi-ui .fanyi-select,.fanyi-ui .fanyi-textarea{width:100%;min-width:0;min-height:var(--fanyi-control-height);padding:.75rem 1rem;color:var(--fanyi-text);background:#fff;border:1px solid var(--fanyi-border);border-radius:var(--fanyi-radius-sm);}
.fanyi-ui .fanyi-textarea{min-height:9rem;resize:vertical;}
.fanyi-ui .fanyi-hint{font-size:var(--fanyi-text-sm);color:var(--fanyi-muted);}
.fanyi-ui [aria-invalid=true]{border-color:var(--fanyi-text);outline:2px solid var(--fanyi-text);outline-offset:1px;}
.fanyi-ui .fanyi-upload{padding:1rem;border:1px dashed var(--fanyi-border);border-radius:var(--fanyi-radius-md);background:var(--fanyi-bg-soft);}
.fanyi-ui .fanyi-upload input[type=file]{display:block;width:100%;max-width:100%;min-height:48px;font-size:.875rem;}
.fanyi-ui .fanyi-upload input::file-selector-button{font:inherit;padding:.75rem;border:1px solid var(--fanyi-border);border-radius:var(--fanyi-radius-sm);min-height:48px;margin-right:.5rem;background:#fff;color:var(--fanyi-text);}
.fanyi-ui .fanyi-notice{padding:1rem 1.25rem;border:1px solid var(--fanyi-border);border-left:3px solid var(--fanyi-green);border-radius:var(--fanyi-radius-sm);background:var(--fanyi-bg-soft);}
.fanyi-ui .fanyi-notice--error{border-left-color:var(--fanyi-text);}
.fanyi-ui .fanyi-breadcrumb{font-size:.875rem;color:var(--fanyi-muted);padding-block:1rem;}
.fanyi-ui .fanyi-breadcrumb ol{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0;}
.fanyi-ui .fanyi-breadcrumb li+li::before{content:'/';margin-right:.5rem;}
.fanyi-ui .fanyi-quantity{display:inline-flex;max-width:100%;border:1px solid var(--fanyi-border);border-radius:var(--fanyi-radius-sm);}
.fanyi-ui .fanyi-quantity :where(input,button){min-height:48px;min-width:48px;border:0;background:#fff;color:var(--fanyi-text);text-align:center;}
.fanyi-ui .fanyi-quantity input{width:4rem;}
.fanyi-ui .fanyi-empty{padding:clamp(2rem,5vw,4rem);text-align:center;border:1px solid var(--fanyi-border);border-radius:var(--fanyi-radius-lg);display:grid;justify-items:center;gap:1rem;}
.fanyi-ui .fanyi-prose{max-width:var(--fanyi-reading);overflow-wrap:break-word;}
.fanyi-ui .fanyi-prose :where(p,ul,ol,table){margin-block:1rem;}
.fanyi-ui .fanyi-prose :where(h2,h3){margin-top:2rem;margin-bottom:1rem;line-height:1.25;}
.fanyi-ui .fanyi-prose h2{font-size:var(--fanyi-h2);}.fanyi-ui .fanyi-prose h3{font-size:var(--fanyi-h3);}
.fanyi-ui .fanyi-table-scroll{max-width:100%;overflow:auto;}
.fanyi-ui .fanyi-prose table{border-collapse:collapse;width:100%;}.fanyi-ui .fanyi-prose :where(th,td){padding:.75rem;border:1px solid var(--fanyi-border);text-align:left;}
@media(min-width:48rem){.fanyi-ui .fanyi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(min-width:64rem){.fanyi-ui .fanyi-grid--three{grid-template-columns:repeat(3,minmax(0,1fr));}.fanyi-ui .fanyi-grid--four{grid-template-columns:repeat(4,minmax(0,1fr));}}
