/* Scoped to the order section; existing site styles remain untouched. */
#order { border-top: 1px solid var(--color-border); scroll-margin-top: 90px; }
#order .order-container {
    max-width: 820px;
    width: calc(100% - 48px);
    padding: 4rem 3rem;
    background: #fff;
    border: 1px solid var(--color-gold-light);
    border-top: 3px solid var(--color-gold);
    box-shadow: 0 12px 40px rgba(42, 41, 40, .04);
}
#order .order-intro { text-align: center; font-size: .9rem; margin-bottom: 3rem; }
#order fieldset { border: 0; min-width: 0; margin-bottom: 3rem; }
#order legend, #order h3 { font-size: 1.05rem; font-weight: 500; letter-spacing: .05em; margin-bottom: 1rem; }
#order .order-english { display: block; font-family: var(--font-en); font-size: 1rem; font-weight: 400; color: var(--color-gold); font-style: italic; }
#order .order-product { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--color-border); }
#order .order-product-name { font-family: var(--font-en); font-size: 1.25rem; }
#order .order-size { font-family: var(--font-en); margin-left: .5rem; color: var(--color-gray); }
#order .order-quantity { display: flex; gap: .5rem; flex-shrink: 0; }
#order input, #order select, #order textarea { font: inherit; font-size: 16px; line-height: 1.6; color: var(--color-ink); background: transparent; border: 1px solid var(--color-border); border-radius: 0; padding: .65rem .75rem; min-height: 46px; max-width: 100%; }
#order select, #order .order-quantity input { width: 85px; }
#order .order-fields { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.5rem; }
#order .order-fields label { font-size: .85rem; }
#order .order-fields input, #order textarea { display: block; width: 100%; margin-top: .5rem; }
#order textarea { resize: vertical; }
#order .order-wide { grid-column: 1 / -1; }
#order .order-hint { font-size: .8rem; color: var(--color-gray); margin-bottom: 1rem; }
#order .order-summary { border-top: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border); padding: 1.5rem 0; margin-bottom: 1.5rem; font-size: .9rem; }
#order table { width: 100%; border-collapse: collapse; text-align: left; }
#order th { font-weight: 500; color: var(--color-gray); font-size: .8rem; }
#order td, #order th { padding: .65rem .35rem; border-bottom: 1px solid var(--color-border); }
#order td:last-child, #order th:last-child { text-align: right; }
#order .order-total { margin-top: 1rem; text-align: right; }
#order .order-submit { display: block; width: 100%; font-family: var(--font-jp); cursor: pointer; margin-top: 1.5rem; }
#order .order-submit:disabled { opacity: .55; cursor: wait; }
#order :focus-visible { outline: 2px solid var(--color-gold); outline-offset: 3px; }
#order #order-error { border-left: 2px solid var(--color-ink); padding: .5rem 1rem; }
#order .order-preview, #order .order-preview-confirmation { padding: 1rem; border: 1px solid var(--color-gold); margin-bottom: 1.5rem; font-size: .85rem; }
#order #order-confirmation { padding: 2rem 0; text-align: center; }
#order .order-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
#order [hidden] { display: none !important; }
@media (max-width: 600px) {
    #order .order-container { width: calc(100% - 32px); padding: 2.5rem 1.25rem; }
    #order .order-fields { grid-template-columns: minmax(0,1fr); }
    #order .order-product { flex-wrap: wrap; }
    #order .order-quantity { margin-left: auto; }
    #order .order-product-name { font-size: 1.15rem; }
}

#order .order-harvest-note { margin: 0 0 2rem; padding: 1.25rem 1.5rem; background: var(--color-cream); border-left: 2px solid var(--color-gold); font-size: .9rem; }
#order .order-harvest-en { margin-top: .5rem; font-family: var(--font-en); font-size: 1rem; color: var(--color-gray); line-height: 1.6; }
